Cross-tool persistent memory for AI agents — local, private, no API key required
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · streamable-http · http · sse counts 5 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
list_pages
-
log_observation
-
read_page
-
search
-
search_capabilities
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 956815d · analyzer v33 · 2w ago
skills & prompt files 5
- prompt-file GalaxyRuler-memory-fort-956815d/src/compile/prompts/narrative-detect-system.md
- prompt-file GalaxyRuler-memory-fort-956815d/src/compile/prompts/narrative-synthesize-system.md
- prompt-file GalaxyRuler-memory-fort-956815d/templates/prompts/compile.md
- prompt-file GalaxyRuler-memory-fort-956815d/templates/prompts/hyde.md
- prompt-file GalaxyRuler-memory-fort-956815d/templates/prompts/lint.md
danger signals9
- suspicious endpoint 169.254.169.254 (cloud metadata) GalaxyRuler-memory-fort-956815d/test/dashboard/config-patch.test.ts :109
embedder: { provider: "openai", options: { baseURL: "http://169.254.169.254/latest/meta-data/" } }, - suspicious endpoint 192.88.99.1 GalaxyRuler-memory-fort-956815d/test/dashboard/config-patch.test.ts :170
"http://192.88.99.1:11434", - suspicious endpoint 8.8.8.8 GalaxyRuler-memory-fort-956815d/test/dashboard/config-patch.test.ts :246
"http://8.8.8.8:11434", - suspicious endpoint 192.0.0.9 GalaxyRuler-memory-fort-956815d/test/dashboard/config-patch.test.ts :247
"http://192.0.0.9:11434", - suspicious endpoint 192.0.0.10 GalaxyRuler-memory-fort-956815d/test/dashboard/config-patch.test.ts :248
"http://192.0.0.10:11434", - suspicious endpoint 8.8.8.8 GalaxyRuler-memory-fort-956815d/test/dashboard/server.test.ts :2736
"https://8.8.8.8/v1", - suspicious endpoint 8.8.8.8 GalaxyRuler-memory-fort-956815d/test/retrieval/embedder/factory.test.ts :211
"https://8.8.8.8/v1", - committed secret Google API key GalaxyRuler-memory-fort-956815d/test/compile/execute.test.ts :130
AIzaSy…(39 chars, redacted) - committed secret OpenAI key GalaxyRuler-memory-fort-956815d/test/compile/index-card.test.ts :57
sk-sup…(25 chars, redacted)
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 899
filesystem 340
- fs GalaxyRuler-memory-fort-956815d/electron/main.ts :3
import { appendFile, mkdir, mkdtemp, readFile, rm, stat, writeFile } from "node:fs/promises"; - fs (weak) GalaxyRuler-memory-fort-956815d/scripts/assert-eval-thresholds.mjs :2
import { readFileSync } from "node:fs"; - fs (weak) GalaxyRuler-memory-fort-956815d/scripts/assert-vendored-sqlite-vec.mjs :2
import { existsSync, readFileSync, statSync } from "node:fs"; - fs (weak) GalaxyRuler-memory-fort-956815d/scripts/check-prompt-drift.mjs :1
import { readFileSync } from "node:fs"; - fs (weak) GalaxyRuler-memory-fort-956815d/scripts/check-prompt-drift.ts :1
import { readFileSync } from "node:fs"; - fs (weak) GalaxyRuler-memory-fort-956815d/scripts/ci-eval-summary.mjs :2
import { readFileSync, appendFileSync } from "node:fs"; - fs (weak) GalaxyRuler-memory-fort-956815d/scripts/install-contract-smoke.mjs :2
import { readFile } from "node:fs/promises"; - fs (weak) GalaxyRuler-memory-fort-956815d/scripts/install-dev-hooks.mjs :2
import { chmodSync, mkdirSync, writeFileSync } from "node:fs"; - fs (weak) GalaxyRuler-memory-fort-956815d/scripts/preflight-vec.mjs :3
import { existsSync, readFileSync } from "node:fs"; - fs (weak) GalaxyRuler-memory-fort-956815d/scripts/release/create-desktop-artifact-manifest.mjs :3
import { createReadStream, readdirSync, statSync, writeFileSync } from "node:fs"; - fs (weak) GalaxyRuler-memory-fort-956815d/scripts/release/validate-desktop-artifacts.mjs :3
import { createReadStream, readFileSync, readdirSync, statSync } from "node:fs"; - fs (weak) GalaxyRuler-memory-fort-956815d/scripts/run-installed-index-gate.mjs :1
import { createWriteStream } from "node:fs";
show 28 more
- fs (weak) GalaxyRuler-memory-fort-956815d/scripts/run-installed-phase5-gate.mjs :2
import { createWriteStream } from "node:fs"; - fs (weak) GalaxyRuler-memory-fort-956815d/scripts/scan-leaks.mjs :3
import { constants } from "node:fs"; - fs (weak) GalaxyRuler-memory-fort-956815d/scripts/spike-index-concurrency.mjs :1
import { mkdir, readFile, rm, stat, writeFile } from "node:fs/promises"; - fs (weak) GalaxyRuler-memory-fort-956815d/scripts/spike-phase5-vec-scale.mjs :2
import { mkdir, rm, stat, writeFile } from "node:fs/promises"; - fs (weak) GalaxyRuler-memory-fort-956815d/scripts/synthetic-vault.mjs :1
import { createWriteStream } from "node:fs"; - fs (weak) GalaxyRuler-memory-fort-956815d/scripts/test-narrative-synthesis.mjs :6
import fs from "node:fs"; - fs GalaxyRuler-memory-fort-956815d/src/capture/auto-link.ts :1
import { existsSync } from "node:fs"; - fs GalaxyRuler-memory-fort-956815d/src/capture/raw-captures.ts :1
import { readdir, stat } from "node:fs/promises"; - fs GalaxyRuler-memory-fort-956815d/src/cli/commands/backfill-source.ts :1
import { existsSync } from "node:fs"; - fs GalaxyRuler-memory-fort-956815d/src/cli/commands/backup.ts :3
import { createReadStream } from "node:fs"; - fs GalaxyRuler-memory-fort-956815d/src/cli/commands/chatgpt-bridge.ts :1
import { existsSync } from "node:fs"; - fs GalaxyRuler-memory-fort-956815d/src/cli/commands/compact-raw.ts :1
import { existsSync } from "node:fs"; - fs GalaxyRuler-memory-fort-956815d/src/cli/commands/compile.ts :1
import { existsSync } from "node:fs"; - fs GalaxyRuler-memory-fort-956815d/src/cli/commands/compress.ts :2
import { existsSync } from "node:fs"; - fs GalaxyRuler-memory-fort-956815d/src/cli/commands/curate.ts :1
import { existsSync } from "node:fs"; - fs GalaxyRuler-memory-fort-956815d/src/cli/commands/dashboard.ts :2
import { existsSync } from "node:fs"; - fs GalaxyRuler-memory-fort-956815d/src/cli/commands/decay.ts :1
import { existsSync } from "node:fs"; - fs GalaxyRuler-memory-fort-956815d/src/cli/commands/desktop-shortcut.ts :2
import { existsSync } from "node:fs"; - fs GalaxyRuler-memory-fort-956815d/src/cli/commands/discover-threads.ts :1
import { existsSync } from "node:fs"; - fs GalaxyRuler-memory-fort-956815d/src/cli/commands/doctor.ts :1
import { existsSync } from "node:fs"; - fs GalaxyRuler-memory-fort-956815d/src/cli/commands/eval-longmemeval.ts :1
import { mkdir, writeFile } from "node:fs/promises"; - fs GalaxyRuler-memory-fort-956815d/src/cli/commands/forget.ts :2
import { existsSync } from "node:fs"; - fs GalaxyRuler-memory-fort-956815d/src/cli/commands/grep.ts :2
import { existsSync } from "node:fs"; - fs GalaxyRuler-memory-fort-956815d/src/cli/commands/import-agentmemory.ts :1
import { existsSync } from "node:fs"; - fs GalaxyRuler-memory-fort-956815d/src/cli/commands/init-onboarding.ts :1
import { existsSync } from "node:fs"; - fs GalaxyRuler-memory-fort-956815d/src/cli/commands/init.ts :2
import { existsSync } from "node:fs"; - fs GalaxyRuler-memory-fort-956815d/src/cli/commands/install/antigravity.ts :4
import { existsSync } from "node:fs"; - fs GalaxyRuler-memory-fort-956815d/src/cli/commands/install/claude-code.ts :2
import { existsSync } from "node:fs";
300 more not shown — this panel samples each group; the count above is the real total.
shell / exec 71
- shell GalaxyRuler-memory-fort-956815d/electron/main.ts :2
import { execFile } from "node:child_process"; - shell (weak) GalaxyRuler-memory-fort-956815d/scripts/install-contract-smoke.mjs :1
import { execFile } from "node:child_process"; - shell (weak) GalaxyRuler-memory-fort-956815d/scripts/preflight-vec.mjs :1
import { spawnSync } from "node:child_process"; - shell (weak) GalaxyRuler-memory-fort-956815d/scripts/run-installed-index-gate.mjs :6
import { spawn } from "node:child_process"; - shell (weak) GalaxyRuler-memory-fort-956815d/scripts/run-installed-phase5-gate.mjs :7
import { spawn } from "node:child_process"; - shell (weak) GalaxyRuler-memory-fort-956815d/scripts/scan-leaks.mjs :2
import { execFileSync } from "node:child_process"; - shell (weak) GalaxyRuler-memory-fort-956815d/scripts/spike-index-concurrency.mjs :5
import { spawn } from "node:child_process"; - shell GalaxyRuler-memory-fort-956815d/src/cli/commands/backup.ts :1
import { execFile as nodeExecFile } from "node:child_process"; - shell GalaxyRuler-memory-fort-956815d/src/cli/commands/chatgpt-bridge.ts :3
import { spawn } from "node:child_process"; - shell GalaxyRuler-memory-fort-956815d/src/cli/commands/dashboard.ts :1
import { spawn } from "node:child_process"; - shell GalaxyRuler-memory-fort-956815d/src/cli/commands/desktop-shortcut.ts :1
import { execFileSync } from "node:child_process"; - shell GalaxyRuler-memory-fort-956815d/src/cli/commands/forget.ts :4
import { execFile } from "node:child_process";
show 28 more
- shell GalaxyRuler-memory-fort-956815d/src/cli/commands/grep.ts :1
import { spawn } from "node:child_process"; - shell GalaxyRuler-memory-fort-956815d/src/cli/commands/init.ts :1
import { execFileSync } from "node:child_process"; - shell GalaxyRuler-memory-fort-956815d/src/cli/commands/install/antigravity.ts :1
import { execFileSync } from "node:child_process"; - shell GalaxyRuler-memory-fort-956815d/src/cli/commands/install/chatgpt.ts :1
import { execFile } from "node:child_process"; - shell GalaxyRuler-memory-fort-956815d/src/cli/commands/install/claude-code.ts :5
import { execFile as execFileCallback } from "node:child_process"; - shell GalaxyRuler-memory-fort-956815d/src/cli/commands/install/opencode.ts :279
" await $`node ${script}`.stdin(JSON.stringify(event));", - shell GalaxyRuler-memory-fort-956815d/src/cli/commands/stats.ts :4
import { execFileSync } from "node:child_process"; - shell GalaxyRuler-memory-fort-956815d/src/cli/commands/supervisor.ts :1
import { execFile as execFileCallback } from "node:child_process"; - shell GalaxyRuler-memory-fort-956815d/src/cli/commands/uninstall.ts :1
import { execFile } from "node:child_process"; - shell GalaxyRuler-memory-fort-956815d/src/cli/commands/verify-schedule.ts :1
import { execFile as nodeExecFile } from "node:child_process"; - shell GalaxyRuler-memory-fort-956815d/src/cli/commands/verify-schedule/windows.ts :72
await execFile("schtasks.exe", ["/Delete", "/TN", TASK_NAME, "/F"], { windowsHide: true }); - shell GalaxyRuler-memory-fort-956815d/src/cli/commands/verify/clients.ts :3
import { execFile } from "node:child_process"; - shell GalaxyRuler-memory-fort-956815d/src/cli/commands/verify/git.ts :1
import { execFile as nodeExecFile } from "node:child_process"; - shell GalaxyRuler-memory-fort-956815d/src/cli/heavy-reexec.ts :1
import { spawnSync } from "node:child_process"; - shell GalaxyRuler-memory-fort-956815d/src/cli/template-render.ts :1
import { execFileSync } from "node:child_process"; - shell GalaxyRuler-memory-fort-956815d/src/clients/status.ts :3
import { spawn } from "node:child_process"; - shell GalaxyRuler-memory-fort-956815d/src/dashboard/auto-heal-scheduler.ts :1
import { spawn } from "node:child_process"; - shell GalaxyRuler-memory-fort-956815d/src/dashboard/auto-promote-scheduler.ts :1
import { spawn } from "node:child_process"; - shell GalaxyRuler-memory-fort-956815d/src/dashboard/index-concurrency-spike.ts :30
exec(sql: string): void; - shell GalaxyRuler-memory-fort-956815d/src/dashboard/loaders.ts :1
import { execFile } from "node:child_process"; - shell GalaxyRuler-memory-fort-956815d/src/dashboard/phase5-contention-spike.ts :1
import { spawnSync } from "node:child_process"; - shell GalaxyRuler-memory-fort-956815d/src/dashboard/utility-search-executor.ts :1
import { fork as forkChildProcess } from "node:child_process"; - shell GalaxyRuler-memory-fort-956815d/src/dashboard/verify-worker.ts :6
import { spawn } from "node:child_process"; - shell GalaxyRuler-memory-fort-956815d/src/forget/evidence.ts :2
import { execFile } from "node:child_process"; - shell GalaxyRuler-memory-fort-956815d/src/forget/history-purge.ts :2
import { spawn } from "node:child_process"; - shell GalaxyRuler-memory-fort-956815d/src/index/db.ts :164
exec(sql: string): void; - shell GalaxyRuler-memory-fort-956815d/src/index/native/capability-probe.ts :1
import { spawnSync } from "node:child_process"; - shell GalaxyRuler-memory-fort-956815d/src/index/native/capability.ts :44
exec(sql: string): void;
31 more not shown — this panel samples each group; the count above is the real total.
network 25
- net GalaxyRuler-memory-fort-956815d/electron/main.ts :1939
return await fetch(url, { signal: controller.signal }); - net (weak) GalaxyRuler-memory-fort-956815d/scripts/preflight-vec.mjs :185
const response = await fetch(url, { - net (weak) GalaxyRuler-memory-fort-956815d/scripts/test-narrative-synthesis.mjs :71
const response = await fetch("https://openrouter.ai/api/v1/chat/completions", { - net GalaxyRuler-memory-fort-956815d/src/cli/commands/chatgpt-bridge.ts :4
import http from "node:http"; - net GalaxyRuler-memory-fort-956815d/src/cli/commands/install/opencoven.ts :2
import { request } from "node:http"; - net GalaxyRuler-memory-fort-956815d/src/cli/commands/verify/chatgpt.ts :3
import https from "node:https"; - net GalaxyRuler-memory-fort-956815d/src/clients/status.ts :6
import https from "node:https"; - net GalaxyRuler-memory-fort-956815d/src/dashboard-ui/lib/api.ts :18
return fetch(input, { ...init, headers }); - net GalaxyRuler-memory-fort-956815d/src/dashboard/index-concurrency-spike.ts :1
import { createServer, type Server as HttpServer, type ServerResponse } from "node:http"; - net GalaxyRuler-memory-fort-956815d/src/dashboard/phase5-contention-spike.ts :5
import { createServer, type IncomingMessage, type Server as HttpServer, type ServerResponse } from "node:http"; - net GalaxyRuler-memory-fort-956815d/src/dashboard/server.ts :2
import { createServer as createHttpServer, type IncomingHttpHeaders, type IncomingMessage, type Server as HttpServer, type ServerResponse } from "node:http"; - net GalaxyRuler-memory-fort-956815d/src/llm/ollama.ts :31
response = await fetch(`${host}/api/chat`, {
show 13 more
- net GalaxyRuler-memory-fort-956815d/src/mcp/http-bridge.ts :1
import http from "node:http"; - net GalaxyRuler-memory-fort-956815d/src/mcp/server.ts :333
// is ready, so fetch() throws ECONNREFUSED/ECONNRESET. Retry the connect a few - net GalaxyRuler-memory-fort-956815d/src/retrieval/embedder/ollama.ts :57
response = await fetch(`${input.host}/api/embeddings`, { - net (weak) GalaxyRuler-memory-fort-956815d/templates/scripts/dashboard-placeholder.mjs :5
import { createServer } from "node:http"; - net (weak) GalaxyRuler-memory-fort-956815d/test/cli/commands/verify/chatgpt.test.ts :1
import { createServer as createHttpServer } from "node:http"; - net (weak) GalaxyRuler-memory-fort-956815d/test/dashboard/index-golden-drift.test.ts :132
const response = await fetch(url); - net (weak) GalaxyRuler-memory-fort-956815d/test/dashboard/index-search-route.test.ts :84
const response = await fetch( - net (weak) GalaxyRuler-memory-fort-956815d/test/dashboard/server-config-edit.test.ts :28
const response = await fetch(`http://${server.host}:${server.port}/api/providers`); - net (weak) GalaxyRuler-memory-fort-956815d/test/dashboard/server-secrets.test.ts :28
const res = await fetch(`${base}/api/secrets`); - net (weak) GalaxyRuler-memory-fort-956815d/test/dashboard/server-sync.test.ts :47
const response = await fetch(`${origin}/api/sync`, { method: "POST" }); - net (weak) GalaxyRuler-memory-fort-956815d/test/dashboard/server.test.ts :3
import { request } from "node:http"; - net (weak) GalaxyRuler-memory-fort-956815d/test/mcp/http-bridge.test.ts :2
import { createServer as createHttpServer } from "node:http"; - net GalaxyRuler-memory-fort-956815d/vitest.config.ts :23
// servers and issues real fetch()/http.request() calls over real loopback
secrets 4
- secrets (weak) GalaxyRuler-memory-fort-956815d/scripts/test-narrative-synthesis.mjs :13
const API_KEY = process.env.OPENROUTER_API_KEY; - secrets GalaxyRuler-memory-fort-956815d/src/retrieval/embedder/voyage.ts :144
const envKey = process.env["VOYAGE_API_KEY"]?.trim(); - secrets (weak) GalaxyRuler-memory-fort-956815d/test/retrieval/voyage-client.test.ts :41
const originalApiKey = process.env["VOYAGE_API_KEY"]; - secrets (weak) GalaxyRuler-memory-fort-956815d/test/storage/secrets.test.ts :48
process.env["OPENROUTER_API_KEY"] = "fromenv";
database 5
- db (weak) GalaxyRuler-memory-fort-956815d/scripts/spike-phase5-vec-scale.mjs :10
const Database = require("better-sqlite3"); - db GalaxyRuler-memory-fort-956815d/src/dashboard/index-concurrency-spike.ts :86
const BetterSqlite3 = require("better-sqlite3") as BetterSqlite3Constructor; - db GalaxyRuler-memory-fort-956815d/src/dashboard/phase5-contention-spike.ts :127
const BetterSqlite3 = require("better-sqlite3") as { - db GalaxyRuler-memory-fort-956815d/src/index/db.ts :9
const BetterSqlite3 = require("better-sqlite3") as BetterSqlite3Constructor; - db GalaxyRuler-memory-fort-956815d/src/index/native/capability.ts :7
const BetterSqlite3 = require("better-sqlite3") as BetterSqlite3Constructor;
tool registrations 5
- log_observation GalaxyRuler-memory-fort-956815d/src/mcp/server.ts :553
- read_page GalaxyRuler-memory-fort-956815d/src/mcp/server.ts :563
- list_pages GalaxyRuler-memory-fort-956815d/src/mcp/server.ts :573
- search GalaxyRuler-memory-fort-956815d/src/mcp/server.ts :583
- search_capabilities GalaxyRuler-memory-fort-956815d/src/mcp/server.ts :593
install hooks 1
- prepublishOnly GalaxyRuler-memory-fort-956815d/package.json :27
npm run build && npm run scan:leaks
declared dependencies 52
- @modelcontextprotocol/sdk@^1.29
- @fontsource/ibm-plex-mono@^5.2.7
- @react-three/drei@^10.7.7
- @react-three/fiber@^9.6.1
- @react-three/postprocessing@^3.0.4
- @tanstack/react-query@^5.100.14
- @tanstack/react-router@^1.170.8
- better-sqlite3@12.11.1
- clsx@^2.1.1
- cmdk@^1.1.1
- commander@^12
- gray-matter@^4
show 28 more
- js-yaml@^4
- lucide-react@^1.16.0
- onnxruntime-node@1.22.0
- openai@^6.39.0
- postprocessing@^6.39.1
- react@^19.2.6
- react-dom@^19.2.6
- react-markdown@^9.1.0
- remark-gfm@^4.0.1
- remark-parse@^11.0.0
- sqlite-vec@0.1.9
- tailwind-merge@^3.6.0
- three@^0.184.0
- unified@^11.0.5
- voyageai@~0.2.1
- @electron/rebuild@4.0.4
- @tailwindcss/typography@^0.5.19
- @tanstack/router-plugin@^1.168.11
- @testing-library/dom@^10.4.1
- @testing-library/jest-dom@^6.9.1
- @testing-library/react@^16.3.2
- @types/js-yaml@^4
- @types/jsdom@^28.0.3
- @types/node@^20
- @types/react@^19.2.15
- @types/react-dom@^19.2.3
- @types/three@^0.184.1
- @vitejs/plugin-react@^4.7.0
12 more not shown — this panel samples each group; the count above is the real total.
transport_posture 2
- network-listening, binds all interfaces, no auth detected GalaxyRuler-memory-fort-956815d/test/cli/commands/dashboard.test.ts :71
host: "0.0.0.0", - binds all interfaces (0.0.0.0) GalaxyRuler-memory-fort-956815d/test/dashboard/server.test.ts :361
host: "0.0.0.0",