github TypeScript re-analysis due

onideus/context-library

github

Open-source MCP context persistence layer for AI sessions. Append-only handoffs, pgvector semantic search, OAuth2 auth. Model-agnostic.

maintainer
onideus
license
MIT
first seen
2026-07-02
last seen
2026-08-30
releases · 30d
0
short id

Drift inferred · capture-to-capture

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

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

tools

  • browse_entities
  • compare_extractions
  • create_note
  • create_task
  • delete_note
  • entity_relations
  • extract_entities
  • get_artifact
  • get_handoff
  • get_latest_handoff
  • get_note
  • get_task
  • list_artifacts
  • list_extraction_runs
  • list_handoffs
  • list_notes
  • list_tasks
  • patch_handoff
  • reindex
  • run_extraction
  • search_artifacts
  • search_context
  • search_notes
  • search_tasks
  • store_artifact
  • store_handoff
  • update_artifact
  • update_note
  • update_task
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit b5f1c3f · analyzer v33 · 1w ago

skills & prompt files 1

code evidence vv0.11.0 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 80

filesystem 21

  • fs (weak) onideus-context-library-b5f1c3f/scripts/compact-history.ts :19 import { readdir, readFile } from "node:fs/promises";
  • fs (weak) onideus-context-library-b5f1c3f/scripts/extract-entities.ts :27 import { readdir, readFile, writeFile, access } from "node:fs/promises";
  • fs (weak) onideus-context-library-b5f1c3f/src/__tests__/artifact-summary.test.ts :3 import { rm, mkdir } from "node:fs/promises";
  • fs (weak) onideus-context-library-b5f1c3f/src/__tests__/artifacts.test.ts :3 import { rm, mkdir } from "node:fs/promises";
  • fs (weak) onideus-context-library-b5f1c3f/src/__tests__/handoff-nav.test.ts :3 import { rm, mkdir, writeFile } from "node:fs/promises";
  • fs (weak) onideus-context-library-b5f1c3f/src/__tests__/notes.test.ts :3 import { rm, mkdir } from "node:fs/promises";
  • fs (weak) onideus-context-library-b5f1c3f/src/__tests__/pending-embeddings.test.ts :2 import { rm, mkdir, writeFile } from "node:fs/promises";
  • fs (weak) onideus-context-library-b5f1c3f/src/__tests__/response-logging.test.ts :3 import { rm, mkdir } from "node:fs/promises";
  • fs (weak) onideus-context-library-b5f1c3f/src/__tests__/search-aliases.test.ts :2 import { mkdtempSync, writeFileSync, rmSync } from "node:fs";
  • fs (weak) onideus-context-library-b5f1c3f/src/__tests__/server.test.ts :3 import { rm, mkdir, readdir, readFile } from "node:fs/promises";
  • fs (weak) onideus-context-library-b5f1c3f/src/__tests__/sync.test.ts :3 import { rm, mkdir } from "node:fs/promises";
  • fs (weak) onideus-context-library-b5f1c3f/src/__tests__/task-summary.test.ts :3 import { rm, mkdir } from "node:fs/promises";
  • fs (weak) onideus-context-library-b5f1c3f/src/__tests__/tasks.test.ts :3 import { rm, mkdir } from "node:fs/promises";
  • fs onideus-context-library-b5f1c3f/src/db/changes.ts :2 import { readdir } from "node:fs/promises";
  • fs onideus-context-library-b5f1c3f/src/db/migrate.ts :1 import { readdir, readFile } from "node:fs/promises";
  • fs onideus-context-library-b5f1c3f/src/db/seed-entities.ts :13 import { readFile } from "node:fs/promises";
  • fs onideus-context-library-b5f1c3f/src/server.ts :24 import { readFileSync } from "node:fs";
  • fs onideus-context-library-b5f1c3f/src/storage/json-store.ts :1 import { mkdir, readFile, writeFile, rename, readdir, unlink } from "node:fs/promises";
  • fs onideus-context-library-b5f1c3f/src/sync/routes.ts :10 import { readFile } from "node:fs/promises";
  • fs onideus-context-library-b5f1c3f/src/tools/handoff-nav.ts :3 import { readdir, stat } from "node:fs/promises";
  • fs onideus-context-library-b5f1c3f/src/tools/search-aliases.ts :16 import { readFileSync } from "node:fs";

