github Python analyzed 9e688fa

offx-zinth/SMP

github

Structural Memory Protocol (SMP) — live structural code graph for scalable, safe AI agents.

maintainer
offx-zinth
licence
MIT
first seen
2026-09-18
last seen
2026-09-18
releases · 30d
0
short id

Drift inferred · capture-to-capture

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

capabilities 50 tools
transport stdio counts 50 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • smp_annotate
  • smp_annotate_bulk
  • smp_audit_get
  • smp_batch_update
  • smp_checkpoint
  • smp_community_boundaries
  • smp_community_detect
  • smp_community_get
  • smp_community_list
  • smp_conflict
  • smp_context
  • smp_diff
  • smp_dryrun
  • smp_enrich
  • smp_enrich_batch
  • smp_enrich_stale
  • smp_enrich_status
  • smp_flow
  • smp_impact
  • smp_index_import
  • smp_integrity_baseline
  • smp_integrity_check
  • smp_locate
  • smp_lock
  • smp_navigate
  • smp_plan
  • smp_pr_create
  • smp_reindex
  • smp_review_approve
  • smp_review_create
  • smp_review_reject
  • smp_rollback
  • smp_sandbox_execute
  • smp_sandbox_kill
  • smp_sandbox_spawn
  • smp_search
  • smp_session_close
  • smp_session_open
  • smp_session_recover
  • smp_sync
  • smp_tag
  • smp_telemetry
  • smp_trace
  • smp_unlock
  • smp_update
  • smp_vector_delete
  • smp_vector_search
  • smp_vector_upsert
  • smp_why
  • tool_fn
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 9e688fa · analyzer v33 · 9h ago

skills & prompt files 1

danger signals1

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

code files: 175

filesystem 58

  • fs (weak) offx-zinth-SMP-9e688fa/benchmarks/benchmark_scale.py :28 from pathlib import Path
  • fs (weak) offx-zinth-SMP-9e688fa/benchmarks/benchmark_vector.py :20 from pathlib import Path
  • fs offx-zinth-SMP-9e688fa/smp/cli.py :9 from pathlib import Path
  • fs offx-zinth-SMP-9e688fa/smp/observability/backup.py :40 import shutil
  • fs offx-zinth-SMP-9e688fa/smp/protocol/auth.py :36 from pathlib import Path
  • fs offx-zinth-SMP-9e688fa/smp/protocol/handlers/memory.py :12 from pathlib import Path
  • fs offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :29 from pathlib import Path
  • fs offx-zinth-SMP-9e688fa/smp/protocol/server.py :19 from pathlib import Path
  • fs offx-zinth-SMP-9e688fa/smp/runtime/git_provider.py :38 from pathlib import Path
  • fs offx-zinth-SMP-9e688fa/smp/runtime/sandbox.py :33 import shutil
  • fs offx-zinth-SMP-9e688fa/smp/store/graph/mmap_file.py :29 from pathlib import Path
  • fs offx-zinth-SMP-9e688fa/smp/store/graph/mmap_store.py :34 from pathlib import Path
