Files
obra__episodic-memory/package.json
Jesse Vincent 30916f8cad feat(harness): add Cursor (#113) and opencode (#117) support
Adds Cursor (live transcripts + opt-in state.vscdb backfill) and opencode (DB->JSONL export) as harnesses, following the existing Codex pattern. opencode summarization is fixed to route via transcript text instead of a doomed claude --resume, and hasConversationContent recognizes opencode_message lines. Harness union is 'claude'|'codex'|'cursor'|'opencode'. Also pins conversation timestamps to en-US/UTC in every renderer (#130) and restores valid YAML in the search agent frontmatter (#153).

Co-authored-by: vicnaum <vicnaum@users.noreply.github.com>

Co-authored-by: slandau3 <slandau3@users.noreply.github.com>

Co-authored-by: arimu1 <arimu1@users.noreply.github.com>

Claude-Session: https://claude.ai/code/session_0112vdwZphiWzfCYfaXMes4C
2026-09-08 18:47:47 +00:00

80 lines
2.5 KiB
JSON

{
"name": "episodic-memory",
"version": "1.4.2",
"description": "Semantic search for Claude Code, Codex, and opencode conversations",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"exports": {
".": {
"types": "./dist/index.d.ts",
"import": "./dist/index.js",
"default": "./dist/index.js"
},
"./server": {
"types": "./dist/opencode-plugin.d.ts",
"import": "./dist/opencode-plugin.js",
"default": "./dist/opencode-plugin.js"
},
"./dist/*": "./dist/*",
"./package.json": "./package.json"
},
"bin": {
"episodic-memory": "./cli/episodic-memory.js",
"episodic-memory-index": "./cli/index-conversations.js",
"episodic-memory-search": "./cli/search-conversations",
"episodic-memory-mcp-server": "./cli/mcp-server"
},
"scripts": {
"generate-version": "node scripts/generate-version.js",
"prebuild": "npm run generate-version",
"build": "tsc && npm run bundle",
"bundle": "esbuild src/mcp-server.ts --bundle --platform=node --format=esm --outfile=dist/mcp-server.js --external:fsevents --external:@anthropic-ai/claude-agent-sdk --external:sharp --external:onnxruntime-node --external:better-sqlite3 --external:@huggingface/transformers --external:sqlite-vec --external:proper-lockfile",
"postinstall": "node scripts/postinstall.js",
"pretest": "npm run generate-version",
"test": "vitest run",
"test:claude-e2e": "node scripts/claude-e2e.js",
"test:codex-e2e": "node scripts/codex-e2e.js",
"test:watch": "vitest"
},
"keywords": [
"claude-code",
"codex",
"opencode",
"conversations",
"search",
"semantic-search",
"embeddings"
],
"author": {
"name": "Jesse Vincent",
"email": "jesse@fsck.com"
},
"license": "MIT",
"type": "module",
"dependencies": {
"@anthropic-ai/claude-agent-sdk": "^0.2.126",
"@huggingface/transformers": "^4.2.0",
"@modelcontextprotocol/sdk": "^1.20.0",
"better-sqlite3": "^12.4.1",
"marked": "^16.4.0",
"proper-lockfile": "^4.1.2",
"sqlite-vec": "^0.1.7-alpha.2",
"zod": "^4.4.2"
},
"devDependencies": {
"@types/better-sqlite3": "^7.6.13",
"@types/marked": "^5.0.2",
"@types/node": "^24.7.0",
"@types/proper-lockfile": "^4.1.4",
"esbuild": "^0.25.11",
"tsx": "^4.20.6",
"typescript": "^5.9.3",
"vitest": "^3.2.4"
},
"repository": {
"type": "git",
"url": "https://github.com/obra/episodic-memory"
},
"homepage": "https://github.com/obra/episodic-memory"
}