AI agents that live in your folder, not someone else's database. Vault-native, MIT-licensed. 21 spec docs + Python reference implementation.
Drift inferred · capture-to-capture
- HIGH code analysis flagged committed secret ×2, dynamic code execution ×3 in dep0we/atomic-agents-stack
- HIGH code analysis flagged dynamic code execution ×2 in dep0we/atomic-agents-stack
- HIGH code analysis flagged dynamic code execution ×2 in dep0we/atomic-agents-stack
- HIGH code analysis flagged dynamic code execution ×2 in dep0we/atomic-agents-stack
- HIGH code analysis flagged dynamic code execution ×2 in dep0we/atomic-agents-stack
- HIGH code analysis flagged dynamic code execution ×5 in dep0we/atomic-agents-stack
- HIGH code analysis flagged dynamic code execution ×5 in dep0we/atomic-agents-stack
- HIGH code analysis flagged dynamic code execution ×4 in dep0we/atomic-agents-stack
- HIGH code analysis flagged dynamic code execution ×4 in dep0we/atomic-agents-stack
- HIGH code analysis flagged dynamic code execution ×4 in dep0we/atomic-agents-stack
- HIGH code analysis flagged dynamic code execution ×4 in dep0we/atomic-agents-stack
transport stdio · http counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
No tools enumerated yet for this server.
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 0be6770 · analyzer v28 · 2d ago
skills & prompt files 12
- skill dep0we-atomic-agents-stack-0be6770/.claude/skills/arc/SKILL.md
- agent-rules dep0we-atomic-agents-stack-0be6770/.cursor/rules/memory.mdc
- agent-rules dep0we-atomic-agents-stack-0be6770/AGENTS.md
- agent-rules dep0we-atomic-agents-stack-0be6770/CLAUDE.md
- skill dep0we-atomic-agents-stack-0be6770/docs/samples/caldwell/skills/financial-modeling/SKILL.md
- skill dep0we-atomic-agents-stack-0be6770/extras/claude-code-skills/atomic-agents-dashboard/SKILL.md
- skill dep0we-atomic-agents-stack-0be6770/extras/claude-code-skills/atomic-agents-eval/SKILL.md
- skill dep0we-atomic-agents-stack-0be6770/extras/claude-code-skills/atomic-agents-goal/SKILL.md
- skill dep0we-atomic-agents-stack-0be6770/extras/claude-code-skills/atomic-agents-info/SKILL.md
- skill dep0we-atomic-agents-stack-0be6770/extras/claude-code-skills/atomic-agents-migrate/SKILL.md
- skill dep0we-atomic-agents-stack-0be6770/extras/claude-code-skills/atomic-agents-run/SKILL.md
- skill dep0we-atomic-agents-stack-0be6770/extras/claude-code-skills/atomic-agents-tune/SKILL.md
danger signals6
- dynamic code execution __import__() dep0we-atomic-agents-stack-0be6770/atomic_agents/doctor.py :658
__import__(sdk_module) - dynamic code execution unsafe yaml.load() dep0we-atomic-agents-stack-0be6770/atomic_agents/registry/filesystem.py :649
frontmatter = yaml.load(frontmatter_text, Loader=_YamlLoader) - dynamic code execution pickle.loads() dep0we-atomic-agents-stack-0be6770/tests/test_llm_types_and_registry.py :362
restored = pickle.loads(pickle.dumps(err)) - over-broad OAuth scope https://www.googleapis.com/auth/cloud-platform dep0we-atomic-agents-stack-0be6770/atomic_agents/doctor.py :778
scopes=["https://www.googleapis.com/auth/cloud-platform"] - committed secret Anthropic key dep0we-atomic-agents-stack-0be6770/tests/test_secret_backend_cli.py :65
sk-ant…(36 chars, redacted) - committed secret Anthropic key dep0we-atomic-agents-stack-0be6770/tests/test_secret_backend_protocol_conformance.py :519
sk-ant…(31 chars, redacted)
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 434
filesystem 115
- fs dep0we-atomic-agents-stack-0be6770/atomic_agents/_capture.py :23
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/_cascade.py :40
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/_costs.py :12
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/_goal_impl.py :18
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/_io.py :14
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/_locks.py :37
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/_model.py :13
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/_platform.py :8
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/_roster.py :24
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/_schema.py :10
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/_tools.py :12
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/_versioning.py :30
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/advisor/recommend.py :62
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/advisor/score.py :46
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/advisor/targets.py :75
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/agent.py :24
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/agent_registry/__init__.py :59
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/agent_registry/filesystem.py :71
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/bundle.py :36
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/cli.py :47
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/conductor/__main__.py :64
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/conductor/playbook.py :76
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/conductor/run.py :80
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/conductor/types.py :31
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/conversation/__init__.py :64
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/conversation/filesystem.py :110
- per-turn file absent between listing and open (TOCTOU) → skip (continue) - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/dashboard/__init__.py :8
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/dashboard/__main__.py :6
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/dashboard/activity.py :17
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/dashboard/alert_state.py :41
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/dashboard/attention.py :48
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/dashboard/costs.py :14
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/dashboard/goals.py :16
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/dashboard/memory.py :16
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/dashboard/quality.py :14
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/dashboard/render.py :22
import shutil - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/dashboard/render_agent_detail.py :27
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/dashboard/render_monitor.py :23
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/dashboard/serve.py :37
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/delegate.py :17
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/deploy/_exposure.py :22
import shutil - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/deploy/_launchd.py :24
import shutil - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/deploy/_planner.py :46
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/deploy/_ports.py :21
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/doctor.py :72
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/dream.py :49
import shutil - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/eval.py :9
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/exceptions.py :898
and ``open()``) → skip (``continue``) - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/export/filesystem.py :24
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/goal/__init__.py :50
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/goal/coordinator.py :64
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/goal/filesystem.py :77
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/idempotency/__init__.py :50
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/idempotency/backend.py :21
by O_EXCL file creation: the first caller to open(path, O_EXCL) wins FRESH; - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/idempotency/filesystem.py :18
on the lease file. Under concurrent callers, exactly one open() succeeds - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/init/wizard.py :17
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/journal/__init__.py :41
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/journal/filesystem.py :87
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/journal/types.py :50
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/judge/_revise.py :422
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/judge/escalation.py :66
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/judge/mandate_check.py :1163
# flag explicitly; an omitted flag must over-block, never fail-open (#512). - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/judge/rules.py :26
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/judges_md.py :39
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/locks/__init__.py :39
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/locks/backend.py :29
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/locks/filesystem.py :40
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/logs/__init__.py :42
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/logs/filesystem.py :44
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/logs/sqlite.py :71
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/manage/__init__.py :41
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/manage/_routine.py :102
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/manage/apply_rec.py :85
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/manage/govern.py :37
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/manage/set_model.py :102
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/mandate/backend.py :52
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/mandate/filesystem.py :72
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/mandates_md.py :50
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/mcp.py :35
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/mcp_registry/__init__.py :61
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/mcp_registry/filesystem.py :20
import shutil - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/memory/__init__.py :25
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/memory/backend.py :18
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/memory/filesystem.py :27
import shutil - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/memory/pgvector.py :102
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/memory/postgres.py :148
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/migrate.py :58
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/migration/filesystem.py :37
import shutil - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/outcome/__init__.py :62
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/outcome/_outcome_impl.py :13
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/outcome/filesystem.py :54
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/outcome/types.py :24
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/persona/backend.py :36
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/persona/filesystem.py :69
import shutil - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/persona_link_md.py :34
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/policy/backend.py :73
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/policy/filesystem.py :48
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/policy_md.py :79
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/profile/__init__.py :43
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/profile/filesystem.py :51
import shutil - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/profile/sqlite.py :65
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/queue/__init__.py :48
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/queue/filesystem.py :98
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/registry/__init__.py :43
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/registry/filesystem.py :82
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/registry/sqlite.py :76
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/review.py :35
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/secret_backend/filesystem.py :27
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/serve/_app.py :18
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/serve/_config.py :17
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/serve/_runner.py :22
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/serve/_server.py :17
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/skills.py :42
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/tuning.py :13
from pathlib import Path - fs dep0we-atomic-agents-stack-0be6770/atomic_agents/types.py :6
from pathlib import Path
shell / exec 3
- shell dep0we-atomic-agents-stack-0be6770/atomic_agents/deploy/_exposure.py :23
import subprocess - shell dep0we-atomic-agents-stack-0be6770/atomic_agents/deploy/_launchd.py :25
import subprocess - shell dep0we-atomic-agents-stack-0be6770/atomic_agents/secret_backend/filesystem.py :105
import subprocess
network 17
- net dep0we-atomic-agents-stack-0be6770/atomic_agents/dashboard/render.py :23
import urllib.parse - net dep0we-atomic-agents-stack-0be6770/atomic_agents/dashboard/render_agent_detail.py :25
import urllib.parse - net dep0we-atomic-agents-stack-0be6770/atomic_agents/dashboard/serve.py :38
from urllib.parse import urlparse - net dep0we-atomic-agents-stack-0be6770/atomic_agents/deploy/_ports.py :20
import socket - net dep0we-atomic-agents-stack-0be6770/atomic_agents/deploy/_verify.py :26
import socket - net dep0we-atomic-agents-stack-0be6770/atomic_agents/doctor.py :1370
from urllib.parse import urlparse - net dep0we-atomic-agents-stack-0be6770/atomic_agents/init/constants.py :467
from urllib.parse import urlparse, urlunparse - net dep0we-atomic-agents-stack-0be6770/atomic_agents/init/wizard.py :1906
import httpx as _httpx_mod - net dep0we-atomic-agents-stack-0be6770/atomic_agents/locks/redis.py :58
from urllib.parse import urlparse - net dep0we-atomic-agents-stack-0be6770/atomic_agents/logs/postgres.py :141
from urllib.parse import parse_qsl, urlencode, urlparse - net dep0we-atomic-agents-stack-0be6770/atomic_agents/logs/sqlite.py :73
from urllib.parse import urlparse - net dep0we-atomic-agents-stack-0be6770/atomic_agents/mcp_registry/http.py :40
from urllib.parse import urlencode - net dep0we-atomic-agents-stack-0be6770/atomic_agents/memory/postgres.py :150
from urllib.parse import parse_qsl, unquote, urlencode, urlparse - net dep0we-atomic-agents-stack-0be6770/atomic_agents/persona/filesystem.py :74
from urllib.parse import parse_qs, urlparse - net dep0we-atomic-agents-stack-0be6770/atomic_agents/profile/sqlite.py :67
from urllib.parse import urlparse - net dep0we-atomic-agents-stack-0be6770/atomic_agents/registry/filesystem.py :53
handler modules (e.g., ``requests.post(...)`` at import time) trip - net dep0we-atomic-agents-stack-0be6770/atomic_agents/registry/sqlite.py :77
from urllib.parse import parse_qsl, urlparse
secrets 2
- secrets dep0we-atomic-agents-stack-0be6770/atomic_agents/embedding/registry.py :149
``api_key=os.environ.get('OPENAI_API_KEY')`` directly would bypass the - secrets dep0we-atomic-agents-stack-0be6770/atomic_agents/mcp_registry/http.py :1756
auth_token = os.environ.get("ATOMIC_AGENTS_MCP_SERVER_REGISTRY_AUTH_TOKEN") or None
database 6
- db dep0we-atomic-agents-stack-0be6770/atomic_agents/judge/mandate_check.py :45
import sqlite3 - db dep0we-atomic-agents-stack-0be6770/atomic_agents/locks/redis.py :482
import redis as _redis_pkg - db dep0we-atomic-agents-stack-0be6770/atomic_agents/logs/sqlite.py :66
import sqlite3 - db dep0we-atomic-agents-stack-0be6770/atomic_agents/memory/postgres.py :119
(paramstyle='qmark' from sqlite3). Every parameterized statement uses %s. - db dep0we-atomic-agents-stack-0be6770/atomic_agents/profile/sqlite.py :61
import sqlite3 - db dep0we-atomic-agents-stack-0be6770/atomic_agents/registry/sqlite.py :70
import sqlite3
declared dependencies 18
- mcp@>=1.0.0
- anthropic@>=0.40
- opentelemetry-api@>=1.20,<2.0
- python-frontmatter@>=1.1
- pyyaml@>=6.0
- rich@>=13.0
- openai@>=1.30
- google-genai@>=1.0
- jsonschema@>=4.0
- redis@>=5.0,<9.0
- pgvector@>=0.3.0
- httpx@>=0.27
- starlette@>=1.0.1
- uvicorn@>=0.20
- google-cloud-secret-manager@>=2.16
- opentelemetry-sdk@>=1.20,<2.0
- opentelemetry-exporter-otlp-proto-http@>=1.20,<2.0
- pytest@>=8.0
cursor-plugin 2
- opaque (low) dep0we-atomic-agents-stack-0be6770/.cursor/BUGBOT.md
bundled .cursor/ plugin descriptor (dep0we-atomic-agents-stack-0be6770/.cursor/BUGBOT.md) — presence-detected; review the descriptor - opaque (low) dep0we-atomic-agents-stack-0be6770/.cursor/rules/memory.mdc
bundled .cursor/ plugin descriptor (dep0we-atomic-agents-stack-0be6770/.cursor/rules/memory.mdc) — presence-detected; review the descriptor