github Python analyzed 1e839cd

memtomem/memtomem-stm

github

Short-term memory proxy gateway with proactive memory surfacing for AI agents

maintainer
memtomem
license
Apache-2.0
first seen
2026-06-10
last seen
2026-08-01
releases · 30d
14
short id

Drift inferred · capture-to-capture

  1. HIGH code analysis flagged committed secret ×2 in memtomem/memtomem-stm
  2. HIGH code analysis flagged dynamic code execution ×2 in memtomem/memtomem-stm
capabilities 4 tools
transport stdio · streamable-http counts 4 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • stm_compression_feedback
  • stm_proxy_read_more
  • stm_proxy_select_chunks
  • stm_surfacing_feedback
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 1e839cd · analyzer v28 · 1h ago

skills & prompt files 1

danger signals2

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

code files: 278

filesystem 40

  • fs memtomem-memtomem-stm-1e839cd/notebooks/_helpers.py :14 from pathlib import Path
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/cli/_defaults.py :9 from pathlib import Path
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/cli/_write_lock.py :15 from pathlib import Path
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/cli/config_cmd.py :22 from pathlib import Path
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/cli/hook_hosts.py :74 from pathlib import Path
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/cli/mms_host.py :59 from pathlib import Path
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/cli/mms_import.py :58 from pathlib import Path
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/cli/mms_project.py :15 from pathlib import Path
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/cli/proxy.py :13 import shutil
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/cli/selection_cmd.py :5 from pathlib import Path
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/config.py :7 from pathlib import Path
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/daemon/discovery.py :50 from pathlib import Path
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/daemon/locking.py :39 from pathlib import Path
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/logging_setup.py :25 from pathlib import Path
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/mms/detect.py :33 from pathlib import Path
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/mms/import_hosts.py :35 from pathlib import Path
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/mms/state.py :30 from pathlib import Path
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/proxy/cache.py :11 from pathlib import Path
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/proxy/compression_feedback.py :13 from pathlib import Path
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/proxy/compression_feedback_store.py :20 from pathlib import Path
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/proxy/config.py :13 from pathlib import Path
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/proxy/manager.py :20 from pathlib import Path
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/proxy/metrics_store.py :9 from pathlib import Path
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/proxy/pending_store.py :11 from pathlib import Path
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/proxy/progressive_reads.py :12 from pathlib import Path
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/proxy/progressive_reads_store.py :22 from pathlib import Path
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/proxy/protocols.py :6 from pathlib import Path
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/proxy/selection_eval.py :18 from pathlib import Path
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/proxy/selection_log.py :78 from pathlib import Path
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/proxy/toolgraph_bundle.py :18 from pathlib import Path
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/proxy/toolgraph_cache.py :32 from pathlib import Path
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/server.py :919 "open": "open (failing)",
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/surfacing/config.py :5 from pathlib import Path
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/surfacing/engine.py :201 # restart. Runs after the store is known to be open (seed block above
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/surfacing/feedback.py :6 from pathlib import Path
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/surfacing/feedback_store.py :11 from pathlib import Path
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/surfacing/mcp_client.py :13 from pathlib import Path
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/utils/fileio.py :14 from pathlib import Path
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/utils/locking.py :14 from pathlib import Path
  • fs memtomem-memtomem-stm-1e839cd/src/memtomem_stm/utils/sqlite_private.py :22 from pathlib import Path

shell / exec 3

  • shell memtomem-memtomem-stm-1e839cd/src/memtomem_stm/cli/proxy.py :14 import subprocess
  • shell memtomem-memtomem-stm-1e839cd/src/memtomem_stm/daemon/server.py :41 import subprocess
  • shell memtomem-memtomem-stm-1e839cd/src/memtomem_stm/daemon/spawn.py :18 import subprocess

network 8

  • net memtomem-memtomem-stm-1e839cd/src/memtomem_stm/cli/proxy.py :25 from urllib.parse import unquote, urlsplit
  • net memtomem-memtomem-stm-1e839cd/src/memtomem_stm/config.py :244 from urllib.parse import urlsplit, urlunsplit
  • net memtomem-memtomem-stm-1e839cd/src/memtomem_stm/proxy/compression.py :20 import httpx
  • net memtomem-memtomem-stm-1e839cd/src/memtomem_stm/proxy/config.py :10 from urllib.parse import urlparse
  • net memtomem-memtomem-stm-1e839cd/src/memtomem_stm/proxy/extraction.py :11 import httpx
  • net memtomem-memtomem-stm-1e839cd/src/memtomem_stm/proxy/relevance.py :206 import httpx
  • net memtomem-memtomem-stm-1e839cd/src/memtomem_stm/surfacing/mcp_client.py :16 import httpx
  • net memtomem-memtomem-stm-1e839cd/src/memtomem_stm/utils/redact.py :7 from urllib.parse import urlsplit, urlunsplit

secrets 1

  • secrets memtomem-memtomem-stm-1e839cd/src/memtomem_stm/proxy/relevance.py :157 api_key = os.environ.get("OPENAI_API_KEY", "").strip()

database 9

  • db memtomem-memtomem-stm-1e839cd/src/memtomem_stm/proxy/cache.py :7 import sqlite3
  • db memtomem-memtomem-stm-1e839cd/src/memtomem_stm/proxy/compression_feedback_store.py :17 import sqlite3
  • db memtomem-memtomem-stm-1e839cd/src/memtomem_stm/proxy/manager.py :11 import sqlite3
  • db memtomem-memtomem-stm-1e839cd/src/memtomem_stm/proxy/metrics_store.py :6 import sqlite3
  • db memtomem-memtomem-stm-1e839cd/src/memtomem_stm/proxy/pending_store.py :7 import sqlite3
  • db memtomem-memtomem-stm-1e839cd/src/memtomem_stm/proxy/progressive_reads_store.py :19 import sqlite3
  • db memtomem-memtomem-stm-1e839cd/src/memtomem_stm/proxy/toolgraph_cache.py :29 import sqlite3
  • db memtomem-memtomem-stm-1e839cd/src/memtomem_stm/surfacing/feedback_store.py :8 import sqlite3
  • db memtomem-memtomem-stm-1e839cd/src/memtomem_stm/utils/sqlite_tuning.py :16 import sqlite3

tool registrations 4

  • stm_proxy_select_chunks memtomem-memtomem-stm-1e839cd/src/memtomem_stm/server.py :801
  • stm_proxy_read_more memtomem-memtomem-stm-1e839cd/src/memtomem_stm/server.py :825
  • stm_surfacing_feedback memtomem-memtomem-stm-1e839cd/src/memtomem_stm/server.py :1266
  • stm_compression_feedback memtomem-memtomem-stm-1e839cd/src/memtomem_stm/server.py :1911

declared dependencies 13

  • cryptography@>=48.0.1
  • idna@>=3.15
  • pyjwt@>=2.13.0
  • python-multipart@>=0.0.31
  • starlette@>=1.3.1
  • langfuse@>=4.0
  • urllib3@>=2.7.0
  • opentelemetry-sdk@>=1.30
  • opentelemetry-exporter-otlp-proto-http@>=1.30
  • langchain@>=1.0
  • langchain-mcp-adapters@>=0.1
  • langchain-anthropic@>=0.3
  • langsmith@>=0.8.18

transport_posture 1

  • binds all interfaces (0.0.0.0) memtomem-memtomem-stm-1e839cd/tests/test_config_constraints.py :646 cfg = DaemonConfig(host="0.0.0.0", allow_non_loopback=True)