github Python analyzed 02a5229

ssbeatty/agentflow

github

Write LangGraph / LangChain agents in a browser IDE and run them as a service — self-hosted, one Docker image, with isolated venvs, cron, HTTP API, traces, token accounting and evals.

maintainer
ssbeatty
license
MIT
first seen
2026-07-08
last seen
2026-07-28
releases · 30d
0
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 25 tools
transport streamable-http counts 25 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • add_eval_case
  • create_script
  • create_skill
  • delete_eval_case
  • delete_script_file
  • delete_skill_file
  • get_execution_logs
  • get_platform_context
  • get_script
  • get_scripting_guide
  • get_skill
  • list_eval_cases
  • list_executions
  • list_scripts
  • list_skills
  • read_script_file
  • read_skill_file
  • run_eval
  • run_script
  • setup_script_env
  • sync_script_schema
  • update_eval_case
  • update_script
  • write_script_file
  • write_skill_file
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 02a5229 · analyzer v33 · 4d ago

skills & prompt files 3

code evidence vHEAD · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 183

filesystem 23

  • fs ssbeatty-agentflow-02a5229/backend/agentflow/__init__.py :17 from pathlib import Path
  • fs ssbeatty-agentflow-02a5229/backend/agentflow/_sandbox.py :53 import shutil
  • fs ssbeatty-agentflow-02a5229/backend/app/config.py :2 from pathlib import Path
  • fs ssbeatty-agentflow-02a5229/backend/app/database.py :1 from pathlib import Path
  • fs ssbeatty-agentflow-02a5229/backend/app/main.py :5 from pathlib import Path
  • fs ssbeatty-agentflow-02a5229/backend/services/conversation_threads.py :22 from pathlib import Path
  • fs ssbeatty-agentflow-02a5229/backend/services/execution_engine.py :16 import shutil
  • fs ssbeatty-agentflow-02a5229/backend/services/file_storage.py :11 import shutil
  • fs ssbeatty-agentflow-02a5229/backend/services/marketplace.py :19 import shutil
  • fs ssbeatty-agentflow-02a5229/backend/services/mcp_gateway.py :24 from pathlib import Path
  • fs ssbeatty-agentflow-02a5229/backend/services/module_support.py :19 from pathlib import Path
  • fs ssbeatty-agentflow-02a5229/backend/services/script_cleanup.py :22 import shutil
  • fs ssbeatty-agentflow-02a5229/backend/services/script_files.py :1 from pathlib import Path, PurePosixPath
  • fs ssbeatty-agentflow-02a5229/backend/services/script_schema.py :33 from pathlib import Path
  • fs ssbeatty-agentflow-02a5229/backend/services/skill_store.py :28 import shutil
  • fs ssbeatty-agentflow-02a5229/backend/services/venv_manager.py :3 import shutil
  • fs ssbeatty-agentflow-02a5229/backend/services/worker_pool.py :42 from pathlib import Path
  • fs (weak) ssbeatty-agentflow-02a5229/backend/tests/conftest.py :14 from pathlib import Path
  • fs (weak) ssbeatty-agentflow-02a5229/backend/tests/test_agentflow_sdk.py :7 from pathlib import Path
  • fs (weak) ssbeatty-agentflow-02a5229/backend/tests/test_conversation_threads.py :12 from pathlib import Path
  • fs (weak) ssbeatty-agentflow-02a5229/backend/tests/test_dependency_sync.py :26 from pathlib import Path
  • fs (weak) ssbeatty-agentflow-02a5229/backend/tests/test_execution_engine_run.py :313 import pathlib
  • fs (weak) ssbeatty-agentflow-02a5229/backend/tests/test_worker_pool.py :15 from pathlib import Path

shell / exec 6

  • shell ssbeatty-agentflow-02a5229/backend/agentflow/_sandbox.py :54 import subprocess
  • shell ssbeatty-agentflow-02a5229/backend/services/execution_engine.py :17 import subprocess
  • shell ssbeatty-agentflow-02a5229/backend/services/script_schema.py :30 import subprocess
  • shell ssbeatty-agentflow-02a5229/backend/services/venv_manager.py :4 import subprocess
  • shell ssbeatty-agentflow-02a5229/backend/services/worker_pool.py :38 import subprocess
  • shell (weak) ssbeatty-agentflow-02a5229/backend/tests/test_venv_manager.py :12 import subprocess

network 10

  • net ssbeatty-agentflow-02a5229/backend/agentflow/__init__.py :237 All other keyword args pass straight through to `httpx.request`
  • net ssbeatty-agentflow-02a5229/backend/app/routers/marketplace.py :9 import httpx
  • net ssbeatty-agentflow-02a5229/backend/app/routers/search_config.py :60 import httpx
  • net ssbeatty-agentflow-02a5229/backend/services/callbacks.py :27 import httpx
  • net ssbeatty-agentflow-02a5229/backend/services/llm_models.py :11 import httpx
  • net ssbeatty-agentflow-02a5229/backend/services/marketplace.py :24 import httpx
  • net ssbeatty-agentflow-02a5229/backend/services/marketplace_registry.py :17 import httpx
  • net ssbeatty-agentflow-02a5229/backend/services/mcp_oauth.py :28 from urllib.parse import urlencode, urlsplit
  • net ssbeatty-agentflow-02a5229/backend/services/notifications.py :23 import httpx
  • net (weak) ssbeatty-agentflow-02a5229/backend/tests/test_callbacks.py :5 path — all without touching the network (httpx.post is monkeypatched).

