@backbencher/brain 0.0.0-stage → 0.1.0

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.
Files changed (319) hide show
  1. package/CHANGELOG.md +298 -0
  2. package/EMBEDDINGS.md +355 -0
  3. package/LICENSE +21 -0
  4. package/README.md +415 -2
  5. package/bin/bb +13 -0
  6. package/dist/analysis-exclusions-7ZJDXOVZ.js +35 -0
  7. package/dist/brain-index-health-KY7K552E.js +17 -0
  8. package/dist/brain-relationship-enrichment-QH7OOHUF.js +558 -0
  9. package/dist/brain.sql-EIM4WS4D.js +29 -0
  10. package/dist/chunk-2BSKD7O3.js +40 -0
  11. package/dist/chunk-2DE27DVC.js +1314 -0
  12. package/dist/chunk-2RRBMNBQ.js +322 -0
  13. package/dist/chunk-2RTN2DFU.js +711 -0
  14. package/dist/chunk-2WXYNLBA.js +29 -0
  15. package/dist/chunk-3CTFIJJB.js +17 -0
  16. package/dist/chunk-3LFTSMIV.js +174 -0
  17. package/dist/chunk-47HKX4AJ.js +930 -0
  18. package/dist/chunk-4H22TLOT.js +543 -0
  19. package/dist/chunk-5SD45FLC.js +818 -0
  20. package/dist/chunk-66A5ZFYA.js +1758 -0
  21. package/dist/chunk-6AIRWAO2.js +247 -0
  22. package/dist/chunk-6WNGD3NN.js +196 -0
  23. package/dist/chunk-7AN7U5IZ.js +371 -0
  24. package/dist/chunk-BHB7BYYI.js +626 -0
  25. package/dist/chunk-BQ3OVQ3P.js +125 -0
  26. package/dist/chunk-CW4XXSNN.js +1479 -0
  27. package/dist/chunk-D2Q4Y47A.js +53 -0
  28. package/dist/chunk-DIYAGQJL.js +34 -0
  29. package/dist/chunk-DYM4FQEE.js +90 -0
  30. package/dist/chunk-EWMWK7WN.js +75 -0
  31. package/dist/chunk-FVVQTSIM.js +3427 -0
  32. package/dist/chunk-FWSL4VG6.js +1290 -0
  33. package/dist/chunk-GBI7V7KY.js +69 -0
  34. package/dist/chunk-GEFFO6O2.js +152 -0
  35. package/dist/chunk-HOWAQXJO.js +236 -0
  36. package/dist/chunk-HQSPJDHI.js +613 -0
  37. package/dist/chunk-IFZNR5UJ.js +2863 -0
  38. package/dist/chunk-J4PMBXQQ.js +336 -0
  39. package/dist/chunk-KAET47ZL.js +125 -0
  40. package/dist/chunk-KCDECRJY.js +440 -0
  41. package/dist/chunk-KLK3PBTO.js +1119 -0
  42. package/dist/chunk-L5TDYKYK.js +76 -0
  43. package/dist/chunk-MLKGABMK.js +9 -0
  44. package/dist/chunk-OWISBAOF.js +61 -0
  45. package/dist/chunk-PJTNGD3Z.js +6924 -0
  46. package/dist/chunk-QLK6ED4Q.js +235 -0
  47. package/dist/chunk-R2GW4F6R.js +19 -0
  48. package/dist/chunk-RCMTFSEF.js +87 -0
  49. package/dist/chunk-RH7KC5HU.js +12050 -0
  50. package/dist/chunk-RM3PY6TG.js +376 -0
  51. package/dist/chunk-ROMM6KMC.js +433 -0
  52. package/dist/chunk-SK6YVHFZ.js +211 -0
  53. package/dist/chunk-SM7RFQRO.js +214 -0
  54. package/dist/chunk-UFE77L67.js +782 -0
  55. package/dist/chunk-UGR4QIGS.js +67 -0
  56. package/dist/chunk-UUNHHX4M.js +13 -0
  57. package/dist/chunk-V44PGPA6.js +2104 -0
  58. package/dist/chunk-VL52PL2T.js +71 -0
  59. package/dist/chunk-VURYFIHW.js +201 -0
  60. package/dist/chunk-XJKJYIPP.js +7436 -0
  61. package/dist/chunk-YI6FF2ZR.js +340 -0
  62. package/dist/cli/index.js +37 -0
  63. package/dist/config-HZAAYDP3.js +10 -0
  64. package/dist/content-search-642F7E5V.js +593 -0
  65. package/dist/database-TCTZDLE5.js +9 -0
  66. package/dist/doctor-GXCKSJOX.js +395 -0
  67. package/dist/edit-engine-KM7MPFEC.js +51 -0
  68. package/dist/engine-42TZFNIZ.js +11 -0
  69. package/dist/engine-LO6L4JLQ.js +18 -0
  70. package/dist/fingerprint-XDXFRWO6.js +33 -0
  71. package/dist/framework-intelligence-DWFCKV44.js +860 -0
  72. package/dist/freshness-3K6VU5OT.js +174 -0
  73. package/dist/graph-engine-PL5YA7BA.js +21 -0
  74. package/dist/graph_request-MM4REP6H.js +350 -0
  75. package/dist/impact_request-WDE47IZ5.js +68 -0
  76. package/dist/index-space-IUUN5WYV.js +15 -0
  77. package/dist/index-status-6BD7UBHR.js +34 -0
  78. package/dist/index.js +159 -0
  79. package/dist/instance-FO6QZRLH.js +19 -0
  80. package/dist/language-detection-DFCAU5DZ.js +11 -0
  81. package/dist/lsp/server.js +4301 -0
  82. package/dist/mcp/server.js +132 -0
  83. package/dist/onboard-DIQZV2NW.js +161 -0
  84. package/dist/override-companion-pass-XR7MHTP7.js +117 -0
  85. package/dist/parallel-indexer-4PW3AFXP.js +88 -0
  86. package/dist/pool-worker.js +1153 -0
  87. package/dist/project-health-ZS5TS2Z6.js +94 -0
  88. package/dist/project-index-5SDPHITE.js +57 -0
  89. package/dist/project-registry-DGZBIZS7.js +355 -0
  90. package/dist/real-bash-analyzer-SXSV67E2.js +2201 -0
  91. package/dist/real-c-analyzer-SY7FTZ6W.js +5942 -0
  92. package/dist/real-clean-analyzer-IGDHHLZK.js +3470 -0
  93. package/dist/real-clojure-analyzer-4OH7IWLB.js +2818 -0
  94. package/dist/real-cpp-analyzer-7LTDRJRJ.js +4101 -0
  95. package/dist/real-csharp-analyzer-KICU3TLH.js +3298 -0
  96. package/dist/real-css-analyzer-HPU277Q6.js +15 -0
  97. package/dist/real-dart-analyzer-7LZ5LCMW.js +3944 -0
  98. package/dist/real-elixir-analyzer-BE3MEVZO.js +2192 -0
  99. package/dist/real-erlang-analyzer-BZMAKYBK.js +1731 -0
  100. package/dist/real-fsharp-analyzer-5QLTOV3E.js +2390 -0
  101. package/dist/real-go-analyzer-POD7MZQR.js +4126 -0
  102. package/dist/real-graphql-analyzer-MAQRZ6QW.js +1442 -0
  103. package/dist/real-groovy-analyzer-MEWSUPMJ.js +2285 -0
  104. package/dist/real-haskell-analyzer-I5L2GR3Y.js +2533 -0
  105. package/dist/real-hcl-analyzer-DBOPXSWJ.js +725 -0
  106. package/dist/real-html-analyzer-O63XZLZD.js +1759 -0
  107. package/dist/real-java-analyzer-CHCW3EKA.js +4677 -0
  108. package/dist/real-javascript-analyzer-QAAJQYZE.js +14 -0
  109. package/dist/real-json-analyzer-UGBR7YQN.js +1640 -0
  110. package/dist/real-julia-analyzer-35Q4GHOZ.js +2085 -0
  111. package/dist/real-kotlin-analyzer-GRAYCWW2.js +3956 -0
  112. package/dist/real-lua-analyzer-5BAPDZDF.js +1957 -0
  113. package/dist/real-makefile-analyzer-YJKAHNAS.js +920 -0
  114. package/dist/real-markdown-analyzer-UKUQZO4F.js +1215 -0
  115. package/dist/real-matlab-analyzer-FVIKQZKG.js +480 -0
  116. package/dist/real-nim-analyzer-M7FAIABG.js +3603 -0
  117. package/dist/real-objective-c-analyzer-XMYQIGQI.js +1518 -0
  118. package/dist/real-perl-analyzer-ZLY6M2DZ.js +1865 -0
  119. package/dist/real-php-analyzer-KI2ZAM7X.js +9368 -0
  120. package/dist/real-powershell-analyzer-B3T5ZP6U.js +2915 -0
  121. package/dist/real-protobuf-analyzer-23OZ75XV.js +867 -0
  122. package/dist/real-python-analyzer-I4TIUB6D.js +4880 -0
  123. package/dist/real-r-analyzer-FJZJXXS6.js +2596 -0
  124. package/dist/real-ruby-analyzer-M3UFIVTQ.js +2429 -0
  125. package/dist/real-rust-analyzer-LVSONPAN.js +3359 -0
  126. package/dist/real-scala-analyzer-CWPI33Q2.js +3293 -0
  127. package/dist/real-scss-analyzer-TGRJQ7TH.js +1515 -0
  128. package/dist/real-solidity-analyzer-4P2VBVWA.js +2608 -0
  129. package/dist/real-sql-analyzer-J7DYZOZR.js +3840 -0
  130. package/dist/real-svelte-analyzer-NHEN2SX5.js +2532 -0
  131. package/dist/real-swift-analyzer-2NSYULWI.js +2311 -0
  132. package/dist/real-toml-analyzer-L3C66L7Q.js +929 -0
  133. package/dist/real-typescript-analyzer-FTC6ETRQ.js +14 -0
  134. package/dist/real-vb-analyzer-ORY7LAQS.js +3145 -0
  135. package/dist/real-vba-analyzer-JH2TTUFI.js +466 -0
  136. package/dist/real-vue-analyzer-OO4FUGBV.js +2680 -0
  137. package/dist/real-xml-analyzer-6CQVR477.js +2405 -0
  138. package/dist/real-yaml-analyzer-J6MQG3YX.js +3528 -0
  139. package/dist/real-zig-analyzer-EFKCPJNU.js +2430 -0
  140. package/dist/regex-search-OPTLKUN5.js +239 -0
  141. package/dist/rules-I453JTRC.js +152 -0
  142. package/dist/scoped-path-MJYWJZQX.js +11 -0
  143. package/dist/setup-show-Y5GB5KXA.js +15 -0
  144. package/dist/setup-wizard-G5YYR5T6.js +24 -0
  145. package/dist/symbol-search-KB4MU4SI.js +16 -0
  146. package/dist/taint-YOTN5X55.js +202 -0
  147. package/dist/taint-analyzer-N7YLZU3N.js +163 -0
  148. package/dist/tool-handlers-G4NAGJIH.js +72 -0
  149. package/dist/tool-registry-BPEJNSZG.js +17 -0
  150. package/dist/tool-validation-RF675A3C.js +32 -0
  151. package/dist/type-inference-4Y7WTMFE.js +13 -0
  152. package/dist/vector-binary-LMY4QGAN.js +19 -0
  153. package/dist/version-LXGNFO37.js +9 -0
  154. package/dist/wasm-NMWO3WXY.js +16 -0
  155. package/docs/EMBEDDINGS.md +132 -0
  156. package/docs/README.md +178 -0
  157. package/docs/data/m10-baseline.json +602 -0
  158. package/docs/data/m10-benchmark-baseline.json +57 -0
  159. package/docs/data/m10-benchmark-last-run.json +127 -0
  160. package/docs/data/m10-final-audit.json +215 -0
  161. package/docs/data/m12-final-audit.json +138 -0
  162. package/docs/data/m12-surface-matrix.json +50 -0
  163. package/docs/data/public-tools.json +1902 -0
  164. package/docs/indexing/DEAD-ASSETS.md +88 -0
  165. package/docs/indexing/INDEXER-REVIEW.md +634 -0
  166. package/docs/indexing/PERFORMANCE-FINDINGS.md +106 -0
  167. package/docs/indexing/README.md +427 -0
  168. package/docs/indexing/discovery-matrix.md +41 -0
  169. package/docs/indexing/embeddings.md +325 -0
  170. package/docs/indexing/environment-variables.md +77 -0
  171. package/docs/indexing/performance.md +323 -0
  172. package/docs/indexing/resume.md +345 -0
  173. package/docs/indexing/troubleshooting.md +391 -0
  174. package/docs/man/bb.1 +190 -0
  175. package/docs/tools/bb_analyze.md +147 -0
  176. package/docs/tools/bb_annotate.md +110 -0
  177. package/docs/tools/bb_annotations.md +106 -0
  178. package/docs/tools/bb_ask.md +101 -0
  179. package/docs/tools/bb_cross_language.md +103 -0
  180. package/docs/tools/bb_doc.md +169 -0
  181. package/docs/tools/bb_edit.md +185 -0
  182. package/docs/tools/bb_graph.md +169 -0
  183. package/docs/tools/bb_health.md +156 -0
  184. package/docs/tools/bb_impact.md +117 -0
  185. package/docs/tools/bb_index.md +108 -0
  186. package/docs/tools/bb_migrate.md +135 -0
  187. package/docs/tools/bb_patterns.md +140 -0
  188. package/docs/tools/bb_search.md +150 -0
  189. package/docs/tools/bb_security.md +100 -0
  190. package/docs/tools/bb_visualize.md +184 -0
  191. package/grammars/README.md +57 -0
  192. package/grammars/THIRD-PARTY-NOTICES.md +50 -0
  193. package/grammars/tree-sitter-c/LICENSE +21 -0
  194. package/grammars/tree-sitter-clojure/LICENSE.md +21 -0
  195. package/grammars/tree-sitter-cpp/LICENSE +21 -0
  196. package/grammars/tree-sitter-csharp/LICENSE +21 -0
  197. package/grammars/tree-sitter-css/LICENSE +21 -0
  198. package/grammars/tree-sitter-css/README.md +21 -0
  199. package/grammars/tree-sitter-dart/LICENSE +20 -0
  200. package/grammars/tree-sitter-dart-upstream/LICENSE +20 -0
  201. package/grammars/tree-sitter-dart-upstream/README.md +18 -0
  202. package/grammars/tree-sitter-elixir/LICENSE +176 -0
  203. package/grammars/tree-sitter-elixir/README.md +11 -0
  204. package/grammars/tree-sitter-fsharp/LICENSE +21 -0
  205. package/grammars/tree-sitter-fsharp/README.md +45 -0
  206. package/grammars/tree-sitter-graphql/LICENSE +21 -0
  207. package/grammars/tree-sitter-graphql/README.md +106 -0
  208. package/grammars/tree-sitter-groovy/LICENSE +21 -0
  209. package/grammars/tree-sitter-groovy/README.md +4 -0
  210. package/grammars/tree-sitter-haskell/LICENSE +21 -0
  211. package/grammars/tree-sitter-haskell/README.md +394 -0
  212. package/grammars/tree-sitter-hcl/CHANGELOG.md +102 -0
  213. package/grammars/tree-sitter-hcl/LICENSE +201 -0
  214. package/grammars/tree-sitter-hcl/README.md +39 -0
  215. package/grammars/tree-sitter-html/LICENSE +21 -0
  216. package/grammars/tree-sitter-html/README.md +21 -0
  217. package/grammars/tree-sitter-julia/LICENSE +21 -0
  218. package/grammars/tree-sitter-julia/README.md +24 -0
  219. package/grammars/tree-sitter-kotlin/LICENSE +9 -0
  220. package/grammars/tree-sitter-lua/LICENSE.md +21 -0
  221. package/grammars/tree-sitter-lua/README.md +29 -0
  222. package/grammars/tree-sitter-make/LICENSE +21 -0
  223. package/grammars/tree-sitter-matlab/LICENSE +19 -0
  224. package/grammars/tree-sitter-matlab/README.md +99 -0
  225. package/grammars/tree-sitter-nim/LICENSE +373 -0
  226. package/grammars/tree-sitter-nim/README.md +46 -0
  227. package/grammars/tree-sitter-objc/LICENSE +21 -0
  228. package/grammars/tree-sitter-objc/README.md +20 -0
  229. package/grammars/tree-sitter-perl/LICENSE +7 -0
  230. package/grammars/tree-sitter-perl/README.md +100 -0
  231. package/grammars/tree-sitter-powershell/LICENSE +21 -0
  232. package/grammars/tree-sitter-powershell/README.md +7 -0
  233. package/grammars/tree-sitter-proto/LICENSE +21 -0
  234. package/grammars/tree-sitter-proto/README.md +105 -0
  235. package/grammars/tree-sitter-r/LICENSE +9 -0
  236. package/grammars/tree-sitter-r/README.md +66 -0
  237. package/grammars/tree-sitter-ruby/LICENSE +22 -0
  238. package/grammars/tree-sitter-scss/LICENSE +21 -0
  239. package/grammars/tree-sitter-scss/README.md +17 -0
  240. package/grammars/tree-sitter-solidity/LICENSE +7 -0
  241. package/grammars/tree-sitter-sql/LICENSE +21 -0
  242. package/grammars/tree-sitter-typescript/LICENSE +21 -0
  243. package/grammars/tree-sitter-vba/LICENSE +21 -0
  244. package/grammars/tree-sitter-vba/README.md +738 -0
  245. package/grammars/tree-sitter-vbnet/LICENSE +21 -0
  246. package/grammars/tree-sitter-vbnet/README.md +322 -0
  247. package/grammars/tree-sitter-xml/LICENSE +19 -0
  248. package/grammars/tree-sitter-yaml/LICENSE +20 -0
  249. package/grammars/tree-sitter-yaml/README.md +21 -0
  250. package/package.json +184 -4
  251. package/wasm/dart.wasm +0 -0
  252. package/wasm/tree-sitter-bash.wasm +0 -0
  253. package/wasm/tree-sitter-c.wasm +0 -0
  254. package/wasm/tree-sitter-c_sharp.wasm +0 -0
  255. package/wasm/tree-sitter-clean.wasm +0 -0
  256. package/wasm/tree-sitter-clojure.wasm +0 -0
  257. package/wasm/tree-sitter-core_schema.wasm +0 -0
  258. package/wasm/tree-sitter-cpp.wasm +0 -0
  259. package/wasm/tree-sitter-css.wasm +0 -0
  260. package/wasm/tree-sitter-dart.wasm +0 -0
  261. package/wasm/tree-sitter-elisp.wasm +0 -0
  262. package/wasm/tree-sitter-elixir.wasm +0 -0
  263. package/wasm/tree-sitter-elm.wasm +0 -0
  264. package/wasm/tree-sitter-embedded_template.wasm +0 -0
  265. package/wasm/tree-sitter-erlang.wasm +0 -0
  266. package/wasm/tree-sitter-fsharp.wasm +0 -0
  267. package/wasm/tree-sitter-fsharp_signature.wasm +0 -0
  268. package/wasm/tree-sitter-go.wasm +0 -0
  269. package/wasm/tree-sitter-graphql.wasm +0 -0
  270. package/wasm/tree-sitter-groovy.wasm +0 -0
  271. package/wasm/tree-sitter-haskell.wasm +0 -0
  272. package/wasm/tree-sitter-hcl.wasm +0 -0
  273. package/wasm/tree-sitter-html.wasm +0 -0
  274. package/wasm/tree-sitter-java.wasm +0 -0
  275. package/wasm/tree-sitter-javascript.wasm +0 -0
  276. package/wasm/tree-sitter-json.wasm +0 -0
  277. package/wasm/tree-sitter-json_schema.wasm +0 -0
  278. package/wasm/tree-sitter-julia.wasm +0 -0
  279. package/wasm/tree-sitter-kotlin.wasm +0 -0
  280. package/wasm/tree-sitter-lua.wasm +0 -0
  281. package/wasm/tree-sitter-make.wasm +0 -0
  282. package/wasm/tree-sitter-markdown.wasm +0 -0
  283. package/wasm/tree-sitter-markdown_inline.wasm +0 -0
  284. package/wasm/tree-sitter-matlab.wasm +0 -0
  285. package/wasm/tree-sitter-nim.wasm +0 -0
  286. package/wasm/tree-sitter-objc.wasm +0 -0
  287. package/wasm/tree-sitter-ocaml.wasm +0 -0
  288. package/wasm/tree-sitter-perl.wasm +0 -0
  289. package/wasm/tree-sitter-php.wasm +0 -0
  290. package/wasm/tree-sitter-php_only.wasm +0 -0
  291. package/wasm/tree-sitter-powershell.wasm +0 -0
  292. package/wasm/tree-sitter-protobuf.wasm +0 -0
  293. package/wasm/tree-sitter-python.wasm +0 -0
  294. package/wasm/tree-sitter-ql.wasm +0 -0
  295. package/wasm/tree-sitter-r.wasm +0 -0
  296. package/wasm/tree-sitter-rescript.wasm +0 -0
  297. package/wasm/tree-sitter-ruby.wasm +0 -0
  298. package/wasm/tree-sitter-rust.wasm +0 -0
  299. package/wasm/tree-sitter-scala.wasm +0 -0
  300. package/wasm/tree-sitter-scss.wasm +0 -0
  301. package/wasm/tree-sitter-solidity.wasm +0 -0
  302. package/wasm/tree-sitter-sql.wasm +0 -0
  303. package/wasm/tree-sitter-svelte.wasm +0 -0
  304. package/wasm/tree-sitter-swift.wasm +0 -0
  305. package/wasm/tree-sitter-systemrdl.wasm +0 -0
  306. package/wasm/tree-sitter-terraform.wasm +0 -0
  307. package/wasm/tree-sitter-tlaplus.wasm +0 -0
  308. package/wasm/tree-sitter-toml.wasm +0 -0
  309. package/wasm/tree-sitter-tsx.wasm +0 -0
  310. package/wasm/tree-sitter-typescript.wasm +0 -0
  311. package/wasm/tree-sitter-vba.wasm +0 -0
  312. package/wasm/tree-sitter-vbnet.wasm +0 -0
  313. package/wasm/tree-sitter-vue.wasm +0 -0
  314. package/wasm/tree-sitter-xml.wasm +0 -0
  315. package/wasm/tree-sitter-yaml.wasm +0 -0
  316. package/wasm/tree-sitter-zig.wasm +0 -0
  317. package/wasm/tree-sitter.wasm +0 -0
  318. package/wasm/tsx.wasm +0 -0
  319. package/wasm/typescript.wasm +0 -0
