Personal AI/session vault and remote MCP - Windows collectors, Railway ingest/MCP, EU Supabase store.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport http counts 76 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
allocator_context
-
ask_mirror
-
audit_source_coverage
-
capture_decision
-
capture_outcome
-
compile_ability_model
-
complete_experiment
-
confirm_hypothesis
-
confirm_insight
-
cortex_help
-
detect_cycles
-
diff_self_model
-
extract_affect_proxies
-
extract_llm_ops
-
extract_observations
-
extract_session_ops
-
get_calendar_range
-
get_calibration_stats
-
get_coding_builder_profile
-
get_ebook
-
get_email_thread
-
get_entity_links
-
get_file_summary
-
get_hypothesis
-
get_interest_map
-
get_llm_operator_profile
-
get_portrait
-
get_self_model
-
get_session
-
get_weekly_mirror
-
how_have_i_changed
-
intrapersonal_metrics
-
issue_restricted_capability
-
link_entity
-
list_bookmarks
-
list_decisions
-
list_entities
-
list_episode_scores
-
list_experiments
-
list_hypotheses
-
list_interests
-
list_intrapersonal_records
-
list_llm_episode_scores
-
list_llm_ops_episodes
-
list_observations
-
list_open_questions
-
list_portrait_versions
-
list_prediction_results
-
list_recent_work
-
list_self_model_versions
-
list_session_ops
-
log_reflection
-
mine_interests
-
priority_vs_actual
-
promote_mirror_claims
-
propose_experiment
-
propose_hypothesis
-
recent_plays
-
recent_watches
-
refine_hypothesis
-
refine_insight
-
refresh_interest_map
-
refresh_portrait
-
refresh_self_model
-
refresh_weekly_mirror
-
reject_hypothesis
-
reject_insight
-
request_evidence_capability
-
request_experiment_results
-
retrieve_supporting_evidence
-
search_memory
-
search_records
-
seed_entities
-
snapshot_open_questions
-
upsert_entity
-
upsert_interest
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 02e6d49 · analyzer v33 · 1w ago
skills & prompt files 7
- skill jackye426-cortex-02e6d49/.agents/skills/vibe-law/SKILL.md
- skill jackye426-cortex-02e6d49/.claude/skills/vibe-law/SKILL.md
- skill jackye426-cortex-02e6d49/.cursor/skills/vibe-law/SKILL.md
- agent-rules jackye426-cortex-02e6d49/AGENTS.md
- prompt-file jackye426-cortex-02e6d49/apps/mcp-server/src/session-ops/prompts/decision_classifier.md
- prompt-file jackye426-cortex-02e6d49/apps/mcp-server/src/session-ops/prompts/episode_scoring.md
- prompt-file jackye426-cortex-02e6d49/apps/mcp-server/src/session-ops/prompts/session_narrative.md
danger signals3
- committed secret private key jackye426-cortex-02e6d49/packages/redaction/src/patterns.test.ts :51
PEM private key block (redacted) - credential in logs credential in log jackye426-cortex-02e6d49/packages/adapters/spotify/src/oauth-cli.ts :107
console.log(`SPOTIFY_REFRESH_TOKEN=${tokens.refresh_token}`); - credential in logs credential in log jackye426-cortex-02e6d49/packages/google-auth/src/oauth-cli.ts :185
console.log(`${refreshEnvName}=${tokens.refresh_token}`);
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 259
filesystem 42
- fs jackye426-cortex-02e6d49/apps/api/src/index.ts :2
import { existsSync, readFileSync } from "node:fs"; - fs jackye426-cortex-02e6d49/apps/collector/src/checkpoint-store.ts :12
} from "node:fs"; - fs (weak) jackye426-cortex-02e6d49/apps/collector/src/gbrain-sink.test.ts :2
import { mkdtempSync, readFileSync, readdirSync } from "node:fs"; - fs jackye426-cortex-02e6d49/apps/collector/src/gbrain-sink.ts :6
import { mkdirSync, writeFileSync } from "node:fs"; - fs jackye426-cortex-02e6d49/apps/collector/src/ingest-client.ts :6
import { existsSync, readFileSync } from "node:fs"; - fs jackye426-cortex-02e6d49/apps/data-verse/server.mjs :6
import { readFileSync, existsSync, statSync } from "node:fs"; - fs jackye426-cortex-02e6d49/apps/mcp-server/src/env.ts :1
import { existsSync, readFileSync } from "node:fs"; - fs (weak) jackye426-cortex-02e6d49/apps/mcp-server/src/intrapersonal/from-l1.test.ts :2
import { mkdirSync, mkdtempSync, writeFileSync } from "node:fs"; - fs jackye426-cortex-02e6d49/apps/mcp-server/src/intrapersonal/from-l1.ts :6
import { mkdirSync, writeFileSync } from "node:fs"; - fs (weak) jackye426-cortex-02e6d49/apps/mcp-server/src/llm-ops/from-pages.test.ts :2
import { mkdirSync, mkdtempSync, writeFileSync } from "node:fs"; - fs jackye426-cortex-02e6d49/apps/mcp-server/src/llm-ops/from-pages.ts :5
import { mkdirSync, writeFileSync } from "node:fs"; - fs jackye426-cortex-02e6d49/apps/mcp-server/src/session-ops/decisions.ts :5
import { readFileSync } from "node:fs"; - fs (weak) jackye426-cortex-02e6d49/apps/mcp-server/src/session-ops/from-pages.test.ts :2
import { mkdirSync, mkdtempSync, writeFileSync } from "node:fs"; - fs jackye426-cortex-02e6d49/apps/mcp-server/src/session-ops/from-pages.ts :6
import { mkdirSync, writeFileSync } from "node:fs"; - fs jackye426-cortex-02e6d49/apps/mcp-server/src/session-ops/narrative.ts :4
import { readFileSync } from "node:fs"; - fs jackye426-cortex-02e6d49/apps/mcp-server/src/session-ops/score-episode.ts :4
import { readFileSync } from "node:fs"; - fs jackye426-cortex-02e6d49/apps/openai-mirror/src/env.ts :1
import { existsSync, readFileSync } from "node:fs"; - fs jackye426-cortex-02e6d49/ecosystem.config.cjs :23
const fs = require("node:fs"); - fs jackye426-cortex-02e6d49/hooks/lib/post-ingest.mjs :7
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs"; - fs (weak) jackye426-cortex-02e6d49/hooks/lib/redact.test.mjs :2
import { mkdtempSync, readFileSync } from "node:fs"; - fs jackye426-cortex-02e6d49/packages/adapters/browser/src/paths.ts :1
import { existsSync, readdirSync } from "node:fs"; - fs jackye426-cortex-02e6d49/packages/adapters/browser/src/read.ts :2
import { copyFileSync, existsSync, mkdtempSync, readFileSync, rmSync } from "node:fs"; - fs jackye426-cortex-02e6d49/packages/adapters/calibre/src/db.ts :1
import { copyFileSync, existsSync, mkdtempSync, rmSync } from "node:fs"; - fs jackye426-cortex-02e6d49/packages/adapters/calibre/src/index.ts :1
import { existsSync } from "node:fs"; - fs jackye426-cortex-02e6d49/packages/adapters/calibre/src/paths.ts :1
import { existsSync, readFileSync } from "node:fs"; - fs jackye426-cortex-02e6d49/packages/adapters/chatgpt-export/src/load.ts :6
import { existsSync, readdirSync, readFileSync, statSync } from "node:fs"; - fs jackye426-cortex-02e6d49/packages/adapters/claude-code/src/paths.ts :3
import { readdirSync, statSync } from "node:fs"; - fs jackye426-cortex-02e6d49/packages/adapters/claude-code/src/read.ts :1
import { createReadStream } from "node:fs"; - fs jackye426-cortex-02e6d49/packages/adapters/codex/src/paths.ts :3
import { readdirSync, statSync } from "node:fs"; - fs jackye426-cortex-02e6d49/packages/adapters/codex/src/read.ts :1
import { createReadStream } from "node:fs"; - fs jackye426-cortex-02e6d49/packages/adapters/codex/src/threads.ts :1
import { existsSync } from "node:fs"; - fs jackye426-cortex-02e6d49/packages/adapters/cursor/src/paths.ts :1
import { existsSync, readdirSync, statSync } from "node:fs"; - fs jackye426-cortex-02e6d49/packages/adapters/cursor/src/sqlite.ts :1
import { copyFileSync, existsSync, mkdtempSync, rmSync } from "node:fs"; - fs jackye426-cortex-02e6d49/packages/adapters/cursor/src/transcripts.ts :1
import { createReadStream } from "node:fs"; - fs jackye426-cortex-02e6d49/packages/adapters/cursor/src/workspaces.ts :1
import { readdirSync, readFileSync } from "node:fs"; - fs jackye426-cortex-02e6d49/packages/adapters/spotify/src/export.ts :6
import { existsSync, readdirSync, readFileSync, statSync } from "node:fs"; - fs jackye426-cortex-02e6d49/packages/adapters/spotify/src/oauth-cli.ts :11
import { existsSync, readFileSync } from "node:fs"; - fs jackye426-cortex-02e6d49/packages/adapters/youtube/src/takeout.ts :6
import { existsSync, readdirSync, readFileSync, statSync } from "node:fs"; - fs jackye426-cortex-02e6d49/packages/gbrain-session-page/src/list-pages.ts :1
import { readdirSync, readFileSync, statSync } from "node:fs"; - fs jackye426-cortex-02e6d49/packages/gbrain-session-page/src/write.ts :1
import { mkdirSync, writeFileSync } from "node:fs"; - fs jackye426-cortex-02e6d49/packages/google-auth/src/oauth-cli.ts :15
import { existsSync, readFileSync } from "node:fs"; - fs (weak) jackye426-cortex-02e6d49/scripts/apply-migration.mjs :11
import { readFileSync, existsSync } from "node:fs";
shell / exec 2
- shell jackye426-cortex-02e6d49/hooks/claude-post-tool-use.mjs :6
import { spawn } from "node:child_process"; - shell (weak) jackye426-cortex-02e6d49/scripts/apply-migration.mjs :13
import { spawnSync } from "node:child_process";
network 15
- net jackye426-cortex-02e6d49/apps/api/src/audit.ts :67
const res = await fetch(`${url}/rest/v1/audit_log`, { - net jackye426-cortex-02e6d49/apps/api/src/deletions.ts :78
const res = await fetch(`${url}/rest/v1/deletions`, { - net jackye426-cortex-02e6d49/apps/chatgpt-extension/background.js :68
const res = await fetch(`${settings.ingestUrl}/v1/ingest`, { - net jackye426-cortex-02e6d49/apps/collector/src/index.ts :18
const res = await fetch(`${INGEST_URL}/health`); - net jackye426-cortex-02e6d49/apps/collector/src/ingest-client.ts :90
res = await fetch(`${config.url}/v1/ingest`, { - net jackye426-cortex-02e6d49/apps/data-verse/server.mjs :5
import { createServer } from "node:http"; - net jackye426-cortex-02e6d49/apps/data-verse/src/lib/viz-api.ts :37
const res = await fetch(url, { - net jackye426-cortex-02e6d49/apps/mcp-server/src/audit.ts :33
const res = await fetch(`${url.replace(/\/$/, "")}/rest/v1/audit_log`, { - net jackye426-cortex-02e6d49/apps/mcp-server/src/llm.ts :144
const res = await fetch(url, init); - net jackye426-cortex-02e6d49/hooks/lib/post-ingest.mjs :128
const res = await fetch(`${base}/v1/ingest`, { - net jackye426-cortex-02e6d49/packages/adapters/github/src/client.ts :210
res = await fetch(url, { headers, signal: controller.signal }); - net jackye426-cortex-02e6d49/packages/adapters/spotify/src/auth.ts :111
const res = await fetch(TOKEN_URL, { - net jackye426-cortex-02e6d49/packages/adapters/spotify/src/client.ts :37
const res = await fetch(url, { - net (weak) jackye426-cortex-02e6d49/scripts/backfill-session-distillates.mjs :34
res = await fetch(`${url}/v1/distillate`, { - net (weak) jackye426-cortex-02e6d49/scripts/backfill-source-adapters.mjs :33
res = await fetch(`${url}/v1/source-adapter`, {
secrets 22
- secrets jackye426-cortex-02e6d49/apps/api/src/audit.ts :29
process.env.SUPABASE_SERVICE_ROLE_KEY?.trim() || - secrets jackye426-cortex-02e6d49/apps/api/src/deletions.ts :36
process.env.SUPABASE_SERVICE_ROLE_KEY?.trim() || - secrets jackye426-cortex-02e6d49/apps/api/src/index.ts :200
const expected = process.env.CORTEX_INGEST_TOKEN; - secrets jackye426-cortex-02e6d49/apps/api/src/persist.ts :42
process.env.SUPABASE_SERVICE_ROLE_KEY?.trim() || - secrets jackye426-cortex-02e6d49/apps/collector/src/backfill.ts :707
githubTokenSet: Boolean(process.env.GITHUB_TOKEN?.trim()), - secrets jackye426-cortex-02e6d49/apps/collector/src/ingest-client.ts :69
const token = process.env.CORTEX_INGEST_TOKEN ?? ""; - secrets jackye426-cortex-02e6d49/apps/data-verse/server.mjs :19
process.env.CORTEX_MCP_TOKEN?.trim() || - secrets jackye426-cortex-02e6d49/apps/mcp-server/src/audit.ts :28
process.env.SUPABASE_SERVICE_ROLE_KEY?.trim() || - secrets jackye426-cortex-02e6d49/apps/mcp-server/src/env.ts :37
const mcp = process.env.CORTEX_MCP_TOKEN?.trim(); - secrets jackye426-cortex-02e6d49/apps/mcp-server/src/llm.ts :10
return Boolean(process.env.OPENAI_API_KEY?.trim()); - secrets jackye426-cortex-02e6d49/apps/mcp-server/src/store/supabase-store.ts :1693
if (!process.env.OPENAI_API_KEY?.trim()) return null; - secrets jackye426-cortex-02e6d49/apps/mcp-server/src/web-auth.ts :66
const sessionSecret = process.env.CORTEX_WEB_SESSION_SECRET?.trim(); - secrets jackye426-cortex-02e6d49/apps/openai-mirror/src/env.ts :45
process.env.CORTEX_MCP_TOKEN?.trim() || - secrets jackye426-cortex-02e6d49/apps/openai-mirror/src/run.ts :99
if (!process.env.OPENAI_API_KEY?.trim()) { - secrets jackye426-cortex-02e6d49/hooks/lib/post-ingest.mjs :117
const token = options.token ?? process.env.CORTEX_INGEST_TOKEN ?? ""; - secrets jackye426-cortex-02e6d49/packages/adapters/github/src/client.ts :373
const t = explicit ?? process.env.GITHUB_TOKEN; - secrets jackye426-cortex-02e6d49/packages/adapters/github/src/index.ts :67
/** Explicit token; defaults to `process.env.GITHUB_TOKEN`. */ - secrets jackye426-cortex-02e6d49/packages/adapters/spotify/src/oauth-cli.ts :51
const clientSecret = process.env.SPOTIFY_CLIENT_SECRET?.trim(); - secrets jackye426-cortex-02e6d49/packages/google-auth/src/oauth-cli.ts :54
? process.env.GOOGLE_YOUTUBE_CLIENT_SECRET?.trim() || - secrets (weak) jackye426-cortex-02e6d49/scripts/backfill-session-distillates.mjs :15
process.env.CORTEX_MCP_TOKEN?.trim() || - secrets (weak) jackye426-cortex-02e6d49/scripts/backfill-source-adapters.mjs :12
process.env.CORTEX_MCP_TOKEN?.trim() || - secrets (weak) jackye426-cortex-02e6d49/scripts/mint-mirror-jwt.mjs :16
const secret = process.env.SUPABASE_JWT_SECRET?.trim();
database 1
- db (weak) jackye426-cortex-02e6d49/scripts/apply-migration.mjs :55
pg = require("pg");
tool registrations 76
- cortex_help jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :133
- search_records jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :152
- search_memory jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :225
- get_session jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :290
- list_recent_work jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :309
- get_email_thread jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :383
- get_calendar_range jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :402
- get_file_summary jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :441
- get_ebook jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :459
- list_bookmarks jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :481
- recent_plays jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :499
- recent_watches jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :527
- list_entities jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :555
- upsert_entity jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :578
- seed_entities jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :601
- link_entity jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :620
- get_entity_links jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :645
- capture_decision jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :663
- capture_outcome jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :750
- list_decisions jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :773
- priority_vs_actual jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :800
- refresh_self_model jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :819
- allocator_context jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :839
- request_evidence_capability jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :852
- issue_restricted_capability jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :922
- retrieve_supporting_evidence jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :986
- ask_mirror jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1032
- audit_source_coverage jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1062
- list_observations jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1086
- extract_observations jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1129
- extract_session_ops jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1145
- extract_llm_ops jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1168
- list_llm_ops_episodes jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1189
- list_llm_episode_scores jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1220
- get_llm_operator_profile jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1247
- list_session_ops jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1271
- list_episode_scores jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1301
- get_coding_builder_profile jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1327
- list_interests jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1351
- upsert_interest jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1380
- get_interest_map jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1414
- refresh_interest_map jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1427
- mine_interests jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1448
- log_reflection jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1464
- extract_affect_proxies jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1489
- list_hypotheses jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1505
- get_hypothesis jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1530
- propose_hypothesis jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1542
- promote_mirror_claims jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1577
- confirm_hypothesis jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1607
- reject_hypothesis jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1624
- refine_hypothesis jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1641
- list_intrapersonal_records jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1664
- compile_ability_model jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1684
- get_self_model jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1699
- list_self_model_versions jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1711
- propose_experiment jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1729
- list_experiments jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1751
- complete_experiment jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1769
- request_experiment_results jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1790
- get_calibration_stats jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1802
- detect_cycles jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1817
- diff_self_model jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1832
- how_have_i_changed jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1847
- list_prediction_results jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1863
- get_weekly_mirror jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1878
- refresh_weekly_mirror jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1891
- list_open_questions jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1906
- snapshot_open_questions jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1921
- confirm_insight jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1935
- reject_insight jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1955
- refine_insight jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1971
- intrapersonal_metrics jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :1987
- get_portrait jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :2002
- list_portrait_versions jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :2030
- refresh_portrait jackye426-cortex-02e6d49/apps/mcp-server/src/tools.ts :2048
declared dependencies 6
- @eslint/js@^9.30.1
- @types/node@^24.0.10
- eslint@^9.30.1
- globals@^16.3.0
- typescript@^5.8.3
- typescript-eslint@^8.35.1
cursor-plugin 2
- opaque (low) jackye426-cortex-02e6d49/.cursor/mcp.json.example
bundled .cursor/ plugin descriptor (jackye426-cortex-02e6d49/.cursor/mcp.json.example) — presence-detected; review the descriptor - opaque (low) jackye426-cortex-02e6d49/.cursor/skills/vibe-law/SKILL.md
bundled .cursor/ plugin descriptor (jackye426-cortex-02e6d49/.cursor/skills/vibe-law/SKILL.md) — presence-detected; review the descriptor