shell / exec 10

  • shell (weak) onideus-context-library-b5f1c3f/src/__tests__/artifact-summary.test.ts :2 import { spawn, type ChildProcess } from "node:child_process";
  • shell (weak) onideus-context-library-b5f1c3f/src/__tests__/artifacts.test.ts :2 import { spawn, type ChildProcess } from "node:child_process";
  • shell (weak) onideus-context-library-b5f1c3f/src/__tests__/backfill-content-hashes.test.ts :2 import { spawnSync } from "node:child_process";
  • shell (weak) onideus-context-library-b5f1c3f/src/__tests__/handoff-nav.test.ts :2 import { spawn, type ChildProcess } from "node:child_process";
  • shell (weak) onideus-context-library-b5f1c3f/src/__tests__/notes.test.ts :2 import { spawn, type ChildProcess } from "node:child_process";
  • shell (weak) onideus-context-library-b5f1c3f/src/__tests__/response-logging.test.ts :2 import { spawn, type ChildProcess } from "node:child_process";
  • shell (weak) onideus-context-library-b5f1c3f/src/__tests__/server.test.ts :2 import { spawn, type ChildProcess } from "node:child_process";
  • shell (weak) onideus-context-library-b5f1c3f/src/__tests__/sync.test.ts :2 import { spawn, type ChildProcess } from "node:child_process";
  • shell (weak) onideus-context-library-b5f1c3f/src/__tests__/task-summary.test.ts :2 import { spawn, type ChildProcess } from "node:child_process";
  • shell (weak) onideus-context-library-b5f1c3f/src/__tests__/tasks.test.ts :2 import { spawn, type ChildProcess } from "node:child_process";