show 28 more
  • fs offx-zinth-SMP-9e688fa/smp/store/graph/parser.py :6 from pathlib import Path
  • fs offx-zinth-SMP-9e688fa/smp/store/graph/watcher.py :22 from pathlib import Path
  • fs offx-zinth-SMP-9e688fa/smp/vector/mmap_vector.py :53 from pathlib import Path
  • fs (weak) offx-zinth-SMP-9e688fa/tests/cli/test_commands.py :7 from pathlib import Path
  • fs (weak) offx-zinth-SMP-9e688fa/tests/compliance/test_audit_trail.py :5 from pathlib import Path
  • fs (weak) offx-zinth-SMP-9e688fa/tests/component/test_audit_logger.py :5 from pathlib import Path
  • fs (weak) offx-zinth-SMP-9e688fa/tests/component/test_edge_store.py :4 from pathlib import Path
  • fs (weak) offx-zinth-SMP-9e688fa/tests/component/test_journal.py :3 import shutil
  • fs (weak) offx-zinth-SMP-9e688fa/tests/component/test_lock_manager.py :6 from pathlib import Path
  • fs (weak) offx-zinth-SMP-9e688fa/tests/component/test_node_store.py :3 from pathlib import Path
  • fs (weak) offx-zinth-SMP-9e688fa/tests/component/test_vector_store.py :3 from pathlib import Path
  • fs (weak) offx-zinth-SMP-9e688fa/tests/conftest.py :6 from pathlib import Path
  • fs (weak) offx-zinth-SMP-9e688fa/tests/dr/test_cli_backup_restore.py :17 from pathlib import Path
  • fs (weak) offx-zinth-SMP-9e688fa/tests/dr/test_health_checks.py :161 with open(graph_path, "ab") as f:
  • fs (weak) offx-zinth-SMP-9e688fa/tests/dr/test_high_availability.py :10 import shutil
  • fs (weak) offx-zinth-SMP-9e688fa/tests/dr/test_journal_corruption.py :44 with open(graph_path, "ab") as f:
  • fs (weak) offx-zinth-SMP-9e688fa/tests/dr/test_shutdown_recovery.py :14 from pathlib import Path
  • fs (weak) offx-zinth-SMP-9e688fa/tests/dr/test_vector_recovery.py :348 with open(vector_path, "ab") as f:
  • fs (weak) offx-zinth-SMP-9e688fa/tests/e2e/test_all_52_handlers.py :3 from pathlib import Path
  • fs (weak) offx-zinth-SMP-9e688fa/tests/e2e/test_backup_restore_cycle.py :3 from pathlib import Path
  • fs (weak) offx-zinth-SMP-9e688fa/tests/e2e/test_full_ingestion_flow.py :3 from pathlib import Path
  • fs (weak) offx-zinth-SMP-9e688fa/tests/e2e/test_impact_analysis_flow.py :3 from pathlib import Path
  • fs (weak) offx-zinth-SMP-9e688fa/tests/e2e/test_mcp_server.py :8 from pathlib import Path
  • fs (weak) offx-zinth-SMP-9e688fa/tests/e2e/test_session_full_lifecycle.py :3 from pathlib import Path
  • fs (weak) offx-zinth-SMP-9e688fa/tests/integration/test_backup_restore.py :3 from pathlib import Path
  • fs (weak) offx-zinth-SMP-9e688fa/tests/integration/test_multilang_ingestion.py :5 from pathlib import Path
  • fs (weak) offx-zinth-SMP-9e688fa/tests/integration/test_session_transactions.py :16 from pathlib import Path
  • fs (weak) offx-zinth-SMP-9e688fa/tests/observability/test_logging.py :6 from pathlib import Path

18 more not shown — this panel samples each group; the count above is the real total.

shell / exec 6

  • shell offx-zinth-SMP-9e688fa/smp/runtime/git_provider.py :32 import subprocess
  • shell (weak) offx-zinth-SMP-9e688fa/tests/cli/test_commands.py :5 import subprocess
  • shell (weak) offx-zinth-SMP-9e688fa/tests/dr/test_cli_backup_restore.py :14 import subprocess
  • shell (weak) offx-zinth-SMP-9e688fa/tests/dr/test_shutdown_recovery.py :12 import subprocess
  • shell (weak) offx-zinth-SMP-9e688fa/tests/security/test_vulnerability_scan.py :3 import subprocess
  • shell (weak) offx-zinth-SMP-9e688fa/tests/test_git_provider.py :6 import subprocess

