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.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
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
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
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