{"_id":"obsidian-hybrid-search","_rev":"158-f3b97c78f567b1f14dfb24ecc10f0ef6","name":"obsidian-hybrid-search","dist-tags":{"latest":"0.16.0"},"versions":{"0.1.0":{"name":"obsidian-hybrid-search","version":"0.1.0","_id":"obsidian-hybrid-search@0.1.0","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"cdfdc651be237050307d1e3a137711588b5a86c3","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.1.0.tgz","fileCount":10,"integrity":"sha512-Yz/3Y1yygahTbb1PDvXWEvgypFzrAO7GtMC037240IT92G4ErpBfvJwxIpBg9EP2o5NOeol7xfMEyJ50etNtIw==","signatures":[{"sig":"MEUCIQDcFwO1VKuD/Fkp3rhJvYtoZYsXO2kbdDd9JhigTfVC2wIganCFRqtFIqdLSBmiCKe41oon3gkUhdwnd6EZeFxPEs8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63059},"type":"module","gitHead":"b17e3a6423b8b9cd402c981bcca99d20cafd9edb","scripts":{"dev":"tsx src/server.ts","test":"tsx test/run-tests.ts","build":"tsc","test:integration":"tsx test/integration.test.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"_npmVersion":"11.11.0","description":"A fast hybrid search server for [Obsidian](https://obsidian.md) vaults. Combines BM25 full-text search, fuzzy title matching, and semantic vector search via Reciprocal Rank Fusion (RRF).","directories":{},"_nodeVersion":"25.8.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.1.9","typescript":"^5.4.0","@types/node":"^20.0.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.1.0_1772936541149_0.5984921044743914","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"obsidian-hybrid-search","version":"0.1.4","_id":"obsidian-hybrid-search@0.1.4","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"22697167e2de24a41ad57170d7a2a29d9aeb2bfb","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.1.4.tgz","fileCount":10,"integrity":"sha512-db6v2grKBSo9Tm0uDhRJwkdPOmxqbVFsThsmB1xvpPnUBkfE6SG8eAQahwxxRCIQfcMyf6zJtocC5nl3tyGLaw==","signatures":[{"sig":"MEYCIQCuUrJ2NzgiP4R5sxyoS8qXzHoP5ktrCzD+SaQAUGfC/AIhAMN+j8VpE45xVJAa0N/9OGx8Yoefh1YzsssZ/OlJQpJ+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":63170},"type":"module","gitHead":"00c1ddc35c8fa9d926b044a4ea40399626c749be","scripts":{"dev":"tsx src/server.ts","test":"tsx test/run-tests.ts","build":"tsc","test:integration":"tsx test/integration.test.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"A fast hybrid search server for [Obsidian](https://obsidian.md) vaults. Combines BM25 full-text search, fuzzy title matching, and semantic vector search via Reciprocal Rank Fusion (RRF).","directories":{},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.1.9","typescript":"^5.4.0","@types/node":"^20.0.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.1.4_1772937879060_0.0975238875310167","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"obsidian-hybrid-search","version":"0.1.5","_id":"obsidian-hybrid-search@0.1.5","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"ee7568174b0d1c284846c407a41d5354438c658e","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.1.5.tgz","fileCount":10,"integrity":"sha512-jq1HZ+mLm0bkvYcSKi5ajx7tM8IFZsEYPdrCuSotsc4sH+VtsAzISOKvZD1SO3EkOp2bo5+VyBiDVWBzSOWnCQ==","signatures":[{"sig":"MEUCIArAyeTDbNHD61NQ+iKf1T7V6w65qIXN683TmWkvlljgAiEA7RoogF1zKhW1d8m0Lf59YYIgS8mx4DsziJQVjyrsVc4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":63190},"type":"module","gitHead":"8bcd807f29fe3109bac7bcf22f504ea7d64b084f","scripts":{"dev":"tsx src/server.ts","test":"tsx test/run-tests.ts","build":"tsc","test:integration":"tsx test/integration.test.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"A fast hybrid search server for [Obsidian](https://obsidian.md) vaults. Combines BM25 full-text search, fuzzy title matching, and semantic vector search via Reciprocal Rank Fusion (RRF).","directories":{},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.1.9","typescript":"^5.4.0","@types/node":"^20.0.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.1.5_1772938382286_0.23535663860358658","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"obsidian-hybrid-search","version":"0.1.6","license":"MIT","_id":"obsidian-hybrid-search@0.1.6","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"9320df2ed14ed8edde3574aeed4eb97ad50f3dfa","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.1.6.tgz","fileCount":11,"integrity":"sha512-QLWUodwVBMHNRVaMcy8RSHrIfGsOJjvmlTAJ/hhEel0tf5oZeWN4YlOXfVgZ2JrKNP0P/fHpuIqtnRuM3LS+IQ==","signatures":[{"sig":"MEYCIQCRovL4GsqXEacLLRIll4XSMo9iwF/fjSHw/d8Dtg5aOAIhANbQZ7CXGf8gYAHR8+EL3WsU5yuQAc6QHhJqbLTJ+BI9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":64287},"type":"module","gitHead":"1b7eabe7479fab65544c4bd5fdcc0295592d42b2","scripts":{"dev":"tsx src/server.ts","test":"tsx test/run-tests.ts","build":"tsc","test:integration":"tsx test/integration.test.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"A fast hybrid search server for [Obsidian](https://obsidian.md) vaults. Combines BM25 full-text search, fuzzy title matching, and semantic vector search via Reciprocal Rank Fusion (RRF).","directories":{},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.1.9","typescript":"^5.4.0","@types/node":"^20.0.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.1.6_1772941626677_0.2018320515630776","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"obsidian-hybrid-search","version":"0.2.0","license":"MIT","_id":"obsidian-hybrid-search@0.2.0","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"112bc89ef65557dec4a9968d501073b611d4964d","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.2.0.tgz","fileCount":11,"integrity":"sha512-HGlV6DuP0oNyButDP8xSmxyzG0nxzFBhNPZqPXbt2X82FUi4QEwbzgoc8K+tCt5CDHH/oaNaUVRSiqKyBn0RdQ==","signatures":[{"sig":"MEUCIQCIP8brjplgE8ZCuMrQ1fqGknPVA6mFj4SBUZNZbHiQ4wIgPGQJ/3DFmHAStwIcUqqnenrTxfj2k+6q21VFV6K1Z48=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":72817},"type":"module","gitHead":"edc174d6d9b8645565d190b7c394eb0aceff5451","scripts":{"dev":"tsx src/server.ts","test":"tsx test/run-tests.ts","build":"tsc","test:integration":"tsx test/integration.test.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"A fast hybrid search server for [Obsidian](https://obsidian.md) vaults. Combines BM25 full-text search, fuzzy title matching, and semantic vector search via Reciprocal Rank Fusion (RRF).","directories":{},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.1.9","typescript":"^5.4.0","@types/node":"^20.0.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.2.0_1772951180807_0.03692589323833673","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"obsidian-hybrid-search","version":"0.2.1","license":"MIT","_id":"obsidian-hybrid-search@0.2.1","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"db051acd9a7ad6e76d87a1e3dfeeba57c1254b75","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.2.1.tgz","fileCount":11,"integrity":"sha512-3DpD6wIZgGu3RT3/2zzFen7slRoc2E6SIxl6SGYchQipmXvLmRsrFLF0hdBn4BILiOs5wYxTp1C7Tl8qRo+lUg==","signatures":[{"sig":"MEQCIErxIJni6MMB1U+rKybOGXxsdyufiKGtCOj85WTowYiJAiAeQdUA0gc3sECg5OVRCUl0cuokNU+hIVuMOasxWDpGrQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":75492},"type":"module","gitHead":"fef4d21008ea87ec4779fc44410237a1740f7622","scripts":{"dev":"tsx src/server.ts","test":"tsx test/run-tests.ts","build":"tsc","test:integration":"tsx test/integration.test.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"A fast hybrid search server for [Obsidian](https://obsidian.md) vaults. Combines BM25 full-text search, fuzzy title matching, and semantic vector search via Reciprocal Rank Fusion (RRF).","directories":{},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.1.9","typescript":"^5.4.0","@types/node":"^20.0.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.2.1_1772967920331_0.09986598763040777","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"obsidian-hybrid-search","version":"0.2.2","license":"MIT","_id":"obsidian-hybrid-search@0.2.2","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"57014650db2ec8d4d626df475e33da14b9614840","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.2.2.tgz","fileCount":11,"integrity":"sha512-WXscza3wwGFaFG5nbN13Rtn7yUE7M7BAZm900EkgP0xUrsTVXd4+/6ihtLQaTTdp0zxy/2sEmf7ddLBgasGnLw==","signatures":[{"sig":"MEUCIFbOYcSlkAuqtSHwQqdQ2tBSE8ak6GJlor8sk05PEDSEAiEAjQ9pUt3mgR4iG1yDEwWLUBlBetIICSklTOfQ2n8jDQ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":75714},"type":"module","gitHead":"a5659350fe4d30114ccdb7fbc2af8fba1c247691","scripts":{"dev":"tsx src/server.ts","test":"tsx test/run-tests.ts","build":"tsc","test:integration":"tsx test/integration.test.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"A fast hybrid search server for [Obsidian](https://obsidian.md) vaults. Combines BM25 full-text search, fuzzy title matching, and semantic vector search via Reciprocal Rank Fusion (RRF).","directories":{},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.1.9","typescript":"^5.4.0","@types/node":"^20.0.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.2.2_1772968305098_0.30863756276295473","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"obsidian-hybrid-search","version":"0.3.0","license":"MIT","_id":"obsidian-hybrid-search@0.3.0","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"f1ab438cb3bcdc0bf0369773e146b33f9481b1ed","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.3.0.tgz","fileCount":11,"integrity":"sha512-SfdvEDgajQeTbGHqnzXHMpYG6JSQAFg9I+NcNEjSLWu4h5ruB6VpHvA6Tgq5xyTrVjto3HOeq/sZc5lUZ4Ckmw==","signatures":[{"sig":"MEUCIByPJF1/02tLy3tXg/YBea8tJrNMf/BYz4X2o/Y7gfRQAiEA48/htTimAmUvWIBZpdLWvUNZwR6NGhrmc3FXp1tc+i4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":83290},"type":"module","gitHead":"6533f1e244843a13f1cc81171faf0b95e632c58b","scripts":{"dev":"tsx src/server.ts","test":"tsx test/run-tests.ts","build":"tsc","test:integration":"tsx test/integration.test.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"A fast hybrid search server for [Obsidian](https://obsidian.md) vaults. Combines BM25 full-text search, fuzzy title matching, and semantic vector search via Reciprocal Rank Fusion (RRF).","directories":{},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.1.9","typescript":"^5.4.0","@types/node":"^20.0.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.3.0_1772971780631_0.43815497814430016","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"obsidian-hybrid-search","version":"0.4.0","license":"MIT","_id":"obsidian-hybrid-search@0.4.0","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"621a06a488468be9f4930698677ff1c608c98a10","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.4.0.tgz","fileCount":11,"integrity":"sha512-ydsmqEzLFxhVJg7mQkgSF485+XR2cDXWXiwxVKuPkrLfzdiEg8dxX9GQcayRVqKvdfhJ50c09BFw29CLzdccCA==","signatures":[{"sig":"MEUCIQDK4WHIh/yJGBZWhgXwfpDttfVD/bizr0GTcpu9HPaIJgIgZ/a0pMlD975sbISIgZNfeSG9vctw5UuAF70QM7NDaDw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":91572},"type":"module","gitHead":"37d08d2589d3167dc0bef4f7736eb8178f1ff383","scripts":{"dev":"tsx src/server.ts","test":"tsx test/run-tests.ts","build":"tsc","test:integration":"tsx test/integration.test.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"A fast hybrid search server for [Obsidian](https://obsidian.md) vaults. Combines BM25 full-text search, fuzzy title matching, and semantic vector search via Reciprocal Rank Fusion (RRF).","directories":{},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","vitest":"^2.1.9","typescript":"^5.4.0","@types/node":"^20.0.0","@types/better-sqlite3":"^7.6.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.4.0_1772983027965_0.93220696368602","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"obsidian-hybrid-search","version":"0.5.0","license":"MIT","_id":"obsidian-hybrid-search@0.5.0","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"3e524187dd209cd035322e90c439f8b99b0cdec9","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.5.0.tgz","fileCount":11,"integrity":"sha512-8PTDJImK0UWG+OtyllSF/P68+ejtrCrlzLW7DlcgPThfgaYjxFbj6K6yLhYQL0XIGZ893/tz4O3OdLhs0xY4Fg==","signatures":[{"sig":"MEUCIQCTtZEeGbncm/ZsVQuGmoJMAohiv8L37q8BfzWZ8k97cQIgETh5YfI4rlLtUJ2L8TL8IXJiBZ8BVglsjrT1VRw0Frw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":94128},"type":"module","gitHead":"9c267919191e8f18688807ca32c4d453c5aeea9d","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"A fast hybrid search server for [Obsidian](https://obsidian.md) vaults. Combines BM25 full-text search, fuzzy title matching, and semantic vector search via Reciprocal Rank Fusion (RRF).","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.5.0_1772993434143_0.46692170584129244","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"obsidian-hybrid-search","version":"0.6.0","license":"MIT","_id":"obsidian-hybrid-search@0.6.0","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"3f4b1a6d08610de46257e8b7ff8dffce200299fc","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.6.0.tgz","fileCount":11,"integrity":"sha512-YAuqktEPRgbCk4ZrGTajvYlg7OuP4NHVK0QTt4ihK0/g9Z+vgil5obkupRkQ54EyA56xDQC/pooKMs+7mRatSA==","signatures":[{"sig":"MEUCIQCW5zelQNuXrJi/0Xyv2In/SIXx//M4hzbsadyqQLjfPQIgcB4Ua3+0vR7aw8DFkStNMbzQNjOQuksPAFaiP7TF9ps=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":94736},"type":"module","gitHead":"12ebca67ad0a8ed2f4cf8dc7c1313791562f2055","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"A fast hybrid search server for [Obsidian](https://obsidian.md) vaults. Combines BM25 full-text search, fuzzy title matching, and semantic vector search via Reciprocal Rank Fusion (RRF).","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.6.0_1772996393006_0.8372420064903217","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"obsidian-hybrid-search","version":"0.6.1","license":"MIT","_id":"obsidian-hybrid-search@0.6.1","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"16507c36b697e32d42aab98bf9d4483838e5ec0d","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.6.1.tgz","fileCount":11,"integrity":"sha512-6K03n6hLmdBPOvv0GyYc+ZEZ28xiwrpaMWvQrB1+01VyZQdFotts0yjy6icD71vbaMXf2iFPD7458ByBsFmtMQ==","signatures":[{"sig":"MEYCIQCLP9npWgfAO5CYVCBc0QZF6LEFqIkkBKzbGtVNCwwyaQIhAN0qbcr6hGPyqPgIwh2lQwY0iCMPRtYmkknwP4Vyjzyi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":95382},"type":"module","gitHead":"a3672baff6d55314a5355cbdad1e7b72e1f91cfe","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"A fast hybrid search server for [Obsidian](https://obsidian.md) vaults. Combines BM25 full-text search, fuzzy title matching, and semantic vector search via Reciprocal Rank Fusion (RRF).","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.6.1_1772997884887_0.7179564301379318","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"obsidian-hybrid-search","version":"0.7.0","license":"MIT","_id":"obsidian-hybrid-search@0.7.0","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"83ddfc76d99d03339e272e6d92c0c4aa7df35cec","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.7.0.tgz","fileCount":11,"integrity":"sha512-HgFuIE/zMtZ5OnunvfcP7Hr6x5ZVq/e2zMIOvnWywMkTLrvA0fl5U60fJsDBnDLKcHl6fkk2Ky2ymEh+19glDg==","signatures":[{"sig":"MEQCIAmkd6VDQbIdx4nUkOAeZmIhMhtHxt+hxM/N4FNg16W3AiB6DjnyEkiSqt4ZoPIiz+c38s29xw0pz3Ptr1FEEOZA6w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":99276},"type":"module","gitHead":"5dc07336b5610bdfefc60d1e9ab1f2ddc260efca","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"A fast hybrid search server for [Obsidian](https://obsidian.md) vaults. Combines BM25 full-text search, fuzzy title matching, and semantic vector search via Reciprocal Rank Fusion (RRF).","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.7.0_1773000403601_0.8418508007387411","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"obsidian-hybrid-search","version":"0.8.0","license":"MIT","_id":"obsidian-hybrid-search@0.8.0","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"48bd6297bdb0a860385d81234854c3fec0030c6a","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.0.tgz","fileCount":11,"integrity":"sha512-hbw5c4sZ+6Gw53NQZQIrqZwqWfeOY7gGbYf9FIJFpt0WpmzODPG2PYIWv8R6PGagsm8zraZ6aqgixg3WUMy8Ow==","signatures":[{"sig":"MEQCICH89OZ7NrSaV6bzza3kquL7hlH7l2ZxXoRgyhAbtYXJAiAUFmLpy3AJUO8DnQ+lIThJUBlt6PjlLYfzsgKaYEKdDA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":99264},"type":"module","gitHead":"32165467016128e88c2337a6a181722c51ff894e","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"A fast hybrid search server for [Obsidian](https://obsidian.md) vaults. Combines BM25 full-text search, fuzzy title matching, and semantic vector search via Reciprocal Rank Fusion (RRF).","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.0_1773002263080_0.9219841128008641","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"obsidian-hybrid-search","version":"0.8.1","license":"MIT","_id":"obsidian-hybrid-search@0.8.1","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"c0d483838de2ca5b14118c68194baa2cb3fa43bd","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.1.tgz","fileCount":11,"integrity":"sha512-nlS0kv/gme+UtqidEcBLpH63TuMOm2F3Q0KGCTCMas8NBTwnRfS+br+TN/yafgUGlaSWU+OsEgILTJEu89x2Zg==","signatures":[{"sig":"MEQCIBdH4Ruyy5zWSSAAw3rouFW7CTsxmQfyF969FmhjN7lVAiAFPLL3BrjGT9GQwar1MAOhSC2NPMuA9RzudnA4j33XMQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":99438},"type":"module","gitHead":"53acc2cf0242d3cb3b997d653f75a746a0668f24","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"A fast hybrid search server for [Obsidian](https://obsidian.md) vaults. Combines BM25 full-text search, fuzzy title matching, and semantic vector search via Reciprocal Rank Fusion (RRF).","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.1_1773002514925_0.7774659148685521","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"obsidian-hybrid-search","version":"0.8.2","license":"MIT","_id":"obsidian-hybrid-search@0.8.2","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"f7fc91e8b38164d3a0b3c0e8723d164104e6c0d2","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.2.tgz","fileCount":11,"integrity":"sha512-wBr00IRPQuE0eBNpMTD+bIliOJ0vJRDhtcG44sqEPDcryXpHu62uXzMQ8S65D709O/fs/NXISa2jNiqZlmHrGQ==","signatures":[{"sig":"MEUCIENaiFMBRgiFhF56MJnhTasnBxg1xOjbSxNfZ7UjupIiAiEAxWMuode4rk87kFqD3u5GrsY5guaEZdvnt3DxbrkCJmQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":101309},"type":"module","gitHead":"709015cd6f22e8b5460a24ace177afdab0d567db","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"A fast hybrid search server for [Obsidian](https://obsidian.md) vaults. Combines BM25 full-text search, fuzzy title matching, and semantic vector search via Reciprocal Rank Fusion (RRF).","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.2_1773036570151_0.32295856477624274","host":"s3://npm-registry-packages-npm-production"}},"0.8.3":{"name":"obsidian-hybrid-search","version":"0.8.3","license":"MIT","_id":"obsidian-hybrid-search@0.8.3","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"bb419163b246992a1f8d69943bd8e729ac2ae5bf","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.3.tgz","fileCount":11,"integrity":"sha512-ykdk4WysvxHQUuOHf1NQ8dmgFwDCy00G/p4UyHYXFkyU8zwQjxtOIA4k2wTiP7n9l82WOoHplpSxMwtHZtXEdQ==","signatures":[{"sig":"MEYCIQCG30kDKo9T83s7BlsAkUraa6RqHqcaMLu5A85Y1hoENQIhAPl0HH4cCjNSbDTqByvgXzdwdIt+Rh6Imv5t7krP4VgH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":101356},"type":"module","gitHead":"8d3abc4cfb7c66df39f8d9dcfd249ab76d1ac8cb","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"A fast hybrid search server for [Obsidian](https://obsidian.md) vaults. Combines BM25 full-text search, fuzzy title matching, and semantic vector search via Reciprocal Rank Fusion (RRF).","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.3_1773036864376_0.2678839183598014","host":"s3://npm-registry-packages-npm-production"}},"0.8.4":{"name":"obsidian-hybrid-search","version":"0.8.4","license":"MIT","_id":"obsidian-hybrid-search@0.8.4","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"9af7cca909e95003972c23adab75308e490711c7","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.4.tgz","fileCount":11,"integrity":"sha512-KN/qLCHssbVE8mt5yWe29kxx91cEy5ggrjPLsqJRu2sYXZLhZ04Ff0iVtbHwHs4Jyu5zPaJgCotDkyZO6bHtyA==","signatures":[{"sig":"MEUCIA9Vc49j8zaIWqlRxL+OKT+OR3antZbprVlut/kmuOlnAiEAkiM9qJT47KoXZByDS501te0bbpsTQTp3kDjWxBEcaiY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":101414},"type":"module","gitHead":"58f55045b3e716e6e9606461ddce0f6207266374","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"A fast hybrid search server for [Obsidian](https://obsidian.md) vaults. Combines BM25 full-text search, fuzzy title matching, and semantic vector search via Reciprocal Rank Fusion (RRF).","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.4_1773036987625_0.037995900016362105","host":"s3://npm-registry-packages-npm-production"}},"0.8.5":{"name":"obsidian-hybrid-search","version":"0.8.5","license":"MIT","_id":"obsidian-hybrid-search@0.8.5","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"ea4d1b90eeee40090f4e35fa636bdfcf2474a863","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.5.tgz","fileCount":11,"integrity":"sha512-kyNjrVVwusZsecCAewAeKUGXyJJIdjVHg4DSCZXu6geuQgbzeFqHr37csSjlPY8sGgWcWxSzFtj3Qm7TD9OA1Q==","signatures":[{"sig":"MEUCIDT3bmlc2GXnyAP/vOaphKK9Ts5teC5b6SPaZk/NslkkAiEAiqvYzy80GR1UbGkA6TBI8QRddapc7xySbLExno1NaZw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":101742},"type":"module","gitHead":"4dc43516ff5824432ec448d8883f1ac4dbb8c66a","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"A fast hybrid search server for [Obsidian](https://obsidian.md) vaults. Combines BM25 full-text search, fuzzy title matching, and semantic vector search via Reciprocal Rank Fusion (RRF).","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.5_1773038004273_0.45027509369503127","host":"s3://npm-registry-packages-npm-production"}},"0.8.6":{"name":"obsidian-hybrid-search","version":"0.8.6","license":"MIT","_id":"obsidian-hybrid-search@0.8.6","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"fb10a03a7c50460620ac5151929c3f94ad9b51d1","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.6.tgz","fileCount":11,"integrity":"sha512-ZSnLVz7cjdCeQxTdO5L0gFMTIh9UptTNLw21OZtUrPVV2FsCuzyigJW4y7Kufx+HNfaSRxmAQ2JhP6ZanQmc4A==","signatures":[{"sig":"MEUCIQCF3IzWyu/UKaj0s2EhW324QYH1lO8hbKNIH1sG8op9FAIgPQT/6GFcZl7LYKiWfaeQRtJaeZcrLYDP86RNNtEKNgo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":102535},"type":"module","gitHead":"71b55b181d09d9665e0b28297172726379448465","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"A fast hybrid search server for [Obsidian](https://obsidian.md) vaults. Combines BM25 full-text search, fuzzy title matching, and semantic vector search via Reciprocal Rank Fusion (RRF).","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.6_1773040747632_0.24066874750643108","host":"s3://npm-registry-packages-npm-production"}},"0.8.7":{"name":"obsidian-hybrid-search","version":"0.8.7","license":"MIT","_id":"obsidian-hybrid-search@0.8.7","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"80853b69b5e6aa615fd65b8ea53f85a7324d6c65","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.7.tgz","fileCount":11,"integrity":"sha512-kO+refaE9SlX/iMFnOaDu/ptjAZZBXaL09GeNPnxOAw5GmEuiBgVB5XFBC0zofnyAXFZlbbNl/ZJWyX79B/LFg==","signatures":[{"sig":"MEUCIH1x6XaSBvyzMDOdMQ/8vP21Y1KICM6bqfYtuLMOg5DJAiEApQpWMW8LCD7OL461wfVd54GA/py5pZfBoQlN3TRr4HU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":102535},"type":"module","gitHead":"4057ce37e72d6e0954798dda740c9c376def0006","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"A fast hybrid search server for [Obsidian](https://obsidian.md) vaults. Combines BM25 full-text search, fuzzy title matching, and semantic vector search via Reciprocal Rank Fusion (RRF).","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.7_1773040994786_0.23788508603496172","host":"s3://npm-registry-packages-npm-production"}},"0.8.8":{"name":"obsidian-hybrid-search","version":"0.8.8","license":"MIT","_id":"obsidian-hybrid-search@0.8.8","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"8fd068f909416f57bb8378630c2bae7bffb05ece","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.8.tgz","fileCount":11,"integrity":"sha512-CPhF1oDyOzc0i0vZdqyQwVeRx51NcHaGXeVb+5MWT1Tl5G+zSfGn512md7qs9u8Kcfc/19f+zrPq4qZDQrxBhQ==","signatures":[{"sig":"MEQCIA/fEHN1IOezMIeMDw0dll0rUp8E+Mtve3kl2smSbDwoAiBBbf+FOpR9nltKNBWaW4S9yjdDb9dxFVQ5+2uVO2aMvw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":102857},"type":"module","gitHead":"a682b2c2848cde23e3ec9e9c659c2de7c5cd273d","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"A fast hybrid search server for [Obsidian](https://obsidian.md) vaults. Combines BM25 full-text search, fuzzy title matching, and semantic vector search via Reciprocal Rank Fusion (RRF).","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.8_1773041778147_0.025717848418910005","host":"s3://npm-registry-packages-npm-production"}},"0.8.9":{"name":"obsidian-hybrid-search","version":"0.8.9","license":"MIT","_id":"obsidian-hybrid-search@0.8.9","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"fa8a0e23abd9c72715b444c7e3f247f39d0f9ac9","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.9.tgz","fileCount":11,"integrity":"sha512-N6FrsZCZVCGPa58Tjxubssf8Uc9pBxTzQTsd7k9CoWVgDOVV7slCWNEYGK76ZJsd7UypG5Wi5yVkLPgjJ/EHmQ==","signatures":[{"sig":"MEUCIEPKo1JHiJD9tEHjpc1RDYG9NYB83mOqZ2AogCkxf/YKAiEA6h3M7FNw/NpSL6q5QcQ60pdewJSuROHQQe5uE1Kdbj8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":102977},"type":"module","gitHead":"e9a1f456813b5f979f3e60786e5b305cd3c97401","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"A fast hybrid search server for [Obsidian](https://obsidian.md) vaults. Combines BM25 full-text search, fuzzy title matching, and semantic vector search via Reciprocal Rank Fusion (RRF).","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.9_1773042795576_0.27984104337911386","host":"s3://npm-registry-packages-npm-production"}},"0.8.10":{"name":"obsidian-hybrid-search","version":"0.8.10","license":"MIT","_id":"obsidian-hybrid-search@0.8.10","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"c2a433657982c71a2413e4e904f8b9137fff8317","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.10.tgz","fileCount":11,"integrity":"sha512-SqL+rsvWEjfIntGIfkiaHzeoEcTnVqvQUM4hSEmpnLs5crkEfw7paAWsCUo38ij1hu3XBcXgVqWSuvs6a1psjg==","signatures":[{"sig":"MEYCIQC5uC0FiSl9UPgGOt6qB023Evo9/DDKcXo6FtuW/36fjwIhAM/VWUzJDBDzyyhAY9L2bzJX0ZFlisFDZwAWbTfvldOS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":104462},"type":"module","gitHead":"8866362ba0157a942e6be7388f0252ea74e0baae","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"A fast hybrid search server for [Obsidian](https://obsidian.md) vaults. Combines BM25 full-text search, fuzzy title matching, and semantic vector search via Reciprocal Rank Fusion (RRF).","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.10_1773044808437_0.7027704388279419","host":"s3://npm-registry-packages-npm-production"}},"0.8.11":{"name":"obsidian-hybrid-search","version":"0.8.11","license":"MIT","_id":"obsidian-hybrid-search@0.8.11","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"e27a1734d45343b1655b74ff85a14804488875c3","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.11.tgz","fileCount":11,"integrity":"sha512-SJIT29poDXxJh6Y2qrqi+v/bQOWKiDbaBKGm3T8J/jqrZzA3tHji7/bBczoknFLZ1ZDWmImGQDHnsFy3OWp84w==","signatures":[{"sig":"MEUCIQCZCsoUyHaHrwdNEXXhK1fRE8NK833lhhnp97Qk9wo03QIgWinUpN99KTmkJFoX/9fmXOi15c7/GIN+XR3H82suQ7s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":104619},"type":"module","gitHead":"0e3bb63007a01f3579afad871668b15bcd67a1f5","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"A fast hybrid search server for [Obsidian](https://obsidian.md) vaults. Combines BM25 full-text search, fuzzy title matching, and semantic vector search via Reciprocal Rank Fusion (RRF).","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.11_1773061530545_0.5607393808178467","host":"s3://npm-registry-packages-npm-production"}},"0.8.12":{"name":"obsidian-hybrid-search","version":"0.8.12","license":"MIT","_id":"obsidian-hybrid-search@0.8.12","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"d28220430bde5312e737b238c18eda24daedcaaf","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.12.tgz","fileCount":11,"integrity":"sha512-sRUGILDmENvmQHvV2HfRoNJBNzefBKuYKob2lCkLIW4irDgoPUVk8hRxyU8cRK5GPFNlHfHoWIcjfPCshLnk5A==","signatures":[{"sig":"MEUCIQDWVum/GOcBdGJRwfbiJYLLgJoZ61nuxo5EpDdp5ladDQIgJBWS6dnIt/GJhN2K+0BsSrqNmi9EDVTAAWrgImEiuCg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":105543},"type":"module","gitHead":"36fb69652cbdaddfa865bff7cd56241717622b32","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"A fast hybrid search server for [Obsidian](https://obsidian.md) vaults. Combines BM25 full-text search, fuzzy title matching, and semantic vector search via Reciprocal Rank Fusion (RRF).","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.12_1773064532667_0.8536478406902941","host":"s3://npm-registry-packages-npm-production"}},"0.8.13":{"name":"obsidian-hybrid-search","version":"0.8.13","license":"MIT","_id":"obsidian-hybrid-search@0.8.13","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"b646d576dc8417ce66e31d8a82537448aba36cbd","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.13.tgz","fileCount":11,"integrity":"sha512-DjoISwvdQGM8G4oPwczzVxfEnWQUTGCfAQKClmJ85irRxTad4zjFBMx0h1Uaj0XFWNRAJ82gyioAKCtgqe+OqA==","signatures":[{"sig":"MEYCIQCm/wXYWdOizHmH9cAoAgP2hGXKmmZ2kzb64FFa5GKS6gIhAIZpSY27Gk42fOeZ00unkm7MTJYbL7wdZ1KxFzy5rAFk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":105730},"type":"module","gitHead":"8b548deb68e2a3ceb2a387c8aca9d70d17a64389","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"A fast hybrid search server for [Obsidian](https://obsidian.md) vaults. Combines BM25 full-text search, fuzzy title matching, and semantic vector search via Reciprocal Rank Fusion (RRF).","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.13_1773067414873_0.7279861563434875","host":"s3://npm-registry-packages-npm-production"}},"0.8.14":{"name":"obsidian-hybrid-search","version":"0.8.14","license":"MIT","_id":"obsidian-hybrid-search@0.8.14","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"5c463ec3682476a80ca38823c4046920078a98df","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.14.tgz","fileCount":11,"integrity":"sha512-gGHemv/cr3tW7q94Rl4oo7eYe0WTAAqnKJcu5l1w8Xz293qHKi89HtDxkcG0Qv/oaM8w7yo0MdpEGUxRyqFLGw==","signatures":[{"sig":"MEYCIQCxVEIZbve4EdKotWaEVVzO7SKctvu/1qoW9qNYSZHwwwIhAK9I5UXlA8bLRmZSTb4jOHKPBCfoDgsISoix0IIFdueu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":106153},"type":"module","gitHead":"894a4101f34e9263def2da6c9611eb33c623c21b","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"A fast hybrid search server for [Obsidian](https://obsidian.md) vaults. Combines BM25 full-text search, fuzzy title matching, and semantic vector search via Reciprocal Rank Fusion (RRF).","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.14_1773112596761_0.24430597570072554","host":"s3://npm-registry-packages-npm-production"}},"0.8.15":{"name":"obsidian-hybrid-search","version":"0.8.15","license":"MIT","_id":"obsidian-hybrid-search@0.8.15","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"49ca85ce159daba024dc44a725ca9e9d0672e209","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.15.tgz","fileCount":11,"integrity":"sha512-C/8wwC7jIqTasHr7Yg90UK1w3vCyZDiXXBxetHTmdEGmwYKLf23fEJXL2+6rq4ELVOu+gMQ/NkX7+sUPZXWUMA==","signatures":[{"sig":"MEUCIFjtvLSO8hpBHb9Y0tQ3fHSE6olL1196zKe1W+IQgJPNAiEAkQVkgJEKjA1fD3ISus591zE3IpP+Byflr/H6I4pTl60=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":107205},"type":"module","gitHead":"b909e75ce246d1b1e3e216fd28447c696746e134","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.15_1773115952549_0.2454413530891646","host":"s3://npm-registry-packages-npm-production"}},"0.8.16":{"name":"obsidian-hybrid-search","version":"0.8.16","license":"MIT","_id":"obsidian-hybrid-search@0.8.16","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"47835a1cb9345f1ceaa2b136863718a25fe41cff","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.16.tgz","fileCount":11,"integrity":"sha512-i3YghyCf1qViDZramJfCHVTZ0XS8YqTXYjPtVxY9NqARilR+ZRIH5zfraWbR+UI5q7IXu0IkbJSIMvF08dhI/w==","signatures":[{"sig":"MEQCIEIL+9vIgU1Gij2bT/X+49G2tL1ibnstmx7IoWUKBQ4TAiBD8oHcmZa8/YYxK7vzi8RCgZuGRb7xi+xfGJwxFzjMUg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":107941},"type":"module","gitHead":"d803bfd11e6b7b11107ba4f09adb8bef203ac2e2","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.16_1773131527320_0.27721924112296215","host":"s3://npm-registry-packages-npm-production"}},"0.8.17":{"name":"obsidian-hybrid-search","version":"0.8.17","license":"MIT","_id":"obsidian-hybrid-search@0.8.17","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"ec814db496712305c752584d099d9885c910287b","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.17.tgz","fileCount":11,"integrity":"sha512-vmdMvLgYcpPUmwwrci07lBdf6qb6EGxw8NS7WM5g5MVcvd0Fo6iiXRYbGQzOH/OrFW8xiv5u1M7TNlF6fRk3vw==","signatures":[{"sig":"MEUCIEpNkU5eIic8CRr2gI2O4x1CwOZ8wd/F99Yr17H1VMW0AiEA29mbJ9LbUoMd+8ePzO7e1n/OWYJAi9yWMst5aV6yJag=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":108419},"type":"module","gitHead":"2eea8335e3c68982d2a562908b8ded92c4a54e0f","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.17_1773135296656_0.3961929752282747","host":"s3://npm-registry-packages-npm-production"}},"0.8.18":{"name":"obsidian-hybrid-search","version":"0.8.18","license":"MIT","_id":"obsidian-hybrid-search@0.8.18","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"595aae0b013327fdeae4e635bbd8fb297e199e44","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.18.tgz","fileCount":11,"integrity":"sha512-v0FbcRfkrhpxDenPTmuI2RedkWLnTvmpZqUTjrpCRJe2Wgv3bfB8C9mHw9sraIUoq0Sz0UJCe2ULMBjnCMTnhQ==","signatures":[{"sig":"MEUCIFPiqXZjbKfVctNpLEFer1ZIjcrgiGYFw7Nz1reMUBOrAiEAquo9eKcxuMB5R5wYNxymqlnWSjfe13P8OAsp0Jg6HlQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":108435},"type":"module","gitHead":"3e5857fbc464b46cff9fe462c5d1e7d33526a2fe","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.18_1773136430070_0.8168435050121983","host":"s3://npm-registry-packages-npm-production"}},"0.8.19":{"name":"obsidian-hybrid-search","version":"0.8.19","license":"MIT","_id":"obsidian-hybrid-search@0.8.19","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"ac9cd3e66e6cd189cb37a46a058120a392796840","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.19.tgz","fileCount":12,"integrity":"sha512-oEEZryzTo+JnhY0BFQEaJFfKIq8M0nsI6bsjNFVIioH49I4oDtT3LNDD+sflVhYjpTz/xFQRI8SgKMc4KfuyVw==","signatures":[{"sig":"MEYCIQC3LakTys8E1vayTwl1cmycDyvfm8sdR9iA9KmiyOUEzQIhANaiJRarr5WX6Q5DgueSDDGpr4phi4ND7uVOM4UTaGtJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":109384},"type":"module","gitHead":"de89e5db0b842b8b76cbcadee2134b6b24d7615d","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.19_1773220341504_0.34623424270321546","host":"s3://npm-registry-packages-npm-production"}},"0.8.20":{"name":"obsidian-hybrid-search","version":"0.8.20","license":"MIT","_id":"obsidian-hybrid-search@0.8.20","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"3cd39864ae90440a1400d09d28649b0a6381e4a0","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.20.tgz","fileCount":12,"integrity":"sha512-p2Rps1gYwHNGtvWsLoIzA8RQnUc4EOwQUADs8hDUL1ty6BEBk8cZG973NtkZOoMlkNDoG96NkCYHSvD5xtK5VA==","signatures":[{"sig":"MEYCIQCEMFuvK3G7gQGTwoaHeT5tmrfbphMflvQxb+HwaWuRxgIhAKqaKoy2m3PvrQwU69wx750+IgMX/c3D7P9Oz7v0c11C","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.20","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":110919},"type":"module","gitHead":"4e4acdacb563f0c1138a79491b84d771e13c015a","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.20_1773240382167_0.6641921845792556","host":"s3://npm-registry-packages-npm-production"}},"0.8.21":{"name":"obsidian-hybrid-search","version":"0.8.21","license":"MIT","_id":"obsidian-hybrid-search@0.8.21","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"42e3086a95812deb022081a62960ad6993aa66a9","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.21.tgz","fileCount":12,"integrity":"sha512-cWrPT7jpBG0b+b/RL3B0nPMEbqMN+g53frPxspUXUi4lOsJ6U1Xl42NS7a0zmDZchkiRgVZLhiolWBNs3N2s0g==","signatures":[{"sig":"MEUCIC+4RBGmFLB38MCkUEXU2gAZDtuzBl1B/bsadTVtlVv4AiEAt+SiTNdjUeAq+H+0AzhS/jVgnHtf5GouazOrDQn70S4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.21","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":114226},"type":"module","gitHead":"934d5aa7fe3ff1ba2e82543830941c6cdc326a5f","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.21_1773241915122_0.599435919452973","host":"s3://npm-registry-packages-npm-production"}},"0.8.22":{"name":"obsidian-hybrid-search","version":"0.8.22","license":"MIT","_id":"obsidian-hybrid-search@0.8.22","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"5dcd3d63a1bc8001b51936a1cf4c21b045ea6147","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.22.tgz","fileCount":12,"integrity":"sha512-kqjF59MW4IQaXxumNcEU6eMyl2dOl3EkOSzw1RIOS7LzXoa+aVTFlJj3A5pMN1IOrCTHCC4fHw8jS+M7SSTK2g==","signatures":[{"sig":"MEQCIFfV3gLsOa0zz3DyH1A1o0Ldxz5Sa0HGezQ1G23kXq1PAiAVfUXtgBR+gkG9hPXnq/W7ppbXbaKCmcQ5WGisP+fLsw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.22","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":118744},"type":"module","gitHead":"a279314530060b5c90ee53a302333f17769be585","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.22_1773243716203_0.9126423224527729","host":"s3://npm-registry-packages-npm-production"}},"0.8.23":{"name":"obsidian-hybrid-search","version":"0.8.23","license":"MIT","_id":"obsidian-hybrid-search@0.8.23","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"11b7d4cae64b387d1a8c83675a8d16c59f0264dd","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.23.tgz","fileCount":12,"integrity":"sha512-zuKX5LeDjjB8BmOwsAg5V9sWPRsk04Nr5fk8CR1SAusz1685x0JbLflIkgNGIwEng5lYyrjbWNPAyZer+g5Ybw==","signatures":[{"sig":"MEYCIQDpsbSwqHVYmMmxeZezd6Sq/43uOLDOf++qxC9A/EvnTgIhAJuOvFWz6ZvfyyACHVOu0KyMQPoX/TtM+3y0jAlX2iyH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.23","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":119842},"type":"module","gitHead":"182373c349ff8a9ad11e12fe48e5d819de691175","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.23_1773244975619_0.46888319089294606","host":"s3://npm-registry-packages-npm-production"}},"0.8.24":{"name":"obsidian-hybrid-search","version":"0.8.24","license":"MIT","_id":"obsidian-hybrid-search@0.8.24","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"bdb8b185bd781b9ab5554bde902a4a91e17e0b46","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.24.tgz","fileCount":12,"integrity":"sha512-Ode0Y+gGTlatGNZYZ3kRTAsG7ICMfDiFQEHfW8Gc440bArTPKQs1bkXFBCTo2V/PjIJlXFkQuPOrXAzhOxuwVg==","signatures":[{"sig":"MEUCIQC1qscLPxEFUrgNSQ/kungh0qIJLY2XamN9nYBwSfrEHgIga1+OpJ/t6ZiXyjotAEKBrHhZlAbynUS+qriwo4WlfJw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.24","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":125287},"type":"module","gitHead":"5b96a9ca954fe49f5feff7b1e6d2de3b84bd7dd1","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.24_1773249988107_0.5973839960836005","host":"s3://npm-registry-packages-npm-production"}},"0.8.25":{"name":"obsidian-hybrid-search","version":"0.8.25","license":"MIT","_id":"obsidian-hybrid-search@0.8.25","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"b6b51b6f09c38b5574766753becf3854e1101275","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.25.tgz","fileCount":12,"integrity":"sha512-eq05RMrH2wc2dmdM7WpY09bnDO41GJQtfFjw9JpzZEZ0kk1C+R6UJaeY2KViE6Zfp6bCmttd6jmPD5xKksgt7A==","signatures":[{"sig":"MEYCIQDXa4eN9Viafs/9o8gHuhySFV7Jjxeb1twfYFw6OewpJAIhAJyGGW770yAKQTTVRs6qIltz0Hx7QVwAynkkUKoshauO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.25","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":125775},"type":"module","gitHead":"4510ae7e44d54e4c641bf2cf19943f00b56e445e","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.25_1773327376451_0.9463574584116339","host":"s3://npm-registry-packages-npm-production"}},"0.8.26":{"name":"obsidian-hybrid-search","version":"0.8.26","license":"MIT","_id":"obsidian-hybrid-search@0.8.26","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"73bc99351af6e62658098d9e8dae049f94b3b698","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.26.tgz","fileCount":12,"integrity":"sha512-+IpY3pkgrCXc6tp+rWjFLzKtleg+D5yzGBWZ8yL1eQtkoYyxOQtqEoZB3fusvP6o+V+f48YNK9af2M3GELcf4Q==","signatures":[{"sig":"MEYCIQDekVA7k0Qc9HCmWxWQ3LeN+7SYMj9pgsgr8+xTqWkG1gIhAI8kR1u42+Kkb+qoZjDdeWANBFbcyGewv78jxqIwql2R","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.26","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":126351},"type":"module","gitHead":"ec9780688b066deb4778d1f450e673e8dc17e694","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.26_1773327778915_0.6675671632326319","host":"s3://npm-registry-packages-npm-production"}},"0.8.27":{"name":"obsidian-hybrid-search","version":"0.8.27","license":"MIT","_id":"obsidian-hybrid-search@0.8.27","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"7490424e34d7c657f0d9e83e2bd390a3e3a1d5c6","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.27.tgz","fileCount":12,"integrity":"sha512-+QgpK95hj6NFZeiIXiYOQQNjt9LcJdzwfDfjVnkHyBJ01D5FdqkdfLBYAYkoAvKZI0uxslTA7yIuKBafhbMqOw==","signatures":[{"sig":"MEUCIQCYMpZ+4aSnaMd1xgcqATmDzjA0xcFKJ0kdcBsYfAg/hQIgb18eb6FojrQqVEdzMeeXmbhCff7Bvg2uIjjJIoobpMM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.27","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":126365},"type":"module","gitHead":"939270c8d3189c19ffd25481bab14ca997a6225d","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.27_1773327967307_0.23593044815158404","host":"s3://npm-registry-packages-npm-production"}},"0.8.28":{"name":"obsidian-hybrid-search","version":"0.8.28","license":"MIT","_id":"obsidian-hybrid-search@0.8.28","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"6bd1ea76e54844d3c303761e499c8411bf610793","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.28.tgz","fileCount":12,"integrity":"sha512-Fa8kkKJa4WzAlXfaL04C2yeEdGzky74lGt1Dx9Zai6aRuMszrLHj+fVypluveesuenFkJyrjB2a+Tmn68qfpAA==","signatures":[{"sig":"MEQCIFJ7g/VR5KimPf89DVlte+L+0j9XImdeaY7to6RusYgjAiBZ8DFUnfebfLAaOyIgz7mX/PBBfaI6A4BBdkiEIglZzg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.28","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":126478},"type":"module","gitHead":"23102c02a89ab8decc82b79e40448d9310447f57","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.28_1773328766554_0.729978702728199","host":"s3://npm-registry-packages-npm-production"}},"0.8.29":{"name":"obsidian-hybrid-search","version":"0.8.29","license":"MIT","_id":"obsidian-hybrid-search@0.8.29","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"2115ce805338265bd1e0ddbe6bbb21bde92481cd","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.29.tgz","fileCount":12,"integrity":"sha512-By3Bem16xjK3wCHbAUbqaYaZXuIHAwoHE7zyHBXKZJBxU3jQO99WVuz5TVseChte+0VESwOlFxsXYdzR0XK/rg==","signatures":[{"sig":"MEYCIQDjp2GtveGIkbp94m4Dw0kmLv7Y5kl3g/3B5Jq4yrSOgwIhAJ/+uNjX2UDGcpNW97hg6UeyXSHrweq2AWbaUESdcfWp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.29","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":126731},"type":"module","gitHead":"9ccb7332a8773e174515305e2554078d6bf30fe1","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.29_1773328949822_0.4250292794975947","host":"s3://npm-registry-packages-npm-production"}},"0.8.30":{"name":"obsidian-hybrid-search","version":"0.8.30","license":"MIT","_id":"obsidian-hybrid-search@0.8.30","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"dd09016b18b05885373a80cc9aab18b22eed4456","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.30.tgz","fileCount":12,"integrity":"sha512-W5mfOCv15GiFpsY93Pj5ASf7aFDjLwQ9E13Ct1n4bugAZ9TPegI28efIANvgWDeLDkDOpUwqd54J/EGa/xNv+g==","signatures":[{"sig":"MEQCIGLoaFMy061WMeW+bA8g9uyTRxboO2x+ICaCGN0N4KyuAiA10MAUmmkdC+wJ/3Vuf8TA7wY1jvaFHBRAdyY0hzz/mQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.30","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":126825},"type":"module","gitHead":"34d8530b48afbc820aa50f0cf14812c38d846251","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.30_1773329363898_0.015669790969115915","host":"s3://npm-registry-packages-npm-production"}},"0.8.31":{"name":"obsidian-hybrid-search","version":"0.8.31","license":"MIT","_id":"obsidian-hybrid-search@0.8.31","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"477dbef72f6db3cb66b876e017f30442e692f944","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.31.tgz","fileCount":12,"integrity":"sha512-+9jh382cpG6rYi/JarIFokx7TbXjnKilPxG0Mdl2km7DKnUSz9h4gX9UEw/2H94X5DJxpWra6X62Kb/APgGiJw==","signatures":[{"sig":"MEYCIQDPkWL0G6nnsLqKsagLL9BYvmZYzozvKGZxp/MiyVoawAIhAPkA7dQ1Y+dwJeENLW6eFtqr6pXG+HHn0aplIJrYWlx9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.31","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":126893},"type":"module","gitHead":"decef832d9a79984fa89a3e834030bbf5d0a4305","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.31_1773329813429_0.2634505640618219","host":"s3://npm-registry-packages-npm-production"}},"0.8.32":{"name":"obsidian-hybrid-search","version":"0.8.32","license":"MIT","_id":"obsidian-hybrid-search@0.8.32","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"8316dbbac949bcaeadcfc093b8c0413a1c49f425","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.32.tgz","fileCount":12,"integrity":"sha512-x7w/jLb4w8GpHmxnUxbClQI1DlVyy7Ouxtt3EjHsmY0QGKZQJmQ2tLiVLGOJP8iHU9J1mkNDBuGbfHWCzX5qew==","signatures":[{"sig":"MEUCICWH0gwfHPqGnhQccYe7ymYnDfzi1JgTR4MRvCUTrdc3AiEAhGxjD1HG3iQzFImFOwBkc5Lj499oBqhjk1qlfMyTB6k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.32","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":126943},"type":"module","gitHead":"fdda21b22e44e8059a5d4e07b9479d6f24bd1064","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.32_1773330953431_0.342011353071747","host":"s3://npm-registry-packages-npm-production"}},"0.8.33":{"name":"obsidian-hybrid-search","version":"0.8.33","license":"MIT","_id":"obsidian-hybrid-search@0.8.33","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"365017f3fae1a64a261b015b412517a655191737","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.33.tgz","fileCount":12,"integrity":"sha512-s3KwAMURYpUyEbyJWECcOh20qLQmndkY5LaxjS9Ygzoodq+JZqJqMtavnW7qFtcjVK9GbO+/Hd+eU2LNPgq2Uw==","signatures":[{"sig":"MEYCIQDsxTpsN3DwIKK6BvJT6k5PWlbRs1rEUg9XDZKb3pFc3wIhAOc0vbvWkR4c+UMSo1JRnY90PcmUZXSvp263bA28TZJJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.33","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":129112},"type":"module","gitHead":"5e3ee605021d70f97f0a193fcb727f8789d8e8f8","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.33_1773373619165_0.5790572222701358","host":"s3://npm-registry-packages-npm-production"}},"0.8.34":{"name":"obsidian-hybrid-search","version":"0.8.34","license":"MIT","_id":"obsidian-hybrid-search@0.8.34","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"c879771dfad3dd61c0f9a9ce76784901393d7e9f","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.34.tgz","fileCount":12,"integrity":"sha512-qSUlnbSRChaxJCWihR3NKFBZNqxghYK9VFctSMdHyDE8I4zBv+gD4+0taIJutC9Yc3X+9svQpSSWqem/pJOpcQ==","signatures":[{"sig":"MEUCIQDCuTdVz2iIQLHw+2yWyUjRIg4PrSPaJvBo68A2ko/3lwIgGJX97duldbLLThOczm1fC1lPiTEDa8IS8xVSnLSVgIQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.34","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":129444},"type":"module","gitHead":"9440828e2cf974332403d2379092e4491bf02eb3","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.34_1773374626470_0.8143272856060595","host":"s3://npm-registry-packages-npm-production"}},"0.8.35":{"name":"obsidian-hybrid-search","version":"0.8.35","license":"MIT","_id":"obsidian-hybrid-search@0.8.35","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"b5e82d1876f49f32ee84b9266cfa8cae4813d623","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.35.tgz","fileCount":12,"integrity":"sha512-C5kR1bNvch+8ng9UuvfdXj4poyyIzJ2U2eiGHnhvQ3x2GO1pvFTFPOci2AvhDpL35ldOvXL3R8EJ7j7curYdeA==","signatures":[{"sig":"MEQCIBMPdJkYVMlGRaQp1nhqUs/a04lH5G13OJ6bPXHmLe/3AiAywW3TIp3rddMRCdMhxG5c3DadY+QKbxkVfPrbPGObMA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.35","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":129856},"type":"module","gitHead":"409104304bf836772cc8668596a46cea1349fde7","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.35_1773376528389_0.9993330194745305","host":"s3://npm-registry-packages-npm-production"}},"0.8.37":{"name":"obsidian-hybrid-search","version":"0.8.37","license":"MIT","_id":"obsidian-hybrid-search@0.8.37","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"eef2c4956fc737a09e67687d89b79c40ffd53543","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.37.tgz","fileCount":12,"integrity":"sha512-Fi1nWHQt/J71T3Fi2cW4dBYhln70GmfWwgIwvIt+polW4cnqcg6auCtpRsZIP3AVB9bkdbVanUk8j8l5nGKa0A==","signatures":[{"sig":"MEQCICMFSrMwdxArfGMyBlOSqFbp0p2/OwjKBJdfbdF4eow1AiBAE5FI4K2kNYH1B++zq0s2JhKZCD1ZXjA0eR7p7pzD5A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.37","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":130884},"type":"module","gitHead":"3ea07d872cf9b4e2bfceec423668a3dfd92f7ea3","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.37_1773393023020_0.48631521099433694","host":"s3://npm-registry-packages-npm-production"}},"0.8.38":{"name":"obsidian-hybrid-search","version":"0.8.38","license":"MIT","_id":"obsidian-hybrid-search@0.8.38","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"6668874c80ec4f653f48ef298efc0bcd433aa868","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.38.tgz","fileCount":12,"integrity":"sha512-Pxxg4C2u9NyNxCc0TKahw5/HVhf1SvRC9pkSbK2iSzpQMQmbZoSivknwXl8/BQUjBDKlDLyjJBNKima9eJ0kMA==","signatures":[{"sig":"MEUCICgQ0/4dnqHY4bVSGtBV2UKMm+P+keD7If2BJmJUIASrAiEA+z7N1OTBCxKiaVERBIHrf2fM63QSd8O+1Q6EV4KM/vI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.38","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":131645},"type":"module","gitHead":"05e108c2aedceea10bd29e3f2366687f3930efc5","scripts":{"dev":"tsx src/server.ts","knip":"knip","lint":"eslint src test","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test --fix","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.38_1773410513462_0.6226607451045627","host":"s3://npm-registry-packages-npm-production"}},"0.8.39":{"name":"obsidian-hybrid-search","version":"0.8.39","license":"MIT","_id":"obsidian-hybrid-search@0.8.39","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"4c2afd8597acf9034a8658536a04a531e6708584","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.39.tgz","fileCount":12,"integrity":"sha512-2GK0lIHPKsxPC+0Do/Ua0JugJ8b6wjZK+S3mfCpQfoTvV4J+RkphEs4JntiSm+20fY3efcI44mY92fxe8lySHw==","signatures":[{"sig":"MEQCICUMM6NaKsuGii3l4nk165SL8nMs7PoDObbWlzQbwTE6AiAVdk1KHhFuqs3Lfex9qqR6q9+eDNhUbLaIPju00GqfTg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.39","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":132017},"type":"module","gitHead":"d5a73bbb56aecaa6939350782cc71eeb1d6f39eb","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.39_1773463024145_0.5362710649804141","host":"s3://npm-registry-packages-npm-production"}},"0.8.40":{"name":"obsidian-hybrid-search","version":"0.8.40","license":"MIT","_id":"obsidian-hybrid-search@0.8.40","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"7494145c5351e208950bb87040032f4b2e424b84","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.40.tgz","fileCount":12,"integrity":"sha512-ly97IVe+Gbo5qAxNhsB+p997OcoSjm05K0hXLjKCzOP0y0N9zNUOc5iRmNcppIpSJNyFIGBLgyEufzsi4IIfqw==","signatures":[{"sig":"MEYCIQDvZBdRL//VwIZYtoeTNL680PPen1iLwrgrs6FwK6O4mgIhAJY/8nsEVRvBWxfm9PEw1MtpwCaKNdV6IpJvWQ/6uPdK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.40","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":133389},"type":"module","gitHead":"22934c292baa9c2ce30771540135b561adc7f262","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.40_1773473126262_0.24748568812596927","host":"s3://npm-registry-packages-npm-production"}},"0.8.41":{"name":"obsidian-hybrid-search","version":"0.8.41","license":"MIT","_id":"obsidian-hybrid-search@0.8.41","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"29af0607c72a3270af418cd589538d0cb973db23","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.8.41.tgz","fileCount":12,"integrity":"sha512-Ri0H0SLEgEZMYh8/2s1V3iLbwEOWTEIUHHOj8M/JNXS6u3k72GF4eXmANYGYIA2I6pULdPjY2JeuQhdLvRNVrQ==","signatures":[{"sig":"MEUCICmIVc3G0Luxj/G/GpK8ZLAFBYA4/verzo2+pnltI9O4AiEAn2haT6YmziJyC5/v3HyWlsHanqTqtGjwlzxRy2fCf4I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.8.41","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":133767},"type":"module","gitHead":"00d1b77a2e89a5adfbf300544636a36cc0440fea","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@xenova/transformers":"^2.17.0","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.8.41_1773474477913_0.676908822713036","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"obsidian-hybrid-search","version":"0.9.0","license":"MIT","_id":"obsidian-hybrid-search@0.9.0","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"9f55682d43af3785be92932c85d90bbad5ffc894","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.9.0.tgz","fileCount":13,"integrity":"sha512-vXXFvFHnjbEhllj5lE48NmK72mJh7D4Oy/lx8+Wmhxbk01BHFHNjFAIZ94Hc1agNS7dCT0QGlZf0Vq2pPN/Egg==","signatures":[{"sig":"MEUCIB3lTKIB7/tvP/n1nQkY5Cq0kni2cd9qGFfoLdkwGZ95AiEArJDhNYWe256j/hxrO6QBxvXfDwFKbWeisKiLxl56KhM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":145344},"type":"module","gitHead":"34000ab5f6bf34f88f4b570ee50f3793ab8f283e","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@huggingface/transformers":"^3.8.1","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.9.0_1773509383686_0.5789336865470607","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"obsidian-hybrid-search","version":"0.9.1","license":"MIT","_id":"obsidian-hybrid-search@0.9.1","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"ba6d62aa6a7d202cc3c590a208546103d2405823","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.9.1.tgz","fileCount":13,"integrity":"sha512-q0fDkuM8OQQ7QIhQqDCgVF2p8yOHadURzDV1dw1n+zJzyX0/UchAUguYA4cK+7ZULB9lTh4kuY5+96D+5zQnaw==","signatures":[{"sig":"MEQCIBPwOQDgfI1K9L6oZgmAJ2ygjVboFj/ubXyzBS7+Gvx5AiAOzLNh4EaqQhWPbTZ+1JX3U1OpVqlG7wvaShVio6GVWA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":145347},"type":"module","gitHead":"58fe83a32c1df154865d3af71f5dc019184dff96","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@huggingface/transformers":"^3.8.1","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.9.1_1773510684823_0.7199693906106903","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"obsidian-hybrid-search","version":"0.9.2","license":"MIT","_id":"obsidian-hybrid-search@0.9.2","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"766396053fe1ae318c06f2963d1ec3fc0f699339","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.9.2.tgz","fileCount":13,"integrity":"sha512-uIxnweS7dJqWYQzCes1lxz2vjX6a1IjlaIqsJYjVug37ERK8tX/L/oY9kRKosdErSzWir8NArLckLfZEFd5rpw==","signatures":[{"sig":"MEYCIQD3MTFSBQ8c7yzoHhbY9A7CMXPiDOLmIJbfzWTlLawhOwIhAKZRzfkdJWWsD52EruUWHvkJJr2f5C8QVsKAiCq3Rm8Y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.9.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":145400},"type":"module","gitHead":"850695f009ccf59495eaefd3b20a388318c6ef58","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@huggingface/transformers":"^3.8.1","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.9.2_1773512306332_0.03673170979411022","host":"s3://npm-registry-packages-npm-production"}},"0.9.3":{"name":"obsidian-hybrid-search","version":"0.9.3","license":"MIT","_id":"obsidian-hybrid-search@0.9.3","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"4f3ac03b8fe2664b2cc007e86295408e5e3ce463","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.9.3.tgz","fileCount":13,"integrity":"sha512-LuOkSbWXYTZQHpTUyNu0VxDJgO6YcSuzS0VX2ltSnxc1roRwDnjaU6kBOCm1z18bybsjaOWkqlaAkMir/2A1Qg==","signatures":[{"sig":"MEUCIEZJA9tp/UHN2IygNh+Da7whNhkm3BPNPiXtjD9yXGAfAiEAt7djhGpl86P4Ct1ddOZOqedIFOfj+cJmJ09dCtvty9o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.9.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":146738},"type":"module","gitHead":"d155c032d94f60bebf71defe336b9775112c0053","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@huggingface/transformers":"^3.8.1","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.9.3_1773513253024_0.48995789797037137","host":"s3://npm-registry-packages-npm-production"}},"0.9.4":{"name":"obsidian-hybrid-search","version":"0.9.4","license":"MIT","_id":"obsidian-hybrid-search@0.9.4","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"4566e691583743ef54743ae063e4edb75649e939","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.9.4.tgz","fileCount":13,"integrity":"sha512-x8UAxveYtvMHmznecizzQFVx9QVpsc+KPMz1TUDUSizZ6xrfYXR8Nr3zomuuv1dwiH/VzfBHR7Xmqat0FfgTfg==","signatures":[{"sig":"MEUCIC6aZUaJOOPEIAL5+54hybife6BcdfvbJxujPyAjETCoAiEAqSsZL5LfNh0Uz8niwQXB/dqGBHcQaZHshOn82XYviBk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.9.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":147610},"type":"module","gitHead":"ed2de5c67f3b66a0d46e176a42e2409af0ea1f08","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@huggingface/transformers":"^3.8.1","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.9.4_1773517003207_0.311569563722059","host":"s3://npm-registry-packages-npm-production"}},"0.9.5":{"name":"obsidian-hybrid-search","version":"0.9.5","license":"MIT","_id":"obsidian-hybrid-search@0.9.5","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"1dde32f643b376011ebce251f92d8fd4a5e48c93","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.9.5.tgz","fileCount":13,"integrity":"sha512-gqVMBygvGPwZGY6lqiY1mHFAP1O8WrQDakLLy8r4YmXMMOqNJFEXAhB6F+gBmb/PFg8wLJGn7sZxRuSFV4GsCw==","signatures":[{"sig":"MEQCIDaYeJcjv8MjAzeLtzk6J6oE5eVoZlsaZU0jO2nAwpUdAiB/0FhzCFTlw7CeEUPBadtbKAkBl5M9ZQDBHb3q1lrKXg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.9.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":150952},"type":"module","gitHead":"b2378b8a1f3797a8b8faa99988370095d641b7e8","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@huggingface/transformers":"^3.8.1","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.9.5_1773521184724_0.36122913288808123","host":"s3://npm-registry-packages-npm-production"}},"0.9.6":{"name":"obsidian-hybrid-search","version":"0.9.6","license":"MIT","_id":"obsidian-hybrid-search@0.9.6","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"67e3035dc222427f93aaeebe630a6cc322eadf05","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.9.6.tgz","fileCount":13,"integrity":"sha512-kFcGv2mdBFaK3m1OiYL75GXONDLrTn/dFypXZEThrtHUx8PBZMSrI9yojvwi2XsU0eOz9OTr36wRhxo/lK0MnA==","signatures":[{"sig":"MEUCIQDNjsRU0dSelYP7p8kJn0I5HYaZTEsIwJOxzIlqD6ejKQIgFDZUs53UiK3VjfG6nFVSCb+xkMrlfe2Vr6oimZshE64=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.9.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":157765},"type":"module","gitHead":"101d495812f22a9dd5d1e0925e6d982f88e60996","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@huggingface/transformers":"^3.8.1","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.9.6_1773554666150_0.5941641213786975","host":"s3://npm-registry-packages-npm-production"}},"0.9.7":{"name":"obsidian-hybrid-search","version":"0.9.7","license":"MIT","_id":"obsidian-hybrid-search@0.9.7","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"a3266a8e99090c3052630dd2b3815752d0eb6fb7","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.9.7.tgz","fileCount":13,"integrity":"sha512-VNzVha91chwVqpW93EWyGHTDyWYQ0u2sRYgSDzBIVHZeTshr7EDgbzdklcSkpAh39XHe8Ep9sePXgHjUAgpbmg==","signatures":[{"sig":"MEYCIQCG//gs8kE2qkYhCewjlZfbTcbG1zmLWTZV54XCikbsZwIhAPI6q90FEUnvasJRTedaby6H53c9TA8zj1oJ6SdPMTIE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.9.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":158073},"type":"module","gitHead":"1d3f7547392a7a168f26043ef807767b50eccfe0","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@huggingface/transformers":"^3.8.1","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.9.7_1773561887391_0.25027712398125","host":"s3://npm-registry-packages-npm-production"}},"0.9.9":{"name":"obsidian-hybrid-search","version":"0.9.9","license":"MIT","_id":"obsidian-hybrid-search@0.9.9","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"d611f82387f03c4e385e0740723ca04cbddf0205","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.9.9.tgz","fileCount":13,"integrity":"sha512-6FJbOlJUtODURXtPcrwn3NrNytUM1z6d8dB+HdDQ6c6QMKIPpnVvphZeU61hgqTdyrokz3w37gTjej9cuqEhzw==","signatures":[{"sig":"MEUCIQCsoG6/2Wz41YkPR6dgj7dnyAuSMXz/IGV+qWc3v6x6lQIgDqk1y0kflabhBxzT077gHKL8YEQv4nXw+oCLoHoaqQk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.9.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":162233},"type":"module","gitHead":"06158e96fe46de8324f9207eb88dfda05260317e","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.0","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@huggingface/transformers":"^3.8.1","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.9.9_1773597862154_0.7033579968034067","host":"s3://npm-registry-packages-npm-production"}},"0.9.10":{"name":"obsidian-hybrid-search","version":"0.9.10","license":"MIT","_id":"obsidian-hybrid-search@0.9.10","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"95cb1b16489a704ce9f62204351084f2cfb84b87","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.9.10.tgz","fileCount":13,"integrity":"sha512-6+fT8Saa9U/uVqluQXWGxTlQRhhW+5k7e8mA/F2pWmdJX3wIsPdwE8H8jEYi+s6bZ2661P/0OzLKcCfhQ5H8Bw==","signatures":[{"sig":"MEUCIQCB8Ax0oyPqTTkMfv2g9rHNhXNWXVn81sseBVWu1YW57gIgYzIFNp4Ur8XU86kGLYaQxWOI2xXxptlNrwFFzeJr3fU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.9.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":162234},"type":"module","gitHead":"cad520ff85de66b89afc4770abaa9b4115beffe7","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@huggingface/transformers":"^3.8.1","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.9.10_1773819284428_0.2513046616879786","host":"s3://npm-registry-packages-npm-production"}},"0.9.11":{"name":"obsidian-hybrid-search","version":"0.9.11","license":"MIT","_id":"obsidian-hybrid-search@0.9.11","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"3e76dc7984fb7c4038741391ca137434badb00a6","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.9.11.tgz","fileCount":13,"integrity":"sha512-0SRm+atvzSfI6k7g3pQMgSwXC2p51VviG6xzgJcLAXpQUXNN6w0aYpL/mqTuaNuqDpktkTXwvzYlZKwWy5swiQ==","signatures":[{"sig":"MEYCIQC6eUE1+pc6kdk3vQQ8wvNYr1vIKJwtyydYGYOB6BeLjgIhAIHPuIUdlEo0bONaE9yxlhdMlUG6oYKjEJe5YOE/IlGi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.9.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":163285},"type":"module","gitHead":"298e7c8f843a9de67ef9006f5aad8f43ed8891e9","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.9.11_1773992019208_0.009738268268379313","host":"s3://npm-registry-packages-npm-production"}},"0.9.12":{"name":"obsidian-hybrid-search","version":"0.9.12","license":"MIT","_id":"obsidian-hybrid-search@0.9.12","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"d891e93cc5b8e90a100508bfa26abfc36ff0e557","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.9.12.tgz","fileCount":13,"integrity":"sha512-6FiVLwbKJ/556+kQUPgXzQbOpqyzDzRiDtcwgjEFmpszXK8ZfUptoebXplFycJ78vEAhm6pbwtsFBC40YV3ZHA==","signatures":[{"sig":"MEYCIQCq/c6D4ZJcFwr9Wa2slpeRcDExmpiaSbpw9anX0eb0WAIhALX4cULZc+0wreBb3t4m/VjWnc/wxBwKGyr7OcygpaqT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.9.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":163888},"type":"module","gitHead":"7ab11433c458db2a2e8258db00b83ddc83fe379c","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.9.12_1773994084727_0.30189720339314663","host":"s3://npm-registry-packages-npm-production"}},"0.9.13":{"name":"obsidian-hybrid-search","version":"0.9.13","license":"MIT","_id":"obsidian-hybrid-search@0.9.13","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"96e47dde94ed9c711bd1e3d29515b24304a63a83","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.9.13.tgz","fileCount":13,"integrity":"sha512-jdgr4halXf9BfTr69svDAmgMYOyilLfqElrJBQFQ9CgKVy1KK9hviBJLQ4a5BDanPv3d4VObebUTEwgeEZrvtA==","signatures":[{"sig":"MEUCIHeZrjMEJJG0cdiGdrIDSkbJdOFx0WC2dUjWlDfkvah/AiEA9ZAFdDsRCh0N0IhmK8xl52aN0tzlMLvkOLqSTnN3d2E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.9.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":165357},"type":"module","gitHead":"b0008b9e26e842e3595f44d86577745171192e37","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.9.13_1774001255756_0.6210142530612237","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"obsidian-hybrid-search","version":"0.10.0","license":"MIT","_id":"obsidian-hybrid-search@0.10.0","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"15dab24613445f14ed21de4487a6e8ab04b3f2c4","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.10.0.tgz","fileCount":14,"integrity":"sha512-8GN5DqWfCtvxEBdlIzhriH+NKYiVDqNSLmPzhDStjjH6tct4E7OIhhBeAH6COdI5rPy36Hpj2MfTq27vaeQ/LA==","signatures":[{"sig":"MEQCIGjB8vlKRhxcYjhPKmKB2hLo1wJJYiIajb4rVLhjO7SbAiADCW+imUIiTV6W6eFEynkqsbgCxI6KoflR0EDate95QQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":169846},"type":"module","gitHead":"8c008b37bfcc78622cfa8bb9b530181f0a9f4527","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.10.0_1774085245178_0.7505763708473951","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"obsidian-hybrid-search","version":"0.10.1","license":"MIT","_id":"obsidian-hybrid-search@0.10.1","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"0a1966377cc6a44f9f366b0ffac89ebb53e23da8","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.10.1.tgz","fileCount":14,"integrity":"sha512-XZH0LpTMLNNnKoy0ioExIuCokmF31wgj0kHM1PZudmviZmfYTFEMJVaCuZSmMjoyK2/BiVuKT0tf1eDa7YoBZA==","signatures":[{"sig":"MEUCIQCSNrwAzeyqiuTY3RFLRyc/69n8BaVxNlC1h0H01H/pygIgbLEvP7h6hSZzy5xkssyDFYpbtR0otwHr5fk/G9sK7KQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":170216},"type":"module","gitHead":"86b3e213ded61b5212865d53d0876bb80d8dd091","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.10.1_1774086646660_0.1764452850892968","host":"s3://npm-registry-packages-npm-production"}},"0.10.2":{"name":"obsidian-hybrid-search","version":"0.10.2","license":"MIT","_id":"obsidian-hybrid-search@0.10.2","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"173f8cbf35767e3d8f1c793ac309e11ab5266efc","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.10.2.tgz","fileCount":14,"integrity":"sha512-RqAV1YeGA20hdeSBtKN+RpY1E1N5mLRP3jyC+ZNabY5RgAz9ALviglnNMJLKTIVivJOlrol4eF1d1+utGEEfQw==","signatures":[{"sig":"MEUCIHQYNzwGwPqGbvNjbeocT09nKD7tMorXn5ACvkgR1f6AAiEA/G7ovPeMuPaKcB4S+AhVeuk7Hn77nsMOe5GZFejuCAs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.10.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":170494},"type":"module","gitHead":"e965d9bfcaca2c769f29ced6535ee227bc15445c","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.10.2_1774087285678_0.5368512108998822","host":"s3://npm-registry-packages-npm-production"}},"0.10.3":{"name":"obsidian-hybrid-search","version":"0.10.3","license":"MIT","_id":"obsidian-hybrid-search@0.10.3","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"2fc5cdf7007a6a17d7400630dc578af10fa82135","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.10.3.tgz","fileCount":14,"integrity":"sha512-/VoRQnCfER97enffk5G2/zi90OlabI1Bxgrvn7YvMyjBg9RYu2ljGOsD5QM1Ah7VXJvZk+ewkBhNIOiHMT0hlg==","signatures":[{"sig":"MEUCIAvaoqCqUztTeAmpJrfvhvBQtLEpZ+DpWMBAZHdP2UwOAiEAv+S1ljuBiLilRzUqgD/xkoELWU/PX1ndjMVlmNLhVb4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.10.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":171906},"type":"module","gitHead":"38a1f2fc9c896c720c16f8de989e3e3221271885","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.10.3_1774088665210_0.6440805584114899","host":"s3://npm-registry-packages-npm-production"}},"0.10.4":{"name":"obsidian-hybrid-search","version":"0.10.4","license":"MIT","_id":"obsidian-hybrid-search@0.10.4","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"66c6a06fab0809ac2f130c950ab13d24adec8494","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.10.4.tgz","fileCount":14,"integrity":"sha512-UARp1zylMddKUxtMBGWzeh9WfzvE9w6rrKeXWRK3LHB+eiLYnbPUlVNMuGZEakf4V9TuPh/iuZERllLtP/ET8g==","signatures":[{"sig":"MEUCIHxFQI9GtgBJOFR3Gi2WJ8Vs3fE2f6wqDX8Wq0DkyQAiAiEAglhl5PPO7sq27rKmWFNMGBpHUfo0wXXIxVoHHH2UF7Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.10.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":172130},"type":"module","gitHead":"6b100db04e9a12968731182d6a12b171ec84d0fc","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.10.4_1774089332224_0.2261678312209512","host":"s3://npm-registry-packages-npm-production"}},"0.10.5":{"name":"obsidian-hybrid-search","version":"0.10.5","license":"MIT","_id":"obsidian-hybrid-search@0.10.5","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"7b421670beabbda9e60ea8018f919162b0369793","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.10.5.tgz","fileCount":14,"integrity":"sha512-M6lMQdOm1PO/7DjvwR6vgx64glKdDt/6dhSqgAGmvXkNs96eAurK6irFtljzFOi2C75mtudWjkSfsaEogv1ByQ==","signatures":[{"sig":"MEUCIGxv70GmXOJqDgj0jfjuhgWEMfum7eMD+ARDqStw3xB5AiEAyvI65Q9qbgrLSuCYxnmuaBCycZSbZi50qnIs9ob2iKk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.10.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":172424},"type":"module","gitHead":"37fbbcbc924e16164bb0da13c15be5f01f68f0fb","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.10.5_1774089770742_0.4316384904744912","host":"s3://npm-registry-packages-npm-production"}},"0.10.6":{"name":"obsidian-hybrid-search","version":"0.10.6","license":"MIT","_id":"obsidian-hybrid-search@0.10.6","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"27f13c394de128aec78fce2ba6db4af65b53124f","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.10.6.tgz","fileCount":14,"integrity":"sha512-vAAwO2G3TCp4IpsmjqvSV6H0/YHPqBmdRbw5eLzlYEYnq0xGyqgSwEPJkHSPvj5HIA4o0kniJGMUrLjopZh6VA==","signatures":[{"sig":"MEUCIEgA5nXcOr0w5o1y8lv42vitTdql/6xNlv9pRlPrfINMAiEA0xHcF79StCK2ie5/dFjqD1A78nYZbAlqsJapk3wbM5A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.10.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":171957},"type":"module","gitHead":"b3c9a206e820053dcda0da6e8b1c2fecafcfad6e","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.10.6_1774093302140_0.9923170901635721","host":"s3://npm-registry-packages-npm-production"}},"0.10.7":{"name":"obsidian-hybrid-search","version":"0.10.7","license":"MIT","_id":"obsidian-hybrid-search@0.10.7","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"1ee3d1ede21d9573d631ccbe857cca5cbec520e3","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.10.7.tgz","fileCount":14,"integrity":"sha512-IK7WtL51+AZ7K+MxyRMVrNVbtBqodkSyFye/pTQ078SlJ+nX0AHCnY4rAdtp9JkloK5we79dx6ByWr6ME3sdaQ==","signatures":[{"sig":"MEUCIQCfEI2sWYkweG7TYQah39lInHxCqCfweFvmdhHoriPMyQIgQfk5FACKmxR9AYc9O4jDrsU3MnLu6mQ9elbOPH3uWIQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.10.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":171958},"type":"module","gitHead":"86738a9caafb1bd99a0ca061687c6ccf47636faf","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.10.7_1774175599846_0.7055434344129843","host":"s3://npm-registry-packages-npm-production"}},"0.10.8":{"name":"obsidian-hybrid-search","version":"0.10.8","license":"MIT","_id":"obsidian-hybrid-search@0.10.8","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"a27ee2b46a60023d71c042321f2c801cfac70f21","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.10.8.tgz","fileCount":14,"integrity":"sha512-LrCVRmVylZqlMjtYBPz2JLRIhsqdIhG+7LLoXZGPzluS2nNXjUXErwcsNAZw7+E7Z4BHJChLUukj7wLacmJBXg==","signatures":[{"sig":"MEUCIF5455p8u1A7vYdL54RnZsRLLvvZGXaOvJIPJacD1P57AiEAqmxFt7fwE8Owqh9YTLMcc8RegoXdGpXkrWJ7FL3i+Pg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.10.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":172492},"type":"module","gitHead":"b3d5c18b16755b5170a849356507d5f6fb9c62d6","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.10.8_1774199600845_0.833871883953651","host":"s3://npm-registry-packages-npm-production"}},"0.10.9":{"name":"obsidian-hybrid-search","version":"0.10.9","license":"MIT","_id":"obsidian-hybrid-search@0.10.9","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"58a47b611d4cdacd4b878f2b91ea15f87de42b8b","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.10.9.tgz","fileCount":14,"integrity":"sha512-/W7TJS2swcdYY02Dz+N+2rIGppFlA+R2MuhbGf8oIWw6QmgSkRpnqIiMl6Ma/96plXfBzERVXke5DOTnxxfJvA==","signatures":[{"sig":"MEUCIEDfOrg3bjCoRgEVMS4MDMZXdhmycPw8wRI3Ts11+VYZAiEAxc/LjauL2GQEPrhHCv0Cf6ZyiELBPYcYRpf88xbtGhA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.10.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":174175},"type":"module","gitHead":"4000c8b558284a3da5b398c932f11712a54dbf75","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.10.9_1774200902775_0.6167104174828191","host":"s3://npm-registry-packages-npm-production"}},"0.10.10":{"name":"obsidian-hybrid-search","version":"0.10.10","license":"MIT","_id":"obsidian-hybrid-search@0.10.10","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"942ca4a5de3b3ba6564668448c9f8849d3a10e5f","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.10.10.tgz","fileCount":14,"integrity":"sha512-YcZRIEA/7C9Pc09GdxOEKjZshB644eHTCPTYPyRpe/21n3YAdUKb/sCUieYfLftbk+ZMa79By9g1LOgZVfEgfQ==","signatures":[{"sig":"MEYCIQCO+iZE+5RwLokcoGwHfWjkLBJSjfFRyd87nJr8vuegwwIhAKUPLH4lXHTo2vUIO5PtV8nvt+PFRy2N8Sw3G/jOMBRp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.10.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":176373},"type":"module","gitHead":"5f5f5d53ce2ae2905d5707a0e9d4b301744d8fe6","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.10.10_1774204434044_0.8721111108542388","host":"s3://npm-registry-packages-npm-production"}},"0.10.11":{"name":"obsidian-hybrid-search","version":"0.10.11","license":"MIT","_id":"obsidian-hybrid-search@0.10.11","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"59a8f403de7d7160d92deb641590ae99b6d40583","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.10.11.tgz","fileCount":14,"integrity":"sha512-GWnhSxyat9+2lnkCU1nreaah4M0r3Us7Plrc1M3TkMpVoXGGk5/jeouFtsww8fPEgaz0iJW6/h7qPea1YWCH2A==","signatures":[{"sig":"MEQCIBvadtjHDtl3Dutxd620gd8fYVayxTPTxbvBnIBXM/haAiABao+sdZIIn84qbUOcSrfUUKKgQbNm/xQVrkrGXPgx+Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.10.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":176908},"type":"module","gitHead":"166feae75727d058a3686bfc15f42f75b7ed4685","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.10.11_1774251369079_0.8390812135341608","host":"s3://npm-registry-packages-npm-production"}},"0.10.12":{"name":"obsidian-hybrid-search","version":"0.10.12","license":"MIT","_id":"obsidian-hybrid-search@0.10.12","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"8cf22b94b469d161c252e1493615376b3bf381ed","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.10.12.tgz","fileCount":14,"integrity":"sha512-536sh0myTJZSDc9jE8aNtDgry94hZYr4xDN4+fEgFG5Y346rLdYsJEDCF+YXchC6qf7y3RRDkHA4a+Hg6aAxzg==","signatures":[{"sig":"MEUCICkUENGTaK9fNmOLr2FqGolVe+3VA6dzcwkWXBqXzSldAiEAvX4lM6cxpevQWCJYWRlaUnn2TCkBLWTEtyTVe38HZqo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.10.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":176985},"type":"module","gitHead":"2c6e414e56d6887035b7c40763f2725604458cc5","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.10.12_1774256749519_0.9717104843673434","host":"s3://npm-registry-packages-npm-production"}},"0.10.13":{"name":"obsidian-hybrid-search","version":"0.10.13","license":"MIT","_id":"obsidian-hybrid-search@0.10.13","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"3f06f61d5d3b90e1611eac33e49b2454093e8deb","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.10.13.tgz","fileCount":14,"integrity":"sha512-GD4bZZADbGwYS3Erg69YbIgS2jY5ey0C0HMc+C/faMAetB827r2Sjz9WzfD9VS3NC64mTkheexrI6ncH5EqwSw==","signatures":[{"sig":"MEYCIQDjSXcLYXNHhUwQnrOANdcOZTvqe9S/DSh7HJfjwywVoQIhALHnuAMka3hTKgpaBLHtXyL/3FT5WvfZpAgy6FTE6jp5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.10.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":177021},"type":"module","gitHead":"e801f2294360a87a818d52d7e6986f1924b02894","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.10.13_1774289199758_0.3196587685349497","host":"s3://npm-registry-packages-npm-production"}},"0.10.14":{"name":"obsidian-hybrid-search","version":"0.10.14","license":"MIT","_id":"obsidian-hybrid-search@0.10.14","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"cc73ee16979557fc78f8b4186baaa417f82df975","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.10.14.tgz","fileCount":14,"integrity":"sha512-iSFr9ahq3d7gYLTEvVLPRg8tBRQQidRqaCgW9R+zgRegre83IezfW9eqGpDq3j3y58PNU5OtnJywEjHxtsaeYg==","signatures":[{"sig":"MEUCIFyAjVf9+GY1GpdQDdDaIRKN6sQBjvj/2WCYtu22usPuAiEA7C1tSBxJ7cgtb1Kc8A3+vxN4FsEy7arv38S9oT0HjRc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.10.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":177196},"type":"module","gitHead":"6364b3fb1d6e6a70c723a39543026472e382e064","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.10.14_1774290123444_0.45225360243685353","host":"s3://npm-registry-packages-npm-production"}},"0.10.15":{"name":"obsidian-hybrid-search","version":"0.10.15","license":"MIT","_id":"obsidian-hybrid-search@0.10.15","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"f06ce25b4f5d74804dac1f956d971dfe293d090f","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.10.15.tgz","fileCount":14,"integrity":"sha512-AmK3A7XzFWMmTlevf5xCEylZVrEIbCh+FkztecdLy53iLn2+C85s71KSIF82Fq1CBMGTW0kXB5wCH8zeSD68Lg==","signatures":[{"sig":"MEQCIDbYkToZvmlgRdWC+nRnzE5hWazbTMr+bG3Miv8ghZNGAiAYehqa6I9jXuWx+uzk3pdqnO88AX2wEf68rXu1ZyZC3Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.10.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":177506},"type":"module","gitHead":"8591e5121309801b7e455b1ad7cc9864bb49a40d","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.10.15_1774291902282_0.7991574802841819","host":"s3://npm-registry-packages-npm-production"}},"0.10.16":{"name":"obsidian-hybrid-search","version":"0.10.16","license":"MIT","_id":"obsidian-hybrid-search@0.10.16","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"47a2d4d8f3aeaeb71e65b96a74d8b0aba6a91d3d","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.10.16.tgz","fileCount":14,"integrity":"sha512-5u4zvQaQC+21hD8hXQM0OGCq+UrlDwzGuOxsXJW38rN7yS/t/xak1WB9G7Xk2XAqkUu02Cq19P0mnxFJwP7oMA==","signatures":[{"sig":"MEUCIHD1bdcqBXxHtqHyc40cNEEjkylw2j2e6Rih/9t0dBZ4AiEA2JgEzSJc9Y09lJvZpArlQ+fDAXrYWllo+BsMrDbKeVo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.10.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":177506},"type":"module","gitHead":"d478f1f37d9778896455ca0bf3c7c8494f22caba","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.10.16_1774292156671_0.7602247686450552","host":"s3://npm-registry-packages-npm-production"}},"0.10.17":{"name":"obsidian-hybrid-search","version":"0.10.17","license":"MIT","_id":"obsidian-hybrid-search@0.10.17","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"0b7f6dc696fa3f4c5d5d7a18e937e4f58f8d4bab","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.10.17.tgz","fileCount":14,"integrity":"sha512-octOh2eyviaJuL370yZWLkIc+4IQKcSTl28nkxLsIteYNI3P0uMZhtoQOFX7ylF+3q2niD0BzQqF7EARXFHYrQ==","signatures":[{"sig":"MEQCID+Wj7xvdx6xoZqPS4qSWDTkzboIQsVBmTcYHXcVmyBYAiB6ZALLxjgIuW85QYtdd6Y85AGXXAeS25/Beb/ycxsk1Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.10.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":177506},"type":"module","gitHead":"3ecd58b29402124a390b14b0cb11358de57c154c","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.10.17_1774292338517_0.7998752642095057","host":"s3://npm-registry-packages-npm-production"}},"0.10.18":{"name":"obsidian-hybrid-search","version":"0.10.18","license":"MIT","_id":"obsidian-hybrid-search@0.10.18","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"bbb2fbd1e864ca78fc0c94596257369810391ec1","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.10.18.tgz","fileCount":14,"integrity":"sha512-yvqleJoqUa85zURMZ77OnkGgzMyvKJ/BN3ofqZasGQZo5G3HzDAaZV2xyULl+VHGiX9fLcpnJwJasr9CMDvp0g==","signatures":[{"sig":"MEUCIEPJ4k9er25F0sWxJf0kPhXR5wVXtOvICRs1D35d4HGnAiEA3k2JG2hHbQwHkGxsoKrYEsb358pbMyMcdCJaYlUNiXE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.10.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":177506},"type":"module","gitHead":"f09ac6fdd8f08b6f926650ae864ec26cb33a98d4","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.10.18_1774292390257_0.75530955971123","host":"s3://npm-registry-packages-npm-production"}},"0.10.19":{"name":"obsidian-hybrid-search","version":"0.10.19","license":"MIT","_id":"obsidian-hybrid-search@0.10.19","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"9bb5183dba07af335293f59639f22d09ee7c5318","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.10.19.tgz","fileCount":14,"integrity":"sha512-wCXnnxlCtITmhv3F9H45g79G3Z9kOig9GTHDlQTFbIJR2jV8dYtiqTEkWojHahIMfbxjPL133gZpISynhY5iiw==","signatures":[{"sig":"MEYCIQC5SXK5x4SUx0p7VdRlNzcOa5n8IKqF8feaS3cHwfXbnQIhAKVXH8ZIFORxU9ufrml/kKZ4njqy5oDBjSW1kqrZpPiA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.10.19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":177506},"type":"module","gitHead":"c4d82fc785e39edfb574de5d88839ddfb966b473","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.10.19_1774293483091_0.62338752958811","host":"s3://npm-registry-packages-npm-production"}},"0.10.20":{"name":"obsidian-hybrid-search","version":"0.10.20","license":"MIT","_id":"obsidian-hybrid-search@0.10.20","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"3eefef0de3c1f684c5fce061ec2c18973481b3f7","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.10.20.tgz","fileCount":14,"integrity":"sha512-W66foGLiWqQDlCnppEz7kD6hAgvIOk5CORmLmfKn6594PDIPE7mzgX/FW8Op7HSt2H/UUvJ4GG+h3ckj2eC4KA==","signatures":[{"sig":"MEYCIQDb2RTIhPO/ivwBMooVevPr9cFOeYNlupDEpW66ZiaILAIhAJ9CetHghQpyEvaYiKjxbtZ2dPQN8eMbnlR/uRG7/BiK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.10.20","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":177599},"type":"module","gitHead":"406cecb8133fdac12a973e6ab4329104572c8c99","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.10.20_1774294409467_0.03962797325859979","host":"s3://npm-registry-packages-npm-production"}},"0.10.21":{"name":"obsidian-hybrid-search","version":"0.10.21","license":"MIT","_id":"obsidian-hybrid-search@0.10.21","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"41c82311e9a61d7bb1fab7e6b9d386c93c18ac6c","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.10.21.tgz","fileCount":14,"integrity":"sha512-LN8kO41MkrtpnLsHqajkZ374RXKRmJ5+kupoeXWgtXS1NEQZjGpU8SUFLTtZ1Tfr5DM5DSUP63w5x1Avk2KBRA==","signatures":[{"sig":"MEYCIQC1rUP+weJR2N1LXYxmPgNXldGfZ0xXvcwcyiuTdBL/lwIhANQiHcrGS6lJXPaQR+/uMGSJiYubSNaD8GgEhwrSkKdK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.10.21","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":177600},"type":"module","gitHead":"73e3e81ccd149cde7ffa1da2951b53b88d70c5c8","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.10.21_1774346628468_0.6578363729399967","host":"s3://npm-registry-packages-npm-production"}},"0.10.24":{"name":"obsidian-hybrid-search","version":"0.10.24","license":"MIT","_id":"obsidian-hybrid-search@0.10.24","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"1554d68da4f660ed1cc626fa961871838e330b64","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.10.24.tgz","fileCount":14,"integrity":"sha512-hawgOkBGu8eE1LBS87Wl6sDAtMktUYy5AffdualUjXQyBpB6+/o9QjZCQEgAMcQJ2WeQg+5zEbZAAYJCEvt8vg==","signatures":[{"sig":"MEYCIQCVrF6jYKFtbrrHhgMHEbnUSHMdno/wMNJj1bdRh9quBQIhAPLTjkWu0dp2r6zqUwSu8AhZm7aY5h8TMobNAENQE3rJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.10.24","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":178285},"type":"module","gitHead":"4db849973da9cc16d6c0cba2629a622b9866b4d2","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.10.24_1774352875664_0.8752152067535184","host":"s3://npm-registry-packages-npm-production"}},"0.10.25":{"name":"obsidian-hybrid-search","version":"0.10.25","license":"MIT","_id":"obsidian-hybrid-search@0.10.25","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"a854cf2bc8957c4f7298079e5fa92fcb02efc751","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.10.25.tgz","fileCount":14,"integrity":"sha512-iR6Z81ClbwE+gCTOjHbYQRDpDo7aBWQ1Lf/yBm0omJVjqrSKR1uuCElAHlwHmDvsLBgs8PaZnLgY62Gy7vFK5A==","signatures":[{"sig":"MEYCIQCuule4QnxUrWLdbV94A1xGHbT0vuX93u4/SvuQyzH8VQIhALICp0yKbzfuFfWaffzq1KA5hNLWptHCOnGK/aampyqB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.10.25","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":177633},"type":"module","gitHead":"4a11b9f96ac0d0083b3b9a663f0df9203c19cae9","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.10.25_1774439639168_0.7938866629363686","host":"s3://npm-registry-packages-npm-production"}},"0.10.26":{"name":"obsidian-hybrid-search","version":"0.10.26","license":"MIT","_id":"obsidian-hybrid-search@0.10.26","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"1f9d1d97a6618e4f0860b308e9c93b08d255ae2a","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.10.26.tgz","fileCount":14,"integrity":"sha512-eY5NG8Jyhn5/Ka9eeS+YKh5Xo1Fg8c2igoSkcclqCY5C9bK9VlWbzYZEJHVZX1IRzQTOZcDUoHSXxcUeBNv3Qg==","signatures":[{"sig":"MEUCIEY6R0zdYvZxgOVkPS1m6yuncUoUJN46l6gEEMwoCBqZAiEA5CwRJHKv1rXqTacpQySlI5NXG1BeXinp8Onz/7Q6Oyc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.10.26","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":177985},"type":"module","gitHead":"acc02278178ac707fd7d103956cb0c8f833f67b2","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.10.26_1774442026462_0.29503887861276","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"obsidian-hybrid-search","version":"0.11.0","license":"MIT","_id":"obsidian-hybrid-search@0.11.0","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"fefb2af40d30d273449207f63850db3378cdc903","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.11.0.tgz","fileCount":14,"integrity":"sha512-fsdePiDdvOgOs783o1DYMwKlXgJQZgLtU3hMQgp8NflBd2B98WjuYy767qwopsr/hCVd2umyMbBvR1s1Vh7RAQ==","signatures":[{"sig":"MEYCIQD5aGLcBb61IHmpwSWrPr1iZO4C1i4n2m4wxeSIuD7dGQIhALatOPCc9unI11i+45K1iFT0tR7PmUI4/Y3Tt+wjjHzQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":184716},"type":"module","gitHead":"beacd2bb104b24ddc5148e48d1ab01d21ae4a78a","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.11.0_1774462338410_0.38132619939992707","host":"s3://npm-registry-packages-npm-production"}},"0.11.1":{"name":"obsidian-hybrid-search","version":"0.11.1","license":"MIT","_id":"obsidian-hybrid-search@0.11.1","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"e18a83f92efc2eec90433e97a493826ace475d5f","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.11.1.tgz","fileCount":14,"integrity":"sha512-wOzpnAo0ZbF7kBHSRSadcN+DNRL14Z/4Eh6B0ZDsQzTb0P0sPS4C6wyuH07LERyL9L6b2jxe4NowOk6/HvVBxQ==","signatures":[{"sig":"MEUCICu5Hy7m2QrVuNJ9BNeeqr4PO4XzTd6iF2ZSjcM381oFAiEAty54pxrYmGgaY2GyreWOGocyTFxP3SW0xymSQ+tQRMA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.11.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":188751},"type":"module","gitHead":"e61b97fc4009a4b5b2c39e9446742aae1fd383ad","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.11.1_1774464791227_0.19182366450813082","host":"s3://npm-registry-packages-npm-production"}},"0.11.2":{"name":"obsidian-hybrid-search","version":"0.11.2","license":"MIT","_id":"obsidian-hybrid-search@0.11.2","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"cc471d42b934ae70496999bb9193c37fc7c4baf3","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.11.2.tgz","fileCount":14,"integrity":"sha512-9zbOd8n9aRbE5JLmr28yOAORYrSU11AdoZoQvy5PCszK5L+kDvfPO2DWzsW14cUQvMHNT72ucs5qnW7ljLeILg==","signatures":[{"sig":"MEQCIDd/rqBYFXNnVoPAFnjDYPMS1IS0Bk8Cf7PLITW+Dfr7AiA/zrqHVca34QUkxRb+lHvzAxyyI1IzVUUWoiMsRQeo4w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.11.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":188651},"type":"module","gitHead":"d95e06fe3627827b1f254300a2fc8649e0d83a48","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"An [MCP server](https://modelcontextprotocol.io) and CLI tool that makes your Obsidian vault queryable by AI assistants. Indexes notes into SQLite with FTS5 full-text search, trigram fuzzy matching, and `sqlite-vec` vector similarity — results are merged ","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.11.2_1774492122837_0.860183943774961","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"obsidian-hybrid-search","version":"0.12.0","license":"MIT","_id":"obsidian-hybrid-search@0.12.0","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"4612c996619fc8a679b4b36b6ea8946d6f64860a","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.12.0.tgz","fileCount":14,"integrity":"sha512-jfUrJW5Xo/FVyvi2U0k912sWwGpOKRITx5/hw7pIlUHngsGApRUDAdiqzyiyqi8ObqUuMKHzymkHeYCH9lfuRQ==","signatures":[{"sig":"MEUCIBCFL58FBxpENGnRKNpsoUp+0Wisf5+tnRP2BquxQY60AiEAzIJB9MB602IOBt7YzsFJFqdTKIh9uvh4kPC9zWWKyFU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":211153},"type":"module","gitHead":"b12516e98b6d4da7dc0d0385b9e06228ffe02481","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"yaml":"^2.8.3","chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.12.0_1774699297694_0.7445533708937433","host":"s3://npm-registry-packages-npm-production"}},"0.12.1":{"name":"obsidian-hybrid-search","version":"0.12.1","license":"MIT","_id":"obsidian-hybrid-search@0.12.1","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"2beb637608dac51dddfbccb8139076f993dba313","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.12.1.tgz","fileCount":14,"integrity":"sha512-iDJj8MbOi+A5jfoU9BYzW5/5Le8Rty5nXvp7JReIocKgj5dwSPC2ncvBEDNGKMoEvw8y7Cr94gnhpYXiBUEa5g==","signatures":[{"sig":"MEUCIQDZQTquSBpUMZKb09/FNXhKla3L4QpECPeOgzp7sSlA9AIgBZMKPsVCe68uEc2gL8Vht2TAe6NS82bv7vWInVwicOI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.12.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":211656},"type":"module","gitHead":"f5c9d5c990d516b5123ecdd0e270be39bb4f0e9f","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"yaml":"^2.8.3","chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^3.8.1"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.12.1_1774850143993_0.4153744345702879","host":"s3://npm-registry-packages-npm-production"}},"0.12.2":{"name":"obsidian-hybrid-search","version":"0.12.2","license":"MIT","_id":"obsidian-hybrid-search@0.12.2","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"115e8b0ea867d8e6da0185f58369fb1383498711","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.12.2.tgz","fileCount":14,"integrity":"sha512-6OPnRsnp36XpzB/HzNiqIbAWj0Gs8xNIy6N9WiT4KdYfv41jO8rlNzKmNUwC6QqAC3e+Zf50v7E2299CK+kWRA==","signatures":[{"sig":"MEUCIBNOF6hAtEqM7axfKAR8wKokU65gNJLO8bUy8otjrZsjAiEAt4P87JcTvYqlw225A8BFVX2du5NqU4moeyz02veTpoc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.12.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":212673},"type":"module","gitHead":"d1c1bc8d86a3b0c8fde67a9c307ae53f628c4b96","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"yaml":"^2.8.3","chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.12.2_1774888734130_0.137781147290585","host":"s3://npm-registry-packages-npm-production"}},"0.12.3":{"name":"obsidian-hybrid-search","version":"0.12.3","license":"MIT","_id":"obsidian-hybrid-search@0.12.3","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"ccd23e7c66fad7b6cf3529aa03ee02224af4dc39","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.12.3.tgz","fileCount":14,"integrity":"sha512-d2c5EiERFCGmjfBT4ZjXWvJD/tk5cQITnZqmQPpA1+srJnsXRjm0Ur0b6Ko7nFg1qGncR2iG2imTecwXxsTPDQ==","signatures":[{"sig":"MEQCIAwblNYx9dS0kdSvnfajr+X/ioR5MrIMpSzlkGANO3SjAiBKJ9qefiBlNG8rbw6jnHc//dNJXe2ipv1vbA91c6mxyQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.12.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":213109},"type":"module","gitHead":"dba8fd2ee96ddf2794b05967ffcb121d044f1126","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"yaml":"^2.8.3","chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"latest","gray-matter":"^4.0.3","better-sqlite3":"latest","@modelcontextprotocol/sdk":"latest"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.12.3_1774937911660_0.9729265964213056","host":"s3://npm-registry-packages-npm-production"}},"0.12.4":{"name":"obsidian-hybrid-search","version":"0.12.4","license":"MIT","_id":"obsidian-hybrid-search@0.12.4","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"b17a2993f8c84f85216f563e84723293db372c2c","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.12.4.tgz","fileCount":14,"integrity":"sha512-zMyBzGH2hOJh7KFuBE/JtCIx6GFmqV3m25d47/uyJHfXpB0anm6JCxwq5I8+m/kxWP0q2CY6ZGVefj7AholQOA==","signatures":[{"sig":"MEUCIC2aqk1kesPKCjcLLsJX/xZeYpXkWj+SYogVrld33z/1AiEAihnju6/cbAMLlbbOMmls0IXYxnB9Rmxg3aWwFze5zTM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.12.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":213111},"type":"module","gitHead":"0009e781f54ab61091ae6b7007236664536b53ac","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"yaml":"^2.8.3","chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","better-sqlite3":"^12.8.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.12.4_1774949872422_0.30733010891136603","host":"s3://npm-registry-packages-npm-production"}},"0.12.5":{"name":"obsidian-hybrid-search","version":"0.12.5","license":"MIT","_id":"obsidian-hybrid-search@0.12.5","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"2b79c1c4b660443aaa2c4d1399771d055bbf6159","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.12.5.tgz","fileCount":14,"integrity":"sha512-+qgZ3XZDUtj0vjv/yMg4fMZkzgj4OhEc+GZsIsicpjrr+7UtW6wmsnw0dQEIMUSZZMixftj7EsslDdk03HI14A==","signatures":[{"sig":"MEYCIQCOrLkWd0/PcgcU2yrrAqnrI2qprghEDOwVNwLbDKthCgIhAOqNhzr8KdUwOO6lv/GIiFhuAFefXqHeNuXPuZh6yk8G","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.12.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":214101},"type":"module","gitHead":"60ac5eca60e772b55a19c0cf5b3d1b01334ffce6","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.1","dependencies":{"yaml":"^2.8.3","chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","better-sqlite3":"^12.8.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.12.5_1775062738044_0.8302107263996907","host":"s3://npm-registry-packages-npm-production"}},"0.12.6":{"name":"obsidian-hybrid-search","version":"0.12.6","license":"MIT","_id":"obsidian-hybrid-search@0.12.6","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"a8a5c328a25f46ef07947b83d2a21df893beaa83","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.12.6.tgz","fileCount":14,"integrity":"sha512-Erqm/cpsRMcn0hDUGBdqvsx7KG/jRKiThXM8J7D1efODL6edprs4Ss0zr23yvHszcz7ZlC0VhZISiZOuM2qgDg==","signatures":[{"sig":"MEYCIQDAj9hUiDefLzbX4pxB/uzG0Q4ye45fnLJCGY5VZnr2xwIhAL7umXhhWbBelQHD2i4zjppUKLDHyCUj5b8DAJygTyzB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.12.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":214635},"type":"module","gitHead":"1207e72d9424b88d38e43d017134a8b8674e8c21","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.2","dependencies":{"yaml":"^2.8.3","chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","better-sqlite3":"^12.8.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.12.6_1775304104887_0.5183236852059081","host":"s3://npm-registry-packages-npm-production"}},"0.12.7":{"name":"obsidian-hybrid-search","version":"0.12.7","license":"MIT","_id":"obsidian-hybrid-search@0.12.7","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"c318767d4bef8d46615875307cc617b4ef54f435","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.12.7.tgz","fileCount":14,"integrity":"sha512-7psDQ4srXgyu6C1F8DA5qQOPT2/nxjs+5MtN0sod1of8uvI0zssrR+vw+j5oHN9U2I3EXHTC27FWNUbSowGZAg==","signatures":[{"sig":"MEYCIQDqIB1oTNtlxtTGaMnajQU1ulgK3kwBJD0GZp1sME8fCwIhAMVvYWnl3y3Yok3c/47p6M+68MSbKSKMsUImPOosnJMM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.12.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":214635},"type":"module","gitHead":"92f012a4e7cdfb86885abc82539b7994f258a115","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.2","dependencies":{"yaml":"^2.8.3","chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","better-sqlite3":"^12.8.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.12.7_1775463605518_0.7585167431221416","host":"s3://npm-registry-packages-npm-production"}},"0.12.8":{"name":"obsidian-hybrid-search","version":"0.12.8","license":"MIT","_id":"obsidian-hybrid-search@0.12.8","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"b402dd4fb4593e9e49f26a6a9e0793f33ba46b02","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.12.8.tgz","fileCount":14,"integrity":"sha512-SpZ/BVdQgg3ovByGXurg55jBxMItIeyDPGbIsl97W9iWhXBXh/L41znNfK8qlOXsiP4vOliPSzEVuPIv6UUFGA==","signatures":[{"sig":"MEYCIQCxeI+GvqSXtY4NEBECJkOX7ntsrsqVpEY+W00g+0m3bwIhAJw/XiYXmTtKKuN+V2GJrJGkv3t5QVdFOB7ShT3dPDKh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.12.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":214635},"type":"module","gitHead":"4bc69f8188c090874e34e5bdf8cf9a4b92966467","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.2","dependencies":{"yaml":"^2.8.3","chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","better-sqlite3":"^12.8.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.12.8_1776129962793_0.4166632143618654","host":"s3://npm-registry-packages-npm-production"}},"0.12.9":{"name":"obsidian-hybrid-search","version":"0.12.9","license":"MIT","_id":"obsidian-hybrid-search@0.12.9","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"b118e05852b7e54b19ca0c09206912eda737ae37","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.12.9.tgz","fileCount":14,"integrity":"sha512-w/gbIAy+amrg515q6Q9jA3N1NXze/UL9rOp6Wscun1qar38qmk9BzOE8D98c+WdRbEQfqSDVWEA67LaJQZLC7g==","signatures":[{"sig":"MEUCIQCkfq3kXZNY7FgMBcNY0xndI6MaqVl5iUcUTcjbTW5mrgIgfJ7efhRc2gsBSUnnAUtfSpmcWJ6+wg2ACU5dnTyf/FI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.12.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":214635},"type":"module","gitHead":"e8a84d3b189a7edc78bcf7dc5e598325a9620834","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.2","dependencies":{"yaml":"^2.8.3","chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","better-sqlite3":"^12.8.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.12.9_1776673372177_0.613794732802845","host":"s3://npm-registry-packages-npm-production"}},"0.12.10":{"name":"obsidian-hybrid-search","version":"0.12.10","license":"MIT","_id":"obsidian-hybrid-search@0.12.10","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"bfe8e9d5966719cf7cc608ed1612101cc590444c","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.12.10.tgz","fileCount":14,"integrity":"sha512-ezumdHKpvABfmyUH87rM+ynU6ZID6LQNZ07HUU7m1BsYHgxnBJxtz5LUNTgFE75QvLyEecGNmD+3AM94+C7c9Q==","signatures":[{"sig":"MEYCIQDcky30joUmdz1wqPeGNItwBmydAeORhDH8qiEXFA/QzQIhALuN2L4DNKTLmqXDlqTPkgXV7nMsJq7hxulZfGzbmYeA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.12.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":215354},"type":"module","gitHead":"ef40e92317ab58fc892d9b0d0620f39b7919c64e","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.2","dependencies":{"yaml":"^2.8.3","chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","better-sqlite3":"^12.8.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.12.10_1776858982130_0.9912849973166322","host":"s3://npm-registry-packages-npm-production"}},"0.12.11":{"name":"obsidian-hybrid-search","version":"0.12.11","license":"MIT","_id":"obsidian-hybrid-search@0.12.11","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"d4e33eba036791eb60838a2d6e1becabcbe4f609","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.12.11.tgz","fileCount":14,"integrity":"sha512-TeJ0n+UttgwB6ReM7LnUgu/rFa3qqFsLR4X46mqm0v5HjzC2WO5fgGJHtyd7brwRSrlQleMZZTgPqAL9ZuuQqA==","signatures":[{"sig":"MEUCIEltHvLJE2y1sQryRZWzkTR7inDRDaKSecOWD2FYD0r/AiEAsLnzs5H+OimagA6T1reGfT869KbNukcJaNsKFKkD89s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.12.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":215492},"type":"module","gitHead":"6aa14bf45a149685913e10addedb53f47da1a09e","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.2","dependencies":{"yaml":"^2.8.3","chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","better-sqlite3":"^12.8.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.12.11_1776859524596_0.08534922077218265","host":"s3://npm-registry-packages-npm-production"}},"0.12.12":{"name":"obsidian-hybrid-search","version":"0.12.12","license":"MIT","_id":"obsidian-hybrid-search@0.12.12","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"81c9fe0b18aea4ddeccb8f8396f4f5de7a68d813","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.12.12.tgz","fileCount":14,"integrity":"sha512-15Yyq4LH/xURo08Eul5EZAQBqtEEjKqvK/Zr/3nlu+ruj+JxZV4R07n01+CYibtScqSnD8FNa2EfVzGSvh3+gw==","signatures":[{"sig":"MEUCIFDJCEel4UzEbniAKAyJ0cYpB9xFa18Y5qC+qqWkPbdFAiEAtjlNt6SacpTyeOYCXNOXz0Bpogg5qbzbkmRb3Bbp8Xk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.12.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":215929},"type":"module","gitHead":"2ced25d690e0e2f98e354593251b39f5b6fef1d0","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.2","dependencies":{"yaml":"^2.8.3","chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","better-sqlite3":"^12.8.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.12.12_1776861180247_0.01610461975648203","host":"s3://npm-registry-packages-npm-production"}},"0.12.13":{"name":"obsidian-hybrid-search","version":"0.12.13","license":"MIT","_id":"obsidian-hybrid-search@0.12.13","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"343ec79adb2ddd082eed62417388e44df776b80f","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.12.13.tgz","fileCount":15,"integrity":"sha512-L/t658TDSXc3bRVozqV0/hoa0XXio/gxqa+AzVyDaUoTpMSb+tTjwJzbskYDdhYX5TeKz5YPyAmX95FtntYflw==","signatures":[{"sig":"MEYCIQDFArwhML2ln2u8eMtoueF3Fq2LPEvXf62VOHawrBxBiwIhAJe55BeuZriUHnc9D7/IqnXjgsnWFjc56KXAKNTsFBfU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.12.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":225781},"type":"module","gitHead":"9434a5c90c062130ee14c55910da729e16120f70","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.2","dependencies":{"yaml":"^2.8.3","chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","better-sqlite3":"^12.8.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.12.13_1776872348684_0.574205525103356","host":"s3://npm-registry-packages-npm-production"}},"0.12.14":{"name":"obsidian-hybrid-search","version":"0.12.14","license":"MIT","_id":"obsidian-hybrid-search@0.12.14","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"3217d2c442a2702106393542753ed48ca6092c38","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.12.14.tgz","fileCount":15,"integrity":"sha512-1TcO11/id4V6U1wINyoH7l3tidiUlkqkxjSCPvE0/T39D0sK/8uVPiL0q+1n4zZ+4UYBz2azFM1WIAS+bODm5A==","signatures":[{"sig":"MEYCIQC1ZaKxcttXG5s7egWlUo+zjdVOXfekEklTYf62Q3461gIhAJXp8ooL+Jni0uu4ED1HZtGxq8EaMBe7FohbekDWLfQJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.12.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":227176},"type":"module","gitHead":"1b78563fbcd0c311e66f0b5a6afce6cb87a1f9cd","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.2","dependencies":{"yaml":"^2.8.3","chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","better-sqlite3":"^12.8.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.12.14_1776919629908_0.29038689000507745","host":"s3://npm-registry-packages-npm-production"}},"0.12.15":{"name":"obsidian-hybrid-search","version":"0.12.15","license":"MIT","_id":"obsidian-hybrid-search@0.12.15","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"bin/obsidian-hybrid-search","obsidian-hybrid-search-mcp":"bin/obsidian-hybrid-search-mcp"},"dist":{"shasum":"91810747b25e657212973db443e7cfa5fa741a5e","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.12.15.tgz","fileCount":15,"integrity":"sha512-oSUFa+QuDCFmGtP4vzq6zrDP4WBCbWCqN2W4w4PnYSEJR8FE6LHKBhnUPjP0qN4X07kOBrYwRuyN/7K/z8ZICA==","signatures":[{"sig":"MEQCIDR41ESd/IaNvX9xIueJnnmiwNWnhdXWtv1DUuPBp0j0AiAczCmsnEYuyED7Q8Qq+TSYzPtifFkNGcPaOiL+ki5iTw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.12.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":227199},"type":"module","gitHead":"41f6b3f3cd86738679d9d6e019a2b75bb5b340b6","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.2","dependencies":{"yaml":"^2.8.3","chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","better-sqlite3":"^12.8.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.12.15_1776925086416_0.3362925987568526","host":"s3://npm-registry-packages-npm-production"}},"0.12.16":{"name":"obsidian-hybrid-search","version":"0.12.16","license":"MIT","_id":"obsidian-hybrid-search@0.12.16","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"ff44206a121c3bf6af88b22a92d96d3b6aac3a8e","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.12.16.tgz","fileCount":15,"integrity":"sha512-IVzXSkLFBtDq0In1xxWdOQGcEIAeKddQN/3OHtX8iI3VtorGP9w2x4zf7MArjD7P9MLm1pbuL7MGEPCirmI1wg==","signatures":[{"sig":"MEQCIEf7BlHYnmcPYIi78GCVTZ1WgSvK5l3VPHLkHT79ZdztAiBtG+aW/3MWEd8qOgRDuk578i3Y+c3HqcSRaJRaJEhhcQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.12.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":227176},"type":"module","gitHead":"3079e11926c05a8cf7c547b406ac7576960653f8","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.2","dependencies":{"yaml":"^2.8.3","chokidar":"^4.0.0","commander":"^12.0.0","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","better-sqlite3":"^12.8.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^5.86.0","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.0.18","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^5.4.0","@types/node":"^20.0.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.56.1","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.12.16_1776925683200_0.9132621189039221","host":"s3://npm-registry-packages-npm-production"}},"0.12.17":{"name":"obsidian-hybrid-search","version":"0.12.17","license":"MIT","_id":"obsidian-hybrid-search@0.12.17","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"e6f921d994e05d128699323f75e764ce45bf5adc","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.12.17.tgz","fileCount":15,"integrity":"sha512-UAAF+7JxBgT0gi1xxdPfFXu/A6IXJtN//ggx1pLMdQihdmfWF1Ngd954kTAmO9W4PBsNdbMhXpbygrxdgj+x9g==","signatures":[{"sig":"MEUCIGAJfG5ZAAYvWhIygWEYhTB5gWKrXaV0DkJGRBL1MPOVAiEAlbKdh/1ZNqr8Y7jZ7hL2dn+XO7NQQQsQd6FgUpA6eN4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.12.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":227748},"type":"module","gitHead":"faf84886ea89a67ba012d55624a5f8597b1c753a","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.2","dependencies":{"yaml":"^2.8.3","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","better-sqlite3":"^12.8.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.6.1","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.1.5","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^25.6.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.59.0","@vitest/coverage-v8":"^4.1.5","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.12.17_1776945801361_0.7474925084131978","host":"s3://npm-registry-packages-npm-production"}},"0.12.18":{"name":"obsidian-hybrid-search","version":"0.12.18","license":"MIT","_id":"obsidian-hybrid-search@0.12.18","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"9945271e5f1c47a2bfda60135e7deda57ce17175","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.12.18.tgz","fileCount":15,"integrity":"sha512-Ws4ukHJtXz24A/yCCdItJKfNxWda4bEEHP53GXwuVziVkggF/7lzyBs6FuVn4NpXRVB80iIayJFm0hNXf0bZKQ==","signatures":[{"sig":"MEUCIH4eyoksdEiLEtjdSfohs/BGXiPWt8YDTRsb+MeaAkHoAiEAvhEwgR4lhqlZ/IEmZ9YS/sJJRGBPX+lbAhKjWMd2H2U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.12.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":227748},"type":"module","gitHead":"81974d29927db109bb87bb4c7cbc1966c9bd87fe","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.2","dependencies":{"yaml":"^2.8.3","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","better-sqlite3":"^12.8.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.6.1","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.1.5","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^25.6.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.59.0","@vitest/coverage-v8":"^4.1.5","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.12.18_1777279095021_0.9987831189963161","host":"s3://npm-registry-packages-npm-production"}},"0.12.19":{"name":"obsidian-hybrid-search","version":"0.12.19","license":"MIT","_id":"obsidian-hybrid-search@0.12.19","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"516ed62687d14b3d52fde7f3f87f39f80917b1ae","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.12.19.tgz","fileCount":15,"integrity":"sha512-rGiS5iukldl21ZDfOM5f7aj1rsj52RpDil36wHDdY9WDZ76S1CgNDmoA5lKrjy9v1DzyoKfX/NciLfwg8aWE8Q==","signatures":[{"sig":"MEUCIQDJdMr9ZnQUOrYrwGrd/5NnIff2+TN3xW18If0S1kKXGQIgU2r+cbCq0PIDfIGbl43FQpy1Y5Jo3zdzjr47nkuEHA8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.12.19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":227770},"type":"module","gitHead":"3764dcd6962f37015643a14ddba85269f17829f7","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.17.1","yaml":"^2.8.3","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","better-sqlite3":"^12.8.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.6.1","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.1.5","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^25.6.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.59.0","@vitest/coverage-v8":"^4.1.5","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.12.19_1777439072110_0.7106770920611054","host":"s3://npm-registry-packages-npm-production"}},"0.12.20":{"name":"obsidian-hybrid-search","version":"0.12.20","license":"MIT","_id":"obsidian-hybrid-search@0.12.20","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"847e3b9dd99f72294d3b9bc6eaf5fc45459837e2","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.12.20.tgz","fileCount":15,"integrity":"sha512-WZkURJ51BpeOKK4dRlOCMoaF+5o4MzC5f5weLAdaK0lk93CuMRLnAIcfNDusiBtC6J1cggyRpy+zajc7fW66AA==","signatures":[{"sig":"MEUCIHqIIeJVdMMRb1z8HIVkBo5MysGoeMA5V7zxTv1gCSmEAiEAnA5eEy+TiPV//gQTLvPsiVCkBEJjYG9TubIR0GCWgMg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.12.20","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":227770},"type":"module","gitHead":"dda6d65ae369eb554cfe1133c236ffe1c0e20bdd","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","lint:fix":"eslint src test eval --fix","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.2","dependencies":{"ajv":"^8.17.1","yaml":"^2.8.3","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.3","picocolors":"^1.1.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","better-sqlite3":"^12.8.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.6.1","husky":"^9.1.7","eslint":"^10.0.3","vitest":"^4.1.5","prettier":"^3.8.1","@eslint/js":"^10.0.1","typescript":"^6.0.3","@types/node":"^25.6.0","lint-staged":"^16.3.2","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.59.0","@vitest/coverage-v8":"^4.1.5","@types/better-sqlite3":"^7.6.0","eslint-plugin-sonarjs":"^4.0.1","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.12.20_1777884035194_0.670631533788858","host":"s3://npm-registry-packages-npm-production"}},"0.12.21":{"name":"obsidian-hybrid-search","version":"0.12.21","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.12.21","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"f12ceca9b84c957d35dd1858653d21430fde1bdf","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.12.21.tgz","fileCount":20,"integrity":"sha512-VknK0qtPEiF6EHUNa3NV+sakIIgcoA/3zvLj/M0R/wvQyHL7RPNOYf2mGr6Oj1WD5lDfTqBOSiqBWNVUWk799A==","signatures":[{"sig":"MEUCIAXFiZ+VzVrci6O7MoYuVvoyWeAcxB8QEtyDBde1wGlrAiEA5sg+dIBkGfs1JHLcSPGPfnNzpYlf0AtfxxUM2WyZZ6g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.12.21","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":261013},"type":"module","engines":{"node":">=20"},"gitHead":"0eadb608fe7e2beff8e10e6660e0d3307174df44","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["npm test","npm run knip"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.24.4","yaml":"^2.7.1","chokidar":"^4.0.3","commander":"^13.1.0","cli-table3":"^0.6.5","picocolors":"^1.1.1","sqlite-vec":"^0.1.6","gray-matter":"^4.0.3","better-sqlite3":"^12.1.0","onnxruntime-node":"^1.20.1","@modelcontextprotocol/sdk":"^1.13.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","knip":"^5.50.5","husky":"^9.1.7","eslint":"^9.25.1","vitest":"^4.1.5","prettier":"^3.5.3","typescript":"^5.8.3","@types/node":"^22.15.3","lint-staged":"^15.5.1","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.31.1","eslint-plugin-import":"^2.31.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^3.0.2","@commitlint/config-conventional":"^20.4.3"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.12.21_1777897099248_0.04863627670358661","host":"s3://npm-registry-packages-npm-production"}},"0.12.22":{"name":"obsidian-hybrid-search","version":"0.12.22","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.12.22","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"1d9b22a396fea4982af1efb486cc713f594fe001","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.12.22.tgz","fileCount":20,"integrity":"sha512-5RRgt1ufiUzVPum7FoOvIV0HxMhxfYQryVlcGMPTwhLHQ7KKHxoJpbsiGvtxv767XzOXyDho0XGTZBnAm/kXJw==","signatures":[{"sig":"MEUCIQDzp28Da/6WLvdNyuTw7asOhisRqyK69LixkQoS0F6aTQIgW8kbUK2lwGkMmgY5nxqKJ9dWU0goW6XC7vmNYpZa3Eo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.12.22","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":261100},"type":"module","engines":{"node":">=20"},"gitHead":"89b713ffaab2811a8099c13eee77da6c85fd22a8","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["npm test","npm run knip"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.24.4","yaml":"^2.7.1","chokidar":"^4.0.3","commander":"^13.1.0","cli-table3":"^0.6.5","picocolors":"^1.1.1","sqlite-vec":"^0.1.6","gray-matter":"^4.0.3","better-sqlite3":"^12.1.0","onnxruntime-node":"^1.20.1","@modelcontextprotocol/sdk":"^1.13.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","knip":"^5.50.5","husky":"^9.1.7","eslint":"^9.25.1","vitest":"^4.1.5","prettier":"^3.5.3","typescript":"^5.8.3","@types/node":"^22.15.3","lint-staged":"^15.5.1","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.31.1","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.31.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^3.0.2","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.12.22_1777897650372_0.07847955931746342","host":"s3://npm-registry-packages-npm-production"}},"0.12.23":{"name":"obsidian-hybrid-search","version":"0.12.23","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.12.23","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"2f7138bf6f2c57896c13940704a606179a7ac881","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.12.23.tgz","fileCount":21,"integrity":"sha512-+FOXSiw/XDFicrl4rMRf2Qi2xze5gOe3D4UYd5QlowkwrKnMQXLBj5qEOV4tm26ZlQ1NBb+p56g9OKDeZ5FQYw==","signatures":[{"sig":"MEYCIQD6Y6SKpBHgN9h5x/kyyMnfyWR8Zc1r/MJP/igFm9W9mwIhAO2gd0sTpsd/Dt3kd0Zz98RA/mOJosreROBEjLXRZolC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.12.23","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":262775},"type":"module","engines":{"node":">=20"},"gitHead":"05a4826884376c2a89dde3136601185786e0bf52","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","yaml":"^2.7.1","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","sqlite-vec":"^0.1.6","gray-matter":"^4.0.3","better-sqlite3":"^12.1.0","onnxruntime-node":"^1.20.1","@modelcontextprotocol/sdk":"^1.13.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.3","knip":"^6.11.0","husky":"^9.1.7","eslint":"^9.25.1","vitest":"^4.1.5","prettier":"^3.5.3","typescript":"^6.0.3","@types/node":"^25.6.0","lint-staged":"^16.4.0","@commitlint/cli":"^20.4.3","typescript-eslint":"^8.31.1","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.31.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.0.3","@commitlint/config-conventional":"^20.4.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.12.23_1777907079812_0.5674554371146889","host":"s3://npm-registry-packages-npm-production"}},"0.12.24":{"name":"obsidian-hybrid-search","version":"0.12.24","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.12.24","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"fe97d75d2e987b48a4fad46bd511d4d011111523","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.12.24.tgz","fileCount":21,"integrity":"sha512-ak5FXj0TLFfmypspH0lNA5AND8zeP1RAHtVki6aVsRuzDrntdxIjRh93UkUKmjtSTGdpWqA8gofyzNzOXINxow==","signatures":[{"sig":"MEUCIHlt3gLnp2BrIycxiwNB9rgMgcQXi/cW1FLIGrZOWNMDAiEA1JxdYwZXQAiHlyW2i0Vu7ab/85ArBmbOUSYLn1j3wb8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.12.24","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":262775},"type":"module","engines":{"node":">=20"},"gitHead":"f0c1ee94fd8481702259bafa101e3575bad48990","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","yaml":"^2.8.4","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","better-sqlite3":"^12.9.0","onnxruntime-node":"^1.26.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","knip":"^6.12.2","husky":"^9.1.7","eslint":"^9.39.4","vitest":"^4.1.5","prettier":"^3.8.3","typescript":"^6.0.3","@types/node":"^25.6.2","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.59.2","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.0.3","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.12.24_1778493349847_0.978169897474914","host":"s3://npm-registry-packages-npm-production"}},"0.12.25":{"name":"obsidian-hybrid-search","version":"0.12.25","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.12.25","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"51341bfbcf6fcd8f340197d9c9dbdca6393f3b10","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.12.25.tgz","fileCount":21,"integrity":"sha512-ai7kmdHz26TK92cFwdmRTDw7PYNHA0S7NbHYyvldomsfGl6y6i6JL+jumKAyV7v3K3nrEpiY60HgzO8Nx6Ouug==","signatures":[{"sig":"MEUCIC8FjtbzuSzExkWvB9/v0ru8XUgPHAkC6SlxTc2hWQp1AiEAupqc/uipV9Xh8RQsxNhIzFgLqidjaa+Tj5o8N5g6gps=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.12.25","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":262776},"type":"module","engines":{"node":">=20"},"gitHead":"fbcfd9e6e185bff351b4da920464e816fb9fac0b","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","better-sqlite3":"^12.10.0","onnxruntime-node":"^1.26.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.1","knip":"^6.14.1","husky":"^9.1.7","eslint":"^9.39.4","vitest":"^4.1.5","prettier":"^3.8.3","typescript":"^6.0.3","@types/node":"^25.8.0","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.59.3","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.0.3","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.12.25_1779099682831_0.8305080574852022","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"obsidian-hybrid-search","version":"0.13.0","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.13.0","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"7468ca0f5e3ee5e0abb9bb78dac367602a3f22ca","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.13.0.tgz","fileCount":24,"integrity":"sha512-+frR1+5BQH2hfRoxMqWLW7m01L+3Xlz8VqCudCQ+11YWL5etqsc24Md9BhPRMM42xUxVLAgqdxaT45OcAPuETg==","signatures":[{"sig":"MEUCICq/7SEw4mjFm3MtpYS3RykiEz241oaCkHPmHqDyy1mYAiEAxysRWZtqhGNmpvxaOZQn/rOU+nQ3lsEda6TTaBk9LSo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":280759},"type":"module","engines":{"node":">=20"},"gitHead":"86072af07eac7e0b6c91aebfca25cfc059402490","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","better-sqlite3":"^12.10.0","onnxruntime-node":"^1.26.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.1","knip":"^6.14.1","husky":"^9.1.7","eslint":"^9.39.4","vitest":"^4.1.5","prettier":"^3.8.3","typescript":"^6.0.3","@types/node":"^25.8.0","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.59.3","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.0.3","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.13.0_1779256212072_0.35908143051809716","host":"s3://npm-registry-packages-npm-production"}},"0.13.1":{"name":"obsidian-hybrid-search","version":"0.13.1","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.13.1","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"531577499a91e6b20b4b4b4608bf8e7056b4065d","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.13.1.tgz","fileCount":29,"integrity":"sha512-itDvQYTJh4uWqg3vCSBnZ2XE/jHugzzBELZWfN8F5tVgln4JrnO3jYptpsbuMp3pUcZLHDesC0VyPl9AaZ8IMA==","signatures":[{"sig":"MEYCIQDo+VDng/GHXnJUoaiYv03u9e2l5MPJtcZDiz/SL7HHxwIhAPkV3b+qBp8vaisDVmEdGxus/4452kU81uX0RFeKt4T2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.13.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":306678},"type":"module","engines":{"node":">=20"},"gitHead":"723c149c7a7a4e313720647d268775a612455e56","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","eval:quality":"env -u OPENAI_API_KEY -u OPENAI_BASE_URL -u OPENAI_EMBEDDING_MODEL -u LOCAL_EMBEDDING_MODEL tsx eval/evaluate.ts --output eval/results/.tmp-pre-push-quality.json && tsx eval/quality.ts eval/results/.tmp-pre-push-quality.json","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","better-sqlite3":"^12.10.0","onnxruntime-node":"^1.26.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","knip":"^6.14.1","husky":"^9.1.7","eslint":"^9.39.4","vitest":"^4.1.5","prettier":"^3.8.3","typescript":"^6.0.3","@types/node":"^25.8.0","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.59.3","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.0.3","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.13.1_1779587688896_0.3044964618885877","host":"s3://npm-registry-packages-npm-production"}},"0.13.2":{"name":"obsidian-hybrid-search","version":"0.13.2","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.13.2","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"dafc0f9d00424beaaa1238eaf39b5ba4be442e5b","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.13.2.tgz","fileCount":29,"integrity":"sha512-JayqH5hAxyEUNdOVEy5/TBu4si1CxNY4pu9UgkimCD6nHzKvCzClbPc3Si2EVgPKSss4msFKtSXJKhlO9eZV5g==","signatures":[{"sig":"MEUCICgCKxYK7Yx9Zq9BHodKbwBEMkHK/nJscrdfPceOmmp9AiEA9ZWq/QCpyUM6ywRFrke2nb4+aWWtAf1L63PJh6e+Eeo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.13.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":311126},"type":"module","engines":{"node":">=20"},"gitHead":"9b44c7ec7de63c152e86e26100882b0fca5520a5","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","eval:quality":"env -u OPENAI_API_KEY -u OPENAI_BASE_URL -u OPENAI_EMBEDDING_MODEL -u LOCAL_EMBEDDING_MODEL tsx eval/evaluate.ts --output eval/results/.tmp-pre-push-quality.json && tsx eval/quality.ts eval/results/.tmp-pre-push-quality.json","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","better-sqlite3":"^12.10.0","onnxruntime-node":"^1.26.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","knip":"^6.14.1","husky":"^9.1.7","eslint":"^9.39.4","vitest":"^4.1.5","prettier":"^3.8.3","typescript":"^6.0.3","@types/node":"^25.8.0","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.59.3","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.0.3","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.13.2_1779605444663_0.239016644446568","host":"s3://npm-registry-packages-npm-production"}},"0.13.3":{"name":"obsidian-hybrid-search","version":"0.13.3","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.13.3","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"b4cca8175a84a7e58e73f284b57e201d4989923f","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.13.3.tgz","fileCount":29,"integrity":"sha512-fZmJfWUOZIMBlKO+iPBaOEdHvJZ4xPDA4ZLs/nWy4hjUQN/7om3r0tvZJL2bl2qVkmX9ctn5FEsR0DOoUZJwew==","signatures":[{"sig":"MEUCIANu96e9lWot3epMZmmDjiWJFdlFGZUdg2qWqOGHv17GAiEA5wAtnXOWG+hHyRLLntpwONKf0uzCnrCX6eSCu/MWGBA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.13.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":311424},"type":"module","engines":{"node":">=20"},"gitHead":"79a3d4655a9cce4671bd8c622784b6e8041014c0","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","eval:quality":"env -u OPENAI_API_KEY -u OPENAI_BASE_URL -u OPENAI_EMBEDDING_MODEL -u LOCAL_EMBEDDING_MODEL tsx eval/evaluate.ts --output eval/results/.tmp-pre-push-quality.json && tsx eval/quality.ts eval/results/.tmp-pre-push-quality.json","format:check":"prettier --check .","test:integration":"vitest run --config vitest.integration.config.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","better-sqlite3":"^12.10.0","onnxruntime-node":"^1.26.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","knip":"^6.14.2","husky":"^9.1.7","eslint":"^9.39.4","vitest":"^4.1.5","prettier":"^3.8.3","typescript":"^6.0.3","@types/node":"^25.9.1","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.59.4","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.0.3","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.13.3_1779704843452_0.13316856871455385","host":"s3://npm-registry-packages-npm-production"}},"0.13.4":{"name":"obsidian-hybrid-search","version":"0.13.4","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.13.4","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"ae37fa5b79df1bcdb0e7cc8b7e5b4d3f16522cd8","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.13.4.tgz","fileCount":33,"integrity":"sha512-vm4VANwwYYat5gBkXHK2mpaebuM876hythnMLxBQJsFDzan841+1AwvtBsECAwumv2Fqkof1FhnDCYNun6JplQ==","signatures":[{"sig":"MEUCIQDDb/wMhnnOb+bAJiOkZoWr9l2n/E7WFh3gFMqZgyf72gIgQMnN1uiVmTnFpKItKLMa3/uBTnyYg0qbYfyQlGSdVlo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.13.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":344676},"type":"module","engines":{"node":">=20"},"gitHead":"db0ed716e18cfc83cdb2f6924040a0bffc1b9f75","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","eval:quality":"npm run eval:prepare-obsidian-help -- --vault fixtures/obsidian-help/dataset && env -u OPENAI_API_KEY -u OPENAI_BASE_URL -u OPENAI_EMBEDDING_MODEL -u LOCAL_EMBEDDING_MODEL tsx eval/evaluate.ts --output eval/results/.tmp-pre-push-quality.json && tsx eval/quality.ts eval/results/.tmp-pre-push-quality.json","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","test:integration":"vitest run --config vitest.integration.config.ts","eval:speed-profile":"tsx eval/speed-profile.ts","eval:prepare-longmem":"tsx eval/prepare-longmemeval.ts","eval:prepare-longmemeval-s":"tsx eval/prepare-longmemeval.ts","eval:prepare-obsidian-help":"tsx eval/prepare-obsidian-help.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","better-sqlite3":"^12.10.0","onnxruntime-node":"^1.26.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","knip":"^6.15.0","husky":"^9.1.7","eslint":"^9.39.4","vitest":"^4.1.5","prettier":"^3.8.3","typescript":"^6.0.3","@types/node":"^25.9.1","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.60.0","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.0.3","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.13.4_1780314831604_0.07006570536328627","host":"s3://npm-registry-packages-npm-production"}},"0.13.5":{"name":"obsidian-hybrid-search","version":"0.13.5","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.13.5","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"f99cd45dfccdc8be54f48b9046a3a022ecc9305a","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.13.5.tgz","fileCount":33,"integrity":"sha512-NA/MLmdDTWKNHtzZn/S+6SAW+VFwCONyv5n5s8LirXdq1z3iMZ9Au3RRUAZn/9k22f9NCId6bPQUAdaD1dHR9A==","signatures":[{"sig":"MEUCIA8+AXSQ8gHNqMTZceZKDmHNTa1G0SOzwLcWefwKdPGUAiEA3WngC+us6SrtWL9GMl7YU9iiWZbGFcxDKKzM9hdcAh8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.13.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":344675},"type":"module","engines":{"node":">=20"},"gitHead":"5977b82204f377a39475f12932fe85054a42524d","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","eval:quality":"npm run eval:prepare-obsidian-help -- --vault fixtures/obsidian-help/dataset && env -u OPENAI_API_KEY -u OPENAI_BASE_URL -u OPENAI_EMBEDDING_MODEL -u LOCAL_EMBEDDING_MODEL tsx eval/evaluate.ts --output eval/results/.tmp-pre-push-quality.json && tsx eval/quality.ts eval/results/.tmp-pre-push-quality.json","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","test:integration":"vitest run --config vitest.integration.config.ts","eval:speed-profile":"tsx eval/speed-profile.ts","eval:prepare-longmem":"tsx eval/prepare-longmemeval.ts","eval:prepare-longmemeval-s":"tsx eval/prepare-longmemeval.ts","eval:prepare-obsidian-help":"tsx eval/prepare-obsidian-help.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","better-sqlite3":"^12.10.0","onnxruntime-node":"^1.26.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","knip":"^6.15.0","husky":"^9.1.7","eslint":"^9.39.4","vitest":"^4.1.5","prettier":"^3.8.3","typescript":"^6.0.3","@types/node":"^25.9.1","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.60.0","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.0.3","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.13.5_1780367969216_0.5338630354769047","host":"s3://npm-registry-packages-npm-production"}},"0.13.6":{"name":"obsidian-hybrid-search","version":"0.13.6","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.13.6","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"ee929823a9a12074d7b4faedde4740ecec10277a","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.13.6.tgz","fileCount":34,"integrity":"sha512-j6/B/y+B84nIcfbomJE7MRyKXCBijoPaKnKjvd3Syzix67Cauj/11B6SGTFDkB0bORqs6mEOW1KC5ff5H2iypw==","signatures":[{"sig":"MEUCIQCzekbh2TTGgS6Jmt8hM+avjXpMlr/sJCy7lOf9N/AZXAIgau0X0oqFKMRTEJVZJDWwDf1KgAE+UF7e2SVC+uhuHsw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.13.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":359436},"type":"module","engines":{"node":">=20"},"gitHead":"470ee12391e1511ac49f26436a31598d97ff2b05","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","eval:quality":"npm run eval:prepare-obsidian-help -- --vault fixtures/obsidian-help/dataset && env -u OPENAI_API_KEY -u OPENAI_BASE_URL -u OPENAI_EMBEDDING_MODEL -u LOCAL_EMBEDDING_MODEL tsx eval/evaluate.ts --output eval/results/.tmp-pre-push-quality.json && tsx eval/quality.ts eval/results/.tmp-pre-push-quality.json","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","test:integration":"vitest run --config vitest.integration.config.ts","eval:speed-profile":"tsx eval/speed-profile.ts","eval:prepare-longmem":"tsx eval/prepare-longmemeval.ts","eval:prepare-longmemeval-s":"tsx eval/prepare-longmemeval.ts","eval:prepare-obsidian-help":"tsx eval/prepare-obsidian-help.ts","eval:prepare-evergreen-notes":"tsx eval/prepare-evergreen-notes.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","better-sqlite3":"^12.10.0","onnxruntime-node":"^1.26.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","knip":"^6.16.1","husky":"^9.1.7","eslint":"^9.39.4","vitest":"^4.1.5","prettier":"^3.8.3","typescript":"^6.0.3","@types/node":"^25.9.2","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.60.1","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.0.3","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.13.6_1780918105357_0.3918522653020582","host":"s3://npm-registry-packages-npm-production"}},"0.13.7":{"name":"obsidian-hybrid-search","version":"0.13.7","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.13.7","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"0576f6dd0e73ebf500da8d45f7de72245632388a","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.13.7.tgz","fileCount":34,"integrity":"sha512-f4SkqZ6izNg6mf4dBtu4+qJ7SuBSd3RofS1EObmAckeHcacOuJN8/BqKJv5lZNS+vx91+LXztjigppehlOcDjw==","signatures":[{"sig":"MEUCIA+TJQQ4Vaa+1siIfTB/lRCK8Ob/fB6XWo9DG/md/tOWAiEAlxpJmrvD+oy4DoIPJfPmts7G5UbD/cGpVjyK63h24z4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.13.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":359737},"type":"module","engines":{"node":">=20"},"gitHead":"a38b691d968b6f364949a56c935031912335d243","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","preflight":"bash scripts/ci-preflight.sh","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","eval:quality":"npm run eval:prepare-obsidian-help -- --vault fixtures/obsidian-help/dataset && env -u OPENAI_API_KEY -u OPENAI_BASE_URL -u OPENAI_EMBEDDING_MODEL -u LOCAL_EMBEDDING_MODEL tsx eval/evaluate.ts --output eval/results/.tmp-pre-push-quality.json && tsx eval/quality.ts eval/results/.tmp-pre-push-quality.json","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","test:integration":"vitest run --config vitest.integration.config.ts","eval:speed-profile":"tsx eval/speed-profile.ts","eval:prepare-longmem":"tsx eval/prepare-longmemeval.ts","eval:prepare-longmemeval-s":"tsx eval/prepare-longmemeval.ts","eval:prepare-obsidian-help":"tsx eval/prepare-obsidian-help.ts","eval:prepare-evergreen-notes":"tsx eval/prepare-evergreen-notes.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","better-sqlite3":"^12.10.0","onnxruntime-node":"^1.26.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","knip":"^6.16.1","husky":"^9.1.7","eslint":"^9.39.4","vitest":"^4.1.5","prettier":"^3.8.3","typescript":"^6.0.3","@types/node":"^25.9.2","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.60.1","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.0.3","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.13.7_1781158626412_0.40145702504984593","host":"s3://npm-registry-packages-npm-production"}},"0.13.8":{"name":"obsidian-hybrid-search","version":"0.13.8","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.13.8","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"4605ca87872eb40a682e6ec0c976c1630e58f7cc","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.13.8.tgz","fileCount":35,"integrity":"sha512-fkNpBKFF15if+tTItNjWiVYVOPsk1WKWC6JRPSJX9yjPPd/J0XmKvnO+dEnpYQ010YrwaHVd1L6xaYdolkiPMQ==","signatures":[{"sig":"MEQCIEGWGdcmYiF/5mhSSg+OlsgkvFPbWUYV6OZvgvIfgWggAiAK9X3RXOhd0MC6qmFCzFbHMgTmnEuzsuopViHAiPZCTA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.13.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":360138},"type":"module","engines":{"node":">=20"},"gitHead":"8dee1a21dac63b01fc3adab341cd5202352d09f2","mcpName":"io.github.flowing-abyss/obsidian-hybrid-search","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","preflight":"bash scripts/ci-preflight.sh","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","eval:quality":"npm run eval:prepare-obsidian-help -- --vault fixtures/obsidian-help/dataset && env -u OPENAI_API_KEY -u OPENAI_BASE_URL -u OPENAI_EMBEDDING_MODEL -u LOCAL_EMBEDDING_MODEL tsx eval/evaluate.ts --output eval/results/.tmp-pre-push-quality.json && tsx eval/quality.ts eval/results/.tmp-pre-push-quality.json","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","test:integration":"vitest run --config vitest.integration.config.ts","eval:speed-profile":"tsx eval/speed-profile.ts","eval:prepare-longmem":"tsx eval/prepare-longmemeval.ts","eval:prepare-longmemeval-s":"tsx eval/prepare-longmemeval.ts","eval:prepare-obsidian-help":"tsx eval/prepare-obsidian-help.ts","eval:prepare-evergreen-notes":"tsx eval/prepare-evergreen-notes.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","better-sqlite3":"^12.10.0","onnxruntime-node":"^1.26.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","knip":"^6.16.1","husky":"^9.1.7","eslint":"^9.39.4","vitest":"^4.1.5","prettier":"^3.8.3","typescript":"^6.0.3","@types/node":"^25.9.2","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.60.1","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.0.3","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.13.8_1781245476482_0.0889785680293389","host":"s3://npm-registry-packages-npm-production"}},"0.13.10":{"name":"obsidian-hybrid-search","version":"0.13.10","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.13.10","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"998dbd8d8d63d1644418764c9c37eb76c2eda73f","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.13.10.tgz","fileCount":36,"integrity":"sha512-mXzJ3RJh4Dj7STw/NHPC2QUdKUYaIJTERTQZRmRF3hy4UJftWZzrTdJt0PJOQNtvwZSgfGEh9O37lDeIopFbaw==","signatures":[{"sig":"MEUCIQChUBMv820R1VrPLuYvXUM9vHHwEiPyS329Ggyd0ivhdQIgFvn4D3CGZ/XYStoNxmtykALtN090rElfe7larpGdlAQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.13.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1607716},"type":"module","engines":{"node":">=20"},"gitHead":"4a21b5e7e7f0ca78b592648e08ad66fa245b8356","mcpName":"io.github.flowing-abyss/obsidian-hybrid-search","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","preflight":"bash scripts/ci-preflight.sh","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","eval:quality":"npm run eval:prepare-obsidian-help -- --vault fixtures/obsidian-help/dataset && env -u OPENAI_API_KEY -u OPENAI_BASE_URL -u OPENAI_EMBEDDING_MODEL -u LOCAL_EMBEDDING_MODEL tsx eval/evaluate.ts --output eval/results/.tmp-pre-push-quality.json && tsx eval/quality.ts eval/results/.tmp-pre-push-quality.json","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","sync-server-json":"bash scripts/sync-server-json.sh","test:integration":"vitest run --config vitest.integration.config.ts","eval:speed-profile":"tsx eval/speed-profile.ts","eval:prepare-longmem":"tsx eval/prepare-longmemeval.ts","eval:prepare-longmemeval-s":"tsx eval/prepare-longmemeval.ts","eval:prepare-obsidian-help":"tsx eval/prepare-obsidian-help.ts","eval:prepare-evergreen-notes":"tsx eval/prepare-evergreen-notes.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["npm run sync-server-json","sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","better-sqlite3":"^12.10.1","onnxruntime-node":"^1.26.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","knip":"^6.16.1","husky":"^9.1.7","eslint":"^9.39.4","vitest":"^4.1.5","prettier":"^3.8.4","typescript":"^6.0.3","@types/node":"^25.9.3","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.61.0","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.0.3","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.13.10_1781532122718_0.5836247504667031","host":"s3://npm-registry-packages-npm-production"}},"0.13.11":{"name":"obsidian-hybrid-search","version":"0.13.11","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.13.11","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"40d4d60066fa5090a6e08a1866046fa5dd7e48b9","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.13.11.tgz","fileCount":36,"integrity":"sha512-2ASL5ZhAkftegjgRY1ntVPfs0I5aPyHCfCLa5uGnArnXlLxRL+4Z654nfIGgxIHoXzgWEpaE3qGCvpH9BNN33w==","signatures":[{"sig":"MEYCIQCIC1iKv6vgblTbC+DRshMHfiN5KZr+HfT2PXL7aGtObgIhAI3FRR9NUfnp84gAVM2hUTlg+5yky53EgyxTrR71wgPc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.13.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1607716},"type":"module","engines":{"node":">=20"},"gitHead":"7ef019b18d5a5ba7da2b7d6f02df9828392943e0","mcpName":"io.github.flowing-abyss/obsidian-hybrid-search","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","preflight":"bash scripts/ci-preflight.sh","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","eval:quality":"npm run eval:prepare-obsidian-help -- --vault fixtures/obsidian-help/dataset && env -u OPENAI_API_KEY -u OPENAI_BASE_URL -u OPENAI_EMBEDDING_MODEL -u LOCAL_EMBEDDING_MODEL tsx eval/evaluate.ts --output eval/results/.tmp-pre-push-quality.json && tsx eval/quality.ts eval/results/.tmp-pre-push-quality.json","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","sync-server-json":"bash scripts/sync-server-json.sh","test:integration":"vitest run --config vitest.integration.config.ts","eval:speed-profile":"tsx eval/speed-profile.ts","eval:prepare-longmem":"tsx eval/prepare-longmemeval.ts","eval:prepare-longmemeval-s":"tsx eval/prepare-longmemeval.ts","eval:prepare-obsidian-help":"tsx eval/prepare-obsidian-help.ts","eval:prepare-evergreen-notes":"tsx eval/prepare-evergreen-notes.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["npm run sync-server-json","sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","better-sqlite3":"^12.10.1","onnxruntime-node":"^1.26.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","knip":"^6.16.1","husky":"^9.1.7","eslint":"^9.39.4","vitest":"^4.1.5","prettier":"^3.8.4","typescript":"^6.0.3","@types/node":"^25.9.3","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.61.0","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.0.3","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.13.11_1781583292885_0.5373734978660214","host":"s3://npm-registry-packages-npm-production"}},"0.13.12":{"name":"obsidian-hybrid-search","version":"0.13.12","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.13.12","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"ba303ac7330d927ad13d733d914482378bac21a3","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.13.12.tgz","fileCount":36,"integrity":"sha512-c4J654MzreTH3zP9wxNJiG/Jy9xVAnS2dt8w+l47VYmkRGQgtOWDs58tb2fizYhl17L4RZ2dOpAI5PLng0AFAw==","signatures":[{"sig":"MEQCIGOcVutES3KqkP0VqdT7xMHjRC+9yindV0nxR/wOxnyoAiBlZddlsIowP71am5yJXHqakI91n/D3XR2865RM91IRSg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.13.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1616323},"type":"module","engines":{"node":">=20"},"gitHead":"5d0822e68e005e66747f6beb084bd14f84424874","mcpName":"io.github.flowing-abyss/obsidian-hybrid-search","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","preflight":"bash scripts/ci-preflight.sh","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","eval:quality":"npm run eval:prepare-obsidian-help -- --vault fixtures/obsidian-help/dataset && env -u OPENAI_API_KEY -u OPENAI_BASE_URL -u OPENAI_EMBEDDING_MODEL -u LOCAL_EMBEDDING_MODEL tsx eval/evaluate.ts --output eval/results/.tmp-pre-push-quality.json && tsx eval/quality.ts eval/results/.tmp-pre-push-quality.json","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","sync-server-json":"bash scripts/sync-server-json.sh","test:integration":"vitest run --config vitest.integration.config.ts","eval:speed-profile":"tsx eval/speed-profile.ts","eval:prepare-longmem":"tsx eval/prepare-longmemeval.ts","eval:prepare-longmemeval-s":"tsx eval/prepare-longmemeval.ts","eval:prepare-obsidian-help":"tsx eval/prepare-obsidian-help.ts","eval:prepare-evergreen-notes":"tsx eval/prepare-evergreen-notes.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.8.2","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["npm run sync-server-json","sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","better-sqlite3":"^12.10.1","onnxruntime-node":"^1.26.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","knip":"^6.16.1","husky":"^9.1.7","eslint":"^9.39.4","vitest":"^4.1.5","prettier":"^3.8.4","typescript":"^6.0.3","@types/node":"^25.9.3","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.61.0","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.0.3","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.13.12_1781769280107_0.47081857343713907","host":"s3://npm-registry-packages-npm-production"}},"0.13.13":{"name":"obsidian-hybrid-search","version":"0.13.13","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.13.13","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"04ad814a1b2862f193eeafe0b75a38c0bc7d2dd5","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.13.13.tgz","fileCount":36,"integrity":"sha512-mER5kLE8t3fTPYUDtNAEsq6ud2ZH9Q7S8FtH0LM/kIUKXHh77zU8pXHsCBrZEdCcUXJPwBZUcWUKbL5y2N1gdQ==","signatures":[{"sig":"MEUCIDYRVnUmchaa1ioY8wCPsdNFfnIW1hwsiQg/F/UXByboAiEAyXhev56CFycGJgq9W4npPmRI5WyNDnUH9rudlxQaYlI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.13.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1616323},"type":"module","engines":{"node":">=20"},"gitHead":"82f79a438a86860134f7c520eb29d32f30e3311a","mcpName":"io.github.flowing-abyss/obsidian-hybrid-search","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","preflight":"bash scripts/ci-preflight.sh","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","eval:quality":"npm run eval:prepare-obsidian-help -- --vault fixtures/obsidian-help/dataset && env -u OPENAI_API_KEY -u OPENAI_BASE_URL -u OPENAI_EMBEDDING_MODEL -u LOCAL_EMBEDDING_MODEL tsx eval/evaluate.ts --output eval/results/.tmp-pre-push-quality.json && tsx eval/quality.ts eval/results/.tmp-pre-push-quality.json","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","sync-server-json":"bash scripts/sync-server-json.sh","test:integration":"vitest run --config vitest.integration.config.ts","eval:speed-profile":"tsx eval/speed-profile.ts","eval:prepare-longmem":"tsx eval/prepare-longmemeval.ts","eval:prepare-longmemeval-s":"tsx eval/prepare-longmemeval.ts","eval:prepare-obsidian-help":"tsx eval/prepare-obsidian-help.ts","eval:prepare-evergreen-notes":"tsx eval/prepare-evergreen-notes.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.9.8","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["npm run sync-server-json","sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"22.22.3","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","better-sqlite3":"^12.11.1","onnxruntime-node":"^1.26.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","knip":"^6.17.2","husky":"^9.1.7","eslint":"^9.39.4","vitest":"^4.1.5","prettier":"^3.8.4","typescript":"^6.0.3","@types/node":"^25.9.4","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.0.3","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.13.13_1782139341572_0.569137374320088","host":"s3://npm-registry-packages-npm-production"}},"0.13.14":{"name":"obsidian-hybrid-search","version":"0.13.14","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.13.14","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"fc9126963f558f9a4ca8985dbca0f1e8db5e53bf","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.13.14.tgz","fileCount":37,"integrity":"sha512-m5/+lFGRIFcg+VpVDVdADysY+yJRWOEr3wtGPc975Qm2AN02oIglsDt0qUL6TA89aenCdJM2kNErDzZl2ypCAA==","signatures":[{"sig":"MEUCICnRfasBZwUQbOsvnR9LZtrYitZqZ2l4yrrvMxkTSOsHAiEA+5wjfIM6JfHgEwLxRnqA6eHcxf2GQDxAme0htW7MqCM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.13.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1636738},"type":"module","engines":{"node":">=20"},"gitHead":"3bc7b079ee700ea5f9703cf673eb5e1835b4ec53","mcpName":"io.github.flowing-abyss/obsidian-hybrid-search","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","preflight":"bash scripts/ci-preflight.sh","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","eval:quality":"npm run eval:prepare-obsidian-help -- --vault fixtures/obsidian-help/dataset && env -u OPENAI_API_KEY -u OPENAI_BASE_URL -u OPENAI_EMBEDDING_MODEL -u LOCAL_EMBEDDING_MODEL tsx eval/evaluate.ts --output eval/results/.tmp-pre-push-quality.json && tsx eval/quality.ts eval/results/.tmp-pre-push-quality.json","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","sync-server-json":"bash scripts/sync-server-json.sh","test:integration":"vitest run --config vitest.integration.config.ts","eval:speed-profile":"tsx eval/speed-profile.ts","eval:prepare-longmem":"tsx eval/prepare-longmemeval.ts","eval:prepare-longmemeval-s":"tsx eval/prepare-longmemeval.ts","eval:prepare-obsidian-help":"tsx eval/prepare-obsidian-help.ts","eval:prepare-evergreen-notes":"tsx eval/prepare-evergreen-notes.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.9.8","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["npm run sync-server-json","sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"22.23.0","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","unified":"^11.0.5","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","remark-gfm":"^4.0.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","remark-parse":"^11.0.0","better-sqlite3":"^12.11.1","onnxruntime-node":"^1.26.0","unist-util-visit":"^5.1.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","knip":"^6.17.2","husky":"^9.1.7","eslint":"^9.39.4","vitest":"^4.1.5","prettier":"^3.8.4","typescript":"^6.0.3","@types/node":"^25.9.4","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.0.3","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.13.14_1782377193528_0.5518091100061446","host":"s3://npm-registry-packages-npm-production"}},"0.13.15":{"name":"obsidian-hybrid-search","version":"0.13.15","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.13.15","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"7ab47c808f2e819c2b6de63b82e427954d980ea7","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.13.15.tgz","fileCount":37,"integrity":"sha512-2+clEMreXJaAtu5nXjXr8j2SJCNr05AliGl4uDsIpemBx8mfdM2O+ED4hsmktSApoTUKANDf9OCOiAJccpzjTA==","signatures":[{"sig":"MEUCIHUlVsD7pbRuSKtSjoYCgz54OXMko/HMKktHSbpr0Cq0AiEA84SDhVafqVGR86mBJP217VGwLPgZuq+2CfCqKsBVW2Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.13.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1647956},"type":"module","engines":{"node":">=20"},"gitHead":"1234bf095870d3bbbaf8539244ba8657b117ef42","mcpName":"io.github.flowing-abyss/obsidian-hybrid-search","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","preflight":"bash scripts/ci-preflight.sh","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","eval:quality":"npm run eval:prepare-obsidian-help -- --vault fixtures/obsidian-help/dataset && env -u OPENAI_API_KEY -u OPENAI_BASE_URL -u OPENAI_EMBEDDING_MODEL -u LOCAL_EMBEDDING_MODEL tsx eval/evaluate.ts --output eval/results/.tmp-pre-push-quality.json && tsx eval/quality.ts eval/results/.tmp-pre-push-quality.json","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","sync-server-json":"bash scripts/sync-server-json.sh","test:integration":"vitest run --config vitest.integration.config.ts","eval:speed-profile":"tsx eval/speed-profile.ts","eval:prepare-longmem":"tsx eval/prepare-longmemeval.ts","eval:prepare-longmemeval-s":"tsx eval/prepare-longmemeval.ts","eval:prepare-obsidian-help":"tsx eval/prepare-obsidian-help.ts","eval:prepare-evergreen-notes":"tsx eval/prepare-evergreen-notes.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.9.8","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["npm run sync-server-json","sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"22.23.0","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","ignore":"^7.0.5","unified":"^11.0.5","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","remark-gfm":"^4.0.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","remark-parse":"^11.0.0","better-sqlite3":"^12.11.1","onnxruntime-node":"^1.26.0","unist-util-visit":"^5.1.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","knip":"^6.17.2","husky":"^9.1.7","eslint":"^9.39.4","vitest":"^4.1.5","prettier":"^3.8.4","typescript":"^6.0.3","@types/node":"^25.9.4","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.61.1","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.0.3","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.13.15_1782477744836_0.07390654582902867","host":"s3://npm-registry-packages-npm-production"}},"0.13.16":{"name":"obsidian-hybrid-search","version":"0.13.16","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.13.16","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"1696698fbda15c6d0c751105e5ad4cf438fc9c3d","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.13.16.tgz","fileCount":37,"integrity":"sha512-mrgJSN2jT1pdEcuAeExuCPFAXn3txHYqSjBsLeGvYaYQTC6T4c5qYo/2j9LgAd7V52bAcudW1wdkCTvVfe3dhg==","signatures":[{"sig":"MEUCIQC0TRKbtXtYMEHQVH/Xahv+sWtrMjCxFzZ1SNrGVaWO9QIgUmypHra9UDfb9OPoJJwU4EViHuz8UpVHbY/bo3e74K0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.13.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1653556},"type":"module","engines":{"node":">=20"},"gitHead":"5d54caf3e302cfdeedaa252cb93d7c18e7299dcd","mcpName":"io.github.flowing-abyss/obsidian-hybrid-search","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","preflight":"bash scripts/ci-preflight.sh","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","eval:quality":"npm run eval:prepare-obsidian-help -- --vault fixtures/obsidian-help/dataset && env -u OPENAI_API_KEY -u OPENAI_BASE_URL -u OPENAI_EMBEDDING_MODEL -u LOCAL_EMBEDDING_MODEL tsx eval/evaluate.ts --output eval/results/.tmp-pre-push-quality.json && tsx eval/quality.ts eval/results/.tmp-pre-push-quality.json","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","sync-server-json":"bash scripts/sync-server-json.sh","test:integration":"vitest run --config vitest.integration.config.ts","eval:speed-profile":"tsx eval/speed-profile.ts","eval:prepare-longmem":"tsx eval/prepare-longmemeval.ts","eval:prepare-longmemeval-s":"tsx eval/prepare-longmemeval.ts","eval:prepare-obsidian-help":"tsx eval/prepare-obsidian-help.ts","eval:prepare-evergreen-notes":"tsx eval/prepare-evergreen-notes.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.9.8","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["npm run sync-server-json","sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"22.23.0","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","ignore":"^7.0.5","unified":"^11.0.5","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","remark-gfm":"^4.0.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","remark-parse":"^11.0.0","better-sqlite3":"^12.11.1","onnxruntime-node":"^1.27.0","unist-util-visit":"^5.1.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","knip":"^6.23.0","husky":"^9.1.7","eslint":"^9.39.4","vitest":"^4.1.5","prettier":"^3.9.3","typescript":"^6.0.3","@types/node":"^25.9.4","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.62.0","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.1.0","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.13.16_1782743529754_0.7944973371967174","host":"s3://npm-registry-packages-npm-production"}},"0.13.17":{"name":"obsidian-hybrid-search","version":"0.13.17","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.13.17","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"749caaeb60426469bae9e0a263f868c2e7730438","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.13.17.tgz","fileCount":37,"integrity":"sha512-U0H5sA3ZvgRkCW0mDZI0xzUUbcZUq+FlDR2wzTsAYPEIDXGwdso/hTMvmy1H/KEXoCWN4HAGBMz0BS0bhxbJig==","signatures":[{"sig":"MEQCIBGiXQIpoR1BP0WS0aoG0qlGv6RyBmKX3HDd7trBkleDAiAsnSwV8M3IoRUf8wOpZsvMt3bz8AU7fssksgZYZZVW+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.13.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1654078},"type":"module","engines":{"node":">=20"},"gitHead":"16728c680275638c5e0d4693490d2af2b8a7041f","mcpName":"io.github.flowing-abyss/obsidian-hybrid-search","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","preflight":"bash scripts/ci-preflight.sh","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","eval:quality":"npm run eval:prepare-obsidian-help -- --vault fixtures/obsidian-help/dataset && env -u OPENAI_API_KEY -u OPENAI_BASE_URL -u OPENAI_EMBEDDING_MODEL -u LOCAL_EMBEDDING_MODEL tsx eval/evaluate.ts --output eval/results/.tmp-pre-push-quality.json && tsx eval/quality.ts eval/results/.tmp-pre-push-quality.json","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","sync-server-json":"bash scripts/sync-server-json.sh","test:e2e-watcher":"vitest run --config vitest.e2e-watcher.config.ts","test:integration":"vitest run --config vitest.integration.config.ts","eval:speed-profile":"tsx eval/speed-profile.ts","eval:prepare-longmem":"tsx eval/prepare-longmemeval.ts","eval:prepare-longmemeval-s":"tsx eval/prepare-longmemeval.ts","eval:prepare-obsidian-help":"tsx eval/prepare-obsidian-help.ts","eval:prepare-evergreen-notes":"tsx eval/prepare-evergreen-notes.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.9.8","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["npm run sync-server-json","sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","ignore":"^7.0.5","unified":"^11.0.5","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","remark-gfm":"^4.0.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","remark-parse":"^11.0.0","better-sqlite3":"^12.11.1","onnxruntime-node":"^1.27.0","unist-util-visit":"^5.1.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","knip":"^6.23.0","husky":"^9.1.7","eslint":"^9.39.4","vitest":"^4.1.5","prettier":"^3.9.3","typescript":"^6.0.3","@types/node":"^25.9.4","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.62.0","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.1.0","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.13.17_1783305716053_0.9286088827536956","host":"s3://npm-registry-packages-npm-production"}},"0.13.18":{"name":"obsidian-hybrid-search","version":"0.13.18","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.13.18","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"f650fa9a04176ddb74e94029bf049c639cc9379e","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.13.18.tgz","fileCount":37,"integrity":"sha512-zto/7pErIWrmTFfZnKq8yESYuvwqc7i0tZhHiZU+1CpYoqRk9v8CTPlcbCiq4Php0TIaOh637B48TF0lAU3N4Q==","signatures":[{"sig":"MEYCIQDFTWqRiTPTOsDmilxrzPHLLAeVtVzjqktvAnFmt8iSXgIhAKtezSs0yrsusGG0289i1eH2x4JZIwQRqi6mmanrPjWk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.13.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1654078},"type":"module","engines":{"node":">=20"},"gitHead":"0469ea0853a89ed00b0ad4d8d34dc6a244904557","mcpName":"io.github.flowing-abyss/obsidian-hybrid-search","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","preflight":"bash scripts/ci-preflight.sh","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","eval:quality":"npm run eval:prepare-obsidian-help -- --vault fixtures/obsidian-help/dataset && env -u OPENAI_API_KEY -u OPENAI_BASE_URL -u OPENAI_EMBEDDING_MODEL -u LOCAL_EMBEDDING_MODEL tsx eval/evaluate.ts --output eval/results/.tmp-pre-push-quality.json && tsx eval/quality.ts eval/results/.tmp-pre-push-quality.json","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","sync-server-json":"bash scripts/sync-server-json.sh","test:e2e-watcher":"vitest run --config vitest.e2e-watcher.config.ts","test:integration":"vitest run --config vitest.integration.config.ts","eval:speed-profile":"tsx eval/speed-profile.ts","eval:prepare-longmem":"tsx eval/prepare-longmemeval.ts","eval:prepare-longmemeval-s":"tsx eval/prepare-longmemeval.ts","eval:prepare-obsidian-help":"tsx eval/prepare-obsidian-help.ts","eval:prepare-evergreen-notes":"tsx eval/prepare-evergreen-notes.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.9.8","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["npm run sync-server-json","sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","ignore":"^7.0.5","unified":"^11.0.5","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","remark-gfm":"^4.0.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","remark-parse":"^11.0.0","better-sqlite3":"^12.11.1","onnxruntime-node":"^1.27.0","unist-util-visit":"^5.1.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","knip":"^6.24.0","husky":"^9.1.7","eslint":"^9.39.4","vitest":"^4.1.5","prettier":"^3.9.4","typescript":"^6.0.3","@types/node":"^25.9.4","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.62.1","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.1.0","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.13.18_1783337068599_0.9588913618562813","host":"s3://npm-registry-packages-npm-production"}},"0.13.19":{"name":"obsidian-hybrid-search","version":"0.13.19","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.13.19","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"6ba36db0ec00bf51f745c3bba39673a6b0f090ad","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.13.19.tgz","fileCount":39,"integrity":"sha512-cdl2YJwZtiT0jEjPrfbDwp3fNkiShjrDfKAxZFx+ok9EoCFc6D50rIc22ndjhJPs/yZcAl82Dzz50zzK93p0nQ==","signatures":[{"sig":"MEQCIBVtXumuROfbnYpX3rjPskHOmf5y4pZze4DxCkvJEcoGAiB/XKnoXQfHR2aIXoH6Rj8rm0crh3jAuQ254LGpal0XlQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.13.19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1690306},"type":"module","engines":{"node":">=20"},"gitHead":"815fec67087f7bb77e513d768ad2d85e9d03dd58","mcpName":"io.github.flowing-abyss/obsidian-hybrid-search","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","preflight":"bash scripts/ci-preflight.sh","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","eval:quality":"npm run eval:prepare-obsidian-help -- --vault fixtures/obsidian-help/dataset && env -u OPENAI_API_KEY -u OPENAI_BASE_URL -u OPENAI_EMBEDDING_MODEL -u LOCAL_EMBEDDING_MODEL tsx eval/evaluate.ts --output eval/results/.tmp-pre-push-quality.json && tsx eval/quality.ts eval/results/.tmp-pre-push-quality.json","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","sync-server-json":"bash scripts/sync-server-json.sh","test:e2e-watcher":"vitest run --config vitest.e2e-watcher.config.ts","test:integration":"vitest run --config vitest.integration.config.ts","eval:speed-profile":"tsx eval/speed-profile.ts","eval:prepare-longmem":"tsx eval/prepare-longmemeval.ts","eval:prepare-longmemeval-s":"tsx eval/prepare-longmemeval.ts","eval:prepare-obsidian-help":"tsx eval/prepare-obsidian-help.ts","eval:prepare-evergreen-notes":"tsx eval/prepare-evergreen-notes.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.9.8","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["npm run sync-server-json","sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","ignore":"^7.0.5","unified":"^11.0.5","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","remark-gfm":"^4.0.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","js-tiktoken":"^1.0.21","remark-parse":"^11.0.0","better-sqlite3":"^12.11.1","onnxruntime-node":"^1.27.0","unist-util-visit":"^5.1.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.0","knip":"^6.24.0","husky":"^9.1.7","eslint":"^9.39.4","vitest":"^4.1.5","prettier":"^3.9.4","typescript":"^6.0.3","@types/node":"^25.9.4","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.62.1","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.1.0","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.13.19_1783771218351_0.20603235704142553","host":"s3://npm-registry-packages-npm-production"}},"0.13.20":{"name":"obsidian-hybrid-search","version":"0.13.20","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.13.20","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"ce0939bdd89cf56634fa7330f1b4e42be7d593b1","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.13.20.tgz","fileCount":39,"integrity":"sha512-TOfKAWiJd3F+OaODpPqRHKzCAwtlX9Tj53JnrJ0dsl4Yd/rKD8aGbWnCSYtF8mdetArGMSyFRfFjRi09WSZRkQ==","signatures":[{"sig":"MEUCIQCdM15hfTJNjPi5EP89gXgCnQ6KvrajTymkY38yVFmKEQIgEFGRhlkK97gFJ+H5SSjaqWroI7akiEr4qkKvYc42QuY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.13.20","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1690306},"type":"module","engines":{"node":">=20"},"gitHead":"de3eb02c702d22f98d746e8d93540f0eefbfa8a4","mcpName":"io.github.flowing-abyss/obsidian-hybrid-search","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","preflight":"bash scripts/ci-preflight.sh","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","eval:quality":"npm run eval:prepare-obsidian-help -- --vault fixtures/obsidian-help/dataset && env -u OPENAI_API_KEY -u OPENAI_BASE_URL -u OPENAI_EMBEDDING_MODEL -u LOCAL_EMBEDDING_MODEL tsx eval/evaluate.ts --output eval/results/.tmp-pre-push-quality.json && tsx eval/quality.ts eval/results/.tmp-pre-push-quality.json","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","sync-server-json":"bash scripts/sync-server-json.sh","test:e2e-watcher":"vitest run --config vitest.e2e-watcher.config.ts","test:integration":"vitest run --config vitest.integration.config.ts","eval:speed-profile":"tsx eval/speed-profile.ts","eval:prepare-longmem":"tsx eval/prepare-longmemeval.ts","eval:prepare-longmemeval-s":"tsx eval/prepare-longmemeval.ts","eval:prepare-obsidian-help":"tsx eval/prepare-obsidian-help.ts","eval:prepare-evergreen-notes":"tsx eval/prepare-evergreen-notes.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.9.8","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["npm run sync-server-json","sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","ignore":"^7.0.6","unified":"^11.0.5","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","remark-gfm":"^4.0.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","js-tiktoken":"^1.0.21","remark-parse":"^11.0.0","better-sqlite3":"^12.11.1","onnxruntime-node":"^1.27.0","unist-util-visit":"^5.1.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","knip":"^6.26.0","husky":"^9.1.7","eslint":"^9.39.5","vitest":"^4.1.5","prettier":"^3.9.5","typescript":"^6.0.3","@types/node":"^25.9.5","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.63.0","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.1.0","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.13.20_1783936126723_0.20264793169082185","host":"s3://npm-registry-packages-npm-production"}},"0.13.21":{"name":"obsidian-hybrid-search","version":"0.13.21","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.13.21","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"e9daf5b2b1b00e1cb748a39ef220e2ab4c14745e","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.13.21.tgz","fileCount":39,"integrity":"sha512-+rWFxVS2AaO8c4HsUzJvxhb0SIvy7XTg6TZ4NBuc9mEC8u0BtjG0ccX6C6BYdz9z95nT8MfXdWRFaemVJ47Rdw==","signatures":[{"sig":"MEYCIQD6GTneXe+XPWodmQlr55atKxbcc/g1C1vsdMm0TLFNGQIhAN8LsYHtIxkvvtwnidJnUjvJsTMCilqCk5eRCIaKG4bb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.13.21","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1692495},"type":"module","engines":{"node":">=20"},"gitHead":"7cc6f0ec8e7bd6607e54c0ba0b87a3184e37c0ec","mcpName":"io.github.flowing-abyss/obsidian-hybrid-search","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","preflight":"bash scripts/ci-preflight.sh","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","eval:quality":"npm run eval:prepare-obsidian-help -- --vault fixtures/obsidian-help/dataset && env -u OPENAI_API_KEY -u OPENAI_BASE_URL -u OPENAI_EMBEDDING_MODEL -u LOCAL_EMBEDDING_MODEL tsx eval/evaluate.ts --output eval/results/.tmp-pre-push-quality.json && tsx eval/quality.ts eval/results/.tmp-pre-push-quality.json","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","sync-server-json":"bash scripts/sync-server-json.sh","test:e2e-watcher":"vitest run --config vitest.e2e-watcher.config.ts","test:integration":"vitest run --config vitest.integration.config.ts","eval:speed-profile":"tsx eval/speed-profile.ts","eval:prepare-longmem":"tsx eval/prepare-longmemeval.ts","eval:prepare-longmemeval-s":"tsx eval/prepare-longmemeval.ts","eval:prepare-obsidian-help":"tsx eval/prepare-obsidian-help.ts","test:native-recovery-smoke":"node scripts/smoke-native-recovery.mjs","eval:prepare-evergreen-notes":"tsx eval/prepare-evergreen-notes.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.9.8","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["npm run sync-server-json","sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","ignore":"^7.0.6","unified":"^11.0.5","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","remark-gfm":"^4.0.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","js-tiktoken":"^1.0.21","remark-parse":"^11.0.0","better-sqlite3":"^12.11.1","onnxruntime-node":"^1.27.0","unist-util-visit":"^5.1.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","knip":"^6.26.0","husky":"^9.1.7","eslint":"^9.39.5","vitest":"^4.1.5","prettier":"^3.9.5","typescript":"^6.0.3","@types/node":"^25.9.5","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.63.0","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.1.0","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.13.21_1784009568479_0.931814495204385","host":"s3://npm-registry-packages-npm-production"}},"0.13.22":{"name":"obsidian-hybrid-search","version":"0.13.22","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.13.22","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"21077300a704ffed3d2aed8e5bb711d8be9e792f","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.13.22.tgz","fileCount":39,"integrity":"sha512-TtIi76qG/BkER7c8vWLLxiaFI8LW1gmWmdaPDRuo1fQC3lVk3hchtj6b9uIkuHxRJFUaIUaygIhUO2GsQqTirA==","signatures":[{"sig":"MEYCIQCkHWpJfYYFlyuFkOwwZpH+ZgJTnWLKxsk5a2tuSJ287wIhAOadOYQf2wVgZJgmmd1JIVY2SQKpFhAffA7YgPCNdlG+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.13.22","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1694726},"type":"module","engines":{"node":">=20"},"gitHead":"8aecc2e2d6c5b7f6ee3e68d54b3355a0d4df7575","mcpName":"io.github.flowing-abyss/obsidian-hybrid-search","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","preflight":"bash scripts/ci-preflight.sh","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","eval:quality":"npm run eval:prepare-obsidian-help -- --vault fixtures/obsidian-help/dataset && env -u OPENAI_API_KEY -u OPENAI_BASE_URL -u OPENAI_EMBEDDING_MODEL -u LOCAL_EMBEDDING_MODEL tsx eval/evaluate.ts --output eval/results/.tmp-pre-push-quality.json && tsx eval/quality.ts eval/results/.tmp-pre-push-quality.json","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","sync-server-json":"bash scripts/sync-server-json.sh","test:e2e-watcher":"vitest run --config vitest.e2e-watcher.config.ts","test:integration":"vitest run --config vitest.integration.config.ts","eval:speed-profile":"tsx eval/speed-profile.ts","eval:prepare-longmem":"tsx eval/prepare-longmemeval.ts","eval:prepare-longmemeval-s":"tsx eval/prepare-longmemeval.ts","eval:prepare-obsidian-help":"tsx eval/prepare-obsidian-help.ts","test:native-recovery-smoke":"node scripts/smoke-native-recovery.mjs","eval:prepare-evergreen-notes":"tsx eval/prepare-evergreen-notes.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.9.8","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["npm run sync-server-json","sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","ignore":"^7.0.6","unified":"^11.0.5","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","remark-gfm":"^4.0.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","js-tiktoken":"^1.0.21","remark-parse":"^11.0.0","better-sqlite3":"^12.11.1","onnxruntime-node":"^1.27.0","unist-util-visit":"^5.1.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","knip":"^6.26.0","husky":"^9.1.7","eslint":"^9.39.5","vitest":"^4.1.5","prettier":"^3.9.5","typescript":"^6.0.3","@types/node":"^25.9.5","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.63.0","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.1.0","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.13.22_1784100763949_0.48867304598241823","host":"s3://npm-registry-packages-npm-production"}},"0.13.23":{"name":"obsidian-hybrid-search","version":"0.13.23","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.13.23","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"170025ee1543398a70b263fb484d2d374cee7428","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.13.23.tgz","fileCount":39,"integrity":"sha512-tcZiAAbbyu28IIxasli3w49GHUxCzqK8lfodVPwk6V7YGoiT0hCdfjQKutUNJShpKK+YvJys2ZF4TmVE69f35A==","signatures":[{"sig":"MEUCIFW3oGpZ9aozdORPpWBRRYayCBJ+lApv1Roeu0y29mJiAiEAq45oSY1R/sw2u+1XeE92mTrinRbDr3RO4hJe+kTrKcI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.13.23","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1694726},"type":"module","engines":{"node":">=20"},"gitHead":"c0922d955f5bf5abaad14a11cbb3e11303cd6036","mcpName":"io.github.flowing-abyss/obsidian-hybrid-search","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","preflight":"bash scripts/ci-preflight.sh","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","eval:quality":"npm run eval:prepare-obsidian-help -- --vault fixtures/obsidian-help/dataset && env -u OPENAI_API_KEY -u OPENAI_BASE_URL -u OPENAI_EMBEDDING_MODEL -u LOCAL_EMBEDDING_MODEL tsx eval/evaluate.ts --output eval/results/.tmp-pre-push-quality.json && tsx eval/quality.ts eval/results/.tmp-pre-push-quality.json","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","sync-server-json":"bash scripts/sync-server-json.sh","test:e2e-watcher":"vitest run --config vitest.e2e-watcher.config.ts","test:integration":"vitest run --config vitest.integration.config.ts","eval:speed-profile":"tsx eval/speed-profile.ts","eval:prepare-longmem":"tsx eval/prepare-longmemeval.ts","eval:prepare-longmemeval-s":"tsx eval/prepare-longmemeval.ts","eval:prepare-obsidian-help":"tsx eval/prepare-obsidian-help.ts","test:native-recovery-smoke":"node scripts/smoke-native-recovery.mjs","eval:prepare-evergreen-notes":"tsx eval/prepare-evergreen-notes.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.9.8","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["npm run sync-server-json","sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","ignore":"^7.0.6","unified":"^11.0.5","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","remark-gfm":"^4.0.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","js-tiktoken":"^1.0.21","remark-parse":"^11.0.0","better-sqlite3":"^12.11.1","onnxruntime-node":"^1.27.0","unist-util-visit":"^5.1.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","knip":"^6.27.0","husky":"^9.1.7","eslint":"^9.39.5","vitest":"^4.1.5","prettier":"^3.9.5","typescript":"^6.0.3","@types/node":"^25.9.5","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.65.0","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.2.0","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.13.23_1784608865412_0.7708522797743442","host":"s3://npm-registry-packages-npm-production"}},"0.13.24":{"name":"obsidian-hybrid-search","version":"0.13.24","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.13.24","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"20046f9d952df066a717d5937e34c0fb41068da9","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.13.24.tgz","fileCount":39,"integrity":"sha512-IeVC/6s3W8DR9IziTpefTE+muNxZWXDz05GDrf2DOrfr2SSa8mEOqY1vzqults/cqadUG/gd4poqNEl/5MfIgQ==","signatures":[{"sig":"MEUCIQCyJzaHeDUwDTEfYXSufzzs9WKsbQhStX5FR54yzToWIgIgcMka8V+CY6wJ3aVTkzviI1AEtUvKW089gVDCz/gJBYM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.13.24","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1694726},"type":"module","engines":{"node":">=20"},"gitHead":"5f97a11850eaf196c0dc5a537b781091e03ba13f","mcpName":"io.github.flowing-abyss/obsidian-hybrid-search","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","preflight":"bash scripts/ci-preflight.sh","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","eval:quality":"npm run eval:prepare-obsidian-help -- --vault fixtures/obsidian-help/dataset && env -u OPENAI_API_KEY -u OPENAI_BASE_URL -u OPENAI_EMBEDDING_MODEL -u LOCAL_EMBEDDING_MODEL tsx eval/evaluate.ts --output eval/results/.tmp-pre-push-quality.json && tsx eval/quality.ts eval/results/.tmp-pre-push-quality.json","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","sync-server-json":"bash scripts/sync-server-json.sh","test:e2e-watcher":"vitest run --config vitest.e2e-watcher.config.ts","test:integration":"vitest run --config vitest.integration.config.ts","eval:speed-profile":"tsx eval/speed-profile.ts","eval:prepare-longmem":"tsx eval/prepare-longmemeval.ts","eval:prepare-longmemeval-s":"tsx eval/prepare-longmemeval.ts","eval:prepare-obsidian-help":"tsx eval/prepare-obsidian-help.ts","test:native-recovery-smoke":"node scripts/smoke-native-recovery.mjs","eval:prepare-evergreen-notes":"tsx eval/prepare-evergreen-notes.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.9.8","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["npm run sync-server-json","sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","ignore":"^7.0.6","unified":"^11.0.5","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","remark-gfm":"^4.0.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","js-tiktoken":"^1.0.21","remark-parse":"^11.0.0","better-sqlite3":"^12.11.1","onnxruntime-node":"^1.27.0","unist-util-visit":"^5.1.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.1","knip":"^6.29.0","husky":"^9.1.7","eslint":"^9.39.5","vitest":"^4.1.5","prettier":"^3.9.6","typescript":"^6.0.3","@types/node":"^25.9.5","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.65.0","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.2.0","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.13.24_1785147459139_0.9049566440812646","host":"s3://npm-registry-packages-npm-production"}},"0.13.25":{"name":"obsidian-hybrid-search","version":"0.13.25","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.13.25","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"d3ec74fe47afd3b94b878da8ea62b6f0dbbf3621","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.13.25.tgz","fileCount":39,"integrity":"sha512-swVpytUYryiTKojXkcm+PgsTS0nfqIQ0z/62trMBzfaagzammWpdQ9BHD6rVuBj+UaMrHAtzUBxGV9eI095BkQ==","signatures":[{"sig":"MEUCIDxbFvmtx5JLzCH9SjigdPdWXrrcakn/ocJ1wZqJjAmmAiEAlNbIvPiux+newFtkuViNhkWoMuOaf5ebG73QI6Vh6cM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.13.25","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1694726},"type":"module","engines":{"node":">=20"},"gitHead":"be46c4a0bc9a18df8161773e13b618716e33eb8c","mcpName":"io.github.flowing-abyss/obsidian-hybrid-search","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","preflight":"bash scripts/ci-preflight.sh","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","eval:quality":"npm run eval:prepare-obsidian-help -- --vault fixtures/obsidian-help/dataset && env -u OPENAI_API_KEY -u OPENAI_BASE_URL -u OPENAI_EMBEDDING_MODEL -u LOCAL_EMBEDDING_MODEL tsx eval/evaluate.ts --output eval/results/.tmp-pre-push-quality.json && tsx eval/quality.ts eval/results/.tmp-pre-push-quality.json","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","sync-server-json":"bash scripts/sync-server-json.sh","test:e2e-watcher":"vitest run --config vitest.e2e-watcher.config.ts","test:integration":"vitest run --config vitest.integration.config.ts","eval:speed-profile":"tsx eval/speed-profile.ts","eval:prepare-longmem":"tsx eval/prepare-longmemeval.ts","eval:prepare-longmemeval-s":"tsx eval/prepare-longmemeval.ts","eval:prepare-obsidian-help":"tsx eval/prepare-obsidian-help.ts","test:native-recovery-smoke":"node scripts/smoke-native-recovery.mjs","eval:prepare-evergreen-notes":"tsx eval/prepare-evergreen-notes.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.9.8","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["npm run sync-server-json","sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","ignore":"^7.0.6","unified":"^11.0.5","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","remark-gfm":"^4.0.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","js-tiktoken":"^1.0.21","remark-parse":"^11.0.0","better-sqlite3":"^12.11.1","onnxruntime-node":"^1.27.0","unist-util-visit":"^5.1.0","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.5","knip":"^6.31.0","husky":"^9.1.7","eslint":"^9.39.5","vitest":"^4.1.5","prettier":"^3.9.6","typescript":"^6.0.3","@types/node":"^25.9.5","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.65.0","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.2.0","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.13.25_1785751981519_0.29449672445594355","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"obsidian-hybrid-search","version":"0.14.0","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.14.0","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"9d22c522ab8197e5c5bb789b52765fb772c1ba99","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.14.0.tgz","fileCount":42,"integrity":"sha512-ctwFhZrMZwYV7EwcEgOgBu5B6HZ6DojEBi9QwzQ6EKdL+KdtLy/c9pcbMjIXpKjHV66EuNzFAlu3wufbFBVv3Q==","signatures":[{"sig":"MEUCIDFbJiUUu5YoEk82J2wS1vdyJP0ci9lOWz6XSAQyjwV+AiEAx+ki6cruA8H2U0wPXjZrATeZEnIN66zKj6pJQ6823p0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1720148},"type":"module","engines":{"node":">=20"},"gitHead":"c931f30d6b1f6c31db0036fb5df8aec7d6fc5882","mcpName":"io.github.flowing-abyss/obsidian-hybrid-search","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","preflight":"bash scripts/ci-preflight.sh","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","eval:quality":"npm run eval:prepare-obsidian-help -- --vault fixtures/obsidian-help/dataset && env -u OPENAI_API_KEY -u OPENAI_BASE_URL -u OPENAI_EMBEDDING_MODEL -u LOCAL_EMBEDDING_MODEL tsx eval/evaluate.ts --output eval/results/.tmp-pre-push-quality.json && tsx eval/quality.ts eval/results/.tmp-pre-push-quality.json","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","sync-server-json":"bash scripts/sync-server-json.sh","test:e2e-watcher":"vitest run --config vitest.e2e-watcher.config.ts","test:integration":"vitest run --config vitest.integration.config.ts","eval:speed-profile":"tsx eval/speed-profile.ts","eval:prepare-longmem":"tsx eval/prepare-longmemeval.ts","eval:prepare-longmemeval-s":"tsx eval/prepare-longmemeval.ts","eval:prepare-obsidian-help":"tsx eval/prepare-obsidian-help.ts","test:native-recovery-smoke":"node scripts/smoke-native-recovery.mjs","eval:prepare-evergreen-notes":"tsx eval/prepare-evergreen-notes.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.9.8","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["npm run sync-server-json","sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","ignore":"^7.0.6","unified":"^11.0.5","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","remark-gfm":"^4.0.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","js-tiktoken":"^1.0.21","remark-parse":"^11.0.0","better-sqlite3":"^12.11.1","onnxruntime-node":"^1.27.0","unist-util-visit":"^5.1.0","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.5","knip":"^6.31.0","husky":"^9.1.7","eslint":"^9.39.5","vitest":"^4.1.5","prettier":"^3.9.6","typescript":"^6.0.3","@types/node":"^25.9.5","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.65.0","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.2.0","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.14.0_1786248111433_0.6512692314183492","host":"s3://npm-registry-packages-npm-production"}},"0.14.1":{"name":"obsidian-hybrid-search","version":"0.14.1","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.14.1","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"f146388fa6c98fd6d568dd75d1fad4352dd6279d","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.14.1.tgz","fileCount":42,"integrity":"sha512-kjlCs3Eq6MX3kl/6On58LGmOXsqWpGc1UuMOFYKP9orLtkPXAz65SL3VGHm8NXFW7TcDGZAfDiREUGmBgnvBcQ==","signatures":[{"sig":"MEUCIQCxnSip0Ik+ZY9VvaMSZW7Gb3jrMf1oA5jSscBBVzwZfQIgOip6P9I3P8m6yeWDBcVbm8gfoj0SH3XD+W2lfE+AyAw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.14.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1719130},"type":"module","engines":{"node":">=20"},"gitHead":"b6f508e729b814ef29289769accd4736d56bceac","mcpName":"io.github.flowing-abyss/obsidian-hybrid-search","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","preflight":"bash scripts/ci-preflight.sh","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","eval:quality":"npm run eval:prepare-obsidian-help -- --vault fixtures/obsidian-help/dataset && env -u OPENAI_API_KEY -u OPENAI_BASE_URL -u OPENAI_EMBEDDING_MODEL -u LOCAL_EMBEDDING_MODEL tsx eval/evaluate.ts --output eval/results/.tmp-pre-push-quality.json && tsx eval/quality.ts eval/results/.tmp-pre-push-quality.json","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","sync-server-json":"bash scripts/sync-server-json.sh","test:e2e-watcher":"vitest run --config vitest.e2e-watcher.config.ts","test:integration":"vitest run --config vitest.integration.config.ts","eval:speed-profile":"tsx eval/speed-profile.ts","eval:prepare-longmem":"tsx eval/prepare-longmemeval.ts","eval:prepare-longmemeval-s":"tsx eval/prepare-longmemeval.ts","eval:prepare-obsidian-help":"tsx eval/prepare-obsidian-help.ts","test:native-recovery-smoke":"node scripts/smoke-native-recovery.mjs","eval:prepare-evergreen-notes":"tsx eval/prepare-evergreen-notes.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.9.8","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["npm run sync-server-json","sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","ignore":"^7.0.6","unified":"^11.0.5","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","remark-gfm":"^4.0.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","js-tiktoken":"^1.0.21","remark-parse":"^11.0.0","better-sqlite3":"^12.11.1","onnxruntime-node":"^1.27.0","unist-util-visit":"^5.1.0","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","knip":"^6.32.0","husky":"^9.1.7","eslint":"^9.39.5","vitest":"^4.1.5","prettier":"^3.9.6","typescript":"^6.0.3","@types/node":"^25.9.5","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.2.0","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.14.1_1786349197594_0.7136962619710894","host":"s3://npm-registry-packages-npm-production"}},"0.14.2":{"name":"obsidian-hybrid-search","version":"0.14.2","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.14.2","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"ohs":"dist/src/cli.js","obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"4126ba88f59d14cc910290f6bcb13f3490c29dec","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.14.2.tgz","fileCount":42,"integrity":"sha512-CNFs6agfu+SVLpSvfnrTKClmxtqD8t9yeGkrRmy4Y9QrtWVnzN7lmYkmdnHIeQSuR3qXsF05Woc0CmyAkrXtKw==","signatures":[{"sig":"MEUCIQDdJqRg40XRY76A5BazkHrIvF7IMaJS6uwabXyuMcoTPAIgD6QXa1B0QL5cUisGTJbyVO/ZfNYikyugYvbntQAbc0Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.14.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1718994},"type":"module","engines":{"node":">=20"},"gitHead":"4c624d7887d8e18e7a07a334a740dfc43f84976f","mcpName":"io.github.flowing-abyss/obsidian-hybrid-search","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","preflight":"bash scripts/ci-preflight.sh","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","eval:quality":"npm run eval:prepare-obsidian-help -- --vault fixtures/obsidian-help/dataset && env -u OPENAI_API_KEY -u OPENAI_BASE_URL -u OPENAI_EMBEDDING_MODEL -u LOCAL_EMBEDDING_MODEL tsx eval/evaluate.ts --output eval/results/.tmp-pre-push-quality.json && tsx eval/quality.ts eval/results/.tmp-pre-push-quality.json","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","sync-server-json":"bash scripts/sync-server-json.sh","test:e2e-watcher":"vitest run --config vitest.e2e-watcher.config.ts","test:integration":"vitest run --config vitest.integration.config.ts","eval:speed-profile":"tsx eval/speed-profile.ts","eval:prepare-longmem":"tsx eval/prepare-longmemeval.ts","eval:prepare-longmemeval-s":"tsx eval/prepare-longmemeval.ts","eval:prepare-obsidian-help":"tsx eval/prepare-obsidian-help.ts","test:native-recovery-smoke":"node scripts/smoke-native-recovery.mjs","eval:prepare-evergreen-notes":"tsx eval/prepare-evergreen-notes.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.9.8","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["npm run sync-server-json","sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","ignore":"^7.0.6","unified":"^11.0.5","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","remark-gfm":"^4.0.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","js-tiktoken":"^1.0.21","remark-parse":"^11.0.0","better-sqlite3":"^12.11.1","onnxruntime-node":"^1.27.0","unist-util-visit":"^5.1.0","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","knip":"^6.32.0","husky":"^9.1.7","eslint":"^9.39.5","vitest":"^4.1.5","prettier":"^3.9.6","typescript":"^6.0.3","@types/node":"^25.9.5","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.66.0","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.2.0","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.14.2_1786680358538_0.8253675490704746","host":"s3://npm-registry-packages-npm-production"}},"0.14.3":{"name":"obsidian-hybrid-search","version":"0.14.3","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.14.3","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"ohs":"dist/src/cli.js","obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"d5dc93673ddd6fafded0323d089b9f01a6fed1fa","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.14.3.tgz","fileCount":42,"integrity":"sha512-hlRWHAZmS/40+3S4cwncWMWZZZ7qPCV5eXIzvl4QOstgvkuOhpbERau95H7fFQDRMn3I+NEBICKlhepSAqvvAQ==","signatures":[{"sig":"MEQCIFpkJE1lGl7jPyvvV0SciuQmM+S13pqB7OSCL/HhQpKaAiAZC6WwNn9ehiONH/sA8/bUwg1nv2qXMz0eAuiGK4Fk0Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.14.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1718994},"type":"module","engines":{"node":">=20"},"gitHead":"9707e58fe86fab1ac5478f442b70b071ab3d4da0","mcpName":"io.github.flowing-abyss/obsidian-hybrid-search","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","preflight":"bash scripts/ci-preflight.sh","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","eval:quality":"npm run eval:prepare-obsidian-help -- --vault fixtures/obsidian-help/dataset && env -u OPENAI_API_KEY -u OPENAI_BASE_URL -u OPENAI_EMBEDDING_MODEL -u LOCAL_EMBEDDING_MODEL tsx eval/evaluate.ts --output eval/results/.tmp-pre-push-quality.json && tsx eval/quality.ts eval/results/.tmp-pre-push-quality.json","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","sync-server-json":"bash scripts/sync-server-json.sh","test:e2e-watcher":"vitest run --config vitest.e2e-watcher.config.ts","test:integration":"vitest run --config vitest.integration.config.ts","eval:speed-profile":"tsx eval/speed-profile.ts","eval:prepare-longmem":"tsx eval/prepare-longmemeval.ts","eval:prepare-longmemeval-s":"tsx eval/prepare-longmemeval.ts","eval:prepare-obsidian-help":"tsx eval/prepare-obsidian-help.ts","test:native-recovery-smoke":"node scripts/smoke-native-recovery.mjs","eval:prepare-evergreen-notes":"tsx eval/prepare-evergreen-notes.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.9.8","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["npm run sync-server-json","sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","ignore":"^7.0.6","unified":"^11.0.5","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","remark-gfm":"^4.0.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","js-tiktoken":"^1.0.21","remark-parse":"^11.0.0","better-sqlite3":"^12.11.1","onnxruntime-node":"^1.27.0","unist-util-visit":"^5.1.0","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","knip":"^6.32.2","husky":"^9.1.7","eslint":"^9.39.5","vitest":"^4.1.5","prettier":"^3.9.6","typescript":"^6.0.3","@types/node":"^25.9.5","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.67.0","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.2.0","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.14.3_1786951280212_0.6976750663619042","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"obsidian-hybrid-search","version":"0.15.0","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.15.0","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"ohs":"dist/src/cli.js","obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"5e74c41ec583c40eab2402e236750f219853a912","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.15.0.tgz","fileCount":43,"integrity":"sha512-7Rb0QLqJrmUanuQdDTjZH96FsP7ZYVjgzFIApL3PootWodRIGMHtlDarCYt28b7rwPE65JoOPZ/XQx+u8xcBuQ==","signatures":[{"sig":"MEQCIDtIjQSsgApVImJ9rrfb6XWtq/YiiyUiait7xzlaHb9eAiBpG+sXXQ96YL69F4Y/pxeP8dc7gTPJ2ChZqSeKLrqjxw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1725383},"type":"module","engines":{"node":">=20"},"gitHead":"5fbae8a93cfba40ea4dd5bec14ca85236b77bbc6","mcpName":"io.github.flowing-abyss/obsidian-hybrid-search","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","preflight":"bash scripts/ci-preflight.sh","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","eval:quality":"npm run eval:prepare-obsidian-help -- --vault fixtures/obsidian-help/dataset && env -u OPENAI_API_KEY -u OPENAI_BASE_URL -u OPENAI_EMBEDDING_MODEL -u LOCAL_EMBEDDING_MODEL tsx eval/evaluate.ts --output eval/results/.tmp-pre-push-quality.json && tsx eval/quality.ts eval/results/.tmp-pre-push-quality.json","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","sync-server-json":"bash scripts/sync-server-json.sh","test:e2e-watcher":"vitest run --config vitest.e2e-watcher.config.ts","test:integration":"vitest run --config vitest.integration.config.ts","eval:speed-profile":"tsx eval/speed-profile.ts","eval:prepare-longmem":"tsx eval/prepare-longmemeval.ts","eval:prepare-longmemeval-s":"tsx eval/prepare-longmemeval.ts","eval:prepare-obsidian-help":"tsx eval/prepare-obsidian-help.ts","test:native-recovery-smoke":"node scripts/smoke-native-recovery.mjs","eval:prepare-evergreen-notes":"tsx eval/prepare-evergreen-notes.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.9.8","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["npm run sync-server-json","sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","ignore":"^7.0.6","unified":"^11.0.5","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","remark-gfm":"^4.0.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","js-tiktoken":"^1.0.21","remark-parse":"^11.0.0","better-sqlite3":"^12.11.1","onnxruntime-node":"^1.27.0","unist-util-visit":"^5.1.0","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","knip":"^6.32.2","husky":"^9.1.7","eslint":"^9.39.5","vitest":"^4.1.5","prettier":"^3.9.6","typescript":"^6.0.3","@types/node":"^25.9.5","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.67.0","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.2.0","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.15.0_1787109308494_0.7037491671141425","host":"s3://npm-registry-packages-npm-production"}},"0.15.1":{"name":"obsidian-hybrid-search","version":"0.15.1","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.15.1","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"ohs":"dist/src/cli.js","obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"31602692c804f5a3603f38ca17f58a958b5876b6","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.15.1.tgz","fileCount":43,"integrity":"sha512-GC7SGu0VO/OEhFt3F6+D9bNx2iSzaDTw41/b4QUvzgM6Plb7NKzPW+AaycEhOoIXwsqJU1CGt21+skdIYhGagA==","signatures":[{"sig":"MEQCIAv5TmMzzNeXkIAYNncmuTGmCGWFFcPFfALLyScAwh1DAiAu+CPAPtu99V3Yfk54xgp3vap08kjicRtOdtv8EqUE7g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDZDe7tOUDhU2pX/rm1humLTGRoCmwTj2FeAV0imn+z9gIhAMRNdEjvvtxyvLfFEf73pnlDKLeEzHP/PNfEgDTWntfl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.15.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1725383},"type":"module","engines":{"node":">=20"},"gitHead":"fd75e4cbb8c1341ec26445ec0995431c4961d224","mcpName":"io.github.flowing-abyss/obsidian-hybrid-search","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","preflight":"bash scripts/ci-preflight.sh","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","eval:quality":"npm run eval:prepare-obsidian-help -- --vault fixtures/obsidian-help/dataset && env -u OPENAI_API_KEY -u OPENAI_BASE_URL -u OPENAI_EMBEDDING_MODEL -u LOCAL_EMBEDDING_MODEL tsx eval/evaluate.ts --output eval/results/.tmp-pre-push-quality.json && tsx eval/quality.ts eval/results/.tmp-pre-push-quality.json","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","sync-server-json":"bash scripts/sync-server-json.sh","test:e2e-watcher":"vitest run --config vitest.e2e-watcher.config.ts","test:integration":"vitest run --config vitest.integration.config.ts","eval:speed-profile":"tsx eval/speed-profile.ts","eval:prepare-longmem":"tsx eval/prepare-longmemeval.ts","eval:prepare-longmemeval-s":"tsx eval/prepare-longmemeval.ts","eval:prepare-obsidian-help":"tsx eval/prepare-obsidian-help.ts","test:native-recovery-smoke":"node scripts/smoke-native-recovery.mjs","eval:prepare-evergreen-notes":"tsx eval/prepare-evergreen-notes.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.9.8","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["npm run sync-server-json","sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.4.3","yaml":"^2.9.0","ignore":"^7.0.6","unified":"^11.0.5","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","remark-gfm":"^4.0.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","js-tiktoken":"^1.0.21","remark-parse":"^11.0.0","better-sqlite3":"^12.11.1","onnxruntime-node":"^1.27.0","unist-util-visit":"^5.1.0","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","knip":"^6.32.2","husky":"^9.1.7","eslint":"^9.39.5","vitest":"^4.1.5","prettier":"^3.9.6","typescript":"^6.0.3","@types/node":"^25.9.5","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.67.0","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.2.0","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.15.1_1787556421650_0.43719266655533673","host":"s3://npm-registry-packages-npm-production"}},"0.15.2":{"name":"obsidian-hybrid-search","version":"0.15.2","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.15.2","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"ohs":"dist/src/cli.js","obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"9706326242e984dafe7004a89f3d5bc3e021589d","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.15.2.tgz","fileCount":43,"integrity":"sha512-CvVJvqfT82pfcyWhO7Zmofa/96oG6Y2Y8m80YI69x516aLQuVHr1Lea4TGQE/9EdnKvhziiCbuztBPcrisH29A==","signatures":[{"sig":"MEUCIDXYe/7Wt8fpg7U1Y9pUYBiqfjvot7QoIHIE2tl8eWF3AiEA61lOC5lLj/lPF35M5JNKcp1eS3zHxJMUlF6k6I43a+g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQChqKOjFRJyW/BQigsCsoCPrITyjUGbHLQuODG5JDK/UQIgZRokSSA6OQe9c37pev8yMnh3wk/BVEAwGd8SEuaVpcI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.15.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1725383},"type":"module","engines":{"node":">=20"},"gitHead":"aafdc778648bf88c43079bb7c556880b2a8c6d80","mcpName":"io.github.flowing-abyss/obsidian-hybrid-search","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","preflight":"bash scripts/ci-preflight.sh","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","eval:quality":"npm run eval:prepare-obsidian-help -- --vault fixtures/obsidian-help/dataset && env -u OPENAI_API_KEY -u OPENAI_BASE_URL -u OPENAI_EMBEDDING_MODEL -u LOCAL_EMBEDDING_MODEL tsx eval/evaluate.ts --output eval/results/.tmp-pre-push-quality.json && tsx eval/quality.ts eval/results/.tmp-pre-push-quality.json","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","sync-server-json":"bash scripts/sync-server-json.sh","test:e2e-watcher":"vitest run --config vitest.e2e-watcher.config.ts","test:integration":"vitest run --config vitest.integration.config.ts","eval:speed-profile":"tsx eval/speed-profile.ts","eval:prepare-longmem":"tsx eval/prepare-longmemeval.ts","eval:prepare-longmemeval-s":"tsx eval/prepare-longmemeval.ts","eval:prepare-obsidian-help":"tsx eval/prepare-obsidian-help.ts","test:native-recovery-smoke":"node scripts/smoke-native-recovery.mjs","eval:prepare-evergreen-notes":"tsx eval/prepare-evergreen-notes.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.9.8","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["npm run sync-server-json","sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.5.4","yaml":"^2.9.0","ignore":"^7.0.8","unified":"^11.0.5","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","remark-gfm":"^4.0.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","js-tiktoken":"^1.0.21","remark-parse":"^11.0.0","better-sqlite3":"^12.11.1","onnxruntime-node":"^1.29.0","unist-util-visit":"^5.1.0","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.13","knip":"^6.33.0","husky":"^9.1.7","eslint":"^9.39.5","vitest":"^4.1.5","prettier":"^3.9.6","typescript":"^6.0.3","@types/node":"^25.9.5","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.68.0","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.2.0","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.2.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.15.2_1788183524849_0.05427607184442662","host":"s3://npm-registry-packages-npm-production"}},"0.15.3":{"name":"obsidian-hybrid-search","version":"0.15.3","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.15.3","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"ohs":"dist/src/cli.js","obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"b2cbaced9c0368a66bfa2ac3c2d86a5e9c22bc14","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.15.3.tgz","fileCount":43,"integrity":"sha512-/71A+Ra+OkBySolNpmib48Aog1JFlr9UwplkohTLZCQR2jcs5YOXbFipQ8xse7ywhhcOHOV8oh/F2Uoc+X0Uqw==","signatures":[{"sig":"MEUCIQD8SQrBIcRh0EhFG778fxq/KxUx4GSqytF0r+nc5Oaq4wIgCmxQtr13DQIzn51LMDbtv78EegcWpAuRoLkDarepOy8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCsjScF2iKGZlhGePGi+Jq95HbiuV3GIF7Ds592GQxbaAIgWqjlLEgW6Fi+D48sWgmAGuHQJVqWxHu+e584834kHV8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.15.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1725510},"type":"module","engines":{"node":">=20"},"gitHead":"f9858e4ddf8cd1bf8ea7d0c195d68b90d73437de","mcpName":"io.github.flowing-abyss/obsidian-hybrid-search","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","preflight":"bash scripts/ci-preflight.sh","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","eval:quality":"npm run eval:prepare-obsidian-help -- --vault fixtures/obsidian-help/dataset && env -u OPENAI_API_KEY -u OPENAI_BASE_URL -u OPENAI_EMBEDDING_MODEL -u LOCAL_EMBEDDING_MODEL tsx eval/evaluate.ts --output eval/results/.tmp-pre-push-quality.json && tsx eval/quality.ts eval/results/.tmp-pre-push-quality.json","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","sync-server-json":"bash scripts/sync-server-json.sh","test:e2e-watcher":"vitest run --config vitest.e2e-watcher.config.ts","test:integration":"vitest run --config vitest.integration.config.ts","eval:speed-profile":"tsx eval/speed-profile.ts","eval:prepare-longmem":"tsx eval/prepare-longmemeval.ts","eval:prepare-longmemeval-s":"tsx eval/prepare-longmemeval.ts","eval:prepare-obsidian-help":"tsx eval/prepare-obsidian-help.ts","test:native-recovery-smoke":"node scripts/smoke-native-recovery.mjs","eval:prepare-evergreen-notes":"tsx eval/prepare-evergreen-notes.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.9.8","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["npm run sync-server-json","sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"22.23.2","allowScripts":{"esbuild":true,"protobufjs":true,"better-sqlite3":true,"onnxruntime-node":true},"dependencies":{"zod":"^4.6.5","yaml":"^2.9.1","ignore":"^7.0.9","unified":"^11.0.5","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","remark-gfm":"^4.0.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","js-tiktoken":"^1.0.21","remark-parse":"^11.0.0","better-sqlite3":"^12.11.1","onnxruntime-node":"^1.29.0","unist-util-visit":"^5.1.0","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.13","knip":"^6.36.0","husky":"^9.1.7","eslint":"^9.39.5","vitest":"^4.1.5","prettier":"^3.9.7","typescript":"^6.0.3","@types/node":"^25.9.7","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.70.0","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.2.1","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.15.3_1789654153358_0.13653834321656277","host":"s3://npm-registry-packages-npm-production"}},"0.15.4":{"name":"obsidian-hybrid-search","version":"0.15.4","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.15.4","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"ohs":"dist/src/cli.js","obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"74edf4a9141317a408ce2f5ca52b9206363399da","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.15.4.tgz","fileCount":43,"integrity":"sha512-VR0Hm9ZOf/TOpZzlYq0EhF7mB84bvoePa/NMNQ89PA7/UWsp+stasEm5RpF2vJc7SFTFnsnIDihjhJ9NoMS/og==","signatures":[{"sig":"MEQCIDdE6woxtiAFYOGdwIZgiWFONTN+CV6ySqhr4PkuOJKGAiAtDlND1NEBPdCbSvWyJM3AW1bE14dxrHksN0bAD+TCNA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCZNfneJzA+3JnLDBWSXrksy7fSiZzykPlnTP2GjARGjAIgaOkWkKTelqbxblOLldqYLwyFE8Is9A1EmWdwxljPyOs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.15.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1728087},"type":"module","engines":{"node":">=20"},"gitHead":"68647f71a693b76d00349201751840834e1e54e4","mcpName":"io.github.flowing-abyss/obsidian-hybrid-search","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","preflight":"bash scripts/ci-preflight.sh","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","eval:quality":"npm run eval:prepare-obsidian-help -- --vault fixtures/obsidian-help/dataset && env -u OPENAI_API_KEY -u OPENAI_BASE_URL -u OPENAI_EMBEDDING_MODEL -u LOCAL_EMBEDDING_MODEL tsx eval/evaluate.ts --output eval/results/.tmp-pre-push-quality.json && tsx eval/quality.ts eval/results/.tmp-pre-push-quality.json","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","sync-server-json":"bash scripts/sync-server-json.sh","test:e2e-watcher":"vitest run --config vitest.e2e-watcher.config.ts","test:integration":"vitest run --config vitest.integration.config.ts","eval:speed-profile":"tsx eval/speed-profile.ts","eval:prepare-longmem":"tsx eval/prepare-longmemeval.ts","eval:prepare-longmemeval-s":"tsx eval/prepare-longmemeval.ts","eval:prepare-obsidian-help":"tsx eval/prepare-obsidian-help.ts","test:native-recovery-smoke":"node scripts/smoke-native-recovery.mjs","eval:prepare-evergreen-notes":"tsx eval/prepare-evergreen-notes.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.9.8","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["npm run sync-server-json","sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"22.23.2","allowScripts":{"esbuild":true,"protobufjs":true,"better-sqlite3":true,"onnxruntime-node":true},"dependencies":{"zod":"^4.6.5","yaml":"^2.9.1","ignore":"^7.0.9","unified":"^11.0.5","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","remark-gfm":"^4.0.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","js-tiktoken":"^1.0.21","remark-parse":"^11.0.0","better-sqlite3":"^12.11.1","onnxruntime-node":"^1.29.0","unist-util-visit":"^5.1.0","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.13","knip":"^6.36.0","husky":"^9.1.7","eslint":"^9.39.5","vitest":"^4.1.5","prettier":"^3.9.7","typescript":"^6.0.3","@types/node":"^25.9.7","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.70.0","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.2.1","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.15.4_1789898388273_0.47255393829547776","host":"s3://npm-registry-packages-npm-production"}},"0.15.5":{"name":"obsidian-hybrid-search","version":"0.15.5","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.15.5","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"ohs":"dist/src/cli.js","obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"d22edb5b4d87384dc7f0f6da33b74da580705d90","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.15.5.tgz","fileCount":43,"integrity":"sha512-hjJENzNBIoUuAbp7o1Mf3pvuU7IG/awCwdJZ8wDiMOKKRQIseK0Wd6/8/t4lbehu1fE53ZSHgQLRgipYOBlaiw==","signatures":[{"sig":"MEUCIQDdYyXmrwjg8GlCcVTZCNYMY426VTeyRFUihX8Xnyj6oAIgPb2nuGzzFPHoCg87oA3z9RrI8Z1Hsy2YICN4UNHF8zs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDVp1EhwghmvWEXALl7bVe9/6tqWg8Yj1dQMhovBXB9IwIgbNbrLTEY2dg9i5Eb+PYdgyHy9CtpepCWl8SxrcCflFE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.15.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1727921},"type":"module","engines":{"node":">=20"},"gitHead":"fd10277019d0f8956f14f5f871e0e22cd31af1d5","mcpName":"io.github.flowing-abyss/obsidian-hybrid-search","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","preflight":"bash scripts/ci-preflight.sh","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","eval:quality":"npm run eval:prepare-obsidian-help -- --vault fixtures/obsidian-help/dataset && env -u OPENAI_API_KEY -u OPENAI_BASE_URL -u OPENAI_EMBEDDING_MODEL -u LOCAL_EMBEDDING_MODEL tsx eval/evaluate.ts --output eval/results/.tmp-pre-push-quality.json && tsx eval/quality.ts eval/results/.tmp-pre-push-quality.json","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","sync-server-json":"bash scripts/sync-server-json.sh","test:e2e-watcher":"vitest run --config vitest.e2e-watcher.config.ts","test:integration":"vitest run --config vitest.integration.config.ts","eval:speed-profile":"tsx eval/speed-profile.ts","eval:prepare-longmem":"tsx eval/prepare-longmemeval.ts","eval:prepare-longmemeval-s":"tsx eval/prepare-longmemeval.ts","eval:prepare-obsidian-help":"tsx eval/prepare-obsidian-help.ts","test:native-recovery-smoke":"node scripts/smoke-native-recovery.mjs","eval:prepare-evergreen-notes":"tsx eval/prepare-evergreen-notes.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.9.8","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["npm run sync-server-json","sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"22.23.2","allowScripts":{"esbuild":true,"protobufjs":true,"better-sqlite3":true,"onnxruntime-node":true},"dependencies":{"zod":"^4.6.5","yaml":"^2.9.1","ignore":"^7.0.9","unified":"^11.0.5","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","remark-gfm":"^4.0.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","js-tiktoken":"^1.0.21","remark-parse":"^11.0.0","better-sqlite3":"^12.11.1","onnxruntime-node":"^1.29.0","unist-util-visit":"^5.1.0","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.13","knip":"^6.36.0","husky":"^9.1.7","eslint":"^9.39.5","vitest":"^4.1.5","prettier":"^3.9.7","typescript":"^6.0.3","@types/node":"^25.9.7","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.70.0","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.2.1","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.15.5_1789901152064_0.767421592459443","host":"s3://npm-registry-packages-npm-production"}},"0.15.6":{"name":"obsidian-hybrid-search","version":"0.15.6","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"author":{"name":"flowing-abyss"},"license":"MIT","_id":"obsidian-hybrid-search@0.15.6","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"bin":{"ohs":"dist/src/cli.js","obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"dist":{"shasum":"d92e031843f5c97eda6e011f3480eba5b3a12686","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.15.6.tgz","fileCount":43,"integrity":"sha512-HpmTrE+Z+xIDNTmLSR2p3NAgGzDPV8SKTy+mSCAW1izK4WZfp4UWAgWn5sfycoWbYRnZeWAWJWB5K8CTEKY0cA==","signatures":[{"sig":"MEQCIF45endY9whWGYJXDBXX1PDqo5LMctTgvY2ewSlOqDcuAiBoFS7dkdrGff3xfXKhYXI4AGfuLujl+1rcYQG6oOp0gA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDMLPOcuU3rzlcaoDqSaEr8a49YNxK54019mc575rQPRAiAS2ePa6tSnvoFWLXZvXC/UCd0UhO0sjf68JCqetBetDA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.15.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1727921},"type":"module","engines":{"node":">=20"},"gitHead":"5a323ee8e78036a12d36613df21dd4111cb6f2e1","mcpName":"io.github.flowing-abyss/obsidian-hybrid-search","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","preflight":"bash scripts/ci-preflight.sh","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","eval:quality":"npm run eval:prepare-obsidian-help -- --vault fixtures/obsidian-help/dataset && env -u OPENAI_API_KEY -u OPENAI_BASE_URL -u OPENAI_EMBEDDING_MODEL -u LOCAL_EMBEDDING_MODEL tsx eval/evaluate.ts --output eval/results/.tmp-pre-push-quality.json && tsx eval/quality.ts eval/results/.tmp-pre-push-quality.json","format:check":"prettier --check .","eval:benchmark":"tsx eval/benchmark-speed.ts","sync-server-json":"bash scripts/sync-server-json.sh","test:e2e-watcher":"vitest run --config vitest.e2e-watcher.config.ts","test:integration":"vitest run --config vitest.integration.config.ts","eval:speed-profile":"tsx eval/speed-profile.ts","eval:prepare-longmem":"tsx eval/prepare-longmemeval.ts","eval:prepare-longmemeval-s":"tsx eval/prepare-longmemeval.ts","eval:prepare-obsidian-help":"tsx eval/prepare-obsidian-help.ts","test:native-recovery-smoke":"node scripts/smoke-native-recovery.mjs","eval:prepare-evergreen-notes":"tsx eval/prepare-evergreen-notes.ts"},"_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.9.8","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["npm run sync-server-json","sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"_nodeVersion":"22.23.2","allowScripts":{"esbuild":true,"protobufjs":true,"better-sqlite3":true,"onnxruntime-node":true},"dependencies":{"zod":"^4.6.5","yaml":"^2.9.1","ignore":"^7.0.9","unified":"^11.0.5","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","remark-gfm":"^4.0.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","js-tiktoken":"^1.0.21","remark-parse":"^11.0.0","better-sqlite3":"^12.11.1","onnxruntime-node":"^1.29.0","unist-util-visit":"^5.1.0","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.15","knip":"^6.37.0","husky":"^9.1.7","eslint":"^9.39.5","vitest":"^4.1.5","prettier":"^3.9.8","typescript":"^6.0.3","@types/node":"^25.9.8","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.70.0","@vitest/coverage-v8":"^4.1.5","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^7.6.13","eslint-plugin-sonarjs":"^4.2.1","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.3.0"},"_npmOperationalInternal":{"tmp":"tmp/obsidian-hybrid-search_0.15.6_1789994988265_0.4332973007349834","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"_id":"obsidian-hybrid-search@0.16.0","bin":{"ohs":"dist/src/cli.js","obsidian-hybrid-search":"dist/src/cli.js","obsidian-hybrid-search-mcp":"dist/src/server.js"},"bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"dist":{"shasum":"c9221b4d75a7ca35f0f4bed0fae49765049ca19f","tarball":"https://registry.npmjs.org/obsidian-hybrid-search/-/obsidian-hybrid-search-0.16.0.tgz","fileCount":53,"integrity":"sha512-R+74Ua4GRDamz3JDDt6/394roA3F2AUP3b0EZfYsCCVnV5fH5idNRWKq20WTUgjViHt5Vm0bPSJY9jlPKu35/g==","signatures":[{"sig":"MEYCIQCI2/DYuAVxCxbrYlBRpG4KPY2RBAyJ5E1O7bkoFtjb3gIhAKkNgyHGCav2OJhdsVkHz7VoVU5nB8aIlWeVMp08asrF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDNws5kW5MhKxbzRAL2EWjLqX+ayxcCAROZ7AiZzEesBAiEA1KFA9fz7UgVyZSvc4Uj+EffVqVRPDUYRIrYQtrNkjPY="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/obsidian-hybrid-search@0.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1756919},"name":"obsidian-hybrid-search","type":"module","author":{"name":"flowing-abyss"},"engines":{"node":">=20"},"gitHead":"9beab1c0e3b62fae93b85ca2c9d77450ba64b418","license":"MIT","mcpName":"io.github.flowing-abyss/obsidian-hybrid-search","scripts":{"dev":"tsx src/server.ts","eval":"tsx eval/evaluate.ts","knip":"knip","lint":"eslint src test eval","test":"vitest run","build":"tsc","format":"prettier --write .","prepare":"husky","coverage":"vitest run --coverage","eval:qmd":"tsx eval/evaluate-qmd.ts","preflight":"bash scripts/ci-preflight.sh","eval:speed":"tsx eval/benchmark-speed.ts","eval:compare":"tsx eval/compare.ts","eval:quality":"npm run eval:prepare-obsidian-help -- --vault fixtures/obsidian-help/dataset && env -u OPENAI_API_KEY -u OPENAI_BASE_URL -u OPENAI_EMBEDDING_MODEL -u LOCAL_EMBEDDING_MODEL tsx eval/evaluate.ts --output eval/results/.tmp-pre-push-quality.json && tsx eval/quality.ts eval/results/.tmp-pre-push-quality.json","format:check":"prettier --check .","test:reranker":"vitest run --config vitest.reranker.config.ts","eval:benchmark":"tsx eval/benchmark-speed.ts","sync-server-json":"bash scripts/sync-server-json.sh","test:e2e-watcher":"vitest run --config vitest.e2e-watcher.config.ts","test:integration":"vitest run --config vitest.integration.config.ts","eval:speed-profile":"tsx eval/speed-profile.ts","eval:prepare-longmem":"tsx eval/prepare-longmemeval.ts","eval:prepare-longmemeval-s":"tsx eval/prepare-longmemeval.ts","eval:prepare-obsidian-help":"tsx eval/prepare-obsidian-help.ts","test:native-recovery-smoke":"node scripts/smoke-native-recovery.mjs","eval:prepare-evergreen-notes":"tsx eval/prepare-evergreen-notes.ts"},"version":"0.16.0","_npmUser":{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"},"homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"_npmVersion":"10.9.8","description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","directories":{},"lint-staged":{"*.{ts,js}":["eslint --fix","prettier --write"],"package.json":["npm run sync-server-json","sh -c 'npx vitest run'","sh -c 'npm run knip'"],"*.{json,md,yml,yaml}":["prettier --write"]},"maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"_nodeVersion":"22.23.2","allowScripts":{"esbuild":true,"protobufjs":true,"better-sqlite3":true,"onnxruntime-node":true},"dependencies":{"zod":"^4.6.5","yaml":"^2.9.1","ignore":"^7.0.10","unified":"^11.0.5","chokidar":"^5.0.0","commander":"^14.0.3","cli-table3":"^0.6.5","picocolors":"^1.1.1","remark-gfm":"^4.0.1","sqlite-vec":"^0.1.9","gray-matter":"^4.0.3","js-tiktoken":"^1.0.21","remark-parse":"^11.0.0","better-sqlite3":"^12.11.1","onnxruntime-node":"^1.30.0","unist-util-visit":"^5.1.0","@modelcontextprotocol/sdk":"^1.31.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.15","knip":"^6.38.0","husky":"^9.1.7","eslint":"^9.39.5","vitest":"^4.1.11","prettier":"^3.9.9","typescript":"^6.0.3","@types/node":"^26.6.3","lint-staged":"^16.4.0","@commitlint/cli":"^20.5.3","typescript-eslint":"^8.71.0","@vitest/coverage-v8":"^4.1.11","eslint-plugin-import":"^2.32.0","@types/better-sqlite3":"^9.6.0","eslint-plugin-sonarjs":"^4.2.2","@commitlint/config-conventional":"^20.5.3","prettier-plugin-organize-imports":"^4.3.0"},"optionalDependencies":{"@huggingface/transformers":"^4.3.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/obsidian-hybrid-search_0.16.0_1790665187889_0.40824234963316886"}}},"time":{"created":"2026-03-08T02:22:21.148Z","modified":"2026-09-29T06:59:48.420Z","0.1.0":"2026-03-08T02:22:21.313Z","0.1.4":"2026-03-08T02:44:39.224Z","0.1.5":"2026-03-08T02:53:02.472Z","0.1.6":"2026-03-08T03:47:06.812Z","0.2.0":"2026-03-08T06:26:20.997Z","0.2.1":"2026-03-08T11:05:20.495Z","0.2.2":"2026-03-08T11:11:45.235Z","0.3.0":"2026-03-08T12:09:40.787Z","0.4.0":"2026-03-08T15:17:08.113Z","0.5.0":"2026-03-08T18:10:34.304Z","0.6.0":"2026-03-08T18:59:53.163Z","0.6.1":"2026-03-08T19:24:45.037Z","0.7.0":"2026-03-08T20:06:43.750Z","0.8.0":"2026-03-08T20:37:43.224Z","0.8.1":"2026-03-08T20:41:55.070Z","0.8.2":"2026-03-09T06:09:30.299Z","0.8.3":"2026-03-09T06:14:24.517Z","0.8.4":"2026-03-09T06:16:27.762Z","0.8.5":"2026-03-09T06:33:24.432Z","0.8.6":"2026-03-09T07:19:07.802Z","0.8.7":"2026-03-09T07:23:14.930Z","0.8.8":"2026-03-09T07:36:18.310Z","0.8.9":"2026-03-09T07:53:15.713Z","0.8.10":"2026-03-09T08:26:48.613Z","0.8.11":"2026-03-09T13:05:30.699Z","0.8.12":"2026-03-09T13:55:32.808Z","0.8.13":"2026-03-09T14:43:35.017Z","0.8.14":"2026-03-10T03:16:36.918Z","0.8.15":"2026-03-10T04:12:32.743Z","0.8.16":"2026-03-10T08:32:07.470Z","0.8.17":"2026-03-10T09:34:56.797Z","0.8.18":"2026-03-10T09:53:50.208Z","0.8.19":"2026-03-11T09:12:21.663Z","0.8.20":"2026-03-11T14:46:22.304Z","0.8.21":"2026-03-11T15:11:55.313Z","0.8.22":"2026-03-11T15:41:56.363Z","0.8.23":"2026-03-11T16:02:55.767Z","0.8.24":"2026-03-11T17:26:28.254Z","0.8.25":"2026-03-12T14:56:16.604Z","0.8.26":"2026-03-12T15:02:59.073Z","0.8.27":"2026-03-12T15:06:07.492Z","0.8.28":"2026-03-12T15:19:26.705Z","0.8.29":"2026-03-12T15:22:29.965Z","0.8.30":"2026-03-12T15:29:24.058Z","0.8.31":"2026-03-12T15:36:53.570Z","0.8.32":"2026-03-12T15:55:53.582Z","0.8.33":"2026-03-13T03:46:59.316Z","0.8.34":"2026-03-13T04:03:46.606Z","0.8.35":"2026-03-13T04:35:28.559Z","0.8.37":"2026-03-13T09:10:23.177Z","0.8.38":"2026-03-13T14:01:53.616Z","0.8.39":"2026-03-14T04:37:04.272Z","0.8.40":"2026-03-14T07:25:26.428Z","0.8.41":"2026-03-14T07:47:58.061Z","0.9.0":"2026-03-14T17:29:43.820Z","0.9.1":"2026-03-14T17:51:24.978Z","0.9.2":"2026-03-14T18:18:26.480Z","0.9.3":"2026-03-14T18:34:13.171Z","0.9.4":"2026-03-14T19:36:43.357Z","0.9.5":"2026-03-14T20:46:24.870Z","0.9.6":"2026-03-15T06:04:26.325Z","0.9.7":"2026-03-15T08:04:47.552Z","0.9.9":"2026-03-15T18:04:22.399Z","0.9.10":"2026-03-18T07:34:44.688Z","0.9.11":"2026-03-20T07:33:39.373Z","0.9.12":"2026-03-20T08:08:04.869Z","0.9.13":"2026-03-20T10:07:35.962Z","0.10.0":"2026-03-21T09:27:25.350Z","0.10.1":"2026-03-21T09:50:46.903Z","0.10.2":"2026-03-21T10:01:25.807Z","0.10.3":"2026-03-21T10:24:25.358Z","0.10.4":"2026-03-21T10:35:32.362Z","0.10.5":"2026-03-21T10:42:50.881Z","0.10.6":"2026-03-21T11:41:42.301Z","0.10.7":"2026-03-22T10:33:19.992Z","0.10.8":"2026-03-22T17:13:20.987Z","0.10.9":"2026-03-22T17:35:02.941Z","0.10.10":"2026-03-22T18:33:54.210Z","0.10.11":"2026-03-23T07:36:09.217Z","0.10.12":"2026-03-23T09:05:49.670Z","0.10.13":"2026-03-23T18:06:39.916Z","0.10.14":"2026-03-23T18:22:03.602Z","0.10.15":"2026-03-23T18:51:42.445Z","0.10.16":"2026-03-23T18:55:56.821Z","0.10.17":"2026-03-23T18:58:58.663Z","0.10.18":"2026-03-23T18:59:50.398Z","0.10.19":"2026-03-23T19:18:03.262Z","0.10.20":"2026-03-23T19:33:29.640Z","0.10.21":"2026-03-24T10:03:48.639Z","0.10.24":"2026-03-24T11:47:55.806Z","0.10.25":"2026-03-25T11:53:59.307Z","0.10.26":"2026-03-25T12:33:46.608Z","0.11.0":"2026-03-25T18:12:18.548Z","0.11.1":"2026-03-25T18:53:11.371Z","0.11.2":"2026-03-26T02:28:43.010Z","0.12.0":"2026-03-28T12:01:37.876Z","0.12.1":"2026-03-30T05:55:44.146Z","0.12.2":"2026-03-30T16:38:54.278Z","0.12.3":"2026-03-31T06:18:31.826Z","0.12.4":"2026-03-31T09:37:52.622Z","0.12.5":"2026-04-01T16:58:58.301Z","0.12.6":"2026-04-04T12:01:45.037Z","0.12.7":"2026-04-06T08:20:05.686Z","0.12.8":"2026-04-14T01:26:02.933Z","0.12.9":"2026-04-20T08:22:52.347Z","0.12.10":"2026-04-22T11:56:22.275Z","0.12.11":"2026-04-22T12:05:24.753Z","0.12.12":"2026-04-22T12:33:00.420Z","0.12.13":"2026-04-22T15:39:08.821Z","0.12.14":"2026-04-23T04:47:10.043Z","0.12.15":"2026-04-23T06:18:06.585Z","0.12.16":"2026-04-23T06:28:03.365Z","0.12.17":"2026-04-23T12:03:21.533Z","0.12.18":"2026-04-27T08:38:15.205Z","0.12.19":"2026-04-29T05:04:32.269Z","0.12.20":"2026-05-04T08:40:35.329Z","0.12.21":"2026-05-04T12:18:19.452Z","0.12.22":"2026-05-04T12:27:30.530Z","0.12.23":"2026-05-04T15:04:39.967Z","0.12.24":"2026-05-11T09:55:49.993Z","0.12.25":"2026-05-18T10:21:22.993Z","0.13.0":"2026-05-20T05:50:12.232Z","0.13.1":"2026-05-24T01:54:49.060Z","0.13.2":"2026-05-24T06:50:44.843Z","0.13.3":"2026-05-25T10:27:23.607Z","0.13.4":"2026-06-01T11:53:51.793Z","0.13.5":"2026-06-02T02:39:29.367Z","0.13.6":"2026-06-08T11:28:25.504Z","0.13.7":"2026-06-11T06:17:06.616Z","0.13.8":"2026-06-12T06:24:36.713Z","0.13.10":"2026-06-15T14:02:02.905Z","0.13.11":"2026-06-16T04:14:53.243Z","0.13.12":"2026-06-18T07:54:40.300Z","0.13.13":"2026-06-22T14:42:21.791Z","0.13.14":"2026-06-25T08:46:33.672Z","0.13.15":"2026-06-26T12:42:25.040Z","0.13.16":"2026-06-29T14:32:09.985Z","0.13.17":"2026-07-06T02:41:56.271Z","0.13.18":"2026-07-06T11:24:28.803Z","0.13.19":"2026-07-11T12:00:18.522Z","0.13.20":"2026-07-13T09:48:46.872Z","0.13.21":"2026-07-14T06:12:48.666Z","0.13.22":"2026-07-15T07:32:44.115Z","0.13.23":"2026-07-21T04:41:05.607Z","0.13.24":"2026-07-27T10:17:39.347Z","0.13.25":"2026-08-03T10:13:01.700Z","0.14.0":"2026-08-09T04:01:51.621Z","0.14.1":"2026-08-10T08:06:37.792Z","0.14.2":"2026-08-14T04:05:58.774Z","0.14.3":"2026-08-17T07:21:20.442Z","0.15.0":"2026-08-19T03:15:08.714Z","0.15.1":"2026-08-24T07:27:01.759Z","0.15.2":"2026-08-31T13:38:44.968Z","0.15.3":"2026-09-17T14:09:13.483Z","0.15.4":"2026-09-20T09:59:48.386Z","0.15.5":"2026-09-20T10:45:52.190Z","0.15.6":"2026-09-21T12:49:48.414Z","0.16.0":"2026-09-29T06:59:48.103Z"},"bugs":{"url":"https://github.com/flowing-abyss/obsidian-hybrid-search/issues"},"author":{"name":"flowing-abyss"},"license":"MIT","homepage":"https://github.com/flowing-abyss/obsidian-hybrid-search#readme","keywords":["obsidian","search","hybrid-search","semantic-search","fulltext-search","sqlite","mcp"],"repository":{"url":"git+https://github.com/flowing-abyss/obsidian-hybrid-search.git","type":"git"},"description":"[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search) [![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-a","maintainers":[{"name":"flowing-abyss","email":"flowing.abyss@gmail.com"}],"readme":"# Obsidian Hybrid Search\n\n[![npm version](https://img.shields.io/npm/v/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search)\n[![Tests](https://github.com/flowing-abyss/obsidian-hybrid-search/actions/workflows/ci.yml/badge.svg)](https://github.com/flowing-abyss/obsidian-hybrid-search/actions)\n[![Total downloads](https://badgen.net/npm/dt/obsidian-hybrid-search)](https://www.npmjs.com/package/obsidian-hybrid-search)\n\n<p align=\"center\">\n  <img src=\"assets/banner.png\" alt=\"Obsidian Hybrid Search explains hybrid retrieval from Obsidian notes\" />\n</p>\n\nYour Obsidian vault already contains your best thinking. Obsidian Hybrid Search makes that thinking easier to find, reuse, and bring into AI-assisted work.\n\nIt gives your vault one retrieval engine and three practical ways to use it. The native [Obsidian plugin][obsidian-plugin] gives you fast search, previews, similar notes, link discovery, and graph views while you write. The MCP server lets AI agents search and read your notes as tool calls. The CLI gives power users the same engine for indexing, filtering, reranking, reading, and scripting.\n\nThe search understands how real vaults are built. It combines semantic search, BM25 full text, fuzzy title and alias matching, tags, folders, frontmatter, wikilinks, backlinks, and similar-note lookup. You can search by idea, phrase, title, relationship, or metadata without remembering the exact words you wrote.\n\nThat turns Obsidian into a stronger personal knowledge system and a better starting point for AI work. Agents can begin from your own notes, pull cited context from source files, follow related material, and work with knowledge you already trust. OHS runs locally by default with SQLite, FTS5, sqlite-vec, RRF ranking, and optional OpenAI-compatible embedding APIs.\n\n## Search quality\n\nEvaluated on the [Obsidian Help vault](eval/README.md) (171 notes, 58 queries, local model):\n\n|                | **OHS** (this project) | [qmd](https://github.com/tobi/qmd) |\n| -------------- | :--------------------: | :--------------------------------: |\n| nDCG@5         |       **0.733**        |               0.659                |\n| MRR            |       **0.788**        |               0.665                |\n| Hit@1          |       **0.724**        |               0.500                |\n| Avg query time |      **571 ms** ¹      |              754 ms ²              |\n| Model download |      **~117 MB**       |              ~2.2 GB               |\n\n¹ CPU (Apple Silicon), hybrid mode, no rerank. ² GPU (Apple Silicon Metal), LLM query expansion + reranking.\n\nOHS uses `Xenova/multilingual-e5-small`. [How to reproduce →](eval/COMPARISON.md) · [Full benchmark →](eval/README.md)\n\n### Real knowledge-vault benchmark\n\nOHS is also evaluated on Andy Matuschak’s public evergreen notes, converted into an Obsidian vault with title-based note filenames, source URLs in frontmatter, local attachments, and `5,000+` internal note links across `1,357` notes.\n\nThe curated golden set includes `78` hand-judged queries across known-item lookup, paraphrases, quote fragments, ambiguous topics, citation lookup, and multi-note evidence.\n\nUsing the default local embedding model, OHS performs strongly on this dense note network.\n\n| Metric    | Value     |\n| --------- | --------- |\n| nDCG@5    | **0.722** |\n| nDCG@10   | 0.753     |\n| MRR       | 0.874     |\n| Hit@1     | 0.795     |\n| Hit@5     | 0.974     |\n| Recall@10 | 0.972     |\n| AllRel@10 | 0.949     |\n\nThe benchmark exercises retrieval over a highly connected real-world knowledge vault, including queries that do not simply repeat note titles.\n\n[Result JSON](eval/results/evergreen-notes-no-rerank.json) · [Reproduce and interpret →](fixtures/evergreen-notes/README.md)\n\n### Large memory benchmark\n\nTo test retrieval on a larger public dataset,\n[LongMemEval-S](https://huggingface.co/datasets/xiaowu0162/longmemeval-cleaned)\nwas converted into a `22,419`-note Obsidian-style vault with `470` retrieval\nqueries. Using `baai/bge-m3` embeddings, OHS ranked the answer-bearing notes\nstrongly:\n\n| Metric    | Value     |\n| --------- | --------- |\n| nDCG@5    | **0.895** |\n| MRR       | 0.920     |\n| Hit@1     | 0.889     |\n| Hit@5     | 0.968     |\n| Recall@10 | 0.950     |\n| AllRel@10 | 0.904     |\n\nFor this benchmark, each query uses the LongMemEval-provided haystack as its\nsearch scope. That makes the result reproducible and easy to inspect query by\nquery, while still exercising retrieval over a large generated memory vault.\n\n[Result JSON](eval/results/longmemeval-s-no-rerank.json) · [Reproduce and interpret →](fixtures/longmemeval-s/README.md)\n\n## Features\n\n- **Hybrid search**\n  - BM25 + fuzzy title + semantic embeddings, fused with RRF\n- **Alias search**\n  - notes with `aliases:` in frontmatter are indexed and searchable by any alias; alias matches are boosted in BM25 (weight 5×) and fuzzy title scoring\n- **Four search modes**\n  - `hybrid`, `semantic`, `fulltext`, `title` (for text queries)\n- **Similar note lookup**\n  - pass `--path` to find semantically related notes using stored chunk embeddings, with a title + content fallback\n- **Graph traversal**\n  - `--path --related` shows linked notes at configurable depth; filter by `--direction outgoing|backlinks|both`\n- **Links & backlinks**\n  - every result includes outgoing links and backlinks\n- **Scope filtering**\n  - restrict to subfolder(s); supports multiple values and exclusions (`-notes/dev/`)\n- **Tag filtering**\n  - filter by tag(s); supports multiple values and exclusions (`-category/cs`)\n- **Snippet control**\n  - `--snippet-length` sets the context window; empty snippets always fall back to note content\n- **Extended output**\n  - `--extended` adds a TAGS/ALIASES column to the CLI table showing frontmatter tags (`#tag`) and aliases\n- **Incremental indexing**\n  - only re-indexes changed files; watches for edits in real time\n- **Multi-query fan-out**\n  - pass multiple queries at once (`ohs \"q1\" \"q2\"` or `queries[]` in MCP); results are merged via RRF, so a note that ranks well in any one query floats to the top; useful when the note may use different vocabulary than the query\n- **Cross-encoder reranking**\n  - `--rerank` re-scores results with `gte-multilingual-reranker-base` (ONNX int8, ~341 MB download once); improves precision for conceptual and multilingual queries; applied after multi-query merge\n- **Local embeddings**\n  - works offline via `@huggingface/transformers` (no API key required); default model: Xenova/multilingual-e5-small, 100+ languages\n- **Remote embeddings**\n  - OpenAI-compatible API (OpenRouter, Ollama, etc.)\n- **Note reading**\n  - `read` fetches one or more notes by vault-relative path; returns full content with title, aliases, tags, links, and backlinks; on path miss returns top-3 fuzzy suggestions\n- **Ignore patterns**\n  - exclude folders, extensions, or specific files\n- **Obsidian plugin**\n  - native search modal inside Obsidian powered by the same CLI; see [obsidian-hybrid-search-plugin](https://github.com/flowing-abyss/obsidian-hybrid-search-plugin)\n\n## Installation\n\n```bash\nnpm install -g obsidian-hybrid-search\n```\n\n## CLI usage\n\n### Quick start\n\nThe recommended setup is to set `OBSIDIAN_VAULT_PATH` once in `~/.zshrc` or `~/.bashrc`. This lets you run the CLI from any directory.\n\n```bash\nexport OBSIDIAN_VAULT_PATH=\"/path/to/your/vault\"\n```\n\nOpen a new terminal and index the vault once.\n\n```bash\nohs reindex\n```\n\nYou can now search from any directory.\n\n```bash\nohs \"zettelkasten\"\n```\n\n### Run from a vault\n\nAlternatively, run the CLI without an environment variable from any directory inside your vault. It finds the vault root by walking up to the nearest `.obsidian/` folder.\n\n```bash\ncd /path/to/your/vault\nohs reindex\nohs \"zettelkasten\"\n```\n\nFrom outside the vault, set `OBSIDIAN_VAULT_PATH` or pass `--db /path/to/vault/.obsidian-hybrid-search.db` explicitly.\n\n### Optional remote embeddings\n\nBy default, the CLI uses the local `Xenova/multilingual-e5-small` model. It works offline without an API key, downloads about 117 MB on first use, and supports more than 100 languages.\n\nTo use a remote API, add its settings to your shell profile.\n\n```bash\nexport OPENAI_API_KEY=\"sk-...\"\n\n# Override the default API base for another provider\n# export OPENAI_BASE_URL=\"https://openrouter.ai/api/v1\"  # OpenRouter\n# export OPENAI_BASE_URL=\"http://localhost:11434/v1\"     # Ollama (no key needed)\n# export OPENAI_BASE_URL=\"http://localhost:1234/v1\"      # LM Studio (no key needed)\n\n# Override the default text-embedding-3-small model\n# export OPENAI_EMBEDDING_MODEL=\"text-embedding-3-small\"\n```\n\n### Search modes\n\nThe CLI supports four search modes called `hybrid`, `fulltext`, `semantic`, and `title`, plus graph traversal for linked notes. The commands below show how to use them, apply filters, rerank results, and control the output.\n\n```bash\n# Hybrid search (default)\nohs \"zettelkasten atomic notes\"\n\n# Fulltext BM25 search\nohs \"permanent notes\" --mode fulltext\n\n# Fuzzy title search (fast, typo-tolerant)\nohs \"zettleksten\" --mode title\n\n# Semantic / vector search\nohs \"how to build a knowledge graph\" --mode semantic\n\n# Limit results and set a score threshold\nohs \"productivity systems\" --limit 5 --threshold 0.3\n\n# Restrict to a subfolder\nohs \"daily review\" --scope notes/periodic/\nohs \"daily review\" --folder notes/periodic/    # alias for --scope\n\n# Restrict to multiple subfolders (OR)\nohs \"productivity\" --scope notes/pkm/ --scope notes/2024/\n\n# Exclude a subfolder\nohs \"programming\" --scope notes/ --scope -notes/archive/\n\n# Filter by tag\nohs \"productivity\" --tag pkm\nohs \"machine learning\" --tag note/basic/primary\n\n# Filter by multiple tags (AND include, exclude with -)\nohs \"learning\" --tag pkm --tag work\n\n# Filter by frontmatter / properties (exact match, case-insensitive)\nohs \"notes\" --frontmatter status:todo\nohs \"notes\" --prop priority:high          # --prop is alias for --frontmatter\n\n# Filter by multiple frontmatter fields (AND)\nohs \"notes\" --frontmatter status:todo --frontmatter priority:high\n\n# Exclude by frontmatter value\nohs \"notes\" --frontmatter -status:done\n\n# Filter-only mode: no query, just filters (returns all matching notes sorted by title)\nohs --frontmatter status:todo\nohs --folder notes/2024/\nohs --tag pkm\nohs --frontmatter status:done --tag archived\n\n# Unlimited results in filter-only mode (default limit is 10)\nohs --folder notes/ --limit 0\n\n# Find semantically similar notes\nohs --path notes/pkm/zettelkasten.md\n\n# Graph traversal: show notes linked to/from this note\n# Results show depth: -1/-2 = backlinks, 0 = source, +1/+2 = outgoing links\nohs --path notes/pkm/zettelkasten.md --related\nohs --path notes/pkm/zettelkasten.md --related --depth 2\n\n# Only outgoing links (what this note references)\nohs --path notes/pkm/zettelkasten.md --related --direction outgoing\n\n# Only backlinks (who references this note)\nohs --path notes/pkm/zettelkasten.md --related --direction backlinks\n\n# Traverse standard Markdown note links instead of Obsidian wikilinks\nohs --path notes/pkm/zettelkasten.md --related --link-type markdown\n\n# Traverse both wikilinks and standard Markdown note links\nohs --path notes/pkm/zettelkasten.md --related --link-type all\n\n# Longer context around each link\nohs --path notes/pkm/zettelkasten.md --related --snippet-length 500\n\n# Rerank results with a cross-encoder model (improves precision, ~1-3s extra latency)\n# Downloads gte-multilingual-reranker-base ONNX (~341 MB) on first use, cached in ~/.cache/huggingface/\nohs \"zettelkasten atomic notes\" --rerank\n\n# Show tags and aliases alongside results\nohs \"zettelkasten\" --extended\n\n# JSON output (for scripting)\nohs \"spaced repetition\" --json\n\n# Output only paths (one per line) — useful for piping into read\nohs --frontmatter id:OHS-4 --only-paths\nohs read ${(f)\"$(ohs search --frontmatter status:todo --only-paths)\"}  # zsh: read all matching notes\n\n# Output absolute filesystem paths\nohs \"zettelkasten\" --only-absolute-paths\n\n# Open results in Obsidian (each in a new tab)\nohs \"zettelkasten\" --open\n\n# Reindex the vault\nohs reindex\nohs reindex --threads 4  # Limit local CPU inference to 4 threads\n\n# Force full reindex\nohs reindex --force\n\n# Reindex a single file\nohs reindex notes/pkm/zettelkasten.md\n\n# Retry only the notes whose chunks failed to embed\nohs reindex --errors\n\n# Show indexing status\nohs status\n\n# Show recent indexing activity\nohs status --recent\n\n# Show chunks that failed to embed\nohs status --errors\n\n# Read a note by path (outputs body content without frontmatter)\nohs read notes/pkm/zettelkasten.md\n\n# Read raw file from vault (with frontmatter, like cat)\nohs read notes/pkm/zettelkasten.md --raw\n\n# Read multiple notes (separator between each)\nohs read notes/pkm/zettelkasten.md notes/pkm/evergreen-notes.md\n\n# Cap content length\nohs read notes/pkm/zettelkasten.md --snippet-length 2000\n\n# Structured output with all metadata\nohs read notes/pkm/zettelkasten.md --json\n```\n\n### Shell aliases\n\nAdd to your `~/.zshrc` or `~/.bashrc` for quick access:\n\n```bash\nalias ohss='ohs --mode semantic'\nalias ohst='ohs --mode title'\nalias ohsf='ohs --mode fulltext'\nalias ohsr='ohs read'\nalias ohsi='ohs reindex'\nalias ohsst='ohs status'\n```\n\nThen reload (`source ~/.zshrc`) and use:\n\n```bash\nohs \"zettelkasten\"                        # hybrid search\nohss \"how to build a knowledge graph\"     # semantic\nohst \"zettelkasten\"                       # fuzzy title (typo-tolerant)\nohsf \"permanent notes\"                    # fulltext BM25\nohsr \"notes/pkm/zettelkasten.md\"          # read note by path\nohsi                                      # reindex vault\nohsst                                     # show status\nohsst --recent                            # show recent indexing activity\nohsst --errors                            # show chunks that failed to embed\n```\n\n### Output example\n\nHybrid search returns a table with scores and snippets. Scores are color-coded by relevance:\n\n| Score     | Color  | Meaning             |\n| --------- | ------ | ------------------- |\n| 0.8 – 1.0 | green  | Highly relevant     |\n| 0.5 – 0.8 | yellow | Moderately relevant |\n| 0.2 – 0.5 | plain  | Somewhat relevant   |\n| 0.0 – 0.2 | dim    | Low relevance       |\n\n```\n┌───────┬───────────────────────────────┬────────────────────────────────────────────┐\n│ SCORE │ PATH                          │ SNIPPET                                    │\n├───────┼───────────────────────────────┼────────────────────────────────────────────┤\n│  0.98 │ notes/pkm/zettelkasten.md     │ A note-taking method developed by Niklas   │\n│       │                               │ Luhmann. Each note contains one atomic...  │\n├───────┼───────────────────────────────┼────────────────────────────────────────────┤\n│  0.72 │ notes/pkm/evergreen-notes.md  │ Evergreen notes are written to evolve over │\n│       │                               │ time. Unlike fleeting notes, they are...   │\n└───────┴───────────────────────────────┴────────────────────────────────────────────┘\n```\n\nWith `--extended`, a TAGS/ALIASES column is added. Tags are prefixed with `#`, aliases are shown as-is:\n\n```\n┌───────┬───────────────────────────────┬──────────────────┬──────────────────────────────┐\n│ SCORE │ PATH                          │ TAGS/ALIASES     │ SNIPPET                      │\n├───────┼───────────────────────────────┼──────────────────┼──────────────────────────────┤\n│  0.98 │ notes/pkm/zettelkasten.md     │ #pkm             │ A note-taking method...      │\n│       │                               │ ЗК               │                              │\n│       │                               │ slip-box         │                              │\n├───────┼───────────────────────────────┼──────────────────┼──────────────────────────────┤\n│  0.72 │ notes/pkm/evergreen-notes.md  │ #pkm             │ Evergreen notes are written  │\n│       │                               │ #writing         │ to evolve over time...       │\n└───────┴───────────────────────────────┴──────────────────┴──────────────────────────────┘\n```\n\nTitle mode omits the snippet column automatically.\n\n## MCP server\n\nMost AI assistants operate without access to your personal knowledge and can only work with what you paste into the conversation. Adding this server gives any MCP-compatible assistant a persistent, searchable index of your entire vault. It becomes a tool call, not a copy-paste session: the assistant queries your notes the same way it calls any other tool, gets ranked results with snippets and links, and can navigate your knowledge graph on request.\n\nAdd to your MCP config (`.mcp.json`, `claude_desktop_config.json`, or equivalent for your client).\n\n### Minimal config (local embeddings, no API key)\n\nUses the built-in `Xenova/multilingual-e5-small` model. It works fully offline and supports 100+ languages. Downloads ~117 MB on first run.\n\n```json\n{\n  \"mcpServers\": {\n    \"obsidian-hybrid-search\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"-p\", \"obsidian-hybrid-search@latest\", \"obsidian-hybrid-search-mcp\"],\n      \"env\": {\n        \"OBSIDIAN_VAULT_PATH\": \"/path/to/your/vault\"\n      }\n    }\n  }\n}\n```\n\n### Full config (OpenRouter)\n\n```json\n{\n  \"mcpServers\": {\n    \"obsidian-hybrid-search\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"-p\", \"obsidian-hybrid-search@latest\", \"obsidian-hybrid-search-mcp\"],\n      \"env\": {\n        \"OBSIDIAN_VAULT_PATH\": \"/path/to/your/vault\",\n        \"OBSIDIAN_PREFIX\": \"myvault_\",\n        \"OBSIDIAN_RESPECT_GITIGNORE\": \"true\",\n        \"OBSIDIAN_IGNORE_PATTERNS\": \".obsidian/**,templates/**,*.canvas\",\n        \"OBSIDIAN_INCLUDE_PATTERNS\": \"private/notes/**\",\n        \"OPENAI_API_KEY\": \"sk-or-v1-...\",\n        \"OPENAI_BASE_URL\": \"https://openrouter.ai/api/v1\",\n        \"OPENAI_EMBEDDING_MODEL\": \"openai/text-embedding-3-small\"\n      }\n    }\n  }\n}\n```\n\n> **Note:** On first run, `npx` will install the package automatically. Ignore patterns are persisted in the database and restored on every subsequent startup even if the env var is missing.\n\n### Shared HTTP server\n\nUse this when multiple MCP clients should share one long-lived search/indexing process.\n\nStart or reuse the background server:\n\n```bash\nOBSIDIAN_VAULT_PATH=\"/path/to/your/vault\" ohs serve\n```\n\n`serve` starts the MCP server over HTTP by default; `serve --http` is the explicit equivalent. The command prints the server URL, PID, log path, and a client config snippet. The default bind address is `127.0.0.1:3939`.\n\nThen add this to a URL-based MCP client config (`.mcp.json`, `claude_desktop_config.json`, or equivalent):\n\n```json\n{\n  \"mcpServers\": {\n    \"obsidian-hybrid-search\": {\n      \"url\": \"http://127.0.0.1:3939/mcp\"\n    }\n  }\n}\n```\n\nManage the server:\n\n```bash\nohs serve status\nohs serve stop\nohs serve --foreground\nohs serve --http --foreground\n```\n\nHTTP mode uses stateless MCP Streamable HTTP. It does not issue or validate `Mcp-Session-Id`, so an MCP client can continue making tool calls after the daemon restarts even if it still sends a stale session header. This mode is intended for the server's request/response tools and does not provide persistent SSE streams, server-initiated notifications, or SSE resume.\n\nIf port 3939 is already in use, the command exits with an error instead of choosing another port automatically. Use `--port` for separate vaults.\n\nWhen binding beyond localhost, allow every hostname or address that MCP clients will use.\n\n```bash\nohs serve \\\n  --host 0.0.0.0 \\\n  --allowed-host 192.168.1.20:3939 \\\n  --allowed-host notes.example.com:3939\n```\n\nRepeat `--allowed-host` for multiple values. You can also set a comma-separated list with `OBSIDIAN_MCP_ALLOWED_HOSTS`. The `--allow-any-host` option disables Host-header protection for trusted networks.\n\n### Available MCP tools\n\n| Tool      | Description                                                                                                                                                                                                                                                                                                                                               |\n| --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `search`  | Search the vault. Use `query` for text search (`mode`: hybrid/semantic/fulltext/title) or `path` for semantic similarity. Combine `path` with `related: true` for graph traversal. Pass `queries[]` for multi-query fan-out (parallel search, RRF merge). Supports `scope`, `tag`, `limit`, `threshold`, `depth`, `direction`, `snippet_length`, `rerank` |\n| `read`    | Fetch one or more notes by vault-relative path. Returns full content, title, aliases, tags, links, and backlinks. On path miss: returns `found: false` with top-3 fuzzy suggestions. Accepts a single path or an array. Use `snippet_length` to cap content size                                                                                          |\n| `reindex` | Reindex the vault or a specific file                                                                                                                                                                                                                                                                                                                      |\n| `status`  | Show total notes, indexed count, last indexed time                                                                                                                                                                                                                                                                                                        |\n\nSet `OBSIDIAN_PREFIX` to add a prefix to every tool name. For example, `myvault_` produces `myvault_search` and `myvault_read`. The prefix is empty by default.\n\n## Configuration\n\n| Environment variable         | Default                              | Description                                                                        |\n| ---------------------------- | ------------------------------------ | ---------------------------------------------------------------------------------- |\n| `OBSIDIAN_VAULT_PATH`        | Required for MCP; CLI auto-detects   | Absolute path to your vault                                                        |\n| `OBSIDIAN_PREFIX`            | `\"\"`                                 | Optional MCP tool prefix, e.g. `myvault_` → `myvault_search`, `myvault_read`       |\n| `OBSIDIAN_IGNORE_PATTERNS`   | `.obsidian/**,templates/**,*.canvas` | Comma-separated ignore patterns                                                    |\n| `OBSIDIAN_RESPECT_GITIGNORE` | `true`                               | Read root and nested `.gitignore` files; set to `false` to disable                 |\n| `OBSIDIAN_INCLUDE_PATTERNS`  | `\"\"`                                 | Comma-separated patterns to re-include notes ignored only by `.gitignore`          |\n| `OPENAI_API_KEY`             | None                                 | API key; omit to use local model embeddings or keyless servers (Ollama, LM Studio) |\n| `OPENAI_BASE_URL`            | `https://api.openai.com/v1`          | API base URL                                                                       |\n| `OPENAI_EMBEDDING_MODEL`     | `text-embedding-3-small`             | Embedding model name                                                               |\n\n### Ignore patterns\n\n- Use `folder/**` to ignore a directory and all its contents.\n- Use `*.canvas` to ignore files by extension.\n- Use `exact/path.md` to ignore a specific file.\n- Use `**/node_modules/**` to ignore a directory at any depth.\n\nRoot and nested `.gitignore` files are respected by default. Set `OBSIDIAN_RESPECT_GITIGNORE=false` to disable this behavior. Use `OBSIDIAN_INCLUDE_PATTERNS` to re-include Markdown notes that are ignored only by `.gitignore`. Include patterns do not override `OBSIDIAN_IGNORE_PATTERNS` or internal exclusions.\n\nThe database stores the ignore configuration and restores it when the server restarts, even if the environment variable is missing.\n\n## How it works\n\n1. **Indexing** splits notes by headings with a sliding-window fallback, creates embeddings, and stores the results in SQLite with FTS5 and `sqlite-vec`.\n2. **Search** runs BM25, fuzzy trigram title and alias search, and vector KNN search in parallel. BM25 uses weights of 10× for titles, 5× for aliases, and 1× for content. RRF then gives semantic and BM25 results a weight of 1.5× each, exact alias matches 2×, and partial fuzzy matches 0.25×. The final scores range from 0 to 1, where higher scores mean greater relevance.\n3. **Links** are resolved from wikilinks such as `[[note]]`, mapped to note paths, and stored. Every search result includes `links` and `backlinks` arrays.\n4. **Watcher** uses `chokidar` to detect file changes and update the index in the background.\n\n## Contributing\n\nIssues and pull requests are welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for setup instructions and project checks.\n\n## License\n\nMIT\n\n[obsidian-plugin]: https://community.obsidian.md/plugins/hybrid-search\n","readmeFilename":"README.md"}