network 8

  • net offx-zinth-SMP-9e688fa/smp/runtime/git_provider.py :33 import urllib.error
  • net (weak) offx-zinth-SMP-9e688fa/tests/component/test_handler_dispatch.py :9 from httpx import ASGITransport, AsyncClient
  • net (weak) offx-zinth-SMP-9e688fa/tests/e2e/test_all_52_handlers.py :6 from httpx import ASGITransport, AsyncClient
  • net (weak) offx-zinth-SMP-9e688fa/tests/e2e/test_backup_restore_cycle.py :6 from httpx import ASGITransport, AsyncClient
  • net (weak) offx-zinth-SMP-9e688fa/tests/e2e/test_full_ingestion_flow.py :6 from httpx import ASGITransport, AsyncClient
  • net (weak) offx-zinth-SMP-9e688fa/tests/e2e/test_impact_analysis_flow.py :6 from httpx import ASGITransport, AsyncClient
  • net (weak) offx-zinth-SMP-9e688fa/tests/e2e/test_session_full_lifecycle.py :6 from httpx import ASGITransport, AsyncClient
  • net (weak) offx-zinth-SMP-9e688fa/tests/smoke/test_health.py :4 from httpx import AsyncClient

secrets 1

  • secrets offx-zinth-SMP-9e688fa/smp/runtime/git_provider.py :343 token = os.environ.get("SMP_GITHUB_TOKEN") or os.environ.get("GITHUB_TOKEN", "")

database 1

  • db offx-zinth-SMP-9e688fa/smp/protocol/auth.py :43 import redis

tool registrations 50

  • tool_fn offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :144
  • smp_navigate offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :228
  • smp_trace offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :234
  • smp_context offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :244
  • smp_impact offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :250
  • smp_locate offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :256
  • smp_search offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :277
  • smp_flow offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :284
  • smp_update offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :295
  • smp_batch_update offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :303
  • smp_reindex offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :311
  • smp_enrich offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :317
show 28 more
  • smp_enrich_batch offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :323
  • smp_enrich_stale offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :329
  • smp_enrich_status offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :335
  • smp_annotate offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :341
  • smp_annotate_bulk offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :353
  • smp_tag offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :361
  • smp_session_open offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :374
  • smp_session_close offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :386
  • smp_session_recover offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :392
  • smp_dryrun offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :398
  • smp_checkpoint offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :415
  • smp_rollback offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :423
  • smp_lock offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :429
  • smp_unlock offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :441
  • smp_audit_get offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :449
  • smp_diff offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :460
  • smp_plan offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :468
  • smp_conflict offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :489
  • smp_why offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :499
  • smp_telemetry offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :505
  • smp_review_create offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :518
  • smp_review_approve offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :536
  • smp_review_reject offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :542
  • smp_pr_create offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :548
  • smp_sandbox_spawn offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :570
  • smp_sandbox_execute offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :580
  • smp_sandbox_kill offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :592
  • smp_community_detect offx-zinth-SMP-9e688fa/smp/protocol/mcp.py :603

10 more not shown — this panel samples each group; the count above is the real total.

declared dependencies 34

  • mcp@>=1.0
  • msgspec@>=0.19
  • fastapi@>=0.115
  • uvicorn@>=0.34
  • httpx@>=0.27
  • tree-sitter@>=0.24
  • tree-sitter-python@>=0.23
  • tree-sitter-javascript@>=0.21
  • tree-sitter-typescript@>=0.23
  • tree-sitter-java@>=0.23
  • tree-sitter-c@>=0.23
  • tree-sitter-cpp@>=0.23
show 22 more
  • tree-sitter-c-sharp@>=0.23
  • tree-sitter-go@>=0.23
  • tree-sitter-rust@>=0.23
  • tree-sitter-php@>=0.23
  • tree-sitter-swift@>=0.0.1
  • tree-sitter-kotlin@>=1.0
  • tree-sitter-ruby@>=0.23
  • tree-sitter-matlab@>=1.0
  • python-dotenv@>=1.0
  • structlog@>=24.0
  • redis@>=5.0
  • watchdog@>=4.0
  • faiss-cpu@>=1.7
  • numpy@>=1.26
  • pytest@>=8.0
  • pytest-asyncio@>=0.24
  • ruff@>=0.8
  • mypy@>=1.13
  • pytest-benchmark@>=4.0
  • locust@>=2.20
  • pytest-cov@>=4.1
  • pytest-mock@>=3.12