{"_id":"memex-mvp","_rev":"40-6830a80492cca54d0f56c307daab0045","name":"memex-mvp","dist-tags":{"latest":"0.14.1"},"versions":{"0.5.0":{"name":"memex-mvp","version":"0.5.0","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.5.0","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"3988abe50fcfc0a253ad04b6ed9112ece8a55f01","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.5.0.tgz","fileCount":19,"integrity":"sha512-74pkRHCAW6dmVC8ZwSLBRyNsBrQo2tyIqVyUPxX9XFQyeJKY/8oRJ8bT8AfcUiOvZW8vhYng4WmqTGw8B4qMlA==","signatures":[{"sig":"MEYCIQCKerxSDq/OtMBGN+15RhYgv5Sz4xeFnzhDh6pkgNNCUwIhAKmW2Em1h6GsPQH4lr/WvP+PCB6WI4Y3Vi84TM9too4h","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":292610},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"e2328238aaeed8caff17dd802bb44bacfaf128b3","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.5.0_1778780981032_0.5101220426337496","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"memex-mvp","version":"0.5.1","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.5.1","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"3e6ce108b82276085bf28ebaff5207f5427e9067","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.5.1.tgz","fileCount":19,"integrity":"sha512-P1D5k0/bTbwg9trHfaAbkQ9dwvSOxf7GSjq2preXrOwqhtLU0gKBRkf4Y8Mkxpiu9hHEcuxfL+t+bEXjAF8mLw==","signatures":[{"sig":"MEUCIQCXf/JZ0f5VjHwBFi58stCIMhx5LSgqviNMfvwGHkqsPwIgRHTT/vm8WbeB9KDFSiVoWbZFkkGbiYyVP3cK2lIacBQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":292608},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"e9edb975d3ba6eedac6f36484e139883d4e48d39","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.5.1_1778781740221_0.3266643662444675","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"memex-mvp","version":"0.5.2","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.5.2","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"dde47d3ef1785d427d834b2b8f7f99e62784f122","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.5.2.tgz","fileCount":19,"integrity":"sha512-zV2TJ5hRJea9j228rs/xJpL9noinTgnQH0Z4ThSWjpTsl0H/nQ9XrdTqxAQIQQjETMOhyLao1vpVnva284vj4w==","signatures":[{"sig":"MEUCIETOiiuKpY/c9er9WZrPcWNuMOM2uJnJJ6ebl/s5M+0EAiEAnZzPWqL6/JnDIjAPEripjpjSc4ZEMRRdKiCcdDqI0ms=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":292640},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"9bfd2f4fd8d7e99345bc56c97d2fa14f476b307f","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.5.2_1778782111759_0.8978871185725541","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"memex-mvp","version":"0.5.3","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.5.3","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"97a79dc14d90390780c48c049b6e4eaaf1bec3e5","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.5.3.tgz","fileCount":20,"integrity":"sha512-Pl5vzhbCAFN599UpXDT1+h5e1SnlOimxDdfqJYFf/p8pTj+wtPU+95A/rXBc7Y50s5GDgZD9klAig3lhfk3FMw==","signatures":[{"sig":"MEUCICXCo5x1M4ncysJWHYDJ7MOCdsm3KyVZ1F1zMGCARsJHAiEA2mc6NAkKhDtCJDlP4V91D1M+3eYqjTZFYDg3v2fGxOw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":301953},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"b762f33f065d5391d36c6bb23528ff24422ac9a5","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.5.3_1778783404596_0.11366719335277575","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"name":"memex-mvp","version":"0.5.4","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.5.4","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"fd2549eea84c19452960bddaae0a26b9c6a2187b","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.5.4.tgz","fileCount":22,"integrity":"sha512-kCWilCBWPmuqrtPz31gQlymsKS05mTE7CgeCsrvv7EgmChpItixTbbeSGsupMdJhqMO4hkUBI4NOvsKV9l+utA==","signatures":[{"sig":"MEQCICKUFrEv1tyqSPCG/oVhddL2Q1eUUNCzvUt9NoBZvFH/AiBkEcDF4Ly2eFkMGsrjWO8JLuetJ9CqPcHpzYLNaW8zrQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":313505},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"c5301566eeae69c16c0df0dce0c2a06f81208fdc","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.5.4_1778784686840_0.8513032999763301","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"memex-mvp","version":"0.6.0","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.6.0","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"829b04a25cf8e3c3eaf504abc3c7dad5ae2c97c0","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.6.0.tgz","fileCount":26,"integrity":"sha512-PytiyUTFKzn1WVUd0G9q4Dk5KFzjoh+thjAwe+PsWA0EZG8aBI5EbjaWT/9PpKMu/HuudBDL0TXw97+gn7X6Cg==","signatures":[{"sig":"MEQCIBiGRZe4fK34XVwKQunxX6Lacupg4Wm1n5fJs/t8OY0LAiBfn54+IItPBqZOTYjkpTZsi0+BcqFI32L5ZvyByDd4sg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":353369},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"d94aba43b68d8405ddc5605b031f6005bfab084c","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js && node test/store-document.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.6.0_1778790559600_0.39984764936865","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"memex-mvp","version":"0.6.1","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.6.1","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"e0b67a93479b98dc7250b6031d4983288cb9ff9c","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.6.1.tgz","fileCount":26,"integrity":"sha512-DXTCFDTD5HznGAqBUK0hs5cnN97jl9iIG11B9jbn76AVnBGIum/za6j/q2aIGYEsLvzySE8ZEAa1PQi1JttbEQ==","signatures":[{"sig":"MEYCIQCcrny104D51kmtaM0qCt636nfSwesEfERSHwEuKCLntgIhAITrKKOH6468EpEpVzqFTbWMahMonqwSoO+Mv188N25S","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":357634},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"526d055f8076de6fe700697ffc712f21862a4a3f","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js && node test/store-document.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.6.1_1778791323993_0.47211221019867744","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"memex-mvp","version":"0.7.0","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.7.0","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"d4ab2420116451a43e2cce68e290c5cc84d3f1cd","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.7.0.tgz","fileCount":27,"integrity":"sha512-7W23s121AaOD2E0R4fxi9cCQ9lo/W1LMLiN8tdjm2rbLtIpkSGppmSJtq1ERnKxcGfUlQSV+MC8n3l4gkNHVLw==","signatures":[{"sig":"MEYCIQDb4hYmwzMuY0TSb/Ol/c+QJe/ysubAuyAAqxZM34dokAIhAK1ZqanRGiI9eh2410UkxeKDfOW2f36Y9uqePzQKY6ni","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":388583},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"f4e156a72262728260a20d6e171679842a00620f","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js && node test/store-document.test.js && node test/cli.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.7.0_1778837529543_0.48679128755065526","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"memex-mvp","version":"0.8.1","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.8.1","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"c4338e783e3a6585b22f3f1e262d031cc77f5240","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.8.1.tgz","fileCount":28,"integrity":"sha512-KLT70/UlqyeJfNIBOTLhAJQhVn4HFC3PJXVEVyhCT06tSAQxj9b5M4HNQ+ALhZfFHlTO9UMNYqme22bXezpWHg==","signatures":[{"sig":"MEUCICPNlInOTiHRgTNM1eFkvCHO4kU+7p5NMf9OEJF8vSFrAiEA71D8UNE9eGBRikVwIbOzMvfdYoZYvimVaPRilKYJK5Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":427309},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"353df3f028bf0b139f991664475ae0221b3aca90","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js && node test/store-document.test.js && node test/cli.test.js && node test/hook.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.8.1_1778841135251_0.9531916495541295","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"memex-mvp","version":"0.9.0","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.9.0","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"205ce1d93133aa7a3ef24582028122c4c968dc1b","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.9.0.tgz","fileCount":29,"integrity":"sha512-6xzDIYTFk+UOX6a8quXDOpu/xTyHRQqJVZ0qkRNcr43JG8o0K3035dKHxNPIZ0+Gz21DRerfY1pDhtGiXhGy0w==","signatures":[{"sig":"MEUCIQCd6cMKA4nyOysc3qVB3E1r6LDugLioh9SSRJLYKV73JAIgItN9XjxL0gYI7rWyW5igMimibWdoL8bop+c7igHUxjs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":447787},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"b91035b7a2dc1eb6eeb71a24ac62e51b4d86fcdc","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js && node test/store-document.test.js && node test/cli.test.js && node test/hook.test.js && node test/telegram-html.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.9.0_1778858991742_0.9383877573830193","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"memex-mvp","version":"0.9.1","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.9.1","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"35e44aaa6fdabb3ae33a8529227ffa01fad48ee0","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.9.1.tgz","fileCount":29,"integrity":"sha512-B7sg0cuDnHOvKmOEZxs+na6U4f+i1wyELQm1ze2RYgqWUIgS5L8YWTi2wUCfiARCE/UL+p0HgBAhYhlZmhkYpw==","signatures":[{"sig":"MEQCIAlicldjQJAqM37JicidUmVKMUGdsOJ1028p9QiFyGvwAiA6P9ewfep9IJNV0PvaAaW1omiM+3+ElmobOFNI8weK1Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":456389},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"201e1b72d6f41caeb11564b00f256ebf31044eaf","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js && node test/store-document.test.js && node test/cli.test.js && node test/hook.test.js && node test/telegram-html.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.9.1_1778863130754_0.38699261399024354","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"memex-mvp","version":"0.10.1","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.10.1","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"108a2c7f8bd9ed52ee8878349e0ccad9455d6383","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.10.1.tgz","fileCount":34,"integrity":"sha512-GfzANcSgT5+lNOzyNxiP2VIe+iGNkX81aqx27tb98RPoORULNJ3xGI+LObkCw48ADWo03ihBRIXSYcnvjuQt4A==","signatures":[{"sig":"MEYCIQDry69zWSNucZj2WwhGAG0q4ZTcw2l8YxYTTvGYbglGbwIhANN4BkDiU9ApqtBQ6JQtJktLHNJNHSolKTizG8h4nFh6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":551998},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"7343abca7ed1fde448b6c875fa28254e2f5e35f4","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js && node test/store-document.test.js && node test/cli.test.js && node test/hook.test.js && node test/telegram-html.test.js && node test/telegram-decisions.test.js && node test/telegram-pending.test.js && node test/telegram-notify.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.10.1_1778873300669_0.059314631937586126","host":"s3://npm-registry-packages-npm-production"}},"0.10.2":{"name":"memex-mvp","version":"0.10.2","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.10.2","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"22e9315ec84f9bd0e488c2448e9919c986595b1f","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.10.2.tgz","fileCount":34,"integrity":"sha512-cjgN3+slgSL4f+ZKNgZZTG2GASv4B4DHb8EXl76i8nMhNZQ1JCbMUNR41fYulBF1qPSVHImydpJok7Ea4ckTVg==","signatures":[{"sig":"MEUCIQDAZT/hcIwmYeRNm3dIwC3zvOLp1ag4ksYbMMJAdQhoPgIgXFhIEWseaBLKmp3uKnxcr8VNjSYAyctb2brUQi9UKiA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":554228},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"3ae1d254126038404690a8ae21ec217f249cf972","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js && node test/store-document.test.js && node test/cli.test.js && node test/hook.test.js && node test/telegram-html.test.js && node test/telegram-decisions.test.js && node test/telegram-pending.test.js && node test/telegram-notify.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.10.2_1778926484782_0.39101191371400645","host":"s3://npm-registry-packages-npm-production"}},"0.10.4":{"name":"memex-mvp","version":"0.10.4","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.10.4","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"7ec8d2e727bddd81c8811ab34e2c7f803fba16c1","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.10.4.tgz","fileCount":35,"integrity":"sha512-biF+VUAhW1RTiHcNhoRvmCL+HqfYFuxCXXoLrLPSvC5lB4VNq3WZYpHtjyJvsiJPbvBEZjaLPhac7DaMQ9H/Hw==","signatures":[{"sig":"MEYCIQCRFwb6K3c+u7wBLWlqugHc3w+O1YJr++9bqK6pMCoPfQIhAPaH9NpL79Mo6IakbpZCVNr2emcdWs44xVpAgcdSxaMf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":572594},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"b3dcd2257c1dff802aa1be63746c756bf054d01a","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js && node test/store-document.test.js && node test/cli.test.js && node test/hook.test.js && node test/telegram-html.test.js && node test/telegram-decisions.test.js && node test/telegram-pending.test.js && node test/telegram-notify.test.js && node test/notify-click-action.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.10.4_1778929187496_0.6467806530553875","host":"s3://npm-registry-packages-npm-production"}},"0.10.6":{"name":"memex-mvp","version":"0.10.6","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.10.6","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"05c806bc57c1bc581b32ec2643e258c662f5866b","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.10.6.tgz","fileCount":35,"integrity":"sha512-twhW0JYVdOu2sQiyXs342yv3ZTzo7zdo4Oa9IoYaKa9FiXQAhh+CQWtAVBQu+u3p65OxIuSqTeqqO+D7d/iZBg==","signatures":[{"sig":"MEUCIQDRqTOeMYDdOrq+ucCq4jEIFKezC6l++VUPwvyxjuqPCQIgdnCEJMw/N/UqpX+AO2WGwSx9HT8IjLX0UX5SAUHxAZg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":573903},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"1febf6f8a2269694997468407d41d71e9070f44c","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js && node test/store-document.test.js && node test/cli.test.js && node test/hook.test.js && node test/telegram-html.test.js && node test/telegram-decisions.test.js && node test/telegram-pending.test.js && node test/telegram-notify.test.js && node test/notify-click-action.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.10.6_1778931146520_0.3790895468735018","host":"s3://npm-registry-packages-npm-production"}},"0.10.7":{"name":"memex-mvp","version":"0.10.7","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.10.7","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"e0f1f1919d73184f41798bd68bfeab80bff05749","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.10.7.tgz","fileCount":35,"integrity":"sha512-XvuPppfdFKifPEHjmN29fofZPf/T76zW1Ft+qbkkLRdrl8u88rBvAF6y+NlCesig0JyQ+jaIa4B6H6V0dE3l/Q==","signatures":[{"sig":"MEUCIQCfAic3w7kjWEweL4uiJnZ4ZWcelCDvq5Dm//CiPIm5AgIgbRjKDHoakF71ci4las+/gtTXfjNvVrC9kCWCEvB/wUg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":577916},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"aedbd275c48a3e3aed0b93543b0d7f69b328e38d","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js && node test/store-document.test.js && node test/cli.test.js && node test/hook.test.js && node test/telegram-html.test.js && node test/telegram-decisions.test.js && node test/telegram-pending.test.js && node test/telegram-notify.test.js && node test/notify-click-action.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.10.7_1778951073078_0.17808252454812923","host":"s3://npm-registry-packages-npm-production"}},"0.10.8":{"name":"memex-mvp","version":"0.10.8","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.10.8","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"88b017190308eec8187ec178242981dd245f9280","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.10.8.tgz","fileCount":43,"integrity":"sha512-sJcIFGutWXAQgohUm0/Aue4/0WA1f8FbxSDedEWax6Le4f196TlKT00APMAP5NB6gHQQdAutH4qX1HlFhkT21Q==","signatures":[{"sig":"MEQCIF9ckHj5ngdQwxs0AkXBTleeGcKeixinsL/wvf49Vy+RAiBX2Gzk0u0hIgZ8P3XI2DtojA5iTm08DAsmJnsIvHKWsg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":656076},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"74978eaf4e26ad509c334dcfbf76fa10bcf4f461","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js && node test/store-document.test.js && node test/cli.test.js && node test/hook.test.js && node test/telegram-html.test.js && node test/telegram-decisions.test.js && node test/telegram-pending.test.js && node test/telegram-notify.test.js && node test/notify-click-action.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.10.8_1779039107296_0.18111525426982178","host":"s3://npm-registry-packages-npm-production"}},"0.10.9":{"name":"memex-mvp","version":"0.10.9","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.10.9","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"3a68ad22e485edafb3522a0bdf804ff7c21a8515","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.10.9.tgz","fileCount":43,"integrity":"sha512-+dQXDJBdIVXt8FYZiDV6THCmrxjauCb0szP1N5iyJVgzg3IUHO7b2I5LCm8Jr+NQ/Cp3qOJWKST6PvyGgJsHGw==","signatures":[{"sig":"MEUCIFs6dtsb0PckWBzcwItcQW/bErK56ohdJBxZL9o88aUMAiEA9UhNDx4OPg7kIsYdTuI4NBFYR3H380V6QcAxw5EyWHs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":656143},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"c4a584e55fbb28e129bff9f0da2d96a4dd00a318","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js && node test/store-document.test.js && node test/cli.test.js && node test/hook.test.js && node test/telegram-html.test.js && node test/telegram-decisions.test.js && node test/telegram-pending.test.js && node test/telegram-notify.test.js && node test/notify-click-action.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.10.9_1779039389307_0.31274258608214267","host":"s3://npm-registry-packages-npm-production"}},"0.10.10":{"name":"memex-mvp","version":"0.10.10","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.10.10","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"2100383295bdfe95c37079c375f7ddc07793a393","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.10.10.tgz","fileCount":43,"integrity":"sha512-guyrM86Mu1WrAAa92dUXXWab/yRTg6RTBAuh4h+HfEpm/GtwuKP6VC/DeOfwHo/8FFW1DJ1jvrcpGC47oKyOTQ==","signatures":[{"sig":"MEUCIFiRQ3EsfvHaM2dDEZEF8bqLw2IOOFXIcQqUEJepbcBRAiEAr4N1z7uN9dFysA+f9hgvHRhP38R/CCy9h9rMGRLMG/k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":660911},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"d698a824f62129523b32786cccedd608e03a1783","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js && node test/store-document.test.js && node test/cli.test.js && node test/hook.test.js && node test/telegram-html.test.js && node test/telegram-decisions.test.js && node test/telegram-pending.test.js && node test/telegram-notify.test.js && node test/notify-click-action.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.10.10_1779040390405_0.554220433194982","host":"s3://npm-registry-packages-npm-production"}},"0.10.11":{"name":"memex-mvp","version":"0.10.11","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.10.11","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"be2196496bfcbfe6c3fa73b4ae8498a1091e206a","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.10.11.tgz","fileCount":43,"integrity":"sha512-baJ6SC+QSnv+QkJfXr75iOf1u5XYnOFnQkuna6ziFc3JSFFIxN6sR8dzkdNX56AjsxmlLAyeIYltS2OqCKLgTA==","signatures":[{"sig":"MEQCIFv3giFsDmKFMqkwEC1zMg7sbd2ZWHKzyZZjVgA5Cg2RAiBIEh6X844PCPBpYpJgZfotuqygdyfGgs79pkoCCxiWqg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":662261},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"c90aaf9bf759bf630c5a5a78e42b7bd388157cf5","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js && node test/store-document.test.js && node test/cli.test.js && node test/hook.test.js && node test/telegram-html.test.js && node test/telegram-decisions.test.js && node test/telegram-pending.test.js && node test/telegram-notify.test.js && node test/notify-click-action.test.js && node test/inbox-watcher.test.js && node test/e2e-inbox.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.10.11_1779043179857_0.9199319239013897","host":"s3://npm-registry-packages-npm-production"}},"0.10.12":{"name":"memex-mvp","version":"0.10.12","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.10.12","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"4eb1d2b5cdeb62e25cd29680da621ffd42b954ab","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.10.12.tgz","fileCount":44,"integrity":"sha512-ofYBkXBsVbL58pejMb2dBpGQoYjxUDj08cLv6eD2LrSUpTa/ZVPEeMHmMap6GcBSV4Wo9/oYbceZVR83ZZqBCQ==","signatures":[{"sig":"MEUCIGp3xxuUSggKhOW1SaffOdvSjWFN5i2oDjNhguL3wM/mAiEAoJ200URCEIJuM6cMSixg5xvf6t+kUt4MDTqIq0uQCZY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":689806},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"252fc380906e5b7d67e513889c2ed34bf0a9ca14","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js && node test/store-document.test.js && node test/cli.test.js && node test/hook.test.js && node test/telegram-html.test.js && node test/telegram-decisions.test.js && node test/telegram-pending.test.js && node test/telegram-notify.test.js && node test/notify-click-action.test.js && node test/inbox-watcher.test.js && node test/e2e-inbox.test.js && node test/ingest-file.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.10.12_1779090036696_0.07848355740354318","host":"s3://npm-registry-packages-npm-production"}},"0.10.13":{"name":"memex-mvp","version":"0.10.13","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.10.13","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"1c38a427ca8d3ded3ca5e3da2ba0d8e20b6b1977","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.10.13.tgz","fileCount":44,"integrity":"sha512-n+up483BYEOATE3cd6ROAoNGZiHctI/l1EHrUlcR4ZbC4MkLBhxUMF5j1z1Y38cPycUZ+Q2t1cf+3jl/Txx2Kw==","signatures":[{"sig":"MEUCIQDkpMSp86FVE4lWmylzkqsjOGQHIxIg6QMx34tO29hH5wIgIDtQKI8eQm8QddZncOMM+Y0ib06IslWf8+jxMRZKT34=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":693863},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"9cb6205aa517c204f637aae6f622c50352c400aa","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js && node test/store-document.test.js && node test/cli.test.js && node test/hook.test.js && node test/telegram-html.test.js && node test/telegram-decisions.test.js && node test/telegram-pending.test.js && node test/telegram-notify.test.js && node test/notify-click-action.test.js && node test/inbox-watcher.test.js && node test/e2e-inbox.test.js && node test/ingest-file.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.10.13_1779194389069_0.32632599522361194","host":"s3://npm-registry-packages-npm-production"}},"0.10.14":{"name":"memex-mvp","version":"0.10.14","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.10.14","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"0330e2150ca51a280210d32e9d7ae0b504db2c69","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.10.14.tgz","fileCount":45,"integrity":"sha512-yliGABskBJfCJDHUmOWx8OPwlsFnoiG4SZGJOl6LO+7u/slB7xBD5EmMpgexYZXZVTdMPeR4fP9PTR/esZLBYg==","signatures":[{"sig":"MEYCIQCEuKcBKRGt2INsKRxzyyyvl0iBdmdlbyM7lC1PeAwDAwIhAJx5o/zY8xh2IhfDGkDp7ERAHfH5cTaRLoR2mVvASipu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":719659},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"df15c1bf3275c875003fc08b4698a8d34ee8f459","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js && node test/store-document.test.js && node test/cli.test.js && node test/hook.test.js && node test/telegram-html.test.js && node test/telegram-decisions.test.js && node test/telegram-pending.test.js && node test/telegram-notify.test.js && node test/notify-click-action.test.js && node test/inbox-watcher.test.js && node test/e2e-inbox.test.js && node test/ingest-file.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.10.14_1779212224636_0.9852716212308035","host":"s3://npm-registry-packages-npm-production"}},"0.10.15":{"name":"memex-mvp","version":"0.10.15","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.10.15","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"9c7d95ae9811cac7e1f3803c2233396b35f7f5f0","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.10.15.tgz","fileCount":46,"integrity":"sha512-8JWOGR1bA+SzEHhOkSB6ygqsrBUfunev9UOUQ0GytdCkHOTRjJdQjHDD8cMWXBFIRX7gHhFBfG6PZOHRyuc9KA==","signatures":[{"sig":"MEQCIGKhvujZj3LkNmTCV7rfrzJSYo7iTaI7YeXzLP08SNp4AiAbTiDVlmiTui4RK71H3CHmcKmomi9GOz2PRpek+ddo1g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":722639},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"3ab86abcbc01043defe90438e78782b9f6455c98","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js && node test/store-document.test.js && node test/cli.test.js && node test/hook.test.js && node test/telegram-html.test.js && node test/telegram-decisions.test.js && node test/telegram-pending.test.js && node test/telegram-notify.test.js && node test/notify-click-action.test.js && node test/inbox-watcher.test.js && node test/e2e-inbox.test.js && node test/ingest-file.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.10.15_1779214237973_0.49423950695963015","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"memex-mvp","version":"0.11.0","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.11.0","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"254a92ad0e6c5b8574dcd1868e0f5ebf228641f9","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.11.0.tgz","fileCount":47,"integrity":"sha512-dWCjgOzadxXT0iNIhYmwonPyslgvS1aMEGXjk6ca3nGHdQ8OBqMCVF0REsgTRP/TMh1zD7pmvNlIqSdIPwfrVQ==","signatures":[{"sig":"MEUCIHU5O51+CvjJg/4zaBxAFrkFDwBZAUTSNGG0ADe3jusSAiEA68FcST7N7slRWANDFKk6vUsD+eeAl1NinLwwFfKm/H0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":760304},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"4c69323b5b692b3eeae7a3c4dc9a47827da0bbe6","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js && node test/store-document.test.js && node test/cli.test.js && node test/hook.test.js && node test/telegram-html.test.js && node test/telegram-decisions.test.js && node test/telegram-pending.test.js && node test/telegram-notify.test.js && node test/notify-click-action.test.js && node test/inbox-watcher.test.js && node test/e2e-inbox.test.js && node test/ingest-file.test.js && node test/openclaw-channel.test.js && node test/openclaw-channel-e2e.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.11.0_1779219139875_0.7839152134291882","host":"s3://npm-registry-packages-npm-production"}},"0.11.1":{"name":"memex-mvp","version":"0.11.1","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.11.1","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"01a0a14ebec33610785fed3990500ca9d91c6046","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.11.1.tgz","fileCount":47,"integrity":"sha512-yKH3GuLeVxsr0ueZyQOeY+HwvmrQV1jsgmg2L3K3apRn0nUGlMADnO1OQoJi/ULIbYijBryyBa2mCjBUEsX+tQ==","signatures":[{"sig":"MEQCIDBBn264EX03ElBxm3ceM9cPVp8Y34h3vBKp76KDjYFNAiADgmzdFZ4mKEDwJCzyZRcZNPKwhkkc39vA1KFaL22r7g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":769735},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"7a74fa715166bcb2e28ec495caee3d94145b888d","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js && node test/store-document.test.js && node test/cli.test.js && node test/hook.test.js && node test/telegram-html.test.js && node test/telegram-decisions.test.js && node test/telegram-pending.test.js && node test/telegram-notify.test.js && node test/notify-click-action.test.js && node test/inbox-watcher.test.js && node test/e2e-inbox.test.js && node test/ingest-file.test.js && node test/openclaw-channel.test.js && node test/openclaw-channel-e2e.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.11.1_1779221298170_0.004072938047099184","host":"s3://npm-registry-packages-npm-production"}},"0.11.2":{"name":"memex-mvp","version":"0.11.2","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.11.2","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"b9dda040d4f2212e6440c0e610bbc349131bb75c","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.11.2.tgz","fileCount":47,"integrity":"sha512-whzPWTi9gZefFQXMAMtZb+rOBOjhtA4iK+lpbO+xwpybnttmq22XngZqWSALgG1Dttdg5ukkwwXHLogBr0aqKg==","signatures":[{"sig":"MEUCIQCp5dhdQT9nz/fPeHCRxXyBt0OsYZw3YaF206vNbO1c3QIgQMjEdZDFY1lE9Lv/4/vyXAugXVtxfd6w+mAa/UbZx8I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":780506},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"f6ae576535c8b8d5faaea2d243d79557f20cdfd9","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js && node test/store-document.test.js && node test/cli.test.js && node test/hook.test.js && node test/telegram-html.test.js && node test/telegram-decisions.test.js && node test/telegram-pending.test.js && node test/telegram-notify.test.js && node test/notify-click-action.test.js && node test/inbox-watcher.test.js && node test/e2e-inbox.test.js && node test/ingest-file.test.js && node test/openclaw-channel.test.js && node test/openclaw-channel-e2e.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.11.2_1779224542833_0.5370530686048329","host":"s3://npm-registry-packages-npm-production"}},"0.11.3":{"name":"memex-mvp","version":"0.11.3","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.11.3","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"0032f376a2b78af58d3aa1876d1a035bd6d4a079","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.11.3.tgz","fileCount":47,"integrity":"sha512-wV/+ypd0c6Phgl44lWpnl7ZYtQ27QWNG1UAZ5EDc4Rp38e1QJuafCOkD5Dm3pj0kYTYiUZiPfS20ti7+u0c5tw==","signatures":[{"sig":"MEQCIGAwOam0j7rGVi/w66KAyQ/3qSlsmFoDcTHi+y+UGkbNAiBhhZ2q+BS3MT1+6IFuSXx4ZPfX/L3GaDgU8bKCY5TvVA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":783253},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"679f3862daed427712b9411b8a2e6710d0f8a840","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js && node test/store-document.test.js && node test/cli.test.js && node test/hook.test.js && node test/telegram-html.test.js && node test/telegram-decisions.test.js && node test/telegram-pending.test.js && node test/telegram-notify.test.js && node test/notify-click-action.test.js && node test/inbox-watcher.test.js && node test/e2e-inbox.test.js && node test/ingest-file.test.js && node test/openclaw-channel.test.js && node test/openclaw-channel-e2e.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.11.3_1779225426704_0.7324297297075484","host":"s3://npm-registry-packages-npm-production"}},"0.11.4":{"name":"memex-mvp","version":"0.11.4","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.11.4","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"85abfc709ae1e89da3a358d8481a5a7ec967224c","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.11.4.tgz","fileCount":47,"integrity":"sha512-o/dlF1vbQLr1/Z4OjbxtzqPkRkY3yVcYDuw58wjIyypWOlHr6rZ9OnDSHG8TaSuTkVYV0aytNjHscI8q+ZmIaQ==","signatures":[{"sig":"MEUCIBxsYBEkgjpehSIeMXxEhjEBRdNGRBZXfcQfZIkfaVHyAiEAtcmjLcCGoVc8M43CpMg1O3+JmgpmLLR8kOi+abCde6o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":785982},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"adc0fe47156d3b3c9e2d92561dbca83b88e292c5","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js && node test/store-document.test.js && node test/cli.test.js && node test/hook.test.js && node test/telegram-html.test.js && node test/telegram-decisions.test.js && node test/telegram-pending.test.js && node test/telegram-notify.test.js && node test/notify-click-action.test.js && node test/inbox-watcher.test.js && node test/e2e-inbox.test.js && node test/ingest-file.test.js && node test/openclaw-channel.test.js && node test/openclaw-channel-e2e.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.11.4_1779227710117_0.023726197537401017","host":"s3://npm-registry-packages-npm-production"}},"0.11.5":{"name":"memex-mvp","version":"0.11.5","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.11.5","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"a9c0fb38eb9085178b3d3d69c4dd6ebbab95c8a8","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.11.5.tgz","fileCount":47,"integrity":"sha512-G+Ivjm6U5oyAc6itXLhdBs6Wzu5Mw5KyXH3sIdel4AXBSsv0pPveZaYlDAo6QIyXCNn4vBP9Y2H2Zza5n2v4ww==","signatures":[{"sig":"MEYCIQCeQj10bWaWlwazfXXB/cxPsqGHmibK7DzOyzndv/BB+wIhANK8zpsPbMlXPIwcHJRS4vl7OP/eA+7KshCDjRrCtrrI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":787025},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"736358584d1477bd1e30f380281e88e735fee453","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js && node test/store-document.test.js && node test/cli.test.js && node test/hook.test.js && node test/telegram-html.test.js && node test/telegram-decisions.test.js && node test/telegram-pending.test.js && node test/telegram-notify.test.js && node test/notify-click-action.test.js && node test/inbox-watcher.test.js && node test/e2e-inbox.test.js && node test/ingest-file.test.js && node test/openclaw-channel.test.js && node test/openclaw-channel-e2e.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.11.5_1779229901463_0.7114705179732701","host":"s3://npm-registry-packages-npm-production"}},"0.11.6":{"name":"memex-mvp","version":"0.11.6","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.11.6","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"d930108d1c2599f89dc4f84a72f9a67ffa10e6bd","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.11.6.tgz","fileCount":47,"integrity":"sha512-KN8fZumhqVcYBV9+0FsrgEznxpNeuB3uem8sYXMs+tXju/qZQW4zGbkcy2n6NoWlMt/i/MgJ9d+9JitjtyTA8A==","signatures":[{"sig":"MEYCIQCJ93i3lXcChVX1WXOec2ROuK18jbo/Zxt0pqwoKwIQ6QIhALU9Fp9w+Eabi2vDnUa5Rk30rLuSPZMk/HeYqF36n4vv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":779173},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"d09d78012164ffa2529af33f8fcaa9108627e039","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js && node test/store-document.test.js && node test/cli.test.js && node test/hook.test.js && node test/telegram-html.test.js && node test/telegram-decisions.test.js && node test/telegram-pending.test.js && node test/telegram-notify.test.js && node test/notify-click-action.test.js && node test/inbox-watcher.test.js && node test/e2e-inbox.test.js && node test/ingest-file.test.js && node test/openclaw-channel.test.js && node test/openclaw-channel-e2e.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.11.6_1779632849478_0.8382475778784426","host":"s3://npm-registry-packages-npm-production"}},"0.11.7":{"name":"memex-mvp","version":"0.11.7","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.11.7","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"1405bf0909e8acf214f8095a020717f1fd0421c4","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.11.7.tgz","fileCount":47,"integrity":"sha512-z0nR4dOS3g6SJnIlNuErBj9/fnfjHqUx14SlqnjsyPczswUcdopEnqqPhie4cITakLVGDXpooHAJbWWmDFNU+g==","signatures":[{"sig":"MEUCIAhGSWQVmpU+U9F9n+t3dKiWTsgl84Pr74C+/44dvfweAiEAnWK3bBDyFWJ4XG3zQNn8NfJ7Y3CMJIXu6Y37EyPZLno=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":799211},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"f9c83ac7a42ca6bd87ce0eeed8978f8686516f99","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js && node test/store-document.test.js && node test/cli.test.js && node test/hook.test.js && node test/telegram-html.test.js && node test/telegram-decisions.test.js && node test/telegram-pending.test.js && node test/telegram-notify.test.js && node test/notify-click-action.test.js && node test/inbox-watcher.test.js && node test/e2e-inbox.test.js && node test/ingest-file.test.js && node test/openclaw-channel.test.js && node test/openclaw-channel-e2e.test.js && node test/wire-openclaw.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.11.7_1779739950737_0.2651820489383343","host":"s3://npm-registry-packages-npm-production"}},"0.11.8":{"name":"memex-mvp","version":"0.11.8","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.11.8","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"2914f3fab93b13060b4fee56bd6ada99cb2dcbd9","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.11.8.tgz","fileCount":47,"integrity":"sha512-1XOc1o+4w2hE9OCeP2vfVOpPZy0XDVb4syljdw87fdMOw7TYT8N5ultlZAHA/BVnntHLgvHXAxmeKAuDnVnHWQ==","signatures":[{"sig":"MEUCIQDdrv8QKOMghyLNeDT+osRsigYhm5BKYhfPLWmqZimWdgIgWJ4pxo7jVJgDqFe8w7xG2S/Ir6LiM3LvWWQFwmsblgs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":800140},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"3f12e894abe6b1745104040c1942bddbabcc8f53","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js && node test/store-document.test.js && node test/cli.test.js && node test/hook.test.js && node test/telegram-html.test.js && node test/telegram-decisions.test.js && node test/telegram-pending.test.js && node test/telegram-notify.test.js && node test/notify-click-action.test.js && node test/inbox-watcher.test.js && node test/e2e-inbox.test.js && node test/ingest-file.test.js && node test/openclaw-channel.test.js && node test/openclaw-channel-e2e.test.js && node test/wire-openclaw.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.11.8_1779741382167_0.36517760591067616","host":"s3://npm-registry-packages-npm-production"}},"0.11.9":{"name":"memex-mvp","version":"0.11.9","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.11.9","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"d08e77fce429d8fd4bbec2cd4455d332e64037aa","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.11.9.tgz","fileCount":47,"integrity":"sha512-R1m+RPJI72U3GOAOvLtkOoFpVCxOgkkNzxVWE6SCg1k72ktcBLxTfV3a4wSvL6EmiDS5M7rvsHFehM3lMTiGAA==","signatures":[{"sig":"MEQCIGQueSICY1MWJGHpqqSJLIPinbR5OJWDvsmuSQXBSdOuAiAJ+37/F4m7DJxQFEsh0vDoXngXYAsftZQE25QaKg7qJA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":803223},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"e8a515bf5edd190c0b3db0e5665f21fafc4b8a4f","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js && node test/store-document.test.js && node test/cli.test.js && node test/hook.test.js && node test/telegram-html.test.js && node test/telegram-decisions.test.js && node test/telegram-pending.test.js && node test/telegram-notify.test.js && node test/notify-click-action.test.js && node test/inbox-watcher.test.js && node test/e2e-inbox.test.js && node test/ingest-file.test.js && node test/openclaw-channel.test.js && node test/openclaw-channel-e2e.test.js && node test/wire-openclaw.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.11.9_1779742861211_0.5122046579614574","host":"s3://npm-registry-packages-npm-production"}},"0.11.10":{"name":"memex-mvp","version":"0.11.10","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.11.10","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"67c47a148a7b050271e5dbdfa5fa0064418400e1","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.11.10.tgz","fileCount":47,"integrity":"sha512-0zD9mmwrDi1fGAScS5zKFAp0hTowiD2dnREjCT6YZBVRtehsvrV+GeloI0D5c/AZLuR7tQ+vk2LDzn01JvdPow==","signatures":[{"sig":"MEYCIQCAYQonyZS+1Y89GgAzJKRGJHSA8S+ILkihpsDvVH7r7wIhAJY86n1F7Xm1JVOxJo1cwA25F3GqCb+g7I8PDpH9esQ0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":805070},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"4a49ce2bf8d9f700a9273689a133a618267e98a7","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js && node test/store-document.test.js && node test/cli.test.js && node test/hook.test.js && node test/telegram-html.test.js && node test/telegram-decisions.test.js && node test/telegram-pending.test.js && node test/telegram-notify.test.js && node test/notify-click-action.test.js && node test/inbox-watcher.test.js && node test/e2e-inbox.test.js && node test/ingest-file.test.js && node test/openclaw-channel.test.js && node test/openclaw-channel-e2e.test.js && node test/wire-openclaw.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.11.10_1779822024027_0.08675481293568588","host":"s3://npm-registry-packages-npm-production"}},"0.11.11":{"name":"memex-mvp","version":"0.11.11","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.11.11","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"89231cb38420c24471a6c0ba2fa02e5d852525e1","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.11.11.tgz","fileCount":61,"integrity":"sha512-jxG/ekrVNVHo1IT4CkXd+3KRlMM81GUxfwWX1lCTjJyupSa7VubX+lFx8GUu+ZR59RInqLcksqvA1+SKemLfFw==","signatures":[{"sig":"MEYCIQCfNNMj0Ypm4edNH8xBASyd7LUxqJWTKxkVnfo4I7LAMwIhAKfImozBT2rpAEb4Y9m5eFqdxGWCbjSqPpGWGo9hIn6g","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":944073},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"15d4fbd8c6526d7ba38db30a5b5caf8396e0aed4","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js && node test/store-document.test.js && node test/cli.test.js && node test/hook.test.js && node test/telegram-html.test.js && node test/telegram-decisions.test.js && node test/telegram-pending.test.js && node test/telegram-notify.test.js && node test/notify-click-action.test.js && node test/inbox-watcher.test.js && node test/e2e-inbox.test.js && node test/ingest-file.test.js && node test/openclaw-channel.test.js && node test/openclaw-channel-e2e.test.js && node test/wire-openclaw.test.js && node test/sync/server-bootstrap.test.js && node test/sync/push-pull-roundtrip.test.js && node test/sync/cli-end-to-end.test.js && node test/sync/adaptive-batch.test.js && node test/sync/service.test.js && node test/sync/skip-accounting.test.js && node test/sync/pair.test.js && node test/sync/mcp-invite.test.js && node test/sync/skip-accounting.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","selfsigned":"^5.5.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.11.11_1780250859171_0.5412040175324833","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"memex-mvp","version":"0.12.0","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.12.0","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"6bb0a1b2139056f4c0d0fbe6d67b511060c6682b","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.12.0.tgz","fileCount":61,"integrity":"sha512-9TZEt1VMk7Q9q2cTg8n+x2aIblhP65EyzwGe2WXMmZ3AnTUBLBYJZCuhdqeA1qj23zc+/RQKzzdvdprGTreDYA==","signatures":[{"sig":"MEYCIQDD9uDQxD0NBrpQiqnY2OHsvqXWp0aO/+vyHOkr1cYUwAIhAMbtqDznk/F6TgyeJMlpCEdZ715uL4aLQsn0nm/ckNNN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":971863},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"dfba0fbe47f0c1263773e4b82ec71c9a1eeee7fb","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js && node test/get-conversation-paging.test.js && node test/search-filters.test.js && node test/store-document.test.js && node test/cli.test.js && node test/hook.test.js && node test/telegram-html.test.js && node test/telegram-decisions.test.js && node test/telegram-pending.test.js && node test/telegram-notify.test.js && node test/notify-click-action.test.js && node test/inbox-watcher.test.js && node test/e2e-inbox.test.js && node test/ingest-file.test.js && node test/openclaw-channel.test.js && node test/openclaw-channel-e2e.test.js && node test/wire-openclaw.test.js && node test/sync/server-bootstrap.test.js && node test/sync/push-pull-roundtrip.test.js && node test/sync/cli-end-to-end.test.js && node test/sync/adaptive-batch.test.js && node test/sync/service.test.js && node test/sync/skip-accounting.test.js && node test/sync/pair.test.js && node test/sync/mcp-invite.test.js && node test/sync/skip-accounting.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","selfsigned":"^5.5.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.12.0_1780984544674_0.015735685749689532","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"memex-mvp","version":"0.13.0","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.13.0","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"9e467a3d5a89a70c538b57f785acff2c232b3d84","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.13.0.tgz","fileCount":61,"integrity":"sha512-+n3zCWJjO3yeDi0BSuviWcJX9kJGJh1fv+cw0QqIzpOvYl3cmc+xtrMOvpKUu43neR7klDGpMI1GJ+kBnTMNzg==","signatures":[{"sig":"MEUCIQD47lRRDTEEzQU0RnS6fneUpzJb60tRIQltSW+KG9G7uAIgaNQpZCOrxYZEbnzYsUXpIrSJzyiBaZCKiK25HpRkKzw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1016214},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"a8b60fc815716b42049d778517ab4340793962bd","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js && node test/get-conversation-paging.test.js && node test/search-filters.test.js && node test/store-document.test.js && node test/cli.test.js && node test/hook.test.js && node test/telegram-html.test.js && node test/telegram-decisions.test.js && node test/telegram-pending.test.js && node test/telegram-notify.test.js && node test/notify-click-action.test.js && node test/inbox-watcher.test.js && node test/e2e-inbox.test.js && node test/ingest-file.test.js && node test/openclaw-channel.test.js && node test/openclaw-channel-e2e.test.js && node test/wire-openclaw.test.js && node test/sync/server-bootstrap.test.js && node test/sync/push-pull-roundtrip.test.js && node test/sync/cli-end-to-end.test.js && node test/sync/adaptive-batch.test.js && node test/sync/service.test.js && node test/sync/skip-accounting.test.js && node test/sync/pair.test.js && node test/sync/join-token.test.js && node test/sync/tunnel-service.test.js && node test/sync/mcp-invite.test.js && node test/sync/skip-accounting.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","selfsigned":"^5.5.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.13.0_1781287161835_0.026388775401277487","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"memex-mvp","version":"0.14.0","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"url":"https://memex.parallelclaw.ai","name":"parallelclaw","email":"sedelev@gmail.com"},"license":"MIT","_id":"memex-mvp@0.14.0","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"homepage":"https://memex.parallelclaw.ai","bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"bin":{"memex":"server.js","memex-bot":"bot/index.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js"},"dist":{"shasum":"db05af18960eafa1b1b3197a5bcc0437d981855b","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.14.0.tgz","fileCount":61,"integrity":"sha512-diLc3wmzmj7xmEGvjpp9uWl8MD6UmE1GULlL0aNalRuUB4wOXEZ60ULaP4cgQIDtnCZ5AIZ2/CwoPVNKISx+WA==","signatures":[{"sig":"MEYCIQD1qi8PiC+oTsz/YcFOri5sF0lY12R/FOsKLDvTQq8C2QIhAIMZ7Lu4f+g1Guf6H7Pz9YMjAJ7E+eyYXmc/KDaXsok1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1027590},"main":"server.js","type":"module","engines":{"node":">=20.0.0 <25.0.0"},"gitHead":"6029c9a605495db31f5bbc7d22bfb92263568312","scripts":{"bot":"node bot/index.js","sync":"node ingest.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js && node test/get-conversation-paging.test.js && node test/search-filters.test.js && node test/origin.test.js && node test/store-document.test.js && node test/cli.test.js && node test/hook.test.js && node test/telegram-html.test.js && node test/telegram-decisions.test.js && node test/telegram-pending.test.js && node test/telegram-notify.test.js && node test/notify-click-action.test.js && node test/inbox-watcher.test.js && node test/e2e-inbox.test.js && node test/ingest-file.test.js && node test/openclaw-channel.test.js && node test/openclaw-channel-e2e.test.js && node test/wire-openclaw.test.js && node test/sync/server-bootstrap.test.js && node test/sync/push-pull-roundtrip.test.js && node test/sync/cli-end-to-end.test.js && node test/sync/adaptive-batch.test.js && node test/sync/service.test.js && node test/sync/skip-accounting.test.js && node test/sync/pair.test.js && node test/sync/join-token.test.js && node test/sync/tunnel-service.test.js && node test/sync/mcp-invite.test.js && node test/sync/skip-accounting.test.js","start":"node server.js","ingest":"node ingest.js","prepublishOnly":"npm test"},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"repository":{"url":"git+https://github.com/parallelclaw/memex-mvp.git","type":"git"},"_npmVersion":"11.12.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chokidar":"^3.6.0","selfsigned":"^5.5.0","better-sqlite3":"^11.0.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/memex-mvp_0.14.0_1781290868361_0.26509363454949364","host":"s3://npm-registry-packages-npm-production"}},"0.14.1":{"name":"memex-mvp","version":"0.14.1","description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","type":"module","main":"server.js","bin":{"memex":"server.js","memex-mvp":"ingest.js","memex-sync":"ingest.js","memex-ingest":"ingest.js","memex-bot":"bot/index.js"},"scripts":{"start":"node server.js","sync":"node ingest.js","ingest":"node ingest.js","bot":"node bot/index.js","test":"node test/parser.test.js && node test/bot-inbox.test.js && node test/search-sort.test.js && node test/get-conversation-paging.test.js && node test/search-filters.test.js && node test/origin.test.js && node test/store-document.test.js && node test/cli.test.js && node test/hook.test.js && node test/telegram-html.test.js && node test/telegram-decisions.test.js && node test/telegram-pending.test.js && node test/telegram-notify.test.js && node test/notify-click-action.test.js && node test/inbox-watcher.test.js && node test/e2e-inbox.test.js && node test/ingest-file.test.js && node test/openclaw-channel.test.js && node test/openclaw-channel-e2e.test.js && node test/wire-openclaw.test.js && node test/sync/server-bootstrap.test.js && node test/sync/push-pull-roundtrip.test.js && node test/sync/cli-end-to-end.test.js && node test/sync/adaptive-batch.test.js && node test/sync/service.test.js && node test/sync/skip-accounting.test.js && node test/sync/pair.test.js && node test/sync/join-token.test.js && node test/sync/tunnel-service.test.js && node test/sync/mcp-invite.test.js && node test/sync/skip-accounting.test.js","prepublishOnly":"npm test"},"engines":{"node":">=20.0.0 <25.0.0"},"dependencies":{"@modelcontextprotocol/sdk":"^1.0.0","better-sqlite3":"^11.0.0","chokidar":"^3.6.0","selfsigned":"^5.5.0"},"keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"author":{"name":"parallelclaw","email":"sedelev@gmail.com","url":"https://memex.parallelclaw.ai"},"license":"MIT","homepage":"https://memex.parallelclaw.ai","repository":{"type":"git","url":"git+https://github.com/parallelclaw/memex-mvp.git"},"bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"gitHead":"84558c7d75a4099ea8a2820bc4a7735b72ade4c9","_id":"memex-mvp@0.14.1","_nodeVersion":"24.15.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-8Zlg1b/ErtDEIjAeC6NbY5Kt0vVjm408x23aOzaXTqwbYw4PEDfsV/78/byTTMq9T9YyrPCpZUjy+hPO3o73BQ==","shasum":"a0f4294e890db35d1a1b3903fb385e2cec2335e5","tarball":"https://registry.npmjs.org/memex-mvp/-/memex-mvp-0.14.1.tgz","fileCount":61,"unpackedSize":1028458,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD20iMaFyVvVU/bQp+ccuhHqvjVx84GcLgk+jvQ6Cvo6gIgUzDQhzRw9Z9sOVhSI8ArMkLLkJXjn9brqVd2nptYj2A="}]},"_npmUser":{"name":"sedelev","email":"sedelev@gmail.com"},"directories":{},"maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/memex-mvp_0.14.1_1781291993636_0.2216773272817203"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-14T17:49:41.031Z","modified":"2026-06-12T19:19:53.957Z","0.5.0":"2026-05-14T17:49:41.188Z","0.5.1":"2026-05-14T18:02:20.369Z","0.5.2":"2026-05-14T18:08:31.905Z","0.5.3":"2026-05-14T18:30:04.775Z","0.5.4":"2026-05-14T18:51:26.999Z","0.6.0":"2026-05-14T20:29:19.737Z","0.6.1":"2026-05-14T20:42:04.129Z","0.7.0":"2026-05-15T09:32:09.689Z","0.8.1":"2026-05-15T10:32:15.434Z","0.9.0":"2026-05-15T15:29:51.902Z","0.9.1":"2026-05-15T16:38:50.964Z","0.10.1":"2026-05-15T19:28:20.818Z","0.10.2":"2026-05-16T10:14:44.933Z","0.10.4":"2026-05-16T10:59:47.662Z","0.10.6":"2026-05-16T11:32:26.724Z","0.10.7":"2026-05-16T17:04:33.240Z","0.10.8":"2026-05-17T17:31:47.468Z","0.10.9":"2026-05-17T17:36:29.465Z","0.10.10":"2026-05-17T17:53:10.605Z","0.10.11":"2026-05-17T18:39:40.065Z","0.10.12":"2026-05-18T07:40:36.915Z","0.10.13":"2026-05-19T12:39:49.281Z","0.10.14":"2026-05-19T17:37:04.875Z","0.10.15":"2026-05-19T18:10:38.154Z","0.11.0":"2026-05-19T19:32:20.086Z","0.11.1":"2026-05-19T20:08:18.385Z","0.11.2":"2026-05-19T21:02:23.031Z","0.11.3":"2026-05-19T21:17:06.933Z","0.11.4":"2026-05-19T21:55:10.329Z","0.11.5":"2026-05-19T22:31:41.647Z","0.11.6":"2026-05-24T14:27:29.668Z","0.11.7":"2026-05-25T20:12:30.962Z","0.11.8":"2026-05-25T20:36:22.373Z","0.11.9":"2026-05-25T21:01:01.396Z","0.11.10":"2026-05-26T19:00:24.261Z","0.11.11":"2026-05-31T18:07:39.329Z","0.12.0":"2026-06-09T05:55:44.854Z","0.13.0":"2026-06-12T17:59:22.011Z","0.14.0":"2026-06-12T19:01:08.610Z","0.14.1":"2026-06-12T19:19:53.856Z"},"bugs":{"url":"https://github.com/parallelclaw/memex-mvp/issues"},"author":{"name":"parallelclaw","email":"sedelev@gmail.com","url":"https://memex.parallelclaw.ai"},"license":"MIT","homepage":"https://memex.parallelclaw.ai","keywords":["mcp","mcp-server","claude","claude-code","claude-cowork","cursor","memex","memory","ai-memory","local-first","verbatim","chat-archive","fts5","sqlite","telegram","openclaw"],"repository":{"type":"git","url":"git+https://github.com/parallelclaw/memex-mvp.git"},"description":"Local-first MCP server for cross-agent AI memory. One SQLite + FTS5 corpus across Claude Code, Cowork, Cursor, Continue, Zed, Obsidian, and Telegram — passively captured, verbatim, searchable from any MCP-compatible client.","maintainers":[{"name":"sedelev","email":"sedelev@gmail.com"}],"readme":"# memex-mvp · your AI's missing memory\n\n> [English](README.md) · **Русский**\n\n[![npm](https://img.shields.io/npm/v/memex-mvp.svg)](https://www.npmjs.com/package/memex-mvp)\n[![downloads](https://img.shields.io/npm/dw/memex-mvp.svg)](https://www.npmjs.com/package/memex-mvp)\n[![license](https://img.shields.io/npm/l/memex-mvp.svg)](LICENSE)\n\n> **Единое хранилище для всех твоих AI и Telegram чатов.**\n\nЛокальный MCP-сервер, который индексирует **все ваши разговоры с AI** — Claude Code, Claude Cowork, Telegram-боты, ChatGPT-экспорты — в один FTS5-search и отдаёт их **любому MCP-совместимому AI-агенту** (Cursor, Cline, Claude Code, Continue, Zed) через 8 простых tool'ов.\n\nНикакого облака. Никакого аккаунта. Только твой ноут.\n\n---\n\n## Как это работает\n\n```\n~/.memex/inbox/   ← кладёшь сюда экспорты (или симлинк на Claude Code .jsonl)\n   ↓ chokidar watcher\n   ↓\nparser (Telegram JSON / Claude Code JSONL — flat и nested)\n   ↓\nSQLite + FTS5 (~/.memex/data/memex.db)\n   ↓\nMCP server (stdio JSON-RPC)\n   ↓\nлюбой клиент → 8 tool'ов:\n   • memex_overview              — снэпшот корпуса + статус auto-capture\n   • memex_search                — full-text поиск (с дедупом по чатам)\n   • memex_recent                — последние N сообщений\n   • memex_list_conversations    — список чатов по recency\n   • memex_get_conversation      — полный транскрипт чата\n   • memex_archive_conversation  — скрыть чат из выдачи (но не из поиска)\n   • memex_status                — здоровье memex-sync daemon'а\n   • memex_list_sources          — что импортировано\n```\n\nСпроси своему агенту «помнишь как мы решили проблему с миграцией Postgres?» — он **сам** вызовет `memex_search`, найдёт релевантное и ответит с реальным контекстом.\n\n---\n\n## Requirements / Требования\n\n### Обязательное (без этого memex не запустится)\n\n- **Node.js 20.x – 24.x** (рекомендуется **22 LTS**). В репо есть `.nvmrc` со значением `22` — если у тебя `nvm`, выполни `nvm use` в директории проекта.\n- **macOS 12+ или Linux** с inotify (Windows — только через WSL).\n- **Xcode Command Line Tools** на macOS (`xcode-select --install`) — нужны для нативной сборки `better-sqlite3`, если для твоей Node-версии нет prebuilt binaries.\n- **MCP-совместимый AI-клиент** для использования: Claude Code, Cursor, Cline, Continue, Zed или любой другой клиент с поддержкой MCP. Без этого memex стрит индекс, но обращаться к нему будет некому.\n\n### Опциональное (по ситуации)\n\n- **Telegram Desktop** — если хочешь индексировать TG-чаты. Мобильное приложение Telegram **не умеет** экспорт; нужен именно Desktop-клиент.\n- **iCloud Drive / Syncthing** — если хочешь sync БД между несколькими своими ноутами.\n- **Ollama / llama.cpp** — на будущее для локального LLM-extraction слоя (профильные факты). Сейчас в roadmap'е.\n\n### Аппаратные требования (small)\n\n- **Disk space:** ~5-30 МБ типичный корпус за год. Большие Telegram-экспорты с медиа — отдельно, до сотен МБ.\n- **RAM:** daemon ~30 МБ, MCP-сервер ~50 МБ. Незаметно.\n- **CPU:** на холостом ходу < 1%. Импорт сессии — миллисекунды.\n\n### Известные ограничения\n\n| Что **не** работает | Почему |\n|---|---|\n| ❌ Web-only AI (ChatGPT в браузере, Claude.ai web) | Эти сессии живут на серверах вендора, на твоём диске их нет |\n| ❌ Мобильные AI-приложения (ChatGPT iOS, Claude Android) | Phone-data не пишется на твой компьютер |\n| ❌ Сессии на VPS / в облаке | Memex читает локальную файловую систему |\n| ❌ Windows напрямую | Только через WSL (chokidar на Win работает плохо без inotify-shim) |\n| ❌ Auto-capture daemon на Linux | `npx memex-sync install` работает только на macOS (LaunchAgent). На Linux запускай daemon в foreground или сделай свой systemd unit |\n| ❌ Mobile capture сегодня | В roadmap'е — Telegram-бот в `bot/` директории |\n\n### Положительное «ограничение»\n\n✅ **Internet не нужен.** Memex после установки работает полностью офлайн. Никаких phone-home, никаких API-ключей, никаких облачных зависимостей. Это feature, не bug.\n\n> ⚠ **Node 25+ известная проблема.** На bleeding-edge Node (25.x) `better-sqlite3` ещё не имеет prebuilt binaries — fallback на компиляцию из исходников падает на macOS с `fatal error: 'climits' file not found`. Решение: `nvm install 22 && nvm use 22`, потом `npm install`.\n\n---\n\n## Установка за 60 секунд\n\n**Установка в одну строку (рекомендуется):**\n\n```bash\ncurl -fsSL https://memex.parallelclaw.ai/install.sh | bash\n```\n\nЭта команда сама делает:\n1. Проверяет Node ≥ 20.\n2. Запускает `npm install -g memex-mvp`, и если ловит `EACCES` — сама переносит npm prefix в `~/.npm-global` (sudo больше не нужен — никогда, ни для одного `npm install -g`).\n3. Поднимает auto-capture daemon (`memex-sync install`) **вместе с** Brian Chesky auto-context хуком (v0.8+) в `~/.claude/settings.json` (другие хуки не трогает).\n4. Бэкфиллит историю (`memex-sync scan`) — memex сразу знает о твоих прошлых сессиях.\n5. Если на машине найден Claude Code CLI (`claude`), вызывает `claude mcp add memex --scope user -- memex` — MCP прописывается автоматом.\n\nИдемпотентно — безопасно перезапускать. Хочешь сначала посмотреть скрипт: `curl -fsSL https://memex.parallelclaw.ai/install.sh | less`.\n\n**Или вручную:**\n\n```bash\nnpm install -g memex-mvp\nmemex-sync install      # macOS LaunchAgent для auto-capture\n```\n\nЕсли `npm install -g` упирается в `EACCES` (системный Node на macOS) — два пути:\n\n```bash\n# A. Один раз — починить prefix, чтоб больше не страдать:\nmkdir -p ~/.npm-global\nnpm config set prefix ~/.npm-global\necho 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zshrc\nsource ~/.zshrc\n\n# B. Или просто разово через sudo:\nsudo npm install -g memex-mvp\n```\n\n**Альтернатива без global install** — `npx memex-mvp install` ставит всё во временный кэш, ничего глобально не оставляет.\n\nПосле установки `memex-sync install` поднимет фоновый daemon (`~/.memex/{inbox,data}/` создадутся автоматически при первом запуске).\n\n### Установка через AI-скилл (Claude Code / OpenClaw)\n\nЕсли хочешь чтобы агент сам всё сделал — закинь [install-memex skill](skills/install-memex/) в `~/.claude/skills/`:\n\n```bash\nmkdir -p ~/.claude/skills\ncurl -fsSL https://raw.githubusercontent.com/parallelclaw/memex-mvp/main/skills/install-memex/SKILL.md \\\n  -o ~/.claude/skills/install-memex/SKILL.md\n```\n\nЗатем в Claude Code (или любом Skills-aware агенте) скажи:\n\n> установи memex\n\n…или `/install-memex`. Агент сам сделает `npm install`, пропишет MCP-config, поднимет daemon и проверит что всё работает — ~2 минуты.\n\n### Сохранение URL'ов в memex (v0.6+)\n\nПосле установки в любом MCP-агенте (Claude Code, Cursor, Cline, Continue, Zed) можно сохранять **web-страницы, AI-chat share'ы и pasted-тексты** прямо в memex-память:\n\n```\nСохрани https://www.perplexity.ai/share/<id> в memex\nДобавь эту статью в memex: https://example.com/article\n```\n\nАгент сам fetch'ит страницу через свой WebFetch — для Cloudflare-защищённых сайтов (Perplexity, npm.com, Twitter, Medium) автоматически falls back на `r.jina.ai` proxy (memex учит агента этому трюку через tool description). Затем агент вызывает `memex_store_document`, который хранит контент verbatim как conversation с `source: \"web\"`.\n\n**Memex остаётся 100% локальным** — fetch делает агент, memex только хранит. Никаких outbound network calls со стороны memex.\n\nПолное руководство и edge cases (private Perplexity, paywall, login-walls): [HELP.md §8](HELP.md).\n\n### Терминальный CLI (v0.7+) — запросы к memex без MCP\n\nТот же бинарь `memex`, который работает как MCP-сервер, имеет **terminal-режим** для прямых запросов. Полезно когда MCP не настроен, когда хочешь пайпить результаты в shell-скрипты, или дебажить MCP-конфиг:\n\n```bash\nmemex search \"Postgres миграция\"            # полнотекстовый поиск\nmemex search \"Q2 deck\" --chat \"Memex Bot\"   # сузить до конкретного чата по title\nmemex search \"JWT\" --as-of 2026-05-01       # v0.8.1: time-travel — только до даты\nmemex when \"Brian Chesky\"                    # v0.8.1: «когда мы это обсуждали» — даты + чаты\nmemex recent --limit 5                       # последние 5 сообщений из всех источников\nmemex list --source web                      # все сохранённые URL'ы\nmemex get web-1582ab51a7b7                   # полный контент одной conversation\nmemex overview                               # snapshot корпуса + v0.8.1: capture streak\nmemex projects                               # уникальные project_paths\nmemex help                                   # полное руководство (HELP.md)\nmemex --help                                 # справка по командам\n```\n\nУ каждого query-subcommand'a есть `--json` для machine-readable вывода: `memex search foo --json | jq '.results[].snippet'`. БД открывается **read-only** — безопасно запускать пока daemon пишет.\n\nПри запуске **без аргументов** (`memex`) бинарь по-прежнему работает как MCP stdio server (как и вызывают его Claude Code / Cursor / Cline из своих конфигов). CLI-режим и MCP-режим — один и тот же пакет, без дополнительной установки.\n\n**Использовать CLI, когда:**\n- MCP-интеграция не подцепилась к твоему агенту → `memex overview` подтвердит что сам memex здоров\n- Агент без MCP-поддержки, но с shell-доступом\n- Хочешь пайпить результаты: `memex search foo --json | jq ...`\n- Хочешь сдампить полный transcript в stdout для context'a\n\n### Auto-context (v0.8+) — Claude уже знает что ты делал\n\nПосле `memex-sync install` появляется промпт про **auto-context**. Если согласишься — memex добавит SessionStart хук в `~/.claude/settings.json`. Когда ты потом открываешь Claude Code в каком-то проекте, Claude **сам подгружает 500-1500 токенов контекста** про этот проект — что ты делал недавно, какие conversations его касались, какие связанные темы всплывали. Никаких вопросов, никаких tool-call'ов, просто Claude **знает**.\n\n```bash\n# Добавить/удалить хук вне install-flow:\nmemex hook install        # добавить SessionStart хук (idempotent)\nmemex hook uninstall      # удалить только memex-запись, остальные хуки не трогает\nmemex hook status         # показать текущее состояние\n\n# Посмотреть что будет инжектиться:\nmemex context             # dry-run для текущей директории\nmemex context --pwd /path # для другого проекта\nmemex context --no-source telegram  # исключить источник\n```\n\nХук **сохраняет существующие хуки** (gstack, твои кастомные) — добавляет только свою запись.\n\n**Сейчас native SessionStart есть только в Claude Code.** Для Cursor / Cline / Continue / Zed fallback через MCP-tool — в roadmap v0.9.0.\n\n### Подключение к Claude Code\n\nСначала возьми **два абсолютных пути** в терминале:\n\n```bash\npwd         # → путь до memex-mvp (из директории memex-mvp)\nwhich node  # → путь до бинарника node (например /Users/you/.nvm/versions/node/v24.15.0/bin/node)\n```\n\nВ `~/.claude/config.json` добавь, подставив оба пути:\n\n```json\n{\n  \"mcpServers\": {\n    \"memex\": {\n      \"command\": \"/абсолютный/путь/до/node\",\n      \"args\": [\"/абсолютный/путь/до/memex-mvp/server.js\"]\n    }\n  }\n}\n```\n\n**Почему абсолютный путь к node, а не просто `\"node\"`?** GUI-приложения (Cursor, Cline VS Code, Claude Desktop) на macOS часто **не наследуют PATH из shell'a** (`~/.zshrc`). С `\"command\": \"node\"` MCP-сервер падает с `spawn node ENOENT` — особенно если node поставлен через nvm. Всегда используй путь из `which node`.\n\nПерезапусти Claude Code. Готово — у тебя в session появятся `memex_*` tool'ы.\n\n### Подключение к Cursor / Cline / Continue / Zed\n\nКаждый клиент имеет свой `mcpServers` config (обычно в `~/.cursor/mcp.json`, `.cline/...`, и т.п.). Структура та же — `command` = абсолютный путь до node, `args` = `[путь к server.js]`. Та же ENOENT-проблема актуальна для всех GUI-MCP клиентов.\n\n---\n\n## Что поддерживается\n\n| Источник | Формат | Статус |\n|----------|--------|--------|\n| **Claude Code** | `*.jsonl` сессии в `~/.claude/projects/` | ✅ работает (nested + flat форматы) |\n| **Claude Cowork** | `cowork-*.jsonl` (через filename prefix), включая subagents | ✅ работает |\n| **Cursor IDE** (Composer + Chat) | SQLite `state.vscdb` в `~/Library/Application Support/Cursor/` | ✅ работает (poll каждые 5 мин) |\n| **Obsidian** vault notes | `.md` файлы + YAML frontmatter | ✅ работает (FSEvents, hash-based dedupe) |\n| **Telegram (JSON / HTML export)** | `result.json` или `ChatExport_*/` из Telegram Desktop | ✅ работает — **v0.10+: авто-детект.** Daemon следит за `~/Downloads/Telegram Desktop/`, экспорты сами попадают в pending, юзер per-chat подтверждает |\n| **Telegram (live)** | бот `memex-bot` ловит твои сообщения / форварды | ✅ работает |\n| **Web-страницы, AI-share'ы, paste'ы** | `memex_store_document` — агент fetch'ит, memex хранит verbatim (v0.6+) | ✅ работает |\n| Claude.ai web export | будет в v0.7 | — |\n| ChatGPT export | будет в v0.7 | — |\n| Apple Notes | будет в v0.7 | — |\n\n### Filename convention для inbox-файлов\n\nПарсер различает источники по префиксу имени файла в inbox:\n- `code-*.jsonl` или произвольное имя → tagged как `claude-code`\n- `cowork-*.jsonl` → tagged как `claude-cowork`\n- `cursor-*.jsonl` → tagged как `cursor`\n- `obsidian-*.jsonl` → tagged как `obsidian`\n\nЭто позволяет фильтровать `memex_search` по конкретной экосистеме (`source: \"cursor\"`, `source: \"obsidian\"` и т.д.).\n\n### Cursor IDE source — особый случай\n\nCursor хранит историю в SQLite (`state.vscdb`), не в JSONL-файлах. memex-sync daemon **поллит** эту БД каждые 5 минут (FSEvents бессмысленно — Cursor пишет в WAL практически на каждый keystroke). При обнаружении composer'а с обновлённым `lastUpdatedAt` daemon экспортит его dialogue (без thinking-bubbles и tool-call'ов) в inbox как `cursor-<short>.jsonl`. Заголовок берётся из `composerData.name` напрямую.\n\nПоддерживаемые ОС для Cursor: macOS, Linux, Windows (пути в `lib/parse-cursor.js`).\n\n### Obsidian source — заметки как первоклассные сущности\n\nmemex автоматически находит Obsidian-vault'ы в стандартных местах (`~/Documents/`, `~/Obsidian/`, `~/Library/Mobile Documents/iCloud~md~obsidian/Documents/` для iCloud-синка). Vault — это любая папка с `.obsidian/` подпапкой внутри. Можно явно указать пути через env-переменную:\n\n```bash\nexport MEMEX_OBSIDIAN_VAULTS=/path/to/vault1,/path/to/vault2\n```\n\nКаждая `.md` нота → одна conversation в memex. Title берётся из `title:` frontmatter → первого `# H1` → имени файла. YAML frontmatter парсится для метаданных (дат, тегов). Body индексируется в FTS5 как один user-сообщение.\n\n**Privacy**:\n- Обнаружение vault'ов opt-in (только стандартные пути; кастомные через env var)\n- Игнорируются: `.obsidian/`, `.trash/`, `.git/`, `.DS_Store`, `*.sync-conflict-*`\n- Per-note opt-out через frontmatter `memex: false`\n- Hash-based dedupe — пишем в inbox только когда содержание реально изменилось, не на каждый mtime-touch\n\n### Bulk import за одну команду\n\nmemex полностью самодостаточен — не нужен Python, не нужны внешние CLI:\n\n```bash\nnpx memex-sync scan            # Claude Code + Cowork + Cursor + Obsidian сразу\nnpx memex-sync scan-claude     # только Claude Code + Cowork\nnpx memex-sync scan-cursor     # только Cursor\nnpx memex-sync scan-obsidian   # только Obsidian vault(s)\n```\n\nСканирует все источники один раз, эмитит JSONL в inbox, выходит. Идемпотентен — повторный запуск пропускает неизменённые файлы через state-cache. Удобно для cron, manual-первого-импорта, или дебага без daemon'а.\n\n### Two pieces\n\nmemex поставляется в виде **двух независимых частей:**\n\n- **MCP server** (`server.js`) — пассивная база знаний, всегда доступна после `npm install`. Отдаёт 8 tool'ов любому MCP-агенту.\n- **memex-sync** (`ingest.js`) — **опциональный** фоновый daemon. Watch'ит `~/.claude/projects/` (Code) и `~/Library/Application Support/Claude/local-agent-mode-sessions/` (Cowork) через FSEvents и автоматически добавляет новые сессии в память в реальном времени.\n\n> **Без memex-sync память замёрзла** на момент последнего ручного импорта. **С ним** — каждая новая сессия становится searchable за ~1.5 секунды.\n\n### Включить auto-capture (memex-sync)\n\nОдна команда — и dameon регистрируется как macOS LaunchAgent, автозапускается при логине, переживает перезагрузку и крэши:\n\n```bash\nnpx memex-sync install\n```\n\nДальше:\n\n```bash\nnpx memex-sync status      # три состояния: installed / running / watching\nnpx memex-sync logs        # tail -f лог в реальном времени\nnpx memex-sync uninstall   # снять с автозапуска (БД остаётся)\n```\n\nБез `install` daemon можно гонять и в foreground'е (для отладки):\n\n```bash\nnpx memex-sync             # = serve, в foreground\n```\n\n### Что под капотом\n\n- chokidar (FSEvents на macOS, inotify на Linux) на обе source-директории\n- Per-file state в `~/.memex/data/ingest-state.json` (sha1 первых 256B + size + mtime) — повторный запуск пропускает неизменённые файлы\n- Safety rescan каждые 30 минут — ловит пропущенные FSEvents после sleep/lid-close\n- Atomic writes (temp + rename) в `~/.memex/inbox/` — никаких частичных JSONL\n- Idempotent: новые сообщения идут через UNIQUE(msg_id), дубли отсекаются на уровне БД\n- LaunchAgent работает с `LowPriorityIO=true`, `Nice=5` — не мешает основной работе ноута\n\nmemex MCP server и memex-sync — два независимых процесса. MCP server отвечает агентам, memex-sync кормит inbox. Связи нет, кроме общей файловой системы.\n\n### Управление источниками\n\nПо умолчанию memex-sync **собирает всё что находит** на машине: Claude Code, Cowork, Cursor, Obsidian (auto-detect). Это удобно для quick-start, но любой источник можно отключить через CLI без удаления daemon'а:\n\n```bash\nnpx memex-sync sources                       # показать что сейчас включено\nnpx memex-sync sources cursor disable        # выключить cursor\nnpx memex-sync sources cursor enable         # вернуть\nnpx memex-sync vault add /path/to/MyVault    # явный список Obsidian-vault'ов\nnpx memex-sync vault remove /path            # убрать\nnpx memex-sync restart                       # применить изменения\n```\n\nКонфиг живёт в `~/.memex/config.json`. Файла нет → сборка по дефолту. Как только что-то изменено через CLI — файл создаётся, daemon его уважает.\n\nPrivacy: agent через `memex_sources_status` сам показывает что именно отслеживается, и **никогда не выключает источники сам** — это всегда команда от пользователя.\n\n### Подсказка для агента\n\nЕсли ты подключил memex к Claude Code/Cursor/Cline и каждый раз когда вызываешь `memex_overview` видишь сверху ⚪ или 🔴 — это значит auto-capture не включён. Агент сам это увидит и предложит юзеру команду `npx memex-sync install`. Это та самая «один раз и забыл» механика — без README-чтения.\n\n---\n\n## Между устройствами / Across devices\n\n### По-русски\n\n**Встроенный настоящий синк (v0.13) — два copy-paste шага.** Ноут с\nClaude/Cursor + сервер с агентом (OpenClaw и т.п.) связывают память без\nпубличных портов, правки фаервола, ручных SSH-ключей и написания сервисов.\n\n**Шаг 1 — кинь этот промпт агенту на сервере:**\n\n```\nНастрой memex-sync как хаб и выдай join-токен для моего ноута:\n1. npm install -g memex-mvp@latest   (пропусти, если уже стоит)\n2. memex-sync sync-server install --bind 127.0.0.1\n3. memex-sync sync-server invite --join\nПришли мне строку memex-join:...\n```\n\n**Шаг 2 — одна команда на ноуте:**\n\n```bash\nmemex-sync sync-join memex-join:eyJ2...\n```\n\nЭта команда сама: проверяет SSH (нет доступа — печатает твой pubkey и что с\nним сделать), поднимает **самовосстанавливающийся** туннель (переживает сон,\nсмену сети, ребут), пиннит сертификат сервера, делает первый синк\n(прерванный — продолжается с места обрыва), ставит авто-синк каждые 15 минут\nи ежечасный watchdog, и в конце **доказывает** петлю — прогоняет тестовую\nзаметку туда-обратно и печатает время. Сервер остаётся на loopback; весь\nтрафик едет внутри SSH (порт 22). Бесконфликтно: verbatim-память append-only,\nмёржить нечего.\n\nMobile: пересылай сообщения в Telegram-бота (`bot/`) — попадут на основную\nмашину и разойдутся синком. Продвинутые топологии (мульти-нода, reverse-туннели,\nтранзит-хабы) — в [SYNC.md](SYNC.md). Legacy file-sync рецепты (iCloud/Syncthing,\nsingle-writer, DEPRECATED) — в [MULTI_MACHINE.md](MULTI_MACHINE.md).\n\n### In English\n\n**Built-in real sync (v0.13) — two copy-paste steps.** A laptop with\nClaude/Cursor + a server with an agent connect their memory with no public\nports, no firewall changes, no manual SSH keys, no hand-written services.\n\n**Step 1 — paste to the agent on the server:**\n\n```\nSet up memex sync as a hub and give me a join token for my laptop:\n1. npm install -g memex-mvp@latest   (skip if installed)\n2. memex-sync sync-server install --bind 127.0.0.1\n3. memex-sync sync-server invite --join\nSend me the memex-join:... line.\n```\n\n**Step 2 — one command on the laptop:**\n\n```bash\nmemex-sync sync-join memex-join:eyJ2...\n```\n\nIt verifies SSH (or prints your pubkey + instructions), builds a self-healing\ntunnel (survives sleep/network changes/reboot), pins the server cert, runs the\nfirst sync (resumable), installs 15-min auto-sync + an hourly watchdog, and\nfinishes by **proving** the loop with a round-tripped test note. The server\nstays on loopback; everything rides inside SSH on port 22. Conflict-free:\nverbatim memory is append-only — nothing to merge.\n\nAdvanced topologies (multi-node, reverse tunnels, transit hubs) — see\n[SYNC.md](SYNC.md). Legacy file-sync recipes (single-writer, DEPRECATED) —\n[MULTI_MACHINE.md](MULTI_MACHINE.md).\n\n---\n\n## Миграция между устройствами / One-time migration\n\n> **Не то же самое что sync.** Это **разовый перенос** всей истории со старого ноута на новый — например при покупке нового мака. Sync — это паттерн в секции «Между устройствами» выше, когда два ноута постоянно делят одну БД через iCloud / Syncthing.\n\n### По-русски\n\nmemex.db — обычный SQLite-файл, переезжает как любой документ.\n\n**На старом ноуте:**\n\n```bash\n# 1. Останови daemon чтобы не было активной записи\nlaunchctl unload ~/Library/LaunchAgents/com.parallelclaw.memex.sync.plist 2>/dev/null\n\n# 2. Сверни WAL в основной файл (чтобы не потерять свежие записи)\nsqlite3 ~/.memex/data/memex.db \"PRAGMA wal_checkpoint(TRUNCATE)\"\n\n# 3. Скопируй ОДИН файл (AirDrop / scp / iCloud / external USB)\ncp ~/.memex/data/memex.db ~/Desktop/memex-backup.db\n```\n\n⚠ Копируй **только `memex.db`** — НЕ копируй `memex.db-wal`, `memex.db-shm` (временные, после checkpoint'a не нужны) и НЕ копируй `~/.memex/data/ingest-state.json` (machine-specific — там пути и fingerprint'ы старого ноута).\n\n**На новом ноуте:**\n\n```bash\n# 1. Установи memex как при первой установке\ngit clone https://github.com/parallelclaw/memex-mvp\ncd memex-mvp && npm install\n\n# 2. Положи DB-файл\nmkdir -p ~/.memex/data\ncp /path/to/memex-backup.db ~/.memex/data/memex.db\n\n# 3. Пропиши MCP-конфиг с абсолютным путём к node (см. секцию \"Подключение к Claude Code\")\n\n# 4. Перезапусти Cursor / Claude Code и вызови memex_overview\n```\n\n**Что переедет:** все разговоры, FTS5-индекс, Telegram-экспорты, conversation IDs. Поиск работает сразу.\n\n**Что НЕ переедет автоматически:**\n- Новые Claude Code / Cursor сессии нового ноута — это уже файлы нового ноута. Решение: `npx memex-sync install` на новом — daemon начнёт ловить новые сессии и добавлять их в ту же БД.\n- `project_path` в существующих записях содержит **старые пути** (`/Users/oldname/...`). Memex не сломается, но `memex_list_projects` покажет старые пути. При необходимости — `UPDATE conversations SET project_path = REPLACE(...)` руками.\n\n### In English\n\nmemex.db is a regular SQLite file — moves like any document.\n\n**On the old laptop:**\n\n```bash\n# 1. Stop the daemon to prevent active writes\nlaunchctl unload ~/Library/LaunchAgents/com.parallelclaw.memex.sync.plist 2>/dev/null\n\n# 2. Checkpoint the WAL into the main file (don't lose recent writes)\nsqlite3 ~/.memex/data/memex.db \"PRAGMA wal_checkpoint(TRUNCATE)\"\n\n# 3. Copy ONE file (AirDrop / scp / iCloud / external USB)\ncp ~/.memex/data/memex.db ~/Desktop/memex-backup.db\n```\n\n⚠ Copy **only `memex.db`** — do NOT copy `memex.db-wal`, `memex.db-shm` (transient, unneeded after checkpoint), and do NOT copy `~/.memex/data/ingest-state.json` (machine-specific — it contains paths and fingerprints from the old laptop).\n\n**On the new laptop:**\n\n```bash\n# 1. Install memex like a first-time install\ngit clone https://github.com/parallelclaw/memex-mvp\ncd memex-mvp && npm install\n\n# 2. Place the DB file\nmkdir -p ~/.memex/data\ncp /path/to/memex-backup.db ~/.memex/data/memex.db\n\n# 3. Wire MCP config with absolute path to node (see \"Connecting to Claude Code\" above)\n\n# 4. Restart Cursor / Claude Code and call memex_overview\n```\n\n**What transfers:** all conversations, FTS5 index, Telegram exports, conversation IDs. Search works immediately.\n\n**What does NOT auto-transfer:**\n- New Claude Code / Cursor sessions on the new laptop — those are new files on the new machine. Solution: run `npx memex-sync install` on the new laptop — the daemon will start catching new sessions and adding them to the same DB.\n- `project_path` in existing rows still contains **old paths** (`/Users/oldname/...`). Memex won't break, but `memex_list_projects` will show old paths. If needed — `UPDATE conversations SET project_path = REPLACE(...)` manually.\n\n---\n\n## Приватность и безопасность / Privacy & Security\n\n### По-русски\n\nОдин файл со всеми твоими AI-разговорами — звучит страшнее, чем есть.\n\n✅ **Что memex делает:** Живёт только на твоей машине, никуда не звонит, без API-ключей, без network access. OS-level права на файлы — читает только твой user.\n\n❌ **Что не делает:** Не шифрует БД, не редактирует секреты которые ты вставлял в чаты с AI, нет пароля на сам memex.\n\n📦 **Не добавляет риск — концентрирует.** Твоя AI-история **уже** на диске в plain text — Claude Code JSONL, Cursor `state.vscdb`, Cowork session files, Obsidian `.md`, Telegram local DB. Memex консолидирует их в один SQLite-файл. Те же данные, в одном месте вместо пяти. Attack surface не растёт — растёт видимость.\n\n🛡️ **Топ-рекомендация: FileVault.** На macOS: `System Settings → Privacy & Security → FileVault → Turn On`. Шифрует весь диск AES-256 на уровне OS. Без твоего пароля диск нечитаем — закрывает ~80% реалистичных угроз (украденный ноут, кража backup, malware без root). На Linux то же делает LUKS. Сделай это **прежде** чем волноваться про app-level шифрование.\n\n### In English\n\nOne file with all your AI conversations — sounds scarier than it is.\n\n✅ **What memex does:** Lives only on your machine, never phones home, no API keys, no network access. OS-level file permissions — readable only by your user.\n\n❌ **What it doesn't:** Doesn't encrypt the DB file, doesn't redact secrets you pasted into AI chats, no password on memex itself.\n\n📦 **Doesn't add risk — concentrates it.** Your AI history is **already** on disk in plain text — Claude Code JSONL, Cursor `state.vscdb`, Cowork session files, Obsidian `.md`, Telegram local DB. Memex consolidates them into one SQLite file. Same data, one place instead of five. Attack surface doesn't grow — visibility does.\n\n🛡️ **Top recommendation: FileVault.** On macOS: `System Settings → Privacy & Security → FileVault → Turn On`. Encrypts the entire disk with AES-256 at the OS level. Without your password, the disk is unreadable — closes ~80% of realistic threats (stolen laptop, stolen backup, non-root malware). On Linux: LUKS does the same. Do this **before** worrying about app-level encryption.\n\n---\n\n## Telegram export\n\n1. Telegram **Desktop** (mobile не умеет export)\n2. Чат → меню → **Export chat history**\n3. **Format:** JSON или HTML — оба работают (HTML — с v0.9+)\n4. **Path:** Daemon следит за `~/Downloads/Telegram Desktop/` и подхватывает экспорты автоматически. **Также с v0.10.12 — `memex import <путь>`** из любой папки ([см. ниже](#импорт-из-любого-пути-v01012)). Legacy-путь `~/.memex/inbox/` тоже работает.\n5. Готово. После экспорта запусти `memex telegram pending` чтобы увидеть staged-чаты для импорта. Если daemon ещё не подхватил (например, экспорт лежал до установки memex'а) — `memex telegram scan` сделает backfill.\n\n## Импорт из любого пути (v0.10.12+)\n\nЕсли файл лежит не в `~/.memex/inbox/`, а в обычном месте на диске (`~/Downloads/`, `~/Desktop/`, `~/projects/foo/`) — одна команда:\n\n```bash\nmemex import ~/projects/memex/result.json\nmemex import ~/Downloads/ChatExport_2026-05-18/         # Telegram HTML-папка\nmemex import ~/path/to/session.jsonl                    # Claude Code сессия\nmemex import ~/Downloads/result.json --force            # пропустить privacy-gate\n```\n\nТо же через AI-агента: `memex_import_file({path: \"...\"})` — один MCP tool-call. Не нужно вручную переносить файлы.\n\n---\n\n## Web-дашборд (v0.10.8+) — увидеть свою память без AI\n\nОпциональный read-only локальный UI для просмотра корпуса. Та же SQLite, другая поверхность — пригождается когда хочется просто посмотреть на свои разговоры глазами, без MCP-агента в цикле.\n\n```sh\nmemex web --open       # localhost:8765, откроет браузер\nmemex web --port 9000  # свой порт\nmemex web --public --token s3cret   # 0.0.0.0 с bearer-авторизацией (для remote / туннеля)\nmemex web --help\n```\n\nПять страниц:\n\n| Страница          | Что внутри                                                                                |\n|-------------------|-------------------------------------------------------------------------------------------|\n| `/`               | Сетка статов · sources breakdown · callout про pending Telegram · последние 10 conversations |\n| `/conversations`  | Live FTS5-поиск через htmx (200мс debounce) · фильтры-чипы по source · кол-во hit'ов на чат |\n| `/c/:id`          | **Verbatim** транскрипт chat-bubble'ами · поиск внутри чата с `<mark>` подсветкой · пагинация |\n| `/pending`        | Telegram-экспорты ждущие решения · чекбоксы bulk Import / Skip · история твоих решений    |\n| `/settings`       | Статус daemon'а · путь и размер БД · установленные хуки · TG decisions counts (read-only) |\n\n**Принципы:**\n- **Opt-in, не always-on.** `memex web` поднимает сервер; Ctrl+C гасит. Никакого фонового демона.\n- **Read-only по умолчанию.** Единственные записи — TG import / skip на `/pending` (тот же privacy-gate, что и `memex telegram import`).\n- **Localhost-only по умолчанию.** Слушает на `127.0.0.1`. Для удалённого доступа — `--public --token <…>` (на этом же endpoint в будущем поедет multi-host sync API).\n- **Без build-step'а.** Raw Node `http` + tagged template literals + htmx 14KB с CDN. Клиентский bundle ≈ 30KB.\n- **Брендирование совпадает с лендингом.** Inter + mint-палитра как на [memex.parallelclaw.ai](https://memex.parallelclaw.ai).\n\n---\n\n## Как использовать на практике / How to actually use it\n\nПолный guide с **6 типовыми use case'ами** (Telegram → action plan, cross-AI bridge, recall, project resume, patterns, deck-анализ), описанием всех MCP-tools и troubleshooting — в [HELP.md](HELP.md). Скопируй любой промпт из этого файла → вставь в свой AI-агент → попробуй сразу после установки.\n\n---\n\n## Проверь что работает\n\nВ Claude Code/Cursor/Cline напиши:\n\n```\nИспользуй memex_list_sources — что у меня в локальной памяти?\n```\n\nДолжен ответить чем-то вроде:\n\n```\nTotal messages: 15021\nSources:\n  • telegram     — 13640 messages, 3 chat(s)\n  • claude-code  — 1381 messages, 16 chat(s)\n```\n\nДальше пробуй настоящие запросы:\n\n```\nПомнишь как мы обсуждали бизнес-модели для арбитража?\nНайди мою сессию про SberBusiness структуру.\nЧто было в апреле про создание YC-презентации?\n```\n\nАгент сам вызовет `memex_search`, отдаст реальные совпадения с conversation_id и timestamps.\n\n---\n\n## MCP tools\n\n> **Все tool'ы поддерживают параметр `format: \"markdown\" | \"json\"`** (дефолт `\"markdown\"`).\n> Markdown — для глаз, JSON — для агентов: меньше токенов, можно парсить поля напрямую.\n\n> **Server-side instructions для агентов.** В MCP `initialize`-ответе сервер отдаёт ~3 КБ системного контекста: что хранится, какой tool когда выбирать, FTS5-синтаксис, известные ограничения. Любой подключающийся агент (Claude Code, Cursor, Cline, Continue) получает это автоматически — отдельную инструкцию писать не нужно. Текст в `SERVER_INSTRUCTIONS` в [server.js](server.js).\n\n### `memex_overview(recent_limit?, format?)`\nСнэпшот корпуса одним вызовом — для ориентации в начале сессии. Возвращает: общее число сообщений, breakdown по источникам (telegram / claude-code / claude-cowork), date range, и последние N разговоров с заголовками. Этот call даёт агенту mental map за ~500 токенов и резко повышает качество последующих `memex_search` запросов (т.к. агент уже знает что у пользователя в памяти есть, а чего нет). Server-side instructions явно рекомендуют вызывать его первым шагом в новой сессии.\n\n### `memex_search(query, limit?, source?, project?, chat?, conversation_id?, origin?, since_ts?, until_ts?, sort?, half_life_days?, group_by_conversation?, include_archived?, expand_match?, format?)`\nFull-text поиск через FTS5. Возвращает ranked сниппеты с `<<word>>` подсветкой.\n\n**Фильтры скоупа:** `source` (telegram/claude-code/…), `project` (по project_path), `chat` (нечёткий матч по названию), **`conversation_id` (точный поиск ВНУТРИ одной сессии)**, **`origin` (v0.14 — с какого узла захвачено: в synced-меше source'ы всех машин совпадают, origin различает)**.\n\n**Фильтр по датам (v0.12):** `since_ts` / `until_ts` (Unix-секунды, включительно) — ограничить окном: «что обсуждали про X в июне». Это настоящий фильтр, в отличие от `sort` (только порядок) и `half_life_days` (только recency-boost).\n\n**По умолчанию `group_by_conversation: true`** — возвращает один лучший хит на каждый conversation_id плюс `match_count` (сколько всего совпадений в этом чате). Это убирает шум, когда один длинный диалог занимает всю выдачу одинаковыми кусками. Передай `false` чтобы получить классический список всех совпадений.\n\nАрхивные чаты по умолчанию исключены из выдачи; передай `include_archived: true` чтобы искать везде.\n\n### `memex_recent(limit?, source?, include_archived?, format?)`\nПоследние N сообщений по timestamp.\n\n### `memex_list_conversations(limit?, source?, since_ts?, include_archived?, format?)`\nСписок чатов отсортированных по последней активности (most recent first). Каждая запись — `conversation_id`, источник, заголовок, диапазон дат и кол-во сообщений. Удобно, когда хочется быстро увидеть какие у тебя вообще разговоры с конкретным ботом или внутри одного источника, прежде чем вытаскивать полный транскрипт.\n\nАрхивные чаты скрыты по дефолту, помечены 🗄️ если включены через `include_archived: true`.\n\n### `memex_get_conversation(conversation_id, limit?, offset?, order?, include_subagents?, format?)`\nTranscript одного чата. **Пагинация (v0.12):** `offset` листает длинные сессии (0, 200, 400…), `order` задаёт порядок — `asc` (старые первыми, дефолт) или `desc` (свежие первыми). Вывод сообщает `total` — сколько всего сообщений, чтобы знать докуда листать. Для сессии на тысячи сообщений `order:\"desc\"` отдаёт хвост в один вызов (раньше был доступен только старый «нос»).\n\n### `memex_archive_conversation(conversation_id, archive?)`\nЗаархивировать (или восстановить) чат. Архивный чат остаётся в индексе и доступен для поиска через `include_archived: true`, но не засоряет дефолтную выдачу `memex_list_conversations` / `memex_search`. Передай `archive: false` чтобы расколоть.\n\n### `memex_list_sources(format?)`\nМетаданные: счётчики по источникам, последние импорты, путь к БД, число архивных чатов.\n\n---\n\n## Архитектура\n\n```\nmemex-mvp/\n├── server.js            ← MCP-server + parsers + chokidar inbox watcher\n├── ingest.js            ← optional daemon: live-tail Code/Cowork → inbox\n├── lib/parse.js         ← shared dialogue parser (used by both)\n├── package.json         ← 3 dependencies (mcp-sdk, better-sqlite3, chokidar)\n├── install.sh           ← создаёт ~/.memex/, npm install, печатает config\n└── test/parser.test.js  ← unit-тесты парсера (13 кейсов)\n\n~/.memex/\n├── inbox/               ← drop-zone, chokidar watching\n├── data/\n│   ├── memex.db         ← SQLite с FTS5 (3 таблицы: messages, messages_fts, conversations)\n│   ├── memex.log        ← server log\n│   └── conversations/   ← обработанные оригиналы (telegram/, claude-code/)\n```\n\n### Schema\n\n- `messages` — `(source, conversation_id, msg_id, role, sender, text, ts, metadata)` с UNIQUE на `(source, conversation_id, msg_id)` для дедупликации\n- `messages_fts` — FTS5 виртуальная таблица, токенизатор `unicode61 remove_diacritics` (русский + английский, case-insensitive)\n- `conversations` — агрегаты per-чат (first_ts, last_ts, message_count)\n\n---\n\n## Ограничения v0.1\n\n- 🟡 Поиск keyword-based — нет semantic similarity. «арбитраж» найдёт «арбитраж», но не «монетизация трафика»\n- 🟡 Manual import (кладёшь файл в inbox) — нет автоматического pull\n- 🟡 Single-device — нет cross-machine sync\n- 🟡 Plaintext SQLite — нет encryption-at-rest\n- 🟡 ID-based dedupe требует стабильного `id` у сообщений; memex-sync (и claude-backup feed-memex для совместимости) генерируют sha1-hash из `role|timestamp|text[:200]` для гарантии\n\nВсё лечится в следующих версиях.\n\n---\n\n## Roadmap\n\n- **v0.1** (сейчас) — Telegram + Claude Code + Claude Cowork, FTS5, dialogue-only фильтр noise'а\n- **v0.2** — Semantic search через BGE-M3 + sqlite-vec; ChatGPT export; Obsidian vault\n- **v0.3** — Cloud relay (zero-knowledge) для auto-pull с серверов\n- **v0.4** — Multi-device sync (CRDT-based)\n- **v1.0** — Personal embedding adapter, behavioral routing rules\n\n---\n\n## Companion projects\n\n- **[claude-backup](https://github.com/parallelclaw/claude-backup)** — отдельный Python-CLI для экспорта Claude Code/Cowork сессий **в Markdown** (для backup'а, чтения вне memex, sharing). **Не нужен для memex** — `npx memex-sync scan-claude` импортирует ту же историю напрямую без Python. Используй claude-backup если хочется именно Markdown-файлы как side-effect.\n\n---\n\n## Лицензия\n\nMIT — делай что хочешь.\n","readmeFilename":"README.ru.md"}