@backbencher/brain 0.1.0 → 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.
Files changed (106) hide show
  1. package/README.md +1 -1
  2. package/dist/{brain-index-health-KY7K552E.js → brain-index-health-Q5APTJQL.js} +2 -2
  3. package/dist/{brain-relationship-enrichment-QH7OOHUF.js → brain-relationship-enrichment-MYR2AM4F.js} +1 -1
  4. package/dist/{chunk-66A5ZFYA.js → chunk-22V37YTK.js} +8 -8
  5. package/dist/{chunk-V44PGPA6.js → chunk-3ZTOHHSW.js} +54 -54
  6. package/dist/{chunk-YI6FF2ZR.js → chunk-5BVAH26D.js} +1 -1
  7. package/dist/{chunk-FVVQTSIM.js → chunk-62DHLYW6.js} +1 -1
  8. package/dist/{chunk-UFE77L67.js → chunk-7DRPNVIN.js} +1 -1
  9. package/dist/{chunk-3LFTSMIV.js → chunk-7MBYT777.js} +2 -2
  10. package/dist/{chunk-HOWAQXJO.js → chunk-AHDWGM7Q.js} +3 -3
  11. package/dist/{chunk-5SD45FLC.js → chunk-B5GEAAYF.js} +1 -1
  12. package/dist/{chunk-CW4XXSNN.js → chunk-BEIZZ73B.js} +4 -4
  13. package/dist/{chunk-J4PMBXQQ.js → chunk-DWKXZ6IF.js} +1 -1
  14. package/dist/{chunk-47HKX4AJ.js → chunk-ENW4BTBA.js} +1 -1
  15. package/dist/{chunk-BHB7BYYI.js → chunk-EY5ZZUUA.js} +1 -1
  16. package/dist/{chunk-6AIRWAO2.js → chunk-HJEWO5EV.js} +1 -1
  17. package/dist/{chunk-VURYFIHW.js → chunk-NO3U3FJQ.js} +2 -2
  18. package/dist/{chunk-KLK3PBTO.js → chunk-QKTRECYS.js} +1 -1
  19. package/dist/{chunk-RH7KC5HU.js → chunk-SGGCSHAX.js} +16 -16
  20. package/dist/{chunk-2RTN2DFU.js → chunk-UQNQZXHY.js} +2 -2
  21. package/dist/{chunk-6WNGD3NN.js → chunk-WIG36E67.js} +2 -2
  22. package/dist/{chunk-XJKJYIPP.js → chunk-XHK3WWGB.js} +1 -1
  23. package/dist/{chunk-IFZNR5UJ.js → chunk-XTQM2IP3.js} +1 -1
  24. package/dist/{chunk-FWSL4VG6.js → chunk-ZE2LG76D.js} +29 -23
  25. package/dist/{chunk-PJTNGD3Z.js → chunk-ZETTGPAW.js} +41 -15
  26. package/dist/cli/index.js +10 -10
  27. package/dist/{content-search-642F7E5V.js → content-search-7XIP555Q.js} +1 -1
  28. package/dist/{database-TCTZDLE5.js → database-76RP44JG.js} +1 -1
  29. package/dist/{doctor-GXCKSJOX.js → doctor-ANGETYMN.js} +2 -2
  30. package/dist/{edit-engine-KM7MPFEC.js → edit-engine-CG72LDZD.js} +6 -6
  31. package/dist/{engine-42TZFNIZ.js → engine-BKEOGN7N.js} +1 -1
  32. package/dist/{engine-LO6L4JLQ.js → engine-VIW6NSKO.js} +1 -1
  33. package/dist/{fingerprint-XDXFRWO6.js → fingerprint-OBLIMZLP.js} +5 -5
  34. package/dist/{framework-intelligence-DWFCKV44.js → framework-intelligence-3LORTPOX.js} +1 -1
  35. package/dist/{graph-engine-PL5YA7BA.js → graph-engine-HBSQNPTB.js} +2 -2
  36. package/dist/{graph_request-MM4REP6H.js → graph_request-Q6NKB6N2.js} +2 -2
  37. package/dist/{impact_request-WDE47IZ5.js → impact_request-LYP672WE.js} +3 -3
  38. package/dist/{index-status-6BD7UBHR.js → index-status-7OVGYSGW.js} +2 -2
  39. package/dist/index.js +10 -10
  40. package/dist/lsp/server.js +9 -9
  41. package/dist/mcp/server.js +16 -16
  42. package/dist/{parallel-indexer-4PW3AFXP.js → parallel-indexer-FK2XKZXY.js} +4 -4
  43. package/dist/pool-worker.js +2 -2
  44. package/dist/{project-health-ZS5TS2Z6.js → project-health-6XPENVAA.js} +1 -1
  45. package/dist/{project-registry-DGZBIZS7.js → project-registry-ZJ3DVUGO.js} +5 -5
  46. package/dist/{real-bash-analyzer-SXSV67E2.js → real-bash-analyzer-EJAU5LW5.js} +1 -1
  47. package/dist/{real-c-analyzer-SY7FTZ6W.js → real-c-analyzer-HBD3FNNH.js} +1 -1
  48. package/dist/{real-clean-analyzer-IGDHHLZK.js → real-clean-analyzer-4EEZLPV5.js} +1 -1
  49. package/dist/{real-clojure-analyzer-4OH7IWLB.js → real-clojure-analyzer-Q55EBOO2.js} +1 -1
  50. package/dist/{real-cpp-analyzer-7LTDRJRJ.js → real-cpp-analyzer-IVVOD25R.js} +1 -1
  51. package/dist/{real-csharp-analyzer-KICU3TLH.js → real-csharp-analyzer-ZBNLNJZJ.js} +1 -1
  52. package/dist/{real-css-analyzer-HPU277Q6.js → real-css-analyzer-6XRQLUN7.js} +2 -2
  53. package/dist/{real-dart-analyzer-7LZ5LCMW.js → real-dart-analyzer-OLR72EFW.js} +1 -1
  54. package/dist/{real-elixir-analyzer-BE3MEVZO.js → real-elixir-analyzer-MQWGAH2I.js} +1 -1
  55. package/dist/{real-erlang-analyzer-BZMAKYBK.js → real-erlang-analyzer-7BVPQEHO.js} +1 -1
  56. package/dist/{real-fsharp-analyzer-5QLTOV3E.js → real-fsharp-analyzer-C2UPFNOA.js} +1 -1
  57. package/dist/{real-go-analyzer-POD7MZQR.js → real-go-analyzer-UKGI43YS.js} +1 -1
  58. package/dist/{real-graphql-analyzer-MAQRZ6QW.js → real-graphql-analyzer-VE2EEFII.js} +1 -1
  59. package/dist/{real-groovy-analyzer-MEWSUPMJ.js → real-groovy-analyzer-W26VACFW.js} +1 -1
  60. package/dist/{real-haskell-analyzer-I5L2GR3Y.js → real-haskell-analyzer-5CVVAJRX.js} +1 -1
  61. package/dist/{real-hcl-analyzer-DBOPXSWJ.js → real-hcl-analyzer-5ZT4U43N.js} +1 -1
  62. package/dist/{real-html-analyzer-O63XZLZD.js → real-html-analyzer-JWNX3C6I.js} +1 -1
  63. package/dist/{real-java-analyzer-CHCW3EKA.js → real-java-analyzer-GU42VBGQ.js} +1 -1
  64. package/dist/{real-javascript-analyzer-QAAJQYZE.js → real-javascript-analyzer-QA4QOJ6W.js} +2 -2
  65. package/dist/{real-json-analyzer-UGBR7YQN.js → real-json-analyzer-MPA6PRXL.js} +1 -1
  66. package/dist/{real-julia-analyzer-35Q4GHOZ.js → real-julia-analyzer-22CWYQMN.js} +1 -1
  67. package/dist/{real-kotlin-analyzer-GRAYCWW2.js → real-kotlin-analyzer-QDZJLXXU.js} +1 -1
  68. package/dist/{real-lua-analyzer-5BAPDZDF.js → real-lua-analyzer-G7NHLYKS.js} +1 -1
  69. package/dist/{real-makefile-analyzer-YJKAHNAS.js → real-makefile-analyzer-OCY3GT5N.js} +1 -1
  70. package/dist/{real-markdown-analyzer-UKUQZO4F.js → real-markdown-analyzer-TEJK2JXJ.js} +1 -1
  71. package/dist/{real-matlab-analyzer-FVIKQZKG.js → real-matlab-analyzer-Q5SWLN7Z.js} +1 -1
  72. package/dist/{real-nim-analyzer-M7FAIABG.js → real-nim-analyzer-YLXSK563.js} +1 -1
  73. package/dist/{real-objective-c-analyzer-XMYQIGQI.js → real-objective-c-analyzer-D23ACC2R.js} +1 -1
  74. package/dist/{real-perl-analyzer-ZLY6M2DZ.js → real-perl-analyzer-WWTRHYDT.js} +1 -1
  75. package/dist/{real-php-analyzer-KI2ZAM7X.js → real-php-analyzer-JNKJHTCL.js} +1 -1
  76. package/dist/{real-powershell-analyzer-B3T5ZP6U.js → real-powershell-analyzer-XRSNQERV.js} +1 -1
  77. package/dist/{real-protobuf-analyzer-23OZ75XV.js → real-protobuf-analyzer-3OKUCZ7T.js} +1 -1
  78. package/dist/{real-python-analyzer-I4TIUB6D.js → real-python-analyzer-VXAFWI72.js} +1 -1
  79. package/dist/{real-r-analyzer-FJZJXXS6.js → real-r-analyzer-ZGAIDVI4.js} +1 -1
  80. package/dist/{real-ruby-analyzer-M3UFIVTQ.js → real-ruby-analyzer-X2KTLVBH.js} +1 -1
  81. package/dist/{real-rust-analyzer-LVSONPAN.js → real-rust-analyzer-OFFHPL2A.js} +1 -1
  82. package/dist/{real-scala-analyzer-CWPI33Q2.js → real-scala-analyzer-TSTW27J6.js} +1 -1
  83. package/dist/{real-scss-analyzer-TGRJQ7TH.js → real-scss-analyzer-AVWYPSOQ.js} +2 -2
  84. package/dist/{real-solidity-analyzer-4P2VBVWA.js → real-solidity-analyzer-UCI2KWUB.js} +1 -1
  85. package/dist/{real-sql-analyzer-J7DYZOZR.js → real-sql-analyzer-F77ZMQXR.js} +1 -1
  86. package/dist/{real-svelte-analyzer-NHEN2SX5.js → real-svelte-analyzer-SF7NRUO5.js} +3 -3
  87. package/dist/{real-swift-analyzer-2NSYULWI.js → real-swift-analyzer-MN5QT3QN.js} +1 -1
  88. package/dist/{real-toml-analyzer-L3C66L7Q.js → real-toml-analyzer-66L7BDCQ.js} +1 -1
  89. package/dist/{real-typescript-analyzer-FTC6ETRQ.js → real-typescript-analyzer-6KEMVDWQ.js} +2 -2
  90. package/dist/{real-vb-analyzer-ORY7LAQS.js → real-vb-analyzer-VICVPOP7.js} +1 -1
  91. package/dist/{real-vba-analyzer-JH2TTUFI.js → real-vba-analyzer-HXLTTHKM.js} +1 -1
  92. package/dist/{real-vue-analyzer-OO4FUGBV.js → real-vue-analyzer-QXR56CFV.js} +3 -3
  93. package/dist/{real-xml-analyzer-6CQVR477.js → real-xml-analyzer-YL465ZJW.js} +1 -1
  94. package/dist/{real-yaml-analyzer-J6MQG3YX.js → real-yaml-analyzer-SUBCBNSI.js} +1 -1
  95. package/dist/{real-zig-analyzer-EFKCPJNU.js → real-zig-analyzer-HIQLZMGY.js} +1 -1
  96. package/dist/{regex-search-OPTLKUN5.js → regex-search-NJKHMZNO.js} +1 -1
  97. package/dist/{rules-I453JTRC.js → rules-ACHPB7QU.js} +1 -1
  98. package/dist/{setup-show-Y5GB5KXA.js → setup-show-NT5ZHYNE.js} +2 -2
  99. package/dist/{symbol-search-KB4MU4SI.js → symbol-search-GZJIM2J2.js} +2 -2
  100. package/dist/{taint-YOTN5X55.js → taint-KXUHHPIE.js} +1 -1
  101. package/dist/{tool-handlers-G4NAGJIH.js → tool-handlers-OJDC35DI.js} +14 -14
  102. package/dist/{tool-validation-RF675A3C.js → tool-validation-Q57YMMBX.js} +7 -7
  103. package/dist/{type-inference-4Y7WTMFE.js → type-inference-QMT2RMLV.js} +2 -2
  104. package/dist/{version-LXGNFO37.js → version-ABP2TUL2.js} +1 -1
  105. package/docs/man/bb.1 +1 -1
  106. package/package.json +2 -2