network 12

  • net (weak) onideus-context-library-b5f1c3f/src/__tests__/artifact-summary.test.ts :28 const res = await fetch(`${url}/health`);
  • net (weak) onideus-context-library-b5f1c3f/src/__tests__/artifacts.test.ts :35 const res = await fetch(`${url}/health`);
  • net (weak) onideus-context-library-b5f1c3f/src/__tests__/handoff-nav.test.ts :25 const res = await fetch(`${url}/health`);
  • net (weak) onideus-context-library-b5f1c3f/src/__tests__/notes.test.ts :29 const res = await fetch(`${url}/health`);
  • net (weak) onideus-context-library-b5f1c3f/src/__tests__/response-logging.test.ts :4 import { createServer } from "node:net";
  • net (weak) onideus-context-library-b5f1c3f/src/__tests__/server.test.ts :25 const res = await fetch(`${url}/health`);
  • net (weak) onideus-context-library-b5f1c3f/src/__tests__/sync.test.ts :39 const res = await fetch(`${url}/health`);
  • net (weak) onideus-context-library-b5f1c3f/src/__tests__/task-summary.test.ts :42 const res = await fetch(`${url}/health`);
  • net (weak) onideus-context-library-b5f1c3f/src/__tests__/tasks.test.ts :38 const res = await fetch(`${url}/health`);
  • net onideus-context-library-b5f1c3f/src/embeddings/client.ts :31 const response = await fetch(`${config.embeddingUrl}/v1/embeddings`, {
  • net onideus-context-library-b5f1c3f/src/entities/providers/api.ts :67 const response = await fetch(`${this.baseUrl}/v1/messages`, {
  • net onideus-context-library-b5f1c3f/src/entities/providers/ollama.ts :44 const response = await fetch(`${this.baseUrl}/api/tags`, {

secrets 10

  • secrets (weak) onideus-context-library-b5f1c3f/scripts/extract-entities.ts :217 const apiKey = process.env.ANTHROPIC_API_KEY;
  • secrets (weak) onideus-context-library-b5f1c3f/src/__tests__/artifact-summary.test.ts :18 const PG_PASSWORD = process.env.PGPASSWORD ?? "test";
  • secrets (weak) onideus-context-library-b5f1c3f/src/__tests__/artifacts.test.ts :25 const PG_PASSWORD = process.env.PGPASSWORD ?? "test";
  • secrets (weak) onideus-context-library-b5f1c3f/src/__tests__/backfill-content-hashes.test.ts :22 const PG_PASSWORD = process.env.PGPASSWORD ?? "test";
  • secrets (weak) onideus-context-library-b5f1c3f/src/__tests__/notes.test.ts :19 const PG_PASSWORD = process.env.PGPASSWORD ?? "test";
  • secrets (weak) onideus-context-library-b5f1c3f/src/__tests__/pending-embeddings.test.ts :18 const PG_PASSWORD = process.env.PGPASSWORD ?? "test";
  • secrets (weak) onideus-context-library-b5f1c3f/src/__tests__/sync.test.ts :29 const PG_PASSWORD = process.env.PGPASSWORD ?? "test";
  • secrets (weak) onideus-context-library-b5f1c3f/src/__tests__/task-summary.test.ts :32 const PG_PASSWORD = process.env.PGPASSWORD ?? "test";
  • secrets (weak) onideus-context-library-b5f1c3f/src/__tests__/tasks.test.ts :28 const PG_PASSWORD = process.env.PGPASSWORD ?? "test";
  • secrets onideus-context-library-b5f1c3f/src/config.ts :32 entityApiKey: process.env.ENTITY_API_KEY ?? null,

database 4

  • db (weak) onideus-context-library-b5f1c3f/src/__tests__/backfill-content-hashes.test.ts :5 import pg from "pg";
  • db onideus-context-library-b5f1c3f/src/db/changes.ts :1 import type { PoolClient } from "pg";
  • db onideus-context-library-b5f1c3f/src/db/client.ts :1 import pg from "pg";
  • db onideus-context-library-b5f1c3f/src/sync/routes.ts :2 import type { PoolClient } from "pg";

tool registrations 29

  • store_artifact onideus-context-library-b5f1c3f/src/tools/artifacts.ts :244
  • get_artifact onideus-context-library-b5f1c3f/src/tools/artifacts.ts :375
  • list_artifacts onideus-context-library-b5f1c3f/src/tools/artifacts.ts :398
  • search_artifacts onideus-context-library-b5f1c3f/src/tools/artifacts.ts :470
  • update_artifact onideus-context-library-b5f1c3f/src/tools/artifacts.ts :543
  • extract_entities onideus-context-library-b5f1c3f/src/tools/entity-tools.ts :171
  • run_extraction onideus-context-library-b5f1c3f/src/tools/entity-tools.ts :274
  • compare_extractions onideus-context-library-b5f1c3f/src/tools/entity-tools.ts :406
  • list_extraction_runs onideus-context-library-b5f1c3f/src/tools/entity-tools.ts :541
  • browse_entities onideus-context-library-b5f1c3f/src/tools/entity-tools.ts :576
  • entity_relations onideus-context-library-b5f1c3f/src/tools/entity-tools.ts :638
  • list_handoffs onideus-context-library-b5f1c3f/src/tools/handoff-nav.ts :70
  • get_handoff onideus-context-library-b5f1c3f/src/tools/handoff-nav.ts :166
  • store_handoff onideus-context-library-b5f1c3f/src/tools/handoff.ts :501
  • get_latest_handoff onideus-context-library-b5f1c3f/src/tools/handoff.ts :669
  • patch_handoff onideus-context-library-b5f1c3f/src/tools/handoff.ts :771
  • create_note onideus-context-library-b5f1c3f/src/tools/notes.ts :119
  • get_note onideus-context-library-b5f1c3f/src/tools/notes.ts :189
  • list_notes onideus-context-library-b5f1c3f/src/tools/notes.ts :212
  • search_notes onideus-context-library-b5f1c3f/src/tools/notes.ts :276
  • update_note onideus-context-library-b5f1c3f/src/tools/notes.ts :344
  • delete_note onideus-context-library-b5f1c3f/src/tools/notes.ts :456
  • search_context onideus-context-library-b5f1c3f/src/tools/search.ts :184
  • reindex onideus-context-library-b5f1c3f/src/tools/search.ts :636
  • create_task onideus-context-library-b5f1c3f/src/tools/tasks.ts :143
  • get_task onideus-context-library-b5f1c3f/src/tools/tasks.ts :201
  • list_tasks onideus-context-library-b5f1c3f/src/tools/tasks.ts :224
  • update_task onideus-context-library-b5f1c3f/src/tools/tasks.ts :342
  • search_tasks onideus-context-library-b5f1c3f/src/tools/tasks.ts :504

declared dependencies 13

  • @modelcontextprotocol/sdk@^1.27.1
  • @hono/mcp@^0.2.4
  • @hono/node-server@^1.19.11
  • dotenv@^16.4.7
  • hono@^4.12.25
  • pg@^8.20.0
  • zod@^3.25.0
  • @anthropic-ai/sdk@^0.90.0
  • @types/node@^22.13.4
  • @types/pg@^8.20.0
  • tsx@^4.19.3
  • typescript@^5.7.3
  • vitest@^4.1.0