github Python analyzed 01b04f6

GNS-Foundation/grafomem

v0.1.0
github

MCP server that captures agent judgments and outcomes as CGR substrate on GRAFOMEM Cloud

maintainer
GNS-Foundation
license
MIT
first seen
2026-08-24
last seen
2026-09-06
releases · 30d
1
short id

Drift inferred · capture-to-capture

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

capabilities 9 tools
transport stdio · streamable-http · http · sse counts 9 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • cgr_record_decision
  • cgr_record_outcome
  • delete_memory
  • get_capabilities
  • list_memories
  • retrieve_memories
  • run_conformance
  • verify_erasure
  • write_memory
code evidence v0.1.0 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 525

filesystem 83

  • fs GNS-Foundation-grafomem-01b04f6/conformance/cgr-attestation-v4/generate.py :26 _HERE = pathlib.Path(__file__).resolve().parent
  • fs GNS-Foundation-grafomem-01b04f6/conformance/cgr-attestation-v4/verify_bridge.py :9 _HERE = pathlib.Path(__file__).resolve().parent
  • fs GNS-Foundation-grafomem-01b04f6/demo/common.py :24 with open(CREDS_PATH) as f:
  • fs GNS-Foundation-grafomem-01b04f6/demo/poc_onramp.py :32 invoices = [to_canonical(k) for k in json.load(open(path))]
  • fs GNS-Foundation-grafomem-01b04f6/demo/verify_agent.py :26 raw = json.load(open(INVOICES))
  • fs GNS-Foundation-grafomem-01b04f6/dist/grafomem-0.2.0-py3-none-any.whl!/aml/backends/bi_temporal.py :67 self._vuntil: dict[int, datetime | None] = {} # None = open (head)
  • fs GNS-Foundation-grafomem-01b04f6/dist/grafomem-0.2.0-py3-none-any.whl!/aml/backends/sqlite_gmp.py :20 from the beginning", and `valid_until = 2^62` for an open (current) interval.
  • fs GNS-Foundation-grafomem-01b04f6/dist/grafomem-0.2.0-py3-none-any.whl!/aml/cli.py :20 from pathlib import Path
  • fs (weak) GNS-Foundation-grafomem-01b04f6/docs/build_paper.py :1 import pathlib
  • fs (weak) GNS-Foundation-grafomem-01b04f6/docs/cgr/cgr_substrate_reference.py :183 open("out/cgr_substrate_sample.json","w").write(json.dumps({
  • fs GNS-Foundation-grafomem-01b04f6/fix_postgres.py :3 with open("src/aml/backends/postgres_gmp.py", "r") as f:
  • fs GNS-Foundation-grafomem-01b04f6/fix_postgres_pool.py :2 with open("src/aml/backends/postgres_gmp.py", "r") as f:
  • fs GNS-Foundation-grafomem-01b04f6/fix_postgres_rls.py :2 with open("src/aml/backends/postgres_gmp.py", "r") as f:
  • fs GNS-Foundation-grafomem-01b04f6/landing/conformance/code_world_model.py :5 from pathlib import Path
  • fs GNS-Foundation-grafomem-01b04f6/landing/conformance/gates.py :19 rehash = A.b2_256(open(first["path"], "rb").read())
  • fs GNS-Foundation-grafomem-01b04f6/landing/conformance/run_phase1.py :9 from pathlib import Path
  • fs GNS-Foundation-grafomem-01b04f6/landing/conformance/run_phase2.py :11 from pathlib import Path
  • fs GNS-Foundation-grafomem-01b04f6/ontology_manifold_probe.py :588 with open(path, "w") as f:
  • fs GNS-Foundation-grafomem-01b04f6/ops/common.py :30 with open(CREDS_PATH) as f:
  • fs GNS-Foundation-grafomem-01b04f6/ops/encrypt_decision_context.py :120 with open(backup_path, "a", encoding="utf-8") as bf:
  • fs GNS-Foundation-grafomem-01b04f6/ops/govern_dev.py :266 with open(path) as f:
  • fs GNS-Foundation-grafomem-01b04f6/ops/increment1.py :48 with open(path) as f:
  • fs GNS-Foundation-grafomem-01b04f6/ops/ingest_front.py :214 with open(path) as f:
  • fs GNS-Foundation-grafomem-01b04f6/packages/grafomem-cgr/src/grafomem_cgr/capture.py :138 with open(role_keys_path) as f:
  • fs GNS-Foundation-grafomem-01b04f6/patch_whitepaper_v2_7_1_docfixes.py :15 from pathlib import Path
  • fs GNS-Foundation-grafomem-01b04f6/results/findings.py :42 raw = tomllib.load(open(path, "rb"))
  • fs GNS-Foundation-grafomem-01b04f6/rewrite_pg.py :3 with open("src/aml/backends/postgres_gmp.py", "r") as f:
  • fs (weak) GNS-Foundation-grafomem-01b04f6/rewrite_tests.py :3 with open("tests/test_integration_seams.py", "r") as f:
  • fs GNS-Foundation-grafomem-01b04f6/scratch/apply_migration.py :9 with open("src/aml/backends/migrations/004_token_boundaries.sql", "r") as f:
  • fs GNS-Foundation-grafomem-01b04f6/scratch/patch.py :3 with open("src/aml/cloud/replay_engine.py", "r") as f:
  • fs GNS-Foundation-grafomem-01b04f6/scratch/refactor_orch.py :3 with open("src/aml/cloud/orchestrator.py", "r") as f:
  • fs GNS-Foundation-grafomem-01b04f6/scratch/refactor_orchestrator.py :5 with open("src/aml/cloud/orchestrator.py", "r") as f:
  • fs GNS-Foundation-grafomem-01b04f6/scratch/refactor_postgres_gmp.py :5 with open("src/aml/backends/postgres_gmp.py", "r") as f:
  • fs GNS-Foundation-grafomem-01b04f6/scratch/test_db.py :1 import os, json; d = {k: v for k, v in os.environ.items() if "URL" in k or "POSTGRES" in k or "PG" in k or "DATABASE" in k}; open("test_out.json", "w").write(json.dumps(d))
  • fs GNS-Foundation-grafomem-01b04f6/scratch/test_get_wf.py :9 pool.open()
  • fs (weak) GNS-Foundation-grafomem-01b04f6/scripts/dogfood_setup.py :27 from pathlib import Path
  • fs (weak) GNS-Foundation-grafomem-01b04f6/scripts/export_openapi.py :19 from pathlib import Path
  • fs (weak) GNS-Foundation-grafomem-01b04f6/scripts/generate_corpus.py :30 from pathlib import Path
  • fs (weak) GNS-Foundation-grafomem-01b04f6/scripts/generate_reports.py :48 with open(report_path, "w") as f:
  • fs (weak) GNS-Foundation-grafomem-01b04f6/scripts/run_live_flight.py :158 with open("KEY_CUSTODY.md") as f:
  • fs (weak) GNS-Foundation-grafomem-01b04f6/scripts/vec_meta_probe.py :8 3. the sentinel scheme: "" for null tenant, a big int for an open (current) interval,
  • fs GNS-Foundation-grafomem-01b04f6/src/aml/backends/bi_temporal.py :67 self._vuntil: dict[int, datetime | None] = {} # None = open (head)
  • fs GNS-Foundation-grafomem-01b04f6/src/aml/backends/sqlite_gmp.py :20 from the beginning", and `valid_until = 2^62` for an open (current) interval.
  • fs GNS-Foundation-grafomem-01b04f6/src/aml/cli.py :20 from pathlib import Path
  • fs GNS-Foundation-grafomem-01b04f6/src/aml/cloud/db_pool.py :12 pool.open()
  • fs GNS-Foundation-grafomem-01b04f6/src/aml/cloud/migrations_runner.py :3 from pathlib import Path
  • fs GNS-Foundation-grafomem-01b04f6/src/aml/cloud/plan_config.py :49 # which a cached row is treated as unusable → fail-open (allow). Kept well above the
  • fs GNS-Foundation-grafomem-01b04f6/src/aml/cloud/templates/registry.py :13 with open(os.path.join(TEMPLATES_DIR, filename), "r") as f:
  • fs GNS-Foundation-grafomem-01b04f6/src/aml/server/app.py :727 pool.open()
  • fs GNS-Foundation-grafomem-01b04f6/src/grafomem/runtime.py :26 with open(os.path.join(self.directory, fname), "rb") as f:
  • fs GNS-Foundation-grafomem-01b04f6/src/grafomem/server.py :22 with open(path, "rb") as f: b = f.read()
  • fs (weak) GNS-Foundation-grafomem-01b04f6/tests/conformance/checker.py :195 with open(os.path.join(self.temp_dir, f"{sid_tampered}.gfm"), "wb") as f:
  • fs (weak) GNS-Foundation-grafomem-01b04f6/tests/mock_llm.py :60 with open("/tmp/mock_log.txt", "a") as f:
  • fs (weak) GNS-Foundation-grafomem-01b04f6/tests/runtime/examples/generate_vectors.py :19 with open(os.path.join(out_dir, "trusted_key.bin"), "wb") as f:
  • fs (weak) GNS-Foundation-grafomem-01b04f6/tests/runtime/test_mcp_server.py :79 shutil.rmtree(temp_dir)
  • fs (weak) GNS-Foundation-grafomem-01b04f6/tests/runtime/test_runtime.py :139 shutil.rmtree(temp_dir)
  • fs (weak) GNS-Foundation-grafomem-01b04f6/tests/sandbox_e2e_v2.py :49 from pathlib import Path
  • fs (weak) GNS-Foundation-grafomem-01b04f6/tests/scratch_b0_final.py :59 with open(artifact_path) as f:
  • fs (weak) GNS-Foundation-grafomem-01b04f6/tests/scratch_b0_pin.py :139 with open(artifact_path) as f:
  • fs (weak) GNS-Foundation-grafomem-01b04f6/tests/scratch_b0_pin2.py :77 with open(artifact_path) as f:
  • fs (weak) GNS-Foundation-grafomem-01b04f6/tests/secret_scanner/run_corpus_check.py :28 import shutil
  • fs (weak) GNS-Foundation-grafomem-01b04f6/tests/test_assurance.py :8 from pathlib import Path
  • fs (weak) GNS-Foundation-grafomem-01b04f6/tests/test_autogen_adapter.py :7 from pathlib import Path
  • fs (weak) GNS-Foundation-grafomem-01b04f6/tests/test_cgr_attestation.py :16 import pathlib
  • fs (weak) GNS-Foundation-grafomem-01b04f6/tests/test_cgr_continues_ceremony.py :10 import pathlib
  • fs (weak) GNS-Foundation-grafomem-01b04f6/tests/test_cgr_identity.py :11 import pathlib
  • fs (weak) GNS-Foundation-grafomem-01b04f6/tests/test_cgr_read_surface.py :12 import pathlib
  • fs (weak) GNS-Foundation-grafomem-01b04f6/tests/test_cgr_scoring.py :12 import pathlib
  • fs (weak) GNS-Foundation-grafomem-01b04f6/tests/test_corpus.py :8 from pathlib import Path
  • fs (weak) GNS-Foundation-grafomem-01b04f6/tests/test_crewai_adapter.py :7 from pathlib import Path
  • fs (weak) GNS-Foundation-grafomem-01b04f6/tests/test_decision_context_encryption.py :216 backup_lines = [json.loads(l) for l in open(backup) if l.strip()]
  • fs (weak) GNS-Foundation-grafomem-01b04f6/tests/test_decision_embeddings.py :160 import pathlib
  • fs (weak) GNS-Foundation-grafomem-01b04f6/tests/test_dogfood_ingestion.py :18 from pathlib import Path
  • fs (weak) GNS-Foundation-grafomem-01b04f6/tests/test_gcrumbs_b0.py :48 with open(ARTIFACT_PATH) as f:
  • fs (weak) GNS-Foundation-grafomem-01b04f6/tests/test_hitl_attest_rls.py :203 pool.open()
  • fs (weak) GNS-Foundation-grafomem-01b04f6/tests/test_llm_providers.py :12 from pathlib import Path
  • fs (weak) GNS-Foundation-grafomem-01b04f6/tests/test_openapi_contract.py :19 from pathlib import Path
  • fs (weak) GNS-Foundation-grafomem-01b04f6/tests/test_read_replica.py :7 from pathlib import Path
  • fs (weak) GNS-Foundation-grafomem-01b04f6/tests/test_rls_decision_hitl.py :162 pool.open()
  • fs (weak) GNS-Foundation-grafomem-01b04f6/tests/test_secret_scanner_corpus.py :11 import shutil
  • fs (weak) GNS-Foundation-grafomem-01b04f6/tests/test_ulissy_ingest.py :14 from pathlib import Path
  • fs (weak) GNS-Foundation-grafomem-01b04f6/tests/test_v3_conformance.py :24 _HERE = pathlib.Path(__file__).resolve().parent
  • fs (weak) GNS-Foundation-grafomem-01b04f6/tests/test_v4_conformance.py :25 _ROOT = pathlib.Path(__file__).resolve().parent.parent

shell / exec 8

  • shell GNS-Foundation-grafomem-01b04f6/adapter_template/conftest.py :5 import subprocess
  • shell GNS-Foundation-grafomem-01b04f6/conformance/cgr-attestation-v4/verify_bridge.py :19 out = subprocess.run(
  • shell (weak) GNS-Foundation-grafomem-01b04f6/docs/build_paper.py :3 import subprocess
  • shell GNS-Foundation-grafomem-01b04f6/patch_whitepaper_v2_7_1_docfixes.py :13 import subprocess
  • shell (weak) GNS-Foundation-grafomem-01b04f6/tests/live_api_flight.py :4 import subprocess
  • shell (weak) GNS-Foundation-grafomem-01b04f6/tests/secret_scanner/run_corpus_check.py :29 import subprocess
  • shell (weak) GNS-Foundation-grafomem-01b04f6/tests/test_cgr_read_surface.py :14 import subprocess
  • shell (weak) GNS-Foundation-grafomem-01b04f6/tests/test_secret_scanner_corpus.py :12 import subprocess

network 41

  • net GNS-Foundation-grafomem-01b04f6/demo/common.py :14 import httpx
  • net GNS-Foundation-grafomem-01b04f6/dist/grafomem-0.2.0-py3-none-any.whl!/aml/wire.py :48 import urllib.error
  • net GNS-Foundation-grafomem-01b04f6/ops/common.py :18 import httpx
  • net GNS-Foundation-grafomem-01b04f6/ops/govern_dev.py :41 import urllib.error
  • net GNS-Foundation-grafomem-01b04f6/packages/grafomem-cgr/src/grafomem_cgr/capture.py :57 import urllib.error
  • net (weak) GNS-Foundation-grafomem-01b04f6/rewrite_tests.py :7 content = content.replace("import httpx", "from fastapi.testclient import TestClient\nfrom aml.server.app import create_app")
  • net GNS-Foundation-grafomem-01b04f6/scratch/check_code.py :1 import requests
  • net GNS-Foundation-grafomem-01b04f6/scratch/check_server.py :1 import httpx
  • net GNS-Foundation-grafomem-01b04f6/scratch/debug_workflow.py :1 import httpx
  • net GNS-Foundation-grafomem-01b04f6/scratch/reproduce_500.py :1 import httpx
  • net GNS-Foundation-grafomem-01b04f6/scratch/verify_anthropic_cache.py :3 import httpx
  • net GNS-Foundation-grafomem-01b04f6/scratch_verify_step2.py :2 import requests
  • net (weak) GNS-Foundation-grafomem-01b04f6/scripts/cgr_continues_ceremony.py :96 import httpx
  • net (weak) GNS-Foundation-grafomem-01b04f6/scripts/dogfood_setup.py :29 import httpx
  • net (weak) GNS-Foundation-grafomem-01b04f6/scripts/phase1_flight.py :5 import httpx
  • net (weak) GNS-Foundation-grafomem-01b04f6/scripts/phase1_live_flight.py :4 import httpx
  • net (weak) GNS-Foundation-grafomem-01b04f6/scripts/run_live_flight.py :5 import requests
  • net (weak) GNS-Foundation-grafomem-01b04f6/scripts/run_live_resilience.py :20 import requests
  • net (weak) GNS-Foundation-grafomem-01b04f6/scripts/verify_cutover.py :23 import urllib.request
  • net (weak) GNS-Foundation-grafomem-01b04f6/scripts/verify_finding1.py :4 import requests
  • net GNS-Foundation-grafomem-01b04f6/sdk/python/grafomem_cloud/__init__.py :22 import httpx
  • net GNS-Foundation-grafomem-01b04f6/sdk/src/grafomem/_async_http.py :4 Mirror of ``_http.HTTPTransport`` but using ``httpx.AsyncClient``
  • net GNS-Foundation-grafomem-01b04f6/sdk/src/grafomem/_http.py :15 import httpx
  • net GNS-Foundation-grafomem-01b04f6/src/aml/cloud/llm_registry.py :482 import httpx
  • net GNS-Foundation-grafomem-01b04f6/src/aml/cloud/orchestrator.py :1018 import httpx
  • net GNS-Foundation-grafomem-01b04f6/src/aml/cloud/portal_auth.py :195 import urllib.request
  • net GNS-Foundation-grafomem-01b04f6/src/aml/cloud/push_service.py :8 import httpx
  • net GNS-Foundation-grafomem-01b04f6/src/aml/cloud/siem_exporter.py :4 import httpx
  • net GNS-Foundation-grafomem-01b04f6/src/aml/cloud/sso_provider.py :317 import httpx
  • net GNS-Foundation-grafomem-01b04f6/src/aml/cloud/sso_routes.py :108 from urllib.parse import urlencode
  • net GNS-Foundation-grafomem-01b04f6/src/aml/cloud/tool_registry.py :716 import httpx
  • net GNS-Foundation-grafomem-01b04f6/src/aml/cloud/webhook_service.py :395 import httpx
  • net GNS-Foundation-grafomem-01b04f6/src/aml/server/mcp.py :326 import httpx
  • net GNS-Foundation-grafomem-01b04f6/src/aml/wire.py :48 import urllib.error
  • net (weak) GNS-Foundation-grafomem-01b04f6/tests/live_api_flight.py :1 import requests
  • net (weak) GNS-Foundation-grafomem-01b04f6/tests/sandbox_e2e.py :35 import httpx
  • net (weak) GNS-Foundation-grafomem-01b04f6/tests/sandbox_e2e_v2.py :52 import httpx
  • net (weak) GNS-Foundation-grafomem-01b04f6/tests/test_cgr_continues_ceremony.py :13 import httpx
  • net (weak) GNS-Foundation-grafomem-01b04f6/tests/test_hitl_unauthorized.py :55 return self.parent.requests.get(req_id)
  • net (weak) GNS-Foundation-grafomem-01b04f6/tests/test_mcp_governance.py :5 import httpx
  • net (weak) GNS-Foundation-grafomem-01b04f6/tests/test_siem_exporter.py :3 import httpx

secrets 42

  • secrets GNS-Foundation-grafomem-01b04f6/ops/backfill_decision_embeddings.py :110 master = os.environ.get("GRAFOMEM_MASTER_KEY") or sys.exit("GRAFOMEM_MASTER_KEY not set (per-tenant DEK)")
  • secrets GNS-Foundation-grafomem-01b04f6/ops/encrypt_decision_context.py :185 master = os.environ.get("GRAFOMEM_MASTER_KEY")
  • secrets GNS-Foundation-grafomem-01b04f6/ops/pseudonymize_invoice_ref.py :127 master = os.environ.get("GRAFOMEM_MASTER_KEY") or sys.exit("GRAFOMEM_MASTER_KEY not set (pseudonym HMAC key)")
  • secrets GNS-Foundation-grafomem-01b04f6/ops/setup_ulissy_tenant.py :26 ULISSY_PASSWORD = os.environ.get("ULISSY_PASSWORD", "ulissy-ops-Phase0-2026!") # throwaway; rotate if exposed
  • secrets GNS-Foundation-grafomem-01b04f6/packages/grafomem-cgr/src/grafomem_cgr/capture.py :123 self.tenant_key = os.environ.get("GRAFOMEM_CGR_TENANT_KEY", "")
  • secrets GNS-Foundation-grafomem-01b04f6/scratch.py :5 os.environ["GEMINI_API_KEY"] = "VALID_ENV_KEY_MOCK"
  • secrets (weak) GNS-Foundation-grafomem-01b04f6/scratch/sealed_flight_test.py :19 os.environ["GRAFOMEM_MASTER_KEY"] = os.urandom(32).hex()
  • secrets GNS-Foundation-grafomem-01b04f6/scratch/verify_anthropic_cache.py :5 api_key = os.environ.get("ANTHROPIC_API_KEY")
  • secrets GNS-Foundation-grafomem-01b04f6/scratch2.py :4 os.environ["OPENAI_API_KEY"] = "sk-valid-from-env"
  • secrets GNS-Foundation-grafomem-01b04f6/scratch3.py :4 os.environ["GEMINI_API_KEY"] = "sk-valid-from-env"
  • secrets GNS-Foundation-grafomem-01b04f6/scratch6.py :4 os.environ["OPENAI_API_KEY"] = "sk-valid-env-key-that-would-work"
  • secrets GNS-Foundation-grafomem-01b04f6/scratch_dump.py :11 os.environ["ERASURE_SIGNING_KEY"] = raw_seed.hex()
  • secrets (weak) GNS-Foundation-grafomem-01b04f6/scripts/cgr_continues_ceremony.py :191 service_role = os.environ.get("SUPABASE_SERVICE_ROLE_KEY") # GEIANT service-role key
  • secrets (weak) GNS-Foundation-grafomem-01b04f6/scripts/dogfood_setup.py :37 ADMIN_PASSWORD = os.environ.get("GNS_ADMIN_PASSWORD", "GNS-Eng-Sprint25!")
  • secrets (weak) GNS-Foundation-grafomem-01b04f6/scripts/phase1_flight.py :12 API_KEY = os.environ.get("GRAFOMEM_API_KEY", "gfm_dev_key")
  • secrets (weak) GNS-Foundation-grafomem-01b04f6/scripts/phase1_live_flight.py :8 API_KEY = os.environ.get("GRAFOMEM_API_KEY", "gfm_dev_key")
  • secrets (weak) GNS-Foundation-grafomem-01b04f6/scripts/run_live_flight.py :35 llm_api_key = os.environ.get("OPENAI_API_KEY") or os.environ.get("GEMINI_API_KEY")
  • secrets (weak) GNS-Foundation-grafomem-01b04f6/scripts/run_live_resilience.py :99 valid_openai = os.environ.get("OPENAI_API_KEY")
  • secrets (weak) GNS-Foundation-grafomem-01b04f6/scripts/stripe_create_pro_objects.py :88 key = (os.environ.get("STRIPE_LIVE_SECRET_KEY") or os.environ.get("STRIPE_SECRET_KEY") or "").strip()
  • secrets (weak) GNS-Foundation-grafomem-01b04f6/scripts/verify_cutover.py :298 key = (os.environ.get("STRIPE_SECRET_KEY") or os.environ.get("STRIPE_LIVE_SECRET_KEY") or "").strip()
  • secrets (weak) GNS-Foundation-grafomem-01b04f6/scripts/verify_phase0.py :22 os.environ["ERASURE_SIGNING_KEY"] = test_erasure_key
  • secrets GNS-Foundation-grafomem-01b04f6/src/aml/cli.py :600 kwargs["signing_identity"] = EnvIdentity() if os.environ.get("GRAFOMEM_SIGNING_KEY") else None
  • secrets GNS-Foundation-grafomem-01b04f6/src/aml/cloud/identity.py :55 signing_hex = os.environ.get("ERASURE_SIGNING_KEY") or os.environ.get("GRAFOMEM_SIGNING_KEY")
  • secrets GNS-Foundation-grafomem-01b04f6/src/aml/cloud/invoice_pseudonym.py :42 return os.environ.get("GRAFOMEM_MASTER_KEY")
  • secrets GNS-Foundation-grafomem-01b04f6/src/aml/cloud/portal_auth.py :118 or os.environ.get("GRAFOMEM_PORTAL_SECRET")
  • secrets GNS-Foundation-grafomem-01b04f6/src/aml/cloud/push_service.py :25 self.auth_key = os.environ.get("APNS_AUTH_KEY")
  • secrets GNS-Foundation-grafomem-01b04f6/src/aml/cloud/stripe_billing.py :139 self._stripe_key = (stripe_secret_key or os.environ.get("STRIPE_SECRET_KEY") or "").strip() or None
  • secrets GNS-Foundation-grafomem-01b04f6/src/aml/server/app.py :863 master_key_hex = os.environ.get("GRAFOMEM_MASTER_KEY")
  • secrets (weak) GNS-Foundation-grafomem-01b04f6/tests/conftest.py :10 os.environ["GRAFOMEM_MASTER_KEY"] = "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
  • secrets (weak) GNS-Foundation-grafomem-01b04f6/tests/live_api_flight.py :8 API_KEY = os.environ.get("GRAFOMEM_FLIGHT_API_KEY", "")
  • secrets (weak) GNS-Foundation-grafomem-01b04f6/tests/sandbox_e2e.py :44 OPENAI_KEY = os.environ.get("OPENAI_API_KEY", "")
  • secrets (weak) GNS-Foundation-grafomem-01b04f6/tests/sandbox_e2e_v2.py :62 OPENAI_KEY = os.environ.get("OPENAI_API_KEY", "")
  • secrets (weak) GNS-Foundation-grafomem-01b04f6/tests/sandbox_financial_template.py :16 _sk_hex = os.getenv("GRAFOMEM_SIGNING_KEY")
  • secrets (weak) GNS-Foundation-grafomem-01b04f6/tests/sandbox_server.py :22 if not os.environ.get("ERASURE_SIGNING_KEY"):
  • secrets (weak) GNS-Foundation-grafomem-01b04f6/tests/secret_scanner/run_corpus_check.py :52 f'os.environ["FERNET_SECRET"] = "{_fernet_key()}"',
  • secrets (weak) GNS-Foundation-grafomem-01b04f6/tests/test_integration_seams.py :27 os.environ["GRAFOMEM_SIGNING_KEY"] = "b" * 64 # Ed25519 seed is 32 bytes (64 hex chars)
  • secrets (weak) GNS-Foundation-grafomem-01b04f6/tests/test_openapi_contract.py :44 os.environ["GRAFOMEM_MASTER_KEY"] = "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
  • secrets (weak) GNS-Foundation-grafomem-01b04f6/tests/test_phase0a_security.py :130 os.environ["PROVIDER_ENCRYPTION_KEY"] = key_a
  • secrets (weak) GNS-Foundation-grafomem-01b04f6/tests/test_phase0b_signing.py :144 os.environ["GRAFOMEM_SIGNING_KEY"] = seed.hex()
  • secrets (weak) GNS-Foundation-grafomem-01b04f6/tests/test_replay_facts_used.py :27 os.environ["GRAFOMEM_SIGNING_KEY"] = "b" * 64
  • secrets GNS-Foundation-grafomem-01b04f6/verify_finding1.py :10 os.environ["OPENAI_API_KEY"] = "sk-PLATFORM-MASTER-KEY-DO-NOT-LEAK"
  • secrets GNS-Foundation-grafomem-01b04f6/verify_finding1_missing.py :10 os.environ["OPENAI_API_KEY"] = "sk-PLATFORM-MASTER-KEY-DO-NOT-LEAK"

database 9

  • db GNS-Foundation-grafomem-01b04f6/check_sweep.py :2 import psycopg2
  • db GNS-Foundation-grafomem-01b04f6/dist/grafomem-0.2.0-py3-none-any.whl!/aml/backends/sqlite_gmp.py :52 import sqlite3
  • db GNS-Foundation-grafomem-01b04f6/ontology_manifold_probe.py :370 import psycopg2
  • db GNS-Foundation-grafomem-01b04f6/scratch/check_sweep.py :2 import psycopg2
  • db (weak) GNS-Foundation-grafomem-01b04f6/scripts/drop_synthetic.py :2 import psycopg2
  • db GNS-Foundation-grafomem-01b04f6/src/aml/backends/hnsw_gmp.py :17 import sqlite3
  • db GNS-Foundation-grafomem-01b04f6/src/aml/backends/sqlite_gmp.py :52 import sqlite3
  • db GNS-Foundation-grafomem-01b04f6/src/aml/cloud/manifold.py :275 import psycopg2
  • db GNS-Foundation-grafomem-01b04f6/src/aml/cloud/manifold_routes.py :70 import psycopg2

tool registrations 14

  • write_memory GNS-Foundation-grafomem-01b04f6/dist/grafomem-0.2.0-py3-none-any.whl!/aml/server/mcp.py :64
  • retrieve_memories GNS-Foundation-grafomem-01b04f6/dist/grafomem-0.2.0-py3-none-any.whl!/aml/server/mcp.py :86
  • delete_memory GNS-Foundation-grafomem-01b04f6/dist/grafomem-0.2.0-py3-none-any.whl!/aml/server/mcp.py :108
  • list_memories GNS-Foundation-grafomem-01b04f6/dist/grafomem-0.2.0-py3-none-any.whl!/aml/server/mcp.py :125
  • get_capabilities GNS-Foundation-grafomem-01b04f6/dist/grafomem-0.2.0-py3-none-any.whl!/aml/server/mcp.py :136
  • cgr_record_decision GNS-Foundation-grafomem-01b04f6/packages/grafomem-cgr/src/grafomem_cgr/capture.py :339
  • cgr_record_outcome GNS-Foundation-grafomem-01b04f6/packages/grafomem-cgr/src/grafomem_cgr/capture.py :344
  • write_memory GNS-Foundation-grafomem-01b04f6/src/aml/server/mcp.py :65
  • retrieve_memories GNS-Foundation-grafomem-01b04f6/src/aml/server/mcp.py :87
  • delete_memory GNS-Foundation-grafomem-01b04f6/src/aml/server/mcp.py :108
  • verify_erasure GNS-Foundation-grafomem-01b04f6/src/aml/server/mcp.py :125
  • run_conformance GNS-Foundation-grafomem-01b04f6/src/aml/server/mcp.py :142
  • list_memories GNS-Foundation-grafomem-01b04f6/src/aml/server/mcp.py :161
  • get_capabilities GNS-Foundation-grafomem-01b04f6/src/aml/server/mcp.py :166

declared dependencies 41

  • mcp@>=1.0,<2
  • jsonschema@>=4
  • click@>=8
  • httpx@>=0.27
  • rfc8785@>=0.1
  • sentence-transformers@>=2.2
  • numpy@>=1.24
  • sqlite-vec@*
  • apsw@*
  • cryptography@>=41
  • structlog@>=23.1.0
  • psycopg@>=3.1
  • psycopg_pool@>=3.2
  • pgvector@>=0.3
  • tiktoken@>=0.7.0
  • fastapi@>=0.110,<0.137
  • starlette@>=1.0,<1.2
  • uvicorn@>=0.29
  • pydantic@>=2.0
  • sse-starlette@>=2.0
  • fpdf2@>=2.8
  • grafomem@*
  • stripe@>=8.0
  • bcrypt@>=4.0
  • PyJWT@>=2.8
  • authlib@>=1.3
  • prometheus-client@>=0.20
  • apscheduler@>=3.10
  • pandas@>=2.0
  • minisom@>=2.3
  • scikit-learn@>=1.3
  • psycopg2-binary@>=2.9
  • fastembed@>=0.2.0
  • anthropic@>=0.30
  • google-genai@>=1.0
  • openai@>=1.0
  • crewai@>=0.60,<2.0
  • autogen-agentchat@>=0.4
  • pytest@>=8
  • pytest-asyncio@>=0.23
  • PyNaCl@>=1.5

perm:untrusted 3

  • untrusted GNS-Foundation-grafomem-01b04f6/scratch/check_code.py :3 print(requests.post("https://grafomem-production.up.railway.app/v1/portal/api-keys", json={"name": "Expired Key", "expires_at": 100}, headers={"Authorization": "Bearer fake"}).json())
  • untrusted (weak) GNS-Foundation-grafomem-01b04f6/scripts/run_live_flight.py :243 epoch_response = requests.get(f"{api_url}/v1/gcrumbs/epochs/1", headers=headers).json()
  • untrusted (weak) GNS-Foundation-grafomem-01b04f6/scripts/run_live_resilience.py :138 pub_key_hex = requests.get(f"{api_url}/v1/gcrumbs/public_key").json()["public_key"]

transport_posture 2

  • network-listening, binds all interfaces, no auth detected GNS-Foundation-grafomem-01b04f6/src/aml/cloud/erasure_daemon.py :119 uvicorn.run(app, host="0.0.0.0", port=port, log_level="warning")
  • network-listening, binds all interfaces, no auth detected GNS-Foundation-grafomem-01b04f6/tests/sandbox_server.py :51 uvicorn.run(app, host="0.0.0.0", port=8080, log_level="info")