@@ -0,0 +1,247 @@
1
+ import {
2
+ expandBatchRequest
3
+ } from "./chunk-CW4XXSNN.js";
4
+
5
+ // src/mcp/tool-validation.ts
6
+ var PARAMETER_ALIASES = {
7
+ bb_graph: { target: "symbol", symbolName: "symbol", query: "symbol" },
8
+ bb_impact: { target: "symbol", symbolName: "symbol", query: "symbol" },
9
+ bb_cross_language: { target: "symbol", symbolName: "symbol", query: "symbol" },
10
+ bb_annotate: { target: "symbol", query: "symbol" },
11
+ bb_annotations: { target: "symbol", query: "symbol" },
12
+ bb_analyze: { symbol: "target", symbolName: "target", query: "target" },
13
+ bb_doc: { symbol: "target", symbolName: "target", query: "target" },
14
+ bb_visualize: { symbol: "target", query: "target" }
15
+ };
16
+ function resolveParameterAliases(tool, args) {
17
+ const map = PARAMETER_ALIASES[tool];
18
+ if (!map) return args;
19
+ const out = { ...args };
20
+ for (const [alias, canonical] of Object.entries(map)) {
21
+ if (!(alias in out)) continue;
22
+ const aliasValue = out[alias];
23
+ delete out[alias];
24
+ if (aliasValue === void 0 || aliasValue === null || typeof aliasValue === "string" && aliasValue.trim() === "") continue;
25
+ const canonicalValue = out[canonical];
26
+ if (canonicalValue === void 0 || canonicalValue === null || canonicalValue === "") {
27
+ out[canonical] = aliasValue;
28
+ continue;
29
+ }
30
+ if (String(canonicalValue) !== String(aliasValue)) {
31
+ throw new Error(
32
+ `${tool}: ${canonical} and ${alias} are aliases with different values ("${canonicalValue}" vs "${aliasValue}") \u2014 pass one`
33
+ );
34
+ }
35
+ }
36
+ return out;
37
+ }
38
+ function validateToolArguments(descriptor, args) {
39
+ if (!args || typeof args !== "object" || Array.isArray(args)) throw new Error(`${descriptor.name}: arguments must be a JSON object`);
40
+ const object = resolveParameterAliases(descriptor.name, args);
41
+ const properties = descriptor.inputSchema.properties ?? {};
42
+ const unknown = Object.keys(object).filter((key) => !(key in properties));
43
+ if (unknown.length) {
44
+ const aliases = Object.keys(PARAMETER_ALIASES[descriptor.name] ?? {});
45
+ const accepted = Object.keys(properties);
46
+ throw new Error(
47
+ `${descriptor.name}: unknown or irrelevant options: ${unknown.join(", ")} \u2014 accepted options: ${accepted.join(", ")}` + (aliases.length ? ` (aliases accepted: ${aliases.join(", ")})` : "")
48
+ );
49
+ }
50
+ for (const required of descriptor.inputSchema.required ?? []) {
51
+ if (!(required in object) || object[required] === void 0 || object[required] === null) throw new Error(`${descriptor.name}: missing required option: ${required}`);
52
+ }
53
+ for (const [name, value] of Object.entries(object)) validateProperty(descriptor.name, name, value, properties[name]);
54
+ validateModeSpecificArguments(descriptor.name, object);
55
+ return object;
56
+ }
57
+ var SEARCH_OPTIONS_BY_MODE = {
58
+ symbols: ["mode", "query", "limit", "offset", "language", "symbolKind", "includeContent", "exact", "caseSensitive", "regex", "refresh"],
59
+ content: ["mode", "query", "limit", "offset", "language", "symbolKind", "refresh"],
60
+ symbol: ["mode", "query", "symbolName", "filePath", "limit", "offset", "refresh"],
61
+ file: ["mode", "filePath"]
62
+ };
63
+ function validateModeSpecificArguments(tool, args) {
64
+ if (tool === "bb_health" && args.paths !== void 0) {
65
+ const list = args.paths;
66
+ if (!Array.isArray(list)) throw new Error("bb_health paths must be an array of project-relative file paths");
67
+ if (list.length === 0) throw new Error("bb_health paths must name at least one file \u2014 an empty list would check nothing while looking like a completed check; omit the option for a project-wide report");
68
+ if (list.length > 50) throw new Error(`bb_health paths accepts at most 50 files (got ${list.length}) \u2014 for a whole-project census use freshness="complete" instead of naming files`);
69
+ for (const p of list) {
70
+ if (typeof p !== "string" || p.trim().length === 0) throw new Error("bb_health paths entries must be non-empty strings");
71
+ }
72
+ const trimmed = list.map((p) => p.trim());
73
+ if (new Set(trimmed).size !== trimmed.length) {
74
+ const dupes = trimmed.filter((p, i) => trimmed.indexOf(p) !== i);
75
+ throw new Error(`bb_health paths contains duplicate entries: ${[...new Set(dupes)].join(", ")} \u2014 each file is checked once, and a duplicate would report it twice`);
76
+ }
77
+ }
78
+ if (tool === "bb_health" && args.sampleSize !== void 0) {
79
+ const n = Number(args.sampleSize);
80
+ if (!Number.isInteger(n) || n < 1) {
81
+ throw new Error('bb_health sampleSize must be a whole number >= 1 \u2014 0 would mean checking no files, which this tool reports as a clean result; use freshness="complete" to check every indexed file');
82
+ }
83
+ }
84
+ if (tool === "bb_search") {
85
+ const mode = String(args.mode ?? "symbols");
86
+ const accepted = SEARCH_OPTIONS_BY_MODE[mode];
87
+ if (accepted) {
88
+ const irrelevant = Object.keys(args).filter((key) => !accepted.includes(key));
89
+ if (irrelevant.length > 0) {
90
+ throw new Error(`bb_search ${mode} mode does not accept: ${irrelevant.join(", ")} \u2014 accepted for ${mode}: ${accepted.join(", ")}`);
91
+ }
92
+ }
93
+ if (args.limit !== void 0 && Number(args.limit) > 2e3) {
94
+ throw new Error("bb_search: limit must be between 0 and 2000 \u2014 refused rather than clamped, so a returned page always means the page asked for");
95
+ }
96
+ if (mode === "file") {
97
+ if (typeof args.filePath !== "string" || args.filePath.trim().length === 0) {
98
+ throw new Error("bb_search file mode requires filePath");
99
+ }
100
+ return;
101
+ }
102
+ if (mode === "symbol") {
103
+ const name = typeof args.symbolName === "string" ? args.symbolName : "";
104
+ const query = typeof args.query === "string" ? args.query : "";
105
+ const hasName = name.trim().length > 0;
106
+ const hasQuery = query.trim().length > 0;
107
+ if (!hasName && !hasQuery) throw new Error("bb_search symbol mode requires a non-empty symbolName or query");
108
+ if (typeof args.symbolName === "string" && !hasName) {
109
+ throw new Error(
110
+ hasQuery ? `bb_search: symbolName must not be blank when query is given \u2014 drop symbolName, or pass a non-empty one` : "bb_search: symbolName must not be blank"
111
+ );
112
+ }
113
+ if (hasName && hasQuery && name.trim() !== query.trim()) {
114
+ throw new Error(`bb_search: symbolName ("${name.trim()}") and query ("${query.trim()}") disagree \u2014 pass one`);
115
+ }
116
+ return;
117
+ }
118
+ if (typeof args.query !== "string" || args.query.trim().length === 0) {
119
+ throw new Error(`bb_search ${mode} mode requires a non-empty query`);
120
+ }
121
+ }
122
+ if (tool === "bb_ask" && (typeof args.query !== "string" || args.query.trim().length === 0)) {
123
+ throw new Error("bb_ask requires a non-empty query");
124
+ }
125
+ if (tool === "bb_ask" && args.limit !== void 0) {
126
+ const limit = Number(args.limit);
127
+ if (!Number.isInteger(limit) || limit < 1 || limit > 100) {
128
+ throw new Error("bb_ask: limit must be a whole number between 1 and 100 \u2014 0 would return no matches (it is refused, not silently answered), and above 100 the answer stops being a bounded page; refused rather than clamped.");
129
+ }
130
+ }
131
+ if (tool === "bb_visualize") {
132
+ const scope = String(args.scope ?? "project");
133
+ if (["file", "module", "symbol", "feature"].includes(scope) && (typeof args.target !== "string" || args.target.trim().length === 0)) {
134
+ throw new Error(`bb_visualize ${scope} scope requires a non-empty target`);
135
+ }
136
+ }
137
+ if ((tool === "bb_graph" || tool === "bb_impact") && args.relationshipTypes !== void 0) {
138
+ const list = args.relationshipTypes;
139
+ if (!Array.isArray(list) || list.length === 0) {
140
+ throw new Error(`${tool} relationshipTypes must name at least one relationship kind`);
141
+ }
142
+ if (list.some((t) => typeof t !== "string" || t.trim().length === 0)) {
143
+ throw new Error(`${tool} relationshipTypes must be an array of non-empty relationship kind names`);
144
+ }
145
+ }
146
+ if (tool === "bb_patterns" && args.confidenceThreshold != null) {
147
+ const c = Number(args.confidenceThreshold);
148
+ if (!Number.isFinite(c) || c < 0 || c > 1) {
149
+ throw new Error("bb_patterns confidenceThreshold must be between 0 and 1");
150
+ }
151
+ }
152
+ if (tool === "bb_edit") {
153
+ validateEditArguments(args);
154
+ }
155
+ }
156
+ var EDIT_OPTIONS_BY_MODE = {
157
+ write: ["mode", "dryRun", "filePath", "content", "newContent", "format", "overwrite"],
158
+ update: ["mode", "dryRun", "filePath", "symbolName", "lineStart", "content", "newContent", "format"],
159
+ insert: ["mode", "dryRun", "filePath", "targetSymbolName", "position", "lineStart", "content", "newContent", "format"],
160
+ delete: ["mode", "dryRun", "filePath", "symbolName", "lineStart", "force", "format"],
161
+ refactor: ["mode", "dryRun", "filePath", "symbolName", "lineStart", "newName", "format"],
162
+ // M71.D13: a batch is its own mode rather than a flag on the five. Its options
163
+ // are the batch-wide ones plus the entries; every per-file option is the
164
+ // entry's own business, which is why none of them appear here — `batch` accepts
165
+ // no `filePath`, no `symbolName`, and no `content` at the top level, and a
166
+ // caller who passes one is told so rather than having it silently ignored.
167
+ batch: ["mode", "dryRun", "edits", "files", "format"]
168
+ };
169
+ function validateBatchArguments(args) {
170
+ let entries;
171
+ try {
172
+ entries = expandBatchRequest(args);
173
+ } catch (e) {
174
+ throw new Error(`bb_edit ${e.message ?? String(e)}`);
175
+ }
176
+ for (const entry of entries) {
177
+ try {
178
+ validateEditArguments(entry.request);
179
+ } catch (e) {
180
+ throw new Error(`bb_edit batch entry ${entry.entry}: ${String(e.message).replace(/^bb_edit (?:batch entry \d+: )?/, "")}`);
181
+ }
182
+ }
183
+ }
184
+ function validateEditArguments(args) {
185
+ const mode = args.mode;
186
+ const allowed = EDIT_OPTIONS_BY_MODE[String(mode)];
187
+ if (allowed) {
188
+ const irrelevant = Object.keys(args).filter((key) => !allowed.includes(key));
189
+ if (irrelevant.length > 0) {
190
+ const hints = irrelevant.map((option) => {
191
+ const homes = Object.entries(EDIT_OPTIONS_BY_MODE).filter(([other, options]) => other !== String(mode) && options.includes(option)).map(([other]) => other);
192
+ return homes.length === 1 ? ` (${option} is accepted for ${homes[0]})` : "";
193
+ }).join("");
194
+ throw new Error(
195
+ `bb_edit ${String(mode)} mode does not accept: ${irrelevant.join(", ")}${hints} \u2014 accepted for ${String(mode)}: ${allowed.join(", ")}`
196
+ );
197
+ }
198
+ }
199
+ if (mode === "write") {
200
+ if (typeof args.filePath !== "string" || args.filePath.trim().length === 0) throw new Error("bb_edit write mode requires filePath");
201
+ if (typeof args.content !== "string" && typeof args.newContent !== "string") throw new Error("bb_edit write mode requires content or newContent");
202
+ } else if (mode === "update") {
203
+ if (typeof args.symbolName !== "string" || args.symbolName.trim().length === 0) throw new Error("bb_edit update mode requires symbolName");
204
+ if (typeof args.newContent !== "string" && typeof args.content !== "string") throw new Error("bb_edit update mode requires newContent or content");
205
+ } else if (mode === "insert") {
206
+ if (typeof args.targetSymbolName !== "string" || args.targetSymbolName.trim().length === 0) throw new Error("bb_edit insert mode requires targetSymbolName");
207
+ if (typeof args.newContent !== "string" && typeof args.content !== "string") throw new Error("bb_edit insert mode requires newContent or content");
208
+ } else if (mode === "delete") {
209
+ if (typeof args.symbolName !== "string" || args.symbolName.trim().length === 0) throw new Error("bb_edit delete mode requires symbolName");
210
+ } else if (mode === "refactor") {
211
+ if (typeof args.symbolName !== "string" || args.symbolName.trim().length === 0) throw new Error("bb_edit refactor mode requires symbolName");
212
+ if (typeof args.newName !== "string" || args.newName.trim().length === 0) throw new Error("bb_edit refactor mode requires newName");
213
+ } else if (mode === "batch") {
214
+ validateBatchArguments(args);
215
+ }
216
+ }
217
+ var INTEGER_PARAMETERS = /* @__PURE__ */ new Set([
218
+ "limit",
219
+ "offset",
220
+ "sampleSize",
221
+ "maxFiles",
222
+ "maxNodes",
223
+ "maxLinks",
224
+ "maxTokens",
225
+ "lineStart",
226
+ "edgeLimit"
227
+ ]);
228
+ function validateProperty(tool, name, value, schema) {
229
+ if (value === null) throw new Error(`${tool}: ${name} must not be null`);
230
+ const valid = schema.type === "string" ? typeof value === "string" : schema.type === "number" ? typeof value === "number" && Number.isFinite(value) : schema.type === "boolean" ? typeof value === "boolean" : schema.type === "array" ? Array.isArray(value) && (!schema.items || value.every((item) => item !== null && typeof item === schema.items.type)) : typeof value === "object" && !Array.isArray(value);
231
+ if (!valid) throw new Error(`${tool}: ${name} must be ${schema.type}`);
232
+ if (schema.enum && !schema.enum.includes(value)) throw new Error(`${tool}: ${name} must be one of: ${schema.enum.join(", ")}`);
233
+ if (schema.type === "number") {
234
+ if (INTEGER_PARAMETERS.has(name) && !Number.isInteger(value)) {
235
+ throw new Error(`${tool}: ${name} must be a whole number (got ${String(value)})`);
236
+ }
237
+ if (INTEGER_PARAMETERS.has(name) && value < 0) throw new Error(`${tool}: ${name} must be non-negative`);
238
+ }
239
+ if (name === "confidenceThreshold" && (value < 0 || value > 1)) throw new Error(`${tool}: confidenceThreshold must be between 0 and 1`);
240
+ }
241
+
242
+ export {
243
+ PARAMETER_ALIASES,
244
+ resolveParameterAliases,
245
+ validateToolArguments,
246
+ EDIT_OPTIONS_BY_MODE
247
+ };
@@ -0,0 +1,196 @@
1
+ // package.json
2
+ var package_default = {
3
+ name: "@backbencher/brain",
4
+ version: "0.1.0",
5
+ description: "Universal code intelligence: index any project with 50 language analyzers, query via CLI or any MCP host (Claude Code, Cursor, VS Code).",
6
+ type: "module",
7
+ author: "Muhammad Ishaq Khan <ishaq2321@users.noreply.github.com>",
8
+ homepage: "https://backbencher.cc",
9
+ repository: {
10
+ type: "git",
11
+ url: "git+https://github.com/backbencher-hq/backbencher-brain.git"
12
+ },
13
+ bugs: {
14
+ url: "https://github.com/backbencher-hq/backbencher-brain/issues"
15
+ },
16
+ main: "./dist/index.js",
17
+ types: "./dist/index.d.ts",
18
+ bin: {
19
+ bb: "./bin/bb"
20
+ },
21
+ man: [
22
+ "./docs/man/bb.1"
23
+ ],
24
+ files: [
25
+ "dist/",
26
+ "wasm/",
27
+ "bin/",
28
+ "docs/data/",
29
+ "docs/tools/",
30
+ "docs/man/",
31
+ "docs/indexing/",
32
+ "README.md",
33
+ "EMBEDDINGS.md",
34
+ "CHANGELOG.md",
35
+ "grammars/README.md",
36
+ "grammars/THIRD-PARTY-NOTICES.md",
37
+ "grammars/*/LICENSE*"
38
+ ],
39
+ exports: {
40
+ ".": "./dist/index.js",
41
+ "./*": "./dist/*.js"
42
+ },
43
+ engines: {
44
+ node: ">=18.0.0"
45
+ },
46
+ scripts: {
47
+ build: "tsup",
48
+ typecheck: "tsc --noEmit",
49
+ "typecheck:scripts": "tsc --noEmit -p tsconfig.scripts.json",
50
+ "verify:suite": "tsx script/m62/verify-suite.mts",
51
+ test: "npx tsx script/verify-engine.ts && npx tsx script/verify-schema.ts && npx tsx script/verify-tool-registry.ts && npx tsx script/verify-public-surface.ts && npx tsx script/verify-skills.ts && npx tsx script/verify-grammar-licenses.ts",
52
+ "verify:fast": "npx tsx script/m30/verify-governance.ts && npx tsx script/m30/verify-setup.ts && npx tsx script/m30/verify-first-run-hook.ts && npx tsx script/m30/verify-key-validation.ts && npx tsx script/m30/verify-rate-limit.ts && npx tsx script/m30/verify-honesty-docs.ts && npx tsx script/m32/verify-governance.ts && npx tsx script/m32/verify-smoke.ts && npx tsx script/m32/verify-setup-show.ts && npx tsx script/m32/verify-doctor.ts && npx tsx script/m32/verify-doctor-fix.ts && npx tsx script/m32/verify-honesty-docs.ts && npx tsx script/m33/verify-governance.ts && npx tsx script/m33/verify-version.ts && npx tsx script/m33/verify-unknown-command.ts && npx tsx script/m33/verify-man-page.ts && npx tsx script/m33/verify-help-parity.ts && npx tsx script/m33/verify-honesty-docs.ts && npx tsx script/m34/verify-governance.ts && npx tsx script/m34/verify-install-smoke.ts && npx tsx script/m34/verify-script-gate.ts && npx tsx script/m29/verify-wave-protocol.ts && npx tsx script/m29/verify-precision-ledger.ts && npx tsx script/m56/verify-governance.ts && npx tsx script/m15/verify-security-regressions.ts && npx tsx script/m15/verify-security-precision.ts && npx tsx script/verify-security.ts && npx tsx script/m20/verify-security-flow-boundary.ts && npx tsx script/m20/verify-security-adversarial.ts && npx tsx script/m20/verify-security-history.ts && npx tsx script/m15/verify-security-deep.ts",
53
+ prepublishOnly: "npm run build",
54
+ prepack: "npm run typecheck 1>&2 && npm run build 1>&2",
55
+ "docs:generate": "bun run script/verify-tool-docs.ts --write",
56
+ "verify:viz-browser": "bun run script/m13/verify-visualize-browser.ts",
57
+ "docs:verify": "bun run script/verify-tool-docs.ts && bun run script/verify-integration-docs.ts && bun run script/verify-doc-tool-surface.ts && bun run script/m31/verify-governance.ts && bun run script/m31/verify-gate-selftest.ts && bun run script/m31/tool-mode-corpus.ts --check && bun run script/m31/verify-tool-docs-deep.ts && bun run script/m31/verify-bb-docs-truth.ts && bun run script/m31/verify-tools-overview.ts && bun run script/m31/verify-closure.ts && bun run script/m31/wave2/verify-governance.ts",
58
+ verify: 'npm run build && bun run audit:parse-integrity-selftest && bun run audit:parse-integrity && bun run audit:grammar && bun run audit:grammar-consistency && bun run audit:grammar-pins && bun run audit:parse-success-selftest && bun run audit:parse-success && bun run audit:attr-line-base && bun run audit:include-names && bun run audit:name-surface && bun run audit:evidence && bun run audit:fixtures && bun run audit:fixture-provenance && bun run audit:mutations && bun run audit:script-typecheck && bun run audit:differential && bun run audit:pipeline && bun run audit:consistency && bun run audit:cluster && bun run audit:cluster-systems && bun run audit:completeness && bun run audit:analyzer-docs && bun run audit:fleet && bun run audit:carrier-census && bun run audit:toml-census && bun run audit:svelte-census && bun run audit:js-census && bun run script/verify-quality-gate.ts && bun run script/verify-m10-governance.ts && bun run script/verify-m10-baseline.ts && bun run script/verify-evidence-governance.ts && bun run script/verify-intelligence-consolidation.ts && bun run script/verify-analysis-governance.ts && bun run script/verify-m10-benchmarks.ts && bun run script/verify-deletion-safety.ts && bun run script/verify-contract-diff.ts && bun run script/m13/verify-contract-authority.ts && bun run script/m13/verify-evidence.ts && bun run script/m13/verify-safety-primitives.ts && bun run script/m13/verify-edit-boundary.ts && bun run script/m13/verify-edit-rename.ts && bun run script/m13/verify-edit-mask.ts && bun run script/m13/verify-edit-body.ts && bun run script/m13/verify-edit-freshness.ts && bun run script/m13/verify-edit-atomicity.ts && bun run script/m13/verify-edit-unit.ts && bun run script/m13/verify-edit-integration.ts && bun run script/m13/verify-edit-e2e.ts && bun run script/m13/verify-edit-corpus.ts && bun run script/m13/verify-edit-honesty.ts && bun run script/m13/verify-edit-batch.ts && bun run script/m13/verify-edit-docs.ts && bun run script/m13/verify-search-e2e.ts && bun run script/m13/verify-search-corpus.ts && bun run script/m13/verify-search-honesty.ts && bun run script/m13/verify-search-docs.ts && bun run script/m13/verify-ask-contract.ts && bun run script/m13/verify-ask-provenance.ts && bun run script/m13/verify-ask-adversarial.ts && bun run script/m13/verify-ask-integration.ts && bun run script/m13/verify-ask-e2e-corpus.ts && bun run script/m13/verify-ask-docs.ts && bun run script/m13/verify-ask-honesty.ts && bun run script/m13/verify-health-mutability.ts && bun run script/m13/verify-health-verbose.ts && bun run script/m13/verify-health-integrity.ts && bun run script/m13/verify-health-refresh.ts && bun run script/m13/verify-health-e2e-corpus.ts && bun run script/m13/verify-health-docs.ts && bun run script/m13/verify-patterns-contract.ts && bun run script/m13/verify-patterns-rules.ts && bun run script/m13/verify-patterns-orphans.ts && bun run script/m13/verify-patterns-e2e-corpus.ts && bun run script/m13/verify-patterns-docs.ts && bun run script/m13/verify-security-contract.ts && bun run script/m13/verify-security-handler.ts && bun run script/m13/verify-security-adversarial.ts && bun run script/m13/verify-security-docs.ts && bun run script/m13/verify-visualize-contract.ts && bun run script/m13/verify-visualize-fidelity.ts && bun run script/m13/verify-visualize-e2e-corpus.ts && bun run script/m13/verify-visualize-docs.ts && bun run script/m13/verify-visualize-options.ts && bun run script/m13/verify-visualize-target-literals.ts && bun run script/m13/verify-visualize-views.ts && bun run script/m13/verify-visualize-owner-fold.ts && bun run script/m13/verify-visualize-honesty.ts && bun run script/m13/verify-migrate-accuracy.ts && bun run script/m13/verify-migrate-e2e-corpus.ts && bun run script/m13/verify-migrate-docs.ts && bun run script/m13/verify-analyze-modes.ts && bun run script/m13/verify-analyze-handler.ts && bun run script/m13/verify-analyze-e2e-corpus.ts && bun run script/m13/verify-analyze-docs.ts && bun run script/m13/verify-doc-facts.ts && bun run script/m13/verify-doc-modes.ts && bun run script/m13/verify-doc-e2e-corpus.ts && bun run script/m13/verify-doc-docs.ts && bun run script/verify-m10-final-audit.ts && bun run script/verify-m11-corpus.ts && bun run script/verify-m11-differential-harness.ts && bun run script/verify-m11-parser-matrix.ts && bun run script/verify-m11-lifecycle.ts && bun run script/m14/verify-ruling-tables-registered.ts && bun run audit:population && bun run script/m12/verify-regex-census.ts && bun run script/verify-m12-final-audit.ts && bun run script/verify-core.ts && bun run script/verify-engine.ts && bun run script/verify-index.ts && bun run script/verify-embed.ts && bun run script/verify-freshness.ts && bun run script/verify-schema.ts && bun run script/verify-tool-registry.ts && bun run script/verify-public-surface.ts && bun run script/verify-tool-docs.ts && bun run script/verify-tool-page-claims.ts && bun run script/verify-integration-docs.ts && bun run script/verify-integration-runtime.ts && bun run script/verify-module-boundaries.ts && bun run script/verify-search-modes.ts && bun run script/verify-semantic.ts && bun run script/verify-graph.ts && bun run script/verify-analyze.ts && bun run script/verify-patterns.ts && bun run script/verify-security.ts && bun run script/verify-tool-history.ts && bun run script/verify-test-intel.ts && bun run script/verify-test-quality.ts && bun run script/verify-analysis-history.ts && bun run script/verify-edit.ts && bun run script/verify-health.ts && bun run script/verify-doc-design.ts && bun run script/verify-doc.ts && bun run script/verify-visualize-migrate.ts && bun run script/verify-cli-surface.ts && bun run script/verify-mcp.ts && bun run script/verify-contracts.ts && bun run script/verify-mcp-e2e.ts && bun run script/m12/verify-m12-surface.ts && bun run script/m15/verify-contracts.ts && bun run script/m15/verify-registry-handlers.ts && bun run script/m15/verify-safety-primitives.ts && bun run script/m15/verify-edit-classification.ts && bun run script/m15/verify-edit-regex.ts && bun run script/m15/verify-edit-mask.ts && bun run script/m15/verify-edit-crossfile.ts && bun run script/m15/verify-edit-e2e-docs.ts && bun run script/m15/verify-search-complete.ts && bun run script/m15/verify-ask-deep.ts && bun run script/m15/verify-health-deep.ts && bun run script/m15/verify-patterns-deep.ts && bun run script/m15/verify-security-deep.ts && bun run script/m15/verify-doc-deep.ts && bun run script/m15/verify-analyze-deep.ts && bun run script/m15/verify-visualize-migrate-deep.ts && bun run script/m15/verify-matrix-coverage-closure.ts && bun run script/m16/verify-edit-real-repo.ts && bun run script/m16/verify-ask-stats.ts && bun run script/m16/verify-tool-runs.ts && bun run script/m16/verify-docs-truth.ts && bun run script/m16/verify-embedding-lifecycle.ts && bun run script/m16/verify-closure-gate.ts && bun run script/m17/verify-closure-gate.ts && bun run script/m17/verify-mutation.ts && bun run script/m18/verify-closure-gate.ts && bun run script/m18/verify-mutation.ts && bun run script/m19/verify-scale-bench.ts && bun run script/m19/verify-giant-aspnetcore.ts && bun run script/m19/verify-giant-intellij.ts && bun run script/m19/rebuild-content-search-index.ts "${BB_INTELLIJ_ROOT:-$HOME/intellij-community}" && bun run script/m19/verify-retrieval-scale.ts && bun run script/m19/verify-fallback-scale.ts && bun run script/m19/verify-bench-docs.ts && bun run script/m19/verify-closure-gate.ts && bun run script/m19/verify-mutation.ts && bun run script/m20/verify-governance.ts && bun run script/m20/verify-corpus-registry.ts && bun run script/m20/verify-migration-methodology.ts && bun run script/m20/verify-migration-mappings.ts && bun run script/m20/verify-migration-order.ts && bun run script/m20/verify-patterns-parameter-scan.ts && bun run script/m20/verify-patterns-orphan-semantics.ts && bun run script/m20/verify-patterns-pagination-history.ts && bun run script/m20/verify-security-flow-boundary.ts && bun run script/m20/verify-security-adversarial.ts && bun run script/m20/verify-security-history.ts && bun run script/m20/verify-doc-modes.ts && bun run script/m20/verify-doc-citations.ts && bun run script/m20/verify-doc-examples-diagrams.ts && bun run script/m20/verify-cross-tool-parity.ts && bun run script/m20/verify-real-repo-ledger.ts && bun run audit:doc-truth-emissions-selftest && bun run audit:doc-truth-emissions && bun run audit:hygiene-selftest && bun run audit:hygiene && bun run audit:census && bun run audit:fixture-coverage-selftest && bun run audit:fixture-coverage && bun run audit:probes && bun run audit:evidence-harness && bun run audit:honesty && bun run script/m35/verify-governance.ts && bun run script/m35/verify-gate-selftest.ts && bun run script/m35/verify-freshness-core.ts && bun run script/m35/verify-envelope-contract.ts && npm run docs:verify && bun run script/m35/verify-s1-read-paths.ts && bun run script/m35/verify-s2-derived.ts && bun run script/m35/verify-s3-graph-migrate.ts && bun run script/m35/staleness-corpus.ts --check && bun run script/m35/verify-docs-staleness.ts && bun run script/m35/verify-closure.ts && bun run script/m30/verify-governance.ts && bun run script/m30/verify-setup.ts && bun run script/m30/verify-first-run-hook.ts && bun run script/m30/verify-key-validation.ts && bun run script/m30/verify-rate-limit.ts && bun run script/m30/verify-honesty-docs.ts && bun run script/m30/verify-closure.ts && bun run script/m32/verify-governance.ts && bun run script/m32/verify-smoke.ts && bun run script/m32/verify-setup-show.ts && bun run script/m32/verify-doctor.ts && bun run script/m32/verify-doctor-fix.ts && bun run script/m32/verify-honesty-docs.ts && bun run script/m32/verify-closure.ts && bun run script/m33/verify-governance.ts && bun run script/m33/verify-version.ts && bun run script/m33/verify-unknown-command.ts && bun run script/m33/verify-man-page.ts && bun run script/m33/verify-help-parity.ts && bun run script/m33/verify-honesty-docs.ts && bun run script/m33/verify-closure.ts && bun run script/m34/verify-governance.ts && bun run script/m34/verify-install-smoke.ts && bun run script/m34/verify-script-gate.ts && bun run script/m34/verify-closure.ts && bun run script/m36/verify-governance.ts && bun run script/m36/verify-ci-repair.ts && bun run script/m36/verify-verify-fast.ts && bun run script/m36/verify-closure.ts && bun run script/m40/verify-governance.ts && bun run script/m40/verify-gate-selftest.ts && bun run script/m40/verify-a1-post-entry.ts && bun run script/m40/verify-a2-bounded-post.ts && bun run script/m40/verify-a3-write-parity.ts && bun run script/m40/lifecycle-corpus.ts --gate && bun run script/m40/verify-a5-flag-semantics.ts && bun run script/m40/verify-a6-health-refresh.ts && bun run script/m40/verify-import-resolution.ts && bun run script/m65/verify-refresh-resolution.ts && bun run script/m65/verify-graph-blindspots.ts && bun run script/m65/verify-edge-kind-scoping.ts && bun run script/m40/verify-a7-cli-parity.ts && bun run script/m40/verify-a8-config.ts && bun run script/m40/verify-a9-purge.ts && bun run script/m40/verify-closure.ts && bun run script/m43/verify-governance.ts && bun run script/m43/verify-gate-selftest.ts && bun run script/m43/verify-p1-index-lock.ts && bun run script/m43/verify-a1-mcp-auto-refresh.ts && bun run script/m43/verify-a2-cli-auto-refresh.ts && bun run script/m43/verify-a3-flag-semantics.ts && bun run script/m43/verify-a4-corpus.ts && bun run script/m43/verify-arbiter-typecheck.ts && bun run script/m43/verify-closure.ts && bun run script/m24/verify-governance.ts && bun run script/m25/verify-governance.ts && bun run script/m26/verify-governance.ts && bun run script/m24/verify-positions.ts && bun run script/m24/verify-freshness.ts && bun run script/m24/verify-server.ts && bun run script/m24/verify-hover.ts && bun run script/m24/verify-navigation.ts && bun run script/m24/verify-symbols.ts && bun run script/m24/verify-call-hierarchy.ts && bun run script/m24/verify-harness.ts && bun run script/m24/verify-docs.ts && bun run script/m24/verify-closure.ts && bun run script/m29/verify-governance.ts && bun run script/m42/verify-governance.ts && bun run script/m44/verify-governance.ts && bun run script/m29/verify-wave-protocol.ts && bun run script/m29/verify-precision-ledger.ts && bun run script/m29/verify-precision-improvements.ts && npx tsx script/m41/generate-site-truth.ts --check && npx tsx script/m41/verify-truth-pipeline.ts && npx tsx script/m41/verify-site-truth.ts && npx tsx script/m41/verify-seo.ts && npx tsx script/m41/verify-governance.ts && npx tsx script/m41/verify-seo-onboarding.ts && bun run script/m48/verify-governance.ts && bun run script/m48/verify-p1-impact-unity.ts && bun run script/m48/verify-p2-honesty-fields.ts && bun run script/m48/verify-p3-agreement.ts && bun run script/m48/verify-p4-param-matrix.ts && bun run script/m48/verify-c1-corpus.ts && bun run script/m48/verify-c2-edge-mutations.ts && bun run script/m48/verify-d1-doc-truth.ts && bun run script/m48/verify-w1-website-tools.ts && bun run script/m48/verify-h1-ghosts.ts && bun run script/m48/l1-hub-smoke.ts && bun run script/m48/verify-l1-hub-guard.ts && bun run script/m48/verify-closure.ts && bun run script/m49/verify-governance.ts && bun run script/m49/verify-r1-intake.ts && bun run script/m49/verify-r2-regex.ts && bun run script/m49/verify-clj-core-list.ts && bun run script/m49/verify-closure.ts && bun run script/m49/verify-evidence-lineage.ts && bun run script/m49/verify-script-integrity.ts && bun run script/m49/verify-census-lineage.ts && bun run script/m49/verify-evidence-identity.ts && bun run script/m49/verify-family-parity.ts && bun run script/m49/verify-sweep-state-freeze.ts && npx tsx script/m60/payload-matrix.ts && npx tsx script/m60/verify-family-closure-truth.ts && bun run script/m60/verify-910-c-includes.ts && bun run script/m60/verify-standing-rules.ts && bun run script/m59/verify-language-surface.ts && bun run script/m50/verify-governance.ts && bun run script/m50/verify-gate-selftest.ts && bun run script/m50/verify-planner-stats.ts && bun run script/m50/verify-a2-param-aliases.ts && bun run script/m50/verify-vector-blobs.ts && bun run script/m50/verify-a2-bounded-work.ts && bun run script/m50/verify-a2-test-sources.ts && bun run script/m50/verify-a3-guidance-truth.ts && bun run script/m50/verify-a4-adoption.ts && bun run script/m50/verify-a5-verify-chain.ts && bun run script/m50/verify-closure.ts && bun run script/m57/verify-governance.ts && bun run script/m57/verify-gate-selftest.ts && bun run script/m57/verify-t1-classifier.ts && bun run script/m57/verify-t2-consumers.ts && bun run script/m57/verify-t3-scope-all.ts && bun run script/m57/verify-t4-corpus-identity.ts && bun run script/m57/verify-t5-predicate-unity.ts && bun run script/m57/verify-closure.ts && bun run script/m44/verify-hub-list.ts && npx tsx script/m41/verify-design.ts && npx tsx script/m41/verify-site-truth.ts --label T3 && npx tsx script/m45/verify-site-embed.ts && npx tsx script/m45/verify-governance.ts && npx tsx script/m45/verify-capture-harness.ts && npx tsx script/m45/verify-d1.ts && npx tsx script/m56/verify-governance.ts && npx tsx script/m56/verify-tools-truth.ts && npx tsx script/m56/verify-editors-page.ts && npx tsx script/m55/verify-governance.ts && npx tsx script/m55/verify-tiers.ts && npx tsx script/m55/verify-live-surface.ts && npx tsx script/m56/verify-languages-surface.ts && npx tsx script/m56/verify-docs-completeness.ts && npx tsx script/m56/verify-support-page.ts && npx tsx script/m56/verify-ia.ts && npx tsx script/m56/verify-design.ts && npx tsx script/m56/verify-closure.ts && npx tsx script/m41/verify-closure.ts && npx tsx script/m61/verify-seal-audit.ts && npx tsx script/m61/verify-sealing.ts && npx tsx script/m61/verify-lock.ts && npx tsx script/m61/verify-reproducibility.ts && npx tsx script/m61/verify-lint.ts && npx tsx script/m61/verify-claims.ts && npx tsx script/m61/verify-extinction.ts && npx tsx script/m61/verify-governance.ts && npx tsx script/m61/verify-closure.ts && npx tsx script/m62/verify-address.ts && npx tsx script/m62/verify-consumers.ts && npx tsx script/m62/verify-arrival.ts && npx tsx script/m62/verify-docs.ts && npx tsx script/m62/verify-governance.ts && npx tsx script/m62/verify-closure.ts && npx tsx script/m24/verify-callsite-agreement.ts && npx tsx script/m24/verify-position-arithmetic.ts && npx tsx script/m24/verify-hover-docs.ts && npx tsx script/m24/verify-usage-scope.ts && npx tsx script/m26/verify-external-arm-plan.ts && npx tsx script/m26/verify-hub-group-order.ts && npx tsx script/m28/measure-surface-divergence.ts && npx tsx script/m28/verify-surface-parity.ts && npx tsx script/m28/verify-index-portability.ts && npx tsx script/m28/verify-project-registry-honesty.ts && npx tsx script/m28/verify-schema-repair.ts && bun run script/m28/verify-mcp-stdout.ts && npx tsx script/m55/verify-evidence-tree-clean.ts && npx tsx script/m55/verify-hover-coverage.ts && npx tsx script/m55/verify-hover-coverage-redteam.ts && npx tsx script/m55/verify-type-inference.ts && npx tsx script/m55/measure-address-agreement.ts && npx tsx script/m61/verify-orphan-gates.ts && npx tsx script/m61/verify-ledger-truth.ts',
59
+ "audit:grammar": "bun run script/m14/audit-analyzer-grammar.ts --prove-java",
60
+ "audit:grammar-consistency": "bun run script/m60/verify-grammar-consistency.ts",
61
+ "audit:grammar-consistency:selftest": "bun run script/m60/selftest-grammar-consistency.ts",
62
+ "audit:grammar-pins": "bun run script/m14/verify-grammar-pins.ts",
63
+ "grammar:survey:build": "bun run script/m60/build-grammar-survey.ts",
64
+ "grammar:survey:refresh": "bun run script/m60/build-grammar-survey.ts --refresh",
65
+ "grammar:stragglers:measure": "bun run script/m60/measure-runtime-stragglers.ts",
66
+ "audit:grammar-preflight": "bun run script/m60/verify-runtime-migration-preflight.ts",
67
+ "audit:grammar-rebuilds": "bun run script/m60/verify-local-rebuilds.ts",
68
+ "audit:grammar-scripts": "bun run script/m60/verify-script-typecheck.ts",
69
+ "audit:attr-line-base": "bun run script/m14/verify-attr-line-base-920.ts",
70
+ "audit:include-names": "bun run script/m14/verify-include-names-924.ts",
71
+ "audit:name-surface": "bun run script/m14/verify-name-surface-924.ts",
72
+ "audit:evidence": "bun run script/m14/evidence-harness.ts validate",
73
+ "audit:fixtures": "bun run script/m14/run-fixtures.ts",
74
+ "audit:fixture-provenance": "bun run script/m14/verify-fixture-provenance.ts",
75
+ "audit:mutations": "bun run script/m14/mutate-analyzer.ts",
76
+ "audit:script-typecheck": "bun run script/m14/verify-script-typecheck-baseline.ts",
77
+ "audit:seal-audit": "npx tsx script/m61/verify-seal-audit.ts",
78
+ "audit:imports": "bun run script/m14/verify-js-imports-corpus.ts",
79
+ "audit:differential": "bun run script/m14/verify-differential-evidence.ts && bun run script/m14/differential.ts && bun run audit:freshness",
80
+ "audit:freshness": "bun run script/m12/verify-differential-freshness.ts --allow-unpinned",
81
+ "audit:honesty": "bun run script/m14/verify-honesty.ts",
82
+ "audit:pipeline": "npx tsx script/m14/verify-pipeline-e2e.ts",
83
+ "audit:consistency": "npx tsx script/m14/verify-cross-language-consistency.ts",
84
+ "audit:cluster": "npx tsx script/m14/verify-web-cluster-e2e.ts",
85
+ "audit:cluster-systems": "npx tsx script/m14/verify-systems-cluster-e2e.ts",
86
+ "audit:completeness": "bun run script/m14/completeness-inventory.ts",
87
+ "audit:analyzer-docs": "npx tsx script/m14/verify-analyzer-docs.ts",
88
+ "audit:fleet": "bun run script/m14/verify-fleet.ts",
89
+ "verify:m27": "npx tsx script/m27/verify-governance.ts && npx tsx script/m27/verify-nvim.ts && npx tsx script/m27/verify-zed.ts && npx tsx script/m27/verify-helix.ts && npx tsx script/m27/verify-lsp4ij.ts && npx tsx script/m27/verify-matrix.ts && npx tsx script/m27/verify-closure.ts",
90
+ "verify:m28": "npx tsx script/m28/verify-governance.ts && npx tsx script/m28/verify-annotation-store.ts && npx tsx script/m28/verify-annotation-ui.ts && npx tsx script/m28/verify-union.ts && npx tsx script/m28/verify-mcp-surface.ts && npx tsx script/m28/verify-mcp-tools.ts && bun run script/m28/verify-mcp-stdout.ts && npx tsx script/m28/verify-closure.ts",
91
+ "verify:m55": "npx tsx script/m55/verify-governance.ts && npx tsx script/m55/verify-identity.ts && npx tsx script/m55/verify-signatures.ts && npx tsx script/m55/verify-relations.ts && npx tsx script/m55/verify-call-hierarchy.ts && npx tsx script/m55/verify-panel-placement.ts && npx tsx script/m55/verify-action-args.ts && npx tsx script/m55/verify-status-panel.ts && npx tsx script/m55/verify-tiers.ts && npx tsx script/m55/verify-live-surface.ts && npx tsx script/m55/verify-closure.ts",
92
+ "verify:m25-surface": "npx tsx script/m25/verify-auto-index.ts",
93
+ "verify:m26-surface": "npx tsx script/m26/verify-cross-language-hover.ts && npx tsx script/m26/verify-impact-mode.ts",
94
+ "verify:m42-surface": "npx tsx script/m42/verify-highlight.ts && npx tsx script/m42/verify-hover-actions.ts",
95
+ "verify:m44-surface": "npx tsx script/m44/verify-impact-resolution.ts && npx tsx script/m44/verify-usages-groups.ts",
96
+ "verify:lane-closures": "npx tsx script/m25/verify-closure.ts && npx tsx script/m26/verify-closure.ts && npx tsx script/m29/verify-closure.ts && npx tsx script/m42/verify-closure.ts && npx tsx script/m45/verify-closure.ts && npx tsx script/m53/verify-closure.ts",
97
+ "verify:gate-wiring": "npx tsx script/m61/verify-orphan-gates.ts",
98
+ "verify:regex-policy": "npx tsx script/tools/verify-regex-policy.ts",
99
+ "verify:m40": "bun run script/m40/verify-governance.ts && bun run script/m40/verify-gate-selftest.ts && bun run script/m40/verify-a1-post-entry.ts && bun run script/m40/verify-a2-bounded-post.ts && bun run script/m40/verify-a3-write-parity.ts && bun run script/m40/lifecycle-corpus.ts --gate && bun run script/m40/verify-a5-flag-semantics.ts && bun run script/m40/verify-a6-health-refresh.ts && bun run script/m40/verify-import-resolution.ts && bun run script/m40/verify-a7-cli-parity.ts && bun run script/m40/verify-a8-config.ts && bun run script/m40/verify-a9-purge.ts && bun run script/m40/verify-closure.ts",
100
+ "verify:m44-closure": "npx tsx script/m44/verify-closure.ts",
101
+ "verify:m51": "npx tsx script/m51/verify-a1-owner-integrity.ts && npx tsx script/m51/verify-a2-health-split.ts && npx tsx script/m51/verify-closure.ts",
102
+ "verify:m52": "npx tsx script/m52/verify-v1-parity-latency.ts && npx tsx script/m52/verify-closure.ts",
103
+ "verify:m54": "bun run script/m54/verify-p1-fk.ts && npx tsx script/m54/verify-p2-stdio.ts && bun run script/m54/verify-737-738.ts && npx tsx script/m54/verify-737-738.ts && npx tsx script/m54/verify-closure.ts",
104
+ "verify:m50": "npx tsx script/m50/verify-governance.ts && npx tsx script/m50/verify-gate-selftest.ts && npx tsx script/m50/verify-planner-stats.ts && npx tsx script/m50/verify-a2-param-aliases.ts && npx tsx script/m50/verify-vector-blobs.ts && npx tsx script/m50/verify-a2-bounded-work.ts && npx tsx script/m50/verify-a2-test-sources.ts && npx tsx script/m50/verify-a3-guidance-truth.ts && npx tsx script/m50/verify-a4-adoption.ts && npx tsx script/m50/verify-a5-verify-chain.ts && npx tsx script/m50/verify-closure.ts",
105
+ "audit:hygiene": "bun run script/m14/verify-analyzer-hygiene.ts",
106
+ "audit:toml-census": "bun run script/m14/verify-toml-census.ts",
107
+ "audit:svelte-census": "bun run script/m14/verify-svelte-census.ts",
108
+ "audit:js-census": "bun run script/m14/verify-js-census.ts",
109
+ "audit:perl-wave": "bun run script/m14/verify-perl-wave.ts",
110
+ "audit:carrier-census": "bun run script/m14/verify-carrier-census.ts",
111
+ "audit:census": "bun run script/m14/verify-corpus-census.ts",
112
+ "audit:probes": "bun run script/m14/verify-probe-battery.ts",
113
+ "verify:clj-core-selftest": "bun run script/m49/verify-clj-core-list.ts --selftest",
114
+ "audit:parse-success": "bun run script/m14/verify-parse-success.ts",
115
+ "audit:parse-success-selftest": "bun run script/m14/verify-parse-success.ts --selftest",
116
+ "audit:parse-integrity": "bun run script/m14/verify-parse-integrity.ts",
117
+ "audit:parse-integrity-selftest": "bun run script/m14/verify-parse-integrity.ts --selftest",
118
+ "audit:fixture-coverage": "bun run script/m14/verify-fixture-coverage.ts",
119
+ "audit:fixture-coverage-selftest": "bun run script/m14/verify-fixture-coverage.ts --selftest",
120
+ "audit:hygiene-selftest": "bun run script/m14/verify-analyzer-hygiene.ts --selftest",
121
+ "audit:ruling-tables": "bun run script/m14/verify-ruling-tables-registered.ts",
122
+ "audit:population": "npx tsx script/m14/population-gate.ts",
123
+ "audit:population-selftest": "npx tsx script/m14/population-gate.ts --selftest",
124
+ "audit:doc-truth-emissions": "bun run script/m14/verify-doc-truth-emissions.ts",
125
+ "audit:doc-truth-emissions-selftest": "bun run script/m14/verify-doc-truth-emissions.ts --selftest",
126
+ "audit:evidence-harness": "bun run script/m14/emit-f2-evidence.ts",
127
+ "verify:m57": "npx tsx script/m57/verify-governance.ts && npx tsx script/m57/verify-gate-selftest.ts && bun run script/m57/verify-t1-classifier.ts && bun run script/m57/verify-t2-consumers.ts && bun run script/m57/verify-t3-scope-all.ts && bun run script/m57/verify-t4-corpus-identity.ts && bun run script/m57/verify-t5-predicate-unity.ts && bun run script/m57/verify-closure.ts",
128
+ "verify:m60-sql-resync": "bun run script/m60/verify-sql-resync.ts",
129
+ "verify:m60-sql-perf": "bun run script/m60/sql-perf-gate.ts",
130
+ "verify:m63": "npx tsx script/m63/verify-cl1-cross-language.ts",
131
+ "verify:m63-wiring": "npx tsx script/m63/verify-cl1-wiring.ts",
132
+ "verify:patterns": "bun run script/verify-patterns.ts && bun run script/m13/verify-patterns-orphans.ts && bun run script/m13/verify-patterns-rules.ts && bun run script/m13/verify-patterns-contract.ts && bun run script/m20/verify-patterns-parameter-scan.ts && bun run script/m20/verify-patterns-pagination-history.ts && bun run script/m57/verify-t3-scope-all.ts && bun run script/m64/verify-patterns-evidence-gate.ts && bun run script/m64/verify-gate-selftest.ts && bun run script/m65/verify-rules-budget-and-gates.ts && bun run script/m65/verify-rules-gate-selftest.ts && bun run script/m69/verify-patterns-page-class-representation.ts",
133
+ "verify:security": "npx tsx script/m15/verify-security-regressions.ts && npx tsx script/m15/verify-security-precision.ts && npx tsx script/m15/verify-security-deep.ts && npx tsx script/verify-security.ts && npx tsx script/m20/verify-security-flow-boundary.ts && npx tsx script/m20/verify-security-adversarial.ts && npx tsx script/m20/verify-security-history.ts",
134
+ "parse:check": "bun run script/m14/parse-check.ts",
135
+ "verify:health-deep": "bun run script/m64/verify-sample-coverage.ts && bun run script/m64/verify-refresh-integrity.ts && bun run script/m64/verify-coverage-and-partial.ts && bun run script/m64/verify-freshness-reasons.ts && bun run script/m64/verify-actionability.ts && bun run script/m64/verify-unindexed.ts && bun run script/m64/verify-paths.ts && bun run script/m64/verify-embed-scan.ts && bun run script/m64/verify-wire.ts && bun run script/m64/verify-health-deep.ts && bun run script/m64/verify-evidence.ts",
136
+ "verify:tools": "bun run script/verify-tools.ts",
137
+ "verify:language-matrix": "bun run script/verify-language-tool-matrix.ts",
138
+ "verify:doc-surface": "bun run script/verify-doc-tool-surface.ts"
139
+ },
140
+ dependencies: {
141
+ "@modelcontextprotocol/sdk": "^1.0.0",
142
+ "better-sqlite3": "^11.0.0",
143
+ commander: "^12.0.0",
144
+ "drizzle-orm": "^0.45.2",
145
+ ignore: "^5.3.0",
146
+ "tree-sitter-typescript": "^0.23.2",
147
+ "web-tree-sitter": "0.25.9"
148
+ },
149
+ devDependencies: {
150
+ "@types/better-sqlite3": "^7.6.0",
151
+ "@types/bun": "^1.3.14",
152
+ "@types/mime-types": "^3.0.1",
153
+ "@types/node": "^22.0.0",
154
+ glob: "^13.0.6",
155
+ "smol-toml": "^1.8.0",
156
+ tsup: "^8.5.1",
157
+ tsx: "^4.23.13",
158
+ typescript: "^5.5.0"
159
+ },
160
+ keywords: [
161
+ "mcp",
162
+ "mcp-server",
163
+ "code-intelligence",
164
+ "code-search",
165
+ "static-analysis",
166
+ "ast",
167
+ "tree-sitter",
168
+ "semantic-search",
169
+ "code-graph",
170
+ "lsp",
171
+ "cross-language",
172
+ "developer-tools",
173
+ "local-first",
174
+ "backbencher"
175
+ ],
176
+ license: "MIT",
177
+ publishConfig: {
178
+ access: "public"
179
+ },
180
+ imports: {
181
+ "#db": {
182
+ bun: "./src/storage/db.bun.ts",
183
+ node: "./src/storage/db.node.ts",
184
+ default: "./src/storage/db.node.ts"
185
+ }
186
+ }
187
+ };
188
+
189
+ // src/version.ts
190
+ var BACKBENCHER_BRAIN_VERSION = package_default.version;
191
+ var PKG_NAME = package_default.name;
192
+
193
+ export {
194
+ BACKBENCHER_BRAIN_VERSION,
195
+ PKG_NAME
196
+ };