{"_id":"@misterhuydo/cairn-mcp","_rev":"76-f4d97578eb473f1b9ad3cf60211ab9f4","name":"@misterhuydo/cairn-mcp","dist-tags":{"latest":"1.41.0"},"versions":{"1.0.0":{"name":"@misterhuydo/cairn-mcp","version":"1.0.0","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.0.0","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"07896060069c6916266c95f295fc2d77db6c7313","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.0.0.tgz","fileCount":31,"integrity":"sha512-4zwKFTk/pCsZBWVNAejO1POVq25zM4DBtpZ7GDNId4cMNoWWRah197vT/QkMeE8Bc4q6+9GI4JsXqPOSBBElJg==","signatures":[{"sig":"MEUCIQCtuxYsmTeJG57V8QGkkQ7zYcvEUp1op/zppBNwlupFuAIgNX8TrMO15DGmEgeIvJ0720msqKvhvydSINFJ1Gtp+3c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52262},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"3fa22f0a7a58dd8d1f6569bda160c3ce3d8c3ea8","scripts":{"start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"Persistent polyglot knowledge graph MCP server for Claude Code. Index once, query forever — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.0.0_1771949700290_0.16076848354424356","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@misterhuydo/cairn-mcp","version":"1.0.1","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.0.1","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"e0609c1f46019674c4f87b02de6d1a24010fa93e","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.0.1.tgz","fileCount":32,"integrity":"sha512-xfenhG9NuM0IFdRh7yGR4SVFhjJRThDneySdHMKVxhEM+ax1ksrpfNjmRU9i6nL8qNHUU84NiEO92S6bAPZj9Q==","signatures":[{"sig":"MEQCIDCnSo7zuTMp5LlwCuA5D+cOIi3WcDRsyc7S5eSNjiXMAiBSepwBf/wM5ft76m+QduKVM6FyY3uaERDdOtFil/TkYA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57023},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"d12b992d3a20f30cc4d05728f31d7dfdd5b89d78","scripts":{"start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"Persistent polyglot knowledge graph MCP server for Claude Code. Index once, query forever — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.0.1_1771949817562_0.48569155271547704","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@misterhuydo/cairn-mcp","version":"1.1.0","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.1.0","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"405f493452a0a3ba9cfd734d83944adc06e51761","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.1.0.tgz","fileCount":35,"integrity":"sha512-BxGutgSojqWsb3kLRBTHN/VqPnu6E4o/nbWEthBi3ZlJFYGP0CqKboYp2my0kmrGRKxOfSV5aH62IbWENqU62Q==","signatures":[{"sig":"MEUCIFRFVo4253/btPfdXuT+KVoTJEg47w6AYhiFCR8Jdz6RAiEAjgJfeeDdynyuQhIP5Efu+eGRgbktzuNg4Z+UHYT4C5o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64865},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"94a8fe158eaafa50a195af69807eeffe418c1895","scripts":{"start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"Persistent polyglot knowledge graph MCP server for Claude Code. Index once, query forever — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.1.0_1771953431396_0.837287218970052","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@misterhuydo/cairn-mcp","version":"1.1.1","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.1.1","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"75b37d1e010286948d82a47ceb45bee3b4380ab0","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.1.1.tgz","fileCount":35,"integrity":"sha512-8yH0hL5wA0RL5TLQlK3Q3VIUiDKmCnFGUqOktUkO+Ke6yCDP6wdO2Q14j7dFG8iFpvevCYK4rlJMEygEd1s7kQ==","signatures":[{"sig":"MEUCIQC0ujsj8H9hPiSBaf3CBoQEO4WdVaYY4cj5iRAkW36JhwIgLSHM2ybA/H7PDYBE3t2gz0cAvljHXpR3DlVOTrgUlA0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65588},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"0cd2810be2f91c15ff53adcebdac23b9cdd8dee7","scripts":{"start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.1.1_1771953646713_0.502311670948753","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@misterhuydo/cairn-mcp","version":"1.1.2","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.1.2","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"73f793eb30d991561aa774eb855b17dc7e7e2c67","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.1.2.tgz","fileCount":35,"integrity":"sha512-ffm/kwJ+u7t4h0fqDzKilQx5Z+cf3jeAuW28+WaMQhlJFnym1em4HMfGuBrj24pBOOWLb1Udw0mE0l5PZ57Zlw==","signatures":[{"sig":"MEQCID415XxlPtdYUcJshx9JDkXhA3toQnrhQgiAH7flbo22AiAOL1inMNBzD8K6hnH5cjt83ukZ7fg5fXFxXYCz7KOXbg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67776},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"0ef1a180001fd5a637437c869772e85ab9196479","scripts":{"start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.1.2_1771999778314_0.1449070360166007","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@misterhuydo/cairn-mcp","version":"1.2.0","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.2.0","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"60f53213c3c98578dbdf9c66ff9b080535d16744","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.2.0.tgz","fileCount":42,"integrity":"sha512-dvWhf2940M1TofEWnncnqZz4+io6F79yMCXEGosyIPH+0oTFltVSJAjMTF7c+kNr3fJnTzSaQMHYCEWZXlxnHg==","signatures":[{"sig":"MEUCIQCX/NGrKFqiqDu1jVrOGqWugv45Vs+MVH5lwGJe9NgCfwIgSgpRbVY/ZeYODHQE0BfjT8IavrtH0APSFpUJhCRRtPc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2641102},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"39447b72f58da56e20fe37ce1889b81450265a66","scripts":{"start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.2.0_1772566055972_0.7426900182524296","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@misterhuydo/cairn-mcp","version":"1.2.1","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.2.1","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"9d18f62f55ba90ce58891d816a74e5aeb5332338","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.2.1.tgz","fileCount":37,"integrity":"sha512-J7SGAwBVD8fJHUQXXyJzdAQa33HC5UMEhfBVwg7VLKPZX4zqDUDIoeEwPF2GpmIvGF8o6lw/+LPXBntkP/xACQ==","signatures":[{"sig":"MEYCIQDGF6l5z9jY+lHfCVNG0xxSib704u4j/oA8ug+9TGXpBgIhALgZ+PyOwxtrLdojBs1lrZl30s8ZpiYPRYh/+2idVZis","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":73727},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"f35e15fd8d618b2f3fb3f9ec19afefa099ab5543","scripts":{"start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.2.1_1772566168341_0.4316724148273887","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@misterhuydo/cairn-mcp","version":"1.2.2","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.2.2","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"d3b661c761fe6555130860d3f5d96551e35f6877","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.2.2.tgz","fileCount":38,"integrity":"sha512-oKRVHTxJI113bs4L9erCJKRuFLoJD1BmZ4BYJpHw7U+MCF1Uw+WYkv+oWl/dQpbvIy04ng8HX+5S72Wmbn266A==","signatures":[{"sig":"MEQCIFapxk1WCMPutx61kowhQaMKYAh01Jbo8jgOSu8zURSmAiBi4A24IwU0agENT6Pku4XigZA/RmacHTmt/plrpKQ05A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":78028},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"311ae3679edafd51b86d00aa9d2a296dcfff2b32","scripts":{"start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.2.2_1772566720939_0.4377853580407838","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"@misterhuydo/cairn-mcp","version":"1.2.4","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.2.4","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"49897ddc66fd45af09532ae52e1bc3fa80fde1f4","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.2.4.tgz","fileCount":38,"integrity":"sha512-dWVPmKoREheu4EUwc+mwHlf/TWdeabl+FzYhowW5fBat3Gz2Mc4JPoTicD25Zfew3ox9K1ZeQG9y42WDROHswg==","signatures":[{"sig":"MEUCIQCsYXQRo6XpqxDfNE4XoyUeKxI93pIvGVRu6v3j+8UZ5wIgP9umQaxZq8U8Nc5uawDBLsp0l34sib4EqU2p31RhGS4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83346},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"52d4a7a810439354ef4119b4069141199bcbd41b","scripts":{"start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.2.4_1773677687050_0.6195480713914523","host":"s3://npm-registry-packages-npm-production"}},"1.2.5":{"name":"@misterhuydo/cairn-mcp","version":"1.2.5","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.2.5","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"ed5ce8aa3ef1a8fb206ea90d797194329d2b362e","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.2.5.tgz","fileCount":38,"integrity":"sha512-0ej1amGn3R2qPWj5EKm3AFudJOKMYeiyOtUapE1p/xkbCljAdAlOZYihvMQjfx/228++Rp5AZP1VaCJLy9tCDw==","signatures":[{"sig":"MEUCIQCRNphEc/UtcomVK4/qOv6/UQAdpopjOEe4Da6hhv0k9gIgUx6PdB5eQLxlsaARhQSp5tYyIHphkcl+nLjylBeE3Ew=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83344},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"d08dacae6791322ed4554a6e4e6a24fd819bf9d3","scripts":{"start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.2.5_1773679425659_0.042696667524262155","host":"s3://npm-registry-packages-npm-production"}},"1.2.6":{"name":"@misterhuydo/cairn-mcp","version":"1.2.6","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.2.6","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"a03ca0db15a72b4031c61aefb719920ef7c280fc","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.2.6.tgz","fileCount":38,"integrity":"sha512-+QBe2p6OBumaHwlY1AB7Vu8jyLoNh03l6FMyKL2Fks01mqBSZjxo8eRUKhxFFSDZ9uOmilq4+JZhhvLUgrrZzA==","signatures":[{"sig":"MEYCIQDsKhdYJTjicVPt7abSGSWDf3ly1DJVP5FmWM/uXY7QRwIhAJby4gBnUfTuORJKynTFsDh9F0TmBVpkmhZZ1NVekScw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85521},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"14504037127765a526849c003166939872d9da96","scripts":{"start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.2.6_1773708530889_0.015593661324019514","host":"s3://npm-registry-packages-npm-production"}},"1.2.7":{"name":"@misterhuydo/cairn-mcp","version":"1.2.7","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.2.7","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"8d46e7cbc02ed4a55b30f9d6ffe4c978f684529b","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.2.7.tgz","fileCount":39,"integrity":"sha512-UC6gzCjXJ260rT2Kejze5b/aCfLn+4c74limslKw5Bumjj5wn9hA4dRYuw3sha54+F8RsEvWHq9Hag21ieYGqg==","signatures":[{"sig":"MEUCIHPR8o/nSHlQOgyIdiWoT9To2u4iE/S0LgDbBLhp4vg1AiEAlXNqsfL5uBqzZv2pZyu57YXy8MDYBZTjjvlJYyRubM0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":91082},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"ccd51fc07efb07577f63203a364b9bdfe3a261b2","scripts":{"start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.2.7_1773741002356_0.6134779857152164","host":"s3://npm-registry-packages-npm-production"}},"1.2.8":{"name":"@misterhuydo/cairn-mcp","version":"1.2.8","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.2.8","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"e509bf57a10b5f2b2732599739b2ce00754320ad","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.2.8.tgz","fileCount":38,"integrity":"sha512-bTiTXsN90jiXm1vS8a9ah4z2ktbJfETW8gwjFyyW8DlYaZcpEVrb4yD/VEY3nWlvOQMUNz0RnVprS7vjhxiqjg==","signatures":[{"sig":"MEYCIQCMYMpqxIJiKsG6gpOaKwGp4ggP5jznN/ptfW3NpQELfgIhAMoarer3fvBSgllgTBoTFOpiCHblv3u9oIYKnjoQ3ffg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77135},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"760771df3b3efcd58cc692d465cfc11bf7ec2886","scripts":{"start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.2.8_1773742322460_0.5052286254629876","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@misterhuydo/cairn-mcp","version":"1.3.0","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.3.0","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"8e6e120373823a30fa4f0e93e109ad08ad1a3621","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.3.0.tgz","fileCount":38,"integrity":"sha512-e/Tj62/p17iZExQOM7vaiFJO+WVzPqo9db3pX5u1X7FfOZziDzl7lDyL/d7Z4REhss+cRQlPgbRp6mmaz5ZrXg==","signatures":[{"sig":"MEUCIQCOBDvNfc6ZsBTysVksz7juL3YPU9JSGWhR53dFbAnSjAIgcS1CuG2Z0dryWoH1kmwC47RaJ4ewnRKyjKnIv3M+/9k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":84810},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"321061e2b56b349a81b349d00c7405dd3da86d73","scripts":{"start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.3.0_1773905009147_0.9724101930872178","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@misterhuydo/cairn-mcp","version":"1.4.0","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.4.0","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"64606d1125a564c418e708e891cac46b8ff5390b","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.4.0.tgz","fileCount":43,"integrity":"sha512-OZ2tO1Zsl9opEimjaf2A1uIMg1o7ddaM2ZumZdStfEaEu5jTDxvmj5zYIcEz9T3p5k4DgSmJzfgI4XeeVW8dYw==","signatures":[{"sig":"MEQCIFk/eb943HFhH/r1EqWr1RCl/eQzr+nke8750+O3e5UuAiBa7zIe58GRj+MtxmiKUtz2T0+sZSdhYd5UToSpqc+y6g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":133666},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"c3c3c75665bd7a83a1bca927a31894099c0fb9ea","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.4.0_1774188238361_0.235762997387565","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@misterhuydo/cairn-mcp","version":"1.4.1","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.4.1","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"1aa411bbc600d3e4f7235504928ba4ca66d2c6aa","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.4.1.tgz","fileCount":43,"integrity":"sha512-irIN9FrsbxYzn45spfbC/zme0/h1+mCKPElNpi5YaI/9IIfqIFyw+zi9EM8k8FfPqSRguijLE7DLF/RuU6Ln4g==","signatures":[{"sig":"MEQCIF7L/dHQozmrO4FD2bjPuv/3R88ZeJAEN0YPDOoceaOrAiBuuMDotoeX1iKWgViETQ4t87NNO/KJ/zXaKHn3T5FGHw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135632},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"e1e69238030f7f4fd1d231807aa8fec134029681","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.4.1_1774188612189_0.005794658285598997","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"@misterhuydo/cairn-mcp","version":"1.4.2","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.4.2","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"cf5317b47f0f82d02424bf76eda440c3db830b6f","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.4.2.tgz","fileCount":43,"integrity":"sha512-H2Nfm7HxMzHkd1Pnq8VkzHfmdYQF/WNN7tCLXd1MFKCQkPe+1djIWYTj6mzbGnZWWlmZlW0tzVvH3ImB9dofOw==","signatures":[{"sig":"MEYCIQDYKD1IlWiJkvxYpp+PMXjNIwbIXaNXr5sp0MZcdPA9VwIhAKVV/eHxGgM8gNLKIEV4cGd9sWm4Kb8+vzhElafcKzo+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":137811},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"7de7039d944ac43a5e7dbcf2ab7f5c84d750de08","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.4.2_1774189441587_0.6493017686514035","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"@misterhuydo/cairn-mcp","version":"1.5.1","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.5.1","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"59f3321caead8b5cda0d8a2d3932bbd76d376322","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.5.1.tgz","fileCount":45,"integrity":"sha512-5ub9r9AJOWN53FCn94XiYd+Gr+ycnIQsZRIlun1lz/Nksz6u2LsOtJZLAvFCDUZ7lEQOOYotbrAXMsCc2/perQ==","signatures":[{"sig":"MEYCIQDA+C+6Z0kPs5Vgp+qA+6QSduuCAptxmq6IXV0We/2zvgIhAJTqz8Yf9u+g6Dw4J15vIjlqZXHLzSHk8ZWiV89CVfKN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":144924},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"8fa7780b356b11c09e8f5d9b063f5fce75054703","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.5.1_1774250475792_0.9354609418781212","host":"s3://npm-registry-packages-npm-production"}},"1.6.2":{"name":"@misterhuydo/cairn-mcp","version":"1.6.2","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.6.2","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"cc2fe50ff5a13db2b599b42b66b7ae3badcf869a","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.6.2.tgz","fileCount":51,"integrity":"sha512-IQeLzwX2FwQrLfqss4LYPrR0MJwfgy3Y2dphGTLOE3GqlO/JxfjQ0eNPcjXKBIDaSce9xswLVc8iip9bDmKJVQ==","signatures":[{"sig":"MEQCIC8euMnwXgFPNI3vzN1hYcRPlAnUCt473BoA6tU09l1uAiBSVpIT1CiCficqqGRMlnNXlch80AvTSQGNRPqqT8TZyg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":190641},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"7a34347a7a95eb6db6ba6486e0ec39c5354437eb","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.6.2_1774934045856_0.9531203686200274","host":"s3://npm-registry-packages-npm-production"}},"1.6.4":{"name":"@misterhuydo/cairn-mcp","version":"1.6.4","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.6.4","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"74835b4132584bb7a1e1d411389855be05976ff1","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.6.4.tgz","fileCount":51,"integrity":"sha512-kfbvgewYc6AXdiIzcTYouFaCIeYB64+KYijbEl5rDJMEbgeBL+ZjC7j6eyaSoTN2RS+Im8DHy4NvrcJsMlGwgQ==","signatures":[{"sig":"MEUCIQCQkr86Euz6ul4b0iyP5iuekVaPUZ3LCa5NaCdCH9bjLgIgOxYHn8OaGbzRQYyxmzZ8Ge6blCehrZ175+71BAp4+oU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":190838},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"2cbaae81746b5039d6d98fc6f0103862515f6e0c","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.6.4_1775113988190_0.668093501556416","host":"s3://npm-registry-packages-npm-production"}},"1.6.5":{"name":"@misterhuydo/cairn-mcp","version":"1.6.5","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.6.5","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"e240f26567e7aae2e69a266830829b3fb6c523d7","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.6.5.tgz","fileCount":52,"integrity":"sha512-BC5t3QN11ockpHvr74gh/u9JDcqSsuGu5/A9Wxk5mK1pMKnT6O96Jx9q9yi7ktiT1zH4y58fZG1AF/tMAYGxYg==","signatures":[{"sig":"MEYCIQD6aPPSaDJVLkQWubAi23/BEyG7KfIre0NWSMiDkRLW4AIhANRMHLy/InnnP26Gm9+zb0sftWXPG//Z+bYvlcNheZo0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":192772},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"ba48687efc6627e801021a228d1e51f8c29da340","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.6.5_1775116285287_0.305355964549588","host":"s3://npm-registry-packages-npm-production"}},"1.6.6":{"name":"@misterhuydo/cairn-mcp","version":"1.6.6","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.6.6","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"afa1cf495e12465181666482f74aaeffb37e75fe","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.6.6.tgz","fileCount":52,"integrity":"sha512-rqrk5LHEshitvoNiCcg6LqOXNZ3dy05d1/rla5j1hRUImOd6W1rX5q3fNor1eDk4RlvpwEvIqBN48JSMeChQ8w==","signatures":[{"sig":"MEUCIDuSn4Ppd+dwcXp/cf+NbVaX7dlLrNSDvyhzXB8/fG9eAiEAou4NNuYie/+7WZoT8zqw19/oRqw8JHV6UWUVJ3J0NCM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":193587},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"97ced448fbc47c6c6e5590824b2a4b8055a877b7","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.6.6_1775118082939_0.38672732862580816","host":"s3://npm-registry-packages-npm-production"}},"1.6.7":{"name":"@misterhuydo/cairn-mcp","version":"1.6.7","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.6.7","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"43b896f9df58b4464bdc8a49a03c39ae50660f72","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.6.7.tgz","fileCount":52,"integrity":"sha512-fwBMo80gwmwOi8q50iJIHS/rHC1Ovouv0qE15sFTRUvmKrIeX1dtEOgcqwSCdsSFBnl535M274pvvXNz5eRrOQ==","signatures":[{"sig":"MEUCIAn6PfiwSxIE0wl0IQJQ2wtbdO6vCR2k8aC1vb/PQwSwAiEAhpGJoGqBSyRhd5brvMHpgzixhqWBuVKAnUBixYtT+08=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":193603},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"04a9a1674b32b655a9318d30485a183e53e03986","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.6.7_1775118750000_0.44824508650623573","host":"s3://npm-registry-packages-npm-production"}},"1.6.8":{"name":"@misterhuydo/cairn-mcp","version":"1.6.8","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.6.8","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"0e9c97281f561d840e9c7ca4c894c63619d34f1e","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.6.8.tgz","fileCount":52,"integrity":"sha512-xi3aW7kzMFfLsin/JKSS8/ylNF6qXZUHXZ4wLs1Jupvdnfy919GN3nfN8cvmA+HSU3kYqfLM+eOl5FAYNX0iFw==","signatures":[{"sig":"MEYCIQCVKnKeu+wqbjb66XTZtCM6SnZEdgdqH+OGvx0LdEWJEwIhAMHFUNf798nANc/a9d563i6KJ4p/ANdaKAt7ricHr8A5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":195760},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"c44d50ed9d640f69e2df44cded382f362b263478","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.6.8_1775119560053_0.7073361920398065","host":"s3://npm-registry-packages-npm-production"}},"1.6.9":{"name":"@misterhuydo/cairn-mcp","version":"1.6.9","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.6.9","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"da1b30f7b638e9f113e88f30e56556c5bbc76b03","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.6.9.tgz","fileCount":53,"integrity":"sha512-xVQgHj1Umsa9Oqk5u6rkMUv/BGRVU1zAVsYpDq9qY9cPbbPg/uC1PE3ggyprW/CzHHrhbxoGpixjIjrujruA0Q==","signatures":[{"sig":"MEYCIQC7mP3niaGkRh4h8Yl4PiBU+6bgH8pY9l5DWL0LLUfa+AIhAIwuYwDYbpY+NiMo8bl+Vjax0gzXvj7j26RVR/Sp3bnD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":199532},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"114ae1cd1169dbb94b6a9ce920c8d8313e45b21e","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.6.9_1775152815294_0.8467159004764786","host":"s3://npm-registry-packages-npm-production"}},"1.6.10":{"name":"@misterhuydo/cairn-mcp","version":"1.6.10","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.6.10","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"a3c210a0daf360b68eb375b6b387ee2e5ead35f3","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.6.10.tgz","fileCount":53,"integrity":"sha512-nmnxFbDcvyAc0MUI1SSWud33xwlmCcLqRSnnUX/ssWJB7zb6DYT3ecI38UAnWcOxOlwjNYBH8/XR3dnDoMmlcQ==","signatures":[{"sig":"MEQCICp1qRTArgkhJZoCv8KvUnt1bzjR796Z1rIYt893dH56AiAYHlsZQxs6u78rjFiK9PfQJMegNDkOHiEuCGDaIHj5fQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":200058},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"3af887050b237227987046eb887a6065427d4cea","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.6.10_1775284967279_0.4903136589552044","host":"s3://npm-registry-packages-npm-production"}},"1.6.11":{"name":"@misterhuydo/cairn-mcp","version":"1.6.11","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.6.11","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"5d5a98490e2ed6defbb8627c46abd2774a4370af","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.6.11.tgz","fileCount":53,"integrity":"sha512-XRRAHISeI1ndZS7QNfhlDBrrr3uJVBAe2i5s6wQ6aB7Tubl15mSrpZ+YGyee6KJAX6ZU/l5IHYusS3tQpGoxYg==","signatures":[{"sig":"MEUCIQCgdFt706zojARIhgq0LjJKOq+2+3egtkL7Esgbgn21mgIga//QJhER+kE3okuVk5cMPWleblWX5x0DgPzKNu3nhT4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":201233},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"d48b6f535904c531b3a7f330373035bf2c8dfde8","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.6.11_1775291938340_0.261590184877345","host":"s3://npm-registry-packages-npm-production"}},"1.6.12":{"name":"@misterhuydo/cairn-mcp","version":"1.6.12","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.6.12","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"2a88235806b0cfd11e4b5b313afc3cf457bcfa85","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.6.12.tgz","fileCount":53,"integrity":"sha512-EZcF+kLvJgdW5N2O089jN4+aIzDMoybZQrPWPMH2T6coqDOb5c2NFCGGK9DliagCPKF1D2YjIWwlB+iI7Dr+Mg==","signatures":[{"sig":"MEUCIBSgKRP0WsHxirkmEef/uiEM4xLnT7cMaGQrsckz5mfPAiEApg146wt/dzCXzSjwmrOKodJw5yIRC6wTgKDpysk0+xw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":205589},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"57447735bff20f9f5a21a10a66384d5a3f52e6f9","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.6.12_1775329857870_0.45189961842351933","host":"s3://npm-registry-packages-npm-production"}},"1.6.13":{"name":"@misterhuydo/cairn-mcp","version":"1.6.13","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.6.13","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"296cf9b8e7dd1e44b64e8e299786d9970dd4a2d1","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.6.13.tgz","fileCount":53,"integrity":"sha512-ZFoGOfE3i+HQN/zYLG+cVbYc3ceorDTqOKIHQJDoYyzqzt4UG1ul5U/3P6zRY7pR4AYSHUK1gn17lubWH9m+iw==","signatures":[{"sig":"MEUCIBDG9w3kNUGEN2GQRStTTrWaZ0fDWmp/KobQQuledwL5AiEAta60lRLHwDPOROqa6+eSOWsWvWupGs6/cVUf6c8lkas=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":206576},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"0f25a5da88b7ee0b33d9b9fce692e2ed15ba7388","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.6.13_1775407439922_0.07936921080386017","host":"s3://npm-registry-packages-npm-production"}},"1.6.14":{"name":"@misterhuydo/cairn-mcp","version":"1.6.14","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.6.14","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"053c8c3e32261b0a14674a636aab36c289ff2411","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.6.14.tgz","fileCount":53,"integrity":"sha512-AGzPtTXbb/KqxwdiCEcQmJvacV5bOat+QcrscdzmjmOKOGlrVlsjMG0rkCc75y0g1XJJ/WV6uL7bXBlHHRxvpQ==","signatures":[{"sig":"MEQCIG5fr6J+4RsHCqYGsAY1lAHOU4LITB7l0bAZkOAPo/hlAiAcwOH2CGZ5WGpiVkHdq0dGnEF+4rgmsDNtQf+lC28Gcg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":206919},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"fe49fea00099df493e8ed265850fa8f62a42dcf5","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.6.14_1775455172798_0.44858802341583615","host":"s3://npm-registry-packages-npm-production"}},"1.6.15":{"name":"@misterhuydo/cairn-mcp","version":"1.6.15","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.6.15","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"6e7c892e6338c55a2f5ecff375ec76456e6dd426","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.6.15.tgz","fileCount":53,"integrity":"sha512-gRHwJsYpZNoTkQNTIhb8LRZGORqxdQVa7m7mjJhIfn9uVsZxpofo+eMGPfULaZhOXzqqfjytfspY8VScaLBE5w==","signatures":[{"sig":"MEUCIC+DsFOC05wUEKE1fV/QRkj9fAfiAUxAl8XgQlpTMcIJAiEA2VfWA/X/VW1Kaq4PyW5uGHhFq4cHHxK1MSJ9pRRdhW0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":206893},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"3de8a012fd3d2f5e5358dd82573ac0e88af75409","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.6.15_1775455763551_0.609149632565178","host":"s3://npm-registry-packages-npm-production"}},"1.6.16":{"name":"@misterhuydo/cairn-mcp","version":"1.6.16","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.6.16","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"a17dd7724642f6c735766cbad55baaf05f8e4066","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.6.16.tgz","fileCount":53,"integrity":"sha512-VH5HmlIPOpPzLZdXX4KBjOJnrE5RQSbkO+w1RiGxTyykZRdNKKXDSlg4xIiMzcT1v0uh64xJjYoi3bIIZW9i2Q==","signatures":[{"sig":"MEUCICGqaOdBrcfCNrL42WARuDRpcEXeQl3KNE4fwUdzlLWiAiEAsM1jzFcIND7T6Hz7Er8q8EeME/yj1qfnafi38m3XMi0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":206946},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"8a2ca5f8f0a99b98a4ad4a6d34d009c6c0f01c22","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.6.16_1775457375447_0.09640577662838812","host":"s3://npm-registry-packages-npm-production"}},"1.6.17":{"name":"@misterhuydo/cairn-mcp","version":"1.6.17","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.6.17","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"90f379164990b162f34a44b4840b5051cd7406ce","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.6.17.tgz","fileCount":53,"integrity":"sha512-rVHg7h4AGT8V4lrnAIBEwZ+K2FXfX2oMMFuT3f3286Phv8f1EKR1lFBFkZdnhS8ok9TanTTYRumDmFOWYGOCjA==","signatures":[{"sig":"MEUCIBdmYhtc+sdEAzshWMZ83djJGuvIUFcKx09t+RrbV3GUAiEAlSFhMGgg8MKXmBCKuFUF+m96OsmhZzg6N2JwFHhYjkk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":207574},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"864534edc3d097aeb4ed6d547271ebb5a45a8f8e","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.6.17_1775457568761_0.44940445882511426","host":"s3://npm-registry-packages-npm-production"}},"1.6.18":{"name":"@misterhuydo/cairn-mcp","version":"1.6.18","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.6.18","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"63fec2d3ce123183bdb7a22f8ccf953f5ac1ae3f","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.6.18.tgz","fileCount":53,"integrity":"sha512-cX1Mwwj3IFQRxhOmC58/j7gaP7ryp/r/xKsFf5H4aFpUFijb2F7ibXZBZbGNjvfVhlBMyVxlDsbPdweAKG9Pvw==","signatures":[{"sig":"MEYCIQCM4pCprJMSW4eYMfVR2wug9tWfKyTznNHHWE68BYbHIgIhANYwy7hz1fJ11J8lUcKaHUtNRv9b0jd9kAyTDcl0Jf8T","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":208296},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"b89b592765e00486d2486632fa1be27e8c5ecb7c","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.6.18_1775458077623_0.1145041861485685","host":"s3://npm-registry-packages-npm-production"}},"1.6.19":{"name":"@misterhuydo/cairn-mcp","version":"1.6.19","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.6.19","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"6d6c153ae5811842e8e1fca57313751ef6476f12","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.6.19.tgz","fileCount":53,"integrity":"sha512-06yYzPUGCdoxlvHZaMjVw3PApsGA70CmIkpzqGvc/OLxG5Rm9CFicnmtfR+LyBpm4uy4w0P5ijSvyu+IhxWmHQ==","signatures":[{"sig":"MEQCIB3Um1BSDcxnQFiG+qvZ0ZrLO9pzYvLVrengPRz7AP/RAiAgt8JNy1Nf9TVjFzBZwNuww8df4Ear/7mxp0H9A4+ueg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":209188},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"2ac57c363484a671b1824e0b20f138cd676c5c05","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.6.19_1775458267688_0.5364201379023901","host":"s3://npm-registry-packages-npm-production"}},"1.6.20":{"name":"@misterhuydo/cairn-mcp","version":"1.6.20","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.6.20","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"56c10ffb02da0c9d8b4b702bee9691d6e20af3cc","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.6.20.tgz","fileCount":53,"integrity":"sha512-rMVpselHb+o4QinN9QKxLFw8w/2+WAvTYMesXHwet1z9R1CkH2W+dhZ0vW9yhJb6iCSf9A8VnLl3Eek4S3wHqw==","signatures":[{"sig":"MEYCIQCyN8feeFeXm8RdqsQGLs3wtca1MiHeEgBrt0Qbu9aT1AIhANLq46FSxDq4K+DNMcaKQ0SJ7sdLAM9JQJ8Ske87x9fF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":210637},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"067ad8dffce2f32d8f484271bbecf1b0963e04cb","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.6.20_1775459226696_0.9570920057555572","host":"s3://npm-registry-packages-npm-production"}},"1.6.21":{"name":"@misterhuydo/cairn-mcp","version":"1.6.21","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.6.21","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"d611df9d51efa900e79ae40c3391b7e12ea02081","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.6.21.tgz","fileCount":53,"integrity":"sha512-itaRXgAo1oMXHoYzECfPLijWHxBjXzDn4M0Mi9gAhpxuc6PK03i3DudL/RFiwiIKPaPFlCHVDr68QijdUg0u9A==","signatures":[{"sig":"MEYCIQD0CWQzYkIx+msoMiyXHUXE030LT6iKiRneu2MOUGttaAIhAP4cmSQzzVD9oZljuGVqHlANrMzJXIo3jEEgEtjjdtU7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":211833},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"5a981028633f450c7d4f93b0647d71f4fb420ad7","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.6.21_1775462118650_0.9819969744542494","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@misterhuydo/cairn-mcp","version":"1.7.0","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.7.0","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"58469cf8fb3cb201ef11e6444ff0849f58c02a39","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.7.0.tgz","fileCount":53,"integrity":"sha512-Ods0EpkWRpbzmLCkNLgOjGodKr+uRINtKy0NlViG1vE1SDymk/SJ5Kds+yKfwtH/DqJRUtx14bYTasw+n+VFvQ==","signatures":[{"sig":"MEUCIQCbTCvpXYyHqKAfJ2aolKhfdyjSR/pEDkwHXYmcDi5nwQIgeg+FhwWTObjz3p4S/PzkcOO09aVSKSIL5GopCxsZAGk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":214561},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"c875edf96bbedc7311f4c70b7aa8c429c709b11b","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.7.0_1775500901011_0.09973978952325613","host":"s3://npm-registry-packages-npm-production"}},"1.7.1":{"name":"@misterhuydo/cairn-mcp","version":"1.7.1","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.7.1","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"d61205e7950bf6c235c0098450fb7a57eb5fc4bb","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.7.1.tgz","fileCount":53,"integrity":"sha512-gNd/BG4T8ao6P54zd/S2GMyy0jWgk5CMNE9uRz2OMcOyTDZ4o9U//MlMQryUVToqF1QVc9QGiQlHYW63mijXRg==","signatures":[{"sig":"MEQCIAZLgAPY8XewNLT1+30JaNaRGLs9dOiYHqg5OP/86HqMAiAvFoceikcl4CQoPJlKPlF8qsRFN9XKe/ijKs1uH7d/fA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":215546},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"d0299d0a1d64b5d2bfc7e174a329b48bf56c8c9d","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.7.1_1775643566862_0.6184520656306438","host":"s3://npm-registry-packages-npm-production"}},"1.7.5":{"name":"@misterhuydo/cairn-mcp","version":"1.7.5","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.7.5","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"fdea2cecc820383e018898ebf9a93833ae3e3955","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.7.5.tgz","fileCount":55,"integrity":"sha512-+FxXZIut72e5phz9+r028oiR0A3wlDGbNdkRoKj10WrLgjavCY+e+NSKQdfsD9heVx64Fazte/2To8nfJ66+Rw==","signatures":[{"sig":"MEQCIFJblUJFgPEhys2c37rhTZpKqCDd5Fw3nVp0OtOo0ukcAiAMREfiX2tLazLKHG4sz0v1LyyVlNtMG+zaIPvp7zRXzg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":228878},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"048970a872c0780e4b0e040d1443fcfd9f9bf2ad","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.7.5_1775973527077_0.6733650287059287","host":"s3://npm-registry-packages-npm-production"}},"1.8.1":{"name":"@misterhuydo/cairn-mcp","version":"1.8.1","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.8.1","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"892c6bc45ec568a7cc5700ac3f5bba9bc8b9e7cc","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.8.1.tgz","fileCount":55,"integrity":"sha512-xzIBcLzVbJhn0v+FWx2VQeZZPT9NRfO6EBOa6gNHbja0DA35pL8ADgtL4luMsOJEn2EWQzomr/nyCd56rNqzUg==","signatures":[{"sig":"MEQCIBf+wsN/FQQg32BxVro46lmS8oGidJndOCXHqCF+KIZTAiAJKZ+7KvTNWt4cuHexVV7D9gNdFVCeS33SULnjyCokkw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":232841},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"ae2ca43afd23580cdd6181b441bf21948f3741c5","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.8.1_1777279737740_0.2976872580827745","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"@misterhuydo/cairn-mcp","version":"1.9.0","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.9.0","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"ce252059d871f987ed0a100d6b2eb426c830c94e","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.9.0.tgz","fileCount":55,"integrity":"sha512-oVWOSoyn4wVhU+DrJbjf6gpJ3gOEzKMNVZvpWpCS6tHN2IiKZNkzCwb0Mp5DHvm0gQiKv6HYx5XpHNyhxAppUQ==","signatures":[{"sig":"MEYCIQDg9J1NQy2A3Cj1F7TA3IneMrsJswSyPjT7LuynuEuIJwIhAMn1n2RkaYUZQ94TmSSYdB5/XE9qwkZjZ0n4wkjF7tEn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":247519},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"bd25490df2124dbc6b2b9af2dd703e6de3abbc00","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.9.0_1777284819789_0.11950056297120915","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"@misterhuydo/cairn-mcp","version":"1.10.0","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.10.0","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"b89c37ea28b3383fcfbc78d5638a8b8f47e728b3","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.10.0.tgz","fileCount":57,"integrity":"sha512-06vG+XixRuIKarYMu9rVZ2efG6zG7jmoi5HdrGSN9RbpRdMXqImRjoUVbcgB05dR/EYkkTWy4fgaYGvTZouKkw==","signatures":[{"sig":"MEUCIGky4LfG/lTg9JeidEjsaaMW4Xz8/0dxexHeTEmFl7rkAiEAtAO2BdET0OXmspAZIDw89fQZQUtjS6Cmz6BuHtYMctU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":275404},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"04f3518dc9458ccd22d7b4f1e192b4a13e164fd1","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.10.0_1777289557918_0.7165665921151965","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"name":"@misterhuydo/cairn-mcp","version":"1.12.0","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.12.0","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"1181cf869b068c50db7b88755de29fe1f30c7b4c","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.12.0.tgz","fileCount":58,"integrity":"sha512-t1wjeUH4IXMsFkXlgh3VqCnDj02XjYc8DLu9ck9YL8LmerRjbDBVBJItZHIgZFGe26v9H2hdEc4h6lEbXsBd3g==","signatures":[{"sig":"MEUCIDjtmhRXwOJgomtmnaeeS4K6sdqKV/i6C8j89dOrOY/FAiEAgbyzlKlDwOHGbMhFt4q3scgNRViorxW3+IDjFRVmYmA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":297608},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"bc050023d27dc0e1d64a4f6c729f95a1550ae175","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.12.0_1782503998572_0.1362624313247638","host":"s3://npm-registry-packages-npm-production"}},"1.14.0":{"name":"@misterhuydo/cairn-mcp","version":"1.14.0","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.14.0","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"b11b2693e602745fdab9759de2262919b5bc7b95","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.14.0.tgz","fileCount":63,"integrity":"sha512-txkJ86RS1v19w/fzZpZedA0NbcxgHZLLp0R9bOBUfutv0BmsfrT6DtzFvfQBFZv4EyewKWn9a1rdKbWAhnpKVg==","signatures":[{"sig":"MEYCIQCIOYucTIxFoVnvaOetunEdRZ90boOwsANsGsE/ggYoWgIhAKjkvjZrY3ClxdPx63A8xdGzCcw6JrW63cOkiaxHR4lJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":356169},"main":"index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"53cc57fc9936e681a0e6e8579102545c7e9c3a33","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","start":"node --experimental-sqlite index.js"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.14.0_1782840732760_0.969276972736484","host":"s3://npm-registry-packages-npm-production"}},"1.14.1":{"name":"@misterhuydo/cairn-mcp","version":"1.14.1","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.14.1","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"1c914362b02b1501ae80eee5d122f528d820c4c1","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.14.1.tgz","fileCount":7,"integrity":"sha512-7OAhm48WEvxHHG/6V0Nov5mTEtCrb+l28nbHZYuNZcjtxxAR2t/dmRLpqHPp2A9Xlsbg2kWRxhJpqaebHa7LKg==","signatures":[{"sig":"MEQCICdtLJI/3P3A6irdSiBdrZpJzQT6uy0FO2jePki3GUmQAiBduKHr1wwPNPPJB9menMYbafe1VhQaNmGYPEFDbG4HZA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":145488},"main":"dist/index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"9e39d9b0c0819122f00cae8a442b72efc8ba1d89","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","build":"node build.js","start":"node --experimental-sqlite index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.14.1_1784558713696_0.27064490645533","host":"s3://npm-registry-packages-npm-production"}},"1.15.0":{"name":"@misterhuydo/cairn-mcp","version":"1.15.0","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.15.0","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"e25c761e24d5930e8ecb7567beaca26a6b67eba4","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.15.0.tgz","fileCount":7,"integrity":"sha512-zCP2nnhY+GMKxkoD+s3G4I3IYMMWONstvYwpB2XCqMlKtC767+kKZYgy2MYPgvgQl1H0t7v3oJXcKTKD9W8NIw==","signatures":[{"sig":"MEYCIQDbDRudfaxpxMHg3wogaScV1MZ/m9KMfld29+N/gs416gIhAIsamPnZJoBEr4XbbtFLpIUVt+674c9cqUj73rhkynd2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":153972},"main":"dist/index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"aa3efd434e807567553e85725d7d72c5f8d1a3a2","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","build":"node build.js","start":"node --experimental-sqlite index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.15.0_1785350231761_0.7464349162986514","host":"s3://npm-registry-packages-npm-production"}},"1.16.0":{"name":"@misterhuydo/cairn-mcp","version":"1.16.0","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.16.0","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"37a1e848f11478e065da04943e29df90558a66e9","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.16.0.tgz","fileCount":7,"integrity":"sha512-YNgThAzSr9GvrpSI2U/EQvpZ4WjfBdjTHC/69Ybc1RagAm05eVYaC8HBM5XgSMW5NKGTG/4qv15Q/9upgxSbKg==","signatures":[{"sig":"MEUCIFBaGxtkvEit4na3y2qNVI6PjeEHGD1LdAXf600aT8eBAiEAkGqqJcW9CBVm1GPc/4lHNoKWKUs36FtE5jSN3jQq8nY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":154352},"main":"dist/index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"eadf3f4321ea5566deee1034d224679d2dfd537b","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","build":"node build.js","start":"node --experimental-sqlite index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.16.0_1785354366463_0.3662218207508876","host":"s3://npm-registry-packages-npm-production"}},"1.17.0":{"name":"@misterhuydo/cairn-mcp","version":"1.17.0","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.17.0","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"d9393aac8626d83e0bd53ada062bdc659b15ef61","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.17.0.tgz","fileCount":7,"integrity":"sha512-OE1UNAzJ7v0T/I8HC/NF6bpdFsZN+pkWAkDyMpVyfItR6DJ/+VtOWnKpYnY1kX3MvtOE4B0YW5zATOtZCHXMOg==","signatures":[{"sig":"MEYCIQDRSxL4qi9nylF/UbqN99okJqtn86wl+NLwBEpmFj+t5AIhAI9tdlLgnPn/HPdkpdhx0YI4jSk63n1X4WxIYU6oiXYA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":160027},"main":"dist/index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"4fab9d1d50dfa823cc37ff759374a33c12b05fdc","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","build":"node build.js","start":"node --experimental-sqlite index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.17.0_1785544280279_0.38263036736219047","host":"s3://npm-registry-packages-npm-production"}},"1.18.0":{"name":"@misterhuydo/cairn-mcp","version":"1.18.0","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.18.0","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"a918225ddbdfdbe13aaea90afe17c83b61472098","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.18.0.tgz","fileCount":7,"integrity":"sha512-cji0LzInRLZpSYFabNe39WW61C+TpcT2lvw2asAMnsoQ7fc8oi2AERDVx9CvY1y6Lqu3CngMhCy+kSlLU6FKhA==","signatures":[{"sig":"MEQCIAPVCWBnetz3HIrNuBprMdAntJsmks0AAuYclIn4qbo9AiAoG4BdOl06IsC7+GLNOqAFF1BB5jfLCHllgRP0gXSsCA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":169940},"main":"dist/index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"ec0d267cef6a2189c54174ffc5b63caea0a63b36","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","build":"node build.js","start":"node --experimental-sqlite index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.18.0_1785574910861_0.16084496698669581","host":"s3://npm-registry-packages-npm-production"}},"1.19.0":{"name":"@misterhuydo/cairn-mcp","version":"1.19.0","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.19.0","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"6019f0f77ad4a270b6865ba9adee8df199e9296c","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.19.0.tgz","fileCount":7,"integrity":"sha512-KLaG6/oh1sZy0F0d7xfPvUIb8kOrdgC73WhQHjYQtPa394bAYySXcQiWM8lQr+PKIjUsqmDSJEdJ37pRmz5rgQ==","signatures":[{"sig":"MEUCIQCGHqUJvTi8WmbrZbKYbYmx6Uta9RX63i5NreMDOwjKvQIgIHtQYp8/8dqGbg9S1YG17CV7UxTnfbppY3AiQjP2eGk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":179661},"main":"dist/index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"b7b7d64920eac0c46feb9d303902084e35bc518b","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","build":"node build.js","start":"node --experimental-sqlite index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.19.0_1785940655959_0.11736901755388507","host":"s3://npm-registry-packages-npm-production"}},"1.20.0":{"name":"@misterhuydo/cairn-mcp","version":"1.20.0","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.20.0","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"ef3bd242d5049e8eb6d630457887525837e9f26f","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.20.0.tgz","fileCount":7,"integrity":"sha512-0B8v5FfGsuj4iydL/KNqBW5nW6J8jFpNkgmgmpqODQY3V9UbX8ocXlHJHMmaYQKKhXvmLok4jcwrND3I8CEM2Q==","signatures":[{"sig":"MEUCIGo2rHYEZpq9g+IMG5XbwriwXDDbwwCZf63pHAyY8O/yAiEAr2vC2qmEWM8eIll8E/khguO8xK9FFPfc8WuE7pQN9fU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":188803},"main":"dist/index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"7857cbabcacb8a588d5f415ee5aa2b45da782e77","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","build":"node build.js","start":"node --experimental-sqlite index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.20.0_1785953768206_0.1784833573636886","host":"s3://npm-registry-packages-npm-production"}},"1.21.0":{"name":"@misterhuydo/cairn-mcp","version":"1.21.0","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.21.0","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"7370d587db84b4510ee9a2dc718ec29c958e5e5d","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.21.0.tgz","fileCount":7,"integrity":"sha512-mO2iaJxj59733dE5uT6U7ghgjivBEgSH+2jbIMxBfU83UXA28R7YkzM9CyG/VwK7JsRN3A3lxeJwh/cZBYjbgg==","signatures":[{"sig":"MEUCIQCPiZ+VRImVSx3BSpR3QyoJ2z5flDpsn16b/9qnxaqH1wIgcdLnXkdt7Tv/eCxd4T+yVcTyj/k7LOQVzZLeI03Lqc4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":190262},"main":"dist/index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"79d22833bfcb7da87e202500bfcb4d0fcb7520f4","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","build":"node build.js","start":"node --experimental-sqlite index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.21.0_1785954660181_0.8732722520637304","host":"s3://npm-registry-packages-npm-production"}},"1.22.0":{"name":"@misterhuydo/cairn-mcp","version":"1.22.0","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.22.0","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"720e86d0f6dafc9c45bc7ef52f622e764d16b2b0","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.22.0.tgz","fileCount":7,"integrity":"sha512-BgRrOsJrXeiZjwIjpFGDErz8lc7aVRm2nVaQVQg9pWjhSlpmvoVFD2FUO/A89r8GmB7FmkFCCassI1bzxO6orw==","signatures":[{"sig":"MEUCICZDcFYIKJugI58OGYHOAjP7pNfvmEtBn7gWfOakybU1AiEAlSpZTL01G9xDlPlgZTl16uYB5iM1l+SuDVHbV0Owkmo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":190582},"main":"dist/index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"27a330fd0ec0da6e53aab41abf18934462543c98","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","build":"node build.js","start":"node --experimental-sqlite index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.22.0_1785955208815_0.6194830050743201","host":"s3://npm-registry-packages-npm-production"}},"1.23.0":{"name":"@misterhuydo/cairn-mcp","version":"1.23.0","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.23.0","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"1f5ca76aa49a7efecb2f7f631fd5e27014b64dcb","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.23.0.tgz","fileCount":7,"integrity":"sha512-CFnbDTv7oP9SjNjeW8O6Cp0O4Ul+IxnrwVE0Br7tf0dHaVA5ZQVL/tvSirzPb6HsoI7pHMnl3pbZvIURD4UUpQ==","signatures":[{"sig":"MEYCIQCA9A9EUDAP8769MykK36xLT4KpRjufXFUoe1QlxpQz8QIhAN0NvslMWP+hk/p/H+P6F3gT4Dg2YubVMpDjnJYOyC+r","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":193905},"main":"dist/index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"97d26d2873d412a64e4fbce9aa5ddb19f94e993a","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","build":"node build.js","start":"node --experimental-sqlite index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.23.0_1785956455478_0.5439517014439967","host":"s3://npm-registry-packages-npm-production"}},"1.24.0":{"name":"@misterhuydo/cairn-mcp","version":"1.24.0","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.24.0","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"3f49a46e457923982a348a9871d0602ec5344000","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.24.0.tgz","fileCount":7,"integrity":"sha512-cDmPR3J1aZGa0ukTi/pBkFRwbgXI/EO5FzqZHR6wbhQJVhq4ohvtRwK/QTOQlOencwgDWErxcH5yasNR2NCWcw==","signatures":[{"sig":"MEYCIQD9l/w+oyPv7SDw/d1HcTap8VxgDsRQSIEbGMCtsU7DlgIhAJTAz9z64B2PsGuq/SN5j0RG3ZjetPI6CyTZYuOsa5Sh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":201195},"main":"dist/index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"e8d6e92beec5f8222a3839845e08ed17ea1b986d","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","build":"node build.js","start":"node --experimental-sqlite index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.24.0_1785956928245_0.8608366322682088","host":"s3://npm-registry-packages-npm-production"}},"1.25.0":{"name":"@misterhuydo/cairn-mcp","version":"1.25.0","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.25.0","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"bb13d725fc67c43841954980d74005d9f3da17f5","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.25.0.tgz","fileCount":7,"integrity":"sha512-KDxH7i4KMUBBgDLpn61itHfJKQ+ZxUsoyNjchhE9v4QWLst4oiF/hBHamAGupDOZHIXCNvZ8qQIakc57RC4LJg==","signatures":[{"sig":"MEQCIEWkTKsZItkDFq4tuel8AYbzkyerinWYpNCzPhvRjlYAAiBKgz2A0Ykyzv+1siQyvocqsWBZHs2rTiLsh/KiP2USmg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":201144},"main":"dist/index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"7d9fff26a2c1401a37d779a3c72e20f4ac9fd5e2","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","build":"node build.js","start":"node --experimental-sqlite index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.25.0_1785957686133_0.10598995650884269","host":"s3://npm-registry-packages-npm-production"}},"1.26.0":{"name":"@misterhuydo/cairn-mcp","version":"1.26.0","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.26.0","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"827690a88fe88ecf969432eb4a2eee0e44e22afc","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.26.0.tgz","fileCount":7,"integrity":"sha512-u3R7Iwxgbs8WyyX4HApZXjB6HAHRDqYQeuqLkbsoMADhD4+S1CmbT4CKmfynTqw5jvZLjgtOvgc0RE4mzjJjeQ==","signatures":[{"sig":"MEUCIAxhydYtUCe/l7mjj2QJtUE0ylOz6wgzEYY7gg7vFli6AiEAnOlXlssJwt8PfBLENjUgqzrhJ+TWhPBZVEVJfllojaU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":202138},"main":"dist/index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"5a4d7e61d778b8e69a64f7482a66c2a4df5cf5e0","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","build":"node build.js","start":"node --experimental-sqlite index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.26.0_1785958045237_0.33829513310080195","host":"s3://npm-registry-packages-npm-production"}},"1.27.0":{"name":"@misterhuydo/cairn-mcp","version":"1.27.0","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.27.0","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"d3d737826c33a7ecc8586379888033c2f126eef7","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.27.0.tgz","fileCount":7,"integrity":"sha512-9rkv9t/3Ug2+afEXU4hipY9w2fSAXqyO7LAYV1DeWVTFSx4Hp4VQ21Sk7/dygyBNlbDiDJ5ud2URtP64TdmALA==","signatures":[{"sig":"MEUCIQD0FFbTurmZmwKi6ojO46oqCiovqzieu6FCjHCHlIQEZQIgOp1rVorliD2ryTAxI+xJijdnJysQj3b14e/nkgsgNL0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":202565},"main":"dist/index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"c1ec6946c72c4842e627b04429ba4a333ce0f1d6","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","build":"node build.js","start":"node --experimental-sqlite index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.27.0_1785958557198_0.25614482624444257","host":"s3://npm-registry-packages-npm-production"}},"1.28.0":{"name":"@misterhuydo/cairn-mcp","version":"1.28.0","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.28.0","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"dc7cfa1ff4a8d1dea778383ab2a7ee708bc80382","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.28.0.tgz","fileCount":7,"integrity":"sha512-T61K8/dJJ0CIWV82IQbsb2D9CIvBUR73s/V9eTlf0/AXur923lPW9eFMltOb4QUdTvO293TMPLMv5GrwbvtdEA==","signatures":[{"sig":"MEUCIQCt8wfu6mIf5FPLDj59ykR370pC5+VqtmiJEFGm+JxQ9QIgRZOvUSAxdKJTqHWA8zx1LG+Etkzdl+t8JDPNzSJiPd8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":203440},"main":"dist/index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"3e4bc73984eef107c035f24a3e8d9c24368a3ce0","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","build":"node build.js","start":"node --experimental-sqlite index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.28.0_1785960113486_0.9536508258412733","host":"s3://npm-registry-packages-npm-production"}},"1.28.1":{"name":"@misterhuydo/cairn-mcp","version":"1.28.1","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.28.1","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"d5ee15bec18f84154523fce851d61d9322dedd0c","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.28.1.tgz","fileCount":7,"integrity":"sha512-qwKGuN/1BFO7AnIfpwLnyNHA2YCU+5Ngq6P11BbotQyg0PK+gcTVr6dcrcNdHAe/zJx73OjxLVW2X7JlIsOvGw==","signatures":[{"sig":"MEUCIQDG23mSeoNEeIuF+iEte/9fagzIqLOj98XYngML/QO1LAIgM2uKTJFO9oR2yuWfy5xNc/E2p3qqeKZohoKmRQfhlIQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":203473},"main":"dist/index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"d4d8e7efcbebabc2daba5acd2518cb217bba23be","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","build":"node build.js","start":"node --experimental-sqlite index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.28.1_1785960602878_0.14388531406945848","host":"s3://npm-registry-packages-npm-production"}},"1.28.2":{"name":"@misterhuydo/cairn-mcp","version":"1.28.2","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.28.2","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"bef3e71ab7cc3424fff527c3bb82aa95f571fc59","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.28.2.tgz","fileCount":7,"integrity":"sha512-wdl81cnWbebhg5JSLuSaN4HaHjgNWuQS51icn+hCDWHmLYDf9GkdBpC8gOJ/aznTm54nbZ2ERdPwFUT27nH6WQ==","signatures":[{"sig":"MEUCIA82g58G9FwGXQTxehl6WEts7XOZ2akl3IAnoWLltBcVAiEAu0wnzGlpZg7dUssTqbNxbRaPzYl6D03JMoo/1qrsvdA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":203611},"main":"dist/index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"848f3a31f57cb3af7e4faee501791bae2403e213","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","build":"node build.js","start":"node --experimental-sqlite index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.28.2_1785961041242_0.24094794862695967","host":"s3://npm-registry-packages-npm-production"}},"1.29.0":{"name":"@misterhuydo/cairn-mcp","version":"1.29.0","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.29.0","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"89c7e9df4a793620d0360eee266c1dedd6399420","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.29.0.tgz","fileCount":7,"integrity":"sha512-xhZ+m32BVh5KRP1O8wIVpHWAhvmrcrZSUUX7ixXwdA9q9X3B/mH6ss7WtltBeSRvuECmGjrFtawAvHnO9foIUw==","signatures":[{"sig":"MEQCID8Vk85R1l4vJtn4yCKmMpRyG5Jk0wEYPjL6EvyTrgyrAiA0KkUULCiuZotqGv3r9glS9xbeIzk6tesvN8Nr4CCZ4w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":204355},"main":"dist/index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"e8dfb2e4e909731a93e1a8710cc1af68d6768da0","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","build":"node build.js","start":"node --experimental-sqlite index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.29.0_1786022816076_0.7375596150789663","host":"s3://npm-registry-packages-npm-production"}},"1.30.0":{"name":"@misterhuydo/cairn-mcp","version":"1.30.0","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.30.0","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"76200b17419dff8373b578d9eb08e3f8d28be38a","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.30.0.tgz","fileCount":7,"integrity":"sha512-bD9be8SQZ/d3YaaLd2b3Zu7942xlhDiaWrs6euIYgKkMiwLnbZ4IEcpbb2VOegARSBfwZwvbqhd4PLxrmbDYIQ==","signatures":[{"sig":"MEUCIQDweDNxhfQR3SqK0y2A5H1FgaOOYVFxIAlJzYjF4ROzRQIgcJjVGoui5lc1YkxCrbj5mArnhPU69jQ5tVKJrvYtUd8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":204658},"main":"dist/index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"056e61a1b6bcbdff37064be0ff19533379b2bac7","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","build":"node build.js","start":"node --experimental-sqlite index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.30.0_1786077792958_0.2619659769549405","host":"s3://npm-registry-packages-npm-production"}},"1.31.0":{"name":"@misterhuydo/cairn-mcp","version":"1.31.0","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.31.0","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"09bd42d9507405d37532957e6e977d7430c5e698","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.31.0.tgz","fileCount":7,"integrity":"sha512-MbLr2bHAMvEFv/tt1iPEGWDVU0IxHAzLtYUT5NcBwo7LPwFBJ+XwLuAIrfm6RwCUnqKDdmCWvGKMT2Doj3MecA==","signatures":[{"sig":"MEUCIBGZ5xY4xUhWA1+Ju7tOSHK6nUbMOAFl0DKjoOaewo32AiEAmaTy3yBzI1QyDZzmxMP2gaWviRqiMQo8m13rEKZWLYw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":209002},"main":"dist/index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"809ca07ee1cc663ad56ac637a677640b8ba92278","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","build":"node build.js","start":"node --experimental-sqlite index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.31.0_1786112709505_0.44699915216996966","host":"s3://npm-registry-packages-npm-production"}},"1.32.0":{"name":"@misterhuydo/cairn-mcp","version":"1.32.0","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.32.0","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"544cb5fc32b00e64afa0bb514f4c707be9c37ebe","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.32.0.tgz","fileCount":7,"integrity":"sha512-QTIfDvvMGsCfpvqkeJfNnqw5+jNKf0z9E9JBa56QCQi90Faz1zJvOfTcPwhefTWjnPPNhxPguasadCaCu0I5/g==","signatures":[{"sig":"MEUCIFsYY3FX0F7tPt8bWDaBbBmzfaBAjxoNR+MP+ubC/1FtAiEA3QitR82N0dPhN5NbL9NL4lkkdj276LBgbp3mWSIlxy0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":209863},"main":"dist/index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"d8c4c8e68e4fd242fd4ed8ace30ba59232bfdf4a","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","build":"node build.js","start":"node --experimental-sqlite index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.32.0_1786113274140_0.7788913804619826","host":"s3://npm-registry-packages-npm-production"}},"1.33.0":{"name":"@misterhuydo/cairn-mcp","version":"1.33.0","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.33.0","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"7d6e1f78e47e49e2f99d9d612a9fefdf698c2a2e","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.33.0.tgz","fileCount":7,"integrity":"sha512-uu9Nae+Vdp0cNeoCZPjtv/Meg9lXzRIq1WRqyU2MisflpGcSKB45ttAt7IE62F8wbB9oSsF0/Hd4AE/1TGxkZg==","signatures":[{"sig":"MEUCIEbtGq/OIGYEc7DZXfyGx3X/Ex/GzWqoRsXAksTQ8tmtAiEAzPofk5+BUWY/DukEymP6bBRcehRj0+LTPQ6hkc+MtUQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":210183},"main":"dist/index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"e1bde4431af50af6a4df7c7296176a450744e910","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","build":"node build.js","start":"node --experimental-sqlite index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.33.0_1786114977056_0.15322646861909206","host":"s3://npm-registry-packages-npm-production"}},"1.33.1":{"name":"@misterhuydo/cairn-mcp","version":"1.33.1","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.33.1","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"f75304e2e20e065a630b8118d0190a9fb4f556cb","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.33.1.tgz","fileCount":7,"integrity":"sha512-QAz4ggiFtBG19dprtRc5/NjYqYByGM5sNf2cdcpeh7FNA7fucumMWXJOnecOFASGQ7YkDEIy0M+rSYwl9RyTAg==","signatures":[{"sig":"MEUCIQDbPvSQYC42iAlb1d6EpRcFx0gJzqM6BEmEzkzzkh6GNwIgHFDcWi3pQXoV4uPiYJU9dHWBDqCsNa6dv2OViY/e0LY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":208773},"main":"dist/index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"5f08ab374735da01b637e195b4309a493d08e390","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","build":"node build.js","start":"node --experimental-sqlite index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.33.1_1786115468588_0.8146223010720055","host":"s3://npm-registry-packages-npm-production"}},"1.34.0":{"name":"@misterhuydo/cairn-mcp","version":"1.34.0","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.34.0","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"f6ded08c36a15e93da5b912a3ad6099a7d55260b","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.34.0.tgz","fileCount":7,"integrity":"sha512-GAXbiJMJP9os+kdbK7jdngL+9u6Nc7TzmzZ0rJhG3adZ9HRw0fbB4My44q648XQ2RU5PrNrxkv9ydJU4ENLPog==","signatures":[{"sig":"MEUCIF+91VZd+ULagbJ0VVEz6x1cDKk8F6f2YitIKSdEsv17AiEA6UTVPEck/Wb76LjPu/PlsSmhWufFvOa7Miqo9jKBmlY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":214679},"main":"dist/index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"a3b96545dd0f42b8677b5d67071875ba542f0671","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","build":"node build.js","start":"node --experimental-sqlite index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.34.0_1786134847637_0.2007080029600865","host":"s3://npm-registry-packages-npm-production"}},"1.36.0":{"name":"@misterhuydo/cairn-mcp","version":"1.36.0","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.36.0","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"d6c464aec8240471edbab7e1c9132352c9436d88","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.36.0.tgz","fileCount":7,"integrity":"sha512-wq7OVQI65+JMamzkhtJi3AX6AMpGRrc+Wg+ScPemx8kQKi0nWnX5G2nkCiyCrx/zCnHQmvrAdgCi41JBRVr3dw==","signatures":[{"sig":"MEUCIQDcl2E3Z4p2SCr9r+jMt4RyFTqlQXUpDGrqadwztU3vSwIgQ0h6P54ObtotmquF9F3X7Nam4prO161S/FTXhnlgio0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":222125},"main":"dist/index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"8538c4a96623ce3872ee9a8d103e13aed9815bc2","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","build":"node build.js","start":"node --experimental-sqlite index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.36.0_1786200027592_0.7459259681105825","host":"s3://npm-registry-packages-npm-production"}},"1.36.1":{"name":"@misterhuydo/cairn-mcp","version":"1.36.1","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.36.1","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"504ac31c44b82474290fd3a825c585bdd97d6eb0","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.36.1.tgz","fileCount":7,"integrity":"sha512-+YupQuk291Fu+AJh9kMx1h+eC5+XjIax58Vrpp0zkmF9ku+byh2eHq1JZxPC0GVmbpyjwlsO87vsRy9gR1lHTg==","signatures":[{"sig":"MEUCIFBOw/HzuKxKml0/wgwVA2XJ8IsEqU/nRwnQPdkpvKm8AiEA6UiOELRWUkp1AKwmgayf+9DmPfjnNwlA7/BwFD9YSiw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":224053},"main":"dist/index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"26a6d80c9e67eede9f34221e90f60859719bc5e8","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","build":"node build.js","start":"node --experimental-sqlite index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.36.1_1787922628366_0.18879989378649187","host":"s3://npm-registry-packages-npm-production"}},"1.37.0":{"name":"@misterhuydo/cairn-mcp","version":"1.37.0","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.37.0","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"ea4b30a4bb837b62fbba59711c343270b5f81bf4","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.37.0.tgz","fileCount":7,"integrity":"sha512-dB+ThlNCfpQujtCJop9cxbmofWUp7nG5U8XD4x7PpCu9X+bElCPC1RXg6uZQmM4DD1tJEwrQBRRgF4jS337ZBA==","signatures":[{"sig":"MEYCIQDwK7RGp546ez84sAH5uhvG8OQfQk8eguAGLh/XR6be6wIhAPylyx2+YITEAV/D6DazsJmNRxLR2/Ipih2bxxUbeBuQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":228318},"main":"dist/index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"bd55717b0566ffe7dc963fe09633ed12a1a26d51","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","build":"node build.js","start":"node --experimental-sqlite index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.37.0_1787924023597_0.3247000487950098","host":"s3://npm-registry-packages-npm-production"}},"1.38.0":{"name":"@misterhuydo/cairn-mcp","version":"1.38.0","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.38.0","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"763061631423ec21823b945f8f8472a533fd699f","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.38.0.tgz","fileCount":7,"integrity":"sha512-1cymem/z6x80wmHvnxV4EbUJSQGT0VVBRFUaKDIaZfDRhG53pMzqP8hWURQ7zlCYhKO9QAJBV5e4MlePFZ4slw==","signatures":[{"sig":"MEUCIHsnFZQKHmEYE2gWnbAdUfxCteSwFXrj60ImJJm7Vwh3AiEA7yNQDTzQieFfFz/j0I9z4pVqup36GLgJwIP1Ze4GkQM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":235229},"main":"dist/index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"ccd579202c93d35d7ed8fc2b6280d46cc2bf9b35","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","build":"node build.js","start":"node --experimental-sqlite index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.38.0_1787927907052_0.7812279665649635","host":"s3://npm-registry-packages-npm-production"}},"1.39.0":{"name":"@misterhuydo/cairn-mcp","version":"1.39.0","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.39.0","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"8708da094977286f43f293a13ed7dd69c9f7bf88","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.39.0.tgz","fileCount":7,"integrity":"sha512-EWcvN76YA8aW4I8y9xh2r9TR1tYilm8uw4gSFL4mnmJXUhevchabo4CzW6W3v615+mQgvHST3VqTj5iSMLwsRQ==","signatures":[{"sig":"MEUCIQDFYpoc3gccimFsKqdC64WNg1WvYFkROtq8xugOQokHNAIgeOLlseUR0NWCrQF8j3GSWySr2KoZ+LNHSWBZ3jBWZrY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":251841},"main":"dist/index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"34245e915e675646c168c9df0e4c06936a0f2089","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","build":"node build.js","start":"node --experimental-sqlite index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.39.0_1788357075014_0.07639708880385054","host":"s3://npm-registry-packages-npm-production"}},"1.40.0":{"name":"@misterhuydo/cairn-mcp","version":"1.40.0","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","_id":"@misterhuydo/cairn-mcp@1.40.0","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"bin":{"cairn":"bin/cairn.js","cairn-mcp":"bin/cairn-mcp.js"},"dist":{"shasum":"78c5df3bc9e0ac485a999266eed973aaa80b6005","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.40.0.tgz","fileCount":7,"integrity":"sha512-NhtFf+g8/CeEkRunGjES544mm/uhKE1hEZI8oHEfDiVKHdVppHxEE5G5TIBeVlOQB6nXBrrxkSJ80lyNUtKP2w==","signatures":[{"sig":"MEYCIQCMMH+GQGphb1J1xY23v5ry8aVphvilcxfM9h2V6zX6igIhAKuSsXhD+u5BENRsTx2iXanbWd9ZFqvubHtDbv82Hn4a","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":273136},"main":"dist/index.js","type":"module","engines":{"node":">=22.15.0"},"gitHead":"028ea5bf4df7cf49253f0664c0b1976e4e5a8084","scripts":{"test":"node --experimental-sqlite --test test/*.test.js","build":"node build.js","start":"node --experimental-sqlite index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"repository":{"url":"git+https://github.com/misterhuydo/Cairn.git","type":"git"},"_npmVersion":"11.5.1","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","directories":{},"_nodeVersion":"24.7.0","dependencies":{"fast-glob":"^3.3.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.1"},"_npmOperationalInternal":{"tmp":"tmp/cairn-mcp_1.40.0_1788500275387_0.0473740747707756","host":"s3://npm-registry-packages-npm-production"}},"1.41.0":{"name":"@misterhuydo/cairn-mcp","version":"1.41.0","description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","type":"module","main":"dist/index.js","bin":{"cairn-mcp":"bin/cairn-mcp.js","cairn":"bin/cairn.js"},"scripts":{"start":"node --experimental-sqlite index.js","build":"node build.js","prepublishOnly":"npm run build","test":"node --experimental-sqlite --test test/*.test.js"},"engines":{"node":">=22.15.0"},"keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/misterhuydo/Cairn.git"},"homepage":"https://github.com/misterhuydo/Cairn#readme","bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"dependencies":{"@modelcontextprotocol/sdk":"^1.0.0","fast-glob":"^3.3.0"},"devDependencies":{"esbuild":"^0.28.1"},"_id":"@misterhuydo/cairn-mcp@1.41.0","gitHead":"6b67a9e2a3f4fee2bf64f7137399fd33ee8c3ee4","_nodeVersion":"24.7.0","_npmVersion":"11.5.1","dist":{"integrity":"sha512-Xky2uN3PxPzKGM9lZ90ZJqXpb4IEAH/cEIwBA7xsOhST7752ha11xzBU1DiJsamjswkodbKaFBJR6Wc1yisrCQ==","shasum":"4d3ca35af8a8f25284bc933e0fe6929efcf39721","tarball":"https://registry.npmjs.org/@misterhuydo/cairn-mcp/-/cairn-mcp-1.41.0.tgz","fileCount":7,"unpackedSize":275267,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGz2BS+lplYDqy9/kFY2IdriWztuJ2kJj0win1+imyJQAiAD1Sfl2+HynHWNRGyRZXc0foFS7AVKaMi56b2JaHV95g=="}]},"_npmUser":{"name":"misterhuydo","email":"misterhuydo@gmail.com"},"directories":{},"maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cairn-mcp_1.41.0_1788503522009_0.7008155555319802"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-24T16:15:00.215Z","modified":"2026-09-04T06:32:02.316Z","1.0.0":"2026-02-24T16:15:00.447Z","1.0.1":"2026-02-24T16:16:57.697Z","1.1.0":"2026-02-24T17:17:11.545Z","1.1.1":"2026-02-24T17:20:46.923Z","1.1.2":"2026-02-25T06:09:38.443Z","1.2.0":"2026-03-03T19:27:36.166Z","1.2.1":"2026-03-03T19:29:28.556Z","1.2.2":"2026-03-03T19:38:41.153Z","1.2.4":"2026-03-16T16:14:47.198Z","1.2.5":"2026-03-16T16:43:45.806Z","1.2.6":"2026-03-17T00:48:51.078Z","1.2.7":"2026-03-17T09:50:02.507Z","1.2.8":"2026-03-17T10:12:02.664Z","1.3.0":"2026-03-19T07:23:29.289Z","1.4.0":"2026-03-22T14:03:58.522Z","1.4.1":"2026-03-22T14:10:12.336Z","1.4.2":"2026-03-22T14:24:01.741Z","1.5.1":"2026-03-23T07:21:15.939Z","1.6.2":"2026-03-31T05:14:05.998Z","1.6.4":"2026-04-02T07:13:08.368Z","1.6.5":"2026-04-02T07:51:25.424Z","1.6.6":"2026-04-02T08:21:23.116Z","1.6.7":"2026-04-02T08:32:30.166Z","1.6.8":"2026-04-02T08:46:00.204Z","1.6.9":"2026-04-02T18:00:15.459Z","1.6.10":"2026-04-04T06:42:47.411Z","1.6.11":"2026-04-04T08:38:58.619Z","1.6.12":"2026-04-04T19:10:58.014Z","1.6.13":"2026-04-05T16:44:00.062Z","1.6.14":"2026-04-06T05:59:32.992Z","1.6.15":"2026-04-06T06:09:23.709Z","1.6.16":"2026-04-06T06:36:15.586Z","1.6.17":"2026-04-06T06:39:28.931Z","1.6.18":"2026-04-06T06:47:57.780Z","1.6.19":"2026-04-06T06:51:07.836Z","1.6.20":"2026-04-06T07:07:06.839Z","1.6.21":"2026-04-06T07:55:18.821Z","1.7.0":"2026-04-06T18:41:41.181Z","1.7.1":"2026-04-08T10:19:27.027Z","1.7.5":"2026-04-12T05:58:47.230Z","1.8.1":"2026-04-27T08:48:57.876Z","1.9.0":"2026-04-27T10:13:39.937Z","1.10.0":"2026-04-27T11:32:38.065Z","1.12.0":"2026-06-26T19:59:58.731Z","1.14.0":"2026-06-30T17:32:12.912Z","1.14.1":"2026-07-20T14:45:13.877Z","1.15.0":"2026-07-29T18:37:11.917Z","1.16.0":"2026-07-29T19:46:06.615Z","1.17.0":"2026-08-01T00:31:20.452Z","1.18.0":"2026-08-01T09:01:51.015Z","1.19.0":"2026-08-05T14:37:36.098Z","1.20.0":"2026-08-05T18:16:08.343Z","1.21.0":"2026-08-05T18:31:00.350Z","1.22.0":"2026-08-05T18:40:08.989Z","1.23.0":"2026-08-05T19:00:55.682Z","1.24.0":"2026-08-05T19:08:48.396Z","1.25.0":"2026-08-05T19:21:26.296Z","1.26.0":"2026-08-05T19:27:25.380Z","1.27.0":"2026-08-05T19:35:57.355Z","1.28.0":"2026-08-05T20:01:53.697Z","1.28.1":"2026-08-05T20:10:03.040Z","1.28.2":"2026-08-05T20:17:21.404Z","1.29.0":"2026-08-06T13:26:56.224Z","1.30.0":"2026-08-07T04:43:13.117Z","1.31.0":"2026-08-07T14:25:09.657Z","1.32.0":"2026-08-07T14:34:34.306Z","1.33.0":"2026-08-07T15:02:57.248Z","1.33.1":"2026-08-07T15:11:08.751Z","1.34.0":"2026-08-07T20:34:07.790Z","1.36.0":"2026-08-08T14:40:27.769Z","1.36.1":"2026-08-28T13:10:28.509Z","1.37.0":"2026-08-28T13:33:43.755Z","1.38.0":"2026-08-28T14:38:27.181Z","1.39.0":"2026-09-02T13:51:15.170Z","1.40.0":"2026-09-04T05:37:55.555Z","1.41.0":"2026-09-04T06:32:02.152Z"},"bugs":{"url":"https://github.com/misterhuydo/Cairn/issues"},"license":"MIT","homepage":"https://github.com/misterhuydo/Cairn#readme","keywords":["mcp","claude","claude-code","knowledge-graph","codebase-search","polyglot","java","typescript","vue","python","sqlite","developer-tools"],"repository":{"type":"git","url":"git+https://github.com/misterhuydo/Cairn.git"},"description":"MCP server that gives Claude Code persistent memory across sessions. Index your codebase once, search symbols, bundle source, scan for vulnerabilities, and checkpoint/resume work — across Java, TypeScript, Vue, Python, SQL and more.","maintainers":[{"name":"misterhuydo","email":"misterhuydo@gmail.com"}],"readme":"# Cairn MCP\n\nPersistent polyglot knowledge graph for Claude Code. Index once, query forever.\n\nClaude is stateless — every session starts cold. Cairn fixes this by indexing your project into a local SQLite knowledge graph and wiring into Claude Code via hooks, so file compression, checkpointing, and session restore all happen automatically in the background.\n\n---\n\n## Install\n\n```bash\nnpm install -g @misterhuydo/cairn-mcp\n```\n\n**Requirements:** Node.js >= 22.15.0\n\n---\n\n## Setup\n\n```bash\ncairn install\n```\n\nThat's it. One command registers the MCP server in `~/.claude.json` and installs all hooks globally. Works on macOS, Linux, and Windows.\n\nRestart Claude Code once after running this — required for the MCP server to load.\n\n> **Project-only hooks** (no MCP registration): `cairn install-hooks` or `cairn install-hooks --global`\n\n---\n\n## Upgrade\n\n```bash\nnpm install -g @misterhuydo/cairn-mcp@latest\ncairn install\n```\n\nUpdating the package replaces only the binary. Re-run `cairn install` to re-sync the\nhook set — a release that adds new hooks (e.g. the roadmap-capture hooks) won't wire\nthem otherwise. It's idempotent and additive, so your MCP config and any existing\nhooks are preserved. Restart Claude Code once afterward so the new hooks and MCP\nserver load.\n\n---\n\n## What the hooks do\n\n| Hook | Trigger | Effect |\n|---|---|---|\n| `PreToolUse[Read]` | Every file read | Source files compressed ~68% before Claude sees them; large files show structural outline with **line numbers** to save tokens |\n| `PreToolUse[Edit]` | Every file edit | Blocks Edit if Claude only saw compressed content — requires a full re-read first. Reported as a permission decision with a one-line reason, **not** as a red hook error: being sent back to re-read a file is a normal step, and the full source rides along out of sight so it does not fill the screen |\n| `PostToolUse[ExitPlanMode]` | A plan is approved | The plan is parsed into `### Phase N` entries in `.cairn/roadmap.md`, synced, and the cursor activated |\n| `PostToolUse[TodoWrite]` | The todo list changes | Todos mirror onto the roadmap as sub-tasks under the current phase (or seed root phases if none exist) |\n| `Stop` | End of every response | Session auto-saved to `.cairn/session.json`, Claude auto-memory backed up to `.cairn/memory/`, the roadmap re-surfaced, any git-detected completed phases surfaced for you to confirm, and — once the session is genuinely large — a prompt asking whether you want to `/clear` or `/compact`, with a recommendation and the reason. All in one line |\n| `SessionStart[clear]`<br>`SessionStart[compact]` | Right after you `/clear` or `/compact` | The checkpoint is re-injected into the fresh session automatically, so it opens already knowing the open thread and what the last session would have lost. You do not have to type \"resume\" |\n| `UserPromptSubmit` | First message of a new session | Fresh project: Claude prompted to run `cairn_maintain`. Returning session: Claude prompted to run `cairn_resume`. Memory restored from `.cairn/memory/` if the Claude store is empty (new machine / fresh clone) |\n\n---\n\n## First use\n\nJust open Claude Code from your project root and start working. The `UserPromptSubmit` hook handles everything:\n\n- **Fresh project** — hook tells Claude to run `cairn_maintain`, index is built automatically\n- **Returning session** — hook tells Claude to run `cairn_resume`, prior context is restored\n\nNo manual steps. The index lives in `.cairn/index.db` inside your project — like a `.git` folder, just `cd` to the root and everything works.\n\n---\n\n## Tools\n\n| Tool | What it does |\n|---|---|\n| `cairn_maintain` | Full index of the current project. Suggests adding `.cairn/` to `.gitignore` if not already present |\n| `cairn_resume` | Restore last session + re-index only changed files |\n| `cairn_search` | Find classes, functions, components by name or concept — results include file path and **line number** |\n| `cairn_describe` | Summarize what a folder or module does |\n| `cairn_outline` | Structural outline with **line numbers** per symbol + heuristic issue detection. On large federated projects returns a per-service summary; use `repo` param to drill into one service |\n| `cairn_code_graph` | Dependency health — instability, cycles, load-bearing modules |\n| `cairn_security` | Scan for XSS, SQLi, hardcoded secrets, weak crypto, and more |\n| `cairn_todos` | Scan codebase for TODO/FIXME/HACK comments, add manual items, resolve and list them |\n| `cairn_roadmap` | The active project plan: phases authored in `.cairn/roadmap.md`, with a cursor, dependencies, and auto-pruning of shipped phases into `.cairn/roadmap_completed.md` |\n| `cairn_bundle` | Minified source snapshot (auto-handled by hooks) |\n| `cairn_checkpoint` | Save session state (auto-handled by hooks). At a stopping point, answer `would_be_lost` — the one part that git and the index cannot recover. Also takes `context_window`, the one thing cairn cannot measure for itself |\n| `cairn_minify` | Minify a single file on demand (fallback when hooks are not installed) |\n| `cairn_switch` | Switch active project root mid-session (use for maintenance on a sibling service) |\n| `cairn_memo` | Save a preference, decision, or discovery to the project's persistent memory. `action: \"reindex\"` repairs an index that has lost entries (see below) |\n| `cairn_employ_memory` | Recall stored memories explicitly (call only when asked) |\n\n---\n\n## Repairing a truncated memory index\n\n`MEMORY.md` is **shared**. Claude Code's own auto-memory writes plain pointer lines\nwith no type tag, and cairn writes tagged ones. Before **v1.23.0**, cairn required\nthe tag and rebuilt the whole index from the lines it could parse — so every\nClaude-written pointer was deleted the next time a memo was saved. Seen in the\nwild: an index of ~150 entries rewritten down to 3.\n\nOnly the pointers were lost. The memory files themselves were never touched, so the\nindex can be rebuilt from their frontmatter:\n\n```bash\ncd /path/to/project\ncairn repair-memory --dry-run   # what would be restored, writes nothing\ncairn repair-memory             # restore them\n```\n\nIt is **additive**: it only adds pointers for files the index has lost, and never\nrewrites or removes a line that is already there. Entries restored from a\nClaude-written memory keep Claude's format (no type tag is invented for them). The\nprevious index is kept as `MEMORY.bak` — deliberately not a `.md`, since every\n`.md` in that directory is treated as a memory. A pointer whose file is missing is\nreported but left alone. Running it twice does nothing the second time.\n\nThe same repair is available in-session as `cairn_memo` with\n`action: \"reindex\"` (and `dry_run: true` to preview).\n\n---\n\n## Multi-service / monorepo support\n\nCairn understands workspace structures where multiple services or packages live under a common parent folder.\n\n**How it works:**\n\n- Each service has its own `.cairn/index.db` — it is the authoritative index for that service\n- When `cairn_maintain` runs at the **parent** folder, it skips files already covered by a sub-project and instead federates all sub-indexes via SQLite `ATTACH` — no duplication\n- When a session opens **inside a subfolder** (e.g. `elprint-component-service/`), Cairn automatically discovers and mounts siblings:\n  1. If the parent folder has a `.cairn/index.db` (already initialized) → uses its registry\n  2. Otherwise → scans the parent directory for any sibling folders that already have a `.cairn/index.db`\n\nThe result: every service session has full cross-service visibility for search, outline, and bundle — no manual setup required.\n\n**Drilling into a service from a federated session:**\n\n```\ncairn_outline { repo: \"elprint-component-service\" }   → outline one service\ncairn_search  { query: \"PartRepository\" }             → searches all services\n```\n\n**When you need to re-index a sibling service:**\n\n```\ncairn_switch  { path: \"/path/to/elprint-project-service\" }\ncairn_maintain\ncairn_switch  { path: \"/path/to/elprint-component-service\" }\n```\n\n`cairn_switch` is the explicit escape hatch for maintenance — it changes the active project root so `cairn_maintain` and `cairn_checkpoint` target the right service.\n\n---\n\n## TODO tracking\n\n`cairn_todos` scans every file Cairn indexes for `TODO`, `FIXME`, `HACK`, `XXX`, and `NOTE` comments and stores them in the project database. Manual items you add yourself are never overwritten by a scan.\n\n```\ncairn_todos { action: \"list\" }                          → all todos (open + done)\ncairn_todos { action: \"list\", status: \"open\" }          → open only\ncairn_todos { action: \"list\", source: \"manual\" }        → items you added yourself\ncairn_todos { action: \"add\", text: \"...\", kind: \"FIXME\" } → add a manual item\ncairn_todos { action: \"resolve\", id: 42 }               → mark done\ncairn_todos { action: \"scan\" }                          → re-scan without full maintain\n```\n\nStats are included automatically in `cairn_maintain` (`todos_found`) and `cairn_resume` (`open_todos`), so you always know the backlog at a glance.\n\n---\n\n## Roadmap\n\nTODOs are a long-tail backlog; the **roadmap** is the active plan. It's a first-class\ndocument at `.cairn/roadmap.md` (not a memory) — a `## Phases` section of\n`### Phase N: title` blocks, plus whatever overview prose you like:\n\n```markdown\n## Phases\n\n### Phase 1: Decouple roadmap from memory\nMove phases out of decision memos into this file.\n\n### Phase 2: Completed log\nPrune shipped phases, append them to roadmap_completed.md.\n```\n\n`cairn_roadmap` reads that file and tracks it:\n\n```\ncairn_roadmap { action: \"tree\" }                  → render the plan (auto-syncs roadmap.md)\ncairn_roadmap { action: \"next\" }                  → advance the cursor to the next actionable phase\ncairn_roadmap { action: \"focus\", id: 3 }          → make phase 3 the current focus\ncairn_roadmap { action: \"set_status\", id: 3, status: \"done\" }  → ship it\ncairn_roadmap { action: \"add\", parent: 3, text: \"...\" }        → ad-hoc sub-task under a phase\ncairn_roadmap { action: \"deps_add\", from: 2, to: 4 }           → phase 2 blocks phase 4\ncairn_roadmap { action: \"reorder\", order: \"1 -> 8 -> 9 -> 5\" } → state the priority order\ncairn_roadmap { action: \"reorder\", move: 8, before: 5 }        → \"do phase 8 before phase 5\"\ncairn_roadmap { action: \"reorder\", decline: true }             → \"no stated order, deliberately\" — and stop asking\ncairn_roadmap { action: \"set_status\", id: 3, status: \"deferred\" } → park it: still in the plan, out of the live set\ncairn_roadmap { action: \"deferrable\" }           → propose which phases look parked, from the markers already in their titles\ncairn_roadmap { action: \"publish\" }              → (re)write the human-readable ROADMAP.md at the repo root\n```\n\nThe live plan is also projected into a **`ROADMAP.md` at the repo root**, published in\nthe **`roadmap/1`** slot format so any cockpit or tool can read it without writing a\nparser per provider. One file carries both halves — two files drift, and the drift is\ninvisible:\n\n- **A markdown half for readers:** checkboxes, per-item status, a progress bar, one\n  plain sentence per phase, and a `← current` marker on the cursor phase. Written for\n  somebody who has never heard of cairn and is reading the file on GitHub: they should\n  be able to say what the project is working on and what is next. That means no\n  authoring syntax survives into the prose — `[[wikilinks]]` are unwrapped or dropped\n  (they are filenames a reader cannot open) and nothing points at `.cairn/`, which is\n  gitignored and therefore not there for them. `.cairn/roadmap.md` remains the\n  authoring source and stays as detailed as you like; this half is the summary.\n- **One `roadmap-json` block for consumers**, collapsed inside a `<details>` at the end\n  of the file so a reader never scrolls through it, and never removed — a cockpit's\n  per-phase view is rendered from it, and without it that view degrades silently to\n  flat markdown. Collapsing costs nothing: the fence keeps blank lines around it, so it\n  stays a valid CommonMark code block and both line-anchored and AST consumers still\n  find it. It carries stable\n  phase `id`s, `ref` (the name that actually identifies a phase — see below), `number`,\n  `label`, `group`, `title`, `status`, `goal`, `blocked_by`, `slices`, the full\n  per-phase `detail` (the body you wrote in `.cairn/roadmap.md`, verbatim and in full —\n  thinning the prose never thins this), and `links` — the `[[wikilinks]]` in that body\n  resolved to the memory files behind each phase, so the reasoning is one tap away\n  instead of \"go and find it\". A link that cannot be resolved is dropped rather than\n  emitted dead.\n\nThe two halves answer different questions and deliberately disagree. The reader half\nhides shipped and abandoned work so what is *next* leads. The JSON half publishes the\nplan **complete** — `done` and `stale` phases stay in `phases` with their real status,\nbecause a consumer that cannot see finished work will confidently render an incomplete\nplan. A shipped phase also carries `shipped` (the date) and `commit` (short HEAD when it\nwas marked done), which is what turns \"this was done\" into something you can point an\nagent at when you are tracing a bug back to where it came from.\n\n**`shipped_phases` is the shipping log** — every phase ever marked done, newest first,\nread from the same `.cairn/roadmap_completed.md` the reader half's *Recently shipped*\nsection is generated from, so the two halves of one file cannot disagree about the same\nfact. (They used to: two real projects published `shipped_phases: []` beside a markdown\nlist of six and eight shipped phases, and a consumer taking the JSON at its word saw two\nprojects that had shipped nothing.) The markdown shows the most recent few; this carries\nall of them. Entries are identity and provenance only — `id`, `ref`, `number`, `title`,\n`shipped`, `commit`, never `detail` — so a long-lived repo's history cannot bloat the\nfile. A phase still in the current plan appears in **both** `phases[]` and here: they are\ntwo indexes of one plan, the tree and the chronology, joined by `id`. Entries logged\nbefore the log carried ids publish no `id` and no `ref` rather than a guessed one. The\nkey is always present; its absence means the file predates this.\n\nThree rules the format leaves implicit, each of which has cost a consumer real time:\n\n- **The `roadmap-json` block is terminated by a fence at the start of a line.** Match it\n  that way, not with a naive non-greedy `` ``` ``. This is safe by construction: a\n  newline inside a JSON string is escaped, so an embedded fence can never begin a line\n  and only the real terminator can.\n- **`detail` may itself contain fenced code**, which is exactly why the rule above\n  matters. A consumer that ends the block at the first `` ``` `` it meets can end it\n  *inside* a JSON string and spill ~125KB of machine data onto the page as prose.\n- **`cursor` may name a slice, not a top-level phase.** It is the exact focus. To mark\n  one phase current, use `cursor_phase`, which is always the top-level ancestor and\n  always resolves in `phases`; `cursor_path` is the root-to-focus chain for breadcrumbs.\n  All three are `null` when nothing is active, so \"nothing is in progress\" is never\n  ambiguous with a broken pointer. A `cursor` you cannot find in `phases[]` is normal\n  and not a dangling pointer — look in `slices[]`, or just follow `cursor_path`.\n- **`number` does not identify a phase; `ref` does.** `number` is the phase number\n  authored in the plan, and it is unique only *within a decision group* — one real plan\n  publishes `number: 1` on forty separate rows. Print or say **`ref`**, which is always\n  present and unique in the document: the project's own name for the phase (`TC-4`)\n  where the titles carry one, otherwise a bare number where that identifies, otherwise\n  a group-qualified one (`roadmap-3`), otherwise the row id. `ref` is a *name* and can\n  lengthen when phases are added elsewhere; `id` stays the stable machine key.\n\n### The priority order\n\n`## Phases` in `.cairn/roadmap.md` says what the phases are. It does not say what order\nto work them in, and **renumbering to express that is destructive** — the file-to-DB\nsync matches rows by phase number, so moving \"Phase 8\" to \"Phase 2\" reads as \"phase 2's\ntext changed\" and rewires which row is which.\n\nSo the order is its own statement. Author it as an `## Order` section, in the numbers\nthe phase headers already use:\n\n```markdown\n## Order\n\n1 -> 8 -> 9 -> 5\n```\n\nor let a working session set it — `cairn_roadmap reorder` takes either the whole list or\na single relative move, so \"do phase 8 before phase 5\" mid-session lands in the file and\nin the next publish. A relative move splices against the *effective* order (what was\nstated, then the rest in plan order), so phases the stated list omits keep their place\ninstead of being silently demoted.\n\nIt publishes as a **`priority` integer on each phase** — `1` first, contiguous `1..N`,\n**absent where unset**. A partial list is fine; anything it omits follows in plan order.\n\nA list is the right way to *say* an order and a number is the right way to *publish* one,\nwhich is why the two halves differ. Three things follow from putting the number on the\nphase:\n\n- **It cannot go stale.** An array beside the plan keeps pointing at work that shipped,\n  got parked or left it. A number on the phase leaves *with* the phase — there is nothing\n  to dangle, which is why `order_advice` has no `stale` state.\n- **cairn owns compaction.** Priority is *sequence*, not identity: nothing resolves\n  against it, so cairn renumbers it freely and there are never gaps, decimals or ties.\n  (Renumbering a phase **number** is forbidden for exactly the opposite reason — the\n  file-to-DB sync matches rows by it.)\n- **Optional is what keeps it honest.** One real plan has 70 live phases and nobody has\n  ranked any of them; presenting file order as priority would assert a considered ranking\n  that does not exist. Both halves say how many are actually prioritised.\n\n`priority` and `number` are never the same field, and the trap is real: stating an order\ntoday can need `[11, 12, 5, 16]`, where `5` is TC-3 because TC-3 is *phase number* 5. A\npriority of `3` meaning \"third\" and a phase number of `5` meaning \"TC-3\" must not share a\nkey. Slices carry no priority — a consumer does not sort slices across phases.\n\nThe top-level **`order`** array and **`order_source: \"authored\"`** are still published\nalongside, naming the same sequence, so a consumer can switch its sort before the array\nis removed in a later release.\n\nTwo rules hold it honest:\n\n- **It never contradicts `blocked_by`.** If A is blocked by B, B comes first. An order\n  that disagrees is *repaired* rather than refused (publishing is a background side\n  effect and must not fail) — an unmentioned blocker is pulled in, a late one is pulled\n  forward, and everything the deps do not implicate keeps its stated position. The\n  repair is reported in the `reorder` result, never applied silently.\n- **cairn never publishes an order it worked out itself.** When nothing is stated *no\n  phase carries a `priority`*, so a consumer is free to derive one and label it as\n  derived. A guessed sequence and a stated one are different claims and must not look\n  alike.\n\n`next` follows the stated order too. A plan that publishes a priority the tool then\nadvances past is publishing a decoration.\n\n### Deferred: work that is parked, not in progress\n\nA phase is `deferred` when it is **finished, with a tail somebody deliberately parked**.\nNot `open` — nobody is picking it up. Not `done` — the work is real and the plan should\nstill show it.\n\nWithout that status, one slice titled `S5 Billing (paid gate)` keeps its whole phase in\nthe live set forever, and anything that ranks live phases ranks parked work above\ngenuinely open work. Measured on a real plan: four of eleven live phases were live\n*solely* because of one slice whose own title said `(later)` or `(paid gate)`, and the\nphase with two genuinely open slices and nothing blocking it sorted **eighth**.\n\nA phase is deferred either because you said so:\n\n```\ncairn_roadmap { action: \"set_status\", id: 3, status: \"deferred\" }\n```\n\nor because **every slice it has left is** — that half is *derived*, not stored, on every\nread, from the same rows everything else already loads. Storing it would mean\nre-deriving on each path that can change a slice, and one missed path leaves a phase\npermanently mis-parked. The rule is exact: a phase with at least one deferred slice and\nno slice still open, in progress or blocked is deferred; a phase whose slices are *all*\ndone keeps the status it was given, because whether it is finished is a judgement about\nwork outside its slices and cairn does not make it for you.\n\nWhat parking does, and does not do:\n\n- It **leaves the live set**: out of `next`, out of the published order, out of the\n  `M/N done` denominator (with the exclusion stated on the line, never quiet), and\n  published as `status: \"deferred\"`.\n- It **stays in the plan**: shown in the tree as `[>]`, published in `phases[]`, *not*\n  pruned from `roadmap.md` and *not* logged to `roadmap_completed.md`. Parked is not\n  shipped. `set_status <id> open` picks it back up.\n- The `## Order` section **still remembers it**, even though it drops out of the\n  published `order` — unparking should not cost you your place in the queue.\n- A blocker that is parked still blocks: `next` refuses to advance past it and says\n  which phase did it. What changes is that the order stops dragging parked work forward.\n\nPlans said this in prose long before there was a status for it. `deferrable` reads those\nmarkers back:\n\n```\ncairn_roadmap { action: \"deferrable\" }\n```\n\nIt proposes — it never writes. Candidates are titles carrying a parenthetical park\nmarker (`(later)`, `(paid gate)`, `(design-later)`, `(on hold)`, …), gated on the\nparenthetical rather than the bare word, because \"do this later\" appears in half the\nphase titles ever written. Each candidate comes with the consequence that makes it worth\nconfirming: which phases would leave the live set, and whether that is because of the\nmarker itself or because of what would be left under them. You confirm the ones you\nmean, one `set_status` each.\n\n### Being asked for the order\n\ncairn shipped `order` and `reorder` — documented, with relative moves and cycle repair —\nand two days later `order` was still unset in every project that had one. Not because\nanyone disliked it: because nothing ever mentioned it. **A capability nobody is prompted\nto use is indistinguishable, from the outside, from one that does not exist.**\n\nSo plan-*changing* actions — a `sync` that inserted or retired phases, `set_status` to\n`done` or `deferred`, and `reorder` itself — may carry an advisory field:\n\n```json\n\"order_advice\": {\n  \"state\": \"never_set\",\n  \"live_phases\": 11,\n  \"unordered\": [\"phase-25\", \"phase-60\", \"phase-101\"],\n  \"why\": \"11 live phases and no stated order, so `next` follows plan number order — the sequence they were written in, which is not a priority; 3 of them are waiting on another phase\",\n  \"ask\": true\n}\n```\n\nFour things about it are deliberate:\n\n- **It never fires on `tree`, `status` or `next`.** The end-of-turn hook calls those\n  after every assistant turn, and a nudge there is noise on a loop — which is precisely\n  how a cursor sat on a finished phase for weeks, on screen the whole time, in a line\n  everybody had stopped reading.\n- **It is advisory.** Never a refusal, never a blocked action, and cairn never writes an\n  order itself. cairn is an MCP server and cannot ask a question; the agent can, and it\n  has the code in front of it, so it brings you a recommendation with reasons rather\n  than a bare \"what order?\". An order the agent invented would be published as\n  `order_source: \"authored\"` and shown to you as your own decision.\n- **`why` is generated from the plan, and it is the point.** \"No order is set\" produces a\n  vague question and a vague answer.\n- **It can go quiet.** \"No order has been set\" and \"we decided not to have one\" are\n  different facts. `cairn_roadmap reorder decline: true` records the second in the\n  `## Order` section, in a line you can read and delete, and `ask` goes false. It is not\n  a lock: any later `reorder` replaces it with no ceremony. The decline records the\n  phases live at the time, so a phase *added* later revives the question — and even then\n  the advisory says the decline stands and asks only where the newcomer goes.\n\nA stated order is never reported as needing attention. There is nothing to report:\npublishing the order as a `priority` on each phase means it leaves with the phase, so it\ncannot point at work that shipped or got parked. Phases it simply does not mention are\nreported in `unordered` and nothing more — *\"phase 8 first, sort the rest out when we get\nthere\"* is a complete answer, and an advisory that treats a partial order as unfinished\nmakes stating one a chore nobody completes.\n\n`cursor_advice` is the same shape for the other thing nothing ever said out loud — a\ncursor left on finished (`on_done_phase`), parked (`on_parked_phase`) or removed\n(`dangling`) work, or unset while live phases remain. The cursor is cairn's own state,\nso no consumer can warn about it on cairn's behalf.\n\nBoth ride on the **tool result**, not in the published `ROADMAP.md`. A file is read\ncontinuously by panels and dashboards; an advisory in it would be a permanent nag on a\nscreen that cannot act on it. It goes to the one reader who can put the question to a\nperson.\n\nThe first line is the marker that says who generated the file and when\n(`<!-- slot:roadmap format=roadmap/1 provider=cairn generated=… -->`). cairn declares\nthe slot in its MCP entry in `~/.claude.json`, so a cockpit does not have to guess.\n\nIt refreshes automatically on session activity (the end-of-turn hook and the first\nprompt of a session) as well as on every `cairn_roadmap` call, so a workspace that has a\nroadmap but hasn't touched the roadmap tool this session still shows a populated file.\nPhase `id`s are stable across regenerations (they key off the database row, so renaming\na phase never changes its id), unknown JSON fields survive a rewrite, an unchanged plan\nre-writes byte-identically (the `generated` stamp is only refreshed when something\nactually changed, so diffs stay clean), nothing is ever written as an empty placeholder,\nand writes are atomic (temp file + rename) so a reader never catches a half-written plan.\n\nAn existing `ROADMAP.md` is never destroyed. If the file is there but carries no\nprovider marker (hand-written, or from a tool that doesn't stamp its output), cairn\n**adopts** it: the original is renamed to `ROADMAP.bak.md` (or `ROADMAP.bak.2.md`, `.3`,\n… — an existing backup is never overwritten), the data block records `migrated_from`\nand `migrated`, and the result reports `backed_up_to`. If the file is stamped by a\n*different* provider, that's a conflict over who owns the path: cairn leaves it\ncompletely alone. Any publish that declines returns a `warning` that the caller surfaces\nto you, so a stale plan can't rot in place unnoticed.\n\nEditing `roadmap.md` *is* editing the plan — read actions re-seed from it, and the\nend-of-turn hook folds in any hand-edits. Marking a phase **done** prunes it from\n`roadmap.md` and appends it to the append-only `.cairn/roadmap_completed.md`, so the\nfile always shows only what's next. The shipped phase stays in the database (counted\nin the `M/N done` rollup, recoverable) but is hidden from the tree.\n\nIf a project still has its roadmap in the old `decision_production_roadmap.md` memo,\nthe first roadmap read migrates it automatically: the content moves to\n`.cairn/roadmap.md` and the memo (plus its index entry) is removed from the memory\nstore. Content is preserved verbatim; the migration is one-time and idempotent.\n\n### Automatic capture\n\nYou don't have to register phases by hand. Two `PostToolUse` hooks fold work into\nthe roadmap mechanically:\n\n- **Approve a plan** (Claude's plan mode → `ExitPlanMode`) and its steps are parsed\n  into `### Phase N` entries in `roadmap.md`. Headings become phases; failing that, a\n  top-level numbered list; failing that, the whole plan becomes one phase. Duplicate\n  titles are skipped, and the cursor activates so the roadmap surfaces immediately.\n- **Write a todo list** (`TodoWrite`) and the items mirror onto the roadmap — as\n  ad-hoc sub-tasks under the current phase, or as seed root phases when no roadmap\n  exists yet. A sub-task that's already `done` is never downgraded.\n\nCompletion is **proposed, never auto-applied**. The end-of-turn hook inspects new git\ncommits; when a commit references a phase (explicit `phase N`, or a strong overlap\nwith the phase title) the candidate is surfaced for you to confirm — Claude asks\nbefore calling `set_status … done`, so a stray keyword can't silently prune your plan.\n\n---\n\n## Stopping points: what clearing would cost\n\nBefore `/clear` or `/compact`, the question that actually matters is not *how full\nis the window*. Fullness tells you **when**; it never tells you **which**. What\ndecides it is whether the saved state is sufficient — \"the slice is three-quarters\nbuilt and the fact that long-press selection has never run on a real handset is\nwritten down nowhere\" is a judgement about the handoff, not about a percentage.\n\nCairn cannot make that judgement for you. It cannot audit for absence: the gap\nworth reporting is by definition the thing nobody wrote down, and a lazy\ncheckpoint looks exactly like a thorough one from the outside. A tool that\ncomputed this would print \"nothing outstanding\" on precisely the sessions where\nthe most was outstanding. So cairn does the part it can do honestly — it **demands\nthe judgement on the way in and carries it across the gap**:\n\n1. **`cairn_checkpoint` asks.** A `would_be_lost` field whose description is the\n   literal question: what would a fresh session not know? Unverified work, a\n   thread you are mid-way through, a decision whose reason never made it into the\n   commit message. A checkpoint that skips it says so in its result rather than\n   passing silently.\n2. **`cairn_resume` carries it back**, near the top of the payload and first in\n   the summary, because everything else resume returns is recoverable from git and\n   the index and this is the only part that is not. It also lands on the first\n   prompt of the next session, since a session picked up after `/clear` rarely\n   opens with the word \"resume\".\n3. **It ages.** The end-of-turn hook checkpoints every turn, so `session.json`\n   always *looks* fresh while its contents may be hours and several slices stale.\n   The handoff is stamped only when it is actually written, never by the\n   heartbeat that copies it forward, and anything written before commits that\n   have since landed is reported as possibly stale.\n4. **Then, and only then, it asks.** When the session crosses the threshold **and**\n   something is actually at risk, the Stop hook asks you to choose, with a\n   recommendation and the reason:\n\n   > **Checkpoint + /clear (Recommended)** — I write the handoff now, then you type `/clear`\n   > **Checkpoint + /compact** — I write the handoff now, then you type `/compact`\n   > **Keep going** — decline\n\n   Which one is recommended follows from the handoff, not from fullness. A\n   *current* handoff means the thread survives a hard reset, so `/clear` wins and\n   you get the full window back. A *missing or stale* one means something unwritten\n   is at risk, so `/compact` wins and keeps it reachable. Either choice writes the\n   checkpoint first — including `/clear`, which needs it most, not least.\n\n5. **And it is there afterwards.** `SessionStart[clear|compact]` re-injects the\n   checkpoint into the fresh session, so it opens already knowing where it is. You\n   never have to remember to type \"resume\", which is exactly the manual step that\n   gets skipped on the sessions where skipping it costs the most.\n\n**Cairn cannot type the command.** No hook output and no tool can trigger a slash\ncommand, so the agent does the half it can do (the checkpoint, immediately) and you\ntype the six characters. Anything that claimed otherwise would leave you waiting for\nsomething that never happens.\n\n### How the size is measured\n\nNot from file size. No hook input carries token counts, but every hook receives\n`transcript_path`, and the transcript's assistant records carry the usage the API\nactually reported — so cairn tail-reads the last 256 KB and sums the real window\n(input + cache reads + cache creation + output). Measured cost: 6 lines parsed,\n0.5 ms.\n\nv1.19.0 used transcript bytes as the proxy and it was wrong in the one place that\nmattered. Measured on cairn's own session: **3.40 MB of transcript holding 72,285\ntokens of context.** Bytes keep accumulating across a `/compact` while the window\nresets, so a byte threshold is loudest immediately *after* a compaction, when there\nis least reason to speak. Bytes survive now only as a fallback for when no usage\nrecord is reachable, and when that happens the line says so instead of dressing a\nfile size up as a token count.\n\n**There is no threshold, and since v1.33.0 there is deliberately no attempt at one.**\nCairn reports the measured count on every prompt and the *agent* decides whether to\nstop, weighing what is left against how big the work you just asked for is going to be.\n\nThe reason is that a threshold needs a window, and the window is the one thing cairn\ncannot see. No hook input carries it, the transcript records usage but never a limit,\nand the model id is no help either: a `claude-opus-5[1m]` session writes the base\n`claude-opus-5` into both the transcript's `message.model` and `lastModelUsage` in\n`~/.claude.json`. Three versions tried anyway, each failing differently:\n\n| | approach | how it failed |\n|---|---|---|\n| v1.20.0 | fixed 120k tokens | 60% of a 200k window but 12% of a 1M one, so it fired a tenth of the way into a 1M session |\n| v1.31.0 | infer the smallest window that fits the measurement | sound as a lower bound only, so below 196k it assumed 200k — reported **96%** where `/context` said **19%** |\n| v1.32.0 | never guess downward; `CAIRN_CONTEXT_WINDOW` states the truth | nothing could ever set it. `install-hooks` cannot know the window either, so there was no correct value to write — unwritable by construction, and the feature went silently dead |\n| v1.33.0 | report the bare count, let the agent judge | right about *who* decides. But a reader handed a number with no denominator supplies one, and supplies the familiar 200k: an agent at **253,500 of a 1M window** called for a clear, twice, with 74% free |\n\nv1.31.0's false-alarm band could never have been tuned away: any firing point for a\n200k window is a point a 1M session also passes through, so no number serves both.\n\nThe agent, though, *does* know its window — it is stated in its own system prompt —\nand it is the only party that knows whether the next task is a one-line answer or a\nrefactor across thirty files. So cairn hands over what it actually measured and the\nrules for acting on it, and never issues the verdict itself. It is the same division\nof labour as the handoff: cairn demands the judgement and carries it, never computes\nit.\n\n**Since v1.34.0 the agent also declares the denominator.** Pass `context_window` to\n`cairn_resume` or `cairn_checkpoint` once per project (optionally with\n`context_window_model`), and every reading from then on is scaled:\n\n```\n[cairn] Context: 253,500 of 1,000,000 tokens (25%, declared for claude-opus-5[1m]).\n```\n\nUntil you do, the line carries the raw count and says the window is undeclared, which\nis the honest state — cairn still never invents a denominator. The declared window is\nstored beside the handoff in `session.json` and carried forward by checkpoints that do\nnot restate it, so the every-turn heartbeat cannot drop it.\n\nThis is not `CAIRN_CONTEXT_WINDOW` coming back. That died on *who could ever set it*,\nand the answer turned out to be: the one party that can read it off its own system\nprompt. A declaration can still be wrong — carried into a narrower model's session, say\n— but it is wrong *on screen*, next to the model it claims to be for, and a reading over\n100% is called out as an impossible one rather than an emergency. A stated assumption\ngets corrected; the unstated one that replaced it in v1.33.0 could not be.\n\nThat also removes the rate-limiting. The old block was a *verdict*, so repeating it\nwas nagging and it had to be shown once per situation; this is a *measurement*, and a\nbudget you are only shown once it is nearly spent cannot inform the decision to start\nsomething. It rides every prompt.\n\n**Since v1.35.0 the line also says which reset to use.** Every reading carries a\nsecond line naming `/clear` or `/compact` and why:\n\n```\n[cairn] Context: 90,000 of 1,000,000 tokens (9%, declared for claude-opus-5[1m]).\nHandoff is STALE, written before the 1 commit(s) since: the retry path is untested…\n→ If you reset: /compact — the handoff predates the 1 commit(s) since, so it no\n  longer describes the work in flight.\n```\n\nCairn had been computing that recommendation since v1.29.0 and printing none of it:\n`recommendedAction()` decided between the two on every prompt, and the hook built its\noutput from the measurement and the protocol alone, so the advice reached the screen\nonly if the agent chose to raise it. That routed the whole path through the one\ncomponent with a demonstrated failure record — the same judgement that read 253,500 of\n1M as an emergency, twice.\n\nThe advice turns on **what is saved, never on how full the window is**. A current\nhandoff means the thread survives a hard reset, so `/clear` is the better trade; a\nmissing or stale one means something unwritten is still at risk, so `/compact` keeps it\nreachable. That is why it can print at 9% as readily as at 94%, and why the wording is\nstrictly conditional. *If* you reset, use this one. It never says to reset — that\njudgement is still the agent's, and still yours to act on, since cairn cannot type\neither command. A fact about your saved state does not become false or urgent by being\ndisplayed; the verdict it replaced did, which is why that one had to be rationed.\n\n**Since v1.36.0 there is exactly one threshold again: the 90% gate.** At 90% of the\n*declared* window, cairn asks the agent for one specific thing:\n\n```\n⚠ [cairn] 94% of the declared window (940,000 of 1,000,000 tokens, 60,000 left) and\nnothing has been written down about what this session would lose. Call cairn_checkpoint\nwith would_be_lost: the every-turn auto-checkpoint carries that field forward but never\nwrites it, so nothing else will. This is not a verdict on whether your next task fits —\nthat judgement is still yours.\n```\n\nA threshold is defensible now for a reason that did not exist before v1.34.0: **the\nwindow is declared, not guessed.** The gate fires only when an agent has stated its\ndenominator and never otherwise, so a project that has declared nothing gets no trigger\nand no false alarm — by construction, not by tuning. That is the property the fixed\n120k, the inferred-smallest and the unwritable env var could never have had.\n\nIt also asks for something none of them asked for. It does not say stop, and it does not\nrule on whether the work fits. It demands the one field an automatic save must never\ninvent: the Stop hook checkpoints every turn, but `would_be_lost` is deliberately carried\nforward untouched rather than fabricated (`checkpoint.js:68`), which makes it precisely\nthe field still missing when the window runs out.\n\n90% rather than 95% because the cost is asymmetric — firing early costs about 1k tokens\nfor a handoff worth writing anyway, firing late costs the session's whole unwritten\nreasoning — and because usage does not climb smoothly. A single image read or large test\ndump can take 10k in one turn, which is the entire margin 95% leaves on a 200k window.\n\n**It also names who picks `/clear` vs `/compact`, and on what basis.** Cairn's own\nrecommendation is about *what is saved* — but that is a precondition, not the decision.\nThe decision is whether the work ahead needs the context already loaded: a new,\nunrelated phase gains nothing from this conversation, so `/clear` is the better trade,\nwhile a phase continuing this one would force a re-read of everything, so `/compact` is.\n\nCairn cannot see which of those is coming, and does not try — that is the\nwindow-inference mistake in a new costume. The *agent* can: it has the incoming\nrequest, the roadmap cursor, and where the conversation was heading. So the gate demands\nthat judgement rather than leaving you a two-branch menu, and the user-facing half\nexplains what each command does so you can act on it or overrule it. Same division of\nlabour as everywhere else here: cairn measures, the agent judges, you act — because\ncairn cannot type either command.\n\nOnce the handoff is written, neither option drops anything that was written down, so the\nchoice collapses to that single question about what comes next.\n\n**v1.36.1 is the release that made the sentence above true.** It was not. The gate would\ndemand a thorough `would_be_lost`, the agent would write three and a half thousand\ncharacters of reasoning that existed nowhere else, correctly tell you a reset was safe —\nand the SessionStart re-injection would hand the fresh session 220 characters of it, cut\noff mid-word. Everything after the first point was gone. The agent could not remember the\nconversation you had just had with it, which read as the checkpoint failing when the\ncheckpoint had worked perfectly.\n\nStorage was never the problem; delivery was. `inlineResumePayload()` rendered the restore\npayload through the same 220-character clip as the every-prompt budget line. That cap is\nright for the budget line — it rides *every* turn and has to stay one line — and ruinous\nfor the restore payload, which fires **once** and is the only copy of the handoff that\nsession will ever see. One cap could not serve both, so `handoffSummaryLine()` now takes\none, and the restore path passes none. It costs about 900 tokens a session.\n\nThe failure is worth naming because of its shape: the agent was right about what got\n*saved* and wrong about what got *delivered*, and no amount of care inside the writing\nsession could have caught the difference. The same bug had a second instance — notes long\nenough to be filed to `.cairn/notes/` are held as objects, and the restore stringified\nthem to `[object Object]`, so the most substantial notes were the ones that arrived as\nnoise. When a feature demands expensive judgement from the agent, test the whole return\npath, not just the write.\n\n**v1.37.0 gives the handoff somewhere permanent to live, and stops previews cutting\nmid-word.** `session.json` holds exactly *one* `would_be_lost`, and every manual\ncheckpoint overwrites the last, so a project's history of what each session would have\nlost was destroyed one checkpoint at a time — and the rotation at 100KB scattered\nwhatever survived across `session.N.json` files nobody reads. The most expensive field\ncairn ever asks an agent to produce had the shortest life of anything cairn stores.\n\nEvery answered handoff is now appended to **`.cairn/handoff.md`**: full text, never\nclipped, newlines intact, plain Markdown you can read or grep without cairn. Newest\nfirst — unlike `roadmap_completed.md`, which appends at the end because it is a shipping\nrecord read in order. This is a lookup, so it is ordered for the lookup. The every-turn\nheartbeat is not logged; only a real answer is, or a handful of genuine judgements would\nbe buried under thousands of identical copies. It is an addition rather than a migration:\n`session.json` keeps the field unchanged as the hooks' fast path, so nothing that reads\nit needs to know the file exists.\n\nPreviews no longer end mid-word. A cut like `…the re-injection clipped would…` is worse\nthan a shorter clean one: the reader cannot tell whether the truncated token was `would`,\n`would_be_lost` or `wouldn't`, so the last thing they are shown is the one thing they\nmust not trust. `clip()` backs up to the last space and drops trailing punctuation. The\nexception is deliberate — an unbroken run longer than the cap (a stack trace, a base64\nblob, a Windows path) has no boundary to back up to, so below a 0.6 floor it takes the\nhard cut rather than returning almost nothing. The cap itself went 220 → 400, because at\n220 the budget line reliably died inside the first sentence of point (1): enough to prove\na handoff existed, not enough to say what it was about.\n\nOne test had to change, and it is worth saying which. The v1.36.1 guard asserted the\nevery-prompt line stayed under 300 characters — a magic number tied to the old cap, so it\nfailed on a change that was entirely intended. It now asserts a *ratio*: the preview must\nstay under half the payload. The invariant was never a particular length, it was that one\nchannel stays a preview while the other carries everything.\n\n**v1.38.0 adds the other half of the question.** Everything above is retrospective.\n`would_be_lost` asks what a fresh session would not *know*, and every example in it is\nsomething that already happened. So a restored session inherited the whole of what the\nlast one learned and nothing of what it was going to do with it — thorough notes, a\nlegible thread, and an agent that still opened with \"what now?\" to a user who had\nanswered that an hour earlier.\n\n`cairn_checkpoint` now takes **`next_step`**, carried by exactly the same rules as the\nhandoff: the heartbeat copies it forward but never restamps it, it ages against commits,\nand it is delivered in full on restore, directly under the handoff. It asks for the\n*reason* as well as the action, because the action alone already survives in the roadmap\nand the message field — what does not survive is why that action was next rather than the\nalternatives, and an agent that inherits only \"run the Windows fixtures\" will happily do\nit in the wrong order or redo the deliberation that chose it.\n\nStaleness means something sharper on this half. A stale handoff is still *true*: what was\nlearned stays learned, and later commits only mean it may be incomplete. A stale next step\nmay be actively *false* — commits landing after \"next I will run the fixtures\" are quite\noften that step being done, so the warning says **verify before acting on it** rather than\n\"may be stale\". A restored agent acting confidently on a completed instruction is worse\nthan one told nothing.\n\nThe 90% gate now demands both halves, and only the missing one. Asking for a handoff that\nis already current invites it to be rewritten, and a rewrite restamps `at` — which is how\na thorough answer gets replaced by a hurried one at the worst possible moment.\n\n**And when nothing forward is registered anywhere, the gate says so.** If the roadmap has\nno cursor and no open phase, then after the reset there is nothing outside the discarded\nconversation that says what comes next, and the gate suggests registering the phase. This\nis not cairn inferring the plan — that remains the thing it cannot see and must not guess.\nIt reports an *observed absence*: the plan points at nothing. Absence is observable,\ncontent is not, and that distinction is the only reason this arm is allowed to exist. When\nthe roadmap cannot be read at all — no index, no sqlite — it stays silent rather than\nclaiming a bare plan it never saw, the same honest-absence rule the commit counter uses.\n\nThe probe is deliberately not the roadmap renderer: it is two cheap queries, run only when\nthe gate is actually crossing, so the every-prompt path opens no database at all.\n\nIt needs no rate limit: it self-extinguishes. The moment the handoff is written the\ndemand returns null, and it speaks again only if later commits make that answer stale.\nCrossing is remembered in `.cairn/.handoff-gate` and forgotten when usage drops back\nbelow the gate, so a `/clear` makes the next crossing a genuinely new event. The stored\ncrossing also closes a hole that `stale` alone cannot: staleness is counted in *commits*,\nso a long research session that commits nothing would keep a handoff from its opening\nminutes marked current all the way to the top of the window.\n\n`CAIRN_CONTEXT_HINT_TOKENS` no longer gates anything, but if you set it, cairn tells\nthe agent when you have passed it rather than ignoring you.\n\nDeliberately not built: no full transcript walk (the tail only; a full walk in this\nhot path once froze every terminal in the cockpit for 4.3 seconds), no counting\nsubagent spend as main-thread context, no cairn-side verdict about when to stop,\nand no auto-clearing, auto-compacting, or filling the field in on your behalf. Same\nshape as completed-phase detection: detect, surface, confirm with the user, never apply.\n\n---\n\n## Supported languages\n\n| Language | What Cairn extracts |\n|---|---|\n| Java | packages, classes, interfaces, enums, records, methods |\n| TypeScript / JavaScript | classes, interfaces, functions, types, enums |\n| Vue | components, composables, script block symbols |\n| Python | classes, functions, decorators |\n| SQL | tables, views, stored procedures |\n| XML / HTML | bean ids, component names |\n| Config (YAML, properties, .env) | top-level keys |\n| Markdown | headings |\n| Build files (pom.xml, package.json, build.gradle) | dependencies |\n\n---\n\n## License\n\nMIT\n","readmeFilename":"README.md"}