secrets 5

  • secrets ssbeatty-agentflow-02a5229/backend/app/auth_deps.py :132 token = os.getenv("AGENTFLOW_METRICS_TOKEN", "").strip()
  • secrets ssbeatty-agentflow-02a5229/backend/app/routers/marketplace.py :45 {"provider": "skillsmp", "has_key": bool(os.environ.get("SKILLSMP_API_KEY"))},
  • secrets ssbeatty-agentflow-02a5229/backend/services/marketplace.py :42 tok = os.environ.get("GITHUB_TOKEN") or os.environ.get("GH_TOKEN")
  • secrets ssbeatty-agentflow-02a5229/backend/services/marketplace_registry.py :28 key = os.environ.get("SKILLSMP_API_KEY")
  • secrets (weak) ssbeatty-agentflow-02a5229/backend/tests/conftest.py :24 os.environ["SECRET_KEY"] = "test-secret-key-do-not-use-in-prod"

database 36

  • db ssbeatty-agentflow-02a5229/backend/alembic/versions/0001_baseline_schema.py :11 import sqlalchemy as sa
  • db ssbeatty-agentflow-02a5229/backend/alembic/versions/0002_add_max_executions.py :16 import sqlalchemy as sa
  • db ssbeatty-agentflow-02a5229/backend/alembic/versions/0003_add_search_config.py :20 import sqlalchemy as sa
  • db ssbeatty-agentflow-02a5229/backend/alembic/versions/0004_add_conversation_reasoning_effort.py :15 import sqlalchemy as sa
  • db ssbeatty-agentflow-02a5229/backend/alembic/versions/0005_add_message_reasoning.py :15 import sqlalchemy as sa
  • db ssbeatty-agentflow-02a5229/backend/alembic/versions/0006_add_execution_token_usage.py :19 import sqlalchemy as sa
  • db ssbeatty-agentflow-02a5229/backend/alembic/versions/0007_add_eval_tables.py :15 import sqlalchemy as sa
  • db ssbeatty-agentflow-02a5229/backend/alembic/versions/0008_add_script_input_schema.py :16 import sqlalchemy as sa
  • db ssbeatty-agentflow-02a5229/backend/alembic/versions/0009_add_script_warm_worker.py :16 import sqlalchemy as sa
  • db ssbeatty-agentflow-02a5229/backend/alembic/versions/0010_add_notifications.py :14 import sqlalchemy as sa
  • db ssbeatty-agentflow-02a5229/backend/alembic/versions/0011_add_execution_callback_url.py :13 import sqlalchemy as sa
  • db ssbeatty-agentflow-02a5229/backend/alembic/versions/0012_add_script_modules.py :16 import sqlalchemy as sa
  • db ssbeatty-agentflow-02a5229/backend/alembic/versions/0013_add_conversation_message_checkpoint.py :18 import sqlalchemy as sa
  • db ssbeatty-agentflow-02a5229/backend/app/auth_deps.py :19 from sqlalchemy.orm import Session
  • db ssbeatty-agentflow-02a5229/backend/app/database.py :3 from sqlalchemy import create_engine, event
  • db ssbeatty-agentflow-02a5229/backend/app/migrate.py :29 from sqlalchemy import inspect, update
  • db ssbeatty-agentflow-02a5229/backend/app/models.py :1 from sqlalchemy import Column, String, Text, DateTime, Boolean, ForeignKey, JSON, Integer
  • db ssbeatty-agentflow-02a5229/backend/app/routers/api_keys.py :14 from sqlalchemy.orm import Session
  • db ssbeatty-agentflow-02a5229/backend/app/routers/assistant.py :11 from sqlalchemy.orm import Session
  • db ssbeatty-agentflow-02a5229/backend/app/routers/auth.py :17 from sqlalchemy.orm import Session
  • db ssbeatty-agentflow-02a5229/backend/app/routers/channels.py :3 from sqlalchemy.orm import Session
  • db ssbeatty-agentflow-02a5229/backend/app/routers/conversations.py :6 from sqlalchemy.orm import Session
  • db ssbeatty-agentflow-02a5229/backend/app/routers/cron_jobs.py :2 from sqlalchemy.orm import Session
  • db ssbeatty-agentflow-02a5229/backend/app/routers/evals.py :11 from sqlalchemy.orm import Session
  • db ssbeatty-agentflow-02a5229/backend/app/routers/executions.py :7 from sqlalchemy.orm import Session
  • db ssbeatty-agentflow-02a5229/backend/app/routers/files.py :19 from sqlalchemy.orm import Session
  • db ssbeatty-agentflow-02a5229/backend/app/routers/llm_configs.py :2 from sqlalchemy.orm import Session
  • db ssbeatty-agentflow-02a5229/backend/app/routers/mcp_servers.py :4 from sqlalchemy.orm import Session
  • db ssbeatty-agentflow-02a5229/backend/app/routers/notifications.py :5 from sqlalchemy.orm import Session
  • db ssbeatty-agentflow-02a5229/backend/app/routers/scripts.py :7 from sqlalchemy.exc import IntegrityError
  • db ssbeatty-agentflow-02a5229/backend/app/routers/search_config.py :11 from sqlalchemy.orm import Session
  • db ssbeatty-agentflow-02a5229/backend/app/routers/secrets.py :3 from sqlalchemy.orm import Session
  • db ssbeatty-agentflow-02a5229/backend/services/conversation_threads.py :21 import sqlite3
  • db ssbeatty-agentflow-02a5229/backend/services/metrics.py :503 from sqlalchemy import func
  • db ssbeatty-agentflow-02a5229/backend/services/module_support.py :21 from sqlalchemy.orm import Session
  • db (weak) ssbeatty-agentflow-02a5229/backend/tests/test_db_pool.py :14 from sqlalchemy import text

