Structured cross-project memory for coding agents. Tiered retrieval with no embeddings or vector database.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio counts 23 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
approve_candidates
-
audit_memories
-
correct_memory
-
doctor
-
edit_fact
-
forget
-
import_memories
-
inspect
-
list_candidates
-
mark_stale
-
memory_stats
-
merge_memories
-
purge
-
recall
-
recall_context
-
recall_stats
-
recall_trace
-
reject_candidates
-
remember
-
rename_project
-
suggest_memories
-
sync
-
unmark_stale
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 604439a · analyzer v33 · 1w ago
skills & prompt files 2
- agent-rules adamthuvesen-engram-604439a/AGENTS.md
- agent-rules adamthuvesen-engram-604439a/CLAUDE.md
danger signals1
- dynamic code execution __import__ sink adamthuvesen-engram-604439a/tests/test_hardening.py :120
original_fsync = __import__("os").fsync
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 71
filesystem 27
- fs adamthuvesen-engram-604439a/src/engram/core/config.py :7
from pathlib import Path - fs adamthuvesen-engram-604439a/src/engram/dashboard/app.py :6
from pathlib import Path - fs adamthuvesen-engram-604439a/src/engram/extraction/importer.py :4
from pathlib import Path - fs adamthuvesen-engram-604439a/src/engram/maintenance/doctor.py :22
from pathlib import Path - fs adamthuvesen-engram-604439a/src/engram/recall/evals.py :24
from pathlib import Path - fs adamthuvesen-engram-604439a/src/engram/storage/store.py :15
from pathlib import Path - fs adamthuvesen-engram-604439a/src/engram/storage/sync.py :19
import shutil - fs (weak) adamthuvesen-engram-604439a/tests/bench_tiers.py :19
from pathlib import Path - fs (weak) adamthuvesen-engram-604439a/tests/run_cross_project_recall_evals.py :18
from pathlib import Path - fs (weak) adamthuvesen-engram-604439a/tests/run_evals.py :54
from pathlib import Path - fs (weak) adamthuvesen-engram-604439a/tests/run_extraction_quality_evals.py :21
from pathlib import Path - fs (weak) adamthuvesen-engram-604439a/tests/run_memory_audit_evals.py :21
from pathlib import Path
show 15 more
- fs (weak) adamthuvesen-engram-604439a/tests/test_cli.py :8
from pathlib import Path - fs (weak) adamthuvesen-engram-604439a/tests/test_cli_parity.py :8
from pathlib import Path - fs (weak) adamthuvesen-engram-604439a/tests/test_doctor.py :8
from pathlib import Path - fs (weak) adamthuvesen-engram-604439a/tests/test_evals.py :5
from pathlib import Path - fs (weak) adamthuvesen-engram-604439a/tests/test_event_log.py :439
from pathlib import Path - fs (weak) adamthuvesen-engram-604439a/tests/test_hardening.py :8
from pathlib import Path - fs (weak) adamthuvesen-engram-604439a/tests/test_maintenance.py :7
from pathlib import Path - fs (weak) adamthuvesen-engram-604439a/tests/test_observer.py :6
from pathlib import Path - fs (weak) adamthuvesen-engram-604439a/tests/test_operations.py :8
from pathlib import Path - fs (weak) adamthuvesen-engram-604439a/tests/test_provenance.py :7
from pathlib import Path - fs (weak) adamthuvesen-engram-604439a/tests/test_retriever.py :5
from pathlib import Path - fs (weak) adamthuvesen-engram-604439a/tests/test_safety.py :4
from pathlib import Path - fs (weak) adamthuvesen-engram-604439a/tests/test_server_recall.py :7
from pathlib import Path - fs (weak) adamthuvesen-engram-604439a/tests/test_store.py :9
from pathlib import Path - fs (weak) adamthuvesen-engram-604439a/tests/test_sync.py :15
import shutil
shell / exec 4
- shell adamthuvesen-engram-604439a/src/engram/maintenance/doctor.py :19
import subprocess - shell adamthuvesen-engram-604439a/src/engram/storage/sync.py :20
import subprocess - shell (weak) adamthuvesen-engram-604439a/tests/test_doctor.py :327
import subprocess as _subprocess - shell (weak) adamthuvesen-engram-604439a/tests/test_sync.py :16
import subprocess
secrets 2
- secrets adamthuvesen-engram-604439a/src/engram/core/config.py :123
current = os.environ.get("OPENAI_API_KEY") - secrets (weak) adamthuvesen-engram-604439a/tests/test_config.py :59
assert os.environ["OPENAI_API_KEY"] == "cached-key"
tool registrations 23
- remember adamthuvesen-engram-604439a/src/engram/server.py :191
- suggest_memories adamthuvesen-engram-604439a/src/engram/server.py :207
- list_candidates adamthuvesen-engram-604439a/src/engram/server.py :225
- approve_candidates adamthuvesen-engram-604439a/src/engram/server.py :243
- reject_candidates adamthuvesen-engram-604439a/src/engram/server.py :257
- recall adamthuvesen-engram-604439a/src/engram/server.py :273
- recall_trace adamthuvesen-engram-604439a/src/engram/server.py :308
- recall_context adamthuvesen-engram-604439a/src/engram/server.py :336
- forget adamthuvesen-engram-604439a/src/engram/server.py :354
- edit_fact adamthuvesen-engram-604439a/src/engram/server.py :364
- inspect adamthuvesen-engram-604439a/src/engram/server.py :388
- correct_memory adamthuvesen-engram-604439a/src/engram/server.py :408
show 11 more
- merge_memories adamthuvesen-engram-604439a/src/engram/server.py :433
- mark_stale adamthuvesen-engram-604439a/src/engram/server.py :458
- unmark_stale adamthuvesen-engram-604439a/src/engram/server.py :464
- import_memories adamthuvesen-engram-604439a/src/engram/server.py :472
- purge adamthuvesen-engram-604439a/src/engram/server.py :481
- rename_project adamthuvesen-engram-604439a/src/engram/server.py :487
- audit_memories adamthuvesen-engram-604439a/src/engram/server.py :501
- doctor adamthuvesen-engram-604439a/src/engram/server.py :514
- memory_stats adamthuvesen-engram-604439a/src/engram/server.py :540
- recall_stats adamthuvesen-engram-604439a/src/engram/server.py :546
- sync adamthuvesen-engram-604439a/src/engram/server.py :562
declared dependencies 13
- fastmcp@==4.0.0b2
- pydantic@>=2.0.0
- pydantic-settings@>=2.0.0
- litellm@>=1.40.0
- pyyaml@>=6.0.0
- textual@>=1.0.0
- textual-plotext@>=1.0.0
- mypy@>=2.2.0
- pre-commit@>=4.0.0
- pytest@>=8.0.0
- pytest-asyncio@>=0.23.0
- ruff@>=0.15.0
show 1 more
- types-pyyaml@>=6.0.12.20260518