package/README.md CHANGED
@@ -67,7 +67,7 @@ on Windows); add that directory to your `PATH`.
67
67
  ### Pin a release
68
68
 
69
69
  ```bash
70
- npm install -g @backbencher/brain@0.1.0
70
+ npm install -g @backbencher/brain@0.1.1
71
71
  # or with the installer scripts:
72
72
  VERSION=0.1.0 curl -fsSL https://backbencher.cc/install.sh | bash
73
73
  ```
@@ -3,9 +3,9 @@ import {
3
3
  formatHealthReport,
4
4
  preFlightCheck,
5
5
  runIndexHealthCheck
6
- } from "./chunk-2RTN2DFU.js";
6
+ } from "./chunk-UQNQZXHY.js";
7
7
  import "./chunk-QLK6ED4Q.js";
8
- import "./chunk-KLK3PBTO.js";
8
+ import "./chunk-QKTRECYS.js";
9
9
  import "./chunk-2BSKD7O3.js";
10
10
  import "./chunk-ROMM6KMC.js";
11
11
  import "./chunk-MLKGABMK.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  BrainDatabase
3
- } from "./chunk-KLK3PBTO.js";
3
+ } from "./chunk-QKTRECYS.js";
4
4
  import {
5
5
  create
6
6
  } from "./chunk-BQ3OVQ3P.js";
