@backbencher/brain 0.0.0-stage → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +298 -0
- package/EMBEDDINGS.md +355 -0
- package/LICENSE +21 -0
- package/README.md +415 -2
- package/bin/bb +13 -0
- package/dist/analysis-exclusions-7ZJDXOVZ.js +35 -0
- package/dist/brain-index-health-Q5APTJQL.js +17 -0
- package/dist/brain-relationship-enrichment-MYR2AM4F.js +558 -0
- package/dist/brain.sql-EIM4WS4D.js +29 -0
- package/dist/chunk-22V37YTK.js +1758 -0
- package/dist/chunk-2BSKD7O3.js +40 -0
- package/dist/chunk-2DE27DVC.js +1314 -0
- package/dist/chunk-2RRBMNBQ.js +322 -0
- package/dist/chunk-2WXYNLBA.js +29 -0
- package/dist/chunk-3CTFIJJB.js +17 -0
- package/dist/chunk-3ZTOHHSW.js +2104 -0
- package/dist/chunk-4H22TLOT.js +543 -0
- package/dist/chunk-5BVAH26D.js +340 -0
- package/dist/chunk-62DHLYW6.js +3427 -0
- package/dist/chunk-7AN7U5IZ.js +371 -0
- package/dist/chunk-7DRPNVIN.js +782 -0
- package/dist/chunk-7MBYT777.js +174 -0
- package/dist/chunk-AHDWGM7Q.js +236 -0
- package/dist/chunk-B5GEAAYF.js +818 -0
- package/dist/chunk-BEIZZ73B.js +1479 -0
- package/dist/chunk-BQ3OVQ3P.js +125 -0
- package/dist/chunk-D2Q4Y47A.js +53 -0
- package/dist/chunk-DIYAGQJL.js +34 -0
- package/dist/chunk-DWKXZ6IF.js +336 -0
- package/dist/chunk-DYM4FQEE.js +90 -0
- package/dist/chunk-ENW4BTBA.js +930 -0
- package/dist/chunk-EWMWK7WN.js +75 -0
- package/dist/chunk-EY5ZZUUA.js +626 -0
- package/dist/chunk-GBI7V7KY.js +69 -0
- package/dist/chunk-GEFFO6O2.js +152 -0
- package/dist/chunk-HJEWO5EV.js +247 -0
- package/dist/chunk-HQSPJDHI.js +613 -0
- package/dist/chunk-KAET47ZL.js +125 -0
- package/dist/chunk-KCDECRJY.js +440 -0
- package/dist/chunk-L5TDYKYK.js +76 -0
- package/dist/chunk-MLKGABMK.js +9 -0
- package/dist/chunk-NO3U3FJQ.js +201 -0
- package/dist/chunk-OWISBAOF.js +61 -0
- package/dist/chunk-QKTRECYS.js +1119 -0
- package/dist/chunk-QLK6ED4Q.js +235 -0
- package/dist/chunk-R2GW4F6R.js +19 -0
- package/dist/chunk-RCMTFSEF.js +87 -0
- package/dist/chunk-RM3PY6TG.js +376 -0
- package/dist/chunk-ROMM6KMC.js +433 -0
- package/dist/chunk-SGGCSHAX.js +12050 -0
- package/dist/chunk-SK6YVHFZ.js +211 -0
- package/dist/chunk-SM7RFQRO.js +214 -0
- package/dist/chunk-UGR4QIGS.js +67 -0
- package/dist/chunk-UQNQZXHY.js +711 -0
- package/dist/chunk-UUNHHX4M.js +13 -0
- package/dist/chunk-VL52PL2T.js +71 -0
- package/dist/chunk-WIG36E67.js +196 -0
- package/dist/chunk-XHK3WWGB.js +7436 -0
- package/dist/chunk-XTQM2IP3.js +2863 -0
- package/dist/chunk-ZE2LG76D.js +1296 -0
- package/dist/chunk-ZETTGPAW.js +6950 -0
- package/dist/cli/index.js +37 -0
- package/dist/config-HZAAYDP3.js +10 -0
- package/dist/content-search-7XIP555Q.js +593 -0
- package/dist/database-76RP44JG.js +9 -0
- package/dist/doctor-ANGETYMN.js +395 -0
- package/dist/edit-engine-CG72LDZD.js +51 -0
- package/dist/engine-BKEOGN7N.js +11 -0
- package/dist/engine-VIW6NSKO.js +18 -0
- package/dist/fingerprint-OBLIMZLP.js +33 -0
- package/dist/framework-intelligence-3LORTPOX.js +860 -0
- package/dist/freshness-3K6VU5OT.js +174 -0
- package/dist/graph-engine-HBSQNPTB.js +21 -0
- package/dist/graph_request-Q6NKB6N2.js +350 -0
- package/dist/impact_request-LYP672WE.js +68 -0
- package/dist/index-space-IUUN5WYV.js +15 -0
- package/dist/index-status-7OVGYSGW.js +34 -0
- package/dist/index.js +159 -0
- package/dist/instance-FO6QZRLH.js +19 -0
- package/dist/language-detection-DFCAU5DZ.js +11 -0
- package/dist/lsp/server.js +4301 -0
- package/dist/mcp/server.js +132 -0
- package/dist/onboard-DIQZV2NW.js +161 -0
- package/dist/override-companion-pass-XR7MHTP7.js +117 -0
- package/dist/parallel-indexer-FK2XKZXY.js +88 -0
- package/dist/pool-worker.js +1153 -0
- package/dist/project-health-6XPENVAA.js +94 -0
- package/dist/project-index-5SDPHITE.js +57 -0
- package/dist/project-registry-ZJ3DVUGO.js +355 -0
- package/dist/real-bash-analyzer-EJAU5LW5.js +2201 -0
- package/dist/real-c-analyzer-HBD3FNNH.js +5942 -0
- package/dist/real-clean-analyzer-4EEZLPV5.js +3470 -0
- package/dist/real-clojure-analyzer-Q55EBOO2.js +2818 -0
- package/dist/real-cpp-analyzer-IVVOD25R.js +4101 -0
- package/dist/real-csharp-analyzer-ZBNLNJZJ.js +3298 -0
- package/dist/real-css-analyzer-6XRQLUN7.js +15 -0
- package/dist/real-dart-analyzer-OLR72EFW.js +3944 -0
- package/dist/real-elixir-analyzer-MQWGAH2I.js +2192 -0
- package/dist/real-erlang-analyzer-7BVPQEHO.js +1731 -0
- package/dist/real-fsharp-analyzer-C2UPFNOA.js +2390 -0
- package/dist/real-go-analyzer-UKGI43YS.js +4126 -0
- package/dist/real-graphql-analyzer-VE2EEFII.js +1442 -0
- package/dist/real-groovy-analyzer-W26VACFW.js +2285 -0
- package/dist/real-haskell-analyzer-5CVVAJRX.js +2533 -0
- package/dist/real-hcl-analyzer-5ZT4U43N.js +725 -0
- package/dist/real-html-analyzer-JWNX3C6I.js +1759 -0
- package/dist/real-java-analyzer-GU42VBGQ.js +4677 -0
- package/dist/real-javascript-analyzer-QA4QOJ6W.js +14 -0
- package/dist/real-json-analyzer-MPA6PRXL.js +1640 -0
- package/dist/real-julia-analyzer-22CWYQMN.js +2085 -0
- package/dist/real-kotlin-analyzer-QDZJLXXU.js +3956 -0
- package/dist/real-lua-analyzer-G7NHLYKS.js +1957 -0
- package/dist/real-makefile-analyzer-OCY3GT5N.js +920 -0
- package/dist/real-markdown-analyzer-TEJK2JXJ.js +1215 -0
- package/dist/real-matlab-analyzer-Q5SWLN7Z.js +480 -0
- package/dist/real-nim-analyzer-YLXSK563.js +3603 -0
- package/dist/real-objective-c-analyzer-D23ACC2R.js +1518 -0
- package/dist/real-perl-analyzer-WWTRHYDT.js +1865 -0
- package/dist/real-php-analyzer-JNKJHTCL.js +9368 -0
- package/dist/real-powershell-analyzer-XRSNQERV.js +2915 -0
- package/dist/real-protobuf-analyzer-3OKUCZ7T.js +867 -0
- package/dist/real-python-analyzer-VXAFWI72.js +4880 -0
- package/dist/real-r-analyzer-ZGAIDVI4.js +2596 -0
- package/dist/real-ruby-analyzer-X2KTLVBH.js +2429 -0
- package/dist/real-rust-analyzer-OFFHPL2A.js +3359 -0
- package/dist/real-scala-analyzer-TSTW27J6.js +3293 -0
- package/dist/real-scss-analyzer-AVWYPSOQ.js +1515 -0
- package/dist/real-solidity-analyzer-UCI2KWUB.js +2608 -0
- package/dist/real-sql-analyzer-F77ZMQXR.js +3840 -0
- package/dist/real-svelte-analyzer-SF7NRUO5.js +2532 -0
- package/dist/real-swift-analyzer-MN5QT3QN.js +2311 -0
- package/dist/real-toml-analyzer-66L7BDCQ.js +929 -0
- package/dist/real-typescript-analyzer-6KEMVDWQ.js +14 -0
- package/dist/real-vb-analyzer-VICVPOP7.js +3145 -0
- package/dist/real-vba-analyzer-HXLTTHKM.js +466 -0
- package/dist/real-vue-analyzer-QXR56CFV.js +2680 -0
- package/dist/real-xml-analyzer-YL465ZJW.js +2405 -0
- package/dist/real-yaml-analyzer-SUBCBNSI.js +3528 -0
- package/dist/real-zig-analyzer-HIQLZMGY.js +2430 -0
- package/dist/regex-search-NJKHMZNO.js +239 -0
- package/dist/rules-ACHPB7QU.js +152 -0
- package/dist/scoped-path-MJYWJZQX.js +11 -0
- package/dist/setup-show-NT5ZHYNE.js +15 -0
- package/dist/setup-wizard-G5YYR5T6.js +24 -0
- package/dist/symbol-search-GZJIM2J2.js +16 -0
- package/dist/taint-KXUHHPIE.js +202 -0
- package/dist/taint-analyzer-N7YLZU3N.js +163 -0
- package/dist/tool-handlers-OJDC35DI.js +72 -0
- package/dist/tool-registry-BPEJNSZG.js +17 -0
- package/dist/tool-validation-Q57YMMBX.js +32 -0
- package/dist/type-inference-QMT2RMLV.js +13 -0
- package/dist/vector-binary-LMY4QGAN.js +19 -0
- package/dist/version-ABP2TUL2.js +9 -0
- package/dist/wasm-NMWO3WXY.js +16 -0
- package/docs/EMBEDDINGS.md +132 -0
- package/docs/README.md +178 -0
- package/docs/data/m10-baseline.json +602 -0
- package/docs/data/m10-benchmark-baseline.json +57 -0
- package/docs/data/m10-benchmark-last-run.json +127 -0
- package/docs/data/m10-final-audit.json +215 -0
- package/docs/data/m12-final-audit.json +138 -0
- package/docs/data/m12-surface-matrix.json +50 -0
- package/docs/data/public-tools.json +1902 -0
- package/docs/indexing/DEAD-ASSETS.md +88 -0
- package/docs/indexing/INDEXER-REVIEW.md +634 -0
- package/docs/indexing/PERFORMANCE-FINDINGS.md +106 -0
- package/docs/indexing/README.md +427 -0
- package/docs/indexing/discovery-matrix.md +41 -0
- package/docs/indexing/embeddings.md +325 -0
- package/docs/indexing/environment-variables.md +77 -0
- package/docs/indexing/performance.md +323 -0
- package/docs/indexing/resume.md +345 -0
- package/docs/indexing/troubleshooting.md +391 -0
- package/docs/man/bb.1 +190 -0
- package/docs/tools/bb_analyze.md +147 -0
- package/docs/tools/bb_annotate.md +110 -0
- package/docs/tools/bb_annotations.md +106 -0
- package/docs/tools/bb_ask.md +101 -0
- package/docs/tools/bb_cross_language.md +103 -0
- package/docs/tools/bb_doc.md +169 -0
- package/docs/tools/bb_edit.md +185 -0
- package/docs/tools/bb_graph.md +169 -0
- package/docs/tools/bb_health.md +156 -0
- package/docs/tools/bb_impact.md +117 -0
- package/docs/tools/bb_index.md +108 -0
- package/docs/tools/bb_migrate.md +135 -0
- package/docs/tools/bb_patterns.md +140 -0
- package/docs/tools/bb_search.md +150 -0
- package/docs/tools/bb_security.md +100 -0
- package/docs/tools/bb_visualize.md +184 -0
- package/grammars/README.md +57 -0
- package/grammars/THIRD-PARTY-NOTICES.md +50 -0
- package/grammars/tree-sitter-c/LICENSE +21 -0
- package/grammars/tree-sitter-clojure/LICENSE.md +21 -0
- package/grammars/tree-sitter-cpp/LICENSE +21 -0
- package/grammars/tree-sitter-csharp/LICENSE +21 -0
- package/grammars/tree-sitter-css/LICENSE +21 -0
- package/grammars/tree-sitter-css/README.md +21 -0
- package/grammars/tree-sitter-dart/LICENSE +20 -0
- package/grammars/tree-sitter-dart-upstream/LICENSE +20 -0
- package/grammars/tree-sitter-dart-upstream/README.md +18 -0
- package/grammars/tree-sitter-elixir/LICENSE +176 -0
- package/grammars/tree-sitter-elixir/README.md +11 -0
- package/grammars/tree-sitter-fsharp/LICENSE +21 -0
- package/grammars/tree-sitter-fsharp/README.md +45 -0
- package/grammars/tree-sitter-graphql/LICENSE +21 -0
- package/grammars/tree-sitter-graphql/README.md +106 -0
- package/grammars/tree-sitter-groovy/LICENSE +21 -0
- package/grammars/tree-sitter-groovy/README.md +4 -0
- package/grammars/tree-sitter-haskell/LICENSE +21 -0
- package/grammars/tree-sitter-haskell/README.md +394 -0
- package/grammars/tree-sitter-hcl/CHANGELOG.md +102 -0
- package/grammars/tree-sitter-hcl/LICENSE +201 -0
- package/grammars/tree-sitter-hcl/README.md +39 -0
- package/grammars/tree-sitter-html/LICENSE +21 -0
- package/grammars/tree-sitter-html/README.md +21 -0
- package/grammars/tree-sitter-julia/LICENSE +21 -0
- package/grammars/tree-sitter-julia/README.md +24 -0
- package/grammars/tree-sitter-kotlin/LICENSE +9 -0
- package/grammars/tree-sitter-lua/LICENSE.md +21 -0
- package/grammars/tree-sitter-lua/README.md +29 -0
- package/grammars/tree-sitter-make/LICENSE +21 -0
- package/grammars/tree-sitter-matlab/LICENSE +19 -0
- package/grammars/tree-sitter-matlab/README.md +99 -0
- package/grammars/tree-sitter-nim/LICENSE +373 -0
- package/grammars/tree-sitter-nim/README.md +46 -0
- package/grammars/tree-sitter-objc/LICENSE +21 -0
- package/grammars/tree-sitter-objc/README.md +20 -0
- package/grammars/tree-sitter-perl/LICENSE +7 -0
- package/grammars/tree-sitter-perl/README.md +100 -0
- package/grammars/tree-sitter-powershell/LICENSE +21 -0
- package/grammars/tree-sitter-powershell/README.md +7 -0
- package/grammars/tree-sitter-proto/LICENSE +21 -0
- package/grammars/tree-sitter-proto/README.md +105 -0
- package/grammars/tree-sitter-r/LICENSE +9 -0
- package/grammars/tree-sitter-r/README.md +66 -0
- package/grammars/tree-sitter-ruby/LICENSE +22 -0
- package/grammars/tree-sitter-scss/LICENSE +21 -0
- package/grammars/tree-sitter-scss/README.md +17 -0
- package/grammars/tree-sitter-solidity/LICENSE +7 -0
- package/grammars/tree-sitter-sql/LICENSE +21 -0
- package/grammars/tree-sitter-typescript/LICENSE +21 -0
- package/grammars/tree-sitter-vba/LICENSE +21 -0
- package/grammars/tree-sitter-vba/README.md +738 -0
- package/grammars/tree-sitter-vbnet/LICENSE +21 -0
- package/grammars/tree-sitter-vbnet/README.md +322 -0
- package/grammars/tree-sitter-xml/LICENSE +19 -0
- package/grammars/tree-sitter-yaml/LICENSE +20 -0
- package/grammars/tree-sitter-yaml/README.md +21 -0
- package/package.json +184 -4
- package/wasm/dart.wasm +0 -0
- package/wasm/tree-sitter-bash.wasm +0 -0
- package/wasm/tree-sitter-c.wasm +0 -0
- package/wasm/tree-sitter-c_sharp.wasm +0 -0
- package/wasm/tree-sitter-clean.wasm +0 -0
- package/wasm/tree-sitter-clojure.wasm +0 -0
- package/wasm/tree-sitter-core_schema.wasm +0 -0
- package/wasm/tree-sitter-cpp.wasm +0 -0
- package/wasm/tree-sitter-css.wasm +0 -0
- package/wasm/tree-sitter-dart.wasm +0 -0
- package/wasm/tree-sitter-elisp.wasm +0 -0
- package/wasm/tree-sitter-elixir.wasm +0 -0
- package/wasm/tree-sitter-elm.wasm +0 -0
- package/wasm/tree-sitter-embedded_template.wasm +0 -0
- package/wasm/tree-sitter-erlang.wasm +0 -0
- package/wasm/tree-sitter-fsharp.wasm +0 -0
- package/wasm/tree-sitter-fsharp_signature.wasm +0 -0
- package/wasm/tree-sitter-go.wasm +0 -0
- package/wasm/tree-sitter-graphql.wasm +0 -0
- package/wasm/tree-sitter-groovy.wasm +0 -0
- package/wasm/tree-sitter-haskell.wasm +0 -0
- package/wasm/tree-sitter-hcl.wasm +0 -0
- package/wasm/tree-sitter-html.wasm +0 -0
- package/wasm/tree-sitter-java.wasm +0 -0
- package/wasm/tree-sitter-javascript.wasm +0 -0
- package/wasm/tree-sitter-json.wasm +0 -0
- package/wasm/tree-sitter-json_schema.wasm +0 -0
- package/wasm/tree-sitter-julia.wasm +0 -0
- package/wasm/tree-sitter-kotlin.wasm +0 -0
- package/wasm/tree-sitter-lua.wasm +0 -0
- package/wasm/tree-sitter-make.wasm +0 -0
- package/wasm/tree-sitter-markdown.wasm +0 -0
- package/wasm/tree-sitter-markdown_inline.wasm +0 -0
- package/wasm/tree-sitter-matlab.wasm +0 -0
- package/wasm/tree-sitter-nim.wasm +0 -0
- package/wasm/tree-sitter-objc.wasm +0 -0
- package/wasm/tree-sitter-ocaml.wasm +0 -0
- package/wasm/tree-sitter-perl.wasm +0 -0
- package/wasm/tree-sitter-php.wasm +0 -0
- package/wasm/tree-sitter-php_only.wasm +0 -0
- package/wasm/tree-sitter-powershell.wasm +0 -0
- package/wasm/tree-sitter-protobuf.wasm +0 -0
- package/wasm/tree-sitter-python.wasm +0 -0
- package/wasm/tree-sitter-ql.wasm +0 -0
- package/wasm/tree-sitter-r.wasm +0 -0
- package/wasm/tree-sitter-rescript.wasm +0 -0
- package/wasm/tree-sitter-ruby.wasm +0 -0
- package/wasm/tree-sitter-rust.wasm +0 -0
- package/wasm/tree-sitter-scala.wasm +0 -0
- package/wasm/tree-sitter-scss.wasm +0 -0
- package/wasm/tree-sitter-solidity.wasm +0 -0
- package/wasm/tree-sitter-sql.wasm +0 -0
- package/wasm/tree-sitter-svelte.wasm +0 -0
- package/wasm/tree-sitter-swift.wasm +0 -0
- package/wasm/tree-sitter-systemrdl.wasm +0 -0
- package/wasm/tree-sitter-terraform.wasm +0 -0
- package/wasm/tree-sitter-tlaplus.wasm +0 -0
- package/wasm/tree-sitter-toml.wasm +0 -0
- package/wasm/tree-sitter-tsx.wasm +0 -0
- package/wasm/tree-sitter-typescript.wasm +0 -0
- package/wasm/tree-sitter-vba.wasm +0 -0
- package/wasm/tree-sitter-vbnet.wasm +0 -0
- package/wasm/tree-sitter-vue.wasm +0 -0
- package/wasm/tree-sitter-xml.wasm +0 -0
- package/wasm/tree-sitter-yaml.wasm +0 -0
- package/wasm/tree-sitter-zig.wasm +0 -0
- package/wasm/tree-sitter.wasm +0 -0
- package/wasm/tsx.wasm +0 -0
- package/wasm/typescript.wasm +0 -0
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createToolHandlers
|
|
3
|
+
} from "../chunk-SGGCSHAX.js";
|
|
4
|
+
import "../chunk-EY5ZZUUA.js";
|
|
5
|
+
import {
|
|
6
|
+
validateToolArguments
|
|
7
|
+
} from "../chunk-HJEWO5EV.js";
|
|
8
|
+
import "../chunk-VL52PL2T.js";
|
|
9
|
+
import "../chunk-AHDWGM7Q.js";
|
|
10
|
+
import "../chunk-BEIZZ73B.js";
|
|
11
|
+
import "../chunk-3CTFIJJB.js";
|
|
12
|
+
import {
|
|
13
|
+
PUBLIC_TOOL_DESCRIPTORS,
|
|
14
|
+
TOOL_DESCRIPTORS,
|
|
15
|
+
toMcpToolList
|
|
16
|
+
} from "../chunk-HQSPJDHI.js";
|
|
17
|
+
import "../chunk-22V37YTK.js";
|
|
18
|
+
import "../chunk-DWKXZ6IF.js";
|
|
19
|
+
import "../chunk-2RRBMNBQ.js";
|
|
20
|
+
import "../chunk-UQNQZXHY.js";
|
|
21
|
+
import "../chunk-ZETTGPAW.js";
|
|
22
|
+
import "../chunk-4H22TLOT.js";
|
|
23
|
+
import "../chunk-B5GEAAYF.js";
|
|
24
|
+
import "../chunk-7AN7U5IZ.js";
|
|
25
|
+
import "../chunk-UGR4QIGS.js";
|
|
26
|
+
import "../chunk-GEFFO6O2.js";
|
|
27
|
+
import "../chunk-NO3U3FJQ.js";
|
|
28
|
+
import "../chunk-DYM4FQEE.js";
|
|
29
|
+
import "../chunk-RM3PY6TG.js";
|
|
30
|
+
import "../chunk-RCMTFSEF.js";
|
|
31
|
+
import "../chunk-ENW4BTBA.js";
|
|
32
|
+
import "../chunk-5BVAH26D.js";
|
|
33
|
+
import {
|
|
34
|
+
getProjectId
|
|
35
|
+
} from "../chunk-DIYAGQJL.js";
|
|
36
|
+
import "../chunk-UUNHHX4M.js";
|
|
37
|
+
import {
|
|
38
|
+
BACKBENCHER_BRAIN_VERSION
|
|
39
|
+
} from "../chunk-WIG36E67.js";
|
|
40
|
+
import "../chunk-QLK6ED4Q.js";
|
|
41
|
+
import {
|
|
42
|
+
BrainDatabase
|
|
43
|
+
} from "../chunk-QKTRECYS.js";
|
|
44
|
+
import "../chunk-3ZTOHHSW.js";
|
|
45
|
+
import "../chunk-BQ3OVQ3P.js";
|
|
46
|
+
import "../chunk-SK6YVHFZ.js";
|
|
47
|
+
import "../chunk-2BSKD7O3.js";
|
|
48
|
+
import "../chunk-KAET47ZL.js";
|
|
49
|
+
import "../chunk-KCDECRJY.js";
|
|
50
|
+
import "../chunk-D2Q4Y47A.js";
|
|
51
|
+
import "../chunk-SM7RFQRO.js";
|
|
52
|
+
import "../chunk-L5TDYKYK.js";
|
|
53
|
+
import "../chunk-ROMM6KMC.js";
|
|
54
|
+
import "../chunk-MLKGABMK.js";
|
|
55
|
+
|
|
56
|
+
// src/mcp/server.ts
|
|
57
|
+
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
58
|
+
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
59
|
+
import { CallToolRequestSchema, ListToolsRequestSchema } from "@modelcontextprotocol/sdk/types.js";
|
|
60
|
+
{
|
|
61
|
+
const toStderr = (...args) => {
|
|
62
|
+
try {
|
|
63
|
+
process.stderr.write(args.map((value) => typeof value === "string" ? value : String(value)).join(" ") + "\n");
|
|
64
|
+
} catch {
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
console.log = toStderr;
|
|
68
|
+
console.info = toStderr;
|
|
69
|
+
console.debug = toStderr;
|
|
70
|
+
}
|
|
71
|
+
var handlers = createToolHandlers();
|
|
72
|
+
var descriptors = new Map(TOOL_DESCRIPTORS.map((descriptor) => [descriptor.name, descriptor]));
|
|
73
|
+
async function ensureIndexed(context) {
|
|
74
|
+
try {
|
|
75
|
+
const raw = await BrainDatabase.getRawInstance(context.projectId, { readonly: true });
|
|
76
|
+
const files = raw.prepare("SELECT COUNT(*) c FROM brain_file WHERE project_id=?").get(context.projectId).c ?? 0;
|
|
77
|
+
if (files === 0) {
|
|
78
|
+
return `No index found for ${context.projectPath}. Run: bb index "${context.projectPath}" (or restart bb mcp after indexing).`;
|
|
79
|
+
}
|
|
80
|
+
return null;
|
|
81
|
+
} catch {
|
|
82
|
+
return `No index found for ${context.projectPath}. Run: bb index "${context.projectPath}".`;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
async function indexRequirementRefusal(context, descriptor, args) {
|
|
86
|
+
if (!descriptor.requiresIndex) return null;
|
|
87
|
+
const free = descriptor.indexFreeModes ?? [];
|
|
88
|
+
const mode = typeof args.mode === "string" ? args.mode : void 0;
|
|
89
|
+
if (mode !== void 0 && free.includes(mode)) return null;
|
|
90
|
+
const notIndexed = await ensureIndexed(context);
|
|
91
|
+
if (notIndexed === null) return null;
|
|
92
|
+
if (free.length === 0) return notIndexed;
|
|
93
|
+
const blocked = descriptor.modes.filter((m) => !free.includes(m));
|
|
94
|
+
const names = (modes) => modes.map((m) => `\`${m}\``).join(", ");
|
|
95
|
+
return `${notIndexed} ${descriptor.name} needs that index for ${names(blocked)}; ${names(free)} ${free.length === 1 ? "does" : "do"} not need an index and ${free.length === 1 ? "works" : "work"} now.`;
|
|
96
|
+
}
|
|
97
|
+
async function startMcpServer(projectPath) {
|
|
98
|
+
const context = { projectPath, projectId: getProjectId(projectPath) };
|
|
99
|
+
const server = new Server(
|
|
100
|
+
{ name: "backbencher-brain", version: BACKBENCHER_BRAIN_VERSION },
|
|
101
|
+
{ capabilities: { tools: {} } }
|
|
102
|
+
);
|
|
103
|
+
server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: toMcpToolList(PUBLIC_TOOL_DESCRIPTORS) }));
|
|
104
|
+
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
105
|
+
const descriptor = descriptors.get(request.params.name);
|
|
106
|
+
const handler = handlers[request.params.name];
|
|
107
|
+
if (!descriptor || !handler) {
|
|
108
|
+
return { content: [{ type: "text", text: `unknown tool: ${request.params.name}` }], isError: true };
|
|
109
|
+
}
|
|
110
|
+
try {
|
|
111
|
+
const argumentsObject = validateToolArguments(descriptor, request.params.arguments ?? {});
|
|
112
|
+
const notIndexed = await indexRequirementRefusal(context, descriptor, argumentsObject);
|
|
113
|
+
if (notIndexed !== null) return { content: [{ type: "text", text: notIndexed }], isError: true };
|
|
114
|
+
const result = await handler(argumentsObject, context);
|
|
115
|
+
return result;
|
|
116
|
+
} catch (error) {
|
|
117
|
+
return { content: [{ type: "text", text: `error: ${error?.message ?? String(error)}` }], isError: true };
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
await server.connect(new StdioServerTransport());
|
|
121
|
+
}
|
|
122
|
+
if (import.meta.main) {
|
|
123
|
+
const dirArg = process.argv.findIndex((argument) => argument === "--dir");
|
|
124
|
+
const directory = dirArg !== -1 ? process.argv[dirArg + 1] : process.cwd();
|
|
125
|
+
startMcpServer(directory).catch((error) => {
|
|
126
|
+
console.error("MCP server failed:", error?.message ?? String(error));
|
|
127
|
+
process.exit(1);
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
export {
|
|
131
|
+
startMcpServer
|
|
132
|
+
};
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import {
|
|
2
|
+
PUBLIC_TOOL_DESCRIPTORS
|
|
3
|
+
} from "./chunk-HQSPJDHI.js";
|
|
4
|
+
import "./chunk-MLKGABMK.js";
|
|
5
|
+
|
|
6
|
+
// src/cli/onboard.ts
|
|
7
|
+
import { existsSync, readFileSync, writeFileSync } from "fs";
|
|
8
|
+
import path from "path";
|
|
9
|
+
var GUIDANCE_START = "<!-- bb:onboard:start -->";
|
|
10
|
+
var GUIDANCE_END = "<!-- bb:onboard:end -->";
|
|
11
|
+
var BB_TOOL_NAME_RE = /\bbb_[a-z0-9_]+\b/g;
|
|
12
|
+
var RETIRED_GHOST_TOOL_NAMES = [
|
|
13
|
+
"bb_select",
|
|
14
|
+
"bb_update",
|
|
15
|
+
"bb_delete",
|
|
16
|
+
"bb_insert",
|
|
17
|
+
"bb_write",
|
|
18
|
+
"bb_refresh",
|
|
19
|
+
"bb_refactor",
|
|
20
|
+
"bb_relationships"
|
|
21
|
+
];
|
|
22
|
+
function oneLine(summary) {
|
|
23
|
+
const flat = summary.replace(/\s+/g, " ").trim();
|
|
24
|
+
const stop = flat.indexOf(". ");
|
|
25
|
+
return stop > 0 ? flat.slice(0, stop + 1) : flat;
|
|
26
|
+
}
|
|
27
|
+
var TASK_DISAMBIGUATION = {
|
|
28
|
+
bb_search: "Find a symbol, its exact source, or a file \u2014 exact/lexical lookup.",
|
|
29
|
+
bb_ask: "Ask a natural-language question about behavior and get scored semantic matches.",
|
|
30
|
+
bb_graph: "Who calls this symbol, and what does it call \u2014 per-symbol callers/callees, depth-bounded.",
|
|
31
|
+
bb_impact: "What breaks if this symbol changes \u2014 reverse dependencies with a declared budget.",
|
|
32
|
+
bb_visualize: "Show the dependency overview for a whole project/file/module at once, not one symbol.",
|
|
33
|
+
bb_annotate: "Write a note on a symbol (agent-authored annotation).",
|
|
34
|
+
bb_annotations: "Read notes back \u2014 all annotations, or one symbol's.",
|
|
35
|
+
bb_analyze: "Typed per-mode analysis: callers/callees/stats/complexity/tests.",
|
|
36
|
+
bb_patterns: "Find dead code, orphans, and anti-patterns.",
|
|
37
|
+
bb_security: "Find taint flows and injection findings.",
|
|
38
|
+
bb_health: "Is the index complete, fresh, and healthy.",
|
|
39
|
+
bb_index: "Reindex just-written or changed files/directories.",
|
|
40
|
+
bb_edit: "Change source code safely (preview, validate, rollback, reindex).",
|
|
41
|
+
bb_doc: "Write cited documentation for a symbol, file, module, feature, or API.",
|
|
42
|
+
bb_migrate: "Plan a cross-language migration with ordering and unsupported mappings.",
|
|
43
|
+
bb_cross_language: "Show stored cross-language facts for one symbol (declared absent when none)."
|
|
44
|
+
};
|
|
45
|
+
function renderGuidanceBody() {
|
|
46
|
+
const names = PUBLIC_TOOL_DESCRIPTORS.map((d) => d.name);
|
|
47
|
+
for (const name of names) {
|
|
48
|
+
if (!/^bb_[a-z0-9_]+$/.test(name)) throw new Error(`bb onboard: registry name is not a public tool name: ${name}`);
|
|
49
|
+
}
|
|
50
|
+
const rows = PUBLIC_TOOL_DESCRIPTORS.map((d) => {
|
|
51
|
+
const whenToUse = TASK_DISAMBIGUATION[d.name] ?? oneLine(d.documentation.summary);
|
|
52
|
+
return `| \`${d.name}\` | ${whenToUse} | ${d.mutability === "read" ? "no" : "**yes**"} |`;
|
|
53
|
+
});
|
|
54
|
+
const writeTools = PUBLIC_TOOL_DESCRIPTORS.filter((d) => d.mutability !== "read").map((d) => `\`${d.name}\``);
|
|
55
|
+
return [
|
|
56
|
+
"# Backbencher Brain (bb)",
|
|
57
|
+
"",
|
|
58
|
+
"This project is indexed by bb. Use the bb MCP tools below for code questions \u2014 they read the",
|
|
59
|
+
"indexed AST (symbols, relationships, taint, embeddings) and report staleness instead of guessing.",
|
|
60
|
+
"",
|
|
61
|
+
"| Tool | Use when | Mutates files? |",
|
|
62
|
+
"|---|---|---|",
|
|
63
|
+
...rows,
|
|
64
|
+
"",
|
|
65
|
+
`These are the only bb tools (${names.length} total). A name that is not in this table does not exist \u2014`,
|
|
66
|
+
'if you call it you will get "unavailable tool" and learn nothing.',
|
|
67
|
+
"",
|
|
68
|
+
"Read tools answer from the index and declare staleness (`fresh`/`stale`/`missing`); reads that find stale",
|
|
69
|
+
"files refresh them within budget and say so in the answer.",
|
|
70
|
+
writeTools.length > 0 ? `Write tools (${writeTools.join(", ")}) change the index or source \u2014 call them only when the user asks for that change.` : "All registered tools are read-only."
|
|
71
|
+
].join("\n");
|
|
72
|
+
}
|
|
73
|
+
function renderGuidanceSection() {
|
|
74
|
+
return `${GUIDANCE_START}
|
|
75
|
+
${renderGuidanceBody()}
|
|
76
|
+
${GUIDANCE_END}
|
|
77
|
+
`;
|
|
78
|
+
}
|
|
79
|
+
function extractGuidanceSection(text) {
|
|
80
|
+
const start = text.indexOf(GUIDANCE_START);
|
|
81
|
+
const end = text.indexOf(GUIDANCE_END);
|
|
82
|
+
if (start === -1 || end === -1 || end < start) return null;
|
|
83
|
+
return text.slice(start, end + GUIDANCE_END.length + 1);
|
|
84
|
+
}
|
|
85
|
+
function applyGuidanceSection(existing, section) {
|
|
86
|
+
const current = extractGuidanceSection(existing);
|
|
87
|
+
if (current !== null) {
|
|
88
|
+
if (current === section) return { text: existing, action: "replaced" };
|
|
89
|
+
return { text: existing.replace(current, section), action: "replaced" };
|
|
90
|
+
}
|
|
91
|
+
if (existing.trim() === "") return { text: section, action: "inserted" };
|
|
92
|
+
const sep = existing.endsWith("\n") ? "\n" : "\n\n";
|
|
93
|
+
return { text: `${existing}${sep}${section}`, action: "appended" };
|
|
94
|
+
}
|
|
95
|
+
function toolNamesIn(text) {
|
|
96
|
+
return text.match(BB_TOOL_NAME_RE) ?? [];
|
|
97
|
+
}
|
|
98
|
+
function ghostToolNames(text, registryNames = PUBLIC_TOOL_DESCRIPTORS.map((d) => d.name)) {
|
|
99
|
+
const known = new Set(registryNames);
|
|
100
|
+
return [...new Set(toolNamesIn(text).filter((n) => !known.has(n)))].sort();
|
|
101
|
+
}
|
|
102
|
+
function missingToolNames(section, registryNames = PUBLIC_TOOL_DESCRIPTORS.map((d) => d.name)) {
|
|
103
|
+
const mentioned = new Set(toolNamesIn(section));
|
|
104
|
+
return registryNames.filter((n) => !mentioned.has(n)).sort();
|
|
105
|
+
}
|
|
106
|
+
function guidanceFile(dir) {
|
|
107
|
+
return path.join(dir, "AGENTS.md");
|
|
108
|
+
}
|
|
109
|
+
function onboard(dir, opts = {}) {
|
|
110
|
+
const file = opts.file ?? guidanceFile(dir);
|
|
111
|
+
const section = renderGuidanceSection();
|
|
112
|
+
const existing = existsSync(file) ? readFileSync(file, "utf8") : "";
|
|
113
|
+
const current = extractGuidanceSection(existing);
|
|
114
|
+
const ghosts = ghostToolNames(current ?? "");
|
|
115
|
+
const missing = missingToolNames(current ?? "");
|
|
116
|
+
if (opts.print) return { dir, file, action: "would-write", changed: false, ghosts, missing };
|
|
117
|
+
if (opts.check) {
|
|
118
|
+
if (current === null) return { dir, file, action: "missing", changed: true, ghosts, missing };
|
|
119
|
+
const conformant = current === section && ghosts.length === 0 && missing.length === 0;
|
|
120
|
+
return { dir, file, action: conformant ? "unchanged" : "drift", changed: !conformant, ghosts, missing };
|
|
121
|
+
}
|
|
122
|
+
const { text, action } = applyGuidanceSection(existing, section);
|
|
123
|
+
if (text === existing) return { dir, file, action: "unchanged", changed: false, ghosts, missing };
|
|
124
|
+
writeFileSync(file, text);
|
|
125
|
+
return { dir, file, action, changed: true, ghosts, missing };
|
|
126
|
+
}
|
|
127
|
+
function renderOnboardResult(r) {
|
|
128
|
+
switch (r.action) {
|
|
129
|
+
case "unchanged":
|
|
130
|
+
return `\u2713 ${r.file} is current (${PUBLIC_TOOL_DESCRIPTORS.length} tools, no ghosts)`;
|
|
131
|
+
case "drift":
|
|
132
|
+
return [
|
|
133
|
+
`\u2717 ${r.file} guidance is out of date`,
|
|
134
|
+
r.ghosts.length > 0 ? ` ghost tool names: ${r.ghosts.join(", ")}` : "",
|
|
135
|
+
r.missing.length > 0 ? ` registry tools not mentioned: ${r.missing.join(", ")}` : "",
|
|
136
|
+
" run: bb onboard <dir>"
|
|
137
|
+
].filter(Boolean).join("\n");
|
|
138
|
+
case "missing":
|
|
139
|
+
return `\u2717 ${r.file} has no bb guidance section \u2014 run: bb onboard <dir>`;
|
|
140
|
+
case "would-write":
|
|
141
|
+
return renderGuidanceSection();
|
|
142
|
+
default:
|
|
143
|
+
return `\u2713 ${r.file} guidance ${r.action} (${PUBLIC_TOOL_DESCRIPTORS.length} tools)`;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
export {
|
|
147
|
+
BB_TOOL_NAME_RE,
|
|
148
|
+
GUIDANCE_END,
|
|
149
|
+
GUIDANCE_START,
|
|
150
|
+
RETIRED_GHOST_TOOL_NAMES,
|
|
151
|
+
TASK_DISAMBIGUATION,
|
|
152
|
+
applyGuidanceSection,
|
|
153
|
+
extractGuidanceSection,
|
|
154
|
+
ghostToolNames,
|
|
155
|
+
missingToolNames,
|
|
156
|
+
onboard,
|
|
157
|
+
renderGuidanceBody,
|
|
158
|
+
renderGuidanceSection,
|
|
159
|
+
renderOnboardResult,
|
|
160
|
+
toolNamesIn
|
|
161
|
+
};
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import {
|
|
2
|
+
buildOverrideCompanion
|
|
3
|
+
} from "./chunk-OWISBAOF.js";
|
|
4
|
+
import "./chunk-MLKGABMK.js";
|
|
5
|
+
|
|
6
|
+
// src/ast/override-companion-pass.ts
|
|
7
|
+
var OVERRIDES = "overrides";
|
|
8
|
+
var CONFIDENCE_FLOOR = 0.7;
|
|
9
|
+
async function populateOverrideCompanion(opts) {
|
|
10
|
+
const stats = {
|
|
11
|
+
owners: 0,
|
|
12
|
+
refiles: 0,
|
|
13
|
+
reapplied: 0,
|
|
14
|
+
confirmed: 0,
|
|
15
|
+
confirmedKeys: [],
|
|
16
|
+
confirmedIds: [],
|
|
17
|
+
confirmedIdsMissed: 0,
|
|
18
|
+
confirmedIdsDuplicates: 0,
|
|
19
|
+
confirmedNewInReparse: 0,
|
|
20
|
+
stillGuessKeys: [],
|
|
21
|
+
stillGuessIds: [],
|
|
22
|
+
stillGuessIdsMissed: 0,
|
|
23
|
+
stillGuess: 0,
|
|
24
|
+
failed: 0
|
|
25
|
+
};
|
|
26
|
+
const language = opts.language ?? "perl";
|
|
27
|
+
const firstParseKeys = /* @__PURE__ */ new WeakMap();
|
|
28
|
+
const results = opts.results;
|
|
29
|
+
const reparse = opts.reparse;
|
|
30
|
+
if (!reparse) return stats;
|
|
31
|
+
const symbols = results.flatMap((r) => r.success && r.language === language ? r.symbols ?? [] : []);
|
|
32
|
+
const companion = buildOverrideCompanion(symbols);
|
|
33
|
+
stats.owners = companion.size;
|
|
34
|
+
if (companion.size === 0) return stats;
|
|
35
|
+
const affected = results.filter(
|
|
36
|
+
(r) => r.success && r.language === language && (r.relationships ?? []).some((x) => x.type === OVERRIDES)
|
|
37
|
+
);
|
|
38
|
+
stats.refiles = affected.length;
|
|
39
|
+
for (const result of affected) {
|
|
40
|
+
let again;
|
|
41
|
+
try {
|
|
42
|
+
again = await reparse(result.filePath, opts.projectPath, { overrideCompanion: companion });
|
|
43
|
+
} catch {
|
|
44
|
+
stats.failed++;
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
if (!again || !again.success || !Array.isArray(again.relationships)) {
|
|
48
|
+
stats.failed++;
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
if (Array.isArray(result.relationships)) {
|
|
52
|
+
const first = /* @__PURE__ */ new Set();
|
|
53
|
+
for (const r of result.relationships) {
|
|
54
|
+
if (r?.type !== OVERRIDES) continue;
|
|
55
|
+
first.add(`${String(r?.target ?? "")}\0${r?.line_number ?? "?"}`);
|
|
56
|
+
}
|
|
57
|
+
firstParseKeys.set(result, first);
|
|
58
|
+
}
|
|
59
|
+
result.symbols = again.symbols ?? result.symbols;
|
|
60
|
+
result.relationships = again.relationships;
|
|
61
|
+
result.imports = again.imports ?? result.imports;
|
|
62
|
+
stats.reapplied++;
|
|
63
|
+
}
|
|
64
|
+
const spansByResult = /* @__PURE__ */ new WeakMap();
|
|
65
|
+
const relIdOf = (result, rel) => {
|
|
66
|
+
if (!opts.projectId || !opts.buildSpans || !opts.enclosingSpanId || !opts.fileIdOf) return null;
|
|
67
|
+
try {
|
|
68
|
+
let spans = spansByResult.get(result);
|
|
69
|
+
if (!spans) {
|
|
70
|
+
if (!result.filePath) return null;
|
|
71
|
+
const isStoreable = opts.makeStoreableName ? opts.makeStoreableName(!!result.fallback, result.language).isStoreable : () => true;
|
|
72
|
+
spans = opts.buildSpans(result.symbols ?? [], opts.fileIdOf(result.filePath), isStoreable);
|
|
73
|
+
spansByResult.set(result, spans);
|
|
74
|
+
}
|
|
75
|
+
const line = rel.line_number ?? null;
|
|
76
|
+
const sourceId = opts.enclosingSpanId(spans, line);
|
|
77
|
+
if (!sourceId) return null;
|
|
78
|
+
return `${opts.projectId}:rel:${sourceId}:${String(rel.target ?? "")}:${String(rel.type ?? "")}:${line ?? "?"}`;
|
|
79
|
+
} catch {
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
for (const result of affected) {
|
|
84
|
+
for (const rel of result.relationships ?? []) {
|
|
85
|
+
if (rel.type !== OVERRIDES) continue;
|
|
86
|
+
if (Number(rel.confidence ?? 0) >= CONFIDENCE_FLOOR) {
|
|
87
|
+
stats.confirmed++;
|
|
88
|
+
stats.confirmedKeys.push({
|
|
89
|
+
target: String(rel.target ?? ""),
|
|
90
|
+
line: rel.line_number ?? null,
|
|
91
|
+
confidence: Number(rel.confidence ?? 0)
|
|
92
|
+
});
|
|
93
|
+
const key = relIdOf(result, rel);
|
|
94
|
+
if (key) stats.confirmedIds.push({ id: key, confidence: Number(rel.confidence ?? 0) });
|
|
95
|
+
else stats.confirmedIdsMissed++;
|
|
96
|
+
const fp = firstParseKeys.get(result);
|
|
97
|
+
if (fp && !fp.has(`${String(rel.target ?? "")}\0${rel.line_number ?? "?"}`)) {
|
|
98
|
+
stats.confirmedNewInReparse++;
|
|
99
|
+
}
|
|
100
|
+
} else {
|
|
101
|
+
stats.stillGuess++;
|
|
102
|
+
stats.stillGuessKeys.push({
|
|
103
|
+
target: String(rel.target ?? ""),
|
|
104
|
+
line: rel.line_number ?? null
|
|
105
|
+
});
|
|
106
|
+
const skey = relIdOf(result, rel);
|
|
107
|
+
if (skey) stats.stillGuessIds.push({ id: skey, line: rel.line_number ?? null });
|
|
108
|
+
else stats.stillGuessIdsMissed++;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
stats.confirmedIdsDuplicates = stats.confirmedIds.length - new Set(stats.confirmedIds.map((x) => x.id)).size;
|
|
113
|
+
return stats;
|
|
114
|
+
}
|
|
115
|
+
export {
|
|
116
|
+
populateOverrideCompanion
|
|
117
|
+
};
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CROSS_SYMBOL_TAINT_QUERY,
|
|
3
|
+
ParallelIndexerConfig,
|
|
4
|
+
admitsShellShebang,
|
|
5
|
+
backfillEmbeddingBlobs,
|
|
6
|
+
backgroundEmbedMetrics,
|
|
7
|
+
buildStoreableSpans,
|
|
8
|
+
calculateGravityScores,
|
|
9
|
+
collectDirChanges,
|
|
10
|
+
describePoolWorkerUnavailable,
|
|
11
|
+
discoverIndexableFiles,
|
|
12
|
+
embeddingDrainPending,
|
|
13
|
+
enclosingNonContainerId,
|
|
14
|
+
enclosingSpanId,
|
|
15
|
+
enclosingSpanIdByName,
|
|
16
|
+
flushBackgroundEmbeddings,
|
|
17
|
+
getIndexingStats,
|
|
18
|
+
hasValidExtension,
|
|
19
|
+
indexProjectParallel,
|
|
20
|
+
makeStoreableName,
|
|
21
|
+
parallelIndexerCliSkipPatterns,
|
|
22
|
+
pendingEmbeddingCount,
|
|
23
|
+
processWithWorkerPool,
|
|
24
|
+
purgeDeletedFiles,
|
|
25
|
+
reindexFilesParallel,
|
|
26
|
+
repairInEdges,
|
|
27
|
+
resolveCrossSymbolTaints,
|
|
28
|
+
runBoundedPostProcessing,
|
|
29
|
+
runPostProcessing,
|
|
30
|
+
shouldSkipCli,
|
|
31
|
+
snapshotInEdges,
|
|
32
|
+
storeResults,
|
|
33
|
+
surveyEmbeddingIntegrity,
|
|
34
|
+
surveyEmbeddingModels,
|
|
35
|
+
wipeProjectData
|
|
36
|
+
} from "./chunk-ZETTGPAW.js";
|
|
37
|
+
import "./chunk-4H22TLOT.js";
|
|
38
|
+
import "./chunk-GEFFO6O2.js";
|
|
39
|
+
import "./chunk-NO3U3FJQ.js";
|
|
40
|
+
import "./chunk-DYM4FQEE.js";
|
|
41
|
+
import "./chunk-QKTRECYS.js";
|
|
42
|
+
import "./chunk-3ZTOHHSW.js";
|
|
43
|
+
import "./chunk-BQ3OVQ3P.js";
|
|
44
|
+
import "./chunk-SK6YVHFZ.js";
|
|
45
|
+
import "./chunk-2BSKD7O3.js";
|
|
46
|
+
import "./chunk-KAET47ZL.js";
|
|
47
|
+
import "./chunk-KCDECRJY.js";
|
|
48
|
+
import "./chunk-D2Q4Y47A.js";
|
|
49
|
+
import "./chunk-SM7RFQRO.js";
|
|
50
|
+
import "./chunk-L5TDYKYK.js";
|
|
51
|
+
import "./chunk-ROMM6KMC.js";
|
|
52
|
+
import "./chunk-MLKGABMK.js";
|
|
53
|
+
export {
|
|
54
|
+
CROSS_SYMBOL_TAINT_QUERY,
|
|
55
|
+
ParallelIndexerConfig,
|
|
56
|
+
admitsShellShebang,
|
|
57
|
+
backfillEmbeddingBlobs,
|
|
58
|
+
backgroundEmbedMetrics,
|
|
59
|
+
buildStoreableSpans,
|
|
60
|
+
calculateGravityScores,
|
|
61
|
+
collectDirChanges,
|
|
62
|
+
describePoolWorkerUnavailable,
|
|
63
|
+
discoverIndexableFiles,
|
|
64
|
+
embeddingDrainPending,
|
|
65
|
+
enclosingNonContainerId,
|
|
66
|
+
enclosingSpanId,
|
|
67
|
+
enclosingSpanIdByName,
|
|
68
|
+
flushBackgroundEmbeddings,
|
|
69
|
+
getIndexingStats,
|
|
70
|
+
hasValidExtension,
|
|
71
|
+
indexProjectParallel,
|
|
72
|
+
makeStoreableName,
|
|
73
|
+
parallelIndexerCliSkipPatterns,
|
|
74
|
+
pendingEmbeddingCount,
|
|
75
|
+
processWithWorkerPool,
|
|
76
|
+
purgeDeletedFiles,
|
|
77
|
+
reindexFilesParallel,
|
|
78
|
+
repairInEdges,
|
|
79
|
+
resolveCrossSymbolTaints,
|
|
80
|
+
runBoundedPostProcessing,
|
|
81
|
+
runPostProcessing,
|
|
82
|
+
shouldSkipCli,
|
|
83
|
+
snapshotInEdges,
|
|
84
|
+
storeResults,
|
|
85
|
+
surveyEmbeddingIntegrity,
|
|
86
|
+
surveyEmbeddingModels,
|
|
87
|
+
wipeProjectData
|
|
88
|
+
};
|