ghagga-core 2.8.0 → 2.9.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 (316) hide show
  1. package/dist/acp/adapter.d.ts +91 -0
  2. package/dist/acp/adapter.d.ts.map +1 -0
  3. package/dist/acp/adapter.js +315 -0
  4. package/dist/acp/adapter.js.map +1 -0
  5. package/dist/acp/index.d.ts +4 -0
  6. package/dist/acp/index.d.ts.map +1 -0
  7. package/dist/acp/index.js +2 -0
  8. package/dist/acp/index.js.map +1 -0
  9. package/dist/acp/types.d.ts +142 -0
  10. package/dist/acp/types.d.ts.map +1 -0
  11. package/dist/acp/types.js +13 -0
  12. package/dist/acp/types.js.map +1 -0
  13. package/dist/adversarial-qa.d.ts +60 -0
  14. package/dist/adversarial-qa.d.ts.map +1 -0
  15. package/dist/adversarial-qa.js +85 -0
  16. package/dist/adversarial-qa.js.map +1 -0
  17. package/dist/agents/audit.d.ts +18 -0
  18. package/dist/agents/audit.d.ts.map +1 -0
  19. package/dist/agents/audit.js +78 -0
  20. package/dist/agents/audit.js.map +1 -0
  21. package/dist/agents/consensus.d.ts +1 -1
  22. package/dist/agents/consensus.d.ts.map +1 -1
  23. package/dist/agents/consensus.js +10 -8
  24. package/dist/agents/consensus.js.map +1 -1
  25. package/dist/agents/diagnostic.d.ts.map +1 -1
  26. package/dist/agents/diagnostic.js +22 -20
  27. package/dist/agents/diagnostic.js.map +1 -1
  28. package/dist/agents/fan-out-lenses.d.ts +41 -0
  29. package/dist/agents/fan-out-lenses.d.ts.map +1 -1
  30. package/dist/agents/fan-out-lenses.js +117 -3
  31. package/dist/agents/fan-out-lenses.js.map +1 -1
  32. package/dist/agents/prompts.d.ts +12 -0
  33. package/dist/agents/prompts.d.ts.map +1 -1
  34. package/dist/agents/prompts.js +31 -0
  35. package/dist/agents/prompts.js.map +1 -1
  36. package/dist/agents/simple.d.ts +1 -1
  37. package/dist/agents/simple.d.ts.map +1 -1
  38. package/dist/agents/simple.js +10 -6
  39. package/dist/agents/simple.js.map +1 -1
  40. package/dist/agents/workflow.d.ts +1 -1
  41. package/dist/agents/workflow.d.ts.map +1 -1
  42. package/dist/agents/workflow.js +9 -8
  43. package/dist/agents/workflow.js.map +1 -1
  44. package/dist/aisvs.d.ts +44 -0
  45. package/dist/aisvs.d.ts.map +1 -0
  46. package/dist/aisvs.js +189 -0
  47. package/dist/aisvs.js.map +1 -0
  48. package/dist/checklist/context.d.ts.map +1 -1
  49. package/dist/checklist/context.js +2 -8
  50. package/dist/checklist/context.js.map +1 -1
  51. package/dist/checklist/defaults.d.ts.map +1 -1
  52. package/dist/checklist/defaults.js.map +1 -1
  53. package/dist/checklist/scorer.d.ts.map +1 -1
  54. package/dist/checklist/scorer.js +105 -12
  55. package/dist/checklist/scorer.js.map +1 -1
  56. package/dist/code-intel/client.d.ts +30 -0
  57. package/dist/code-intel/client.d.ts.map +1 -0
  58. package/dist/code-intel/client.js +91 -0
  59. package/dist/code-intel/client.js.map +1 -0
  60. package/dist/code-intel/context.d.ts +21 -0
  61. package/dist/code-intel/context.d.ts.map +1 -0
  62. package/dist/code-intel/context.js +72 -0
  63. package/dist/code-intel/context.js.map +1 -0
  64. package/dist/code-intel/index.d.ts +10 -0
  65. package/dist/code-intel/index.d.ts.map +1 -0
  66. package/dist/code-intel/index.js +11 -0
  67. package/dist/code-intel/index.js.map +1 -0
  68. package/dist/code-intel/types.d.ts +63 -0
  69. package/dist/code-intel/types.d.ts.map +1 -0
  70. package/dist/code-intel/types.js +9 -0
  71. package/dist/code-intel/types.js.map +1 -0
  72. package/dist/compress/index.d.ts +55 -0
  73. package/dist/compress/index.d.ts.map +1 -0
  74. package/dist/compress/index.js +166 -0
  75. package/dist/compress/index.js.map +1 -0
  76. package/dist/cost-footer.d.ts +38 -0
  77. package/dist/cost-footer.d.ts.map +1 -0
  78. package/dist/cost-footer.js +95 -0
  79. package/dist/cost-footer.js.map +1 -0
  80. package/dist/critique/critique.d.ts +40 -0
  81. package/dist/critique/critique.d.ts.map +1 -0
  82. package/dist/critique/critique.js +194 -0
  83. package/dist/critique/critique.js.map +1 -0
  84. package/dist/critique/cross-model.d.ts +123 -0
  85. package/dist/critique/cross-model.d.ts.map +1 -0
  86. package/dist/critique/cross-model.js +267 -0
  87. package/dist/critique/cross-model.js.map +1 -0
  88. package/dist/critique/index.d.ts +8 -0
  89. package/dist/critique/index.d.ts.map +1 -0
  90. package/dist/critique/index.js +6 -0
  91. package/dist/critique/index.js.map +1 -0
  92. package/dist/critique/prompts.d.ts +11 -0
  93. package/dist/critique/prompts.d.ts.map +1 -0
  94. package/dist/critique/prompts.js +66 -0
  95. package/dist/critique/prompts.js.map +1 -0
  96. package/dist/critique/types.d.ts +84 -0
  97. package/dist/critique/types.d.ts.map +1 -0
  98. package/dist/critique/types.js +13 -0
  99. package/dist/critique/types.js.map +1 -0
  100. package/dist/doc-validation/index.d.ts +9 -0
  101. package/dist/doc-validation/index.d.ts.map +1 -0
  102. package/dist/doc-validation/index.js +9 -0
  103. package/dist/doc-validation/index.js.map +1 -0
  104. package/dist/doc-validation/scanner.d.ts +40 -0
  105. package/dist/doc-validation/scanner.d.ts.map +1 -0
  106. package/dist/doc-validation/scanner.js +163 -0
  107. package/dist/doc-validation/scanner.js.map +1 -0
  108. package/dist/doc-validation/types.d.ts +27 -0
  109. package/dist/doc-validation/types.d.ts.map +1 -0
  110. package/dist/doc-validation/types.js +8 -0
  111. package/dist/doc-validation/types.js.map +1 -0
  112. package/dist/embed.d.ts +27 -0
  113. package/dist/embed.d.ts.map +1 -0
  114. package/dist/embed.js +47 -0
  115. package/dist/embed.js.map +1 -0
  116. package/dist/enhance/enhance.d.ts.map +1 -1
  117. package/dist/enhance/enhance.js +7 -25
  118. package/dist/enhance/enhance.js.map +1 -1
  119. package/dist/enhance/types.d.ts +5 -0
  120. package/dist/enhance/types.d.ts.map +1 -1
  121. package/dist/exploitability/analyzer.d.ts +42 -0
  122. package/dist/exploitability/analyzer.d.ts.map +1 -1
  123. package/dist/exploitability/analyzer.js +225 -0
  124. package/dist/exploitability/analyzer.js.map +1 -1
  125. package/dist/exploitability/index.d.ts +3 -2
  126. package/dist/exploitability/index.d.ts.map +1 -1
  127. package/dist/exploitability/index.js +1 -2
  128. package/dist/exploitability/index.js.map +1 -1
  129. package/dist/exploitability/types.d.ts +27 -0
  130. package/dist/exploitability/types.d.ts.map +1 -1
  131. package/dist/fetch-fix.d.ts +60 -0
  132. package/dist/fetch-fix.d.ts.map +1 -0
  133. package/dist/fetch-fix.js +137 -0
  134. package/dist/fetch-fix.js.map +1 -0
  135. package/dist/flood/index.d.ts +34 -0
  136. package/dist/flood/index.d.ts.map +1 -0
  137. package/dist/flood/index.js +67 -0
  138. package/dist/flood/index.js.map +1 -0
  139. package/dist/format.d.ts.map +1 -1
  140. package/dist/format.js +6 -1
  141. package/dist/format.js.map +1 -1
  142. package/dist/graph/blast-radius.js +2 -2
  143. package/dist/graph/blast-radius.js.map +1 -1
  144. package/dist/graph/call-chain.d.ts +36 -0
  145. package/dist/graph/call-chain.d.ts.map +1 -0
  146. package/dist/graph/call-chain.js +291 -0
  147. package/dist/graph/call-chain.js.map +1 -0
  148. package/dist/graph/index.d.ts +4 -0
  149. package/dist/graph/index.d.ts.map +1 -1
  150. package/dist/graph/index.js +2 -0
  151. package/dist/graph/index.js.map +1 -1
  152. package/dist/graph/reverse-deps.d.ts +37 -0
  153. package/dist/graph/reverse-deps.d.ts.map +1 -0
  154. package/dist/graph/reverse-deps.js +136 -0
  155. package/dist/graph/reverse-deps.js.map +1 -0
  156. package/dist/index.d.ts +50 -11
  157. package/dist/index.d.ts.map +1 -1
  158. package/dist/index.js +34 -7
  159. package/dist/index.js.map +1 -1
  160. package/dist/injection-corpus.d.ts +41 -0
  161. package/dist/injection-corpus.d.ts.map +1 -0
  162. package/dist/injection-corpus.js +181 -0
  163. package/dist/injection-corpus.js.map +1 -0
  164. package/dist/latent-comms.d.ts +31 -0
  165. package/dist/latent-comms.d.ts.map +1 -0
  166. package/dist/latent-comms.js +139 -0
  167. package/dist/latent-comms.js.map +1 -0
  168. package/dist/memory/pageindex/chunker.d.ts +33 -0
  169. package/dist/memory/pageindex/chunker.d.ts.map +1 -0
  170. package/dist/memory/pageindex/chunker.js +112 -0
  171. package/dist/memory/pageindex/chunker.js.map +1 -0
  172. package/dist/memory/pageindex/example.d.ts +22 -0
  173. package/dist/memory/pageindex/example.d.ts.map +1 -0
  174. package/dist/memory/pageindex/example.js +94 -0
  175. package/dist/memory/pageindex/example.js.map +1 -0
  176. package/dist/memory/pageindex/index.d.ts +15 -0
  177. package/dist/memory/pageindex/index.d.ts.map +1 -0
  178. package/dist/memory/pageindex/index.js +17 -0
  179. package/dist/memory/pageindex/index.js.map +1 -0
  180. package/dist/memory/pageindex/service.d.ts +53 -0
  181. package/dist/memory/pageindex/service.d.ts.map +1 -0
  182. package/dist/memory/pageindex/service.js +229 -0
  183. package/dist/memory/pageindex/service.js.map +1 -0
  184. package/dist/memory/pageindex/types.d.ts +67 -0
  185. package/dist/memory/pageindex/types.d.ts.map +1 -0
  186. package/dist/memory/pageindex/types.js +14 -0
  187. package/dist/memory/pageindex/types.js.map +1 -0
  188. package/dist/memory/persist.d.ts.map +1 -1
  189. package/dist/memory/persist.js +6 -2
  190. package/dist/memory/persist.js.map +1 -1
  191. package/dist/memory/sqlite.d.ts +69 -2
  192. package/dist/memory/sqlite.d.ts.map +1 -1
  193. package/dist/memory/sqlite.js +312 -5
  194. package/dist/memory/sqlite.js.map +1 -1
  195. package/dist/memory/taxonomy.d.ts +34 -0
  196. package/dist/memory/taxonomy.d.ts.map +1 -0
  197. package/dist/memory/taxonomy.js +189 -0
  198. package/dist/memory/taxonomy.js.map +1 -0
  199. package/dist/memory/versioning.d.ts.map +1 -1
  200. package/dist/memory/versioning.js.map +1 -1
  201. package/dist/negative.d.ts +23 -0
  202. package/dist/negative.d.ts.map +1 -0
  203. package/dist/negative.js +40 -0
  204. package/dist/negative.js.map +1 -0
  205. package/dist/pipeline.d.ts.map +1 -1
  206. package/dist/pipeline.js +455 -46
  207. package/dist/pipeline.js.map +1 -1
  208. package/dist/prompt-intel.d.ts +39 -0
  209. package/dist/prompt-intel.d.ts.map +1 -0
  210. package/dist/prompt-intel.js +148 -0
  211. package/dist/prompt-intel.js.map +1 -0
  212. package/dist/providers/cli-bridge.d.ts +4 -0
  213. package/dist/providers/cli-bridge.d.ts.map +1 -1
  214. package/dist/providers/cli-bridge.js +4 -0
  215. package/dist/providers/cli-bridge.js.map +1 -1
  216. package/dist/providers/generate-fn.d.ts +3 -15
  217. package/dist/providers/generate-fn.d.ts.map +1 -1
  218. package/dist/providers/generate-fn.js +3 -30
  219. package/dist/providers/generate-fn.js.map +1 -1
  220. package/dist/providers/index.d.ts.map +1 -1
  221. package/dist/providers/index.js.map +1 -1
  222. package/dist/providers/ollama.d.ts +15 -0
  223. package/dist/providers/ollama.d.ts.map +1 -0
  224. package/dist/providers/ollama.js +30 -0
  225. package/dist/providers/ollama.js.map +1 -0
  226. package/dist/ranking/index.d.ts +9 -0
  227. package/dist/ranking/index.d.ts.map +1 -0
  228. package/dist/ranking/index.js +82 -0
  229. package/dist/ranking/index.js.map +1 -0
  230. package/dist/recursive/circuit-breaker.d.ts +36 -0
  231. package/dist/recursive/circuit-breaker.d.ts.map +1 -0
  232. package/dist/recursive/circuit-breaker.js +62 -0
  233. package/dist/recursive/circuit-breaker.js.map +1 -0
  234. package/dist/recursive/index.d.ts +4 -0
  235. package/dist/recursive/index.d.ts.map +1 -1
  236. package/dist/recursive/index.js +18 -1
  237. package/dist/recursive/index.js.map +1 -1
  238. package/dist/recursive/types.d.ts +2 -0
  239. package/dist/recursive/types.d.ts.map +1 -1
  240. package/dist/recursive/types.js +1 -0
  241. package/dist/recursive/types.js.map +1 -1
  242. package/dist/scope/diff-mapper.js.map +1 -1
  243. package/dist/scope/entity-diff.d.ts +58 -0
  244. package/dist/scope/entity-diff.d.ts.map +1 -0
  245. package/dist/scope/entity-diff.js +224 -0
  246. package/dist/scope/entity-diff.js.map +1 -0
  247. package/dist/scope/extractor.d.ts.map +1 -1
  248. package/dist/scope/extractor.js.map +1 -1
  249. package/dist/scope/index.d.ts +3 -1
  250. package/dist/scope/index.d.ts.map +1 -1
  251. package/dist/scope/index.js +3 -0
  252. package/dist/scope/index.js.map +1 -1
  253. package/dist/scope/parser.d.ts +1 -1
  254. package/dist/scope/parser.d.ts.map +1 -1
  255. package/dist/scope/parser.js.map +1 -1
  256. package/dist/scope/types.d.ts +32 -0
  257. package/dist/scope/types.d.ts.map +1 -1
  258. package/dist/scope/types.js +7 -1
  259. package/dist/scope/types.js.map +1 -1
  260. package/dist/search/index.d.ts +11 -0
  261. package/dist/search/index.d.ts.map +1 -0
  262. package/dist/search/index.js +10 -0
  263. package/dist/search/index.js.map +1 -0
  264. package/dist/search/indexer.d.ts +67 -0
  265. package/dist/search/indexer.d.ts.map +1 -0
  266. package/dist/search/indexer.js +196 -0
  267. package/dist/search/indexer.js.map +1 -0
  268. package/dist/search/searcher.d.ts +34 -0
  269. package/dist/search/searcher.d.ts.map +1 -0
  270. package/dist/search/searcher.js +101 -0
  271. package/dist/search/searcher.js.map +1 -0
  272. package/dist/search/types.d.ts +81 -0
  273. package/dist/search/types.d.ts.map +1 -0
  274. package/dist/search/types.js +8 -0
  275. package/dist/search/types.js.map +1 -0
  276. package/dist/self-improve/index.d.ts +53 -0
  277. package/dist/self-improve/index.d.ts.map +1 -0
  278. package/dist/self-improve/index.js +136 -0
  279. package/dist/self-improve/index.js.map +1 -0
  280. package/dist/semantic-diff/index.d.ts +31 -0
  281. package/dist/semantic-diff/index.d.ts.map +1 -0
  282. package/dist/semantic-diff/index.js +215 -0
  283. package/dist/semantic-diff/index.js.map +1 -0
  284. package/dist/testing/index.d.ts +67 -0
  285. package/dist/testing/index.d.ts.map +1 -0
  286. package/dist/testing/index.js +76 -0
  287. package/dist/testing/index.js.map +1 -0
  288. package/dist/testing/vitest-helpers.d.ts +26 -0
  289. package/dist/testing/vitest-helpers.d.ts.map +1 -0
  290. package/dist/testing/vitest-helpers.js +37 -0
  291. package/dist/testing/vitest-helpers.js.map +1 -0
  292. package/dist/tools/index.d.ts +3 -1
  293. package/dist/tools/index.d.ts.map +1 -1
  294. package/dist/tools/index.js +2 -1
  295. package/dist/tools/index.js.map +1 -1
  296. package/dist/tools/remote-query.d.ts +40 -0
  297. package/dist/tools/remote-query.d.ts.map +1 -0
  298. package/dist/tools/remote-query.js +71 -0
  299. package/dist/tools/remote-query.js.map +1 -0
  300. package/dist/tracing/index.d.ts +39 -0
  301. package/dist/tracing/index.d.ts.map +1 -0
  302. package/dist/tracing/index.js +70 -0
  303. package/dist/tracing/index.js.map +1 -0
  304. package/dist/trajectory.d.ts +65 -0
  305. package/dist/trajectory.d.ts.map +1 -0
  306. package/dist/trajectory.js +126 -0
  307. package/dist/trajectory.js.map +1 -0
  308. package/dist/trust/index.d.ts +34 -0
  309. package/dist/trust/index.d.ts.map +1 -0
  310. package/dist/trust/index.js +78 -0
  311. package/dist/trust/index.js.map +1 -0
  312. package/dist/types.d.ts +144 -5
  313. package/dist/types.d.ts.map +1 -1
  314. package/dist/types.js +2 -11
  315. package/dist/types.js.map +1 -1
  316. package/package.json +1 -3