@@ -2,17 +2,17 @@ import {
2
2
  buildEmbeddingDiagnosis,
3
3
  describeEmbeddingConfig,
4
4
  renderChainSummary
5
- } from "./chunk-J4PMBXQQ.js";
5
+ } from "./chunk-DWKXZ6IF.js";
6
6
  import {
7
7
  runIndexHealthCheck
8
- } from "./chunk-2RTN2DFU.js";
8
+ } from "./chunk-UQNQZXHY.js";
9
9
  import {
10
10
  IndexLockHeldError,
11
11
  indexProjectParallel,
12
12
  liveIndexLockHolder,
13
13
  reindexFilesParallel,
14
14
  wipeProjectData
15
- } from "./chunk-PJTNGD3Z.js";
15
+ } from "./chunk-ZETTGPAW.js";
16
16
  import {
17
17
  Config
18
18
  } from "./chunk-UGR4QIGS.js";
@@ -25,7 +25,7 @@ import {
25
25
  } from "./chunk-QLK6ED4Q.js";
26
26
  import {
27
27
  BrainDatabase
28
- } from "./chunk-KLK3PBTO.js";
28
+ } from "./chunk-QKTRECYS.js";
29
29
  import {
30
30
  NON_CODE_LANGUAGES,
31
31
  analysis_exclusions_exports,
@@ -511,7 +511,7 @@ async function detectOrphans(projectId, options = {}) {
511
511
  var BrainTools;
512
512
  ((BrainTools2) => {
513
513
  async function searchCode(projectId, query, options = {}) {
514
- const { searchSymbols } = await import("./symbol-search-KB4MU4SI.js");
514
+ const { searchSymbols } = await import("./symbol-search-GZJIM2J2.js");
515
515
  return searchSymbols(projectId, query, options);
516
516
  }
517
517
  BrainTools2.searchCode = searchCode;
@@ -551,7 +551,7 @@ var PatternBrainTools;
551
551
  for (const [k, v] of Object.entries(orphanReport.summary.candidatesByRule)) orphanByType[k] = (orphanByType[k] ?? 0) + v;
552
552
  orphanConfidenceSum = orphanReport.summary.candidatesAverageConfidence * orphanCandidates;
553
553
  }
554
- const { detectIndexRules } = await import("./rules-I453JTRC.js");
554
+ const { detectIndexRules } = await import("./rules-ACHPB7QU.js");
555
555
  const ruleFindings = await detectIndexRules(projectId, {
556
556
  confidenceThreshold: opts.confidenceThreshold,
557
557
  maxResults: opts.maxResults,
@@ -1175,7 +1175,7 @@ async function getUnifiedHealth(projectId, projectPath, options = {}) {
1175
1175
  try {
1176
1176
  const rootStat = statSync(projectPath);
1177
1177
  if (!rootStat.isDirectory()) throw new Error(`project path is not a directory: ${projectPath}`);
1178
- const { discoverIndexableFiles } = await import("./parallel-indexer-4PW3AFXP.js");
1178
+ const { discoverIndexableFiles } = await import("./parallel-indexer-FK2XKZXY.js");
1179
1179
  const onDisk = await discoverIndexableFiles(projectPath);
1180
1180
  const indexed = new Set(
1181
1181
  raw.prepare("SELECT path FROM brain_file WHERE project_id=?").all(projectId).map((r) => String(r.path))
@@ -1206,7 +1206,7 @@ async function getUnifiedHealth(projectId, projectPath, options = {}) {
1206
1206
  let scope = null;
1207
1207
  if (options.paths && options.paths.length > 0) {
1208
1208
  const scopeStarted = now2();
1209
- const { resolveSafeEditPath } = await import("./edit-engine-KM7MPFEC.js");
1209
+ const { resolveSafeEditPath } = await import("./edit-engine-CG72LDZD.js");
1210
1210
  const resolved2 = [];
1211
1211
  const refused = [];
1212
1212
  const wanted = [];
@@ -1117,7 +1117,7 @@ var ASTEngine;
1117
1117
  }
1118
1118
  if (language === "sql") {
1119
1119
  try {
1120
- const mod = await import("./real-sql-analyzer-J7DYZOZR.js");
1120
+ const mod = await import("./real-sql-analyzer-F77ZMQXR.js");
1121
1121
  const grammar = parser.language;
1122
1122
  if (grammar) mod.RealSqlAnalyzer.setGrammar?.(grammar, parser.constructor);
1123
1123
  } catch {
@@ -1279,10 +1279,10 @@ var ASTEngine;
1279
1279
  log.debug("markdown inline sub-parse failed", { error: e?.message });
1280
1280
  }
1281
1281
  }
1282
- const TypeInference = (await import("./type-inference-4Y7WTMFE.js")).TypeInference;
1282
+ const TypeInference = (await import("./type-inference-QMT2RMLV.js")).TypeInference;
1283
1283
  const enhancedAnalyzer = TypeInference.enhanceAnalyzerWithTypeInference(analyzer, language);
1284
1284
  analysisResult = enhancedAnalyzer.analyze(tree.rootNode, content, filePath, context);
1285
- const FrameworkIntelligence = (await import("./framework-intelligence-DWFCKV44.js")).FrameworkIntelligence;
1285
+ const FrameworkIntelligence = (await import("./framework-intelligence-3LORTPOX.js")).FrameworkIntelligence;
1286
1286
  analysisResult = FrameworkIntelligence.enhanceWithFrameworkIntelligence(analysisResult, content, language);
1287
1287
  return analysisResult;
1288
1288
  })();
@@ -1550,109 +1550,109 @@ var ASTEngine;
1550
1550
  switch (language) {
1551
1551
  case "typescript":
1552
1552
  case "tsx":
1553
- return new (await import("./real-typescript-analyzer-FTC6ETRQ.js")).RealTypeScriptAnalyzer();
1553
+ return new (await import("./real-typescript-analyzer-6KEMVDWQ.js")).RealTypeScriptAnalyzer();
1554
1554
  case "javascript":
1555
- return new (await import("./real-javascript-analyzer-QAAJQYZE.js")).RealJavaScriptAnalyzer();
1555
+ return new (await import("./real-javascript-analyzer-QA4QOJ6W.js")).RealJavaScriptAnalyzer();
1556
1556
  case "html":
1557
- return new (await import("./real-html-analyzer-O63XZLZD.js")).RealHtmlAnalyzer();
1557
+ return new (await import("./real-html-analyzer-JWNX3C6I.js")).RealHtmlAnalyzer();
1558
1558
  case "css":
1559
1559
  case "sass":
1560
- return new (await import("./real-css-analyzer-HPU277Q6.js")).RealCssAnalyzer();
1560
+ return new (await import("./real-css-analyzer-6XRQLUN7.js")).RealCssAnalyzer();
1561
1561
  case "scss":
1562
- return new (await import("./real-scss-analyzer-TGRJQ7TH.js")).RealScssAnalyzer();
1562
+ return new (await import("./real-scss-analyzer-AVWYPSOQ.js")).RealScssAnalyzer();
1563
1563
  case "json":
1564
- return new (await import("./real-json-analyzer-UGBR7YQN.js")).RealJsonAnalyzer();
1564
+ return new (await import("./real-json-analyzer-MPA6PRXL.js")).RealJsonAnalyzer();
1565
1565
  case "yaml":
1566
- return new (await import("./real-yaml-analyzer-J6MQG3YX.js")).RealYamlAnalyzer();
1566
+ return new (await import("./real-yaml-analyzer-SUBCBNSI.js")).RealYamlAnalyzer();
1567
1567
  case "perl":
1568
- return new (await import("./real-perl-analyzer-ZLY6M2DZ.js")).RealPerlAnalyzer();
1568
+ return new (await import("./real-perl-analyzer-WWTRHYDT.js")).RealPerlAnalyzer();
1569
1569
  case "c":
1570
- return new (await import("./real-c-analyzer-SY7FTZ6W.js")).RealCAnalyzer();
1570
+ return new (await import("./real-c-analyzer-HBD3FNNH.js")).RealCAnalyzer();
1571
1571
  case "cpp":
1572
- return new (await import("./real-cpp-analyzer-7LTDRJRJ.js")).RealCppAnalyzer();
1572
+ return new (await import("./real-cpp-analyzer-IVVOD25R.js")).RealCppAnalyzer();
1573
1573
  case "rust":
1574
- return new (await import("./real-rust-analyzer-LVSONPAN.js")).RealRustAnalyzer();
1574
+ return new (await import("./real-rust-analyzer-OFFHPL2A.js")).RealRustAnalyzer();
1575
1575
  case "go":
1576
- return new (await import("./real-go-analyzer-POD7MZQR.js")).RealGoAnalyzer();
1576
+ return new (await import("./real-go-analyzer-UKGI43YS.js")).RealGoAnalyzer();
1577
1577
  case "java":
1578
- return new (await import("./real-java-analyzer-CHCW3EKA.js")).RealJavaAnalyzer();
1578
+ return new (await import("./real-java-analyzer-GU42VBGQ.js")).RealJavaAnalyzer();
1579
1579
  case "kotlin":
1580
- return new (await import("./real-kotlin-analyzer-GRAYCWW2.js")).RealKotlinAnalyzer();
1580
+ return new (await import("./real-kotlin-analyzer-QDZJLXXU.js")).RealKotlinAnalyzer();
1581
1581
  case "scala":
1582
- return new (await import("./real-scala-analyzer-CWPI33Q2.js")).RealScalaAnalyzer();
1582
+ return new (await import("./real-scala-analyzer-TSTW27J6.js")).RealScalaAnalyzer();
1583
1583
  case "python":
1584
- return new (await import("./real-python-analyzer-I4TIUB6D.js")).RealPythonAnalyzer();
1584
+ return new (await import("./real-python-analyzer-VXAFWI72.js")).RealPythonAnalyzer();
1585
1585
  case "ruby":
1586
- return new (await import("./real-ruby-analyzer-M3UFIVTQ.js")).RealRubyAnalyzer();
1586
+ return new (await import("./real-ruby-analyzer-X2KTLVBH.js")).RealRubyAnalyzer();
1587
1587
  case "php":
1588
- return new (await import("./real-php-analyzer-KI2ZAM7X.js")).RealPhpAnalyzer();
1588
+ return new (await import("./real-php-analyzer-JNKJHTCL.js")).RealPhpAnalyzer();
1589
1589
  case "lua":
1590
- return new (await import("./real-lua-analyzer-5BAPDZDF.js")).RealLuaAnalyzer();
1590
+ return new (await import("./real-lua-analyzer-G7NHLYKS.js")).RealLuaAnalyzer();
1591
1591
  case "elixir":
1592
- return new (await import("./real-elixir-analyzer-BE3MEVZO.js")).RealElixirAnalyzer();
1592
+ return new (await import("./real-elixir-analyzer-MQWGAH2I.js")).RealElixirAnalyzer();
1593
1593
  case "erlang":
1594
- return new (await import("./real-erlang-analyzer-BZMAKYBK.js")).RealErlangAnalyzer();
1594
+ return new (await import("./real-erlang-analyzer-7BVPQEHO.js")).RealErlangAnalyzer();
1595
1595
  case "haskell":
1596
- return new (await import("./real-haskell-analyzer-I5L2GR3Y.js")).RealHaskellAnalyzer();
1596
+ return new (await import("./real-haskell-analyzer-5CVVAJRX.js")).RealHaskellAnalyzer();
1597
1597
  case "clean":
1598
- return new (await import("./real-clean-analyzer-IGDHHLZK.js")).RealCleanAnalyzer();
1598
+ return new (await import("./real-clean-analyzer-4EEZLPV5.js")).RealCleanAnalyzer();
1599
1599
  case "clojure":
1600
- return new (await import("./real-clojure-analyzer-4OH7IWLB.js")).RealClojureAnalyzer();
1600
+ return new (await import("./real-clojure-analyzer-Q55EBOO2.js")).RealClojureAnalyzer();
1601
1601
  case "swift":
1602
- return new (await import("./real-swift-analyzer-2NSYULWI.js")).RealSwiftAnalyzer();
1602
+ return new (await import("./real-swift-analyzer-MN5QT3QN.js")).RealSwiftAnalyzer();
1603
1603
  case "julia":
1604
- return new (await import("./real-julia-analyzer-35Q4GHOZ.js")).RealJuliaAnalyzer();
1604
+ return new (await import("./real-julia-analyzer-22CWYQMN.js")).RealJuliaAnalyzer();
1605
1605
  case "dart":
1606
- return new (await import("./real-dart-analyzer-7LZ5LCMW.js")).RealDartAnalyzer();
1606
+ return new (await import("./real-dart-analyzer-OLR72EFW.js")).RealDartAnalyzer();
1607
1607
  case "csharp":
1608
- return new (await import("./real-csharp-analyzer-KICU3TLH.js")).RealCSharpAnalyzer();
1608
+ return new (await import("./real-csharp-analyzer-ZBNLNJZJ.js")).RealCSharpAnalyzer();
1609
1609
  case "r":
1610
- return new (await import("./real-r-analyzer-FJZJXXS6.js")).RealRAnalyzer();
1610
+ return new (await import("./real-r-analyzer-ZGAIDVI4.js")).RealRAnalyzer();
1611
1611
  case "sql":
1612
- return new (await import("./real-sql-analyzer-J7DYZOZR.js")).RealSqlAnalyzer();
1612
+ return new (await import("./real-sql-analyzer-F77ZMQXR.js")).RealSqlAnalyzer();
1613
1613
  case "bash":
1614
- return new (await import("./real-bash-analyzer-SXSV67E2.js")).RealBashAnalyzer();
1614
+ return new (await import("./real-bash-analyzer-EJAU5LW5.js")).RealBashAnalyzer();
1615
1615
  case "objective-c":
1616
- return new (await import("./real-objective-c-analyzer-XMYQIGQI.js")).RealObjectiveCAnalyzer();
1616
+ return new (await import("./real-objective-c-analyzer-D23ACC2R.js")).RealObjectiveCAnalyzer();
1617
1617
  case "groovy":
1618
- return new (await import("./real-groovy-analyzer-MEWSUPMJ.js")).RealGroovyAnalyzer();
1618
+ return new (await import("./real-groovy-analyzer-W26VACFW.js")).RealGroovyAnalyzer();
1619
1619
  case "vue":
1620
- return new (await import("./real-vue-analyzer-OO4FUGBV.js")).RealVueAnalyzer();
1620
+ return new (await import("./real-vue-analyzer-QXR56CFV.js")).RealVueAnalyzer();
1621
1621
  case "svelte":
1622
- return new (await import("./real-svelte-analyzer-NHEN2SX5.js")).RealSvelteAnalyzer();
1622
+ return new (await import("./real-svelte-analyzer-SF7NRUO5.js")).RealSvelteAnalyzer();
1623
1623
  case "hcl":
1624
1624
  case "terraform":
1625
- return new (await import("./real-hcl-analyzer-DBOPXSWJ.js")).RealHclAnalyzer();
1625
+ return new (await import("./real-hcl-analyzer-5ZT4U43N.js")).RealHclAnalyzer();
1626
1626
  case "graphql":
1627
- return new (await import("./real-graphql-analyzer-MAQRZ6QW.js")).RealGraphqlAnalyzer();
1627
+ return new (await import("./real-graphql-analyzer-VE2EEFII.js")).RealGraphqlAnalyzer();
1628
1628
  // Protobuf: the vendored, patched tree-sitter-proto (see the name map
1629
1629
  // above and grammars/tree-sitter-proto/README.md).
1630
1630
  case "protobuf":
1631
- return new (await import("./real-protobuf-analyzer-23OZ75XV.js")).RealProtobufAnalyzer();
1631
+ return new (await import("./real-protobuf-analyzer-3OKUCZ7T.js")).RealProtobufAnalyzer();
1632
1632
  case "zig":
1633
- return new (await import("./real-zig-analyzer-EFKCPJNU.js")).RealZigAnalyzer();
1633
+ return new (await import("./real-zig-analyzer-HIQLZMGY.js")).RealZigAnalyzer();
1634
1634
  case "nim":
1635
- return new (await import("./real-nim-analyzer-M7FAIABG.js")).RealNimAnalyzer();
1635
+ return new (await import("./real-nim-analyzer-YLXSK563.js")).RealNimAnalyzer();
1636
1636
  case "fsharp":
1637
- return new (await import("./real-fsharp-analyzer-5QLTOV3E.js")).RealFsharpAnalyzer();
1637
+ return new (await import("./real-fsharp-analyzer-C2UPFNOA.js")).RealFsharpAnalyzer();
1638
1638
  case "powershell":
1639
- return new (await import("./real-powershell-analyzer-B3T5ZP6U.js")).RealPowershellAnalyzer();
1639
+ return new (await import("./real-powershell-analyzer-XRSNQERV.js")).RealPowershellAnalyzer();
1640
1640
  case "solidity":
1641
- return new (await import("./real-solidity-analyzer-4P2VBVWA.js")).RealSolidityAnalyzer();
1641
+ return new (await import("./real-solidity-analyzer-UCI2KWUB.js")).RealSolidityAnalyzer();
1642
1642
  case "make":
1643
- return new (await import("./real-makefile-analyzer-YJKAHNAS.js")).RealMakefileAnalyzer();
1643
+ return new (await import("./real-makefile-analyzer-OCY3GT5N.js")).RealMakefileAnalyzer();
1644
1644
  case "xml":
1645
- return new (await import("./real-xml-analyzer-6CQVR477.js")).RealXmlAnalyzer();
1645
+ return new (await import("./real-xml-analyzer-YL465ZJW.js")).RealXmlAnalyzer();
1646
1646
  case "markdown":
1647
- return new (await import("./real-markdown-analyzer-UKUQZO4F.js")).RealMarkdownAnalyzer();
1647
+ return new (await import("./real-markdown-analyzer-TEJK2JXJ.js")).RealMarkdownAnalyzer();
1648
1648
  case "vb":
1649
- return new (await import("./real-vb-analyzer-ORY7LAQS.js")).RealVbAnalyzer();
1649
+ return new (await import("./real-vb-analyzer-VICVPOP7.js")).RealVbAnalyzer();
1650
1650
  case "vba":
1651
- return new (await import("./real-vba-analyzer-JH2TTUFI.js")).RealVbaAnalyzer();
1651
+ return new (await import("./real-vba-analyzer-HXLTTHKM.js")).RealVbaAnalyzer();
1652
1652
  case "matlab":
1653
- return new (await import("./real-matlab-analyzer-FVIKQZKG.js")).RealMatlabAnalyzer();
1653
+ return new (await import("./real-matlab-analyzer-Q5SWLN7Z.js")).RealMatlabAnalyzer();
1654
1654
  case "toml":
1655
- return new (await import("./real-toml-analyzer-L3C66L7Q.js")).RealTomlAnalyzer();
1655
+ return new (await import("./real-toml-analyzer-66L7BDCQ.js")).RealTomlAnalyzer();
1656
1656
  default:
1657
1657
  return new GenericAnalyzer();
1658
1658
  }
@@ -1997,7 +1997,7 @@ var ASTEngine;
1997
1997
  }
1998
1998
  }
1999
1999
  async function findSymbol(projectId, symbolName, filePath, lineStart) {
2000
- const { BrainDatabase } = await import("./database-TCTZDLE5.js");
2000
+ const { BrainDatabase } = await import("./database-76RP44JG.js");
2001
2001
  const db = await BrainDatabase.getReadOnlyInstance(projectId);
2002
2002
  const { BrainSymbolTable, BrainFileTable } = await import("./brain.sql-EIM4WS4D.js");
2003
2003
  const { eq, and, like } = await import("drizzle-orm");
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-QLK6ED4Q.js";
4
4
  import {
5
5
  ASTEngine
6
- } from "./chunk-V44PGPA6.js";
6
+ } from "./chunk-3ZTOHHSW.js";
7
7
 
8
8
  // src/ast/safety-primitives.ts
9
9
  var NON_LEAF_IDENTIFIER_TYPES = /* @__PURE__ */ new Set([
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-R2GW4F6R.js";
4
4
  import {
5
5
  ASTEngine
6
- } from "./chunk-V44PGPA6.js";
6
+ } from "./chunk-3ZTOHHSW.js";
7
7
  import {
8
8
  BINDING_SEP
9
9
  } from "./chunk-KAET47ZL.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ASTEngine
3
- } from "./chunk-V44PGPA6.js";
3
+ } from "./chunk-3ZTOHHSW.js";
4
4
 
5
5
  // src/ast/type-inference.ts
6
6
  var TypeInference;
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  ParallelIndexerConfig,
3
3
  parallelIndexerCliSkipPatterns
4
- } from "./chunk-PJTNGD3Z.js";
4
+ } from "./chunk-ZETTGPAW.js";
5
5
 
6
6
  // src/ast/fingerprint.ts
7
7
  import { createHash } from "crypto";
@@ -152,7 +152,7 @@ function readStoredFingerprint(raw, projectId) {
152
152
  async function persistProjectFingerprint(projectId, projectPath) {
153
153
  try {
154
154
  const cf = await computeCheckoutFingerprint(projectPath);
155
- const { BrainDatabase } = await import("./database-TCTZDLE5.js");
155
+ const { BrainDatabase } = await import("./database-76RP44JG.js");
156
156
  const raw = await BrainDatabase.getRawInstance(projectId);
157
157
  raw.prepare(
158
158
  `UPDATE brain_index_status SET codebase_fingerprint = ?, codebase_git = ?, time_updated = strftime('%s','now')*1000
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-QLK6ED4Q.js";
7
7
  import {
8
8
  BrainDatabase
9
- } from "./chunk-KLK3PBTO.js";
9
+ } from "./chunk-QKTRECYS.js";
10
10
  import {
11
11
  analysis_exclusions_exports
12
12
  } from "./chunk-SM7RFQRO.js";
@@ -42,11 +42,11 @@ function isNoiseCandidate(row) {
42
42
  async function searchSymbols(projectId, rawQuery, options = {}) {
43
43
  const raw = await BrainDatabase.getRawInstance(projectId, { readonly: true });
44
44
  if (options.mode === "content") {
45
- const { searchContent } = await import("./content-search-642F7E5V.js");
45
+ const { searchContent } = await import("./content-search-7XIP555Q.js");
46
46
  return searchContent(projectId, rawQuery, options);
47
47
  }
48
48
  if (options.mode === "regex" || options.regex) {
49
- const { searchRegex } = await import("./regex-search-OPTLKUN5.js");
49
+ const { searchRegex } = await import("./regex-search-NJKHMZNO.js");
50
50
  return searchRegex(projectId, rawQuery, options);
51
51
  }
52
52
  const query = String(rawQuery ?? "").trim();
@@ -728,7 +728,7 @@ var SemanticEngine;
728
728
  async function localVocabulary(projectId) {
729
729
  if (!projectId) return null;
730
730
  try {
731
- const { BrainDatabase } = await import("./database-TCTZDLE5.js");
731
+ const { BrainDatabase } = await import("./database-76RP44JG.js");
732
732
  const raw = await BrainDatabase.getRawInstance(projectId, { readonly: true });
733
733
  return projectVocabulary(raw, String(projectId));
734
734
  } catch {
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  reindexFilesParallel
3
- } from "./chunk-PJTNGD3Z.js";
3
+ } from "./chunk-ZETTGPAW.js";
4
4
  import {
5
5
  assertFreshFiles,
6
6
  extractIdentifierOccurrences,
7
7
  parseForSafety
8
- } from "./chunk-YI6FF2ZR.js";
8
+ } from "./chunk-5BVAH26D.js";
9
9
  import {
10
10
  checkSymbolFreshness,
11
11
  fileUnchangedSince
12
12
  } from "./chunk-QLK6ED4Q.js";
13
13
  import {
14
14
  BrainDatabase
15
- } from "./chunk-KLK3PBTO.js";
15
+ } from "./chunk-QKTRECYS.js";
16
16
  import {
17
17
  ASTEngine
18
- } from "./chunk-V44PGPA6.js";
18
+ } from "./chunk-3ZTOHHSW.js";
19
19
  import {
20
20
  bbDataDir
21
21
  } from "./chunk-2BSKD7O3.js";
@@ -11,7 +11,7 @@ import {
11
11
  parseEndpoint,
12
12
  probeEmbeddingEndpoint,
13
13
  readRuntimeOptions
14
- } from "./chunk-5SD45FLC.js";
14
+ } from "./chunk-B5GEAAYF.js";
15
15
  import {
16
16
  LOCAL_VECTOR_DIMENSION
17
17
  } from "./chunk-7AN7U5IZ.js";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-UUNHHX4M.js";
4
4
  import {
5
5
  BrainDatabase
6
- } from "./chunk-KLK3PBTO.js";
6
+ } from "./chunk-QKTRECYS.js";
7
7
  import {
8
8
  analysis_exclusions_exports
9
9
  } from "./chunk-SM7RFQRO.js";
@@ -12,7 +12,7 @@ import {
12
12
  graphTraversal,
13
13
  storedLineFromRow,
14
14
  unattributedAddress
15
- } from "./chunk-47HKX4AJ.js";
15
+ } from "./chunk-ENW4BTBA.js";
16
16
  import {
17
17
  analysis_exclusions_exports
18
18
  } from "./chunk-SM7RFQRO.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  expandBatchRequest
3
- } from "./chunk-CW4XXSNN.js";
3
+ } from "./chunk-BEIZZ73B.js";
4
4
 
5
5
  // src/mcp/tool-validation.ts
6
6
  var PARAMETER_ALIASES = {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  BrainDatabase
3
- } from "./chunk-KLK3PBTO.js";
3
+ } from "./chunk-QKTRECYS.js";
4
4
  import {
5
5
  bbDataDir
6
6
  } from "./chunk-2BSKD7O3.js";
@@ -165,7 +165,7 @@ async function composeStatus(projectId) {
165
165
  const dbFileExists = existsSync(BrainDatabase.getPath(projectId));
166
166
  const dbStats = live || lastRun || dbFileExists ? await (async () => {
167
167
  try {
168
- const { BrainDatabase: DB } = await import("./database-TCTZDLE5.js");
168
+ const { BrainDatabase: DB } = await import("./database-76RP44JG.js");
169
169
  const r = await DB.getRawInstance(projectId);
170
170
  const one = (sql) => r.prepare(sql).get()?.c ?? 0;
171
171
  return { files: one("SELECT COUNT(*) c FROM brain_file"), symbols: one("SELECT COUNT(*) c FROM brain_symbol"), relationships: one("SELECT COUNT(*) c FROM brain_relationship") };
@@ -1042,7 +1042,7 @@ var BrainDatabase;
1042
1042
  let gitIdentity = null;
1043
1043
  if (data.codebaseFingerprintProjectPath) {
1044
1044
  try {
1045
- const { computeCheckoutFingerprint } = await import("./fingerprint-XDXFRWO6.js");
1045
+ const { computeCheckoutFingerprint } = await import("./fingerprint-OBLIMZLP.js");
1046
1046
  const cf = await computeCheckoutFingerprint(data.codebaseFingerprintProjectPath);
1047
1047
  fingerprint = cf.fingerprint;
1048
1048
  gitIdentity = cf.git;
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  IMPACT_BUDGET,
3
3
  computeImpact
4
- } from "./chunk-BHB7BYYI.js";
4
+ } from "./chunk-EY5ZZUUA.js";
5
5
  import {
6
6
  searchSymbols
7
- } from "./chunk-HOWAQXJO.js";
7
+ } from "./chunk-AHDWGM7Q.js";
8
8
  import {
9
9
  executeEdit
10
- } from "./chunk-CW4XXSNN.js";
10
+ } from "./chunk-BEIZZ73B.js";
11
11
  import {
12
12
  readSymbolSnippet
13
13
  } from "./chunk-3CTFIJJB.js";
@@ -25,13 +25,13 @@ import {
25
25
  getAnalysisHistory,
26
26
  getUnifiedHealth,
27
27
  maybeAutoRefresh
28
- } from "./chunk-66A5ZFYA.js";
28
+ } from "./chunk-22V37YTK.js";
29
29
  import {
30
30
  reindexFilesParallel
31
- } from "./chunk-PJTNGD3Z.js";
31
+ } from "./chunk-ZETTGPAW.js";
32
32
  import {
33
33
  SemanticEngine
34
- } from "./chunk-5SD45FLC.js";
34
+ } from "./chunk-B5GEAAYF.js";
35
35
  import {
36
36
  embedLocal,
37
37
  projectVocabulary
@@ -53,7 +53,7 @@ import {
53
53
  } from "./chunk-RCMTFSEF.js";
54
54
  import {
55
55
  graphTraversal
56
- } from "./chunk-47HKX4AJ.js";
56
+ } from "./chunk-ENW4BTBA.js";
57
57
  import {
58
58
  makeProvenance
59
59
  } from "./chunk-UUNHHX4M.js";
@@ -67,10 +67,10 @@ import {
67
67
  } from "./chunk-QLK6ED4Q.js";
68
68
  import {
69
69
  BrainDatabase
70
- } from "./chunk-KLK3PBTO.js";
70
+ } from "./chunk-QKTRECYS.js";
71
71
  import {
72
72
  ASTEngine
73
- } from "./chunk-V44PGPA6.js";
73
+ } from "./chunk-3ZTOHHSW.js";
74
74
  import {
75
75
  create
76
76
  } from "./chunk-BQ3OVQ3P.js";
@@ -418,7 +418,7 @@ var handler = async (args, { projectId, projectPath }) => {
418
418
  }, null, 2));
419
419
  }
420
420
  if (mode === "content") {
421
- const { searchContent } = await import("./content-search-642F7E5V.js");
421
+ const { searchContent } = await import("./content-search-7XIP555Q.js");
422
422
  const raw = await BrainDatabase.getRawInstance(projectId, { readonly: true });
423
423
  const runPass2 = async () => {
424
424
  const results = await searchContent(projectId, String(args.query ?? ""), {
@@ -898,7 +898,7 @@ async function resolveEntities(projectId, ranked, options, maxResults) {
898
898
  return results;
899
899
  }
900
900
  async function keywordFallback(projectId, query, options, maxResults, reason, facts) {
901
- const { searchContent } = await import("./content-search-642F7E5V.js");
901
+ const { searchContent } = await import("./content-search-7XIP555Q.js");
902
902
  let content = [];
903
903
  try {
904
904
  content = await searchContent(projectId, query, {
@@ -2028,7 +2028,7 @@ async function testGaps(projectId, options = {}) {
2028
2028
  };
2029
2029
  }
2030
2030
  async function testImpact(projectId, target, options = {}) {
2031
- const { graphTraversal: graphTraversal2 } = await import("./graph-engine-PL5YA7BA.js");
2031
+ const { graphTraversal: graphTraversal2 } = await import("./graph-engine-HBSQNPTB.js");
2032
2032
  const raw = await BrainDatabase.getRawInstance(projectId);
2033
2033
  const testFileIds = new Set(
2034
2034
  raw.prepare("SELECT id FROM brain_file WHERE project_id=? AND COALESCE(is_test_file,0)=1").all(projectId).map((r) => r.id)
@@ -3364,12 +3364,12 @@ var CrossLanguageSecurityAnalysis;
3364
3364
  }
3365
3365
  CrossLanguageSecurityAnalysis2.analyze = analyze;
3366
3366
  async function analyzeSecurity(projectId, options) {
3367
- const { analyzeTaintFlows } = await import("./taint-YOTN5X55.js");
3367
+ const { analyzeTaintFlows } = await import("./taint-KXUHHPIE.js");
3368
3368
  return analyzeTaintFlows(projectId, options);
3369
3369
  }
3370
3370
  CrossLanguageSecurityAnalysis2.analyzeSecurity = analyzeSecurity;
3371
3371
  async function analyzeSecurityAcrossLanguages(projectId, options) {
3372
- const { analyzeTaintFlows } = await import("./taint-YOTN5X55.js");
3372
+ const { analyzeTaintFlows } = await import("./taint-KXUHHPIE.js");
3373
3373
  const report = await analyzeTaintFlows(projectId, options);
3374
3374
  const toLegacy = (f) => ({
3375
3375
  id: f.id,
@@ -11291,7 +11291,7 @@ var handler11 = async (args, { projectId, projectPath }) => {
11291
11291
  true
11292
11292
  );
11293
11293
  }
11294
- const { runPostProcessing } = await import("./parallel-indexer-4PW3AFXP.js");
11294
+ const { runPostProcessing } = await import("./parallel-indexer-FK2XKZXY.js");
11295
11295
  try {
11296
11296
  const post = await runPostProcessing(projectId, { logger: { log: () => {
11297
11297
  }, write: () => {
@@ -11338,7 +11338,7 @@ var handler11 = async (args, { projectId, projectPath }) => {
11338
11338
  }
11339
11339
  }
11340
11340
  try {
11341
- const { collectDirChanges } = await import("./parallel-indexer-4PW3AFXP.js");
11341
+ const { collectDirChanges } = await import("./parallel-indexer-FK2XKZXY.js");
11342
11342
  const changes = await collectDirChanges(projectId, projectPath, abs);
11343
11343
  if (changes.length === 0) {
11344
11344
  return textResult(
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-QLK6ED4Q.js";
4
4
  import {
5
5
  BrainDatabase
6
- } from "./chunk-KLK3PBTO.js";
6
+ } from "./chunk-QKTRECYS.js";
7
7
 
8
8
  // src/brain/brain-index-health.ts
9
9
  import * as fs from "fs";
@@ -525,7 +525,7 @@ async function checkWalSize(rawDb, projectId) {
525
525
  const pageCount = rawDb.prepare("PRAGMA page_count").get()?.page_count ?? 0;
526
526
  const pageSize = rawDb.prepare("PRAGMA page_size").get()?.page_size ?? 4096;
527
527
  const dbSizeBytes = pageCount * pageSize;
528
- const { BrainDatabase: BDB } = await import("./database-TCTZDLE5.js");
528
+ const { BrainDatabase: BDB } = await import("./database-76RP44JG.js");
529
529
  const rawPath = BDB.getPath(projectId);
530
530
  const walPath = rawPath + "-wal";
531
531
  let walSizeBytes = 0;
@@ -1,7 +1,7 @@
1
1
  // package.json
2
2
  var package_default = {
3
3
  name: "@backbencher/brain",
4
- version: "0.1.0",
4
+ version: "0.1.1",
5
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
6
  type: "module",
7
7
  author: "Muhammad Ishaq Khan <ishaq2321@users.noreply.github.com>",
@@ -48,7 +48,7 @@ var package_default = {
48
48
  typecheck: "tsc --noEmit",
49
49
  "typecheck:scripts": "tsc --noEmit -p tsconfig.scripts.json",
50
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",
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-if-present.ts && npx tsx script/verify-grammar-licenses.ts",
52
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
53
  prepublishOnly: "npm run build",
54
54
  prepack: "npm run typecheck 1>&2 && npm run build 1>&2",
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-R2GW4F6R.js";
4
4
  import {
5
5
  ASTEngine
6
- } from "./chunk-V44PGPA6.js";
6
+ } from "./chunk-3ZTOHHSW.js";
7
7
  import {
8
8
  BINDING_SEP
9
9
  } from "./chunk-KAET47ZL.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ASTEngine
3
- } from "./chunk-V44PGPA6.js";
3
+ } from "./chunk-3ZTOHHSW.js";
4
4
 
5
5
  // src/ast/real-css-analyzer.ts
6
6
  import { existsSync, statSync } from "fs";