Persistent memory for AI agents — OpenClaw plugin + MCP server
Drift inferred · capture-to-capture
- HIGH code analysis flagged committed secret in memorycrystal/memorycrystal
- HIGH code analysis flagged committed secret in memorycrystal/memorycrystal
- HIGH code analysis flagged committed secret in memorycrystal/memorycrystal
- HIGH code analysis flagged committed secret in memorycrystal/memorycrystal
- HIGH code analysis flagged committed secret in memorycrystal/memorycrystal
- HIGH code analysis flagged committed secret in memorycrystal/memorycrystal
- HIGH code analysis flagged committed secret in memorycrystal/memorycrystal
tool count over time
tools
-
crystal_checkpoint
Snapshot memory state at a milestone
-
crystal_dependency_chain
Trace dependency chains between entities
-
crystal_edit
Update an existing memory
-
crystal_empty_knowledge_base
Delete all chunks but keep the KB row/id/bindings
-
crystal_explain_connection
Explain relationships between concepts
-
crystal_forget
Archive or delete a memory
-
crystal_idea_action
Act on Organic ideas
-
crystal_ideas
List active Organic ideas and discoveries
-
crystal_import_knowledge
Import reference chunks into a KB (upsert-by-dedupeKey replaces in place)
-
crystal_list_knowledge_base_memories
Enumerate a KB's chunks with cursor pagination + ids
-
crystal_list_knowledge_bases
List available knowledge bases
-
crystal_preflight
Pre-flight check before risky actions
-
crystal_query_knowledge_base
Search a knowledge base
-
crystal_recall
Semantic search across all long-term memory
-
crystal_recent
Recent messages for short-term context
-
crystal_remember
Store a memory — decisions, facts, lessons
-
crystal_search_messages
Hybrid search over verbatim conversation history, with time-window (fromMs/toMs or ISO dates) and pagination
-
crystal_set_scope
Override channel scope for the session
-
crystal_stats
Memory and usage statistics
-
crystal_trace
Trace a memory back to its source conversation
-
crystal_wake
Session startup — briefing and guardrails
-
crystal_what_do_i_know
Everything known about a topic
-
crystal_who_owns
Find ownership of a file, module, or area
-
crystal_why_did_we
Decision archaeology — why a past choice was made
-
memory_get
Read a full memory by ID or path
-
memory_search
Search LTM and return crystal paths
analyzed commit 8e290ba · analyzer v33 · 5d ago
skills & prompt files 10
- skill memorycrystal-memorycrystal-8e290ba/plugins/cursor/memory-crystal/skills/crystal-architect/SKILL.md
- skill memorycrystal-memorycrystal-8e290ba/plugins/cursor/memory-crystal/skills/crystal-brief/SKILL.md
- skill memorycrystal-memorycrystal-8e290ba/plugins/cursor/memory-crystal/skills/crystal-checkpoint/SKILL.md
- skill memorycrystal-memorycrystal-8e290ba/plugins/cursor/memory-crystal/skills/crystal-hygiene/SKILL.md
- skill memorycrystal-memorycrystal-8e290ba/plugins/cursor/memory-crystal/skills/crystal-kb/SKILL.md
- skill memorycrystal-memorycrystal-8e290ba/skills/crystal-architect/SKILL.md
- skill memorycrystal-memorycrystal-8e290ba/skills/crystal-brief/SKILL.md
- skill memorycrystal-memorycrystal-8e290ba/skills/crystal-checkpoint/SKILL.md
- skill memorycrystal-memorycrystal-8e290ba/skills/crystal-hygiene/SKILL.md
- skill memorycrystal-memorycrystal-8e290ba/skills/crystal-kb/SKILL.md
code files: 367
filesystem 75
- fs memorycrystal-memorycrystal-8e290ba/mcp-server/src/lib/obsidian.ts :1
import { mkdir, writeFile } from "node:fs/promises"; - fs (weak) memorycrystal-memorycrystal-8e290ba/plugin/__tests__/env-propagation.test.js :4
const { mkdtempSync, writeFileSync, rmSync } = require('node:fs'); - fs memorycrystal-memorycrystal-8e290ba/plugin/handler.js :16
const fs = require("node:fs"); - fs memorycrystal-memorycrystal-8e290ba/plugin/index.js :2
const fs = require("fs"); - fs memorycrystal-memorycrystal-8e290ba/plugin/recall-hook.js :2
const fs = require("node:fs"); - fs memorycrystal-memorycrystal-8e290ba/plugin/store/crystal-local-store.js :4
import { mkdirSync } from 'node:fs'; - fs (weak) memorycrystal-memorycrystal-8e290ba/plugin/store/crystal-local-store.test.js :13
import { rmSync, existsSync } from 'node:fs'; - fs memorycrystal-memorycrystal-8e290ba/plugins/cursor/memory-crystal/hooks/_lib.mjs :1
import { existsSync, readFileSync } from "fs"; - fs memorycrystal-memorycrystal-8e290ba/plugins/cursor/memory-crystal/hooks/crystal-hooks.mjs :6
import { readFileSync, existsSync, statSync } from "fs"; - fs memorycrystal-memorycrystal-8e290ba/plugins/cursor/memory-crystal/hooks/cursor-hooks.mjs :2
import { existsSync, readFileSync } from "fs"; - fs memorycrystal-memorycrystal-8e290ba/plugins/shared/_lib.mjs :1
import { existsSync, readFileSync } from "fs"; - fs memorycrystal-memorycrystal-8e290ba/plugins/shared/crystal-hooks-sweep.mjs :5
import { existsSync, mkdirSync, readdirSync, readFileSync, statSync, truncateSync, unlinkSync, writeFileSync } from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/plugins/shared/crystal-hooks-sweep.test.mjs :3
import { mkdtempSync, writeFileSync } from 'node:fs'; - fs memorycrystal-memorycrystal-8e290ba/plugins/shared/crystal-hooks.mjs :6
import { readFileSync, existsSync, statSync } from "fs"; - fs memorycrystal-memorycrystal-8e290ba/plugins/shared/crystal-hooks.test-fetch-mock.mjs :6
import { appendFileSync } from 'node:fs'; - fs (weak) memorycrystal-memorycrystal-8e290ba/plugins/shared/crystal-hooks.test.mjs :147
import { mkdirSync, mkdtempSync, readFileSync, existsSync, rmSync, writeFileSync } from 'node:fs'; - fs memorycrystal-memorycrystal-8e290ba/plugins/shared/cursor-hooks.mjs :2
import { existsSync, readFileSync } from "fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/plugins/shared/cursor-hooks.test.mjs :3
import { readFileSync } from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/plugins/shared/cursor-plugin-parity.test.mjs :18
import { existsSync, readFileSync } from "node:fs"; - fs memorycrystal-memorycrystal-8e290ba/plugins/shared/ensure-codex-hooks-flag.mjs :2
import { readFileSync, writeFileSync, renameSync } from "fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/plugins/shared/ensure-codex-hooks-flag.test.mjs :3
import { mkdtempSync, readFileSync, writeFileSync, readdirSync } from 'node:fs'; - fs memorycrystal-memorycrystal-8e290ba/plugins/shared/install-hook-config.mjs :2
import { mkdirSync, readFileSync, writeFileSync } from "fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/plugins/shared/install-hook-config.test.mjs :3
import { mkdtempSync, readFileSync, writeFileSync } from 'node:fs'; - fs memorycrystal-memorycrystal-8e290ba/plugins/shared/install-managed-block.mjs :8
import { existsSync, readFileSync } from "node:fs"; - fs memorycrystal-memorycrystal-8e290ba/plugins/shared/install-sweep-launchd.mjs :5
import { existsSync, mkdirSync, writeFileSync } from "node:fs"; - fs memorycrystal-memorycrystal-8e290ba/plugins/shared/managed-block.mjs :21
import { readFileSync, writeFileSync, renameSync, unlinkSync, existsSync, mkdirSync, readdirSync } from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/plugins/shared/managed-block.test.mjs :3
import { mkdtempSync, mkdirSync, writeFileSync, readFileSync, existsSync } from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/plugins/shared/public-copy.test.mjs :3
import { readFileSync } from 'node:fs'; - fs memorycrystal-memorycrystal-8e290ba/plugins/shared/remove-hook-config.mjs :2
import { mkdirSync, readFileSync, writeFileSync } from "fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/plugins/shared/remove-hook-config.test.mjs :3
import { mkdtempSync, readFileSync, writeFileSync } from 'node:fs'; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/bench-competitors.mjs :2
import { mkdirSync, writeFileSync } from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/bench-memory-crystal.mjs :3
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/convex-admin-run-helper.test.mjs :12
} from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/convex-cost-smoke.mjs :3
import { readFileSync } from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/convex-local-auth-keys.ts :2
import { existsSync, readFileSync } from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/convex-local-import-auth.ts :2
import { existsSync, readFileSync } from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/convex-local-provision-env.ts :2
import { existsSync, readFileSync } from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/convex-local-seed.ts :2
import { existsSync, readFileSync } from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/convex-local-write-env.ts :2
import { existsSync, readFileSync, renameSync, writeFileSync } from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/convex-run-self-hosted.test.mjs :10
} from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/crystal-backfill-from-jsonl.mjs :9
import { existsSync, readdirSync, readFileSync, statSync } from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/crystal-enable.test.js :5
const fs = require("node:fs"); - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/crystal-hooks-lib.test.mjs :3
import { mkdtempSync, writeFileSync } from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/eval-graph-extraction-openrouter.mjs :22
import { writeFileSync, mkdirSync } from "fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/eval-graph-extraction.mjs :20
import { writeFileSync, mkdirSync } from "fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/generate-hook-config.js :3
const fs = require("node:fs"); - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/generate-plugin-checksums.mjs :13
import { readFileSync, writeFileSync } from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/gerald-read-contract-smoke.mjs :2
import { mkdirSync, readFileSync, writeFileSync } from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/hermes-plugin-assets-route.test.mjs :3
import { existsSync, readFileSync } from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/hermes-plugin-contract-smoke.test.mjs :4
import { readFileSync } from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/install-hooks.mjs :4
import { cpSync, existsSync, mkdirSync } from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/install-hooks.test.mjs :3
import { mkdtempSync, existsSync } from 'node:fs'; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/install-launchd-plist.mjs :3
import { existsSync, mkdirSync, writeFileSync } from "fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/installer-support-tier.test.mjs :12
} from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/installer-universal-smoke.test.mjs :13
} from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/lib/convex-admin-run-helper.mjs :16
import { fstatSync, readFileSync, writeSync } from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/local-backend-artifact-smoke.mjs :3
import { existsSync, mkdtempSync, readFileSync, readdirSync, rmSync } from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/managed-block-discipline.test.mjs :17
} from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/moondev-ingest-canary.mjs :3
import { mkdirSync, readFileSync, writeFileSync } from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/package-local-backend.mjs :3
import { cpSync, existsSync, mkdirSync, readdirSync, readFileSync, rmSync, writeFileSync } from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/plugin-checksums.test.mjs :12
import { readFileSync } from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/provision-gerald-research-key.mjs :2
import { chmodSync, existsSync, mkdirSync, readFileSync, renameSync, writeFileSync } from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/provision-moondev-ingest-key.mjs :2
import { chmodSync, existsSync, mkdirSync, readFileSync, renameSync, writeFileSync } from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/research-e2e-smoke.mjs :3
import { mkdirSync, writeFileSync } from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/research-scale-fixture.mjs :3
import { mkdirSync, writeFileSync } from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/rotate-mcp-api-key.mjs :46
} from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/rotate-mcp-api-key.test.mjs :3
import * as nodeFs from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/seed-from-memory.js :11
const fs = require("node:fs"); - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/skills-lint.test.mjs :12
import { readFileSync, readdirSync, statSync } from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/soak-recall.mjs :23
import { readFileSync } from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/support-tier-badge.test.mjs :5
import { readFileSync } from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/sync-changelog-docs.mjs :10
import { readFileSync, writeFileSync } from "fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/update-parity.test.js :5
const fs = require("node:fs"); - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/validate-benchmark-artifacts.mjs :2
import { existsSync, readFileSync, readdirSync } from "node:fs"; - fs (weak) memorycrystal-memorycrystal-8e290ba/scripts/web-backend-env.ts :2
import { existsSync, mkdirSync, readFileSync, renameSync, writeFileSync } from "node:fs";
shell / exec 36
- shell (weak) memorycrystal-memorycrystal-8e290ba/plugin/__tests__/env-propagation.test.js :2
const { spawn } = require('node:child_process'); - shell memorycrystal-memorycrystal-8e290ba/plugin/capture-hook.js :5
* It was previously used by handler.js (via child_process.spawnSync) and as a - shell memorycrystal-memorycrystal-8e290ba/plugin/handler.js :15
const childProcess = require("node:child_process"); - shell (weak) memorycrystal-memorycrystal-8e290ba/plugin/handler.test.js :12
const childProcess = require("node:child_process"); - shell memorycrystal-memorycrystal-8e290ba/plugin/index.js :6
const { execFile } = require("child_process"); - shell (weak) memorycrystal-memorycrystal-8e290ba/plugin/package-files.test.js :3
const { execFileSync } = require("node:child_process"); - shell memorycrystal-memorycrystal-8e290ba/plugins/cursor/memory-crystal/hooks/_lib.mjs :5
import { execFileSync } from "child_process"; - shell memorycrystal-memorycrystal-8e290ba/plugins/shared/_lib.mjs :5
import { execFileSync } from "child_process"; - shell (weak) memorycrystal-memorycrystal-8e290ba/plugins/shared/crystal-hooks.test.mjs :150
import { spawn } from 'node:child_process'; - shell (weak) memorycrystal-memorycrystal-8e290ba/plugins/shared/ensure-codex-hooks-flag.test.mjs :6
import { execFileSync } from 'node:child_process'; - shell (weak) memorycrystal-memorycrystal-8e290ba/plugins/shared/install-hook-config.test.mjs :6
import { execFileSync } from 'node:child_process'; - shell memorycrystal-memorycrystal-8e290ba/plugins/shared/install-sweep-launchd.mjs :4
import { execFileSync } from "node:child_process"; - shell (weak) memorycrystal-memorycrystal-8e290ba/plugins/shared/remove-hook-config.test.mjs :6
import { execFileSync } from 'node:child_process'; - shell (weak) memorycrystal-memorycrystal-8e290ba/scripts/bench-memory-crystal.mjs :5
import { spawnSync } from "node:child_process"; - shell (weak) memorycrystal-memorycrystal-8e290ba/scripts/bench-recall.mjs :21
import { spawnSync } from "node:child_process"; - shell (weak) memorycrystal-memorycrystal-8e290ba/scripts/convex-admin-run-helper.test.mjs :2
import { spawn, spawnSync } from "node:child_process"; - shell (weak) memorycrystal-memorycrystal-8e290ba/scripts/convex-deploy-self-hosted.mjs :3
import { spawnSync } from "node:child_process"; - shell (weak) memorycrystal-memorycrystal-8e290ba/scripts/convex-local-auth-keys.ts :4
import { spawnSync } from "node:child_process"; - shell (weak) memorycrystal-memorycrystal-8e290ba/scripts/convex-local-import-auth.ts :4
import { spawnSync } from "node:child_process"; - shell (weak) memorycrystal-memorycrystal-8e290ba/scripts/convex-local-provision-env.ts :4
import { spawnSync } from "node:child_process"; - shell (weak) memorycrystal-memorycrystal-8e290ba/scripts/convex-run-self-hosted.mjs :33
import { spawnSync } from "node:child_process"; - shell (weak) memorycrystal-memorycrystal-8e290ba/scripts/convex-run-self-hosted.test.mjs :2
import { spawnSync } from "node:child_process"; - shell (weak) memorycrystal-memorycrystal-8e290ba/scripts/convex-self-hosted-cli.mjs :3
import { spawnSync } from "node:child_process"; - shell (weak) memorycrystal-memorycrystal-8e290ba/scripts/crystal-enable.test.js :8
const { spawnSync } = require("node:child_process"); - shell (weak) memorycrystal-memorycrystal-8e290ba/scripts/hermes-plugin-contract-smoke.test.mjs :3
import { spawnSync } from "node:child_process"; - shell (weak) memorycrystal-memorycrystal-8e290ba/scripts/install-launchd-plist.mjs :2
import { execFileSync } from "child_process"; - shell (weak) memorycrystal-memorycrystal-8e290ba/scripts/installer-support-tier.test.mjs :15
import { spawnSync } from "node:child_process"; - shell (weak) memorycrystal-memorycrystal-8e290ba/scripts/installer-universal-smoke.test.mjs :16
import { spawnSync } from "node:child_process"; - shell (weak) memorycrystal-memorycrystal-8e290ba/scripts/lib/convex-self-hosted-env.mjs :1
import { spawnSync } from "node:child_process"; - shell (weak) memorycrystal-memorycrystal-8e290ba/scripts/local-backend-artifact-smoke.mjs :6
import { spawnSync } from "node:child_process"; - shell (weak) memorycrystal-memorycrystal-8e290ba/scripts/managed-block-discipline.test.mjs :20
import { spawnSync } from "node:child_process"; - shell (weak) memorycrystal-memorycrystal-8e290ba/scripts/provision-gerald-research-key.mjs :4
import { spawnSync } from "node:child_process"; - shell (weak) memorycrystal-memorycrystal-8e290ba/scripts/provision-moondev-ingest-key.mjs :4
import { spawnSync } from "node:child_process"; - shell (weak) memorycrystal-memorycrystal-8e290ba/scripts/research-scale-fixture.mjs :7
import { execFileSync } from "node:child_process"; - shell (weak) memorycrystal-memorycrystal-8e290ba/scripts/rotate-mcp-api-key.mjs :28
import { spawnSync } from "node:child_process"; - shell (weak) memorycrystal-memorycrystal-8e290ba/scripts/rotate-mcp-api-key.test.mjs :2
import { spawnSync } from "node:child_process";
network 31
- net memorycrystal-memorycrystal-8e290ba/convex/crystal/providerGateway.ts :577
const response = await fetch(args.endpoint, { - net memorycrystal-memorycrystal-8e290ba/convex/crystal/researchArtifacts.ts :185
const response = await fetch(url); - net memorycrystal-memorycrystal-8e290ba/convex/local/bootstrap.ts :242
response = await fetch(url, { - net memorycrystal-memorycrystal-8e290ba/convex/local/telemetryPush.ts :296
response = await fetch(`${cloudUrl}/api/cloud/telemetry/push`, { - net memorycrystal-memorycrystal-8e290ba/mcp-server/src/index.ts :2
import { createServer } from "node:http"; - net memorycrystal-memorycrystal-8e290ba/mcp-server/src/lib/convexClient.ts :149
const response = await fetch(`${this.baseUrl}${path}`, { - net memorycrystal-memorycrystal-8e290ba/mcp-server/src/lib/embed.ts :34
const response = await fetch(`${this.endpoint}/api/embeddings`, { - net (weak) memorycrystal-memorycrystal-8e290ba/plugin/__tests__/env-propagation.test.js :3
const { createServer } = require('node:http'); - net memorycrystal-memorycrystal-8e290ba/plugin/capture-hook.js :119
const res = await fetch(`${convexUrl}/api/mcp/capture`, { - net memorycrystal-memorycrystal-8e290ba/plugin/compaction/crystal-summarizer.js :113
const res = await fetch(`${baseUrl}/chat/completions`, { - net memorycrystal-memorycrystal-8e290ba/plugin/index.js :487
const statsRes = await fetch(`${convexUrl}/api/mcp/stats`, { - net memorycrystal-memorycrystal-8e290ba/plugin/recall-hook.js :360
const mcpResponse = await fetch(`${crystalSite}/api/mcp/recall`, { - net memorycrystal-memorycrystal-8e290ba/plugins/cursor/memory-crystal/hooks/_lib.mjs :76
const res = await fetch(`${config.convexUrl}${path}`, { - net memorycrystal-memorycrystal-8e290ba/plugins/shared/_lib.mjs :76
const res = await fetch(`${config.convexUrl}${path}`, { - net (weak) memorycrystal-memorycrystal-8e290ba/scripts/bench-memory-crystal.mjs :192
const response = await fetch(`${apiUrl}${path}`, { - net (weak) memorycrystal-memorycrystal-8e290ba/scripts/convex-admin-run-helper.test.mjs :68
`import { createServer } from "node:http"; - net (weak) memorycrystal-memorycrystal-8e290ba/scripts/crystal-backfill-from-jsonl.mjs :155
const response = await fetch(`${config.convexUrl}${path}`, { - net (weak) memorycrystal-memorycrystal-8e290ba/scripts/crystal-enable.test.js :9
const { createServer } = require("node:http"); - net (weak) memorycrystal-memorycrystal-8e290ba/scripts/eval-graph-extraction-openrouter.mjs :294
const res = await fetch(OPENROUTER_API_URL, { - net (weak) memorycrystal-memorycrystal-8e290ba/scripts/eval-graph-extraction.mjs :294
const res = await fetch(url, { - net (weak) memorycrystal-memorycrystal-8e290ba/scripts/gerald-read-contract-smoke.mjs :15
const response = await fetch(`${base}${path}`, { - net (weak) memorycrystal-memorycrystal-8e290ba/scripts/installer-universal-smoke.test.mjs :534
import { createServer } from "node:http"; - net (weak) memorycrystal-memorycrystal-8e290ba/scripts/moondev-ingest-canary.mjs :21
const response = await fetch(`${base}${path}`, { method, headers: headersFor(credential, body), body: body === undefined ? undefined : JSON.stringify(body), redirect }); - net (weak) memorycrystal-memorycrystal-8e290ba/scripts/research-e2e-smoke.mjs :25
const response = await fetch(`${baseUrl}${path}`, { - net (weak) memorycrystal-memorycrystal-8e290ba/scripts/research-scale-fixture.mjs :45
const response = await fetch(`${apiUrl}${path}`, { - net (weak) memorycrystal-memorycrystal-8e290ba/scripts/seed-from-memory.js :13
const https = require("node:https"); - net (weak) memorycrystal-memorycrystal-8e290ba/scripts/soak-recall.mjs :143
const response = await fetch(`${origin}/api/mcp/recall`, { - net (weak) memorycrystal-memorycrystal-8e290ba/scripts/test-capture-e2e.cjs :3
const http = require("node:http"); - net (weak) memorycrystal-memorycrystal-8e290ba/tests/e2e/cross-machine.spec.ts :47
const resp = await fetch(`https://${host}/api/mcp/recall`, { - net (weak) memorycrystal-memorycrystal-8e290ba/tests/e2e/onboarding.cold.spec.ts :109
const r = await fetch(url); - net (weak) memorycrystal-memorycrystal-8e290ba/tests/e2e/revocation.spec.ts :32
const resp = await fetch(`https://${host}/api/mcp/recall`, {
secrets 31
- secrets (weak) memorycrystal-memorycrystal-8e290ba/convex/crystal/organic/__tests__/utils.test.ts :252
delete process.env.OPENROUTER_API_KEY; - secrets memorycrystal-memorycrystal-8e290ba/convex/crystal/providerSettings.ts :78
const adminKey = (await resolveOpenRouterAdminOverride(ctx)) ?? process.env.OPENROUTER_API_KEY; - secrets (weak) memorycrystal-memorycrystal-8e290ba/convex/local/__tests__/telemetryPush.test.ts :82
process.env.MC_TUNNEL_TELEMETRY_TOKEN = "test-telemetry-token"; - secrets memorycrystal-memorycrystal-8e290ba/convex/local/bootstrap.ts :221
const token = process.env.MC_BOOTSTRAP_TOKEN; - secrets memorycrystal-memorycrystal-8e290ba/convex/local/telemetryPush.ts :95
if (process.env.GEMINI_API_KEY) embedder = "gemini"; - secrets memorycrystal-memorycrystal-8e290ba/convex/selfHosted/adminSettingsResolvers.ts :28
return process.env.OPENROUTER_API_KEY?.trim() || null; - secrets memorycrystal-memorycrystal-8e290ba/mcp-server/src/index.ts :145
hasTransportToken = Boolean(process.env.MC_MCP_TOKEN), - secrets memorycrystal-memorycrystal-8e290ba/mcp-server/src/lib/convexClient.ts :44
* Previously each tool checked only `process.env.MEMORY_CRYSTAL_API_KEY`, which - secrets memorycrystal-memorycrystal-8e290ba/mcp-server/src/lib/embed.ts :77
const resolvedApiKey = config.apiKey ?? process.env.OPENROUTER_API_KEY; - secrets memorycrystal-memorycrystal-8e290ba/plugin/capture-hook.js :142
process.env.MEMORY_CRYSTAL_API_KEY || - secrets memorycrystal-memorycrystal-8e290ba/plugin/compaction/crystal-summarizer.js :148
const apiKey = config.apiKey || process.env.OPENAI_API_KEY; - secrets memorycrystal-memorycrystal-8e290ba/plugin/index.js :955
apiKey: config?.openaiApiKey || process.env.OPENAI_API_KEY || undefined, - secrets memorycrystal-memorycrystal-8e290ba/plugins/cursor/memory-crystal/hooks/_lib.mjs :19
config.apiKey = config.apiKey || process.env.MEMORY_CRYSTAL_API_KEY || ""; - secrets memorycrystal-memorycrystal-8e290ba/plugins/shared/_lib.mjs :19
config.apiKey = config.apiKey || process.env.MEMORY_CRYSTAL_API_KEY || ""; - secrets memorycrystal-memorycrystal-8e290ba/plugins/shared/crystal-hooks-sweep.mjs :109
config.apiKey = config.apiKey || process.env.MEMORY_CRYSTAL_API_KEY || process.env.CRYSTAL_API_KEY || ""; - secrets (weak) memorycrystal-memorycrystal-8e290ba/scripts/convex-local-auth-keys.ts :13
CONVEX_SELF_HOSTED_ADMIN_KEY: process.env.CONVEX_SELF_HOSTED_ADMIN_KEY || "", - secrets (weak) memorycrystal-memorycrystal-8e290ba/scripts/convex-local-import-auth.ts :19
CONVEX_SELF_HOSTED_ADMIN_KEY: process.env.CONVEX_SELF_HOSTED_ADMIN_KEY || "", - secrets (weak) memorycrystal-memorycrystal-8e290ba/scripts/convex-local-provision-env.ts :12
CONVEX_SELF_HOSTED_ADMIN_KEY: process.env.CONVEX_SELF_HOSTED_ADMIN_KEY || "", - secrets (weak) memorycrystal-memorycrystal-8e290ba/scripts/convex-local-seed.ts :73
adminKey: process.env.CONVEX_SELF_HOSTED_ADMIN_KEY, - secrets (weak) memorycrystal-memorycrystal-8e290ba/scripts/convex-local-write-env.ts :29
const input = readFileSync(path, "utf8").replace(/\$\{GENERATED_ADMIN_KEY\}/g, process.env.CONVEX_SELF_HOSTED_ADMIN_KEY || ""); - secrets (weak) memorycrystal-memorycrystal-8e290ba/scripts/convex-run-self-hosted.test.mjs :39
admin: process.env.CONVEX_SELF_HOSTED_ADMIN_KEY, - secrets (weak) memorycrystal-memorycrystal-8e290ba/scripts/crystal-backfill-from-jsonl.mjs :149
apiKey: process.env.MEMORY_CRYSTAL_API_KEY || config.apiKey || "", - secrets (weak) memorycrystal-memorycrystal-8e290ba/scripts/eval-graph-extraction-openrouter.mjs :430
const apiKey = process.env.OPENROUTER_API_KEY; - secrets (weak) memorycrystal-memorycrystal-8e290ba/scripts/eval-graph-extraction.mjs :409
const apiKey = process.env.GEMINI_API_KEY; - secrets (weak) memorycrystal-memorycrystal-8e290ba/scripts/lib/convex-admin-run-helper.mjs :109
const adminKey = process.env.CONVEX_SELF_HOSTED_ADMIN_KEY?.trim(); - secrets (weak) memorycrystal-memorycrystal-8e290ba/scripts/research-e2e-smoke.mjs :8
const apiKey = process.env.MEMORY_CRYSTAL_API_KEY; - secrets (weak) memorycrystal-memorycrystal-8e290ba/scripts/research-scale-fixture.mjs :25
const apiKey = process.env.MEMORY_CRYSTAL_API_KEY ?? ""; - secrets (weak) memorycrystal-memorycrystal-8e290ba/scripts/rotate-mcp-api-key.test.mjs :695
admin: process.env.CONVEX_SELF_HOSTED_ADMIN_KEY, - secrets (weak) memorycrystal-memorycrystal-8e290ba/scripts/soak-recall.mjs :207
const apiKey = process.env.MEMORY_CRYSTAL_API_KEY ?? ""; - secrets memorycrystal-memorycrystal-8e290ba/shared/env.ts :9
return process.env.CRYSTAL_API_KEY ?? process.env.GEMINI_API_KEY; - secrets (weak) memorycrystal-memorycrystal-8e290ba/tests/chaos/cf-api-rate-limit.spec.ts :24
process.env.CF_API_TOKEN = FAKE_TOKEN;
database 1
- db memorycrystal-memorycrystal-8e290ba/plugin/index.js :903
const Database = require("better-sqlite3");
install hooks 1
- prepublishOnly memorycrystal-memorycrystal-8e290ba/mcp-server/package.json :20
npm run build
declared dependencies 10
- fflate@^0.8.2
- @playwright/test@^1.49.0
- convex@^1.35.1
- convex-test@^0.0.41
- eslint-plugin-local-rules@^3.0.2
- vitest@^4.0.18
- lightningcss-darwin-arm64@1.32.0
- lightningcss-darwin-x64@1.32.0
- lightningcss-linux-arm64-gnu@1.32.0
- lightningcss-linux-x64-gnu@1.32.0
transport_posture 1
- binds all interfaces (0.0.0.0) memorycrystal-memorycrystal-8e290ba/scripts/installer-universal-smoke.test.mjs :2590
}).listen(0, "0.0.0.0", function () { writeFileSync(process.argv[4], String(this.address().port)); });