Persistent memory + security layer for Claude Code (MCP plugin). Agents remember your project across sessions (~87% fewer context tokens), every tool call lands in a tamper-evident HMAC audit chain, and skills are AST-scanned + HMAC-verified before they run. 100% local: PostgreSQL + Ollama, no cloud, MIT.
Drift inferred · capture-to-capture
- HIGH code analysis flagged dynamic code execution in iampantherr/SecureContext
- HIGH code analysis flagged dynamic code execution in iampantherr/SecureContext
- HIGH code analysis flagged dynamic code execution in iampantherr/SecureContext
- HIGH code analysis flagged dynamic code execution in iampantherr/SecureContext
- HIGH code analysis flagged dynamic code execution in iampantherr/SecureContext
- HIGH code analysis flagged dynamic code execution in iampantherr/SecureContext
- HIGH code analysis flagged dynamic code execution in iampantherr/SecureContext
- HIGH code analysis flagged dynamic code execution in iampantherr/SecureContext
- HIGH code analysis flagged dynamic code execution in iampantherr/SecureContext
- HIGH code analysis flagged dynamic code execution in iampantherr/SecureContext
- HIGH code analysis flagged dynamic code execution in iampantherr/SecureContext
- HIGH code analysis flagged dynamic code execution in iampantherr/SecureContext
- HIGH code analysis flagged dynamic code execution in iampantherr/SecureContext
- HIGH code analysis flagged dynamic code execution in iampantherr/SecureContext
- HIGH code analysis flagged dynamic code execution in iampantherr/SecureContext
- HIGH code analysis flagged dynamic code execution in iampantherr/SecureContext
- HIGH code analysis flagged dynamic code execution ×3 in iampantherr/SecureContext
- HIGH code analysis flagged dynamic code execution ×3 in iampantherr/SecureContext
- HIGH code analysis flagged committed secret, dynamic code execution ×3 in iampantherr/SecureContext
- HIGH code analysis flagged committed secret, dynamic code execution ×3 in iampantherr/SecureContext
transport stdio · http counts 19 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
zc_batch
-
zc_broadcast
-
zc_compact_window
-
zc_context_status
-
zc_evidence
-
zc_execute
-
zc_execute_file
-
zc_fetch
-
zc_forget
-
zc_index
-
zc_index_file
-
zc_memory_contradictions
-
zc_recall_context
-
zc_remember
-
zc_search
-
zc_search_global
-
zc_status
-
zc_summarize_session
-
zc_verify_claim
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit de3d264 · analyzer v33 · 3d ago
skills & prompt files 3
danger signals11
- dynamic code execution eval() iampantherr-SecureContext-de3d264/src/skills/anthropic_standard.ts :76
- eval(...), exec(...), compile(...) - dynamic code execution new Function() iampantherr-SecureContext-de3d264/src/skills/anthropic_standard.ts :84
- eval(...), new Function(...) - dynamic code execution vm exec iampantherr-SecureContext-de3d264/src/skills/anthropic_standard.ts :86
- vm.runInNewContext(...), vm.runInThisContext(...) - suspicious endpoint 169.254.169.254 (cloud metadata) iampantherr-SecureContext-de3d264/security-tests/run-all.mjs :268
["T23", "SSRF AWS metadata 169.254.169.254", "http://169.254.169.254/latest/meta-data/"], - suspicious endpoint 168.63.129.16 iampantherr-SecureContext-de3d264/security-tests/run-all.mjs :270
["T25", "SSRF Azure metadata 168.63.129.16", "http://168.63.129.16/"], - suspicious endpoint 169.254.169.254 (cloud metadata) iampantherr-SecureContext-de3d264/src/fetcher.test.ts :12
"http://169.254.169.254/", // AWS/GCP/Azure metadata - suspicious endpoint 168.63.129.16 iampantherr-SecureContext-de3d264/src/fetcher.test.ts :20
"http://168.63.129.16/", // Azure IMDS - committed secret private key iampantherr-SecureContext-de3d264/src/security/secret_scanner.test.ts :113
PEM private key block (redacted) - committed secret OpenAI key iampantherr-SecureContext-de3d264/src/skills/lint.test.ts :157
sk-pro…(42 chars, redacted) - committed secret Anthropic key iampantherr-SecureContext-de3d264/src/skills/mutator.test.ts :196
sk-ant…(80 chars, redacted) - committed secret Anthropic key iampantherr-SecureContext-de3d264/src/skills/mutators/cli_claude.test.ts :255
sk-ant…(80 chars, redacted)
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 292
filesystem 138
- fs iampantherr-SecureContext-de3d264/bench/t3/extract-bakeoff.mjs :9
import { writeFileSync } from "node:fs"; - fs iampantherr-SecureContext-de3d264/bench/t3/model-bakeoff.mjs :19
import { readFileSync, writeFileSync } from "node:fs"; - fs iampantherr-SecureContext-de3d264/hooks/_project-hash.mjs :29
import { existsSync } from "node:fs"; - fs iampantherr-SecureContext-de3d264/hooks/learnings-indexer.mjs :49
import { existsSync, readFileSync, realpathSync } from "node:fs"; - fs iampantherr-SecureContext-de3d264/hooks/postedit-reindex.mjs :23
import { readFileSync, statSync } from "node:fs"; - fs iampantherr-SecureContext-de3d264/hooks/posttool-outcomes.mjs :34
import { existsSync } from "node:fs"; - fs iampantherr-SecureContext-de3d264/hooks/posttooluse.mjs :16
import { mkdirSync, appendFileSync, statSync, readFileSync, writeFileSync, existsSync } from "node:fs"; - fs iampantherr-SecureContext-de3d264/hooks/preread-dedup.mjs :34
import { readFileSync, statSync, existsSync, writeFileSync, mkdirSync } from "node:fs"; - fs iampantherr-SecureContext-de3d264/hooks/prewrite-impact.mjs :37
import { readFileSync, existsSync } from "node:fs"; - fs (weak) iampantherr-SecureContext-de3d264/hooks/project-hash.test.mjs :9
import { existsSync } from "node:fs"; - fs (weak) iampantherr-SecureContext-de3d264/hooks/project-root.test.mjs :11
import { mkdirSync, writeFileSync, rmSync, existsSync } from "node:fs"; - fs iampantherr-SecureContext-de3d264/hooks/skill-script-hmac-verify.mjs :35
import { readFileSync, appendFileSync, mkdirSync } from "node:fs";
show 28 more
- fs iampantherr-SecureContext-de3d264/hooks/stop-autoextract.mjs :28
import { mkdirSync, readFileSync, writeFileSync, existsSync, statSync, appendFileSync } from "node:fs"; - fs iampantherr-SecureContext-de3d264/hooks/stop.mjs :16
import { mkdirSync, appendFileSync, statSync, readFileSync, writeFileSync, existsSync } from "node:fs"; - fs iampantherr-SecureContext-de3d264/hooks/userprompt-autoextract.mjs :21
import { mkdirSync, appendFileSync, statSync, existsSync } from "node:fs"; - fs iampantherr-SecureContext-de3d264/hooks/userpromptsubmit-outcome.mjs :29
import { existsSync } from "node:fs"; - fs iampantherr-SecureContext-de3d264/hooks/zc-edit-mode.mjs :26
import { readFileSync, writeFileSync, mkdirSync, existsSync } from "node:fs"; - fs iampantherr-SecureContext-de3d264/init.mjs :24
import { readFileSync, writeFileSync, existsSync, mkdirSync, copyFileSync, readdirSync } from "node:fs"; - fs iampantherr-SecureContext-de3d264/install.mjs :22
import { readFileSync, writeFileSync, existsSync, mkdirSync, readdirSync, unlinkSync } from "node:fs"; - fs (weak) iampantherr-SecureContext-de3d264/scripts/_e2e_audit_skills.mjs :5
import { readdirSync } from "node:fs"; - fs (weak) iampantherr-SecureContext-de3d264/scripts/backfill-learnings.mjs :22
import { readFileSync, existsSync, readdirSync, mkdirSync } from "node:fs"; - fs (weak) iampantherr-SecureContext-de3d264/scripts/backfill-source-meta-to-pg.mjs :29
import { readdirSync, readFileSync, existsSync } from "node:fs"; - fs (weak) iampantherr-SecureContext-de3d264/scripts/background-index.mjs :40
import { readFileSync, writeFileSync, unlinkSync, existsSync, mkdirSync } from "node:fs"; - fs (weak) iampantherr-SecureContext-de3d264/scripts/check-env-pinning.mjs :42
import { readFileSync, readdirSync, statSync, existsSync } from "node:fs"; - fs (weak) iampantherr-SecureContext-de3d264/scripts/check-env-pinning.test.mjs :15
import { mkdtempSync, writeFileSync, mkdirSync, rmSync, readFileSync } from "node:fs"; - fs (weak) iampantherr-SecureContext-de3d264/scripts/e2e-dispatcher-test.mjs :20
import { readFileSync, existsSync } from "node:fs"; - fs (weak) iampantherr-SecureContext-de3d264/scripts/e2e-verify.mjs :17
import { readdirSync, statSync, existsSync, readFileSync } from "node:fs"; - fs (weak) iampantherr-SecureContext-de3d264/scripts/extract-skills-from-roles.mjs :38
import { readFileSync, writeFileSync, existsSync, mkdirSync, copyFileSync } from "node:fs"; - fs (weak) iampantherr-SecureContext-de3d264/scripts/find-live-db.mjs :11
import { readdirSync, statSync } from "node:fs"; - fs (weak) iampantherr-SecureContext-de3d264/scripts/impact-advisory.mjs :26
import { readFileSync, existsSync } from "node:fs"; - fs (weak) iampantherr-SecureContext-de3d264/scripts/inspect-live-agents.mjs :8
import { readdirSync, statSync, existsSync } from "node:fs"; - fs (weak) iampantherr-SecureContext-de3d264/scripts/issue-token.mjs :17
import { mkdirSync, existsSync } from "node:fs"; - fs (weak) iampantherr-SecureContext-de3d264/scripts/lint-skills.mjs :13
import { readFileSync } from "node:fs"; - fs (weak) iampantherr-SecureContext-de3d264/scripts/live-api-test.mjs :13
import { mkdirSync, unlinkSync, existsSync } from "node:fs"; - fs (weak) iampantherr-SecureContext-de3d264/scripts/live-docker-test.mjs :28
import { readFileSync, existsSync } from "node:fs"; - fs (weak) iampantherr-SecureContext-de3d264/scripts/live-e2e.mjs :26
import { existsSync, mkdirSync, writeFileSync, rmSync, statSync } from "node:fs"; - fs (weak) iampantherr-SecureContext-de3d264/scripts/live-harness-test.mjs :18
import { mkdirSync, unlinkSync, existsSync, writeFileSync, rmSync } from "node:fs"; - fs (weak) iampantherr-SecureContext-de3d264/scripts/live-rbac-test.mjs :7
import { mkdirSync, unlinkSync, existsSync } from "node:fs"; - fs (weak) iampantherr-SecureContext-de3d264/scripts/live-smart-memory-test.mjs :9
import { mkdirSync, unlinkSync, existsSync } from "node:fs"; - fs (weak) iampantherr-SecureContext-de3d264/scripts/live-store-test.mjs :10
import { mkdirSync, unlinkSync, existsSync } from "node:fs";
98 more not shown — this panel samples each group; the count above is the real total.
shell / exec 27
- shell iampantherr-SecureContext-de3d264/init.mjs :25
import { execSync, spawnSync } from "node:child_process"; - shell iampantherr-SecureContext-de3d264/install.mjs :23
import { execSync } from "node:child_process"; - shell (weak) iampantherr-SecureContext-de3d264/scripts/check-env-pinning.test.mjs :14
import { spawnSync } from "node:child_process"; - shell (weak) iampantherr-SecureContext-de3d264/scripts/impact-advisory.mjs :25
import { execFileSync } from "node:child_process"; - shell (weak) iampantherr-SecureContext-de3d264/scripts/live-e2e.mjs :29
import { spawnSync } from "node:child_process"; - shell (weak) iampantherr-SecureContext-de3d264/scripts/memory-bench.mjs :19
import { execFileSync } from "node:child_process"; - shell (weak) iampantherr-SecureContext-de3d264/scripts/seed-mature-memory.mjs :19
import { execFileSync } from "node:child_process"; - shell (weak) iampantherr-SecureContext-de3d264/scripts/setup-docker.mjs :33
import { spawnSync } from "node:child_process"; - shell (weak) iampantherr-SecureContext-de3d264/scripts/stress-multiproject.mjs :5
import { spawn } from "node:child_process"; - shell (weak) iampantherr-SecureContext-de3d264/scripts/stress-test.mjs :23
import { spawn } from "node:child_process"; - shell (weak) iampantherr-SecureContext-de3d264/scripts/test-autoindex-live.mjs :15
import { spawn, spawnSync } from "node:child_process"; - shell (weak) iampantherr-SecureContext-de3d264/scripts/test-hooks-live.mjs :15
import { spawn } from "node:child_process";
show 15 more
- shell (weak) iampantherr-SecureContext-de3d264/scripts/test-lint-catches-floating-promise.mjs :14
import { spawnSync } from "node:child_process"; - shell (weak) iampantherr-SecureContext-de3d264/scripts/v016-live-check.mjs :135
const { execSync } = await import("node:child_process"); - shell (weak) iampantherr-SecureContext-de3d264/security-tests/run-all.mjs :7
import { spawn, spawnSync } from "node:child_process"; - shell iampantherr-SecureContext-de3d264/src/api-server.ts :1699
const { execFile } = await import("node:child_process"); - shell (weak) iampantherr-SecureContext-de3d264/src/claim_verify.test.ts :7
import { execFileSync } from "node:child_process"; - shell iampantherr-SecureContext-de3d264/src/claim_verify.ts :36
import { execFileSync } from "node:child_process"; - shell iampantherr-SecureContext-de3d264/src/graph_proxy.ts :46
import { spawn, type ChildProcessWithoutNullStreams } from "node:child_process"; - shell (weak) iampantherr-SecureContext-de3d264/src/indexing/cross_repo.test.ts :68
`function launch(){ spawn("powershell", ["-File", "spawn-agent.ps1"]); }`, "d.mjs"); - shell iampantherr-SecureContext-de3d264/src/indexing/py_call_graph.ts :18
import { spawnSync } from "node:child_process"; - shell (weak) iampantherr-SecureContext-de3d264/src/learnings_indexer.test.ts :23
import { spawnSync } from "node:child_process"; - shell iampantherr-SecureContext-de3d264/src/outcomes.ts :23
* - git_commit resolver uses git library, NOT shell exec (no injection) - shell iampantherr-SecureContext-de3d264/src/sandbox.ts :1
import { spawn, spawnSync } from "node:child_process"; - shell iampantherr-SecureContext-de3d264/src/skills/anthropic_standard.ts :76
- eval(...), exec(...), compile(...) - shell iampantherr-SecureContext-de3d264/src/skills/mutators/cli_headless.ts :23
import { spawnSync } from "node:child_process"; - shell iampantherr-SecureContext-de3d264/src/skills/script_scanner.ts :19
import { spawnSync } from "node:child_process";
network 45
- net iampantherr-SecureContext-de3d264/bench/t3/model-bakeoff.mjs :64
const resp = await fetch(`${OLLAMA}/api/chat`, { - net iampantherr-SecureContext-de3d264/hooks/preread-dedup.mjs :222
const resp = await fetch(`${apiUrl}/api/v1/telemetry/pretool-event`, { - net iampantherr-SecureContext-de3d264/hooks/prewrite-impact.mjs :143
const resp = await fetch(`${apiUrl}/api/v1/telemetry/pretool-event`, { - net iampantherr-SecureContext-de3d264/hooks/skill-script-hmac-verify.mjs :93
const res = await fetch(url, { - net iampantherr-SecureContext-de3d264/hooks/stop-autoextract.mjs :50
const res = await fetch(url, { ...opts, signal: ctl.signal }); - net (weak) iampantherr-SecureContext-de3d264/scripts/ci-memory.mjs :53
const res = await fetch(`${API}${path}`, { - net (weak) iampantherr-SecureContext-de3d264/scripts/e2e-dispatcher-test.mjs :77
const res = await fetch(`${API_URL}${path}`, { - net (weak) iampantherr-SecureContext-de3d264/scripts/live-api-test.mjs :67
const res = await fetch(`${BASE}${path}`, opts); - net (weak) iampantherr-SecureContext-de3d264/scripts/live-docker-test.mjs :89
const res = await fetch(url, opts); - net (weak) iampantherr-SecureContext-de3d264/scripts/memory-bench.mjs :42
const res = await fetch(`${API}${path}`, { - net (weak) iampantherr-SecureContext-de3d264/scripts/recall-size-check.mjs :43
const res = await fetch(`${API}/api/v1/recall?${qs}`, { headers: { Authorization: `Bearer ${KEY}` } }); - net (weak) iampantherr-SecureContext-de3d264/scripts/seed-mature-memory.mjs :35
const res = await fetch(`${API}${path}`, {
show 28 more
- net (weak) iampantherr-SecureContext-de3d264/scripts/setup-docker.mjs :282
const res = await fetch(url, { signal: AbortSignal.timeout(3000) }); - net (weak) iampantherr-SecureContext-de3d264/security-tests/run-all.mjs :302
"fetch() auto-strips user:pass from URL; our header stripping handles Authorization separately"); - net iampantherr-SecureContext-de3d264/src/api-server.ts :456
const r = await fetch(`${Config.OLLAMA_URL.replace(/\/api\/.*$/, "")}/api/tags`, { signal: ctl.signal }); - net iampantherr-SecureContext-de3d264/src/compaction.ts :107
const r = await fetch(`${OLLAMA_URL.replace(/\/$/, "")}/api/generate`, { - net iampantherr-SecureContext-de3d264/src/consolidation.ts :65
const r = await fetch(`${ollamaBase()}/api/generate`, { - net iampantherr-SecureContext-de3d264/src/dashboard/render.ts :204
const r = await fetch('/dashboard/skill-candidates/' + candId + '/generate', { method: 'POST' }); - net iampantherr-SecureContext-de3d264/src/dashboard/token_savings.ts :311
`Baseline assumptions: zc_recall_context=${BASELINE.recall_context()}t, zc_search=${BASELINE.search()}t, zc_file_summary=${BASELINE.file_summary()}t, zc_fetch=${BASELINE.fetch()}t per call.`, - net iampantherr-SecureContext-de3d264/src/embedder.ts :82
const resp = await fetch(tagsUrl, { signal: ctrl.signal }); - net iampantherr-SecureContext-de3d264/src/event_extractor.ts :172
const resp = await fetch(extractorUrl(), { - net iampantherr-SecureContext-de3d264/src/evidence.ts :67
* actually write: curl invocations, bare "GET <url>", and fetch() calls. - net iampantherr-SecureContext-de3d264/src/fetcher.ts :374
response = await fetch(currentUrl, { - net iampantherr-SecureContext-de3d264/src/harness.ts :576
await fetch(`${apiUrl}/api/v1/telemetry/summarizer-event`, { - net iampantherr-SecureContext-de3d264/src/indexing/community_summaries.ts :25
const r = await fetch(`${ollamaBase()}/api/generate`, { - net (weak) iampantherr-SecureContext-de3d264/src/indexing/cross_repo.test.ts :40
" const r = await fetch(`${ZC_API_URL}/api/v1/agent-activity?limit=5`);\n" + - net iampantherr-SecureContext-de3d264/src/indexing/cross_repo.ts :68
* dominant real-world form — `fetch(\`${ZC_API_URL}/api/v1/operator-inbox\`)` — - net iampantherr-SecureContext-de3d264/src/indexing/entity_extract.ts :72
const r = await fetch(`${ollamaBase()}/api/generate`, { - net iampantherr-SecureContext-de3d264/src/ingest/extract_file.ts :112
const r = await fetch(`${ollamaBase()}/api/tags`); - net iampantherr-SecureContext-de3d264/src/llm_adjudicator.ts :73
const resp = await fetch(chatUrl(), { - net iampantherr-SecureContext-de3d264/src/otel_export.ts :133
const resp = await fetch(url, { - net (weak) iampantherr-SecureContext-de3d264/src/ownership_guard.test.ts :71
return fetch(`${baseUrl}/api/v1/broadcast`, { - net (weak) iampantherr-SecureContext-de3d264/src/reference_monitor.test.ts :109
// explicitly via fetch() calls; we don't need recordToolCall going via API. - net iampantherr-SecureContext-de3d264/src/retrieval_advanced.ts :102
const r = await fetch(`${OLLAMA_URL.replace(/\/$/, "")}/api/generate`, { - net iampantherr-SecureContext-de3d264/src/server.ts :101
const res = await fetch(url, { - net iampantherr-SecureContext-de3d264/src/skill_candidate_generator.ts :102
const r = await fetch(url, { - net iampantherr-SecureContext-de3d264/src/skills/lint.ts :146
errors.push("requires_network=true but network_allowlist is empty — skills with network access MUST declare which URLs they may fetch (security gate)"); - net iampantherr-SecureContext-de3d264/src/skills/marketplace_pull.ts :99
const res = await fetch(url, { - net iampantherr-SecureContext-de3d264/src/skills/mutators/batch_sonnet.ts :79
const submitResp = await fetch(BATCH_BASE_URL, { - net iampantherr-SecureContext-de3d264/src/skills/mutators/realtime_sonnet.ts :60
response = await fetch(ANTHROPIC_URL, {
5 more not shown — this panel samples each group; the count above is the real total.
secrets 55
- secrets iampantherr-SecureContext-de3d264/hooks/learnings-indexer.mjs :215
password: process.env.ZC_POSTGRES_PASSWORD || "", - secrets iampantherr-SecureContext-de3d264/hooks/posttool-outcomes.mjs :70
password: process.env.ZC_POSTGRES_PASSWORD || "", - secrets iampantherr-SecureContext-de3d264/hooks/preread-dedup.mjs :220
const apiKey = process.env.ZC_API_KEY ?? ""; - secrets iampantherr-SecureContext-de3d264/hooks/prewrite-impact.mjs :147
...(process.env.ZC_API_KEY ? { Authorization: `Bearer ${process.env.ZC_API_KEY}` } : {}), - secrets iampantherr-SecureContext-de3d264/hooks/skill-script-hmac-verify.mjs :89
const apiKey = process.env.ZC_API_KEY || ""; - secrets iampantherr-SecureContext-de3d264/hooks/stop-autoextract.mjs :108
let apiKey = process.env.ZC_API_KEY || ""; - secrets (weak) iampantherr-SecureContext-de3d264/scripts/backfill-learnings.mjs :143
password: process.env.ZC_POSTGRES_PASSWORD || "", - secrets (weak) iampantherr-SecureContext-de3d264/scripts/backfill-source-meta-to-pg.mjs :45
password: process.env.ZC_POSTGRES_PASSWORD, - secrets (weak) iampantherr-SecureContext-de3d264/scripts/ci-memory.mjs :33
const KEY = process.env.ZC_API_KEY || ""; - secrets (weak) iampantherr-SecureContext-de3d264/scripts/e2e-dispatcher-test.mjs :41
const API_KEY = process.env["API_KEY"] ?? dockerEnv["ZC_API_KEY"] ?? ""; - secrets (weak) iampantherr-SecureContext-de3d264/scripts/live-api-test.mjs :18
process.env["ZC_API_KEY"] = "test-api-key-live-suite"; - secrets (weak) iampantherr-SecureContext-de3d264/scripts/live-docker-test.mjs :51
const API_KEY = process.env["SC_API_KEY"] ?? dotenv["ZC_API_KEY"] ?? "";
show 28 more
- secrets (weak) iampantherr-SecureContext-de3d264/scripts/live-harness-test.mjs :86
function getSecret(): string { return process.env.ZC_SECRET ?? "dev"; } - secrets (weak) iampantherr-SecureContext-de3d264/scripts/memory-bench.mjs :24
const KEY = process.env.ZC_API_KEY || readEnvKey(); - secrets (weak) iampantherr-SecureContext-de3d264/scripts/migrate-sqlite-to-pg.mjs :75
password: process.env.ZC_POSTGRES_PASSWORD || "", - secrets (weak) iampantherr-SecureContext-de3d264/scripts/recall-size-check.mjs :26
const KEY = process.env.ZC_API_KEY || readEnvKey(); - secrets (weak) iampantherr-SecureContext-de3d264/scripts/seed-mature-memory.mjs :23
const KEY = process.env.ZC_API_KEY || readEnvKey(); - secrets (weak) iampantherr-SecureContext-de3d264/scripts/sprint2-cross-project-demo.mjs :29
process.env.ZC_POSTGRES_PASSWORD ??= "79bd1ca6011b797c70e90c02becdaa90d99cfc501abaec09"; - secrets iampantherr-SecureContext-de3d264/src/api-server.ts :59
const API_KEY = process.env["ZC_API_KEY"]; - secrets iampantherr-SecureContext-de3d264/src/dashboard/token_savings.ts :107
return parseFloat(process.env.ZC_SAVINGS_AVG_COST_PER_TOKEN ?? "0.000003"); // $3/MTok input default - secrets iampantherr-SecureContext-de3d264/src/harness.ts :480
if (!process.env.ZC_POSTGRES_HOST && !process.env.ZC_POSTGRES_PASSWORD) { - secrets iampantherr-SecureContext-de3d264/src/indexing/backlinks.ts :202
if (!process.env.ZC_POSTGRES_HOST && !process.env.ZC_POSTGRES_PASSWORD) return; - secrets iampantherr-SecureContext-de3d264/src/indexing/call_edges.ts :255
if (!process.env.ZC_POSTGRES_HOST && !process.env.ZC_POSTGRES_PASSWORD) return; - secrets iampantherr-SecureContext-de3d264/src/knowledge.ts :284
if (!process.env.ZC_POSTGRES_HOST && !process.env.ZC_POSTGRES_PASSWORD) return; - secrets iampantherr-SecureContext-de3d264/src/memory_contradictions.ts :341
if (!process.env.ZC_POSTGRES_HOST && !process.env.ZC_POSTGRES_PASSWORD) return; - secrets (weak) iampantherr-SecureContext-de3d264/src/operator_inbox.test.ts :32
process.env.ZC_POSTGRES_PASSWORD ??= "79bd1ca6011b797c70e90c02becdaa90d99cfc501abaec09"; - secrets iampantherr-SecureContext-de3d264/src/outcomes.ts :263
if (!targetSkill && (process.env.ZC_POSTGRES_HOST || process.env.ZC_POSTGRES_PASSWORD)) { - secrets (weak) iampantherr-SecureContext-de3d264/src/ownership_guard.test.ts :50
process.env.ZC_API_KEY = apiKey; - secrets iampantherr-SecureContext-de3d264/src/pg_pool.ts :49
password: process.env.ZC_POSTGRES_PASSWORD || "", - secrets (weak) iampantherr-SecureContext-de3d264/src/postgres_backend.test.ts :44
process.env.ZC_POSTGRES_PASSWORD ??= "79bd1ca6011b797c70e90c02becdaa90d99cfc501abaec09"; - secrets (weak) iampantherr-SecureContext-de3d264/src/reference_monitor.test.ts :101
process.env.ZC_API_KEY = testApiKey; - secrets (weak) iampantherr-SecureContext-de3d264/src/sandbox.test.ts :6
process.env["ANTHROPIC_API_KEY"] = "sk-test-secret-key"; - secrets (weak) iampantherr-SecureContext-de3d264/src/security/audit_log.test.ts :39
delete process.env.ZC_MACHINE_SECRET; - secrets (weak) iampantherr-SecureContext-de3d264/src/security/chained_table.test.ts :80
const prevEnv = process.env.ZC_MACHINE_SECRET; - secrets (weak) iampantherr-SecureContext-de3d264/src/security/machine_secret.test.ts :32
delete process.env.ZC_MACHINE_SECRET; - secrets iampantherr-SecureContext-de3d264/src/security/machine_secret.ts :81
const envSecret = process.env.ZC_MACHINE_SECRET; - secrets iampantherr-SecureContext-de3d264/src/server.ts :80
const ZC_API_KEY = process.env["ZC_API_KEY"]; - secrets iampantherr-SecureContext-de3d264/src/skill_candidate_generator.ts :34
return process.env.ANTHROPIC_API_KEY ? "anthropic" : "ollama"; - secrets iampantherr-SecureContext-de3d264/src/skills/mutation_results.ts :234
if (backend === "sqlite" && (process.env.ZC_POSTGRES_HOST || process.env.ZC_POSTGRES_PASSWORD)) { - secrets (weak) iampantherr-SecureContext-de3d264/src/skills/mutator.test.ts :288
const original = process.env.ANTHROPIC_API_KEY;
15 more not shown — this panel samples each group; the count above is the real total.
database 11
- db (weak) iampantherr-SecureContext-de3d264/scripts/backfill-source-meta-to-pg.mjs :32
import pg from "pg"; - db (weak) iampantherr-SecureContext-de3d264/scripts/lint-skills.mjs :17
import pg from "pg"; - db (weak) iampantherr-SecureContext-de3d264/scripts/migrate-sqlite-to-pg.mjs :37
import pg from "pg"; - db (weak) iampantherr-SecureContext-de3d264/scripts/v016-live-check.mjs :2
import { Pool } from "pg"; - db iampantherr-SecureContext-de3d264/src/pg_migrations.ts :19
import type { PoolClient } from "pg"; - db iampantherr-SecureContext-de3d264/src/pg_pool.ts :28
import { Pool, type PoolConfig, type PoolClient } from "pg"; - db iampantherr-SecureContext-de3d264/src/security/chained_table_postgres.ts :41
import type { PoolClient } from "pg"; - db iampantherr-SecureContext-de3d264/src/skills/storage_pg.ts :28
import type { PoolClient } from "pg"; - db iampantherr-SecureContext-de3d264/src/store-postgres.ts :33
import pg from "pg"; - db iampantherr-SecureContext-de3d264/src/task_queue.ts :30
import type { PoolClient } from "pg"; - db iampantherr-SecureContext-de3d264/vitest.setup.ts :24
import pg from "pg";
tool registrations 19
- zc_execute iampantherr-SecureContext-de3d264/src/server.ts :184
- zc_execute_file iampantherr-SecureContext-de3d264/src/server.ts :200
- zc_fetch iampantherr-SecureContext-de3d264/src/server.ts :215
- zc_index iampantherr-SecureContext-de3d264/src/server.ts :231
- zc_search iampantherr-SecureContext-de3d264/src/server.ts :243
- zc_search_global iampantherr-SecureContext-de3d264/src/server.ts :266
- zc_batch iampantherr-SecureContext-de3d264/src/server.ts :284
- zc_remember iampantherr-SecureContext-de3d264/src/server.ts :308
- zc_index_file iampantherr-SecureContext-de3d264/src/server.ts :336
- zc_memory_contradictions iampantherr-SecureContext-de3d264/src/server.ts :352
- zc_forget iampantherr-SecureContext-de3d264/src/server.ts :371
- zc_recall_context iampantherr-SecureContext-de3d264/src/server.ts :385
show 7 more
- zc_summarize_session iampantherr-SecureContext-de3d264/src/server.ts :414
- zc_verify_claim iampantherr-SecureContext-de3d264/src/server.ts :431
- zc_evidence iampantherr-SecureContext-de3d264/src/server.ts :450
- zc_status iampantherr-SecureContext-de3d264/src/server.ts :473
- zc_compact_window iampantherr-SecureContext-de3d264/src/server.ts :487
- zc_context_status iampantherr-SecureContext-de3d264/src/server.ts :502
- zc_broadcast iampantherr-SecureContext-de3d264/src/server.ts :516
install hooks 1
- prepublishOnly iampantherr-SecureContext-de3d264/package.json :46
npm run build && npm test
declared dependencies 17
- @modelcontextprotocol/sdk@^1.0.0
- @fastify/cors@^11.2.0
- @types/pg@^8.20.0
- acorn@^8.16.0
- acorn-walk@^8.3.5
- fastify@^5.8.4
- graphology@^0.26.0
- graphology-communities-louvain@^2.0.2
- pdfjs-dist@^4.10.38
- pg@^8.20.0
- typescript@^5.3.3
- @types/node@^22.13.0
show 5 more
- @typescript-eslint/eslint-plugin@^8.58.2
- @typescript-eslint/parser@^8.58.2
- eslint@^9.39.4
- typescript-eslint@^8.58.2
- vitest@^4.1.0
obfuscation 10
- dynamic require()/import() iampantherr-SecureContext-de3d264/hooks/learnings-indexer.mjs :199
try { pg = await import("file:///" + p.replace(/\\/g, "/")); break; } catch { /* try next */ } - dynamic require()/import() iampantherr-SecureContext-de3d264/hooks/postbash-capture.mjs :54
const { captureToolOutput } = await import(`${scBase}/harness.js`); - dynamic require()/import() iampantherr-SecureContext-de3d264/hooks/postedit-reindex.mjs :53
const { summarizeFile } = await import(`${scBase}/summarizer.js`); - dynamic require()/import() iampantherr-SecureContext-de3d264/hooks/posttool-outcomes.mjs :60
try { pg = await import("file:///" + p.replace(/\\/g, "/")); break; } catch { /* try next */ } - dynamic require()/import() iampantherr-SecureContext-de3d264/hooks/preread-dedup.mjs :265
const harness = await import(`file://${scPath.replace(/\\/g, "/")}/harness.js`); - dynamic require()/import() iampantherr-SecureContext-de3d264/hooks/userpromptsubmit-outcome.mjs :79
const { resolveUserPromptOutcome } = await import(`${scBase}/outcomes.js`); - dynamic require()/import() iampantherr-SecureContext-de3d264/scripts/background-index.mjs :51
const { runMigrations } = await import(`file://${distDir.replace(/\\/g, "/")}/migrations.js`); - dynamic require()/import() iampantherr-SecureContext-de3d264/scripts/probe-indexing-status.mjs :16
const { getIndexingStatus } = await import(`${distUrl}/harness.js`); - dynamic require()/import() iampantherr-SecureContext-de3d264/scripts/run-nightly-skill-sweep.mjs :85
const { withClient } = await import(`file:///${SC}/dist/pg_pool.js`.replace(/\\/g, "/")); - dynamic require()/import() iampantherr-SecureContext-de3d264/src/indexing/model_router.test.ts :35
const mod = await import("./model_router.js?t=" + Date.now());