tool registrations 25

  • get_platform_context ssbeatty-agentflow-02a5229/backend/services/mcp_gateway.py :95
  • get_scripting_guide ssbeatty-agentflow-02a5229/backend/services/mcp_gateway.py :146
  • list_scripts ssbeatty-agentflow-02a5229/backend/services/mcp_gateway.py :159
  • get_script ssbeatty-agentflow-02a5229/backend/services/mcp_gateway.py :177
  • create_script ssbeatty-agentflow-02a5229/backend/services/mcp_gateway.py :203
  • update_script ssbeatty-agentflow-02a5229/backend/services/mcp_gateway.py :235
  • read_script_file ssbeatty-agentflow-02a5229/backend/services/mcp_gateway.py :271
  • write_script_file ssbeatty-agentflow-02a5229/backend/services/mcp_gateway.py :288
  • delete_script_file ssbeatty-agentflow-02a5229/backend/services/mcp_gateway.py :337
  • sync_script_schema ssbeatty-agentflow-02a5229/backend/services/mcp_gateway.py :358
  • list_skills ssbeatty-agentflow-02a5229/backend/services/mcp_gateway.py :387
  • get_skill ssbeatty-agentflow-02a5229/backend/services/mcp_gateway.py :399
  • read_skill_file ssbeatty-agentflow-02a5229/backend/services/mcp_gateway.py :417
  • write_skill_file ssbeatty-agentflow-02a5229/backend/services/mcp_gateway.py :431
  • create_skill ssbeatty-agentflow-02a5229/backend/services/mcp_gateway.py :446
  • delete_skill_file ssbeatty-agentflow-02a5229/backend/services/mcp_gateway.py :454
  • setup_script_env ssbeatty-agentflow-02a5229/backend/services/mcp_gateway.py :467
  • run_script ssbeatty-agentflow-02a5229/backend/services/mcp_gateway.py :502
  • list_executions ssbeatty-agentflow-02a5229/backend/services/mcp_gateway.py :555
  • get_execution_logs ssbeatty-agentflow-02a5229/backend/services/mcp_gateway.py :573
  • list_eval_cases ssbeatty-agentflow-02a5229/backend/services/mcp_gateway.py :606
  • add_eval_case ssbeatty-agentflow-02a5229/backend/services/mcp_gateway.py :623
  • update_eval_case ssbeatty-agentflow-02a5229/backend/services/mcp_gateway.py :663
  • delete_eval_case ssbeatty-agentflow-02a5229/backend/services/mcp_gateway.py :694
  • run_eval ssbeatty-agentflow-02a5229/backend/services/mcp_gateway.py :709

declared dependencies 27

  • mcp@>=1.28.0
  • fastapi@>=0.115.0
  • uvicorn@[standard]>=0.32.0
  • sqlalchemy@>=2.0.0
  • alembic@>=1.13.0
  • pydantic@>=2.10.0
  • pydantic-settings@>=2.7.0
  • python-multipart@>=0.0.20
  • apscheduler@>=3.10.4
  • python-dotenv@>=1.0.0
  • websockets@>=14.0
  • loguru@>=0.7.0
  • jsonschema@>=4.20.0
  • prometheus-client@>=0.20.0
  • httpx@>=0.27.0
  • langchain-core@*
  • langchain-openai@*
  • langchain-deepseek@*
  • langgraph@*
  • langgraph-checkpoint-sqlite@*
  • langchain-mcp-adapters@*
  • nest-asyncio@*
  • deepagents@*
  • ddgs@*
  • beautifulsoup4@*
  • tzdata@*
  • psycopg2-binary@>=2.9.9