{"_id":"sweet-search","_rev":"40-bea4146d1bcee1d12742a75f67d93aea","name":"sweet-search","dist-tags":{"latest":"2.8.2"},"versions":{"0.0.1":{"name":"sweet-search","version":"0.0.1","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","structural-search","colgrep","developer-tools","ai-agents","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"mrsladoje@gmail.com"},"license":"Apache-2.0","_id":"sweet-search@0.0.1","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/mrsladoje/sweet-search#readme","bugs":{"url":"https://github.com/mrsladoje/sweet-search/issues"},"dist":{"shasum":"65b76b68a0e52f88ce2aab94d3391bffd34a0ee3","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-0.0.1.tgz","fileCount":1,"integrity":"sha512-ZB94hhl58V/M0w2FCafkLXYIl9yRjtFPFeBPloed7rk1oatZ68SHMwQfrk3WERlnnjyXWHkTKIhCCTfacRR0Fw==","signatures":[{"sig":"MEUCIQCopq86hDnkS/vNh/C5Fn1EDm9FOeMEb2CnCFZoSY/UeAIgPwUtTQJu3D9Qj0Xq9QQHKRRc0Q53AMk7tejHUI2j1sc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":796},"engines":{"node":">=18.0.0"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/mrsladoje/sweet-search.git","type":"git"},"_npmVersion":"11.11.0","description":"Blazing fast code search with 5 modes — semantic, lexical, hybrid, structural, and ColGrep — built for agent use","directories":{},"_nodeVersion":"25.8.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sweet-search_0.0.1_1774366743701_0.5399737231706916","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"sweet-search","version":"2.3.0","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.3.0","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/panonitorg/sweet-search#readme","bugs":{"url":"https://github.com/panonitorg/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"3e1d3922015b59f47e935872e377f939d74502cb","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.3.0.tgz","fileCount":161,"integrity":"sha512-QzKwg8iJ8f6nQfIYuxJtdWoT00hh/XZxSWBNNmU40M2m5pnkPq6BzRJ0aIV6kaX0rLefwKGjowC9B9XVlHIKfQ==","signatures":[{"sig":"MEUCIQDhT0nYwI6hxFeD787nndvOKPWv8ShkCIVh5I6D93rg5gIgKx40VJY21wMV83ss29yoEGGpA/M9qcsUf3JezjgxGBI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4258676},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"gitHead":"ce0bdb54cd1b38b55a0323900c5df7e0efe4e275","scripts":{"mcp":"node mcp/server.js","eval":"node evaluation/run-evaluation.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:by-lang":"node evaluation/run-evaluation.js --by-language","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/panonitorg/sweet-search.git","type":"git"},"_npmVersion":"11.11.0","description":"Sweet Search - SOTA Hybrid Code Search Engine with WASM CatBoost Query Router, Semantic/Lexical/Structural Search, and Multilingual Support","directories":{},"_nodeVersion":"25.8.1","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","usearch":"^2.21.4","fast-glob":"^3.3.3","franc-min":"^6.2.0","better-sqlite3":"^11.7.0","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","minimatch":"^10.1.1","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"@sweet-search/native-darwin-x64":"2.3.0","@sweet-search/native-darwin-arm64":"2.3.0","@sweet-search/native-linux-x64-gnu":"2.3.0","@sweet-search/native-linux-arm64-gnu":"2.3.0","@sweet-search/native-linux-x64-gnu-cuda":"2.3.0","@sweet-search/native-linux-arm64-gnu-cuda":"2.3.0"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.3.0_1777321333017_0.18249763454858203","host":"s3://npm-registry-packages-npm-production"}},"2.4.1":{"name":"sweet-search","version":"2.4.1","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.4.1","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/panonitorg/sweet-search#readme","bugs":{"url":"https://github.com/panonitorg/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"4b3619cd06d92d4573aeefbf7db6fc37c1f74f9a","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.4.1.tgz","fileCount":161,"integrity":"sha512-aITkr/nV92So+V3YKTdQfnNjuunj/Eef37LbdQXper2AbfJzpbi63oGWPSLrrNECf7MQbJZerZunt77gXd3l8g==","signatures":[{"sig":"MEQCIAhWj/gwTAd7FPXzH5bmiYL1/khmXddM3F82XaT2chblAiBaAgVKVGI+0qaT7i8D0pJ+unyJ2gvnkHA8wPZkCAOZeg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4259483},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"gitHead":"7b44c3cc1a4de9105e8f40b089948166c46dbb33","scripts":{"mcp":"node mcp/server.js","eval":"node evaluation/run-evaluation.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:by-lang":"node evaluation/run-evaluation.js --by-language","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/panonitorg/sweet-search.git","type":"git"},"_npmVersion":"10.8.2","description":"Sweet Search - SOTA Hybrid Code Search Engine with WASM CatBoost Query Router, Semantic/Lexical/Structural Search, and Multilingual Support","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","usearch":"^2.21.4","fast-glob":"^3.3.3","franc-min":"^6.2.0","better-sqlite3":"^11.7.0","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","minimatch":"^10.1.1","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"@sweet-search/native-darwin-x64":"2.4.1","@sweet-search/native-darwin-arm64":"2.4.1","@sweet-search/native-linux-x64-gnu":"2.4.1","@sweet-search/native-linux-arm64-gnu":"2.4.1","@sweet-search/native-linux-x64-gnu-cuda":"2.4.1","@sweet-search/native-linux-arm64-gnu-cuda":"2.4.1"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.4.1_1777390070792_0.04212240265783751","host":"s3://npm-registry-packages-npm-production"}},"2.4.2":{"name":"sweet-search","version":"2.4.2","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.4.2","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/panonitorg/sweet-search#readme","bugs":{"url":"https://github.com/panonitorg/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"0f21972d56ddfc0c954a3a060d4bf71364f31547","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.4.2.tgz","fileCount":162,"integrity":"sha512-Gv6D+AcmZyyfGgDM5PIPNQQEF73YIJ2OkX/LiMhZJmWlR7gu+SU384xTO4GmMHHefM0WKnL5rTOtF4NZ3U/b5A==","signatures":[{"sig":"MEUCIQD/DAHItC8vSz7pO2WloPBIs8vtrz4C4o5FDDBHR1RYqwIgRGekde365KL7kUGYtw6OQepk+RnbuWLrHoJxBuLNkpQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4269892},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"gitHead":"7c1482dc919319ac8b1af3495079dc1845790a3a","scripts":{"mcp":"node mcp/server.js","eval":"node evaluation/run-evaluation.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:by-lang":"node evaluation/run-evaluation.js --by-language","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/panonitorg/sweet-search.git","type":"git"},"_npmVersion":"10.8.2","description":"Sweet Search - SOTA Hybrid Code Search Engine with WASM CatBoost Query Router, Semantic/Lexical/Structural Search, and Multilingual Support","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","usearch":"^2.21.4","fast-glob":"^3.3.3","franc-min":"^6.2.0","better-sqlite3":"^11.7.0","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","minimatch":"^10.1.1","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"@sweet-search/native-darwin-x64":"2.4.2","@sweet-search/native-darwin-arm64":"2.4.2","@sweet-search/native-linux-x64-gnu":"2.4.2","@sweet-search/native-linux-arm64-gnu":"2.4.2","@sweet-search/native-linux-x64-gnu-cuda":"2.4.2","@sweet-search/native-linux-arm64-gnu-cuda":"2.4.2"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.4.2_1777461921936_0.6240161581986885","host":"s3://npm-registry-packages-npm-production"}},"2.5.1":{"name":"sweet-search","version":"2.5.1","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.5.1","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/panonitorg/sweet-search#readme","bugs":{"url":"https://github.com/panonitorg/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"e55e21559b21233c848d3d2ee90b1d24720aaa8d","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.5.1.tgz","fileCount":168,"integrity":"sha512-wctj80jj1ZCGCUTID2h4e6dLY/jjW0vvhGoSwjIHXydJzMiif1Fb/S1JLvmB5DHZeDKGv6U4mxoeIXhgKvU13Q==","signatures":[{"sig":"MEUCIC+NooTmzYEjP4O6inKKOILDcY+AQmW4MQvBTGNIKcUrAiEA0la/348G2a+EaRT+z4P+fOBrScMJDaeK1N14YPXRFiQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4438137},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"gitHead":"62031df12ccf726fa8c376082827987840f2905d","scripts":{"mcp":"node mcp/server.js","eval":"node evaluation/run-evaluation.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:by-lang":"node evaluation/run-evaluation.js --by-language","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","bench:read-workflows":"node eval/read-workflows/run-bench.js","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","bench:agent-read-workflows":"node eval/agent-read-workflows/run-bench.js","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/panonitorg/sweet-search.git","type":"git"},"_npmVersion":"10.8.2","description":"Sweet Search - SOTA Hybrid Code Search Engine with WASM CatBoost Query Router, Semantic/Lexical/Structural Search, and Multilingual Support","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","usearch":"^2.21.4","fast-glob":"^3.3.3","franc-min":"^6.2.0","better-sqlite3":"^11.7.0","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","minimatch":"^10.1.1","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"@sweet-search/native-darwin-x64":"2.5.1","@sweet-search/native-darwin-arm64":"2.5.1","@sweet-search/native-linux-x64-gnu":"2.5.1","@sweet-search/native-linux-arm64-gnu":"2.5.1","@sweet-search/native-linux-x64-gnu-cuda":"2.5.1","@sweet-search/native-linux-arm64-gnu-cuda":"2.5.1"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.5.1_1777853990766_0.2838610238420851","host":"s3://npm-registry-packages-npm-production"}},"2.5.2":{"name":"sweet-search","version":"2.5.2","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.5.2","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/panonitorg/sweet-search#readme","bugs":{"url":"https://github.com/panonitorg/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"588c1cdc9821cb66bbed0924d2235614891c3fea","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.5.2.tgz","fileCount":168,"integrity":"sha512-DV49/YtSdjwA55fX/i7So3tk1jd220TnnVAlah9oU9pv6jV0MRN2uHs/SgHxGBW/tD7nq1oRhoLDTy2/kP7p1w==","signatures":[{"sig":"MEUCIQDx9LTyUj8ep3ddmwh9lhoubl8Ox34Jpcod04IPTkQ9AwIgDv/7+L3bYlgTiZb1Aj6WQhD6BPJOC/eoHvngKEYNXUg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4466213},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"gitHead":"313896ff578bbf5cea4ee2f23b7c1dcf72de5352","scripts":{"mcp":"node mcp/server.js","eval":"node evaluation/run-evaluation.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:by-lang":"node evaluation/run-evaluation.js --by-language","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","bench:read-workflows":"node eval/read-workflows/run-bench.js","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","bench:agent-read-workflows":"node eval/agent-read-workflows/run-bench.js","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/panonitorg/sweet-search.git","type":"git"},"_npmVersion":"10.8.2","description":"Sweet Search - SOTA Hybrid Code Search Engine with WASM CatBoost Query Router, Semantic/Lexical/Structural Search, and Multilingual Support","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","usearch":"^2.21.4","fast-glob":"^3.3.3","franc-min":"^6.2.0","better-sqlite3":"^11.7.0","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","minimatch":"^10.1.1","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"@sweet-search/native-darwin-x64":"2.5.2","@sweet-search/native-darwin-arm64":"2.5.2","@sweet-search/native-linux-x64-gnu":"2.5.2","@sweet-search/native-linux-arm64-gnu":"2.5.2","@sweet-search/native-linux-x64-gnu-cuda":"2.5.2","@sweet-search/native-linux-arm64-gnu-cuda":"2.5.2"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.5.2_1777921158774_0.8754116075807528","host":"s3://npm-registry-packages-npm-production"}},"2.5.3":{"name":"sweet-search","version":"2.5.3","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.5.3","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/panonitorg/sweet-search#readme","bugs":{"url":"https://github.com/panonitorg/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"9195d12aa5798406a81b7af880952cdcbfd23274","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.5.3.tgz","fileCount":253,"integrity":"sha512-awo9pocYevnRcxBWU/c7VutZveXei107JOKT/g/gA7LBKIOTKmyZPZ5klP3qGAOMkeDFq5/IcaKo4aK5aAHxTA==","signatures":[{"sig":"MEUCIQD5dbU8K+IC4++nPtj/h3s/M6qCfbWBDEhI05w7GOGjvAIgKiXBH++ZFDZmnTsgMWPKbeBqE+gdZu0Uu1k8+5eO/Pw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5568371},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"gitHead":"5cf5e4041e9aeff2debd839a6a2068ec47ee2a93","scripts":{"mcp":"node mcp/server.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","eval:prompt":"node scripts/eval-prompt-evolution.mjs","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","bench:read-workflows":"node eval/read-workflows/run-bench.js","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","bench:structural-context":"node eval/structural-context/run-bench.js","bench:agent-read-workflows":"node eval/agent-read-workflows/run-bench.js","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/panonitorg/sweet-search.git","type":"git"},"_npmVersion":"10.8.2","description":"Sweet Search - SOTA Hybrid Code Search Engine with WASM CatBoost Query Router, Semantic/Lexical/Structural Search, and Multilingual Support","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","usearch":"^2.21.4","fast-glob":"^3.3.3","franc-min":"^6.2.0","minimatch":"^10.1.1","better-sqlite3":"^11.7.0","@node-rs/xxhash":"^1.7.6","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"@sweet-search/native-darwin-x64":"2.5.3","@sweet-search/native-darwin-arm64":"2.5.3","@sweet-search/native-linux-x64-gnu":"2.5.3","@sweet-search/native-linux-arm64-gnu":"2.5.3","@sweet-search/native-linux-x64-gnu-cuda":"2.5.3","@sweet-search/native-linux-arm64-gnu-cuda":"2.5.3"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.5.3_1780789668742_0.023604608143770633","host":"s3://npm-registry-packages-npm-production"}},"2.5.4":{"name":"sweet-search","version":"2.5.4","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.5.4","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/panonitorg/sweet-search#readme","bugs":{"url":"https://github.com/panonitorg/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"8739ac5e5357a8225975c626905ee8916ae94b0e","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.5.4.tgz","fileCount":253,"integrity":"sha512-b8XGy3jqyTZJMxTzuvRTyqFaOsKIsiTtScPCYWcDVXuu8BdEV3uA8MKvGxtCSY647Bexn+z2/BXusS1qsN6M1w==","signatures":[{"sig":"MEQCIDcrXXywsANjpbrPYBviJiHgTYuFUPomMRbQ2nOoxeC6AiBFcvDpdcvDGjcRLaU9BueYF4HHDeuNkOymVkdGCYZWdA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5568371},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"gitHead":"3b0d1dbc39ada071437003eb0baae297fc0681bf","scripts":{"mcp":"node mcp/server.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","eval:prompt":"node scripts/eval-prompt-evolution.mjs","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","bench:read-workflows":"node eval/read-workflows/run-bench.js","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","bench:structural-context":"node eval/structural-context/run-bench.js","bench:agent-read-workflows":"node eval/agent-read-workflows/run-bench.js","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/panonitorg/sweet-search.git","type":"git"},"_npmVersion":"10.8.2","description":"Sweet Search - SOTA Hybrid Code Search Engine with WASM CatBoost Query Router, Semantic/Lexical/Structural Search, and Multilingual Support","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","usearch":"^2.21.4","fast-glob":"^3.3.3","franc-min":"^6.2.0","minimatch":"^10.1.1","better-sqlite3":"^11.7.0","@node-rs/xxhash":"^1.7.6","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"@sweet-search/native-darwin-x64":"2.5.4","@sweet-search/native-darwin-arm64":"2.5.4","@sweet-search/native-linux-x64-gnu":"2.5.4","@sweet-search/native-linux-arm64-gnu":"2.5.4","@sweet-search/native-linux-x64-gnu-cuda":"2.5.4","@sweet-search/native-linux-arm64-gnu-cuda":"2.5.4"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.5.4_1780792616062_0.5180761558616391","host":"s3://npm-registry-packages-npm-production"}},"2.5.5":{"name":"sweet-search","version":"2.5.5","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.5.5","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/panonitorg/sweet-search#readme","bugs":{"url":"https://github.com/panonitorg/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"cf8026e4220c37cc61ea708deb91230d05f3f32d","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.5.5.tgz","fileCount":254,"integrity":"sha512-4JEhdB9JHOD8JNoW6en5ZGJhLr1oeQqB4eA1zHp9G5BhRCpc2oCLnmpyLX2/mAkAKABZGht/wkvJ51HoJNIOGw==","signatures":[{"sig":"MEUCIFZrTQ9ipxN8At5zyS0eLME0ox230CxFH/YPrhgAxVOsAiEA9krivUlnTRU/IF2cSQt8wMvYNzkLJ/sY/S1HYxAAA1Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5610498},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"gitHead":"7817d5b8a2ccfb8ed21402914e34ca55bf6f5087","scripts":{"mcp":"node mcp/server.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","eval:prompt":"node scripts/eval-prompt-evolution.mjs","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","bench:read-workflows":"node eval/read-workflows/run-bench.js","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","bench:structural-context":"node eval/structural-context/run-bench.js","bench:agent-read-workflows":"node eval/agent-read-workflows/run-bench.js","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/panonitorg/sweet-search.git","type":"git"},"_npmVersion":"10.8.2","description":"Sweet Search - SOTA Hybrid Code Search Engine with WASM CatBoost Query Router, Semantic/Lexical/Structural Search, and Multilingual Support","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","fast-glob":"^3.3.3","franc-min":"^6.2.0","minimatch":"^10.1.1","better-sqlite3":"^11.7.0","@node-rs/xxhash":"^1.7.6","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"usearch":"^2.21.4","@sweet-search/native-darwin-x64":"2.5.5","@sweet-search/native-darwin-arm64":"2.5.5","@sweet-search/native-linux-x64-gnu":"2.5.5","@sweet-search/native-linux-arm64-gnu":"2.5.5","@sweet-search/native-linux-x64-gnu-cuda":"2.5.5","@sweet-search/native-linux-arm64-gnu-cuda":"2.5.5"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.5.5_1781274612314_0.058190001450468154","host":"s3://npm-registry-packages-npm-production"}},"2.5.6":{"name":"sweet-search","version":"2.5.6","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.5.6","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/mrsladoje/sweet-search#readme","bugs":{"url":"https://github.com/mrsladoje/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"ab83748515db1636b09df99d6ec76ab293f9a121","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.5.6.tgz","fileCount":259,"integrity":"sha512-27N7/V3rnsMPvo0y3hr43edsDnB32XmjnKbni37Zv2PjNao4J1aGj1D8lip3WRs/BxqPYn/AUfxra80ggNSwPQ==","signatures":[{"sig":"MEYCIQDqpKcsBZA96VfjEYHUS2cOZxC+TREe6M4vIU0zhUyIPgIhALHstFf9kpqLHeQ1DQTO342pEi21a2y9BUJa198xbEq+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5820016},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"gitHead":"1bb2fb050e4c54af3e9d870aef3690bdb5c871bf","scripts":{"mcp":"node mcp/server.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","bake:banner":"node scripts/bake-banner.mjs","eval:prompt":"node scripts/eval-prompt-evolution.mjs","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","postinstall":"node scripts/postinstall-banner.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","bench:read-workflows":"node eval/read-workflows/run-bench.js","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","bench:structural-context":"node eval/structural-context/run-bench.js","bench:agent-read-workflows":"node eval/agent-read-workflows/run-bench.js","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/mrsladoje/sweet-search.git","type":"git"},"_npmVersion":"10.8.2","description":"Sweet Search - SOTA Hybrid Code Search Engine with WASM CatBoost Query Router, Semantic/Lexical/Structural Search, and Multilingual Support","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","fast-glob":"^3.3.3","franc-min":"^6.2.0","minimatch":"^10.1.1","better-sqlite3":"^11.7.0","@node-rs/xxhash":"^1.7.6","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","puppeteer-core":"^25.1.0","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"usearch":"^2.21.4","@sweet-search/native-darwin-x64":"2.5.6","@sweet-search/native-darwin-arm64":"2.5.6","@sweet-search/native-linux-x64-gnu":"2.5.6","@sweet-search/native-linux-arm64-gnu":"2.5.6","@sweet-search/native-linux-x64-gnu-cuda":"2.5.6","@sweet-search/native-linux-arm64-gnu-cuda":"2.5.6"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.5.6_1781353614291_0.9680416112929837","host":"s3://npm-registry-packages-npm-production"}},"2.5.7":{"name":"sweet-search","version":"2.5.7","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.5.7","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/mrsladoje/sweet-search#readme","bugs":{"url":"https://github.com/mrsladoje/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"617bedad760ddae4201be991a2d3536f0afce44b","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.5.7.tgz","fileCount":259,"integrity":"sha512-Axn7UBWLr3pjvXKYNdCS/VNEAcZtdAsSBkeqiMnaRzyO+xRRD3J97wEsb4VrKWiJhstqz/+wJo113/WZRPi1lA==","signatures":[{"sig":"MEUCIQC7iJCg81FP99L8JdxJqzeBNP6qEiD/81iFeZm85mk8MAIgeC8Xl7rjdg4OqjA0lwY5gegmVX/BH3ByoYPN7lJMBT0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5821687},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"gitHead":"91aa0e4e76f70289d96b56975312739903443e32","scripts":{"mcp":"node mcp/server.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","bake:banner":"node scripts/bake-banner.mjs","eval:prompt":"node scripts/eval-prompt-evolution.mjs","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","postinstall":"node scripts/postinstall-banner.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","bench:read-workflows":"node eval/read-workflows/run-bench.js","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","bench:structural-context":"node eval/structural-context/run-bench.js","bench:agent-read-workflows":"node eval/agent-read-workflows/run-bench.js","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/mrsladoje/sweet-search.git","type":"git"},"_npmVersion":"10.8.2","description":"Sweet Search - SOTA Hybrid Code Search Engine with WASM CatBoost Query Router, Semantic/Lexical/Structural Search, and Multilingual Support","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","fast-glob":"^3.3.3","franc-min":"^6.2.0","minimatch":"^10.1.1","better-sqlite3":"^11.7.0","@node-rs/xxhash":"^1.7.6","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","puppeteer-core":"^25.1.0","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"usearch":"^2.21.4","@sweet-search/native-darwin-x64":"2.5.7","@sweet-search/native-darwin-arm64":"2.5.7","@sweet-search/native-linux-x64-gnu":"2.5.7","@sweet-search/native-linux-arm64-gnu":"2.5.7","@sweet-search/native-linux-x64-gnu-cuda":"2.5.7","@sweet-search/native-linux-arm64-gnu-cuda":"2.5.7"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.5.7_1781366213377_0.035343269108110364","host":"s3://npm-registry-packages-npm-production"}},"2.5.8":{"name":"sweet-search","version":"2.5.8","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.5.8","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/mrsladoje/sweet-search#readme","bugs":{"url":"https://github.com/mrsladoje/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"5e987667a66bded51a7fc87af7d52775511c1183","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.5.8.tgz","fileCount":259,"integrity":"sha512-EZPUMWUl/PRKei37IjVSus44HPhF6O+OdtX/PbbBXuwh/yFKXxYXx8sILVBL37/16tyR0uqQn7JrxglKJitJ5A==","signatures":[{"sig":"MEUCIEwZp8lfmb9l22NFC1ClOO9SBrVB3Zc7liB2LxamDtKbAiEAzh8FILce/JiqPRnbMLWE3VllfWRF3qURynW4sYyz8dw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5823025},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"gitHead":"25da340cba0bd824093b3f817477a5863d9a05b6","scripts":{"mcp":"node mcp/server.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","bake:banner":"node scripts/bake-banner.mjs","eval:prompt":"node scripts/eval-prompt-evolution.mjs","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","postinstall":"node scripts/postinstall-banner.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","bench:read-workflows":"node eval/read-workflows/run-bench.js","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","bench:structural-context":"node eval/structural-context/run-bench.js","bench:agent-read-workflows":"node eval/agent-read-workflows/run-bench.js","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/mrsladoje/sweet-search.git","type":"git"},"_npmVersion":"10.8.2","description":"Sweet Search - SOTA Hybrid Code Search Engine with WASM CatBoost Query Router, Semantic/Lexical/Structural Search, and Multilingual Support","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","fast-glob":"^3.3.3","franc-min":"^6.2.0","minimatch":"^10.1.1","better-sqlite3":"^11.7.0","@node-rs/xxhash":"^1.7.6","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","puppeteer-core":"^25.1.0","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"usearch":"^2.21.4","@sweet-search/native-darwin-x64":"2.5.8","@sweet-search/native-darwin-arm64":"2.5.8","@sweet-search/native-linux-x64-gnu":"2.5.8","@sweet-search/native-linux-arm64-gnu":"2.5.8","@sweet-search/native-linux-x64-gnu-cuda":"2.5.8","@sweet-search/native-linux-arm64-gnu-cuda":"2.5.8"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.5.8_1781368934828_0.14824172811412262","host":"s3://npm-registry-packages-npm-production"}},"2.5.9":{"name":"sweet-search","version":"2.5.9","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.5.9","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/mrsladoje/sweet-search#readme","bugs":{"url":"https://github.com/mrsladoje/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"31dc2a359af3c313cd24efabffff0dcf98deedbc","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.5.9.tgz","fileCount":259,"integrity":"sha512-Ekzfwio+creQncS3L3mfGMTstlRyta429aTC/S+tmsJ0t+nQl+OmWPPSWz4ItFYNYGYe7kXA2Y44hh4+RQzzdw==","signatures":[{"sig":"MEQCIFv52yHSxAux0BcbJglyI9AIYx3Fq/1ZKygfhQxffLZVAiAQgM4CaFuwI/0W3kuFKwODzwfdC7ekMcoWVlNQrMIfwA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5823845},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"gitHead":"7bde37c84335194c99fb2b1672dc8dab67b777cc","scripts":{"mcp":"node mcp/server.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","bake:banner":"node scripts/bake-banner.mjs","eval:prompt":"node scripts/eval-prompt-evolution.mjs","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","postinstall":"node scripts/postinstall-banner.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","bench:read-workflows":"node eval/read-workflows/run-bench.js","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","bench:structural-context":"node eval/structural-context/run-bench.js","bench:agent-read-workflows":"node eval/agent-read-workflows/run-bench.js","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/mrsladoje/sweet-search.git","type":"git"},"_npmVersion":"10.8.2","description":"Sweet Search - SOTA Hybrid Code Search Engine with WASM CatBoost Query Router, Semantic/Lexical/Structural Search, and Multilingual Support","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","fast-glob":"^3.3.3","franc-min":"^6.2.0","minimatch":"^10.1.1","better-sqlite3":"^11.7.0","@node-rs/xxhash":"^1.7.6","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","puppeteer-core":"^25.1.0","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"usearch":"^2.21.4","@sweet-search/native-darwin-x64":"2.5.9","@sweet-search/native-darwin-arm64":"2.5.9","@sweet-search/native-linux-x64-gnu":"2.5.9","@sweet-search/native-linux-arm64-gnu":"2.5.9","@sweet-search/native-linux-x64-gnu-cuda":"2.5.9","@sweet-search/native-linux-arm64-gnu-cuda":"2.5.9"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.5.9_1781371158325_0.6477626047687421","host":"s3://npm-registry-packages-npm-production"}},"2.5.10":{"name":"sweet-search","version":"2.5.10","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.5.10","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/mrsladoje/sweet-search#readme","bugs":{"url":"https://github.com/mrsladoje/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"6b69a7d2cf071ea1ef8106b4e14b93629c109f13","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.5.10.tgz","fileCount":259,"integrity":"sha512-vP/ZVevG/+Y/1Gfjd0DnSmuFanjivN8xJQc++RMzepTiWFIsuSTJyayU5eanLy7hc1aHAkQgHzRX/ZdeWbnY3g==","signatures":[{"sig":"MEUCIFXGf9ty23LTNYLJHchPEoYWZVrR6PPItmuNorBp2P0tAiEAq84cFsuE+M2NqkHMN2LRicRAWoljNbXhkUEN1EHcfTA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5825768},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"gitHead":"26e0dee384452f2191104b25d80643e9b7b03719","scripts":{"mcp":"node mcp/server.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","bake:banner":"node scripts/bake-banner.mjs","eval:prompt":"node scripts/eval-prompt-evolution.mjs","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","postinstall":"node scripts/postinstall-banner.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","bench:read-workflows":"node eval/read-workflows/run-bench.js","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","bench:structural-context":"node eval/structural-context/run-bench.js","bench:agent-read-workflows":"node eval/agent-read-workflows/run-bench.js","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/mrsladoje/sweet-search.git","type":"git"},"_npmVersion":"10.8.2","description":"Sweet Search - SOTA Hybrid Code Search Engine with WASM CatBoost Query Router, Semantic/Lexical/Structural Search, and Multilingual Support","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","fast-glob":"^3.3.3","franc-min":"^6.2.0","minimatch":"^10.1.1","better-sqlite3":"^11.7.0","@node-rs/xxhash":"^1.7.6","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","puppeteer-core":"^25.1.0","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"usearch":"^2.21.4","@sweet-search/native-darwin-x64":"2.5.10","@sweet-search/native-darwin-arm64":"2.5.10","@sweet-search/native-linux-x64-gnu":"2.5.10","@sweet-search/native-linux-arm64-gnu":"2.5.10","@sweet-search/native-linux-x64-gnu-cuda":"2.5.10","@sweet-search/native-linux-arm64-gnu-cuda":"2.5.10"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.5.10_1781516365686_0.6567166529530115","host":"s3://npm-registry-packages-npm-production"}},"2.5.11":{"name":"sweet-search","version":"2.5.11","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.5.11","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/mrsladoje/sweet-search#readme","bugs":{"url":"https://github.com/mrsladoje/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"448f7b06a44e659f3fe9d10c43c45ff30eec11ef","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.5.11.tgz","fileCount":259,"integrity":"sha512-qR6qx7rrhEUW8KJ/B4gyxu8ljU9JJLlmdaEHLdjzNZLXog/67SWF8pPAOkQNHwe36JbAAbhMByaj5oitsjFjQQ==","signatures":[{"sig":"MEUCIQDa9rjyH4yaqRAXdPUR+Je/FymDVKTYFBnARIBnJChlZQIgQbpmof4swPTr5g2u5aU5XeLtRsTWGMEp5OUI1stI67Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5826032},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"gitHead":"d2401afe265412c93308ec811f610daee90be089","scripts":{"mcp":"node mcp/server.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","bake:banner":"node scripts/bake-banner.mjs","eval:prompt":"node scripts/eval-prompt-evolution.mjs","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","postinstall":"node scripts/postinstall-banner.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","bench:read-workflows":"node eval/read-workflows/run-bench.js","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","bench:structural-context":"node eval/structural-context/run-bench.js","bench:agent-read-workflows":"node eval/agent-read-workflows/run-bench.js","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/mrsladoje/sweet-search.git","type":"git"},"_npmVersion":"10.8.2","description":"Sweet Search - SOTA Hybrid Code Search Engine with WASM CatBoost Query Router, Semantic/Lexical/Structural Search, and Multilingual Support","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","fast-glob":"^3.3.3","franc-min":"^6.2.0","minimatch":"^10.1.1","better-sqlite3":"^11.7.0","@node-rs/xxhash":"^1.7.6","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","puppeteer-core":"^25.1.0","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"usearch":"^2.21.4","@sweet-search/native-darwin-x64":"2.5.11","@sweet-search/native-darwin-arm64":"2.5.11","@sweet-search/native-linux-x64-gnu":"2.5.11","@sweet-search/native-linux-arm64-gnu":"2.5.11","@sweet-search/native-linux-x64-gnu-cuda":"2.5.11","@sweet-search/native-linux-arm64-gnu-cuda":"2.5.11"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.5.11_1781517880446_0.16090138735028403","host":"s3://npm-registry-packages-npm-production"}},"2.5.12":{"name":"sweet-search","version":"2.5.12","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.5.12","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/mrsladoje/sweet-search#readme","bugs":{"url":"https://github.com/mrsladoje/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"662fe6cd838ba69fe44388eaf18e4938fabdce9b","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.5.12.tgz","fileCount":261,"integrity":"sha512-fUO+sbWuXFjRdskdaT7JwZzYKuCHsguU434YFeZVuBTh4n4vgkDyO6Oboh6U5vOKG/zBlUbWwMHUjwR7Vakmiw==","signatures":[{"sig":"MEQCIBLwjI0P79oFVxaITjb8CAfXg5AfAKMXFRkgjhCTtB/CAiBMoP+9x57alCzGwipqJSSkW+elb/d6q+B66i0m8fIoPg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5850667},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"gitHead":"8d9d65f4a33a3d7238b6f50a13c8bf963865ca66","scripts":{"mcp":"node mcp/server.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","bake:banner":"node scripts/bake-banner.mjs","eval:prompt":"node scripts/eval-prompt-evolution.mjs","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","postinstall":"node scripts/postinstall-banner.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","bench:read-workflows":"node eval/read-workflows/run-bench.js","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","bench:structural-context":"node eval/structural-context/run-bench.js","bench:agent-read-workflows":"node eval/agent-read-workflows/run-bench.js","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/mrsladoje/sweet-search.git","type":"git"},"_npmVersion":"10.8.2","description":"Sweet Search - SOTA Hybrid Code Search Engine with WASM CatBoost Query Router, Semantic/Lexical/Structural Search, and Multilingual Support","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","fast-glob":"^3.3.3","franc-min":"^6.2.0","minimatch":"^10.1.1","better-sqlite3":"^11.7.0","@node-rs/xxhash":"^1.7.6","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","puppeteer-core":"^25.1.0","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"usearch":"^2.21.4","@sweet-search/native-darwin-x64":"2.5.12","@sweet-search/native-darwin-arm64":"2.5.12","@sweet-search/native-linux-x64-gnu":"2.5.12","@sweet-search/native-linux-arm64-gnu":"2.5.12","@sweet-search/native-linux-x64-gnu-cuda":"2.5.12","@sweet-search/native-linux-arm64-gnu-cuda":"2.5.12"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.5.12_1781696179349_0.9643966395254504","host":"s3://npm-registry-packages-npm-production"}},"2.5.13":{"name":"sweet-search","version":"2.5.13","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.5.13","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/mrsladoje/sweet-search#readme","bugs":{"url":"https://github.com/mrsladoje/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"9864c25b0937c6fbdd8f65082e9ec661b1f9b7ee","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.5.13.tgz","fileCount":262,"integrity":"sha512-CXKlYfuQHod6H8M9bt1NxfQQ54HbRp9PvWxAE2IBj+EJHBxmwi+mn8Saz9PMOjBd3WT1svVa3K1vC9slQ5sxvw==","signatures":[{"sig":"MEUCIQCnhvT96ZAsLe0Zv7YFEU88gbgX6AS4wckifFkFBq2QXAIgJjnB8Mlx1QwyE+4KxMeeqH0M6JI0laBq73ZyqTUX/Vs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5858290},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"gitHead":"8297bccfbbaf4cc7ddc30e535ea6c017a36a5737","scripts":{"mcp":"node mcp/server.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","bake:banner":"node scripts/bake-banner.mjs","eval:prompt":"node scripts/eval-prompt-evolution.mjs","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","postinstall":"node scripts/postinstall-banner.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","bench:read-workflows":"node eval/read-workflows/run-bench.js","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","bench:structural-context":"node eval/structural-context/run-bench.js","bench:agent-read-workflows":"node eval/agent-read-workflows/run-bench.js","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/mrsladoje/sweet-search.git","type":"git"},"_npmVersion":"10.8.2","description":"Sweet Search - SOTA Hybrid Code Search Engine with WASM CatBoost Query Router, Semantic/Lexical/Structural Search, and Multilingual Support","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","fast-glob":"^3.3.3","franc-min":"^6.2.0","minimatch":"^10.1.1","better-sqlite3":"^11.7.0","@node-rs/xxhash":"^1.7.6","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","puppeteer-core":"^25.1.0","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"usearch":"^2.21.4","@sweet-search/native-darwin-x64":"2.5.13","@sweet-search/native-darwin-arm64":"2.5.13","@sweet-search/native-linux-x64-gnu":"2.5.13","@sweet-search/native-linux-arm64-gnu":"2.5.13","@sweet-search/native-linux-x64-gnu-cuda":"2.5.13","@sweet-search/native-linux-arm64-gnu-cuda":"2.5.13"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.5.13_1781705258431_0.31238914378328975","host":"s3://npm-registry-packages-npm-production"}},"2.5.14":{"name":"sweet-search","version":"2.5.14","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.5.14","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/mrsladoje/sweet-search#readme","bugs":{"url":"https://github.com/mrsladoje/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"19cec902295ce8c8fc942c45d29f800832b15da8","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.5.14.tgz","fileCount":262,"integrity":"sha512-s25gQHoM6kD/1z3QaVFjfRJtfslsoeOhw/aXSOgX8jFJBMHgLd0nwnUltJQbZ2++789TznCLUbgbr0cQqI7mZg==","signatures":[{"sig":"MEUCIEGsJVkMKwYiikPf/aQNYIKeDuKFWqgWhhScLOcCtSmKAiEAg7G2ZXNc0u93KKhTUnMA6n90RGYv7bJ+cYsI/gJlExs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5862889},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"gitHead":"eaba5e5ea1aa726e1e7e5b96c653f61697c8bdeb","scripts":{"mcp":"node mcp/server.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","bake:banner":"node scripts/bake-banner.mjs","eval:prompt":"node scripts/eval-prompt-evolution.mjs","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","postinstall":"node scripts/postinstall-banner.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","bench:read-workflows":"node eval/read-workflows/run-bench.js","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","bench:structural-context":"node eval/structural-context/run-bench.js","bench:agent-read-workflows":"node eval/agent-read-workflows/run-bench.js","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/mrsladoje/sweet-search.git","type":"git"},"_npmVersion":"10.8.2","description":"Sweet Search - SOTA Hybrid Code Search Engine with WASM CatBoost Query Router, Semantic/Lexical/Structural Search, and Multilingual Support","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","fast-glob":"^3.3.3","franc-min":"^6.2.0","minimatch":"^10.1.1","better-sqlite3":"^11.7.0","@node-rs/xxhash":"^1.7.6","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","puppeteer-core":"^25.1.0","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"usearch":"^2.21.4","@sweet-search/native-darwin-x64":"2.5.14","@sweet-search/native-darwin-arm64":"2.5.14","@sweet-search/native-linux-x64-gnu":"2.5.14","@sweet-search/native-linux-arm64-gnu":"2.5.14","@sweet-search/native-linux-x64-gnu-cuda":"2.5.14","@sweet-search/native-linux-arm64-gnu-cuda":"2.5.14"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.5.14_1781723544784_0.23714935426119355","host":"s3://npm-registry-packages-npm-production"}},"2.6.0":{"name":"sweet-search","version":"2.6.0","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.6.0","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/mrsladoje/sweet-search#readme","bugs":{"url":"https://github.com/mrsladoje/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"7dce3b342d8b22536a6aa36a94c6ea8594199f04","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.6.0.tgz","fileCount":269,"integrity":"sha512-/E7Zd0UiV36UdmaMsVmOy+fIWyuy3sdUaM0WsNWXMjXqlflkebo4XeXONnMMX8tvqa/89VNKx3TNTkFrG7uCWQ==","signatures":[{"sig":"MEUCIBflexF7f0lA3sPVn8/yDZHfesx4JA7QSNL2JTLApn/gAiEA8tLrF+IDA6zf9Xdi4GbuTxVbQ7YTBdM1V6cWPkuT7NY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6057491},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"gitHead":"6ccfa97f406c23651e033e6bd801e6534521e712","scripts":{"mcp":"node mcp/server.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","bake:banner":"node scripts/bake-banner.mjs","eval:prompt":"node scripts/eval-prompt-evolution.mjs","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","postinstall":"node scripts/postinstall-banner.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:bg-priority":"cd native/bg-priority && npx napi build --platform --release && echo 'bg-priority native addon build OK'","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","build:mem-pressure":"cd native/mem-pressure && npx napi build --platform --release && echo 'mem-pressure native addon build OK'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","bench:read-workflows":"node eval/read-workflows/run-bench.js","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","bench:structural-context":"node eval/structural-context/run-bench.js","bench:agent-read-workflows":"node eval/agent-read-workflows/run-bench.js","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/mrsladoje/sweet-search.git","type":"git"},"_npmVersion":"10.8.2","description":"Sweet Search - SOTA Hybrid Code Search Engine with WASM CatBoost Query Router, Semantic/Lexical/Structural Search, and Multilingual Support","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","fast-glob":"^3.3.3","franc-min":"^6.2.0","minimatch":"^10.1.1","better-sqlite3":"^11.7.0","@node-rs/xxhash":"^1.7.6","@parcel/watcher":"^2.5.6","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","puppeteer-core":"^25.1.0","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"@sweet-search/bg-priority":"2.6.0","@sweet-search/native-darwin-x64":"2.6.0","@sweet-search/native-darwin-arm64":"2.6.0","@sweet-search/native-linux-x64-gnu":"2.6.0","@sweet-search/native-linux-arm64-gnu":"2.6.0","@sweet-search/native-linux-x64-gnu-cuda":"2.6.0","@sweet-search/native-linux-arm64-gnu-cuda":"2.6.0"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.6.0_1782314818569_0.11042617100671093","host":"s3://npm-registry-packages-npm-production"}},"2.6.1":{"name":"sweet-search","version":"2.6.1","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.6.1","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/mrsladoje/sweet-search#readme","bugs":{"url":"https://github.com/mrsladoje/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"bb416714187cd70926f4f8651e0f268ad6032d6d","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.6.1.tgz","fileCount":269,"integrity":"sha512-dyPkM4mxMxY1Q1w9PaPxFiqFr8iWjiTpRP1j71IjJwWmXAnqTQ6iI76ATFZm7K5d4VoERJ/8NMZbGy5/EwH3bQ==","signatures":[{"sig":"MEYCIQCsvs6JE6vS9rbYXDhMvmzYh7BESfYHAaFO9afnpe9LaQIhAN4wHAmCaQxa+Gkwbwu+ZAkxogRycc1jtu3dO3SQA7mS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6058520},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"gitHead":"12d273210afdbc7c901b83b6389b9cb6ff58e48d","scripts":{"mcp":"node mcp/server.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","bake:banner":"node scripts/bake-banner.mjs","eval:prompt":"node scripts/eval-prompt-evolution.mjs","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","postinstall":"node scripts/postinstall-banner.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:bg-priority":"cd native/bg-priority && npx napi build --platform --release && echo 'bg-priority native addon build OK'","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","build:mem-pressure":"cd native/mem-pressure && npx napi build --platform --release && echo 'mem-pressure native addon build OK'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","bench:read-workflows":"node eval/read-workflows/run-bench.js","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","bench:structural-context":"node eval/structural-context/run-bench.js","bench:agent-read-workflows":"node eval/agent-read-workflows/run-bench.js","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/mrsladoje/sweet-search.git","type":"git"},"_npmVersion":"10.8.2","description":"Sweet Search - SOTA Hybrid Code Search Engine with WASM CatBoost Query Router, Semantic/Lexical/Structural Search, and Multilingual Support","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","fast-glob":"^3.3.3","franc-min":"^6.2.0","minimatch":"^10.1.1","better-sqlite3":"^11.7.0","@node-rs/xxhash":"^1.7.6","@parcel/watcher":"^2.5.6","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","puppeteer-core":"^25.1.0","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"@sweet-search/bg-priority":"2.6.1","@sweet-search/native-darwin-x64":"2.6.1","@sweet-search/native-darwin-arm64":"2.6.1","@sweet-search/native-linux-x64-gnu":"2.6.1","@sweet-search/native-linux-arm64-gnu":"2.6.1","@sweet-search/native-linux-x64-gnu-cuda":"2.6.1","@sweet-search/native-linux-arm64-gnu-cuda":"2.6.1"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.6.1_1782508523305_0.9166692243290031","host":"s3://npm-registry-packages-npm-production"}},"2.6.2":{"name":"sweet-search","version":"2.6.2","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.6.2","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/mrsladoje/sweet-search#readme","bugs":{"url":"https://github.com/mrsladoje/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"64a4c6701a539607e1567b6dba52fdcbcf9e0d66","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.6.2.tgz","fileCount":269,"integrity":"sha512-VlsAu8qHDwCG3Zaw0YpsWAbYnkYrzoKAxRF/Vwc8xJbWI83tcG3OioniUo/CWAOalbzZR1QZEns8i09r4A7Ujw==","signatures":[{"sig":"MEQCIBkx5yuKIlIDraMNgf07rYfeM1E2ksOOF95bFp3tiYhVAiBpWpqbVt0Gye0HLpgY+YUiCcQqh6ngrEpXQVbuQajKgw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6062797},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"gitHead":"c33feb782786ad8ea52a969fb1ccc925dd5f7aff","scripts":{"mcp":"node mcp/server.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","bake:banner":"node scripts/bake-banner.mjs","eval:prompt":"node scripts/eval-prompt-evolution.mjs","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","postinstall":"node scripts/postinstall-banner.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:bg-priority":"cd native/bg-priority && npx napi build --platform --release && echo 'bg-priority native addon build OK'","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","build:mem-pressure":"cd native/mem-pressure && npx napi build --platform --release && echo 'mem-pressure native addon build OK'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","bench:read-workflows":"node eval/read-workflows/run-bench.js","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","bench:structural-context":"node eval/structural-context/run-bench.js","bench:agent-read-workflows":"node eval/agent-read-workflows/run-bench.js","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/mrsladoje/sweet-search.git","type":"git"},"_npmVersion":"10.8.2","description":"Sweet Search - SOTA Hybrid Code Search Engine with WASM CatBoost Query Router, Semantic/Lexical/Structural Search, and Multilingual Support","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","fast-glob":"^3.3.3","franc-min":"^6.2.0","minimatch":"^10.1.1","better-sqlite3":"^11.7.0","@node-rs/xxhash":"^1.7.6","@parcel/watcher":"^2.5.6","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","puppeteer-core":"^25.1.0","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"@sweet-search/bg-priority":"2.6.2","@sweet-search/native-darwin-x64":"2.6.2","@sweet-search/native-darwin-arm64":"2.6.2","@sweet-search/native-linux-x64-gnu":"2.6.2","@sweet-search/native-linux-arm64-gnu":"2.6.2","@sweet-search/native-linux-x64-gnu-cuda":"2.6.2","@sweet-search/native-linux-arm64-gnu-cuda":"2.6.2"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.6.2_1782640784294_0.11817565604141556","host":"s3://npm-registry-packages-npm-production"}},"2.6.4":{"name":"sweet-search","version":"2.6.4","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.6.4","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/mrsladoje/sweet-search#readme","bugs":{"url":"https://github.com/mrsladoje/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"ea1e44b04006c54eb4c529213c9fb79fa7da7660","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.6.4.tgz","fileCount":269,"integrity":"sha512-rTKw01PsMwxo6ZIWjiV93GWbfYNacQl9GYZ/Wi3Mi3/wJKC6CtaYSazgwv0Bok844cH2nvJl8EsbMZAHCJt/EQ==","signatures":[{"sig":"MEYCIQCeeXeEaqX6b+xmkRJEbwU+uK7EcTei/3S7WIqvC1qk8gIhAMdH3whWMIpBUzSYFvAAFnuBVnbAJWtOpANtVZf2Rx/W","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6071607},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"gitHead":"ac11dc4c552c69dd32f969dd62e64865f0fc60b8","scripts":{"mcp":"node mcp/server.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","bake:banner":"node scripts/bake-banner.mjs","eval:prompt":"node scripts/eval-prompt-evolution.mjs","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","postinstall":"node scripts/postinstall-banner.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:bg-priority":"cd native/bg-priority && npx napi build --platform --release && echo 'bg-priority native addon build OK'","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","build:mem-pressure":"cd native/mem-pressure && npx napi build --platform --release && echo 'mem-pressure native addon build OK'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","bench:read-workflows":"node eval/read-workflows/run-bench.js","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","bench:structural-context":"node eval/structural-context/run-bench.js","bench:agent-read-workflows":"node eval/agent-read-workflows/run-bench.js","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/mrsladoje/sweet-search.git","type":"git"},"_npmVersion":"10.8.2","description":"Sweet Search - SOTA Hybrid Code Search Engine with WASM CatBoost Query Router, Semantic/Lexical/Structural Search, and Multilingual Support","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","fast-glob":"^3.3.3","franc-min":"^6.2.0","minimatch":"^10.1.1","better-sqlite3":"^11.7.0","@node-rs/xxhash":"^1.7.6","@parcel/watcher":"^2.5.6","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","puppeteer-core":"^25.1.0","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"@sweet-search/bg-priority":"2.6.4","@sweet-search/native-darwin-x64":"2.6.4","@sweet-search/native-darwin-arm64":"2.6.4","@sweet-search/native-linux-x64-gnu":"2.6.4","@sweet-search/native-linux-arm64-gnu":"2.6.4","@sweet-search/native-linux-x64-gnu-cuda":"2.6.4","@sweet-search/native-linux-arm64-gnu-cuda":"2.6.4"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.6.4_1782643493566_0.20354678901813705","host":"s3://npm-registry-packages-npm-production"}},"2.6.5":{"name":"sweet-search","version":"2.6.5","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.6.5","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/mrsladoje/sweet-search#readme","bugs":{"url":"https://github.com/mrsladoje/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"e535152ac8397f2e1639a167a6556e6c58d68c9b","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.6.5.tgz","fileCount":269,"integrity":"sha512-YtK6bwwF5eMqzB64P/pBSDi00vVwFF5Fnxok/kvldyqvmrFYx46AhxYski/Vmh96hXp6YwAhRUfMsJSP2KLO5A==","signatures":[{"sig":"MEUCIAX7bkgyXdW9YnnMlOm08ueC69gU7tMwc0my/amEXrAXAiEA7HJ5tblF833pMgNECOSf+bdgJnIOJ7lKSfzdO2QKd3U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6072490},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"gitHead":"048878fe1f051f0987bdd3e572b7d8e3c972541c","scripts":{"mcp":"node mcp/server.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","bake:banner":"node scripts/bake-banner.mjs","eval:prompt":"node scripts/eval-prompt-evolution.mjs","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","postinstall":"node scripts/postinstall-banner.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:bg-priority":"cd native/bg-priority && npx napi build --platform --release && echo 'bg-priority native addon build OK'","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","build:mem-pressure":"cd native/mem-pressure && npx napi build --platform --release && echo 'mem-pressure native addon build OK'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","bench:read-workflows":"node eval/read-workflows/run-bench.js","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","bench:structural-context":"node eval/structural-context/run-bench.js","bench:agent-read-workflows":"node eval/agent-read-workflows/run-bench.js","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/mrsladoje/sweet-search.git","type":"git"},"_npmVersion":"10.8.2","description":"Sweet Search - SOTA Hybrid Code Search Engine with WASM CatBoost Query Router, Semantic/Lexical/Structural Search, and Multilingual Support","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","fast-glob":"^3.3.3","franc-min":"^6.2.0","minimatch":"^10.1.1","better-sqlite3":"^11.7.0","@node-rs/xxhash":"^1.7.6","@parcel/watcher":"^2.5.6","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","puppeteer-core":"^25.1.0","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"@sweet-search/bg-priority":"2.6.5","@sweet-search/native-darwin-x64":"2.6.5","@sweet-search/native-darwin-arm64":"2.6.5","@sweet-search/native-linux-x64-gnu":"2.6.5","@sweet-search/native-linux-arm64-gnu":"2.6.5","@sweet-search/native-linux-x64-gnu-cuda":"2.6.5","@sweet-search/native-linux-arm64-gnu-cuda":"2.6.5"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.6.5_1782650121402_0.8805573718425286","host":"s3://npm-registry-packages-npm-production"}},"2.6.7":{"name":"sweet-search","version":"2.6.7","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.6.7","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/mrsladoje/sweet-search#readme","bugs":{"url":"https://github.com/mrsladoje/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"ebd92a65a0855c294b391caeb8b4d5a5c232874e","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.6.7.tgz","fileCount":269,"integrity":"sha512-UmqvQFhPf+ZW5ClvXR9iDzEjtzz1ZtxrNFHZFUubzrsamfovSLzYT26S2DZM/UevM/wpe52+jQLx9gU6XKooyw==","signatures":[{"sig":"MEYCIQCmTzi8Ab62yNnxhWJFCIpZ025VBu3tdNtxoVk475quugIhAPse5kgIJl73FgpFhftMKFkPke2t7inzuF8UWg/8GeL8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6093731},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"gitHead":"ddd5e40c01a6472056ef4b7d9c91b44dd0bdc2d4","scripts":{"mcp":"node mcp/server.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","bake:banner":"node scripts/bake-banner.mjs","eval:prompt":"node scripts/eval-prompt-evolution.mjs","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","postinstall":"node scripts/postinstall-banner.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:bg-priority":"cd native/bg-priority && npx napi build --platform --release && echo 'bg-priority native addon build OK'","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","build:mem-pressure":"cd native/mem-pressure && npx napi build --platform --release && echo 'mem-pressure native addon build OK'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","bench:read-workflows":"node eval/read-workflows/run-bench.js","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","bench:structural-context":"node eval/structural-context/run-bench.js","bench:agent-read-workflows":"node eval/agent-read-workflows/run-bench.js","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/mrsladoje/sweet-search.git","type":"git"},"_npmVersion":"10.8.2","description":"Sweet Search - SOTA Hybrid Code Search Engine with WASM CatBoost Query Router, Semantic/Lexical/Structural Search, and Multilingual Support","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","fast-glob":"^3.3.3","franc-min":"^6.2.0","minimatch":"^10.1.1","better-sqlite3":"^11.7.0","@node-rs/xxhash":"^1.7.6","@parcel/watcher":"^2.5.6","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","puppeteer-core":"^25.1.0","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"@sweet-search/bg-priority":"2.6.7","@sweet-search/native-darwin-x64":"2.6.7","@sweet-search/native-darwin-arm64":"2.6.7","@sweet-search/native-linux-x64-gnu":"2.6.7","@sweet-search/native-linux-arm64-gnu":"2.6.7","@sweet-search/native-linux-x64-gnu-cuda":"2.6.7","@sweet-search/native-linux-arm64-gnu-cuda":"2.6.7"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.6.7_1782654011846_0.5397643854153888","host":"s3://npm-registry-packages-npm-production"}},"2.6.8":{"name":"sweet-search","version":"2.6.8","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.6.8","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/mrsladoje/sweet-search#readme","bugs":{"url":"https://github.com/mrsladoje/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"ae56e441151964cb80fdacdd340dded5cb9b96e8","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.6.8.tgz","fileCount":269,"integrity":"sha512-aeyeaOTwvB5TxcwrQ4Ej6Bsns8lqMgcG8ECU/9xxsHcQfVxNG3B0dApn+tTST4QnTdLKPKR/D1+FsuWTdUqqoQ==","signatures":[{"sig":"MEUCIQDfeGgpnjCwPARosPXvdl50sIy9M7nBIZyOgNO5Hpw2KAIgR5mSHFztjfY1geR1JhB8gd4whH0Ntx7+HM6V37YC7xI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6097176},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"gitHead":"c041f10494e878edd50f4e1155a6063aa2c32bda","scripts":{"mcp":"node mcp/server.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","bake:banner":"node scripts/bake-banner.mjs","eval:prompt":"node scripts/eval-prompt-evolution.mjs","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","postinstall":"node scripts/postinstall-banner.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:bg-priority":"cd native/bg-priority && npx napi build --platform --release && echo 'bg-priority native addon build OK'","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","build:mem-pressure":"cd native/mem-pressure && npx napi build --platform --release && echo 'mem-pressure native addon build OK'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","bench:read-workflows":"node eval/read-workflows/run-bench.js","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","bench:structural-context":"node eval/structural-context/run-bench.js","bench:agent-read-workflows":"node eval/agent-read-workflows/run-bench.js","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/mrsladoje/sweet-search.git","type":"git"},"_npmVersion":"10.8.2","description":"Sweet Search - SOTA Hybrid Code Search Engine with WASM CatBoost Query Router, Semantic/Lexical/Structural Search, and Multilingual Support","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","fast-glob":"^3.3.3","franc-min":"^6.2.0","minimatch":"^10.1.1","better-sqlite3":"^11.7.0","@node-rs/xxhash":"^1.7.6","@parcel/watcher":"^2.5.6","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","puppeteer-core":"^25.1.0","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"@sweet-search/bg-priority":"2.6.8","@sweet-search/native-darwin-x64":"2.6.8","@sweet-search/native-darwin-arm64":"2.6.8","@sweet-search/native-linux-x64-gnu":"2.6.8","@sweet-search/native-linux-arm64-gnu":"2.6.8","@sweet-search/native-linux-x64-gnu-cuda":"2.6.8","@sweet-search/native-linux-arm64-gnu-cuda":"2.6.8"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.6.8_1782998993868_0.7661063579447354","host":"s3://npm-registry-packages-npm-production"}},"2.6.9":{"name":"sweet-search","version":"2.6.9","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.6.9","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/mrsladoje/sweet-search#readme","bugs":{"url":"https://github.com/mrsladoje/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"54a5c5d452f96472a5291105b6387af2efa0b8cb","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.6.9.tgz","fileCount":269,"integrity":"sha512-l7u8gAwZaqi3MYntPgoR1+DDguxpa08jVZ+YXegiI2aBtZknd2fs3/PeIIrqfPkLmuz7ZOLve2fTNxWnlaEL+A==","signatures":[{"sig":"MEUCIQDHoLejhTHuSCZQk4CZRW2CIP8p2fMq/F0xXI/I1zEp7QIgKuwlk8rRFT9ZgYj7NPoMjcPPmWWaE9hbzOVEs5N+MJE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6114081},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"gitHead":"272e6e48de0bdd271711f5890b9b0deb5e96fd4f","scripts":{"mcp":"node mcp/server.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","bake:banner":"node scripts/bake-banner.mjs","eval:prompt":"node scripts/eval-prompt-evolution.mjs","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","postinstall":"node scripts/postinstall-banner.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:bg-priority":"cd native/bg-priority && npx napi build --platform --release && echo 'bg-priority native addon build OK'","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","build:mem-pressure":"cd native/mem-pressure && npx napi build --platform --release && echo 'mem-pressure native addon build OK'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","bench:read-workflows":"node eval/read-workflows/run-bench.js","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","bench:structural-context":"node eval/structural-context/run-bench.js","bench:agent-read-workflows":"node eval/agent-read-workflows/run-bench.js","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/mrsladoje/sweet-search.git","type":"git"},"_npmVersion":"10.8.2","description":"Sweet Search - SOTA Hybrid Code Search Engine with WASM CatBoost Query Router, Semantic/Lexical/Structural Search, and Multilingual Support","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","fast-glob":"^3.3.3","franc-min":"^6.2.0","minimatch":"^10.1.1","better-sqlite3":"^11.7.0","@node-rs/xxhash":"^1.7.6","@parcel/watcher":"^2.5.6","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","puppeteer-core":"^25.1.0","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"@sweet-search/bg-priority":"2.6.9","@sweet-search/native-darwin-x64":"2.6.9","@sweet-search/native-darwin-arm64":"2.6.9","@sweet-search/native-linux-x64-gnu":"2.6.9","@sweet-search/native-linux-arm64-gnu":"2.6.9","@sweet-search/native-linux-x64-gnu-cuda":"2.6.9","@sweet-search/native-linux-arm64-gnu-cuda":"2.6.9"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.6.9_1783073815517_0.8494729461994026","host":"s3://npm-registry-packages-npm-production"}},"2.6.10":{"name":"sweet-search","version":"2.6.10","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.6.10","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/mrsladoje/sweet-search#readme","bugs":{"url":"https://github.com/mrsladoje/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"f1b88bb60cd1c7640660069d9883d2329d33dd98","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.6.10.tgz","fileCount":269,"integrity":"sha512-8IxhrvsYLM64KgNrzScW2M/MhX29Ov4HW95lRCwsxZBfb8RkIJ6Mq3CJ0uNTa8tC762tvreImbSTDPLh533C6w==","signatures":[{"sig":"MEYCIQCzgpKiH2ewZ/8nh3AS1kIAv40Gathm0cXtrZAq6uY6pgIhAMcWqN+5DBUkQVwrfv/B7fGhip3PVHbu68TpaHHY20Cp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6136865},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"gitHead":"0ef001e33043ff67a8980005a6c2f63b19b76763","scripts":{"mcp":"node mcp/server.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","bake:banner":"node scripts/bake-banner.mjs","eval:prompt":"node scripts/eval-prompt-evolution.mjs","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","postinstall":"node scripts/postinstall-banner.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:bg-priority":"cd native/bg-priority && npx napi build --platform --release && echo 'bg-priority native addon build OK'","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","build:mem-pressure":"cd native/mem-pressure && npx napi build --platform --release && echo 'mem-pressure native addon build OK'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","bench:read-workflows":"node eval/read-workflows/run-bench.js","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","bench:structural-context":"node eval/structural-context/run-bench.js","bench:agent-read-workflows":"node eval/agent-read-workflows/run-bench.js","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/mrsladoje/sweet-search.git","type":"git"},"_npmVersion":"10.8.2","description":"Sweet Search - SOTA Hybrid Code Search Engine with WASM CatBoost Query Router, Semantic/Lexical/Structural Search, and Multilingual Support","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","fast-glob":"^3.3.3","franc-min":"^6.2.0","minimatch":"^10.1.1","better-sqlite3":"^11.7.0","@node-rs/xxhash":"^1.7.6","@parcel/watcher":"^2.5.6","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","puppeteer-core":"^25.1.0","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"@sweet-search/bg-priority":"2.6.10","@sweet-search/native-darwin-x64":"2.6.10","@sweet-search/native-darwin-arm64":"2.6.10","@sweet-search/native-linux-x64-gnu":"2.6.10","@sweet-search/native-linux-arm64-gnu":"2.6.10","@sweet-search/native-linux-x64-gnu-cuda":"2.6.10","@sweet-search/native-linux-arm64-gnu-cuda":"2.6.10"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.6.10_1783089877930_0.8164182770224835","host":"s3://npm-registry-packages-npm-production"}},"2.6.11":{"name":"sweet-search","version":"2.6.11","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.6.11","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/mrsladoje/sweet-search#readme","bugs":{"url":"https://github.com/mrsladoje/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"165e62bfe4a8c1867304ddaa7f1d40456e1f8c28","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.6.11.tgz","fileCount":270,"integrity":"sha512-e7GcfkHs2w78WEPXF5piS8NczsiiozXcbAwuyYPbx7GzVKPRAWqpcTp8+zIkd1FKnT3gdlRr/gISZ0vx9FNPYQ==","signatures":[{"sig":"MEYCIQDFiewI+T4SW9gYAheHHYKftz7AK/SvRer5hfB9LqsK+wIhAKgk949vYuEgcKcSY0pySCmgE1p3ZTkIRKTkyN/9FVXv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6172111},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"gitHead":"b9b0aff5177e9a82666827d12e19e8de959b9957","scripts":{"mcp":"node mcp/server.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","bake:banner":"node scripts/bake-banner.mjs","eval:prompt":"node scripts/eval-prompt-evolution.mjs","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","postinstall":"node scripts/postinstall-banner.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:bg-priority":"cd native/bg-priority && npx napi build --platform --release && echo 'bg-priority native addon build OK'","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","build:mem-pressure":"cd native/mem-pressure && npx napi build --platform --release && echo 'mem-pressure native addon build OK'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","bench:read-workflows":"node eval/read-workflows/run-bench.js","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","bench:structural-context":"node eval/structural-context/run-bench.js","bench:agent-read-workflows":"node eval/agent-read-workflows/run-bench.js","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/mrsladoje/sweet-search.git","type":"git"},"_npmVersion":"10.8.2","description":"Sweet Search - SOTA Hybrid Code Search Engine with WASM CatBoost Query Router, Semantic/Lexical/Structural Search, and Multilingual Support","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","fast-glob":"^3.3.3","franc-min":"^6.2.0","minimatch":"^10.1.1","better-sqlite3":"^11.7.0","@node-rs/xxhash":"^1.7.6","@parcel/watcher":"^2.5.6","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","puppeteer-core":"^25.1.0","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"@sweet-search/bg-priority":"2.6.11","@sweet-search/native-darwin-x64":"2.6.11","@sweet-search/native-darwin-arm64":"2.6.11","@sweet-search/native-linux-x64-gnu":"2.6.11","@sweet-search/native-linux-arm64-gnu":"2.6.11","@sweet-search/native-linux-x64-gnu-cuda":"2.6.11","@sweet-search/native-linux-arm64-gnu-cuda":"2.6.11"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.6.11_1783119616383_0.8027829891459035","host":"s3://npm-registry-packages-npm-production"}},"2.6.12":{"name":"sweet-search","version":"2.6.12","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.6.12","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/mrsladoje/sweet-search#readme","bugs":{"url":"https://github.com/mrsladoje/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"1f625e4a149e699e05a70c02adf1c32cff097d15","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.6.12.tgz","fileCount":270,"integrity":"sha512-Nqj20mx4J0UVAWZ5WVeBRxg5gVIMx4XIgqSwbVvLUljCtq8wv1cE9c9VqwKY6AturcTJElBNyK6Zn3eR1YRdXw==","signatures":[{"sig":"MEQCICiOJAmpJUF08PtahP609GCUG9eV6yGTTAyF2GNSKtzkAiB/VRwhQ/IDnwB7gZ0TPBwzT0vWGuPXXmsxx3mUqmJBQg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6173287},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"gitHead":"c2eded335a7042efed4326eae272ea2e7c6b94c0","scripts":{"mcp":"node mcp/server.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","bake:banner":"node scripts/bake-banner.mjs","eval:prompt":"node scripts/eval-prompt-evolution.mjs","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","postinstall":"node scripts/postinstall-banner.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:bg-priority":"cd native/bg-priority && npx napi build --platform --release && echo 'bg-priority native addon build OK'","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","build:mem-pressure":"cd native/mem-pressure && npx napi build --platform --release && echo 'mem-pressure native addon build OK'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","bench:read-workflows":"node eval/read-workflows/run-bench.js","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","bench:structural-context":"node eval/structural-context/run-bench.js","bench:agent-read-workflows":"node eval/agent-read-workflows/run-bench.js","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/mrsladoje/sweet-search.git","type":"git"},"_npmVersion":"10.8.2","description":"Sweet Search - SOTA Hybrid Code Search Engine with WASM CatBoost Query Router, Semantic/Lexical/Structural Search, and Multilingual Support","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","fast-glob":"^3.3.3","franc-min":"^6.2.0","minimatch":"^10.1.1","better-sqlite3":"^11.7.0","@node-rs/xxhash":"^1.7.6","@parcel/watcher":"^2.5.6","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","puppeteer-core":"^25.1.0","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"@sweet-search/bg-priority":"2.6.12","@sweet-search/native-darwin-x64":"2.6.12","@sweet-search/native-darwin-arm64":"2.6.12","@sweet-search/native-linux-x64-gnu":"2.6.12","@sweet-search/native-linux-arm64-gnu":"2.6.12","@sweet-search/native-linux-x64-gnu-cuda":"2.6.12","@sweet-search/native-linux-arm64-gnu-cuda":"2.6.12"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.6.12_1783183298370_0.7824066857101848","host":"s3://npm-registry-packages-npm-production"}},"2.6.13":{"name":"sweet-search","version":"2.6.13","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.6.13","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/mrsladoje/sweet-search#readme","bugs":{"url":"https://github.com/mrsladoje/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"d96807beedb214a93b061d59c1852ec255b98a0f","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.6.13.tgz","fileCount":271,"integrity":"sha512-TKxO/t5zuKyRVkSWym51X4fx/gciZE0nV5GaX9QBG58jC2QatP7xfsjriyPoxC2NP0ATNomaQUDuKWEL5+0oOg==","signatures":[{"sig":"MEQCIAoBw8ZldW/l0DbbqHFimyCvs7HwXkSzwsD9vH4v8aOMAiABqPzP+4bhYHAd7MvM/vPkQqiQSxjetN2pELFI5hGeLQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6183419},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"gitHead":"bd6ae93aaf4c3ffe080e568cb8aeb777766552c4","scripts":{"mcp":"node mcp/server.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","bake:banner":"node scripts/bake-banner.mjs","eval:prompt":"node scripts/eval-prompt-evolution.mjs","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","postinstall":"node scripts/postinstall-banner.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:bg-priority":"cd native/bg-priority && npx napi build --platform --release && echo 'bg-priority native addon build OK'","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","build:mem-pressure":"cd native/mem-pressure && npx napi build --platform --release && echo 'mem-pressure native addon build OK'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","bench:read-workflows":"node eval/read-workflows/run-bench.js","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","bench:structural-context":"node eval/structural-context/run-bench.js","bench:agent-read-workflows":"node eval/agent-read-workflows/run-bench.js","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/mrsladoje/sweet-search.git","type":"git"},"_npmVersion":"10.8.2","description":"Sweet Search - SOTA Hybrid Code Search Engine with WASM CatBoost Query Router, Semantic/Lexical/Structural Search, and Multilingual Support","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","fast-glob":"^3.3.3","franc-min":"^6.2.0","minimatch":"^10.1.1","better-sqlite3":"^11.7.0","@node-rs/xxhash":"^1.7.6","@parcel/watcher":"^2.5.6","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","puppeteer-core":"^25.1.0","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"@sweet-search/bg-priority":"2.6.13","@sweet-search/native-darwin-x64":"2.6.13","@sweet-search/native-darwin-arm64":"2.6.13","@sweet-search/native-linux-x64-gnu":"2.6.13","@sweet-search/native-linux-arm64-gnu":"2.6.13","@sweet-search/native-linux-x64-gnu-cuda":"2.6.13","@sweet-search/native-linux-arm64-gnu-cuda":"2.6.13"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.6.13_1783347246464_0.7837204808604046","host":"s3://npm-registry-packages-npm-production"}},"2.6.14":{"name":"sweet-search","version":"2.6.14","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.6.14","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/mrsladoje/sweet-search#readme","bugs":{"url":"https://github.com/mrsladoje/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"340d592cd6d08a8f78aceb3fd52d34679ab658a1","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.6.14.tgz","fileCount":272,"integrity":"sha512-IWLly3FhjMGjf7jwuFELBvx5D6d5NtZCGQIT4qDvZBjTFwKXoypob7DuXQHnILjWN1zK2BNyEUPzoDAdQ7BemA==","signatures":[{"sig":"MEYCIQCUHj0MW+f3S+WBlnhONXLZSIWo8e1gLg9miMIiYMLOfQIhAI/a2qhk0QweihV1a66AGqnlYjXRp+BUAUlgUjHXzgAu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6200514},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"gitHead":"106586fd1c7d929c43b56a64a879d89179449cc9","scripts":{"mcp":"node mcp/server.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","bake:banner":"node scripts/bake-banner.mjs","eval:prompt":"node scripts/eval-prompt-evolution.mjs","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","postinstall":"node scripts/postinstall-banner.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:bg-priority":"cd native/bg-priority && npx napi build --platform --release && echo 'bg-priority native addon build OK'","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","build:mem-pressure":"cd native/mem-pressure && npx napi build --platform --release && echo 'mem-pressure native addon build OK'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","bench:read-workflows":"node eval/read-workflows/run-bench.js","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","bench:structural-context":"node eval/structural-context/run-bench.js","bench:agent-read-workflows":"node eval/agent-read-workflows/run-bench.js","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/mrsladoje/sweet-search.git","type":"git"},"_npmVersion":"10.8.2","description":"Sweet Search - SOTA Hybrid Code Search Engine with WASM CatBoost Query Router, Semantic/Lexical/Structural Search, and Multilingual Support","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","fast-glob":"^3.3.3","franc-min":"^6.2.0","minimatch":"^10.1.1","better-sqlite3":"^11.7.0","@node-rs/xxhash":"^1.7.6","@parcel/watcher":"^2.5.6","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","puppeteer-core":"^25.1.0","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"@sweet-search/bg-priority":"2.6.14","@sweet-search/native-darwin-x64":"2.6.14","@sweet-search/native-darwin-arm64":"2.6.14","@sweet-search/native-linux-x64-gnu":"2.6.14","@sweet-search/native-linux-arm64-gnu":"2.6.14","@sweet-search/native-linux-x64-gnu-cuda":"2.6.14","@sweet-search/native-linux-arm64-gnu-cuda":"2.6.14"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.6.14_1783364477888_0.13089022368963588","host":"s3://npm-registry-packages-npm-production"}},"2.6.15":{"name":"sweet-search","version":"2.6.15","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.6.15","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/mrsladoje/sweet-search#readme","bugs":{"url":"https://github.com/mrsladoje/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"5fc3beea89a9c30a8edb9e99c9946af4266ea6de","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.6.15.tgz","fileCount":272,"integrity":"sha512-AFgi6dz4+aT9j4okPhC6Y0Sraun6+B1oIKRdE5AgXRTzyTXTzGe9euxqTPmcJbu5YoMYxa3WCAQ0dtoGYcAeBQ==","signatures":[{"sig":"MEUCIAIfOA5ulpkx9AhwI4RvJNKvu8xNdQKfFLb6VkLwOX/NAiEAq2B5Xwl5bv/Kp/9WMhLDvRKEBoYMUrnAdllfFFRFCjk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6214949},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"gitHead":"646b171f365caed84c6aa8a4932ecdb577d8df6a","scripts":{"mcp":"node mcp/server.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","bake:banner":"node scripts/bake-banner.mjs","eval:prompt":"node scripts/eval-prompt-evolution.mjs","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","postinstall":"node scripts/postinstall-banner.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:bg-priority":"cd native/bg-priority && npx napi build --platform --release && echo 'bg-priority native addon build OK'","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","build:mem-pressure":"cd native/mem-pressure && npx napi build --platform --release && echo 'mem-pressure native addon build OK'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","bench:read-workflows":"node eval/read-workflows/run-bench.js","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","bench:structural-context":"node eval/structural-context/run-bench.js","bench:agent-read-workflows":"node eval/agent-read-workflows/run-bench.js","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/mrsladoje/sweet-search.git","type":"git"},"_npmVersion":"10.8.2","description":"Sweet Search - SOTA Hybrid Code Search Engine with WASM CatBoost Query Router, Semantic/Lexical/Structural Search, and Multilingual Support","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","fast-glob":"^3.3.3","franc-min":"^6.2.0","minimatch":"^10.1.1","better-sqlite3":"^11.7.0","@node-rs/xxhash":"^1.7.6","@parcel/watcher":"^2.5.6","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","puppeteer-core":"^25.1.0","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"@sweet-search/bg-priority":"2.6.15","@sweet-search/native-darwin-x64":"2.6.15","@sweet-search/native-darwin-arm64":"2.6.15","@sweet-search/native-linux-x64-gnu":"2.6.15","@sweet-search/native-linux-arm64-gnu":"2.6.15","@sweet-search/native-linux-x64-gnu-cuda":"2.6.15","@sweet-search/native-linux-arm64-gnu-cuda":"2.6.15"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.6.15_1783410971965_0.3643974766210887","host":"s3://npm-registry-packages-npm-production"}},"2.6.16":{"name":"sweet-search","version":"2.6.16","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.6.16","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/mrsladoje/sweet-search#readme","bugs":{"url":"https://github.com/mrsladoje/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"fc1a0e9a6256cab5fad9e2d41ec67245e6b295d0","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.6.16.tgz","fileCount":272,"integrity":"sha512-IK0jT2NOI7+/juvNsSwuV8P4S1p3MHHkDgCFxePVaYTlBd8+MGdlNbDjoPeCiHiIz3fb+e3GaItv75ZNoYRa3Q==","signatures":[{"sig":"MEUCIQCx9FQFtMdK2iUiCA8UxmNFjEU7Py1jpAZrYJme7Tc68wIgRzRHPfu5XhxH4X2D0PONxUAbPgbsM8Z7cbVJJNmoMx0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6215820},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"gitHead":"13f170906b4c39b69e72af77d6047d479a15235d","scripts":{"mcp":"node mcp/server.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","bake:banner":"node scripts/bake-banner.mjs","eval:prompt":"node scripts/eval-prompt-evolution.mjs","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","postinstall":"node scripts/postinstall-banner.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:bg-priority":"cd native/bg-priority && npx napi build --platform --release && echo 'bg-priority native addon build OK'","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","build:mem-pressure":"cd native/mem-pressure && npx napi build --platform --release && echo 'mem-pressure native addon build OK'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","bench:read-workflows":"node eval/read-workflows/run-bench.js","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","bench:structural-context":"node eval/structural-context/run-bench.js","bench:agent-read-workflows":"node eval/agent-read-workflows/run-bench.js","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/mrsladoje/sweet-search.git","type":"git"},"_npmVersion":"10.8.2","description":"Sweet Search - SOTA Hybrid Code Search Engine with WASM CatBoost Query Router, Semantic/Lexical/Structural Search, and Multilingual Support","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","fast-glob":"^3.3.3","franc-min":"^6.2.0","minimatch":"^10.1.1","better-sqlite3":"^11.7.0","@node-rs/xxhash":"^1.7.6","@parcel/watcher":"^2.5.6","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","puppeteer-core":"^25.1.0","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"@sweet-search/bg-priority":"2.6.16","@sweet-search/native-darwin-x64":"2.6.16","@sweet-search/native-darwin-arm64":"2.6.16","@sweet-search/native-linux-x64-gnu":"2.6.16","@sweet-search/native-linux-arm64-gnu":"2.6.16","@sweet-search/native-linux-x64-gnu-cuda":"2.6.16","@sweet-search/native-linux-arm64-gnu-cuda":"2.6.16"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.6.16_1783432465342_0.572690487760094","host":"s3://npm-registry-packages-npm-production"}},"2.6.17":{"name":"sweet-search","version":"2.6.17","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.6.17","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/mrsladoje/sweet-search#readme","bugs":{"url":"https://github.com/mrsladoje/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"815b0139ca320331d0b3dccf78a34c55731e5260","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.6.17.tgz","fileCount":272,"integrity":"sha512-XX2gbeUFue9UqRukEcOTJWfmlNm2o21JU/XAUDDAt0n/WTG3GEAYDZVHbVo/UbWTQBtDkTkXP9YdTRwhXeDv7w==","signatures":[{"sig":"MEUCIHTkw2v3rWGsVICFgpMPOvoKWVIPQNIuY0GVdADxiKXpAiEAqsYMqIERBAlos/GtLHbBS741Aj/O1Nxu52qD+RLZvFU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6228618},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"gitHead":"7670807c9182fd0f1b40f15f06600498412c58cb","scripts":{"mcp":"node mcp/server.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","bake:banner":"node scripts/bake-banner.mjs","eval:prompt":"node scripts/eval-prompt-evolution.mjs","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","postinstall":"node scripts/postinstall-banner.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:bg-priority":"cd native/bg-priority && npx napi build --platform --release && echo 'bg-priority native addon build OK'","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","build:mem-pressure":"cd native/mem-pressure && npx napi build --platform --release && echo 'mem-pressure native addon build OK'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","bench:read-workflows":"node eval/read-workflows/run-bench.js","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","bench:structural-context":"node eval/structural-context/run-bench.js","bench:agent-read-workflows":"node eval/agent-read-workflows/run-bench.js","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/mrsladoje/sweet-search.git","type":"git"},"_npmVersion":"10.8.2","description":"Sweet Search - SOTA Hybrid Code Search Engine with WASM CatBoost Query Router, Semantic/Lexical/Structural Search, and Multilingual Support","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","fast-glob":"^3.3.3","franc-min":"^6.2.0","minimatch":"^10.1.1","better-sqlite3":"^11.7.0","@node-rs/xxhash":"^1.7.6","@parcel/watcher":"^2.5.6","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","puppeteer-core":"^25.1.0","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"@sweet-search/bg-priority":"2.6.17","@sweet-search/native-darwin-x64":"2.6.17","@sweet-search/native-darwin-arm64":"2.6.17","@sweet-search/native-linux-x64-gnu":"2.6.17","@sweet-search/native-linux-arm64-gnu":"2.6.17","@sweet-search/native-linux-x64-gnu-cuda":"2.6.17","@sweet-search/native-linux-arm64-gnu-cuda":"2.6.17"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.6.17_1783512963406_0.9839918451533525","host":"s3://npm-registry-packages-npm-production"}},"2.7.0":{"name":"sweet-search","version":"2.7.0","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.7.0","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/mrsladoje/sweet-search#readme","bugs":{"url":"https://github.com/mrsladoje/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"0b895c43c12b4be94a9355e973f902c03fdcc27e","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.7.0.tgz","fileCount":277,"integrity":"sha512-xdMu8k21esnG5eabDMn1U8gNcVq/Cv2jMgrJwOayTLfx4bMRS9fDjVNtiPgsVZBkO4xRBCgA5NpC4oy1hPgI9Q==","signatures":[{"sig":"MEUCIQCAMXFvCOzlxH1fvDDyBKGwT0n8ucWHeda4GKxVzNN83wIgR51IvlaLOWyY3hfapjx+gnPVGkBqDxnHjZSKJnqyubM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6329559},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"gitHead":"0266619ba248f333f89bc2e74cdc424b58c9b230","scripts":{"mcp":"node mcp/server.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","bake:banner":"node scripts/bake-banner.mjs","eval:prompt":"node scripts/eval-prompt-evolution.mjs","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","postinstall":"node scripts/postinstall-banner.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:bg-priority":"cd native/bg-priority && npx napi build --platform --release && echo 'bg-priority native addon build OK'","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","build:mem-pressure":"cd native/mem-pressure && npx napi build --platform --release && echo 'mem-pressure native addon build OK'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","bench:read-workflows":"node eval/read-workflows/run-bench.js","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","bench:structural-context":"node eval/structural-context/run-bench.js","bench:agent-read-workflows":"node eval/agent-read-workflows/run-bench.js","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/mrsladoje/sweet-search.git","type":"git"},"_npmVersion":"10.8.2","description":"Local code search for AI agents: six fast, purpose-built tools that return ranked answers, not raw grep. Because maybe grep isn't all you need... 🍬","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","fast-glob":"^3.3.3","franc-min":"^6.2.0","minimatch":"^10.1.1","better-sqlite3":"^11.7.0","@node-rs/xxhash":"^1.7.6","@parcel/watcher":"^2.5.6","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","puppeteer-core":"^25.1.0","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"@sweet-search/bg-priority":"2.7.0","@sweet-search/native-darwin-x64":"2.7.0","@sweet-search/native-darwin-arm64":"2.7.0","@sweet-search/native-linux-x64-gnu":"2.7.0","@sweet-search/native-linux-arm64-gnu":"2.7.0","@sweet-search/native-linux-x64-gnu-cuda":"2.7.0","@sweet-search/native-linux-arm64-gnu-cuda":"2.7.0"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.7.0_1784197083864_0.7678022307275638","host":"s3://npm-registry-packages-npm-production"}},"2.7.1":{"name":"sweet-search","version":"2.7.1","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.7.1","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/mrsladoje/sweet-search#readme","bugs":{"url":"https://github.com/mrsladoje/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"bfdd55004c11dc54833759f985828e12492ce514","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.7.1.tgz","fileCount":279,"integrity":"sha512-46a0s71p4QWQ24fkv2AFwNhFBEKYzvCQdPxzce96so6n0QH4uXDySEwD3DboC6rNi8j++SL6NilWl5dxnszKUQ==","signatures":[{"sig":"MEYCIQCUbF4YCwipfUeVklNgqlrwtJSkUqk6wgsa4j+X5EU40QIhAIA4IPYIbEAw2nUgFFioMD3MfGAPpQtZcPk5+Nf46f9b","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9799577},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"scripts":{"mcp":"node mcp/server.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","bake:banner":"node scripts/bake-banner.mjs","eval:prompt":"node scripts/eval-prompt-evolution.mjs","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","postinstall":"node scripts/postinstall-banner.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:bg-priority":"cd native/bg-priority && npx napi build --platform --release && echo 'bg-priority native addon build OK'","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","build:mem-pressure":"cd native/mem-pressure && npx napi build --platform --release && echo 'mem-pressure native addon build OK'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","bench:read-workflows":"node eval/read-workflows/run-bench.js","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","bench:structural-context":"node eval/structural-context/run-bench.js","bench:agent-read-workflows":"node eval/agent-read-workflows/run-bench.js","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/mrsladoje/sweet-search.git","type":"git"},"_npmVersion":"11.16.0","description":"Local code search for AI agents: six fast, purpose-built tools that return ranked answers, not raw grep. Because maybe grep isn't all you need... 🍬","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","fast-glob":"^3.3.3","franc-min":"^6.2.0","minimatch":"^10.1.1","better-sqlite3":"^11.7.0","@node-rs/xxhash":"^1.7.6","@parcel/watcher":"^2.5.6","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","puppeteer-core":"^25.1.0","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"@sweet-search/bg-priority":"2.7.0","@sweet-search/native-darwin-x64":"2.7.0","@sweet-search/native-darwin-arm64":"2.7.0","@sweet-search/native-linux-x64-gnu":"2.7.0","@sweet-search/native-linux-arm64-gnu":"2.7.0","@sweet-search/native-linux-x64-gnu-cuda":"2.7.0","@sweet-search/native-linux-arm64-gnu-cuda":"2.7.0"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.7.1_1784998059291_0.8262252405246977","host":"s3://npm-registry-packages-npm-production"}},"2.7.2":{"name":"sweet-search","version":"2.7.2","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.7.2","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/mrsladoje/sweet-search#readme","bugs":{"url":"https://github.com/mrsladoje/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"1512a2df89f973ae301d689cd7b4defc2abdb861","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.7.2.tgz","fileCount":279,"integrity":"sha512-RgO+HL6cff7mq3WLv59iyz0jbGXfc9xIsPxlCvY2mBBSyt7U/hSyZnUHYK27vq8arUYRx3cUS2NYnbXWcIxgaQ==","signatures":[{"sig":"MEUCIQD3FVJ5p4HJUmEucoCHcLPSrtjhwHtnUcw6b9GvDXnHzQIgJTjrPOEeKactYhjdSDOL9QqhmioAc+FsVKN3eW+bqls=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9803464},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"scripts":{"mcp":"node mcp/server.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","bake:banner":"node scripts/bake-banner.mjs","eval:prompt":"node scripts/eval-prompt-evolution.mjs","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","postinstall":"node scripts/postinstall-banner.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:bg-priority":"cd native/bg-priority && npx napi build --platform --release && echo 'bg-priority native addon build OK'","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","build:mem-pressure":"cd native/mem-pressure && npx napi build --platform --release && echo 'mem-pressure native addon build OK'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","bench:read-workflows":"node eval/read-workflows/run-bench.js","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","bench:structural-context":"node eval/structural-context/run-bench.js","bench:agent-read-workflows":"node eval/agent-read-workflows/run-bench.js","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/mrsladoje/sweet-search.git","type":"git"},"_npmVersion":"11.16.0","description":"Local code search for AI agents: six fast, purpose-built tools that return ranked answers, not raw grep. Because maybe grep isn't all you need... 🍬","directories":{},"_nodeVersion":"24.18.0","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","fast-glob":"^3.3.3","franc-min":"^6.2.0","minimatch":"^10.1.1","better-sqlite3":"^11.7.0","@node-rs/xxhash":"^1.7.6","@parcel/watcher":"^2.5.6","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","puppeteer-core":"^25.1.0","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"@sweet-search/bg-priority":"2.7.0","@sweet-search/native-darwin-x64":"2.7.0","@sweet-search/native-darwin-arm64":"2.7.0","@sweet-search/native-linux-x64-gnu":"2.7.0","@sweet-search/native-linux-arm64-gnu":"2.7.0","@sweet-search/native-linux-x64-gnu-cuda":"2.7.0","@sweet-search/native-linux-arm64-gnu-cuda":"2.7.0"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.7.2_1785014780974_0.5826786476784962","host":"s3://npm-registry-packages-npm-production"}},"2.8.0":{"name":"sweet-search","version":"2.8.0","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.8.0","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/mrsladoje/sweet-search#readme","bugs":{"url":"https://github.com/mrsladoje/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"4f78491277637d2537ca18a901b20b99879531dd","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.8.0.tgz","fileCount":287,"integrity":"sha512-Vc07NQyZ0r5NAKug/y5EgjHUkxXwUAA2dnf+HQUFJLhO/U3XZAXgKVzgzFyPyoW9cltbpL60f3INMquXe7zhJg==","signatures":[{"sig":"MEUCIHZ6lqNO61O7vOMyeUokuJN+/aiHBm/a/YQT9kPUau8bAiEAg0ueQ1OaKmYZLI5oJuJlhHqMBQ6t6uxgK+Kpe260Cck=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDVJvISCCfJO2Ne7biiGdB3+VED1oy1MRMpLgQ23xi5LAIgHRPHV9Cx2RYUFFvr8OuuQ4519HCdmvVTw0NStb5tFS8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10056975},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"gitHead":"1e5f93173088b12c0c1ed81020e346ebaa29a149","scripts":{"mcp":"node mcp/server.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","bake:banner":"node scripts/bake-banner.mjs","eval:prompt":"node scripts/eval-prompt-evolution.mjs","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","postinstall":"node scripts/postinstall-banner.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:bg-priority":"cd native/bg-priority && npx napi build --platform --release && echo 'bg-priority native addon build OK'","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","build:mem-pressure":"cd native/mem-pressure && npx napi build --platform --release && echo 'mem-pressure native addon build OK'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","bench:read-workflows":"node eval/read-workflows/run-bench.js","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","bench:structural-context":"node eval/structural-context/run-bench.js","bench:agent-read-workflows":"node eval/agent-read-workflows/run-bench.js","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/mrsladoje/sweet-search.git","type":"git"},"_npmVersion":"10.8.2","description":"Local code search for AI agents: six fast, purpose-built tools that return ranked answers, not raw grep. Because maybe grep isn't all you need... 🍬","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","fast-glob":"^3.3.3","franc-min":"^6.2.0","minimatch":"^10.1.1","better-sqlite3":"^11.7.0","@node-rs/xxhash":"^1.7.6","@parcel/watcher":"^2.5.6","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","puppeteer-core":"^25.1.0","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"@sweet-search/bg-priority":"2.8.0","@sweet-search/native-darwin-x64":"2.8.0","@sweet-search/native-darwin-arm64":"2.8.0","@sweet-search/native-linux-x64-gnu":"2.8.0","@sweet-search/native-linux-arm64-gnu":"2.8.0","@sweet-search/native-linux-x64-gnu-cuda":"2.8.0","@sweet-search/native-linux-arm64-gnu-cuda":"2.8.0"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.8.0_1789721597796_0.9723490412472964","host":"s3://npm-registry-packages-npm-production"}},"2.8.1":{"name":"sweet-search","version":"2.8.1","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","_id":"sweet-search@2.8.1","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"homepage":"https://github.com/mrsladoje/sweet-search#readme","bugs":{"url":"https://github.com/mrsladoje/sweet-search/issues"},"bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"dist":{"shasum":"548bbcbfef2d6b81beac38f871a4fd5df40ac1da","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.8.1.tgz","fileCount":287,"integrity":"sha512-Ne/k1wZDCRpsj9FVO45zK7N+1rYpRJv45OqHus8RTNy30zjcCfBx1zl4nxD6LmGgrSCv2efSZUS9vmKI/8enlw==","signatures":[{"sig":"MEYCIQC7k5zGICmdd4w+t6+MXouc2eodVlFUk7IFBNPVEh389QIhAI7CiRHxknhBn80sMH4ixWuWiy0GbXdcmDjms6BnD0Zs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICzTCJGo8N2rkCSTsOeBmywsCg7LPUvDstI8+HCP8vgKAiEA6SCI6M9hO5zZhQIhAkzEFfklcvnu8uPcM3aoxI3Vbwk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10068649},"main":"core/search/sweet-search.js","type":"module","engines":{"node":">=18.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"gitHead":"d58069f54598403d3261e5fee8f4e2f025480023","scripts":{"mcp":"node mcp/server.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","bake:banner":"node scripts/bake-banner.mjs","eval:prompt":"node scripts/eval-prompt-evolution.mjs","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","postinstall":"node scripts/postinstall-banner.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:bg-priority":"cd native/bg-priority && npx napi build --platform --release && echo 'bg-priority native addon build OK'","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","build:mem-pressure":"cd native/mem-pressure && npx napi build --platform --release && echo 'mem-pressure native addon build OK'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","bench:read-workflows":"node eval/read-workflows/run-bench.js","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","bench:structural-context":"node eval/structural-context/run-bench.js","bench:agent-read-workflows":"node eval/agent-read-workflows/run-bench.js","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"repository":{"url":"git+https://github.com/mrsladoje/sweet-search.git","type":"git"},"_npmVersion":"10.8.2","description":"Local code search for AI agents: six fast, purpose-built tools that return ranked answers, not raw grep. Because maybe grep isn't all you need... 🍬","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","fast-glob":"^3.3.3","franc-min":"^6.2.0","minimatch":"^10.1.1","better-sqlite3":"^11.7.0","@node-rs/xxhash":"^1.7.6","@parcel/watcher":"^2.5.6","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","puppeteer-core":"^25.1.0","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"@sweet-search/bg-priority":"2.8.1","@sweet-search/native-darwin-x64":"2.8.1","@sweet-search/native-darwin-arm64":"2.8.1","@sweet-search/native-linux-x64-gnu":"2.8.1","@sweet-search/native-linux-arm64-gnu":"2.8.1","@sweet-search/native-linux-x64-gnu-cuda":"2.8.1","@sweet-search/native-linux-arm64-gnu-cuda":"2.8.1"},"_npmOperationalInternal":{"tmp":"tmp/sweet-search_2.8.1_1790076475298_0.9702475585978549","host":"s3://npm-registry-packages-npm-production"}},"2.8.2":{"_id":"sweet-search@2.8.2","bin":{"sweet-search":"core/cli.js","sweet-search-mcp":"mcp/server.js"},"bugs":{"url":"https://github.com/mrsladoje/sweet-search/issues"},"dist":{"shasum":"078735128b8500c420cbb6634fc5b77099856ea3","tarball":"https://registry.npmjs.org/sweet-search/-/sweet-search-2.8.2.tgz","fileCount":301,"integrity":"sha512-oO4EBPxKwNtHjdnE1XY4NQ15EFYZMujr/ckOIdWcVFuu3GEKqTXIy01I7VG7tV1RyNhkLCjckGej4SH2cJpMgA==","signatures":[{"sig":"MEQCIEEOp9iW4+WbTed9EHrq5RwDMeHqdA184Ogf7eXrmfIFAiBAAttnbkCBfvZBp7fZ4KTeBrrGXw9mCGkpJJfoWntPJA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHDYdy2ngHAwIk57GF8/D9iq47DuHXOp8voTUVW3uDcZAiBF5aniJjdmHyLl0xaybfLfLiv4ZoZwofWBV7XhKPC/Tg=="}],"unpackedSize":10250171},"main":"core/search/sweet-search.js","name":"sweet-search","type":"module","author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"engines":{"node":">=22.0.0"},"exports":{".":"./core/search/sweet-search.js","./mcp":"./mcp/server.js","./ast-chunker":"./core/indexing/ast-chunker.js"},"gitHead":"f612204ba22aa68f509e2a67f49ea82d9322f048","license":"Apache-2.0","scripts":{"mcp":"node mcp/server.js","hcgs":"node core/graph/hcgs-generator.js generate","init":"node scripts/init.js","lint":"eslint core/","test":"vitest run","build":"node -e \"import('./core/search/sweet-search.js')\" && echo 'Build OK'","index":"node core/indexing/index-codebase-v21.js","train":"python core/training/query-router/models/train_catboost.py","search":"node core/search/sweet-search.js","warmup":"node core/cli.js prewarm-vocab","check-db":"node scripts/check-db.js","features":"node core/training/query-router/features/extractor.js","generate":"node core/training/query-router/generators/generate.js","outliers":"node core/training/query-router/validation/outlier-detector.js","test:all":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run","validate":"node core/training/query-router/validation/heuristic-validator.js","anti-leak":"node core/training/query-router/validation/anti-leak-check.js","benchmark":"node scripts/benchmark.js","build:cli":"cd crates/sweet-search-cli && cargo build --release && echo 'CLI build OK'","build:wasm":"node scripts/build-wasm.js && cd crates/wasm-maxsim && RUSTFLAGS=\"-C target-feature=+simd128\" cargo build --target wasm32-unknown-unknown --release && cp target/wasm32-unknown-unknown/release/maxsim_wasm.wasm ../../core/infrastructure/maxsim.wasm && echo 'WASM build OK'","eval:bench":"node eval/run_all.js","hcgs:stats":"node core/graph/hcgs-generator.js stats","index:full":"node core/indexing/index-codebase-v21.js --full","paraphrase":"node core/training/query-router/validation/paraphraser.js","spot-check":"node core/training/query-router/validation/spot-check-sampler.js","test:bench":"vitest bench","test:extra":"SWEET_SEARCH_EXTRA_TESTS=1 vitest run tests/embedding/direct-ort-bypass.test.js tests/embedding/embedding-correctness.test.js","test:watch":"vitest","bake:banner":"node scripts/bake-banner.mjs","eval:prompt":"node scripts/eval-prompt-evolution.mjs","identifiers":"node core/training/query-router/generators/multilingual-identifiers.js","postinstall":"node scripts/postinstall-banner.js","warmup:full":"node scripts/vocabulary-warmup.js","anti-leak:ci":"node core/training/query-router/validation/anti-leak-check.js --ci","build:assets":"node scripts/generate-asset-manifest.js","build:native":"cd crates/sweet-search-native && npx napi build --release --platform --features coreml,accelerate && echo 'Native build OK'","eval:latency":"node eval/scripts/latency-stress.js","eval:pattern":"node eval/run_pattern_benchmark.js","optimize:onnx":"bash scripts/optimize-onnx-model.sh","test:coverage":"vitest run --coverage","eval:multirepo":"node eval/scripts/multirepo-bench.js","features:names":"node core/training/query-router/features/extractor.js --names","eval:bench:check":"node eval/run_all.js --regression-check","eval:fetch-repos":"node eval/scripts/fetch-benchmark-repos.js","build:bg-priority":"cd native/bg-priority && npx napi build --platform --release && echo 'bg-priority native addon build OK'","build:native:cuda":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda,flash-attn && echo 'CUDA native build OK (Ampere+ — flash-attn compiled in, runtime-gated on SM 8.0+)'","build:mem-pressure":"cd native/mem-pressure && npx napi build --platform --release && echo 'mem-pressure native addon build OK'","features:benchmark":"node core/training/query-router/features/extractor.js --benchmark","eval:bench:baseline":"node eval/run_all.js --save-baseline","eval:multirepo:test":"node eval/scripts/multirepo-bench.js --split=test","bench:read-workflows":"node eval/read-workflows/run-bench.js","eval:pattern:baseline":"node eval/run_pattern_benchmark.js --save-baseline","generate:multilingual":"node core/training/query-router/generators/generate.js --multilingual --samples 5000 --output core/training/query-router/output/multilingual_5k.json","bench:structural-context":"node eval/structural-context/run-bench.js","bench:agent-read-workflows":"node eval/agent-read-workflows/run-bench.js","build:native:cuda-no-flashattn":"cd crates/sweet-search-native && npx napi build --release --platform --features cuda && echo 'CUDA native build OK (no flash-attn — SM 7.0+ compatible, naive attention)'"},"version":"2.8.2","_npmUser":{"name":"mrsladoje","email":"mrsladoje@gmail.com"},"homepage":"https://github.com/mrsladoje/sweet-search#readme","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"repository":{"url":"git+https://github.com/mrsladoje/sweet-search.git","type":"git"},"_npmVersion":"10.9.8","description":"Local code search for AI agents: six fast, purpose-built tools that return ranked answers, not raw grep. Because maybe grep isn't all you need... 🍬","directories":{},"maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"_nodeVersion":"22.23.2","dependencies":{"zod":"^4.3.6","sharp":"^0.34.5","undici":"^6.23.0","p-limit":"^6.2.0","fast-glob":"^3.3.3","franc-min":"^6.2.0","minimatch":"^10.1.1","jsonc-parser":"^3.3.1","better-sqlite3":"^13.0.3","@node-rs/xxhash":"^1.7.6","@parcel/watcher":"^2.5.6","web-tree-sitter":"^0.25.10","onnxruntime-node":"^1.24.3","tree-sitter-wasms":"^0.1.13","@modelcontextprotocol/sdk":"^1.26.0","@babel/helper-validator-identifier":"^7.28.5"},"_hasShrinkwrap":false,"devDependencies":{"p-map":"^7.0.4","eslint":"^9.39.4","vitest":"^4.0.16","fast-check":"^4.5.3","typescript":"^5.9.3","@napi-rs/cli":"^3.5.1","puppeteer-core":"^25.1.0","@vitest/coverage-v8":"^4.0.16"},"optionalDependencies":{"@sweet-search/bg-priority":"2.8.2","@sweet-search/native-darwin-x64":"2.8.2","@sweet-search/native-darwin-arm64":"2.8.2","@sweet-search/native-linux-x64-gnu":"2.8.2","@sweet-search/native-linux-arm64-gnu":"2.8.2","@sweet-search/native-linux-x64-gnu-cuda":"2.8.2","@sweet-search/native-linux-arm64-gnu-cuda":"2.8.2"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sweet-search_2.8.2_1790777217931_0.8396960532875923"}}},"time":{"created":"2026-03-24T15:39:03.647Z","modified":"2026-09-30T14:06:58.265Z","0.0.1":"2026-03-24T15:39:03.829Z","2.3.0":"2026-04-27T20:22:13.267Z","2.4.1":"2026-04-28T15:27:51.025Z","2.4.2":"2026-04-29T11:25:22.140Z","2.5.1":"2026-05-04T00:19:50.943Z","2.5.2":"2026-05-04T18:59:19.044Z","2.5.3":"2026-06-06T23:47:48.929Z","2.5.4":"2026-06-07T00:36:56.250Z","2.5.5":"2026-06-12T14:30:12.560Z","2.5.6":"2026-06-13T12:26:54.487Z","2.5.7":"2026-06-13T15:56:53.578Z","2.5.8":"2026-06-13T16:42:15.013Z","2.5.9":"2026-06-13T17:19:18.509Z","2.5.10":"2026-06-15T09:39:25.848Z","2.5.11":"2026-06-15T10:04:40.648Z","2.5.12":"2026-06-17T11:36:19.512Z","2.5.13":"2026-06-17T14:07:38.623Z","2.5.14":"2026-06-17T19:12:25.061Z","2.6.0":"2026-06-24T15:26:58.783Z","2.6.1":"2026-06-26T21:15:23.529Z","2.6.2":"2026-06-28T09:59:44.455Z","2.6.4":"2026-06-28T10:44:53.726Z","2.6.5":"2026-06-28T12:35:21.614Z","2.6.7":"2026-06-28T13:40:12.059Z","2.6.8":"2026-07-02T13:29:54.067Z","2.6.9":"2026-07-03T10:16:55.778Z","2.6.10":"2026-07-03T14:44:38.111Z","2.6.11":"2026-07-03T23:00:16.580Z","2.6.12":"2026-07-04T16:41:38.544Z","2.6.13":"2026-07-06T14:14:06.634Z","2.6.14":"2026-07-06T19:01:18.082Z","2.6.15":"2026-07-07T07:56:12.119Z","2.6.16":"2026-07-07T13:54:25.557Z","2.6.17":"2026-07-08T12:16:03.603Z","2.7.0":"2026-07-16T10:18:04.045Z","2.7.1":"2026-07-25T16:47:39.512Z","2.7.2":"2026-07-25T21:26:21.148Z","2.8.0":"2026-09-18T08:53:17.943Z","2.8.1":"2026-09-22T11:27:55.440Z","2.8.2":"2026-09-30T14:06:58.058Z"},"bugs":{"url":"https://github.com/mrsladoje/sweet-search/issues"},"author":{"url":"https://panonit.com","name":"Marko Sladojevic","email":"marko@panonit.com"},"license":"Apache-2.0","homepage":"https://github.com/mrsladoje/sweet-search#readme","keywords":["sweet-search","code-search","semantic-search","lexical-search","hybrid-search","wasm","catboost","machine-learning","query-routing","claude-code","developer-tools","panonit"],"repository":{"url":"git+https://github.com/mrsladoje/sweet-search.git","type":"git"},"description":"Local code search for AI agents: six fast, purpose-built tools that return ranked answers, not raw grep. Because maybe grep isn't all you need... 🍬","maintainers":[{"name":"mrsladoje","email":"mrsladoje@gmail.com"}],"readme":"<div align=\"center\">\n\n<img src=\"assets/sweet-search-banner-pixelated.svg\" alt=\"sweet-search — local code search for AI coding agents\" width=\"100%\" />\n\n\n## **🍬 Local code search for AI coding agents 🍬**<br>\n\n\nSix fast, purpose-built tools made for *Claude Code*, *Codex* & friends 👀\n\nEvery coding agent today reaches for grep + Read by reflex. *sweet-search* challenges the narrative 😎\n\n[![npm](https://img.shields.io/npm/v/sweet-search?color=cb3837&label=npm)](https://www.npmjs.com/package/sweet-search)\n[![GitHub stars](https://img.shields.io/github/stars/mrsladoje/sweet-search?style=social)](https://github.com/mrsladoje/sweet-search/stargazers)\n[![license](https://img.shields.io/badge/license-Apache--2.0-blue)](LICENSE)\n[![node](https://img.shields.io/badge/node-%E2%89%A522-brightgreen)](package.json)\n[![platforms](https://img.shields.io/badge/platform-macOS%20%7C%20Linux-lightgrey)](#platform-support)\n[![inference](https://img.shields.io/badge/inference-100%25%20local-success)](#the-index)\n\n</div>\n\n---\n\n## ✨ Highlights\n\n<table>\n<tr>\n<td width=\"50%\" valign=\"top\">\n\n💰 **7–27% cheaper agent runs**<br>\n<sub>on 200 real engineering tasks · up to 45% fewer tool calls · solve rate statistically tied</sub>\n\n</td>\n<td width=\"50%\" valign=\"top\">\n\n⚡ **Saves your time**<br>\n<sub>faster retrieval than classic grep-and-read · reduced walltime of agentic tasks</sub>\n\n</td>\n</tr>\n<tr>\n<td width=\"50%\" valign=\"top\">\n\n🔄 **Index once, then forget it**<br>\n<sub>one command, GPU-accelerated · updates itself as you edit, uncommitted changes included</sub>\n\n</td>\n<td width=\"50%\" valign=\"top\">\n\n🔒 **100% local**<br>\n<sub>no API keys · no cloud · no Docker · your code never leaves your machine</sub>\n\n</td>\n</tr>\n</table>\n\n---\n\n## 📚 Table of Contents\n\n<table>\n<tr>\n<td width=\"22%\" valign=\"top\">\n\n**GET STARTED**\n\n[🚀 Quickstart](#-quickstart)<br>\n<sub>three commands to a searchable repo</sub>\n\n[🖥️ Platform Support](#platform-support)<br>\n<sub>macOS · Linux · WASM fallback</sub>\n\n</td>\n<td width=\"27%\" valign=\"top\">\n\n**USE IT**\n\n[🧰 The Six Tools](#-the-six-tools)<br>\n<sub>search · grep · find · semantic · trace · read</sub>\n\n[🧠 The System Prompt](#-the-system-prompt)<br>\n<sub>tuned for search and task completion</sub>\n\n</td>\n<td width=\"27%\" valign=\"top\">\n\n**UNDER THE HOOD**\n\n[🗂️ The Index](#the-index)<br>\n<sub>candle · fused kernels · cAST chunking</sub>\n\n[🔄 Incremental Indexing](#-incremental-indexing)<br>\n<sub>reconcile daemon tracks your working tree</sub>\n\n</td>\n<td width=\"24%\" valign=\"top\">\n\n**THE RECEIPTS**\n\n[📊 Benchmarks](#-benchmarks)<br>\n<sub>agent cost savings · engine speed · full-corpus MRR</sub>\n\n[🧭 Where sweet-search Fits](#-where-sweet-search-fits)<br>\n<sub>honest wins & trade-offs vs peers</sub>\n\n[🙏 Prior Art & Acknowledgements](#-prior-art--acknowledgements)<br>\n<sub>the shoulders we stand on</sub>\n\n[📄 License](#-license)<br>\n<sub>Apache-2.0</sub>\n\n</td>\n</tr>\n</table>\n\n## 🚀 Quickstart\n\n- **Requires:** Node.js 22+\n- **Runs on:** macOS (Apple silicon or Intel), Linux (x64 or ARM64), and Windows via WSL2\n\n```bash\nnpm install -g sweet-search\n\ncd your-repo\nsweet-search init     # one-time: downloads local models, wires up Claude Code\n                      #   Codex: init --codex · opencode: init --opencode\n                      #   several: init --claude --codex --opencode\nsweet-search index    # builds the index — GPU-accelerated where available\n\nsweet-search \"where do we validate JWT tokens?\"\n```\n\nThat's it. From then on, the index updates itself as you work.\n\n*Claude Code:* keep the `sweet-search` output style selected. Claude Code needs it to use sweet-search reliably. `init` turns it on for you; start a new session or run `/clear` afterwards.\n\nTo uninstall 😢:\n\n```bash\nsweet-search uninstall        # this repo only\nsweet-search uninstall --all  # everything: all repos, models, and the CLI\n```\n\n<details>\n<summary><b>Setup options & details</b></summary>\n\n<br/>\n\n```bash\nsweet-search init --wizard          # interactive: shows your hardware, recommends a model tier\nsweet-search init --profile core    # lexical-only, no model downloads (CI-friendly)\nsweet-search init --li-model edge   # compact late-interaction model for constrained machines\nsweet-search init --codex           # Codex only (per-project config, nothing under .claude/)\nsweet-search init --codex --opencode # Codex and opencode\nsweet-search init --claude --codex  # Claude Code and Codex\nsweet-search init --agents          # Claude Code plus AGENTS.md for other AGENTS.md-reading tools\nsweet-search init --no-claude --agents # streamlined AGENTS-only configuration\nsweet-search uninstall --dry-run    # preview cleanup for the current repo\n```\n\n- **Footprint:** CPU-only hosts download a few hundred MB of INT8 models; GPU hosts add ~1.2 GB of FP32 backbones (skipped automatically where they'd be useless); M3+ Macs can additionally fetch a ~3.2 GB CoreML cascade for Neural Engine acceleration. Everything lands in `~/.cache/sweet-search/models/` and is used strictly on-device.\n- **Claude Code wiring (default):** init leaves `CLAUDE.md` untouched, writes the verbatim evolved guide to `.claude/rules/sweet-search.md`, installs `.claude/output-styles/sweet-search.md`, and selects it in `.claude/settings.json`. It also registers a session-start prewarm hook and installs the `/sweet-index` skill.\n- **Output-style conflicts:** init never silently replaces another selected style. It still installs the Sweet Search style so it appears under `/config`, then emits a warning. A higher-priority `.claude/settings.local.json` selection is also detected and reported. Select `sweet-search`, then run `/clear` or restart Claude Code.\n- **Which agents:** `init` alone sets up Claude Code. `--codex` and `--opencode` set up only those agents; add `--claude` to include Claude Code too. `--agents`, `--gemini` and `--cursor` add their file to that selection (alone, they keep Claude Code). Indexing, `.sweet-search/` and `--mcp` are the same for every selection.\n- **Codex/opencode wiring:** `--codex` puts the guide and our tested base instructions in the project `.codex/config.toml` (`developer_instructions`, `model_instructions_file`); `--opencode` puts the guide, our tested prompt and a tool-description plugin under `.opencode/` (an existing `.opencode/opencode.jsonc` or commented `opencode.json` is edited in place, comments kept). Neither writes `AGENTS.md`. Codex reads a project `.codex/` layer only after you trust the project: init checks your Codex config (read only) and, if the project is not trusted, says how to trust it and keeps an old sweet-search `AGENTS.md` block until then. The Codex prewarm hook needs sweet-search installed in the project (a dev dependency); a global install skips it, and search does not need it. `--agents` still writes `AGENTS.md` for other tools.\n- **What gets indexed:** what you'd expect — `.gitignore` is respected, `node_modules`/build dirs/minified artifacts are denied, files over 1 MB skipped, with a `.sweet-search-ignore` for extra rules.\n\n### MCP and other integrations\n\nThe CLI is the default contact surface. To also register the MCP server, run\n`sweet-search init --mcp`, or add it to `.mcp.json` yourself:\n\n```jsonc\n{\n  \"mcpServers\": {\n    \"sweet-search\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"sweet-search-mcp\", \"--project-root\", \"/absolute/path/to/your/repo\"]\n    }\n  }\n}\n```\n\n- **MCP server:** 8 tools (`search`, `trace`, `read`, `read-semantic`, `index`, `health`, `repo-map`, `vocab-prewarm`), 2 resources, 2 prompts. All search tools are declared read-only and idempotent.\n- **Repo maps for sub-agents:** the `repo-map` tool returns a PageRank-ranked symbol overview that fits any token budget, for briefing a delegated agent.\n- **Vocabulary prewarm:** `sweet-search prewarm-vocab` mines your repo's real identifiers, detects code communities (Leiden), and pre-warms all three search modes, so the first semantic query of a session is already cache-warm.\n- **Committed files stay portable:** init never writes machine-specific absolute paths into committed settings files. All instruction injection is marker-delimited and reversible.\n\n### Init flags\n\n| Flag | Behavior |\n|---|---|\n| `--profile core\\|full` | Select lexical-only core or the full model-backed profile. |\n| `--li-model standard\\|edge\\|none` | Select the late-interaction model tier or disable it. |\n| `--search-reranking auto\\|on\\|off` | Control search-time late-interaction reranking. |\n| `--wizard` | Choose model and reranking settings interactively. |\n| `--verify-deep` | Load modules and verify checksums after setup. |\n| `--force` | Re-download models even when cached. |\n| `--build-coreml-cascade` | Build the optional CoreML cascade locally on eligible Apple silicon. |\n| `--skip-coreml-cascade` | Skip fetching or building the CoreML cascade. |\n| `--skip-dedup` | Skip near-duplicate-detection readiness checks. |\n| `--skip-cuda` | Disable the CUDA backend even when available. |\n| `--skip-prewarm-hook` | Do not register the Claude/Codex session-start prewarm hook. |\n| `--agents` | Also write the verbatim guide to `AGENTS.md` (not needed for Codex or opencode). |\n| `--codex` | Set up Codex only, in `.codex/`: guide, our base instructions, and the prewarm hook with its feature flag (project-local installs). |\n| `--opencode` | Set up opencode only, in `.opencode/`: guide, our prompt, tool-description plugin, grep and explore off. |\n| `--claude` | Include Claude Code together with `--codex` / `--opencode`. |\n| `--codex-enable-global-hooks` | Advanced opt-in: also enable hooks in the user-level Codex config. |\n| `--no-claude` | Write nothing under `.claude/`; combine with `--agents` for AGENTS-only setup (`--codex` / `--opencode` already imply it unless `--claude` is set). |\n| `--gemini` | Also write `GEMINI.md` (sharing `AGENTS.md` when enabled). |\n| `--cursor` | Also write `.cursor/rules/sweet-search.mdc`. |\n| `--symlink-instruction-files` | Explicitly use the default `GEMINI.md` symlink behavior. |\n| `--no-symlink-instruction-files` | Use a regular `GEMINI.md` import instead of a symlink. |\n| `--no-agent-instructions` | Skip all agent policy and Claude output-style installation. |\n| `--mcp` | Also register the project MCP server; the CLI remains the default contact surface. |\n| `--no-cli` | With `--mcp`, give agents the MCP-specific guide and remove the CLI-specific Claude output style. |\n| `--enforce-tools` | Optional strict Claude mode: deny native Grep and hint native Read. |\n| `--verbose`, `-v` | Print additional setup diagnostics. |\n| `--help`, `-h` | Show the complete CLI help. |\n\n### Uninstall flags and cleanup\n\n| Flag | Behavior |\n|---|---|\n| `--all` | Remove sweet-search from this machine: every repo where `init` ran, the shared model cache, and the npm package. |\n| `--dry-run` | Preview all detected removals. |\n| `--force` | Skip the confirmation prompt. |\n| `--help`, `-h` | Show uninstall help. |\n\n`sweet-search uninstall` removes Sweet Search's rule, output style and active\nselection, AGENTS/GEMINI/Cursor instruction blocks, project hooks and skill,\nMCP registration, enforcement/reminder artifacts, and `.sweet-search/` from the\ncurrent repo. The shared model cache stays for your other repos. It\npreserves user-authored content. Generic Codex `[features] hooks = true` flags\nare left in place because other tools may share them, and an otherwise-empty\nsettings file may remain as `{}`.\n\n</details>\n\n## 📊 Benchmarks\n\nWe measure sweet-search four ways — from how much it helps a real agent down to raw engine throughput:\n\n<table>\n<tr>\n<td width=\"50%\" valign=\"top\">\n\n🤖 **① [Code-retrieval](#bench-code-retrieval)** *(agent-in-the-loop)*<br>\n<sub>Does it make a real coding agent **cheaper and more useful** when it searches your repo? Paired against each model's own grep-and-read loop.</sub>\n\n</td>\n<td width=\"50%\" valign=\"top\">\n\n🛠️ **② [Task-completion](#bench-task-completion)** *(frozen held-out)*<br>\n<sub>Does cheaper, denser context **compound** across multi-step engineering tasks? 200 SWE-rebench tasks, three harnesses, 1,200 paired rollouts.</sub>\n\n</td>\n</tr>\n<tr>\n<td width=\"50%\" valign=\"top\">\n\n📄 **③ [Paper-type IR](#bench-paper-type)** *(academic)*<br>\n<sub>The standard NL→code retrieval suites (GCSN, M2CRB, CoSQA…), full-corpus MRR@10.</sub>\n\n</td>\n<td width=\"50%\" valign=\"top\">\n\n⚡ **④ [Engine speed](#bench-engine-speed)**<br>\n<sub>Raw systems numbers — grep throughput, query latency, rerank kernels, HNSW.</sub>\n\n</td>\n</tr>\n</table>\n\n---\n\n<a id=\"bench-code-retrieval\"></a>\n### 🤖 1. Code-retrieval benchmarks — *the agent-in-the-loop test*\n\nOne variable changes: **how the agent searches a real repository.**\n\n- 🍬 **sweet-search:** the model gets our [tuned system prompt](#-the-system-prompt) and search tools.\n- 🐌 **Native:** the same model uses its built-in grep-and-read loop.\n\nSame tasks, same judge, paired probe-for-probe.\n\n<div align=\"center\">\n\n<img src=\"assets/code-retrieval-stats.svg\" alt=\"Five sealed model-by-harness profiles comparing sweet-search with native grep-and-read on cost, tool calls, useful content, and accuracy\" width=\"100%\" />\n\n<sub>sealed vault · exact paired results · five representative profiles · full 11-cell matrix and held-out/OOD replication below</sub>\n\n</div>\n\n**The headline, in four claims:**\n\n- 💰 **Cheaper where the agent thrashes** — up to **−34%** realized cost on Codex; **−18 to −32%** across the GPT-5.5 / opencode / bare-API harnesses.\n- 🔧 **Fewer round-trips** — up to **−56%** tool calls, significant on **9 of 11** cells.\n- ✨ **More useful per response** — **+0.18 to +0.31** on a 5-dimension usefulness score, and *still* denser when length-matched (significant on **8 of 11** cells).\n- 🎯 **Accuracy held — and lifted on the weak** — a statistical tie on flagship models (saturated at 0.94–0.99), and **+3 pp** (up to **+8 pp** out-of-distribution) on weaker models like GLM-5.1 and DeepSeek.\n\n<details>\n<summary><b>📋 Full per-harness results & how it's measured</b></summary>\n\n<br/>\n\nThe win is **harness-adaptive**: where the native loop is disciplined (Claude Code) it shows up as *denser, more useful context per token*; where it thrashes (Codex floods 30k+ tokens of its own grep output into context) it shows up as a *large cost and tool-call cut*. Either way, **final-answer accuracy never significantly regresses**.\n\n| 🧰 Native agent harness | 💰 Realized cost | 🔧 Tool calls | ✨ Useful content / response | 🎯 Final accuracy |\n|---|---:|---:|---:|:--|\n| 🤖 **Codex** (GPT-5.5) | **−30 to −34%** | **−44 to −56%** | +0.06 → +0.17 ↑ | tie *(saturated)* |\n| 🐚 **opencode** (GPT-5.5 / GLM-5.1) | **−18 to −22%** | −15 to −49% | **+0.23 to +0.31** ↑ | tie |\n| 🔌 **bare API** (GPT-5.5 / GLM / DeepSeek) | −15 to −32% ᵃ | −15 to −33% | +0.08 to +0.24 ↑ | tie · **+3 pp on weak models** |\n| 🟣 **Claude Code** (Sonnet / Opus) | −10% to +14% ᵇ | −5 to −33% | +0.18 to +0.29 ↑ | tie |\n\n<sub>↑ \"Useful content / response\" is the per-response delta on a 5-dimension usefulness score (answer-grounding · workable-code · navigability · edit-locality · sufficiency), 0–1 scale. \"tie\" = final-answer correctness statistically indistinguishable (saturated in the 0.94–0.99 band on flagships).<br>ᵃ the two cheapest bare models cost fractions of a cent either way (GLM +27% of $0.008; DeepSeek −15% of $0.004). ᵇ Opus −5/−10%; Sonnet +8–14%, which is ≈1¢ on a flat-rate subscription for a richer answer.</sub>\n\n**Denser, not just longer.** The usefulness lift survives **length-matching** — comparing sweet-search and native responses of *equal token length*, sweet-search's content is significantly higher on **8 of 11** cells. The validated single-number usefulness composite (grounding × content × density) is significant on **all 11** sealed cells.\n\n- **What's being compared:** the installed `sweet-search` agent prompt + tools vs. the *same model* using only its built-in file-reading and shell-grep tools. Not a different model — the same model, with and without sweet-search.\n- **Design:** 11 model×harness cells. **Sealed vault** (n=60/arm, the pre-registered primary) opened once; plus **held-out** (n=30) and **out-of-distribution** (n=40) sets for generalization. Stratified, fixed-seed splits.\n- **Judging:** 3-judge panel (DeepSeek-V4-flash + Gemini-3.1-flash-lite + MiniMax-M2.7), paired by probe, 20k-sample bootstrap CIs, **Benjamini–Hochberg FDR** multiplicity correction across each metric family. We report family-level survival counts, never a single cherry-picked cell.\n- **What survives FDR (vault):** useful-content **10/11**, density-composite **11/11**, length-matched content **8/11**, fewer-tool-calls **9/11**. Generalization (held-out + OOD): content **17–18/20**, fewer calls **14/20**.\n- **The token fact that drives everything:** sweet-search's footprint is nearly constant (~1.3k–3.3k tokens) because the tool responses are capped; native's footprint is whatever the model decides to grep — up to **37k tokens** on Codex. That single fact is what drives the cost and tool-call gaps.\n- **Honest caveats we keep attached:** (1) accuracy **ties** on flagship models — it is *not* an accuracy win there, it's saturated; the accuracy gains are real only on weaker models. (2) The two weakest cells for *length-matched* density (Codex-low, DeepSeek) are correct-sign but underpowered — Codex's responses are so token-divergent that too few equal-length pairs exist to reach significance, and DeepSeek is simply under-powered. Those are honest non-victories, not wins.\n- Full methodology and per-cell tables: [`docs/PHASE7.md`](docs/PHASE7.md).\n\n</details>\n\n---\n\n<a id=\"bench-task-completion\"></a>\n### 🛠️ 2. Task-completion benchmarks — *does it compound?*\n\nRetrieval quality is necessary but not sufficient. Cheaper, denser context only matters if it\n**compounds across a real, multi-step engineering task** — find the code, understand it, change it,\ndon't break anything. This suite measures exactly that: **resolve-rate and cost on SWE-rebench-style\nmulti-file tasks**, sweet-search-wired vs. the same model's native loop.\n\nOne variable changes, again: **how the agent searches.** Same model, same tasks, same grader, paired\nper task. The harnesses run **as they ship** — no tools disabled, no delegation switched on or off.\n\n<div align=\"center\">\n\n<img src=\"assets/task-completion-stats.svg\" alt=\"Three harness profiles comparing sweet-search with native grep-and-read on task-completion cost, resolve rate, subagent calls and tool calls\" width=\"100%\" />\n\n<sub>frozen held-out set · 200 tasks · 1 rep · 1,200 rollouts · gpt-5.6-luna · opened once</sub>\n\n</div>\n\n**The headline, honestly:**\n\n- 💰 **Cheaper on every harness, by 2% to 31%** — measured on the tasks **both arms solved**, so it's\n  like-for-like and not sweet giving up early on hard tasks.\n- 🤝 **Resolve rate is a tie, and sweet is slightly behind** — −3, −6 and −7 tasks out of 200. None\n  significant (McNemar p = 0.66, 0.18, 0.12). **This is not a resolve-rate win and we don't claim one.**\n- 🪆 **The saving scales with how much the harness delegates** — Claude Code's native arm fired\n  **1,191 subagent requests against sweet-search's 150**, and that gap *is* the 31%. Codex has no\n  subagent tier and shows 2.1%.\n- 🧭 **Fewer tool calls where it matters** — 19.6 vs 35.8 on Claude Code, 19.0 vs 24.4 on opencode.\n\n<details>\n<summary><b>📋 Full per-harness results & how it's measured</b></summary>\n\n<br/>\n\n| 🧰 Harness | 💰 Cost, same tasks solved | 💰 Cost, all tasks | 🎯 Resolved | 🪆 Subagent requests | 🔧 Tool calls |\n|---|---:|---:|:--|---:|---:|\n| 🟣 **Claude Code** | **−31.0%** ᵃ | −27.4% | 66 / 69 · *p=0.66* | **150 / 1,191** | 19.6 / 35.8 |\n| 🐚 **opencode** | **−7.7%** | −11.5% | 65 / 71 · *p=0.18* | not instrumented | 19.0 / 24.4 |\n| 🤖 **Codex** | **−2.1%** ᵇ | −6.8% | 72 / 79 · *p=0.12* | none (no subagent tier) | 10.6 / 8.8 |\n\n<sub>All figures sweet-search / native. ᵃ Claude Code is the only leg priced from a **real OpenRouter\ninvoice** (10,371 generation records, 0 unresolved), sidechain-**inclusive**, because its `rows.json`\nnulls cost arm-asymmetrically and would reverse the sign. ᵇ Codex ran on a ChatGPT subscription, so\n**nothing was billed** — its dollars are list-price-equivalent, not an invoice. opencode is\nlist-price ledger with 0 nulls on both arms.</sub>\n\n**The mechanism, stated plainly.** Sweet-search's main-loop spend is close to native's (−6.1% on\nClaude Code). The gap is delegation: native spawns subagents to explore a repo it can't navigate\ncheaply, and each one is a fresh context that gets billed. Better retrieval removes the reason to\ndelegate. That's why the same product shows 31% on a harness with a subagent tier and 2% on one\nwithout — and why we quote a **range, not one number**.\n\n- **What's compared:** the installed `sweet-search` agent prompt + tools vs. the *same model* using\n  its built-in file-reading and shell-grep loop. The sweet-search system prompt says nothing about\n  subagents or delegation — it only routes code search through `ss-*`.\n- **Design:** 200 tasks × 2 arms × 1 rep × 3 harnesses = **1,200 rollouts**. Tasks drawn from\n  SWE-rebench V1+V2, admitted only if the official gold patch grades FULL in the exact run\n  environment (a \"green ledger\" gate), and re-verified per run.\n- **Isolation:** every rollout runs in its own mount/PID/network jail with an SNI-allowlist egress\n  proxy — the agent can reach the model API and nothing else. No GitHub, no package registries.\n  Escape attempts are counted, not assumed to be zero.\n- **Grading:** the official SWE-bench/SWE-rebench Docker evaluator, `FAIL_TO_PASS` +\n  `PASS_TO_PASS`. A patch that produces no test evidence is marked **ungradeable**, never scored\n  zero. Final run: **0 ungradeable, 0 zero-call rollouts, 0 run errors** across all 1,200.\n- **Honest caveats we keep attached:** (1) **1 rep** — a single cell on this bench has been observed\n  swinging 3/3 → 1/3 → 2/3 across identical runs, so the solve column is a point estimate.\n  (2) **37 of 199 stamped tasks (18.6%) are naming lotteries** — the hidden test needs an identifier\n  the reference patch invented, which no amount of retrieval can recover. (3) Three legs, three cost\n  bases, only one a real invoice — **do not pool the dollar figures**. (4) The three solve deltas all\n  lean the same way (−3, −6, −7); individually noise, collectively a hint that sweet-search may cost\n  a little accuracy, and we'd rather say so than round it to zero.\n\n</details>\n\n---\n\n<a id=\"bench-paper-type\"></a>\n### 📄 3. Paper-type retrieval benchmarks — *academic NL→code IR*\n\nEvery number below is the **`ss-search` pipeline end-to-end** — the same binary you install — run\nagainst the **full benchmark corpus** (no 99-distractor shortcuts), **zero-shot** (we never\nfine-tune on these tasks). Where a benchmark's queries are docstrings, we strip the docstring out of the\nindexed code so the query can't trivially match itself — the standard retrieval protocol.\n\nWe're SOTA in June 2026 on 3/4 attempted benchmarks at HARDER settings (running on full pool) than most other attempts!\n\n| 📚 Benchmark | 🔍 What it tests | # Queries | 📂 Pool | 🎯 MRR@10 | 🏆 SOTA? |\n|-----------|---------------|---------:|---------:|--------:|--------:|\n| 🌐 **GenCodeSearchNet** | NL→code, 6 languages | 6,000 | full 6,000 | **86.6** | YES ✅ |\n| 🐍 **CoSQA** | web queries → Python | 500 | full 6,267 | **65.5** | ✅ (zero-shot) |\n| 🗺️ M2CRB | multilingual NL→code (ES/PT/DE/FR → Py/Java/JS) | 5,795 | full 5,795 | 54.0 | YES ✅ |\n| 🛡️ AdvTest | adversarial, identifier-obfuscated Python | 19,210 | full 19,210 | 51.4 | NO ❌ |\n\n<sub>SOTA = best result we can find in the published literature as of June 2026; cross-metric/protocol comparisons are spelled out per benchmark below.</sub>\n\n#### 🌐 GenCodeSearchNet → `86.6` &nbsp;·&nbsp; 🏆 SOTA in June 2026\n- **The BEST PUBLISHED number we can find, anywhere**\n- The benchmark's own paper caps at **MRR ≤ 0.42** for fine-tuned baselines (≤ 0.10 cross-lingual); even zero-shot OpenAI Ada-2 reaches 0.79–0.94 — but **all of it against a tiny 99-distractor pool**.\n- We score **0.866 against the entire 6,000-document corpus** — *a strictly harder setting* — and **zero-shot**. 🔥\n\n#### 🐍 CoSQA → `65.5` &nbsp;·&nbsp; 🥇 Zero-shot SOTA in June 2026\n- **Beats EVERY PUBLISHED zero-shot model**\n- Canonical setup: 500 real web queries → the fixed **6,267-code database**, no fine-tuning.\n- Clears the strongest zero-shot results out there — CodeSage-Large `47.5` · OpenAI text-embedding-3-large `55.4` · OASIS `55.8` — and goes **toe-to-toe with *fine-tuned* CodeBERT / GraphCodeBERT** (64.7 / 67.5). 💪\n- <sub>CoSQA has known label noise, so we read the absolute height with a pinch of salt.</sub>\n\n#### 🗺️ M2CRB → `54.0` &nbsp;·&nbsp; 🏆 SOTA in June 2026\n- **the BEST PUBLISHED number we can find, anywhere** — and zero-shot\n- 🇪🇸 Spanish · 🇵🇹 Portuguese · 🇩🇪 German · 🇫🇷 French → Python / Java / JavaScript.\n- The paper's best — a CodeBERT **fine-tuned on the task** — reaches **52.7 auMRRc**, a metric that *averages over easier, smaller pools* (so `auMRRc ≥ full-pool MRR` for any model). Our **54.0 is full-pool MRR@10** over all 5,795 functions in one pool — a **strictly harder** measure, cleared with **no fine-tuning**. 🔥\n\n#### 🛡️ AdvTest → `51.4` &nbsp;·&nbsp; 🧪 **our honest worst case — and we publish it anyway**\n- Adversarial obfuscation (`def Func(arg_0):`) deletes the lexical + graph signals our hybrid feeds on — yet we still **beat the classic fine-tuned baselines** (CodeBERT `27` · GraphCodeBERT `35` · UniXcoder `41`), and our stack *still lifts our own encoder ~3pp even here*.\n- 🔍 **Full transparency:** we could **not** reproduce the often-cited `59.5` for the bare CodeRankEmbed encoder — the *reference FP32 model* scores **54.7** on our leak-free corpus, our shipped INT8 build **51.4**. The gap is stricter preprocessing + INT8 quantization, **not** the retrieval pipeline. We report exactly what we measured.\n\n<details>\n<summary><b>Methodology, protocol & honesty notes</b></summary>\n\n<br/>\n\n- **Reproduction:** result artifacts live in [`eval/results/`](eval/results/); rerun via `eval/run_all.js`. The canonical full-pool loaders are in `eval/download_data.py`.\n- **Full corpus, not distractors.** Published baselines for GCSN- and CoSQA-style benchmarks typically rank the gold against 99 sampled distractors; every number here ranks against the benchmark's *full* corpus (6k–19k candidates) — strictly harder.\n- **Zero-shot + docstring-stripped.** We never fine-tune on these tasks. For docstring-derived benchmarks (AdvTest, M2CRB) we strip the docstring from the indexed code — otherwise the NL query matches itself verbatim (a no-strip AdvTest run scores a meaningless 0.98). This is the standard protocol; it is also why our AdvTest is lower than naïve setups that leave the docstring in.\n- **Dev/held-out split.** Our ranking work iterates against a fixed dev split of each benchmark (e.g. GCSN: 600 dev + 400 held-out per language, stratified, seed=42) and treats the remainder as held-out, inspected aggregate-only at milestones. The table figures are full-corpus runs — they include the dev portion we tuned against; a held-out-only breakdown ships with the next results refresh.\n- **What we deliberately don't claim yet.** CoIR (official metric NDCG@10 over per-subtask corpora up to ~1M docs), CoSQA+ (multi-positive, MAP-primary), and CLARC (per-group pools) use protocols and metrics our single-pool MRR@10 harness doesn't currently match. Rather than publish apples-to-oranges numbers, we omit them; faithful per-subtask CoIR (NDCG@10) runs are queued.\n- **M2CRB** — the paper's metric is *auMRRc* (area under the MRR-vs-pool-size curve; best published **52.7**, fine-tuned). Because that area averages over easier small pools, `auMRRc ≥ full-pool MRR` for any model — so our **54.0 full-pool MRR@10** (all 5,795 functions, zero-shot) clears their best on a strictly harder measure. No one publishes a plain full-corpus MRR@10 on M2CRB, so ours is the best available.\n- **AdvTest honesty note.** We could not reproduce the commonly-cited 59.5 for the bare CodeRankEmbed encoder on our corpus: the reference FP32 model scores 54.7 on our leak-free, docstring-stripped, full-19,210 setup, and our shipped INT8 build 51.4. We report our measured numbers and the reference check rather than the leaderboard figure.\n- **Honesty corner:** CrossCodeEval — cross-file *completion-context* retrieval, a different task than NL search — sits at 0.12. We don't optimize for it and report it anyway.\n\n</details>\n\n---\n\n<a id=\"bench-engine-speed\"></a>\n### ⚡ 4. Engine speed — *systems benchmarks, measured in-repo*\n\n<div align=\"center\">\n\n**10.2×** ripgrep's median grep &nbsp;·&nbsp; **2.9 ms** warm queries &nbsp;·&nbsp; **47×** MaxSim kernels &nbsp;·&nbsp; **−33%** HNSW search p50\n\n</div>\n\n| ⚙️ What | 📈 Result | 📄 Source |\n|------|--------|--------|\n| ⚡ Indexed grep vs ripgrep | **10.2× faster** at the median (8.5–17.7× across 5 repos, 353 realistic queries, 1 ms p50 — identical match counts on every query) | [`docs/GREP_INDEXING_STRATEGY.md`](docs/GREP_INDEXING_STRATEGY.md) |\n| ⏱️ Warm query latency (native CLI) | **2.9 ms** warm · 108 ms cold | [`docs/INIT_STRATEGY.md`](docs/INIT_STRATEGY.md) |\n| 🧮 MaxSim rerank kernels | **1.26 s → 27 ms** for a 231-candidate pass (47× native Rust; 16× WASM SIMD) | [`docs/MAXSIM_OPTIMIZATION.md`](docs/MAXSIM_OPTIMIZATION.md) |\n| 🧠 HNSW tuning for code | **−33%** search p50, **+5.9 pp** recall@200 | [`docs/HNSW_APPROACH.md`](docs/HNSW_APPROACH.md) |\n| 💾 Indexing memory | peak JS heap **785 MB → 213 MB** | [`docs/DISK_FLUSHING_STRATEGY.md`](docs/DISK_FLUSHING_STRATEGY.md) |\n| 🍏 CoreML cascade (M3 Max) | **18% faster** full indexing vs the Metal baseline | [`docs/INIT_STRATEGY.md`](docs/INIT_STRATEGY.md) |\n\n---\n\n## 🧰 The Six Tools\n\nSix tools that share one index. Your agent picks the one that fits the question.\n\n<table>\n<tr>\n<td align=\"center\" valign=\"top\" width=\"33%\">\n<a href=\"#tool-ss-search\"><img src=\"assets/tools/ss-search.svg\" width=\"80\" alt=\"ss-search icon\" /></a><br/>\n<b>1. <a href=\"#tool-ss-search\"><code>ss-search</code></a></b><br/>\nsearch by meaning\n</td>\n<td align=\"center\" valign=\"top\" width=\"33%\">\n<a href=\"#tool-ss-grep\"><img src=\"assets/tools/ss-grep.svg\" width=\"80\" alt=\"ss-grep icon\" /></a><br/>\n<b>2. <a href=\"#tool-ss-grep\"><code>ss-grep</code></a></b><br/>\nexact text, fast\n</td>\n<td align=\"center\" valign=\"top\" width=\"33%\">\n<a href=\"#tool-ss-find\"><img src=\"assets/tools/ss-find.svg\" width=\"80\" alt=\"ss-find icon\" /></a><br/>\n<b>3. <a href=\"#tool-ss-find\"><code>ss-find</code></a></b><br/>\na pattern, ranked by meaning\n</td>\n</tr>\n<tr>\n<td align=\"center\" valign=\"top\" width=\"33%\">\n<a href=\"#tool-ss-semantic\"><img src=\"assets/tools/ss-semantic.svg\" width=\"80\" alt=\"ss-semantic icon\" /></a><br/>\n<b>4. <a href=\"#tool-ss-semantic\"><code>ss-semantic</code></a></b><br/>\nsearch inside one file\n</td>\n<td align=\"center\" valign=\"top\" width=\"33%\">\n<a href=\"#tool-ss-trace\"><img src=\"assets/tools/ss-trace.svg\" width=\"80\" alt=\"ss-trace icon\" /></a><br/>\n<b>5. <a href=\"#tool-ss-trace\"><code>ss-trace</code></a></b><br/>\nwho calls what\n</td>\n<td align=\"center\" valign=\"top\" width=\"33%\">\n<a href=\"#tool-ss-read\"><img src=\"assets/tools/ss-read.svg\" width=\"80\" alt=\"ss-read icon\" /></a><br/>\n<b>6. <a href=\"#tool-ss-read\"><code>ss-read</code></a></b><br/>\nread files from disk\n</td>\n</tr>\n</table>\n\n---\n\n<a id=\"tool-ss-search\"></a>\n### <img src=\"assets/tools/ss-search.svg\" width=\"40\" align=\"center\" alt=\"\" /> 1. `ss-search`: hybrid code search\n\n<img src=\"assets/tools/ss-search-io.svg\" alt=\"ss-search takes a plain-English question and returns ranked, whole code blocks\" width=\"100%\" />\n\nA hybrid search pipeline with late interaction reranking that returns actual code blocks.\n\nSOTA on [3 of 4 academic code-search benchmarks](#bench-paper-type).\n\n```mermaid\nflowchart TD\n    Q([\"🔍  natural-language query\"]) --> ROUTE{{\"🧭 WASM CatBoost router · lexical / hybrid\"}}\n\n    ROUTE --> BM[\"📑 <b>BM25F</b><br/>field-weighted FTS5\"]\n    ROUTE --> EMB[\"🔢 <b>CodeRankEmbed</b><br/>dense query embedding\"] --> ANN\n\n    subgraph ANN [\"🧬 three-stage ANN cascade\"]\n        direction LR\n        BIN[\"binary <b>HNSW</b><br/>Hamming · ~100µs\"] --> INT[\"INT8<br/>rescore\"] --> FL[\"float32<br/>mmap sidecar\"]\n    end\n\n    BM  --> FUSE\n    ANN --> FUSE\n    FUSE[\"🔀 <b>CCFusion</b><br/>convex combo · RRF fallback\"] --> ROW1\n\n    subgraph ROW1 [\" \"]\n        direction LR\n        IAR[\"⚓ <b>IAR</b><br/>exact-symbol injection\"] --> INTENT[\"🎯 intent rerank<br/>demote docs · tests · config\"]\n    end\n\n    ROW1 --> ROW2\n\n    subgraph ROW2 [\" \"]\n        direction LR\n        GRAPH[\"🕸️ graph expansion<br/>typed edges · 1–2 hops · <b>PathRAG</b>\"] --> MAXSIM[\"🧮 <b>Late-Interaction Rerank</b><br/>⚡ native Rust MaxSim kernel\"] --> OUT([\"🏁 <b>self-contained code blocks</b><br/>whole functions · 3k/8k/12k budget\"])\n    end\n\n    classDef io    fill:#fde68a,stroke:#f59e0b,color:#000;\n    classDef out   fill:#bbf7d0,stroke:#15803d,color:#000,stroke-width:3px;\n    classDef route fill:#e0e7ff,stroke:#818cf8,color:#000;\n    classDef lex   fill:#dbeafe,stroke:#60a5fa,color:#000;\n    classDef fuse  fill:#f3e8ff,stroke:#c084fc,color:#000;\n    classDef rank  fill:#ffe4e6,stroke:#fb7185,color:#000;\n    classDef emb   fill:#ecfeff,stroke:#22d3ee,color:#000;\n\n    class Q io;\n    class OUT out;\n    class ROUTE route;\n    class EMB emb;\n    class BM,BIN,INT,FL lex;\n    class FUSE,IAR fuse;\n    class INTENT,GRAPH,MAXSIM rank;\n\n    style ANN  fill:#eff6ff,stroke:#93c5fd,color:#000;\n    style ROW1 fill:none,stroke:none;\n    style ROW2 fill:none,stroke:none;\n```\n\n<sub>↑ The diagram shows the **hybrid** route. A pure keyword query or a literal file path goes from the router straight to BM25F and skips the vector search and fusion.</sub>\n\n<details>\n<summary><b>🗺️ Diagram explained</b></summary>\n\n<br/>\n\n| Stage | What it actually does |\n|-------|-----------------------|\n| 🧭 **Route** | **WASM-exported CatBoost** · lexical / hybrid · **~10 µs** routing · low-confidence → max-recall hybrid |\n| 🧬 **Retrieve** | • **Lexical:** **BM25F** over field-weighted FTS5 (name 10× · signature 5× · alias 4× · doc 1×)<br/>• **Embed:** query vectorized by the local **CodeRankEmbed** model (swappable for Voyage / Jina / Codestral)<br/>• **Vector cascade:** binary **HNSW** (Hamming, 64-byte, ~100 µs) → INT8 rescore → exact float32 from a memory-mapped sidecar |\n| 🔀 **Fuse** | • **CCFusion:** convex-combine both rankings · per-route weights · quantile-normalized<br/>• **MMR** (λ=0.9) diversity pass over the fused list<br/>• auto **RRF** (k=60) fallback on degenerate score distributions |\n| ⚓ **Anchor** | • **IAR** (Identifier Anchor Retrieval): a real symbol in the query fires an exact-name code-graph lookup that injects that entity, even when the encoder ranked it too low |\n| 🎯 **Intent Rerank** | • demote docs / tests / config when you want implementation<br/>• log-scaled call-site boosts surface the most-referenced function |\n| 🕸️ **Graph Expansion** | • typed-edge walks (`imports`/`extends`/`calls`/`uses`) · adaptive 2-hop on the AST graph · edges picked by intent<br/>• **PathRAG** flow pruning + degree normalization → hubs can't dominate |\n| 🧮 **Late interaction Rerank** | • Query embedded per-token by **LateOn-Code** (149M; a 17M **edge** variant auto-selected on low-RAM hosts)<br/>• **MaxSim** against the pre-indexed quantized token vectors<br/>• native Rust+Rayon MaxSim kernel ⚡ · WASM-SIMD fallback (1.26 s → 27 ms on a 231-candidate rerank) |\n| 📦 **Package** | • entity-aware expansion → whole functions (imports, docstrings, decorators)<br/>• same-file overlap demotion → diverse, non-overlapping spans<br/>• **symbol-family completion** (agent mode): generated/width families surface as a compact indexed manifest instead of truncating silently, inside the same budget<br/>• auto-selected **3k / 8k / 12k** token budget |\n\n</details>\n\n<details>\n<summary><b>🌶️ Extra spice: what the diagram leaves out</b></summary>\n\n<br/>\n\n- 🧠 **A denser vector graph than most.** Our own binary HNSW raised recall@200 from 80.6% to 86.5% and got about a third faster.\n- ⚡ **Native reranking.** The MaxSim math runs in Rust on all CPU cores, 47× faster than plain code.\n- 📦 **A small index.** Token vectors are packed into 4 bits, which makes that index 3.4× smaller.\n- 🎛️ **Quality scores.** Each chunk is scored on test proximity, git recency, call-graph centrality, comments and complexity. Production code rises and old fixtures sink.\n- 🛟 **A reranker we switched off.** We built a cross-encoder too. It was 3× slower and did not beat MaxSim, so it ships disabled.\n\nAlso available as `sweet-search \"<query>\"` on the CLI and the `search` MCP tool. Use `--full` or `--xl` for a bigger answer, and `--mode lexical|semantic|hybrid|pattern` to pick a mode. Full details: [vector index](docs/HNSW_APPROACH.md) · [quantization](docs/LI_QUANTIZATION_STRATEGY.md).\n\n</details>\n\n---\n\n<a id=\"tool-ss-grep\"></a>\n### <img src=\"assets/tools/ss-grep.svg\" width=\"40\" align=\"center\" alt=\"\" /> 2. `ss-grep`: grep, minus every wasted millisecond\n\n<img src=\"assets/tools/ss-grep-io.svg\" alt=\"ss-grep takes the regex session.*expired and returns every file:line hit, with the match highlighted\" width=\"100%\" />\n\n### ⚡ 10.2× faster than ripgrep\n> Median, end to end, on 353 real queries across 5 repos (8.5–17.7× per repo, about 1 ms per query). Same match count as ripgrep on every query.\n\n<table><tr><td>\n\n**What makes it fast**\n\n- 🧩 **Sparse n-gram index.** Grams are sized to your repo's own text, so each one points to few files. The idea comes from [Cursor's fast regex search](https://cursor.com/blog/fast-regex-search) and [GitHub's Blackbird](https://github.blog/engineering/architecture-optimization/the-technology-behind-githubs-new-code-search/).\n- 🎯 **Literal filter.** The fixed text is pulled out of the regex, and SIMD intersects the file lists. Only 0.1–5% of files see the real regex.\n- 🦀 **All in-process.** Rust regex runs on all cores inside the warm daemon. No subprocess, no pipes, no JSON parsing.\n\n</td></tr></table>\n\n<img src=\"assets/tools/ss-grep-ngrams.svg\" alt=\"For the regex session.*expired, trigrams give 10 common pieces. Sparse n-grams give 2 rare pieces, so far fewer files are left to check.\" width=\"100%\" />\n\n<details>\n<summary><b>More</b></summary>\n\n<br/>\n\n- Method, per-repo results and the optimization log: [`docs/GREP_INDEXING_STRATEGY.md`](docs/GREP_INDEXING_STRATEGY.md).\n- A regex with no fixed text (for example `\\w+\\d`) cannot use the index, so it scans every indexed file.\n\n</details>\n\n---\n\n<a id=\"tool-ss-find\"></a>\n### <img src=\"assets/tools/ss-find.svg\" width=\"40\" align=\"center\" alt=\"\" /> 3. `ss-find`: grep that knows what you meant\n\n<img src=\"assets/tools/ss-find-io.svg\" alt=\"ss-find takes a query plus a regex. The regex finds 4 matches in file order, each gets a meaning score, then they slide into order, best first.\" width=\"100%\" />\n\n### 🎯 Exact matches, semantically reranked\n> The idea comes from LightOn's [ColGrep](https://github.com/lightonai/next-plaid/tree/main/colgrep). We rebuilt it on the `ss-grep` index, with our own MaxSim kernel.\n\n<table>\n<tr><td colspan=\"2\"><b>What makes it fast</b></td></tr>\n<tr>\n<td width=\"50%\" valign=\"top\">\n\n**⚡ Built on `ss-grep`**\n\n- The regex runs on the sparse n-gram index.\n- That index makes `ss-grep` 10.2× faster than ripgrep.\n- Your query is turned into embeddings at the same time.\n\n</td>\n<td width=\"50%\" valign=\"top\">\n\n**🦀 Our own MaxSim kernel**\n\n- Rust + SIMD, on all cores.\n- Code embeddings are stored at index time, so no model reads your code at query time.\n- 231 matches: 1.26 s in plain JS → 27 ms.\n- July rewrite: another 4–6× faster.\n\n</td>\n</tr>\n</table>\n\n<details>\n<summary><b>More</b></summary>\n\n<br/>\n\n- **Ranking:** on 60 pattern queries, MRR@10 is 0.45. Grep order gets 0.11, and search without the regex gets 0.30.\n- **Agent eval (April 2026):** Claude Sonnet 4.6 answered 30 fastify questions. Versus grep + read, follow-up reads fell from 4.9 to 0 and tokens fell 25.4%, at equal quality (blind Claude Opus 4.6 judge). The prompt was tuned on these same 30 questions.\n- Needs the late-interaction index, which is built by default.\n- Also available as `sweet-search --mode pattern` and as the `regex` argument of the MCP `search` tool.\n- Kernel details: [`docs/MAXSIM_OPTIMIZATION.md`](docs/MAXSIM_OPTIMIZATION.md).\n\n</details>\n\n---\n\n<a id=\"tool-ss-semantic\"></a>\n### <img src=\"assets/tools/ss-semantic.svg\" width=\"40\" align=\"center\" alt=\"\" /> 4. `ss-semantic`: hybrid search inside one file\n\n<img src=\"assets/tools/ss-semantic-io.svg\" alt=\"ss-semantic takes src/auth/session.ts plus the question how is the cookie expiry set. A map of the 140-line file marks 3 spans, and the output lists those 3 spans with line numbers, best first.\" width=\"100%\" />\n\n### 📍 Ask one file a question\n> You already know the file. `ss-semantic` gives you the code spans that best match your query, each with its line range. The rest of the file stays out of your context.\n\n<table>\n<tr><td colspan=\"2\"><b>How it picks the lines</b></td></tr>\n<tr>\n<td width=\"50%\" valign=\"top\">\n\n**🧮 Words and meaning, one ranking**\n\n- ***Words:*** BM25-style match on your terms, plus exact symbol names at 1.5× weight.\n- ***Meaning:*** MaxSim over LateOn-Code token embeddings.\n- ***Reciprocal Rank Fusion*** merges the lists.\n\n</td>\n<td width=\"50%\" valign=\"top\">\n\n**📄 Always the live file**\n\n- The best spans are read again from disk.\n- Each span gets 2 lines of context on each side. Overlapping spans are merged.\n- So you see the current code, even during an edit.\n\n</td>\n</tr>\n</table>\n\n<details>\n<summary><b>More</b></summary>\n\n<br/>\n\n- Returns the top 5 spans by default. Change it with `--top`.\n- A file that is not indexed falls back to a plain read.\n- Also available as `sweet-search read-semantic` and as the `read-semantic` MCP tool.\n\n</details>\n\n---\n\n<a id=\"tool-ss-trace\"></a>\n### <img src=\"assets/tools/ss-trace.svg\" width=\"40\" align=\"center\" alt=\"\" /> 5. `ss-trace`: callers, callees and impact from the code graph\n\n<img src=\"assets/tools/ss-trace-io.svg\" alt=\"ss-trace takes the symbol processOrder. One call returns its callers checkout, retryOrder and handleWebhook, its callees chargeCard, reserveStock and sendReceipt, and what breaks if it changes.\" width=\"100%\" />\n\n### 🕸️ Know what breaks before you edit\n> Give `ss-trace` a symbol. It returns who calls it, what it calls, and what breaks if it changes, with the code. The graph updates as you edit, so the answer matches your current code.\n\n<table>\n<tr><td colspan=\"2\"><b>How it builds the answer</b></td></tr>\n<tr>\n<td width=\"50%\" valign=\"top\">\n\n**🏗️ 1. The codegraph**\n\n- Built at index time and updated as you edit. Tree-sitter reads your code and records every function, class and method, and the links between them (imports, extends, ...)\n- Each symbol gets an importance score (PageRank). Code that many places depend on scores higher.\n\n</td>\n<td width=\"50%\" valign=\"top\">\n\n**🔎 2. Filling the gaps**\n\n- When you ask, it finds calls the graph missed: renamed imports and calls in the same file.\n- It drops wrong links, like `this.fetch()` linked to an unrelated `fetch`.\n\n</td>\n</tr>\n<tr>\n<td width=\"50%\" valign=\"top\">\n\n**🧭 3. Best results first**\n\n- Personalized PageRank walks out from your symbol: backward for callers, forward for callees. Code close to your symbol ranks high. A logger that everything calls ranks low.\n- Fewer hops, direct calls, exported names and many callers rank higher. Test files rank lower.\n\n</td>\n<td width=\"50%\" valign=\"top\">\n\n**📦 4. Only what fits**\n\n- The answer gets 4k, 8k or 12k tokens. A few clear results get the small budget. Many close results get the big one.\n- If your symbol has many callers, the callers get more of the space. Same for callees.\n- Each result shows its full code if it fits. If not, its first lines and the lines around the call.\n\n</td>\n</tr>\n</table>\n\n<details>\n<summary><b>More</b></summary>\n\n<br/>\n\n- Add `callers`, `callees` or `impact` after the symbol to get only that part.\n- Two symbols with the same name? Pick one with `--in <file>`.\n- Impact paths go 3 hops deep by default. Change it with `--depth` (1 to 4).\n- Set your own token budget with `--budget`.\n- On very dynamic code (calls by string name, metaprogramming), the graph can miss calls.\n- Also available as `sweet-search trace` and as the `trace` MCP tool.\n\n</details>\n\n---\n\n<a id=\"tool-ss-read\"></a>\n### <img src=\"assets/tools/ss-read.svg\" width=\"40\" align=\"center\" alt=\"\" /> 6. `ss-read`: read files from disk\n\n<img src=\"assets/tools/ss-read-io.svg\" alt=\"ss-read takes src/db/pool.js lines 120 to 150. It returns those lines with line numbers, names maxIdle declared above them, and names release and drain below them with the command to read them.\" width=\"100%\" />\n\n### 📖 Read the code, see what you skipped\n> Give `ss-read` a file and a line range. It reads from disk, so the code is always current, and it names what the agent has not read yet.\n\n<table>\n<tr><td width=\"50%\" valign=\"top\">\n\n**🔢 Line numbers that fit the agent**\n\n- Claude Code gets `12<TAB>`, opencode and Cursor get `12:`, Codex gets none. Each matches that agent's edit tool.\n- Each format was benchmarked per agent to cut failed edits.\n\n</td><td width=\"50%\" valign=\"top\">\n\n**🧭 Above, below, already read**\n\n- ***Below:*** the functions after the range, and the command to read them.\n- ***Above:*** fields and constants the code uses but the agent has not seen.\n- ***Already read:*** unchanged lines come back as a one-line reminder.\n\n</td></tr>\n</table>\n\n<details>\n<summary><b>More</b></summary>\n\n<br/>\n\n- `10-20`, `10:20` and `40 5` (5 lines from line 40) also work as ranges.\n- Minified and generated files are refused.\n- Set the line-number format with `SS_READ_GUTTER=tab|colon|none`.\n- Also available as `sweet-search read`.\n\n</details>\n\n---\n\n## 🧠 The System Prompt\n\n<table>\n<tr>\n<td align=\"center\" valign=\"top\" width=\"33%\">\n<h3>🧰<br/>Six tools</h3>\ngive the agent its power, but to <i>no avail</i> if it doesn't use them efficiently.\n<br/><br/>\n</td>\n<td align=\"center\" valign=\"top\" width=\"33%\">\n<h3>🧠<br/>One prompt</h3>\ntells the agent how to <i>optimally</i> use them.\n<br/><br/>\n</td>\n<td align=\"center\" valign=\"top\" width=\"33%\">\n<h3>📈<br/>Hill-climbed</h3>\nWe <b>hill-climbed</b> that prompt for the <i>largest cost saving at unharmed retrieval quality</i>.\n<br/><br/>\n</td>\n</tr>\n</table>\n\n`sweet-search init` installs the prompt for you. Here is how we found it 👇\n\n```mermaid\n%%{init: {\"theme\": \"base\", \"themeVariables\": {\"titleColor\": \"#1e1b4b\", \"textColor\": \"#1e1b4b\", \"lineColor\": \"#8e9baa\", \"edgeLabelBackground\": \"#f4f8fb\"}, \"themeCSS\": \".cluster-label span { font-size: 19px; font-weight: 700; }\", \"flowchart\": {\"wrappingWidth\": 400, \"rankSpacing\": 65, \"nodeSpacing\": 60, \"subGraphTitleMargin\": {\"top\": 6, \"bottom\": 14}}}}%%\nflowchart TB\n    subgraph S1[\"① Retrieval · evolved with 🧬 GEPA\"]\n        direction LR\n        A([\"📝 <b>Candidate</b><br/>prompts\"]) --> B[\"🤖 <b>Run</b> on<br/>Claude Code + Codex\"]\n        B --> C[\"💰 <b>Keep</b> the Pareto-best<br/>prompts: cheapest with<br/>the best retrieval\"]\n        C --> D[\"🔁 <b>Mutate</b><br/>LLMs read the runs and<br/>write new candidates\"]\n        D -.-> A\n    end\n    S1 --> V(\"🔒 <b>Sealed checks</b><br/>held-out questions<br/>8 unseen languages<br/>2 unseen model families\")\n    V -->|\"it found the code, then stopped before the edit\"| S2\n    subgraph S2[\"② Task completion · tuned by hand\"]\n        direction LR\n        E[\"🔍 <b>400 dev tasks</b><br/>Claude Code · Codex · opencode<br/>analyze the failed traces\"] --> F[\"✍️ <b>Write</b> one<br/>new rule\"]\n        F --> G[\"🧪 <b>Microsmoke</b> on target<br/>and control tasks\"]\n        G -->|\"helps\"| H([\"✅ <b>Keep</b>\"])\n        G -->|\"no gain or<br/>costs more\"| I([\"❌ <b>Drop</b>\"])\n    end\n    S2 ==> P([\"🍬 <b>The shipped prompt</b>\"])\n\n    classDef cand  fill:#e0e7ff,stroke:#596fff,color:#000;\n    classDef run   fill:#dbeafe,stroke:#60a5fa,color:#000;\n    classDef score fill:#fde68a,stroke:#f59e0b,color:#000;\n    classDef llm   fill:#ffe4e6,stroke:#fb7185,color:#000;\n    classDef seal  fill:#fef3c7,stroke:#d97706,color:#000,stroke-width:2px;\n    classDef dig   fill:#ecfeff,stroke:#22d3ee,color:#000;\n    classDef rule  fill:#f3e8ff,stroke:#a78bfa,color:#000;\n    classDef keep  fill:#bbf7d0,stroke:#15803d,color:#000,stroke-width:2px;\n    classDef drop  fill:#fecaca,stroke:#dc2626,color:#000,stroke-width:2px;\n    classDef ship  fill:#ffd1e6,stroke:#ff5ba3,color:#000,stroke-width:3px;\n\n    class A cand;\n    class B run;\n    class C score;\n    class D llm;\n    class V seal;\n    class E dig;\n    class F,G rule;\n    class H keep;\n    class I drop;\n    class P ship;\n\n    style S1 fill:#f5f3ff,stroke:#a78bfa,stroke-width:2px;\n    style S2 fill:#f0fdfa,stroke:#2dd4bf,stroke-width:2px;\n\n    linkStyle 3 stroke:#fb7185,stroke-width:2px;\n    linkStyle 8 stroke:#15803d,stroke-width:2px;\n    linkStyle 9 stroke:#dc2626,stroke-width:2px;\n    linkStyle 10 stroke:#ff5ba3,stroke-width:3px;\n```\n\n| | ① Retrieval · [🧬 GEPA](https://arxiv.org/abs/2507.19457) | ② Task completion · by hand |\n|--|--|--|\n| 🎯 **Goal** | cheapest prompt that still finds the right code | agent finishes the edit, not only the search |\n| 🤖 **Agents** | Claude Code · Codex | Claude Code · Codex · opencode |\n| 🔁 **Loop** | LLMs read the runs, write new candidates | analyze failed traces → write one rule |\n| ✅ **Kept if** | Pareto-best: cheapest at the best retrieval | microsmoke: it helps and costs no more |\n| 🔒 **Checked on** | unseen questions, languages, model families | control tasks |\n\n### 💡 What the prompt says\n\n> Open with the cheapest tool. Trust the ranking. Treat two empty searches as proof of absence. Stop searching once you have the answer.\n\n<details>\n<summary><b>📄 Read the full prompt</b></summary>\n\n<br/>\n\n```markdown\n# Sweet-search — code search tool guide\n\nThese are code-search rules only — they never decide when the task is done; the deliverable is whatever the task/prompt asks for. When the task calls for a change, locating the right code is a means, not the finish line: apply the edit with your normal file-editing tool and never a description of the fix in place of the fix.\n\nSweet-search indexes the working tree (uncommitted edits too) and searches it faster and cheaper than raw shell. Use the `ss-*` tools for all code search and navigation. Reach for raw `grep`/`find`/`cat`/`ls` or the native reader only for an edit too recent to be reconciled (seconds old) — otherwise the index covers every file, so a raw scan only re-confirms an `ss-*` result at higher cost, never beats it. Never re-run an `ss-*` hit as raw grep. Any sub-agent you delegate to must use these `ss-*` tools, with this system prompt verbatim.\n\n## Tools (search commands, invoked via Bash)\n`ss-search`/`ss-find` return ranked code blocks; `ss-grep` is file:line only; `ss-semantic` returns the top ranked spans in one file; `ss-trace` returns a symbol's callers, callees and impact. `ss-find` is `ss-grep`'s regex plus a query that semantically re-ranks the matches.\n- `ss-search \"<query>\" [-k N]` — semantic; default when you have no exact symbol\n- `ss-find \"<query>\" --regex \"<regex>\" [-k N]`\n- `ss-grep \"<regex>\" [-k N]` — exact literals\n- `ss-semantic <file> \"<query>\"` — top ranked spans in one known file (semantic query)\n- `ss-trace <symbol> [callers|callees|impact] [--in <file>]`\n- `ss-read <file> [start] [end]` — a narrow range\n\n## Open with the cheapest tool for what you hold\n- **An exact token** (identifier, function/class/constant, error string, config key, path you could copy-paste): ONE `ss-grep` on that literal (rarest token, escaped) or `ss-find` `\\b<symbol>\\b`. Trust the top hit and stop — no `ss-search` first, no confirming re-search. One exception: if the top hit is an autogenerated file (a \"do not edit\" or \"@generated\" header, or a name like `schema11`/`validateN`), it is a generated copy, not where the value is authored — follow it to the real source it is generated from.\n- **Only a behavior or concept**: one `ss-search` in natural language for what you're looking for, then anchor on the symbol that surfaces. Shape it lightly by the target language — short and interrogative for JS/TS/Dart, a touch longer with a domain keyword otherwise.\n- **How something flows / dispatches / is called / what a change impacts**: anchor one symbol (a literal, or `ss-search`), then `ss-trace` it — one call returns callers, callees and impact. Prefer callees over impact (especially Python/Ruby/PHP). If a trace is sparse or empty, anchor the downstream symbol with `ss-find`/`ss-search` rather than retrying or hand-crawling; never make `ss-trace` the spine of a multi-file search.\n\nOn `sufficient=YES`, trust the top ranked result outright; confirm with at most one narrow `ss-read`, never a re-run of a matching hit. Otherwise, scan the rest of the pack you already have (lower ranks, the `same file:` line) before issuing any new search — the winner is often rank 2-3.\n\n## Multi-file\nChain inside the tools: land the entry file, `ss-semantic` it for the import or handoff symbol, then `ss-search`/`ss-find` the downstream module. The trace is COMPLETE the moment you can name the link from the entry symbol to the thing it reaches; stop tracing there. Leaf bodies, macro expansions, and the next hop down are not the answer unless asked, and chasing them — or dropping to raw `cat`/`grep` to \"just look\" — is the main multi-file cost trap.\n\n## A confirmed absence is a complete search answer\nWhen what you're looking for may not exist, absence is settled once TWO complementary index probes come back empty for the same concept: one `ss-search` in natural language and one broad `ss-grep` on its likeliest identifier (a short substring/prefix). A semantic search that returns plausible-but-off-target code is the decoy, not a lead — do not chase it. Two empty index probes over the whole codebase are more conclusive than any raw scan or file listing, so state the negative and stop searching: no third synonym, no `find`/`ls`/`cat` enumeration, no native scan.\n\n## Before the third probe\nBefore your third sweet-search probe in the current search iteration — or before your final answer, whichever comes first — output a `<state_summary>` block with exactly: (1) one sentence on what you've established, (2) one sentence on your current blind spot.\n\n## Search output\nStop searching the instant your evidence answers what you're looking for — one confirmed file+symbol, or one named cross-file link, is enough; gather no corroboration you were not asked for. Name the file(s) and symbol(s) and how they answer what you need, or `no-match` — then finish whatever the task/prompt asks for.\n\nBefore editing a symbol with visible siblings — multiple call sites, a name family (`IVec2`/`I64Vec2`), branch variants, a generated family — spend ONE mapping call: `ss-trace <symbol>`, or a broad `ss-grep` of the stem. Read the function you edit to its end; a fix covering only the first matching site is not done. Single-site edits skip this.\n\n## Fix discipline\nLocating code and deciding HOW to change it are different jobs. The one-probe / trust-the-top-hit\nrule is for LOCATING. When you implement something new by copying an existing pattern (a rule, a\nhandler, an endpoint), read AT MOST two examples of that pattern, then start writing — reading a\nthird, fourth, or tenth sibling of the same shape does not improve the fix. Before implementing a\nnew contract or compatibility shim, spend one probe on how this repository already solves the same\nkind of problem, and match that local convention rather than the first pattern that comes to mind.\nWhen your change alters a public contract, re-read the task's exact wording before finalizing:\napparent local success does not certify a shape the task did not ask for.\n```\n\n</details>\n\n<details>\n<summary><b>🧾 Did step 1 overfit? The sealed checks</b></summary>\n\n<br/>\n\nThese checks ran on the step 1 prompt. None of these questions, languages or models was seen during tuning.\nA score of 1.00 means every question was answered correctly. For Claude Code and Codex, the score is the worse of the two agents.\n\n| Check | Score |\n|--|--|\n| 🎯 **Held-out questions** (30, Claude Code and Codex) | **0.988** |\n| 🌍 **8 unseen languages** (40 questions) | **0.952** · every language ≥ 0.79 |\n| 🔀 **2 unseen model families** | MiMo **0.988** · Qwen **0.980** |\n| 🧠 **An unseen reasoning model** (MiniMax M3) | **0.963** |\n| 🪤 **Trick questions** (10, reworded to break the tuning) | **1.00** on both agents |\n| 🔁 **Reworded prompt** (6 rewrites, 630 runs) | same answers: **0.95** Claude Code · **0.93** Codex |\n\n</details>\n\n---\n\n<a id=\"the-index\"></a>\n\n## 🗂️ The Index\n\n<table>\n<tr>\n<td align=\"center\" valign=\"top\" width=\"33%\">\n<h3>🔒<br/>Fully local</h3>\nYour code <i>never leaves</i> your machine. No API keys, no uploads.\n<br/><br/>\n</td>\n<td align=\"center\" valign=\"top\" width=\"33%\">\n<h3>⚡<br/>Fast on any machine</h3>\nMetal, CUDA or a tuned CPU path. The <i>fastest one you have</i> is picked for you.\n<br/><br/>\n</td>\n<td align=\"center\" valign=\"top\" width=\"33%\">\n<h3>🗜️<br/>Small</h3>\nCompressed vectors make the index <i>~3× smaller</i>, with no measurable loss in retrieval quality.\n<br/><br/>\n</td>\n</tr>\n</table>\n\n<img src=\"assets/index-build.svg\" alt=\"How the index is built. Source files are chunked and enriched, embedded by two models, and stored compressed. One pass feeds six indexes: 1 word index, 2 n-gram index, 3 binary HNSW, 4 bi-encoder vectors, 5 late-interaction vectors, 6 code graph. The embedding runs on Apple Metal, the Apple Neural Engine, NVIDIA CUDA or any CPU, picked automatically at start-up. A maintainer daemon updates all six indexes after each edit with an atomic swap.\" width=\"100%\" />\n\n### 🛠️ How we prepare for embedding\n\n| 🧩 **[cAST](https://arxiv.org/abs/2506.15655) chunking** | 🏷️ **Chunk enrichment, tuned per language family** |\n|:--|:--|\n| Whole functions and classes when they fit the embedder's context, split when they don't | Prepends file path · scope chain · symbol · merged siblings · imports used, built from the AST and the code graph |\n| 96 languages · 206 extensions · 18 with full tree-sitter grammars | Each language family's policy was picked by *ablation* on GenCodeSearchNet |\n\n\n### 🚀 The embedding models, and how we made them blazing fast\n#### 🤖 Two open, code-specialized models\n> - [CodeRankEmbed](https://huggingface.co/nomic-ai/CodeRankEmbed) (137M, dense) for first-stage recall.\n> - [LateOn-Code](https://huggingface.co/lightonai/LateOn-Code) (149M, late interaction) for the rerank.\n> - [LateOn-Code-edge](https://huggingface.co/lightonai/LateOn-Code-edge) (17M, late interaction) as the edge fallback, auto-selected on weaker hosts.\n\n#### ⚡ GPU-accelerated\n> - Runs on candle with Metal and CUDA, plus a Neural Engine cascade on M3+.\n> - **Hand-written fused attention kernels** for both models.\n\n| Your hardware | What runs |\n|--|--|\n| 🍏 Apple Silicon (M1+) | candle **Metal**, BF16, fused SDPA attention |\n| 🍏 Apple Silicon (M3+) | …​ plus a **CoreML Neural Engine cascade** |\n| 🟩 NVIDIA GPU (SM 7.0+) | candle **CUDA**; **flash-attention** on Ampere+ |\n| 💻 No accelerator | **ONNX Runtime INT8**: tuned CPU path, 132 MB model |\n\n#### 🧠 Cache-sized CPU batches\n> - Each batch fits one layer's weights and activations in the CPU cache *(which we auto-detect)*.\n> - Uses every physical core.\n> - ONNX Runtime (ORT) drives the CPU path.\n\n#### 🗜️ Two quantizations: one for speed, one for size\n> - INT8 weights make the CPU build ~2× faster.\n> - INT4 vectors make the late-interaction index ~3× smaller, with no measurable retrieval loss.\n\n<details>\n<summary><b>Under the hood: the GPU kernels we hand-wrote, and the upstream bugs we fixed</b></summary>\n\n<br/>\n\n> [!IMPORTANT]\n> **We found a silent upstream bug that wrecked retrieval.** Upstream candle-transformers masks padding with `f32::MIN`. Candle's Metal attention kernel downcasts that mask to F16, where it becomes `-Inf`, and softmax turns every padded row into NaN. Nothing crashes, but GenCodeSearchNet MRR fell to **25%**. We use a `-1e4` mask that survives F16.\n>\n> A second one: upstream ModernBERT hardcodes an F32 mask dtype. Upstream PR #2872 fixed that in `bert.rs` but never ported it.\n\n**By the numbers:** 5,000+ lines of Rust and Objective-C · 2 vendored models · 3 hardware backends · 18 CoreML variants\n\n#### 🔪 Surgical attention swap\n- We vendor the upstream models (NomicBERT for embeddings, ModernBERT for late interaction) and replace **only the attention forward pass**.\n- **Why:** upstream attention builds the full attention matrix in every layer. On Metal, one batch took ~4.2 s, ~10% slower than the CPU path.\n- **Metal:** a fused SDPA kernel ported from MLX.\n- **CUDA (Ampere+):** `candle-flash-attn` with variable-length packing. Candle's SDPA has no CUDA backend, and the naive BF16 fallback drifted (per-token cosine down to 0.69).\n- **CPU:** byte-for-byte upstream math, so the fallback is provably identical.\n\n#### 🔒 A silent GPU race, fixed\n- Concurrent Metal command-buffer submissions share candle's global command queue and silently corrupt outputs.\n- One process-wide lock serializes all Metal work. A GPU call takes under 10 ms, so latency stays low.\n\n#### 🍏 CoreML Neural Engine cascade\n- **18 pre-traced `.mlpackage` variants**, 6 per model, bucketed by batch size and sequence length.\n- Dispatched to the Apple Neural Engine through an Objective-C shim. Oversized batches fall through to Metal.\n- Gated to M3+: on M1/M2 the Neural Engine doesn't beat its own compile overhead. We measured, so it's off there.\n\n#### 🏷️ Structure-routed enrichment\n- The preamble (path · scope chain · symbol · siblings · imports) is built at index time from a code-graph line-range overlap query. Never an LLM call.\n- Routed per language family: full enriched text for JS/Ruby/Go/C-family/Rust, a slimmer path policy for Python and the Java family. Every choice was settled by per-language ablation, not a global default.\n\n#### 🧯 Pipelined, crash-safe indexing\n- While batch *N+1* embeds, batch *N*'s vectors stream into SQLite through zero-copy buffer views.\n- Full rebuilds write to a temp file and swap atomically, so a crash never leaves you serving half an index.\n\nSource: [`crates/sweet-search-native/src/inference/`](crates/sweet-search-native/src/inference/)\n\n</details>\n\n## 🔄 Incremental Indexing\n\nMost code indexes go stale the moment you start typing. sweet-search runs a background daemon\nthat keeps the whole index in sync with your *working tree*.\nYou never run a command.\n\n| ⏱️ **Always current** | 🎯 **Re-embeds only what changed** | ⚛️ **Never half-updated** |\n|:--|:--|:--|\n| Edits are searchable within ~20–60 s, tuned to your machine | One edited function means one chunk to the encoder, not the whole file | All five index tiers switch to the new version in one atomic step |\n\n<details>\n<summary><b>Under the hood: how the daemon stays fast, safe, and light</b></summary>\n\n<br/>\n\n**By the numbers:** 5 index tiers · 1 atomic manifest · ≤50 files and ≤2 s of CPU per update · 4 independent memory limits\n\n#### 🎯 Re-embed as little as possible\n- **Stable chunk IDs.** Each chunk's ID comes from its symbol and signature. An edit re-embeds only the function you touched, even when every line below it shifts.\n- **No-op saves are nearly free.** An xxHash3 content hash spots saves with no real change and skips the models.\n\n#### ⚛️ Safe by construction\n- **One atomic switch.** Each update stages its writes, then publishes all five tiers through one fsync-renamed manifest. A query pins one manifest, so it never sees a half-updated index.\n- **Baseline gate.** The daemon never builds the first index. It checks the full indexer's fingerprint first, and waits (`waiting_for_initial_index`) until one exists.\n- **One admission policy.** The full indexer and the daemon share one module that decides what gets indexed: include globs → deny list → `.sweet-search-ignore` → 1 MB cap → `git check-ignore`. The two paths cannot drift.\n- **Worktree-safe.** A worktree stamp and a single-writer lock stop two daemons from mixing index histories.\n\n#### 🧹 Stays clean over months\n- **Orphan sweep.** Deleted, newly ignored, and newly oversized files are tombstoned in every tier. The index converges to what a fresh full rebuild would produce.\n- **Self-maintenance.** Per-tier health watermarks (tombstone fraction, stale-doc ratio, delta ratio) trigger low-priority compaction in a separate worker.\n\n#### 🪶 Light on your machine\n- **CPU only**, with at most 50 files and 2 s of CPU per update. The GPU stays free for full builds.\n- **Adaptive interval** between 15 s and 300 s, tuned from load average, churn, and backlog.\n\n#### 🧠 Bounded memory\nThe daemons show up in `ps` / Activity Monitor as `sweet-search-maintainer` and `sweet-search-daemon`.\nA maintainer holds roughly 2–3 GB, because the models stay loaded so updates are fast. Four independent limits keep it bounded:\n\n| Limit | What it does | Default | Override |\n|-------|--------------|---------|----------|\n| Background ORT profile | Arena off, parked threads | on | `SWEET_SEARCH_ORT_BACKGROUND=0` |\n| Recycle ceiling | Past the line, the maintainer finishes its update, exits cleanly, and respawns on the next edit | clamp(25 % of RAM, 4 GiB, 8 GiB) | `SWEET_SEARCH_MAINTAINER_RSS_MAX_MB` (0 disables) |\n| Idle timeout | Unattended daemons shut down and respawn on demand | tier-aware | `SWEET_SEARCH_MAINTAINER_IDLE_TTL_MS` / `SWE","readmeFilename":"README.md"}