@@ -19,10 +19,7 @@ export function buildChecklistContext(config) {
19
19
  const activeDimensions = config.dimensions.filter((d) => d.enabled);
20
20
  if (activeDimensions.length === 0)
21
21
  return '';
22
- const lines = [
23
- '## Review Checklist (evaluate each applicable check)',
24
- '',
25
- ];
22
+ const lines = ['## Review Checklist (evaluate each applicable check)', ''];
26
23
  for (const dim of activeDimensions) {
27
24
  const activeChecks = dim.checks.filter((c) => c.enabled);
28
25
  if (activeChecks.length === 0)
@@ -48,10 +45,7 @@ export function buildChecklistContext(config) {
48
45
  * This reduces context while keeping the most important checks.
49
46
  */
50
47
  function truncateContext(dimensions) {
51
- const lines = [
52
- '## Review Checklist (high-priority checks only)',
53
- '',
54
- ];
48
+ const lines = ['## Review Checklist (high-priority checks only)', ''];
55
49
  for (const dim of dimensions) {
56
50
  const highWeightChecks = dim.checks.filter((c) => c.enabled && c.weight >= 7);
57
51
  if (highWeightChecks.length === 0)
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/checklist/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/checklist/context.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/checklist/defaults.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAoKtE,uDAAuD;AACvD,eAAO,MAAM,iBAAiB,EAAE,eAQ/B,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,kBAAkB,EAAE,SAAS,kBAAkB,EAAiC,CAAC"}
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/checklist/defaults.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAqKtE,uDAAuD;AACvD,eAAO,MAAM,iBAAiB,EAAE,eAQ/B,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,kBAAkB,EAAE,SAAS,kBAAkB,EAAiC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/checklist/defaults.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/checklist/defaults.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"scorer.d.ts","sourceRoot":"","sources":["../../src/checklist/scorer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,KAAK,EAAkB,eAAe,EAAsB,MAAM,YAAY,CAAC;AAItF,2DAA2D;AAC3D,MAAM,WAAW,aAAa;IAC5B,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAC;IAErB,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IAEpB,4FAA4F;IAC5F,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvB,2EAA2E;IAC3E,WAAW,EAAE,MAAM,CAAC;IAEpB,uCAAuC;IACvC,kBAAkB,EAAE,MAAM,CAAC;IAE3B,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;CACf;AAED,4CAA4C;AAC5C,MAAM,WAAW,oBAAoB;IACnC,wDAAwD;IACxD,UAAU,EAAE,MAAM,CAAC;IAEnB,4EAA4E;IAC5E,QAAQ,EAAE,aAAa,EAAE,CAAC;IAE1B,mCAAmC;IACnC,eAAe,EAAE,cAAc,EAAE,CAAC;CACnC;AAED,4CAA4C;AAC5C,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AA+CD,gDAAgD;AAChD,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,eAAe,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAID;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,SAAS,eAAe,EAAE,EACpC,MAAM,EAAE,eAAe,GACtB,oBAAoB,CAuDtB"}
1
+ {"version":3,"file":"scorer.d.ts","sourceRoot":"","sources":["../../src/checklist/scorer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAsB,MAAM,YAAY,CAAC;AAKtE,2DAA2D;AAC3D,MAAM,WAAW,aAAa;IAC5B,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAC;IAErB,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IAEpB,4FAA4F;IAC5F,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvB,2EAA2E;IAC3E,WAAW,EAAE,MAAM,CAAC;IAEpB,uCAAuC;IACvC,kBAAkB,EAAE,MAAM,CAAC;IAE3B,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;CACf;AAED,4CAA4C;AAC5C,MAAM,WAAW,oBAAoB;IACnC,wDAAwD;IACxD,UAAU,EAAE,MAAM,CAAC;IAEnB,4EAA4E;IAC5E,QAAQ,EAAE,aAAa,EAAE,CAAC;IAE1B,mCAAmC;IACnC,eAAe,EAAE,cAAc,EAAE,CAAC;CACnC;AAED,4CAA4C;AAC5C,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AA4ID,gDAAgD;AAChD,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,eAAe,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAID;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,SAAS,eAAe,EAAE,EACpC,MAAM,EAAE,eAAe,GACtB,oBAAoB,CAuDtB"}
@@ -11,21 +11,102 @@ import { SEVERITY_MULTIPLIER } from './types.js';
11
11
  * Checked in order: first match wins.
12
12
  */
13
13
  const DIMENSION_KEYWORDS = new Map([
14
- ['solid', ['solid', 'single responsibility', 'srp', 'open closed', 'ocp', 'liskov', 'lsp', 'interface segregation', 'isp', 'dependency inversion', 'dip', 'coupling', 'cohesion', 'god class', 'fat interface']],
15
- ['error-handling', ['error', 'exception', 'catch', 'throw', 'try', 'finally', 'unhandled', 'silent failure', 'swallow', 'propagat']],
16
- ['boundary-conditions', ['boundary', 'null', 'undefined', 'empty', 'overflow', 'underflow', 'division by zero', 'nan', 'unicode', 'encoding', 'race condition', 'concurrent', 'off-by-one']],
17
- ['security', ['security', 'injection', 'xss', 'csrf', 'auth', 'token', 'password', 'secret', 'credential', 'sensitive', 'sanitiz', 'validat', 'vulnerab', 'cve', 'exploit']],
14
+ [
15
+ 'solid',
16
+ [
17
+ 'solid',
18
+ 'single responsibility',
19
+ 'srp',
20
+ 'open closed',
21
+ 'ocp',
22
+ 'liskov',
23
+ 'lsp',
24
+ 'interface segregation',
25
+ 'isp',
26
+ 'dependency inversion',
27
+ 'dip',
28
+ 'coupling',
29
+ 'cohesion',
30
+ 'god class',
31
+ 'fat interface',
32
+ ],
33
+ ],
34
+ [
35
+ 'error-handling',
36
+ [
37
+ 'error',
38
+ 'exception',
39
+ 'catch',
40
+ 'throw',
41
+ 'try',
42
+ 'finally',
43
+ 'unhandled',
44
+ 'silent failure',
45
+ 'swallow',
46
+ 'propagat',
47
+ ],
48
+ ],
49
+ [
50
+ 'boundary-conditions',
51
+ [
52
+ 'boundary',
53
+ 'null',
54
+ 'undefined',
55
+ 'empty',
56
+ 'overflow',
57
+ 'underflow',
58
+ 'division by zero',
59
+ 'nan',
60
+ 'unicode',
61
+ 'encoding',
62
+ 'race condition',
63
+ 'concurrent',
64
+ 'off-by-one',
65
+ ],
66
+ ],
67
+ [
68
+ 'security',
69
+ [
70
+ 'security',
71
+ 'injection',
72
+ 'xss',
73
+ 'csrf',
74
+ 'auth',
75
+ 'token',
76
+ 'password',
77
+ 'secret',
78
+ 'credential',
79
+ 'sensitive',
80
+ 'sanitiz',
81
+ 'validat',
82
+ 'vulnerab',
83
+ 'cve',
84
+ 'exploit',
85
+ ],
86
+ ],
18
87
  ]);
19
88
  /**
20
89
  * Keywords that map to specific check IDs within a dimension.
21
90
  */
22
91
  const CHECK_KEYWORDS = new Map([
23
92
  // SOLID
24
- ['single-responsibility', ['single responsibility', 'srp', 'one reason to change', 'god class', 'too many responsibilities']],
93
+ [
94
+ 'single-responsibility',
95
+ [
96
+ 'single responsibility',
97
+ 'srp',
98
+ 'one reason to change',
99
+ 'god class',
100
+ 'too many responsibilities',
101
+ ],
102
+ ],
25
103
  ['open-closed', ['open closed', 'ocp', 'open for extension', 'closed for modification']],
26
104
  ['liskov-substitution', ['liskov', 'lsp', 'substitut', 'subtype', 'base type']],
27
105
  ['interface-segregation', ['interface segregation', 'isp', 'fat interface', 'too many methods']],
28
- ['dependency-inversion', ['dependency inversion', 'dip', 'depend on abstraction', 'concrete dependency', 'coupling']],
106
+ [
107
+ 'dependency-inversion',
108
+ ['dependency inversion', 'dip', 'depend on abstraction', 'concrete dependency', 'coupling'],
109
+ ],
29
110
  // Error handling
30
111
  ['error-propagation', ['error propagat', 'error context', 'wrap error', 'error chain']],
31
112
  ['error-recovery', ['error recovery', 'graceful', 'fallback', 'retry', 'degrad']],
@@ -34,14 +115,26 @@ const CHECK_KEYWORDS = new Map([
34
115
  ['async-error-handling', ['async error', 'promise', 'unhandled rejection', 'await', '.catch']],
35
116
  // Boundary conditions
36
117
  ['null-undefined', ['null', 'undefined', 'nil', 'optional', 'nullable', 'nullish']],
37
- ['empty-collections', ['empty array', 'empty list', 'empty map', 'empty string', 'length 0', 'size 0']],
38
- ['numeric-limits', ['overflow', 'underflow', 'division by zero', 'nan', 'infinity', 'max safe integer']],
118
+ [
119
+ 'empty-collections',
120
+ ['empty array', 'empty list', 'empty map', 'empty string', 'length 0', 'size 0'],
121
+ ],
122
+ [
123
+ 'numeric-limits',
124
+ ['overflow', 'underflow', 'division by zero', 'nan', 'infinity', 'max safe integer'],
125
+ ],
39
126
  ['string-encoding', ['unicode', 'utf', 'encoding', 'multi-byte', 'special character']],
40
- ['concurrency-bounds', ['race condition', 'concurrent', 'mutex', 'lock', 'deadlock', 'thread safe']],
127
+ [
128
+ 'concurrency-bounds',
129
+ ['race condition', 'concurrent', 'mutex', 'lock', 'deadlock', 'thread safe'],
130
+ ],
41
131
  // Security
42
132
  ['input-validation', ['input validat', 'sanitiz', 'untrusted input', 'user input']],
43
133
  ['auth-checks', ['auth', 'authentication', 'authorization', 'permission', 'access control']],
44
- ['sensitive-data', ['sensitive data', 'password', 'token', 'secret', 'pii', 'credential', 'api key']],
134
+ [
135
+ 'sensitive-data',
136
+ ['sensitive data', 'password', 'token', 'secret', 'pii', 'credential', 'api key'],
137
+ ],
45
138
  ['injection-prevention', ['injection', 'xss', 'sql inject', 'command inject', 'path traversal']],
46
139
  ['dependency-safety', ['dependency', 'vulnerab', 'cve', 'outdated', 'known vulnerab']],
47
140
  ]);
@@ -118,7 +211,7 @@ function matchFinding(finding, dimensions) {
118
211
  const activeChecks = dim.checks.filter((c) => c.enabled);
119
212
  for (const check of activeChecks) {
120
213
  const keywords = CHECK_KEYWORDS.get(check.id);
121
- if (keywords && keywords.some((kw) => text.includes(kw))) {
214
+ if (keywords?.some((kw) => text.includes(kw))) {
122
215
  return { dimensionId: dim.id, checkId: check.id, weight: check.weight };
123
216
  }
124
217
  }
@@ -128,7 +221,7 @@ function matchFinding(finding, dimensions) {
128
221
  if (!dim.enabled)
129
222
  continue;
130
223
  const keywords = DIMENSION_KEYWORDS.get(dim.id);
131
- if (keywords && keywords.some((kw) => text.includes(kw))) {
224
+ if (keywords?.some((kw) => text.includes(kw))) {
132
225
  // Use average weight of active checks in this dimension
133
226
  const activeChecks = dim.checks.filter((c) => c.enabled);
134
227
  const avgWeight = activeChecks.length > 0
@@ -1 +1 @@
1
- {"version":3,"file":"scorer.js","sourceRoot":"","sources":["../../src/checklist/scorer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scorer.js","sourceRoot":"","sources":["../../src/checklist/scorer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * MCP Code Intelligence Client
3
+ *
4
+ * Connects to an MCP-compatible code intelligence server
5
+ * (codedb, repoforge graph) and implements the CodeIntelProvider interface.
6
+ *
7
+ * All methods degrade gracefully — network errors or timeouts return
8
+ * empty results instead of throwing.
9
+ */
10
+ import type { CodeIntelProvider, SymbolReference } from './types.js';
11
+ /** Default timeout for MCP queries in milliseconds. */
12
+ export declare const DEFAULT_CODE_INTEL_TIMEOUT = 5000;
13
+ export declare class McpCodeIntelClient implements CodeIntelProvider {
14
+ private readonly serverUrl;
15
+ private readonly timeout;
16
+ private requestId;
17
+ constructor(serverUrl: string, timeout?: number);
18
+ getCallers(symbol: string, file: string): Promise<SymbolReference[]>;
19
+ getCallees(symbol: string, file: string): Promise<SymbolReference[]>;
20
+ getFileImports(file: string): Promise<string[]>;
21
+ getFileExports(file: string): Promise<string[]>;
22
+ private querySymbolRefs;
23
+ private queryStringList;
24
+ /**
25
+ * Send a JSON-RPC 2.0 request to the MCP server.
26
+ * Returns the result field on success, null on any error.
27
+ */
28
+ private rpc;
29
+ }
30
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/code-intel/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIrE,uDAAuD;AACvD,eAAO,MAAM,0BAA0B,OAAQ,CAAC;AAahD,qBAAa,kBAAmB,YAAW,iBAAiB;IAC1D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,SAAS,CAAK;gBAEV,SAAS,EAAE,MAAM,EAAE,OAAO,SAA6B;IAK7D,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAIpE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAIpE,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAI/C,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAMvC,eAAe;YAqBf,eAAe;IAM7B;;;OAGG;YACW,GAAG;CA8BlB"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * MCP Code Intelligence Client
3
+ *
4
+ * Connects to an MCP-compatible code intelligence server
5
+ * (codedb, repoforge graph) and implements the CodeIntelProvider interface.
6
+ *
7
+ * All methods degrade gracefully — network errors or timeouts return
8
+ * empty results instead of throwing.
9
+ */
10
+ // ─── Constants ─────────────────────────────────────────────────
11
+ /** Default timeout for MCP queries in milliseconds. */
12
+ export const DEFAULT_CODE_INTEL_TIMEOUT = 5_000;
13
+ // ─── Client ────────────────────────────────────────────────────
14
+ export class McpCodeIntelClient {
15
+ serverUrl;
16
+ timeout;
17
+ requestId = 0;
18
+ constructor(serverUrl, timeout = DEFAULT_CODE_INTEL_TIMEOUT) {
19
+ this.serverUrl = serverUrl;
20
+ this.timeout = timeout;
21
+ }
22
+ async getCallers(symbol, file) {
23
+ return this.querySymbolRefs('code-intel/callers', { symbol, file });
24
+ }
25
+ async getCallees(symbol, file) {
26
+ return this.querySymbolRefs('code-intel/callees', { symbol, file });
27
+ }
28
+ async getFileImports(file) {
29
+ return this.queryStringList('code-intel/imports', { file });
30
+ }
31
+ async getFileExports(file) {
32
+ return this.queryStringList('code-intel/exports', { file });
33
+ }
34
+ // ─── Internal Helpers ──────────────────────────────────────
35
+ async querySymbolRefs(method, params) {
36
+ const data = await this.rpc(method, params);
37
+ if (!Array.isArray(data))
38
+ return [];
39
+ return data
40
+ .filter((item) => typeof item === 'object' &&
41
+ item !== null &&
42
+ typeof item.file === 'string' &&
43
+ typeof item.symbol === 'string')
44
+ .map((item) => ({
45
+ file: item.file,
46
+ symbol: item.symbol,
47
+ ...(typeof item.line === 'number' ? { line: item.line } : {}),
48
+ }));
49
+ }
50
+ async queryStringList(method, params) {
51
+ const data = await this.rpc(method, params);
52
+ if (!Array.isArray(data))
53
+ return [];
54
+ return data.filter((item) => typeof item === 'string');
55
+ }
56
+ /**
57
+ * Send a JSON-RPC 2.0 request to the MCP server.
58
+ * Returns the result field on success, null on any error.
59
+ */
60
+ async rpc(method, params) {
61
+ const controller = new AbortController();
62
+ const timer = setTimeout(() => controller.abort(), this.timeout);
63
+ try {
64
+ const response = await fetch(this.serverUrl, {
65
+ method: 'POST',
66
+ headers: { 'Content-Type': 'application/json' },
67
+ body: JSON.stringify({
68
+ jsonrpc: '2.0',
69
+ id: ++this.requestId,
70
+ method,
71
+ params,
72
+ }),
73
+ signal: controller.signal,
74
+ });
75
+ if (!response.ok)
76
+ return null;
77
+ const json = (await response.json());
78
+ if (json.error)
79
+ return null;
80
+ return json.result ?? null;
81
+ }
82
+ catch {
83
+ // Network error, timeout, or abort — degrade gracefully
84
+ return null;
85
+ }
86
+ finally {
87
+ clearTimeout(timer);
88
+ }
89
+ }
90
+ }
91
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/code-intel/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Code Intelligence Context Builder
3
+ *
4
+ * Formats structural query results into a context string
5
+ * suitable for injection into agent prompts.
6
+ * Respects a configurable token budget.
7
+ */
8
+ import type { CodeIntelResult } from './types.js';
9
+ /** Default max tokens for code intelligence context. */
10
+ export declare const DEFAULT_CODE_INTEL_MAX_TOKENS = 1500;
11
+ /**
12
+ * Build a markdown-formatted context string from code intelligence results.
13
+ *
14
+ * Returns an empty string when there is no meaningful data to include.
15
+ * Truncates to fit within the specified token budget.
16
+ *
17
+ * @param results - Structural data per file from the code intelligence provider
18
+ * @param maxTokens - Maximum tokens for the context string (default: 1500)
19
+ */
20
+ export declare function buildCodeIntelContext(results: CodeIntelResult[], maxTokens?: number): string;
21
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/code-intel/context.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIlD,wDAAwD;AACxD,eAAO,MAAM,6BAA6B,OAAQ,CAAC;AAOnD;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,eAAe,EAAE,EAC1B,SAAS,SAAgC,GACxC,MAAM,CA6BR"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Code Intelligence Context Builder
3
+ *
4
+ * Formats structural query results into a context string
5
+ * suitable for injection into agent prompts.
6
+ * Respects a configurable token budget.
7
+ */
8
+ // ─── Constants ─────────────────────────────────────────────────
9
+ /** Default max tokens for code intelligence context. */
10
+ export const DEFAULT_CODE_INTEL_MAX_TOKENS = 1_500;
11
+ /** Approximate characters per token for budget estimation. */
12
+ const CHARS_PER_TOKEN = 4;
13
+ // ─── Builder ───────────────────────────────────────────────────
14
+ /**
15
+ * Build a markdown-formatted context string from code intelligence results.
16
+ *
17
+ * Returns an empty string when there is no meaningful data to include.
18
+ * Truncates to fit within the specified token budget.
19
+ *
20
+ * @param results - Structural data per file from the code intelligence provider
21
+ * @param maxTokens - Maximum tokens for the context string (default: 1500)
22
+ */
23
+ export function buildCodeIntelContext(results, maxTokens = DEFAULT_CODE_INTEL_MAX_TOKENS) {
24
+ if (results.length === 0)
25
+ return '';
26
+ // Filter to files that have at least some structural data
27
+ const meaningful = results.filter((r) => r.callers.length > 0 || r.callees.length > 0 || r.imports.length > 0 || r.exports.length > 0);
28
+ if (meaningful.length === 0)
29
+ return '';
30
+ const maxChars = maxTokens * CHARS_PER_TOKEN;
31
+ const sections = [];
32
+ let totalChars = 0;
33
+ for (const result of meaningful) {
34
+ const section = formatFileSection(result);
35
+ if (totalChars + section.length > maxChars) {
36
+ // Add truncation notice and stop
37
+ sections.push('_(code intelligence context truncated to fit token budget)_');
38
+ break;
39
+ }
40
+ sections.push(section);
41
+ totalChars += section.length;
42
+ }
43
+ if (sections.length === 0)
44
+ return '';
45
+ return sections.join('\n\n');
46
+ }
47
+ // ─── Formatting Helpers ────────────────────────────────────────
48
+ function formatFileSection(result) {
49
+ const lines = [`#### \`${result.file}\``];
50
+ if (result.callers.length > 0) {
51
+ lines.push('**Called by:**');
52
+ for (const ref of result.callers) {
53
+ const loc = ref.line != null ? `:${ref.line}` : '';
54
+ lines.push(`- \`${ref.symbol}\` in \`${ref.file}${loc}\``);
55
+ }
56
+ }
57
+ if (result.callees.length > 0) {
58
+ lines.push('**Calls into:**');
59
+ for (const ref of result.callees) {
60
+ const loc = ref.line != null ? `:${ref.line}` : '';
61
+ lines.push(`- \`${ref.symbol}\` in \`${ref.file}${loc}\``);
62
+ }
63
+ }
64
+ if (result.imports.length > 0) {
65
+ lines.push(`**Imports:** ${result.imports.map((i) => `\`${i}\``).join(', ')}`);
66
+ }
67
+ if (result.exports.length > 0) {
68
+ lines.push(`**Exports:** ${result.exports.map((e) => `\`${e}\``).join(', ')}`);
69
+ }
70
+ return lines.join('\n');
71
+ }
72
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/code-intel/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Code Intelligence module barrel export.
3
+ *
4
+ * Provides structural code queries via MCP (Model Context Protocol)
5
+ * to ground AI reviews in real code structure.
6
+ */
7
+ export type { CodeIntelMetadata, CodeIntelProvider, CodeIntelResult, SymbolReference, } from './types.js';
8
+ export { McpCodeIntelClient } from './client.js';
9
+ export { buildCodeIntelContext } from './context.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/code-intel/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,eAAe,GAChB,MAAM,YAAY,CAAC;AAIpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAIjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Code Intelligence module barrel export.
3
+ *
4
+ * Provides structural code queries via MCP (Model Context Protocol)
5
+ * to ground AI reviews in real code structure.
6
+ */
7
+ // ─── Client ────────────────────────────────────────────────────
8
+ export { McpCodeIntelClient } from './client.js';
9
+ // ─── Context Builder ───────────────────────────────────────────
10
+ export { buildCodeIntelContext } from './context.js';
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/code-intel/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,kEAAkE;AAElE,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,kEAAkE;AAElE,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Code Intelligence Types
3
+ *
4
+ * Defines the provider interface and data structures for
5
+ * structural code queries via MCP (Model Context Protocol).
6
+ * Follows the same injection pattern as GraphLoader.
7
+ */
8
+ /** A reference to a symbol in a specific file. */
9
+ export interface SymbolReference {
10
+ /** Relative file path */
11
+ file: string;
12
+ /** Symbol name (function, class, variable) */
13
+ symbol: string;
14
+ /** Line number in the file (if available) */
15
+ line?: number;
16
+ }
17
+ /** Structural data for a single file gathered from the code intelligence server. */
18
+ export interface CodeIntelResult {
19
+ /** The file these results relate to */
20
+ file: string;
21
+ /** Symbols in other files that call into this file's exports */
22
+ callers: SymbolReference[];
23
+ /** Symbols in other files that this file calls */
24
+ callees: SymbolReference[];
25
+ /** Files imported by this file */
26
+ imports: string[];
27
+ /** Symbols exported by this file */
28
+ exports: string[];
29
+ }
30
+ /**
31
+ * Abstract interface for code intelligence backends.
32
+ *
33
+ * Implementations connect to an MCP-compatible server (codedb, repoforge graph)
34
+ * and translate responses into a uniform format.
35
+ *
36
+ * Injected into ReviewInput — when undefined, code intelligence is skipped.
37
+ */
38
+ export interface CodeIntelProvider {
39
+ /** Get symbols that call into a given symbol. */
40
+ getCallers(symbol: string, file: string): Promise<SymbolReference[]>;
41
+ /** Get symbols that a given symbol calls. */
42
+ getCallees(symbol: string, file: string): Promise<SymbolReference[]>;
43
+ /** Get the import list for a file. */
44
+ getFileImports(file: string): Promise<string[]>;
45
+ /** Get the export list for a file. */
46
+ getFileExports(file: string): Promise<string[]>;
47
+ }
48
+ /** Metadata about the code intelligence step, attached to ReviewResult. */
49
+ export interface CodeIntelMetadata {
50
+ /** Whether code intelligence was enabled for this review */
51
+ enabled: boolean;
52
+ /** Whether a provider was available and responded */
53
+ providerAvailable: boolean;
54
+ /** Number of files queried */
55
+ filesQueried: number;
56
+ /** Number of files with structural data returned */
57
+ filesWithData: number;
58
+ /** Query duration in milliseconds */
59
+ queryDurationMs: number;
60
+ /** Reason for fallback (when provider failed) */
61
+ fallbackReason?: string;
62
+ }
63
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/code-intel/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,kDAAkD;AAClD,MAAM,WAAW,eAAe;IAC9B,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IAEb,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;IAEf,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAID,oFAAoF;AACpF,MAAM,WAAW,eAAe;IAC9B,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IAEb,gEAAgE;IAChE,OAAO,EAAE,eAAe,EAAE,CAAC;IAE3B,kDAAkD;IAClD,OAAO,EAAE,eAAe,EAAE,CAAC;IAE3B,kCAAkC;IAClC,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB,oCAAoC;IACpC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAID;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAiB;IAChC,iDAAiD;IACjD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAErE,6CAA6C;IAC7C,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAErE,sCAAsC;IACtC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAEhD,sCAAsC;IACtC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CACjD;AAID,2EAA2E;AAC3E,MAAM,WAAW,iBAAiB;IAChC,4DAA4D;IAC5D,OAAO,EAAE,OAAO,CAAC;IAEjB,qDAAqD;IACrD,iBAAiB,EAAE,OAAO,CAAC;IAE3B,8BAA8B;IAC9B,YAAY,EAAE,MAAM,CAAC;IAErB,oDAAoD;IACpD,aAAa,EAAE,MAAM,CAAC;IAEtB,qCAAqC;IACrC,eAAe,EAAE,MAAM,CAAC;IAExB,iDAAiD;IACjD,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Code Intelligence Types
3
+ *
4
+ * Defines the provider interface and data structures for
5
+ * structural code queries via MCP (Model Context Protocol).
6
+ * Follows the same injection pattern as GraphLoader.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/code-intel/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}