@vpxa/kb 0.1.13 → 0.1.16

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 (490) hide show
  1. package/README.md +65 -12
  2. package/package.json +14 -7
  3. package/packages/analyzers/dist/blast-radius-analyzer.d.ts +17 -21
  4. package/packages/analyzers/dist/blast-radius-analyzer.js +5 -12
  5. package/packages/analyzers/dist/dependency-analyzer.d.ts +31 -28
  6. package/packages/analyzers/dist/dependency-analyzer.js +6 -9
  7. package/packages/analyzers/dist/diagram-generator.d.ts +12 -9
  8. package/packages/analyzers/dist/diagram-generator.js +2 -4
  9. package/packages/analyzers/dist/entry-point-analyzer.d.ts +39 -36
  10. package/packages/analyzers/dist/entry-point-analyzer.js +4 -6
  11. package/packages/analyzers/dist/index.d.ts +12 -14
  12. package/packages/analyzers/dist/index.js +1 -1
  13. package/packages/analyzers/dist/knowledge-producer.d.ts +34 -26
  14. package/packages/analyzers/dist/knowledge-producer.js +17 -15
  15. package/packages/analyzers/dist/pattern-analyzer.d.ts +14 -11
  16. package/packages/analyzers/dist/pattern-analyzer.js +2 -5
  17. package/packages/analyzers/dist/regex-call-graph.d.ts +6 -13
  18. package/packages/analyzers/dist/regex-call-graph.js +1 -1
  19. package/packages/analyzers/dist/structure-analyzer.d.ts +13 -10
  20. package/packages/analyzers/dist/structure-analyzer.js +2 -4
  21. package/packages/analyzers/dist/symbol-analyzer.d.ts +13 -9
  22. package/packages/analyzers/dist/symbol-analyzer.js +9 -13
  23. package/packages/analyzers/dist/ts-call-graph.d.ts +16 -14
  24. package/packages/analyzers/dist/ts-call-graph.js +1 -1
  25. package/packages/analyzers/dist/types.d.ts +82 -80
  26. package/packages/analyzers/dist/types.js +1 -0
  27. package/packages/chunker/dist/call-graph-extractor.d.ts +15 -12
  28. package/packages/chunker/dist/call-graph-extractor.js +1 -1
  29. package/packages/chunker/dist/chunker-factory.d.ts +16 -4
  30. package/packages/chunker/dist/chunker-factory.js +1 -1
  31. package/packages/chunker/dist/chunker.interface.d.ts +8 -5
  32. package/packages/chunker/dist/chunker.interface.js +1 -0
  33. package/packages/chunker/dist/code-chunker.d.ts +16 -13
  34. package/packages/chunker/dist/code-chunker.js +11 -14
  35. package/packages/chunker/dist/extractors/call-extractor.d.ts +24 -0
  36. package/packages/chunker/dist/extractors/call-extractor.js +1 -0
  37. package/packages/chunker/dist/extractors/entry-point-detector.d.ts +14 -0
  38. package/packages/chunker/dist/extractors/entry-point-detector.js +1 -0
  39. package/packages/chunker/dist/extractors/import-extractor.d.ts +14 -0
  40. package/packages/chunker/dist/extractors/import-extractor.js +1 -0
  41. package/packages/chunker/dist/extractors/pattern-detector.d.ts +14 -0
  42. package/packages/chunker/dist/extractors/pattern-detector.js +1 -0
  43. package/packages/chunker/dist/extractors/scope-resolver.d.ts +26 -0
  44. package/packages/chunker/dist/extractors/scope-resolver.js +1 -0
  45. package/packages/chunker/dist/extractors/symbol-extractor.d.ts +14 -0
  46. package/packages/chunker/dist/extractors/symbol-extractor.js +1 -0
  47. package/packages/chunker/dist/extractors/types.d.ts +36 -0
  48. package/packages/chunker/dist/extractors/types.js +1 -0
  49. package/packages/chunker/dist/generic-chunker.d.ts +14 -11
  50. package/packages/chunker/dist/generic-chunker.js +5 -5
  51. package/packages/chunker/dist/index.d.ts +19 -8
  52. package/packages/chunker/dist/index.js +1 -1
  53. package/packages/chunker/dist/markdown-chunker.d.ts +16 -13
  54. package/packages/chunker/dist/markdown-chunker.js +3 -10
  55. package/packages/chunker/dist/wasm/languages.d.ts +18 -0
  56. package/packages/chunker/dist/wasm/languages.js +1 -0
  57. package/packages/chunker/dist/wasm/query-executor.d.ts +70 -0
  58. package/packages/chunker/dist/wasm/query-executor.js +1 -0
  59. package/packages/chunker/dist/wasm/runtime.d.ts +44 -0
  60. package/packages/chunker/dist/wasm/runtime.js +1 -0
  61. package/packages/chunker/dist/wasm/types.d.ts +84 -0
  62. package/packages/chunker/dist/wasm/types.js +1 -0
  63. package/packages/chunker/dist/wasm-chunker.d.ts +23 -0
  64. package/packages/chunker/dist/wasm-chunker.js +6 -0
  65. package/packages/chunker/src/queries/go/calls.scm +11 -0
  66. package/packages/chunker/src/queries/go/entry-points.scm +20 -0
  67. package/packages/chunker/src/queries/go/imports.scm +6 -0
  68. package/packages/chunker/src/queries/go/patterns.scm +25 -0
  69. package/packages/chunker/src/queries/go/symbols.scm +26 -0
  70. package/packages/chunker/src/queries/java/calls.scm +10 -0
  71. package/packages/chunker/src/queries/java/entry-points.scm +27 -0
  72. package/packages/chunker/src/queries/java/imports.scm +11 -0
  73. package/packages/chunker/src/queries/java/patterns.scm +27 -0
  74. package/packages/chunker/src/queries/java/symbols.scm +28 -0
  75. package/packages/chunker/src/queries/javascript/calls.scm +21 -0
  76. package/packages/chunker/src/queries/javascript/entry-points.scm +31 -0
  77. package/packages/chunker/src/queries/javascript/imports.scm +32 -0
  78. package/packages/chunker/src/queries/javascript/patterns.scm +28 -0
  79. package/packages/chunker/src/queries/javascript/symbols.scm +52 -0
  80. package/packages/chunker/src/queries/python/calls.scm +11 -0
  81. package/packages/chunker/src/queries/python/entry-points.scm +21 -0
  82. package/packages/chunker/src/queries/python/imports.scm +14 -0
  83. package/packages/chunker/src/queries/python/patterns.scm +25 -0
  84. package/packages/chunker/src/queries/python/symbols.scm +17 -0
  85. package/packages/chunker/src/queries/rust/calls.scm +20 -0
  86. package/packages/chunker/src/queries/rust/entry-points.scm +7 -0
  87. package/packages/chunker/src/queries/rust/imports.scm +26 -0
  88. package/packages/chunker/src/queries/rust/patterns.scm +18 -0
  89. package/packages/chunker/src/queries/rust/symbols.scm +73 -0
  90. package/packages/chunker/src/queries/typescript/calls.scm +21 -0
  91. package/packages/chunker/src/queries/typescript/entry-points.scm +48 -0
  92. package/packages/chunker/src/queries/typescript/imports.scm +35 -0
  93. package/packages/chunker/src/queries/typescript/patterns.scm +47 -0
  94. package/packages/chunker/src/queries/typescript/symbols.scm +79 -0
  95. package/packages/chunker/wasm/tree-sitter-go.wasm +0 -0
  96. package/packages/chunker/wasm/tree-sitter-java.wasm +0 -0
  97. package/packages/chunker/wasm/tree-sitter-javascript.wasm +0 -0
  98. package/packages/chunker/wasm/tree-sitter-python.wasm +0 -0
  99. package/packages/chunker/wasm/tree-sitter-rust.wasm +0 -0
  100. package/packages/chunker/wasm/tree-sitter-typescript.wasm +0 -0
  101. package/packages/chunker/wasm/tree-sitter.wasm +0 -0
  102. package/packages/cli/dist/commands/analyze.d.ts +6 -3
  103. package/packages/cli/dist/commands/analyze.js +2 -3
  104. package/packages/cli/dist/commands/context-cmds.d.ts +6 -3
  105. package/packages/cli/dist/commands/context-cmds.js +1 -1
  106. package/packages/cli/dist/commands/environment.d.ts +6 -3
  107. package/packages/cli/dist/commands/environment.js +1 -2
  108. package/packages/cli/dist/commands/execution.d.ts +6 -3
  109. package/packages/cli/dist/commands/execution.js +1 -1
  110. package/packages/cli/dist/commands/graph.d.ts +6 -3
  111. package/packages/cli/dist/commands/graph.js +5 -6
  112. package/packages/cli/dist/commands/init/adapters.d.ts +28 -0
  113. package/packages/cli/dist/commands/init/adapters.js +1 -0
  114. package/packages/cli/dist/commands/init/config.d.ts +10 -0
  115. package/packages/cli/dist/commands/init/config.js +3 -0
  116. package/packages/cli/dist/commands/init/constants.d.ts +18 -0
  117. package/packages/cli/dist/commands/init/constants.js +1 -0
  118. package/packages/cli/dist/commands/init/curated.d.ts +7 -0
  119. package/packages/cli/dist/commands/init/curated.js +1 -0
  120. package/packages/cli/dist/commands/init/global.d.ts +34 -0
  121. package/packages/cli/dist/commands/init/global.js +5 -0
  122. package/packages/cli/dist/commands/init/index.d.ts +28 -0
  123. package/packages/cli/dist/commands/init/index.js +5 -0
  124. package/packages/cli/dist/commands/init/scaffold.d.ts +23 -0
  125. package/packages/cli/dist/commands/init/scaffold.js +1 -0
  126. package/packages/cli/dist/commands/init/templates.d.ts +9 -0
  127. package/packages/cli/dist/commands/init/templates.js +165 -0
  128. package/packages/cli/dist/commands/knowledge.d.ts +6 -3
  129. package/packages/cli/dist/commands/knowledge.js +1 -1
  130. package/packages/cli/dist/commands/search.d.ts +6 -3
  131. package/packages/cli/dist/commands/search.js +1 -8
  132. package/packages/cli/dist/commands/system.d.ts +6 -3
  133. package/packages/cli/dist/commands/system.js +4 -7
  134. package/packages/cli/dist/commands/workspace.d.ts +6 -3
  135. package/packages/cli/dist/commands/workspace.js +1 -2
  136. package/packages/cli/dist/context.d.ts +7 -5
  137. package/packages/cli/dist/context.js +1 -1
  138. package/packages/cli/dist/helpers.d.ts +51 -48
  139. package/packages/cli/dist/helpers.js +5 -5
  140. package/packages/cli/dist/index.d.ts +4 -2
  141. package/packages/cli/dist/index.js +2 -2
  142. package/packages/cli/dist/kb-init.d.ts +48 -51
  143. package/packages/cli/dist/kb-init.js +1 -1
  144. package/packages/cli/dist/types.d.ts +8 -6
  145. package/packages/cli/dist/types.js +1 -0
  146. package/packages/core/dist/constants.d.ts +58 -34
  147. package/packages/core/dist/constants.js +1 -1
  148. package/packages/core/dist/content-detector.d.ts +8 -8
  149. package/packages/core/dist/content-detector.js +1 -1
  150. package/packages/core/dist/errors.d.ts +15 -13
  151. package/packages/core/dist/errors.js +1 -1
  152. package/packages/core/dist/global-registry.d.ts +62 -0
  153. package/packages/core/dist/global-registry.js +1 -0
  154. package/packages/core/dist/index.d.ts +7 -6
  155. package/packages/core/dist/index.js +1 -1
  156. package/packages/core/dist/logger.d.ts +19 -8
  157. package/packages/core/dist/logger.js +1 -1
  158. package/packages/core/dist/types.d.ts +107 -92
  159. package/packages/core/dist/types.js +1 -0
  160. package/packages/embeddings/dist/embedder.interface.d.ts +22 -20
  161. package/packages/embeddings/dist/embedder.interface.js +1 -0
  162. package/packages/embeddings/dist/index.d.ts +3 -3
  163. package/packages/embeddings/dist/index.js +1 -1
  164. package/packages/embeddings/dist/onnx-embedder.d.ts +21 -23
  165. package/packages/embeddings/dist/onnx-embedder.js +1 -1
  166. package/packages/enterprise-bridge/dist/cache.d.ts +28 -0
  167. package/packages/enterprise-bridge/dist/cache.js +1 -0
  168. package/packages/enterprise-bridge/dist/er-client.d.ts +37 -0
  169. package/packages/enterprise-bridge/dist/er-client.js +1 -0
  170. package/packages/enterprise-bridge/dist/evolution-collector.d.ts +62 -0
  171. package/packages/enterprise-bridge/dist/evolution-collector.js +1 -0
  172. package/packages/enterprise-bridge/dist/index.d.ts +8 -0
  173. package/packages/enterprise-bridge/dist/index.js +1 -0
  174. package/packages/enterprise-bridge/dist/policy-store.d.ts +45 -0
  175. package/packages/enterprise-bridge/dist/policy-store.js +1 -0
  176. package/packages/enterprise-bridge/dist/push-adapter.d.ts +23 -0
  177. package/packages/enterprise-bridge/dist/push-adapter.js +1 -0
  178. package/packages/enterprise-bridge/dist/result-merger.d.ts +14 -0
  179. package/packages/enterprise-bridge/dist/result-merger.js +1 -0
  180. package/packages/enterprise-bridge/dist/types.d.ts +81 -0
  181. package/packages/enterprise-bridge/dist/types.js +1 -0
  182. package/packages/indexer/dist/file-hasher.d.ts +5 -3
  183. package/packages/indexer/dist/file-hasher.js +1 -1
  184. package/packages/indexer/dist/filesystem-crawler.d.ts +23 -21
  185. package/packages/indexer/dist/filesystem-crawler.js +1 -1
  186. package/packages/indexer/dist/graph-extractor.d.ts +9 -13
  187. package/packages/indexer/dist/graph-extractor.js +1 -1
  188. package/packages/indexer/dist/incremental-indexer.d.ts +49 -44
  189. package/packages/indexer/dist/incremental-indexer.js +1 -1
  190. package/packages/indexer/dist/index.d.ts +5 -5
  191. package/packages/indexer/dist/index.js +1 -1
  192. package/packages/server/dist/api.d.ts +3 -8
  193. package/packages/server/dist/api.js +1 -1
  194. package/packages/server/dist/config.d.ts +6 -3
  195. package/packages/server/dist/config.js +1 -1
  196. package/packages/server/dist/cross-workspace.d.ts +43 -0
  197. package/packages/server/dist/cross-workspace.js +1 -0
  198. package/packages/server/dist/curated-manager.d.ts +80 -78
  199. package/packages/server/dist/curated-manager.js +5 -10
  200. package/packages/server/dist/index.d.ts +1 -2
  201. package/packages/server/dist/index.js +1 -1
  202. package/packages/server/dist/replay-interceptor.d.ts +6 -7
  203. package/packages/server/dist/replay-interceptor.js +1 -1
  204. package/packages/server/dist/resources/resources.d.ts +7 -4
  205. package/packages/server/dist/resources/resources.js +2 -2
  206. package/packages/server/dist/server.d.ts +37 -25
  207. package/packages/server/dist/server.js +1 -1
  208. package/packages/server/dist/tools/analyze.tools.d.ts +14 -11
  209. package/packages/server/dist/tools/analyze.tools.js +1 -3
  210. package/packages/server/dist/tools/audit.tool.d.ts +8 -5
  211. package/packages/server/dist/tools/audit.tool.js +1 -4
  212. package/packages/server/dist/tools/bridge.tools.d.ts +34 -0
  213. package/packages/server/dist/tools/bridge.tools.js +15 -0
  214. package/packages/server/dist/tools/evolution.tools.d.ts +7 -0
  215. package/packages/server/dist/tools/evolution.tools.js +5 -0
  216. package/packages/server/dist/tools/forge.tools.d.ts +13 -12
  217. package/packages/server/dist/tools/forge.tools.js +10 -13
  218. package/packages/server/dist/tools/forget.tool.d.ts +7 -4
  219. package/packages/server/dist/tools/forget.tool.js +1 -7
  220. package/packages/server/dist/tools/graph.tool.d.ts +7 -4
  221. package/packages/server/dist/tools/graph.tool.js +4 -5
  222. package/packages/server/dist/tools/list.tool.d.ts +7 -4
  223. package/packages/server/dist/tools/list.tool.js +2 -8
  224. package/packages/server/dist/tools/lookup.tool.d.ts +7 -4
  225. package/packages/server/dist/tools/lookup.tool.js +2 -9
  226. package/packages/server/dist/tools/onboard.tool.d.ts +8 -5
  227. package/packages/server/dist/tools/onboard.tool.js +2 -2
  228. package/packages/server/dist/tools/policy.tools.d.ts +7 -0
  229. package/packages/server/dist/tools/policy.tools.js +2 -0
  230. package/packages/server/dist/tools/produce.tool.d.ts +6 -3
  231. package/packages/server/dist/tools/produce.tool.js +2 -2
  232. package/packages/server/dist/tools/read.tool.d.ts +7 -4
  233. package/packages/server/dist/tools/read.tool.js +2 -6
  234. package/packages/server/dist/tools/reindex.tool.d.ts +10 -7
  235. package/packages/server/dist/tools/reindex.tool.js +3 -2
  236. package/packages/server/dist/tools/remember.tool.d.ts +8 -4
  237. package/packages/server/dist/tools/remember.tool.js +3 -5
  238. package/packages/server/dist/tools/replay.tool.d.ts +6 -3
  239. package/packages/server/dist/tools/replay.tool.js +2 -6
  240. package/packages/server/dist/tools/search.tool.d.ts +10 -5
  241. package/packages/server/dist/tools/search.tool.js +6 -22
  242. package/packages/server/dist/tools/status.tool.d.ts +12 -4
  243. package/packages/server/dist/tools/status.tool.js +2 -3
  244. package/packages/server/dist/tools/toolkit.tools.d.ts +36 -35
  245. package/packages/server/dist/tools/toolkit.tools.js +20 -24
  246. package/packages/server/dist/tools/update.tool.d.ts +7 -4
  247. package/packages/server/dist/tools/update.tool.js +1 -6
  248. package/packages/server/dist/tools/utility.tools.d.ts +15 -15
  249. package/packages/server/dist/tools/utility.tools.js +10 -23
  250. package/packages/server/dist/version-check.d.ts +5 -2
  251. package/packages/server/dist/version-check.js +1 -1
  252. package/packages/store/dist/graph-store.interface.d.ts +89 -87
  253. package/packages/store/dist/graph-store.interface.js +1 -0
  254. package/packages/store/dist/index.d.ts +6 -6
  255. package/packages/store/dist/index.js +1 -1
  256. package/packages/store/dist/lance-store.d.ts +37 -31
  257. package/packages/store/dist/lance-store.js +1 -1
  258. package/packages/store/dist/sqlite-graph-store.d.ts +43 -47
  259. package/packages/store/dist/sqlite-graph-store.js +13 -13
  260. package/packages/store/dist/store-factory.d.ts +11 -8
  261. package/packages/store/dist/store-factory.js +1 -1
  262. package/packages/store/dist/store.interface.d.ts +47 -47
  263. package/packages/store/dist/store.interface.js +1 -0
  264. package/packages/tools/dist/audit.d.ts +61 -62
  265. package/packages/tools/dist/audit.js +4 -5
  266. package/packages/tools/dist/batch.d.ts +20 -18
  267. package/packages/tools/dist/batch.js +1 -1
  268. package/packages/tools/dist/changelog.d.ts +29 -27
  269. package/packages/tools/dist/changelog.js +2 -2
  270. package/packages/tools/dist/check.d.ts +42 -39
  271. package/packages/tools/dist/check.js +2 -2
  272. package/packages/tools/dist/checkpoint.d.ts +17 -15
  273. package/packages/tools/dist/checkpoint.js +1 -2
  274. package/packages/tools/dist/codemod.d.ts +35 -33
  275. package/packages/tools/dist/codemod.js +2 -2
  276. package/packages/tools/dist/compact.d.ts +34 -38
  277. package/packages/tools/dist/compact.js +2 -2
  278. package/packages/tools/dist/data-transform.d.ts +10 -8
  279. package/packages/tools/dist/data-transform.js +1 -1
  280. package/packages/tools/dist/dead-symbols.d.ts +29 -26
  281. package/packages/tools/dist/dead-symbols.js +2 -2
  282. package/packages/tools/dist/delegate.d.ts +26 -24
  283. package/packages/tools/dist/delegate.js +1 -5
  284. package/packages/tools/dist/diff-parse.d.ts +24 -22
  285. package/packages/tools/dist/diff-parse.js +3 -3
  286. package/packages/tools/dist/digest.d.ts +43 -46
  287. package/packages/tools/dist/digest.js +4 -5
  288. package/packages/tools/dist/dogfood-log.d.ts +49 -0
  289. package/packages/tools/dist/dogfood-log.js +2 -0
  290. package/packages/tools/dist/encode.d.ts +11 -9
  291. package/packages/tools/dist/encode.js +1 -1
  292. package/packages/tools/dist/env-info.d.ts +25 -23
  293. package/packages/tools/dist/env-info.js +1 -1
  294. package/packages/tools/dist/eval.d.ts +13 -11
  295. package/packages/tools/dist/eval.js +2 -3
  296. package/packages/tools/dist/evidence-map.d.ts +64 -62
  297. package/packages/tools/dist/evidence-map.js +2 -3
  298. package/packages/tools/dist/file-cache.d.ts +41 -0
  299. package/packages/tools/dist/file-cache.js +3 -0
  300. package/packages/tools/dist/file-summary.d.ts +50 -30
  301. package/packages/tools/dist/file-summary.js +2 -2
  302. package/packages/tools/dist/file-walk.d.ts +6 -4
  303. package/packages/tools/dist/file-walk.js +1 -1
  304. package/packages/tools/dist/find-examples.d.ts +26 -22
  305. package/packages/tools/dist/find-examples.js +3 -3
  306. package/packages/tools/dist/find.d.ts +39 -41
  307. package/packages/tools/dist/find.js +1 -1
  308. package/packages/tools/dist/forge-classify.d.ts +35 -39
  309. package/packages/tools/dist/forge-classify.js +2 -2
  310. package/packages/tools/dist/forge-ground.d.ts +58 -61
  311. package/packages/tools/dist/forge-ground.js +1 -1
  312. package/packages/tools/dist/git-context.d.ts +22 -20
  313. package/packages/tools/dist/git-context.js +3 -3
  314. package/packages/tools/dist/graph-query.d.ts +75 -79
  315. package/packages/tools/dist/graph-query.js +1 -1
  316. package/packages/tools/dist/guide.d.ts +14 -12
  317. package/packages/tools/dist/guide.js +1 -1
  318. package/packages/tools/dist/health.d.ts +13 -11
  319. package/packages/tools/dist/health.js +2 -2
  320. package/packages/tools/dist/http-request.d.ts +20 -18
  321. package/packages/tools/dist/http-request.js +1 -1
  322. package/packages/tools/dist/index.d.ts +55 -53
  323. package/packages/tools/dist/index.js +1 -1
  324. package/packages/tools/dist/lane.d.ts +28 -26
  325. package/packages/tools/dist/lane.js +6 -7
  326. package/packages/tools/dist/measure.d.ts +34 -30
  327. package/packages/tools/dist/measure.js +2 -2
  328. package/packages/tools/dist/onboard.d.ts +29 -27
  329. package/packages/tools/dist/onboard.js +17 -41
  330. package/packages/tools/dist/parse-output.d.ts +48 -46
  331. package/packages/tools/dist/parse-output.js +2 -2
  332. package/packages/tools/dist/path-resolver.d.ts +4 -2
  333. package/packages/tools/dist/path-resolver.js +1 -1
  334. package/packages/tools/dist/process-manager.d.ts +18 -16
  335. package/packages/tools/dist/process-manager.js +1 -1
  336. package/packages/tools/dist/queue.d.ts +28 -26
  337. package/packages/tools/dist/queue.js +1 -2
  338. package/packages/tools/dist/regex-test.d.ts +26 -24
  339. package/packages/tools/dist/regex-test.js +1 -1
  340. package/packages/tools/dist/rename.d.ts +28 -26
  341. package/packages/tools/dist/rename.js +2 -2
  342. package/packages/tools/dist/replay.d.ts +33 -31
  343. package/packages/tools/dist/replay.js +4 -6
  344. package/packages/tools/dist/response-envelope.d.ts +32 -30
  345. package/packages/tools/dist/response-envelope.js +1 -1
  346. package/packages/tools/dist/schema-validate.d.ts +15 -13
  347. package/packages/tools/dist/schema-validate.js +1 -1
  348. package/packages/tools/dist/scope-map.d.ts +45 -48
  349. package/packages/tools/dist/scope-map.js +1 -1
  350. package/packages/tools/dist/snippet.d.ts +26 -25
  351. package/packages/tools/dist/snippet.js +1 -1
  352. package/packages/tools/dist/stash.d.ts +13 -11
  353. package/packages/tools/dist/stash.js +1 -2
  354. package/packages/tools/dist/stratum-card.d.ts +27 -28
  355. package/packages/tools/dist/stratum-card.js +3 -5
  356. package/packages/tools/dist/symbol.d.ts +31 -26
  357. package/packages/tools/dist/symbol.js +3 -3
  358. package/packages/tools/dist/test-run.d.ts +19 -16
  359. package/packages/tools/dist/test-run.js +2 -2
  360. package/packages/tools/dist/text-utils.d.ts +6 -4
  361. package/packages/tools/dist/text-utils.js +2 -2
  362. package/packages/tools/dist/time-utils.d.ts +15 -13
  363. package/packages/tools/dist/time-utils.js +1 -1
  364. package/packages/tools/dist/trace.d.ts +26 -21
  365. package/packages/tools/dist/trace.js +2 -2
  366. package/packages/tools/dist/truncation.d.ts +6 -4
  367. package/packages/tools/dist/truncation.js +6 -13
  368. package/packages/tools/dist/watch.d.ts +28 -26
  369. package/packages/tools/dist/watch.js +1 -1
  370. package/packages/tools/dist/web-fetch.d.ts +35 -33
  371. package/packages/tools/dist/web-fetch.js +6 -12
  372. package/packages/tools/dist/web-search.d.ts +16 -14
  373. package/packages/tools/dist/web-search.js +1 -1
  374. package/packages/tools/dist/workset.d.ts +19 -17
  375. package/packages/tools/dist/workset.js +1 -2
  376. package/packages/tui/dist/App-CYLNJLr6.js +2 -0
  377. package/packages/tui/dist/App.d.ts +11 -6
  378. package/packages/tui/dist/App.js +1 -450
  379. package/packages/tui/dist/CuratedPanel-sYdZAICX.js +2 -0
  380. package/packages/tui/dist/LogPanel-DtMnoyXT.js +3 -0
  381. package/packages/tui/dist/SearchPanel-DREo6zgt.js +2 -0
  382. package/packages/tui/dist/StatusPanel-2ex8fLOO.js +2 -0
  383. package/packages/tui/dist/chunk-D6axbAb-.js +2 -0
  384. package/packages/tui/dist/devtools-DUyj952l.js +7 -0
  385. package/packages/tui/dist/embedder.interface-D4ew0HPW.d.ts +28 -0
  386. package/packages/tui/dist/index-B9VpfVPP.d.ts +13 -0
  387. package/packages/tui/dist/index.d.ts +3 -19
  388. package/packages/tui/dist/index.js +1 -476
  389. package/packages/tui/dist/jsx-runtime-Cof-kwFn.js +316 -0
  390. package/packages/tui/dist/panels/CuratedPanel.d.ts +11 -6
  391. package/packages/tui/dist/panels/CuratedPanel.js +1 -371
  392. package/packages/tui/dist/panels/LogPanel.d.ts +7 -3
  393. package/packages/tui/dist/panels/LogPanel.js +1 -449
  394. package/packages/tui/dist/panels/SearchPanel.d.ts +14 -8
  395. package/packages/tui/dist/panels/SearchPanel.js +1 -372
  396. package/packages/tui/dist/panels/StatusPanel.d.ts +11 -6
  397. package/packages/tui/dist/panels/StatusPanel.js +1 -371
  398. package/packages/tui/dist/store.interface-CnY6SPOH.d.ts +150 -0
  399. package/scaffold/adapters/claude-code.mjs +20 -0
  400. package/scaffold/adapters/copilot.mjs +320 -0
  401. package/scaffold/copilot/agents/Architect-Reviewer-Alpha.agent.md +21 -0
  402. package/scaffold/copilot/agents/Architect-Reviewer-Beta.agent.md +21 -0
  403. package/scaffold/copilot/agents/Documenter.agent.md +42 -0
  404. package/scaffold/copilot/agents/Orchestrator.agent.md +104 -0
  405. package/scaffold/copilot/agents/Planner.agent.md +54 -0
  406. package/scaffold/copilot/agents/Refactor.agent.md +36 -0
  407. package/scaffold/copilot/agents/Researcher-Alpha.agent.md +20 -0
  408. package/scaffold/copilot/agents/Researcher-Beta.agent.md +20 -0
  409. package/scaffold/copilot/agents/Researcher-Delta.agent.md +20 -0
  410. package/scaffold/copilot/agents/Researcher-Gamma.agent.md +20 -0
  411. package/scaffold/definitions/agents.mjs +165 -0
  412. package/scaffold/definitions/bodies.mjs +292 -0
  413. package/scaffold/definitions/hooks.mjs +43 -0
  414. package/scaffold/definitions/models.mjs +56 -0
  415. package/scaffold/definitions/plugins.mjs +24 -0
  416. package/scaffold/definitions/prompts.mjs +145 -0
  417. package/scaffold/definitions/protocols.mjs +322 -0
  418. package/scaffold/definitions/tools.mjs +176 -0
  419. package/scaffold/general/agents/Architect-Reviewer-Alpha.agent.md +21 -0
  420. package/scaffold/general/agents/Architect-Reviewer-Beta.agent.md +21 -0
  421. package/scaffold/general/agents/Code-Reviewer-Alpha.agent.md +12 -0
  422. package/scaffold/general/agents/Code-Reviewer-Beta.agent.md +12 -0
  423. package/scaffold/general/agents/Debugger.agent.md +31 -0
  424. package/scaffold/general/agents/Documenter.agent.md +42 -0
  425. package/scaffold/general/agents/Explorer.agent.md +50 -0
  426. package/scaffold/general/agents/Frontend.agent.md +29 -0
  427. package/scaffold/general/agents/Implementer.agent.md +31 -0
  428. package/scaffold/general/agents/Orchestrator.agent.md +104 -0
  429. package/scaffold/general/agents/Planner.agent.md +55 -0
  430. package/scaffold/general/agents/README.md +57 -0
  431. package/scaffold/general/agents/Refactor.agent.md +36 -0
  432. package/scaffold/general/agents/Researcher-Alpha.agent.md +20 -0
  433. package/scaffold/general/agents/Researcher-Beta.agent.md +20 -0
  434. package/scaffold/general/agents/Researcher-Delta.agent.md +20 -0
  435. package/scaffold/general/agents/Researcher-Gamma.agent.md +20 -0
  436. package/scaffold/general/agents/Security.agent.md +42 -0
  437. package/scaffold/general/agents/_shared/adr-protocol.md +91 -0
  438. package/scaffold/general/agents/_shared/architect-reviewer-base.md +50 -0
  439. package/scaffold/general/agents/_shared/code-agent-base.md +88 -0
  440. package/scaffold/general/agents/_shared/code-reviewer-base.md +54 -0
  441. package/scaffold/general/agents/_shared/decision-protocol.md +27 -0
  442. package/scaffold/general/agents/_shared/forge-protocol.md +46 -0
  443. package/scaffold/general/agents/_shared/researcher-base.md +61 -0
  444. package/scaffold/general/agents/templates/adr-template.md +27 -0
  445. package/scaffold/general/agents/templates/execution-state.md +25 -0
  446. package/scaffold/general/prompts/ask.prompt.md +20 -0
  447. package/scaffold/general/prompts/debug.prompt.md +25 -0
  448. package/scaffold/general/prompts/design.prompt.md +22 -0
  449. package/scaffold/general/prompts/implement.prompt.md +26 -0
  450. package/scaffold/general/prompts/plan.prompt.md +24 -0
  451. package/scaffold/general/prompts/review.prompt.md +31 -0
  452. package/scaffold/generate.mjs +74 -0
  453. package/skills/adr-skill/SKILL.md +329 -0
  454. package/skills/adr-skill/assets/templates/adr-madr.md +89 -0
  455. package/skills/adr-skill/assets/templates/adr-readme.md +20 -0
  456. package/skills/adr-skill/assets/templates/adr-simple.md +46 -0
  457. package/skills/adr-skill/references/adr-conventions.md +95 -0
  458. package/skills/adr-skill/references/examples.md +193 -0
  459. package/skills/adr-skill/references/review-checklist.md +77 -0
  460. package/skills/adr-skill/references/template-variants.md +52 -0
  461. package/skills/adr-skill/scripts/bootstrap_adr.js +259 -0
  462. package/skills/adr-skill/scripts/new_adr.js +391 -0
  463. package/skills/adr-skill/scripts/set_adr_status.js +169 -0
  464. package/skills/brainstorming/SKILL.md +259 -0
  465. package/skills/brainstorming/scripts/frame-template.html +365 -0
  466. package/skills/brainstorming/scripts/helper.js +216 -0
  467. package/skills/brainstorming/scripts/server.cjs +9 -0
  468. package/skills/brainstorming/scripts/server.src.cjs +249 -0
  469. package/skills/brainstorming/spec-document-reviewer-prompt.md +49 -0
  470. package/skills/brainstorming/visual-companion.md +430 -0
  471. package/skills/c4-architecture/SKILL.md +295 -0
  472. package/skills/c4-architecture/references/advanced-patterns.md +552 -0
  473. package/skills/c4-architecture/references/c4-syntax.md +492 -0
  474. package/skills/c4-architecture/references/common-mistakes.md +437 -0
  475. package/skills/knowledge-base/SKILL.md +100 -10
  476. package/skills/lesson-learned/SKILL.md +105 -0
  477. package/skills/lesson-learned/references/anti-patterns.md +55 -0
  478. package/skills/lesson-learned/references/se-principles.md +109 -0
  479. package/skills/requirements-clarity/SKILL.md +324 -0
  480. package/skills/session-handoff/SKILL.md +189 -0
  481. package/skills/session-handoff/references/handoff-template.md +139 -0
  482. package/skills/session-handoff/references/resume-checklist.md +80 -0
  483. package/skills/session-handoff/scripts/check_staleness.js +269 -0
  484. package/skills/session-handoff/scripts/create_handoff.js +299 -0
  485. package/skills/session-handoff/scripts/list_handoffs.js +113 -0
  486. package/skills/session-handoff/scripts/validate_handoff.js +241 -0
  487. package/packages/chunker/dist/treesitter-chunker.d.ts +0 -47
  488. package/packages/chunker/dist/treesitter-chunker.js +0 -8
  489. package/packages/cli/dist/commands/init.d.ts +0 -10
  490. package/packages/cli/dist/commands/init.js +0 -308
@@ -0,0 +1,36 @@
1
+ //#region packages/chunker/src/extractors/types.d.ts
2
+ /**
3
+ * Shared type definitions for AST extractors.
4
+ *
5
+ * These types match the interfaces in `@kb/analyzers/types.ts` so that
6
+ * downstream consumers can seamlessly switch from regex-based to AST-based extraction.
7
+ */
8
+ interface SymbolInfo {
9
+ name: string;
10
+ kind: 'function' | 'class' | 'interface' | 'type' | 'const' | 'enum' | 'variable' | 'method';
11
+ exported: boolean;
12
+ filePath: string;
13
+ line: number;
14
+ signature?: string;
15
+ }
16
+ interface ImportInfo {
17
+ source: string;
18
+ specifiers: string[];
19
+ filePath: string;
20
+ isExternal: boolean;
21
+ confidence: 'high' | 'medium' | 'low';
22
+ }
23
+ interface PatternMatch {
24
+ pattern: string;
25
+ description: string;
26
+ locations: string[];
27
+ confidence: 'high' | 'medium' | 'low';
28
+ }
29
+ interface EntryPoint {
30
+ name: string;
31
+ type: 'lambda-handler' | 'main' | 'bin' | 'server' | 'cli' | 'test' | 'cdk-construct';
32
+ filePath: string;
33
+ trigger?: string;
34
+ }
35
+ //#endregion
36
+ export { EntryPoint, ImportInfo, PatternMatch, SymbolInfo };
@@ -0,0 +1 @@
1
+ export{};
@@ -1,12 +1,15 @@
1
- import type { ChunkMetadata, RawChunk } from '@kb/core';
2
- import type { IChunker } from './chunker.interface.js';
3
- export declare class GenericChunker implements IChunker {
4
- private readonly maxChunkSize;
5
- private readonly overlap;
6
- constructor(options?: {
7
- maxChunkSize?: number;
8
- overlap?: number;
9
- });
10
- chunk(content: string, metadata: ChunkMetadata): RawChunk[];
1
+ import { IChunker } from "./chunker.interface.js";
2
+ import { ChunkMetadata, RawChunk } from "@kb/core";
3
+
4
+ //#region packages/chunker/src/generic-chunker.d.ts
5
+ declare class GenericChunker implements IChunker {
6
+ private readonly maxChunkSize;
7
+ private readonly overlap;
8
+ constructor(options?: {
9
+ maxChunkSize?: number;
10
+ overlap?: number;
11
+ });
12
+ chunk(content: string, metadata: ChunkMetadata): RawChunk[];
11
13
  }
12
- //# sourceMappingURL=generic-chunker.d.ts.map
14
+ //#endregion
15
+ export { GenericChunker };
@@ -1,5 +1,5 @@
1
- import{CHUNK_SIZES as p}from"../../core/dist/index.js";class C{maxChunkSize;overlap;constructor(n){this.maxChunkSize=n?.maxChunkSize??p.default.max,this.overlap=n?.overlap??p.default.overlap}chunk(n,h){if(n.length<=this.maxChunkSize)return[{text:n,sourcePath:h.sourcePath,contentType:h.contentType,chunkIndex:0,totalChunks:1,startLine:1,endLine:n.split(`
2
- `).length}];const c=n.split(`
3
- `),r=[];let e=[],s=0,l=1;for(let u=0;u<c.length;u++){const t=c[u];if(s+t.length+1>this.maxChunkSize&&e.length>0){r.push({text:e.join(`
4
- `),sourcePath:h.sourcePath,contentType:h.contentType,chunkIndex:r.length,totalChunks:0,startLine:l,endLine:l+e.length-1});const o=[];let a=0;for(let i=e.length-1;i>=0&&!(a+e[i].length+1>this.overlap);i--)o.unshift(e[i]),a+=e[i].length+1;l=l+e.length-o.length,e=[...o,t],s=a+t.length+1}else e.push(t),s+=t.length+1}return e.length>0&&r.push({text:e.join(`
5
- `),sourcePath:h.sourcePath,contentType:h.contentType,chunkIndex:r.length,totalChunks:0,startLine:l,endLine:l+e.length-1}),r.map((u,t)=>({...u,chunkIndex:t,totalChunks:r.length}))}}export{C as GenericChunker};
1
+ import{CHUNK_SIZES as e}from"../../core/dist/index.js";var t=class{maxChunkSize;overlap;constructor(t){this.maxChunkSize=t?.maxChunkSize??e.default.max,this.overlap=t?.overlap??e.default.overlap}chunk(e,t){if(e.length<=this.maxChunkSize)return[{text:e,sourcePath:t.sourcePath,contentType:t.contentType,chunkIndex:0,totalChunks:1,startLine:1,endLine:e.split(`
2
+ `).length}];let n=e.split(`
3
+ `),r=[],i=[],a=0,o=1;for(let e=0;e<n.length;e++){let s=n[e];if(a+s.length+1>this.maxChunkSize&&i.length>0){r.push({text:i.join(`
4
+ `),sourcePath:t.sourcePath,contentType:t.contentType,chunkIndex:r.length,totalChunks:0,startLine:o,endLine:o+i.length-1});let e=[],n=0;for(let t=i.length-1;t>=0&&!(n+i[t].length+1>this.overlap);t--)e.unshift(i[t]),n+=i[t].length+1;o=o+i.length-e.length,i=[...e,s],a=n+s.length+1}else i.push(s),a+=s.length+1}return i.length>0&&r.push({text:i.join(`
5
+ `),sourcePath:t.sourcePath,contentType:t.contentType,chunkIndex:r.length,totalChunks:0,startLine:o,endLine:o+i.length-1}),r.map((e,t)=>({...e,chunkIndex:t,totalChunks:r.length}))}};export{t as GenericChunker};
@@ -1,8 +1,19 @@
1
- export { type CallEdge, extractCallEdges } from './call-graph-extractor.js';
2
- export type { IChunker } from './chunker.interface.js';
3
- export { createChunker } from './chunker-factory.js';
4
- export { CodeChunker } from './code-chunker.js';
5
- export { GenericChunker } from './generic-chunker.js';
6
- export { MarkdownChunker } from './markdown-chunker.js';
7
- export { initializeTreeSitter, TreeSitterChunker, TreeSitterRuntime, } from './treesitter-chunker.js';
8
- //# sourceMappingURL=index.d.ts.map
1
+ import { CallEdge as CallEdge$1, extractCallEdges } from "./call-graph-extractor.js";
2
+ import { IChunker } from "./chunker.interface.js";
3
+ import { createChunker, createChunkerSync } from "./chunker-factory.js";
4
+ import { CodeChunker } from "./code-chunker.js";
5
+ import { CallEdge, extractCalls } from "./extractors/call-extractor.js";
6
+ import { EntryPoint, ImportInfo, PatternMatch, SymbolInfo } from "./extractors/types.js";
7
+ import { detectEntryPoints } from "./extractors/entry-point-detector.js";
8
+ import { extractImports } from "./extractors/import-extractor.js";
9
+ import { detectPatterns } from "./extractors/pattern-detector.js";
10
+ import { ScopeInfo, resolveScopes } from "./extractors/scope-resolver.js";
11
+ import { extractSymbols } from "./extractors/symbol-extractor.js";
12
+ import { GenericChunker } from "./generic-chunker.js";
13
+ import { MarkdownChunker } from "./markdown-chunker.js";
14
+ import { SUPPORTED_EXTENSIONS, resolveGrammarPath, resolveParserWasmPath } from "./wasm/languages.js";
15
+ import { WasmLanguage, WasmParser, WasmParserModule, WasmPoint, WasmQuery, WasmQueryCapture, WasmQueryMatch, WasmSyntaxNode, WasmTree } from "./wasm/types.js";
16
+ import { CaptureInfo, QueryExecutor, QueryResult, QueryType } from "./wasm/query-executor.js";
17
+ import { WasmRuntime, initializeWasm } from "./wasm/runtime.js";
18
+ import { WasmChunker } from "./wasm-chunker.js";
19
+ export { type CallEdge as AstCallEdge, type CallEdge$1 as CallEdge, type CaptureInfo, CodeChunker, type EntryPoint, GenericChunker, type IChunker, type ImportInfo, MarkdownChunker, type PatternMatch, QueryExecutor, type QueryResult, type QueryType, SUPPORTED_EXTENSIONS, type ScopeInfo, type SymbolInfo, WasmChunker, type WasmLanguage, type WasmParser, type WasmParserModule, type WasmPoint, type WasmQuery, type WasmQueryCapture, type WasmQueryMatch, WasmRuntime, type WasmSyntaxNode, type WasmTree, createChunker, createChunkerSync, detectEntryPoints, detectPatterns, extractCallEdges, extractCalls, extractImports, extractSymbols, initializeWasm, resolveGrammarPath, resolveParserWasmPath, resolveScopes };
@@ -1 +1 @@
1
- import{extractCallEdges as t}from"./call-graph-extractor.js";import{createChunker as n}from"./chunker-factory.js";import{CodeChunker as p}from"./code-chunker.js";import{GenericChunker as f}from"./generic-chunker.js";import{MarkdownChunker as m}from"./markdown-chunker.js";import{initializeTreeSitter as x,TreeSitterChunker as a,TreeSitterRuntime as h}from"./treesitter-chunker.js";export{p as CodeChunker,f as GenericChunker,m as MarkdownChunker,a as TreeSitterChunker,h as TreeSitterRuntime,n as createChunker,t as extractCallEdges,x as initializeTreeSitter};
1
+ import{SUPPORTED_EXTENSIONS as e,resolveGrammarPath as t,resolveParserWasmPath as n}from"./wasm/languages.js";import{WasmRuntime as r,initializeWasm as i}from"./wasm/runtime.js";import{extractCallEdges as a}from"./call-graph-extractor.js";import{CodeChunker as o}from"./code-chunker.js";import{GenericChunker as s}from"./generic-chunker.js";import{MarkdownChunker as c}from"./markdown-chunker.js";import{WasmChunker as l}from"./wasm-chunker.js";import{createChunker as u,createChunkerSync as d}from"./chunker-factory.js";import{QueryExecutor as f}from"./wasm/query-executor.js";import{extractCalls as p}from"./extractors/call-extractor.js";import{detectEntryPoints as m}from"./extractors/entry-point-detector.js";import{extractImports as h}from"./extractors/import-extractor.js";import{detectPatterns as g}from"./extractors/pattern-detector.js";import{resolveScopes as _}from"./extractors/scope-resolver.js";import{extractSymbols as v}from"./extractors/symbol-extractor.js";export{o as CodeChunker,s as GenericChunker,c as MarkdownChunker,f as QueryExecutor,e as SUPPORTED_EXTENSIONS,l as WasmChunker,r as WasmRuntime,u as createChunker,d as createChunkerSync,m as detectEntryPoints,g as detectPatterns,a as extractCallEdges,p as extractCalls,h as extractImports,v as extractSymbols,i as initializeWasm,t as resolveGrammarPath,n as resolveParserWasmPath,_ as resolveScopes};
@@ -1,14 +1,17 @@
1
- import type { ChunkMetadata, RawChunk } from '@kb/core';
2
- import type { IChunker } from './chunker.interface.js';
3
- export declare class MarkdownChunker implements IChunker {
4
- private readonly maxChunkSize;
5
- private readonly minChunkSize;
6
- constructor(options?: {
7
- maxChunkSize?: number;
8
- minChunkSize?: number;
9
- });
10
- chunk(content: string, metadata: ChunkMetadata): RawChunk[];
11
- private splitByHeadings;
12
- private splitByParagraphs;
1
+ import { IChunker } from "./chunker.interface.js";
2
+ import { ChunkMetadata, RawChunk } from "@kb/core";
3
+
4
+ //#region packages/chunker/src/markdown-chunker.d.ts
5
+ declare class MarkdownChunker implements IChunker {
6
+ private readonly maxChunkSize;
7
+ private readonly minChunkSize;
8
+ constructor(options?: {
9
+ maxChunkSize?: number;
10
+ minChunkSize?: number;
11
+ });
12
+ chunk(content: string, metadata: ChunkMetadata): RawChunk[];
13
+ private splitByHeadings;
14
+ private splitByParagraphs;
13
15
  }
14
- //# sourceMappingURL=markdown-chunker.d.ts.map
16
+ //#endregion
17
+ export { MarkdownChunker };
@@ -1,10 +1,3 @@
1
- import{CHUNK_SIZES as u}from"../../core/dist/index.js";class k{maxChunkSize;minChunkSize;constructor(r){this.maxChunkSize=r?.maxChunkSize??u.markdown.max,this.minChunkSize=r?.minChunkSize??u.markdown.min}chunk(r,s){const h=this.splitByHeadings(r),t=[];for(const n of h){if(n.text.trim().length<this.minChunkSize&&t.length>0){const i=t[t.length-1];i.text+=`
2
-
3
- ${n.text}`,i.endLine=n.endLine;continue}if(n.text.length>this.maxChunkSize){const i=this.splitByParagraphs(n.text,this.maxChunkSize);let e=n.startLine;for(const a of i){const o=a.split(`
4
- `).length;t.push({text:a,sourcePath:s.sourcePath,contentType:s.contentType,headingPath:n.headingPath,chunkIndex:t.length,totalChunks:0,startLine:e,endLine:e+o-1}),e+=o}}else t.push({text:n.text,sourcePath:s.sourcePath,contentType:s.contentType,headingPath:n.headingPath,chunkIndex:t.length,totalChunks:0,startLine:n.startLine,endLine:n.endLine})}return t.map((n,i)=>({...n,chunkIndex:i,totalChunks:t.length}))}splitByHeadings(r){const s=r.split(`
5
- `),h=[];let t=null;const n=[];let i=!1;for(let e=0;e<s.length;e++){/^```/.test(s[e])&&(i=!i);const a=i?null:s[e].match(/^(#{1,6})\s+(.+)/);if(a){t&&h.push(t);const o=a[1].length,c=a[2].trim();for(;n.length>=o;)n.pop();n.push(`${"#".repeat(o)} ${c}`),t={text:s[e],headingPath:n.join(" > "),startLine:e+1,endLine:e+1}}else t?(t.text+=`
6
- ${s[e]}`,t.endLine=e+1):t={text:s[e],headingPath:"(intro)",startLine:e+1,endLine:e+1}}return t&&h.push(t),h}splitByParagraphs(r,s){const h=r.split(/\n\n+/),t=[];let n="";for(const i of h)`${n}
7
-
8
- ${i}`.length>s&&n.length>0?(t.push(n.trim()),n=i):n=n?`${n}
9
-
10
- ${i}`:i;return n.trim()&&t.push(n.trim()),t}}export{k as MarkdownChunker};
1
+ import{CHUNK_SIZES as e}from"../../core/dist/index.js";var t=class{maxChunkSize;minChunkSize;constructor(t){this.maxChunkSize=t?.maxChunkSize??e.markdown.max,this.minChunkSize=t?.minChunkSize??e.markdown.min}chunk(e,t){let n=this.splitByHeadings(e),r=[];for(let e of n){if(e.text.trim().length<this.minChunkSize&&r.length>0){let t=r[r.length-1];t.text+=`\n\n${e.text}`,t.endLine=e.endLine;continue}if(e.text.length>this.maxChunkSize){let n=this.splitByParagraphs(e.text,this.maxChunkSize),i=e.startLine;for(let a of n){let n=a.split(`
2
+ `).length;r.push({text:a,sourcePath:t.sourcePath,contentType:t.contentType,headingPath:e.headingPath,chunkIndex:r.length,totalChunks:0,startLine:i,endLine:i+n-1}),i+=n}}else r.push({text:e.text,sourcePath:t.sourcePath,contentType:t.contentType,headingPath:e.headingPath,chunkIndex:r.length,totalChunks:0,startLine:e.startLine,endLine:e.endLine})}return r.map((e,t)=>({...e,chunkIndex:t,totalChunks:r.length}))}splitByHeadings(e){let t=e.split(`
3
+ `),n=[],r=null,i=[],a=!1;for(let e=0;e<t.length;e++){/^```/.test(t[e])&&(a=!a);let o=a?null:t[e].match(/^(#{1,6})\s+(.+)/);if(o){r&&n.push(r);let a=o[1].length,s=o[2].trim();for(;i.length>=a;)i.pop();i.push(`${`#`.repeat(a)} ${s}`),r={text:t[e],headingPath:i.join(` > `),startLine:e+1,endLine:e+1}}else r?(r.text+=`\n${t[e]}`,r.endLine=e+1):r={text:t[e],headingPath:`(intro)`,startLine:e+1,endLine:e+1}}return r&&n.push(r),n}splitByParagraphs(e,t){let n=e.split(/\n\n+/),r=[],i=``;for(let e of n)`${i}\n\n${e}`.length>t&&i.length>0?(r.push(i.trim()),i=e):i=i?`${i}\n\n${e}`:e;return i.trim()&&r.push(i.trim()),r}};export{t as MarkdownChunker};
@@ -0,0 +1,18 @@
1
+ //#region packages/chunker/src/wasm/languages.d.ts
2
+ /**
3
+ * Language registry for web-tree-sitter WASM grammars.
4
+ *
5
+ * Maps file extensions to vendored .wasm grammar file names
6
+ * and resolves their absolute paths on disk.
7
+ */
8
+ /** All supported extensions. */
9
+ declare const SUPPORTED_EXTENSIONS: Set<string>;
10
+ /**
11
+ * Resolve the absolute path to a vendored .wasm grammar file for a given extension.
12
+ * Returns null if the extension is not supported or the file doesn't exist.
13
+ */
14
+ declare function resolveGrammarPath(ext: string): string | null;
15
+ /** Resolve the parser runtime WASM path. */
16
+ declare function resolveParserWasmPath(): string | null;
17
+ //#endregion
18
+ export { SUPPORTED_EXTENSIONS, resolveGrammarPath, resolveParserWasmPath };
@@ -0,0 +1 @@
1
+ import{dirname as e,join as t}from"node:path";import{existsSync as n}from"node:fs";import{fileURLToPath as r}from"node:url";const i=t(e(r(import.meta.url)),`..`,`..`,`wasm`),a={".ts":`tree-sitter-typescript.wasm`,".tsx":`tree-sitter-typescript.wasm`,".mts":`tree-sitter-typescript.wasm`,".cts":`tree-sitter-typescript.wasm`,".js":`tree-sitter-javascript.wasm`,".jsx":`tree-sitter-javascript.wasm`,".mjs":`tree-sitter-javascript.wasm`,".cjs":`tree-sitter-javascript.wasm`,".py":`tree-sitter-python.wasm`,".go":`tree-sitter-go.wasm`,".rs":`tree-sitter-rust.wasm`,".java":`tree-sitter-java.wasm`},o=new Set(Object.keys(a));function s(e){let r=a[e];if(!r)return null;let o=t(i,r);return n(o)?o:null}function c(){let e=t(i,`tree-sitter.wasm`);return n(e)?e:null}export{o as SUPPORTED_EXTENSIONS,s as resolveGrammarPath,c as resolveParserWasmPath};
@@ -0,0 +1,70 @@
1
+ import { WasmLanguage, WasmSyntaxNode } from "./types.js";
2
+
3
+ //#region packages/chunker/src/wasm/query-executor.d.ts
4
+ /** Known query types that can be loaded. */
5
+ type QueryType = 'symbols' | 'imports' | 'calls' | 'patterns' | 'entry-points';
6
+ /** Structured result from a single query match. */
7
+ interface QueryResult {
8
+ /** The pattern index within the .scm file that matched. */
9
+ pattern: number;
10
+ /** All captures in this match, keyed by capture name → node info. */
11
+ captures: Map<string, CaptureInfo>;
12
+ }
13
+ /** Information about a single captured node. */
14
+ interface CaptureInfo {
15
+ /** The capture name (e.g., 'name', 'node', 'kind'). */
16
+ name: string;
17
+ /** The captured node's text content. */
18
+ text: string;
19
+ /** AST node type (e.g., 'function_declaration', 'identifier'). */
20
+ nodeType: string;
21
+ /** 0-based start line. */
22
+ startLine: number;
23
+ /** 0-based end line. */
24
+ endLine: number;
25
+ /** 0-based start column. */
26
+ startColumn: number;
27
+ /** 0-based end column. */
28
+ endColumn: number;
29
+ /** The raw AST node (for advanced traversal). */
30
+ node: WasmSyntaxNode;
31
+ }
32
+ declare class QueryExecutor {
33
+ /** Cache: `"typescript:symbols"` → compiled WasmQuery */
34
+ private queryCache;
35
+ /** Cache: loaded .scm source text to avoid re-reading disk. */
36
+ private scmCache;
37
+ /**
38
+ * Execute a query type against a parsed AST tree.
39
+ *
40
+ * @param rootNode - The root node of a parsed AST tree.
41
+ * @param language - The Language object for the parsed file.
42
+ * @param ext - The file extension (e.g., `.ts`).
43
+ * @param queryType - Which query to execute (e.g., `'symbols'`).
44
+ * @returns Array of structured results, or empty array if query not found.
45
+ */
46
+ execute(rootNode: WasmSyntaxNode, language: WasmLanguage, ext: string, queryType: QueryType): QueryResult[];
47
+ /**
48
+ * Execute a query and return flat captures instead of grouped matches.
49
+ * Useful when you care about individual nodes, not match grouping.
50
+ */
51
+ executeCaptures(rootNode: WasmSyntaxNode, language: WasmLanguage, ext: string, queryType: QueryType): CaptureInfo[];
52
+ /**
53
+ * Execute a raw .scm query string (not from file) against a tree.
54
+ * Useful for ad-hoc queries and testing.
55
+ */
56
+ executeRaw(rootNode: WasmSyntaxNode, language: WasmLanguage, scmSource: string): QueryResult[];
57
+ /**
58
+ * Get (or compile and cache) a query for the given language + type.
59
+ * Returns null if the .scm file doesn't exist.
60
+ */
61
+ private getOrCompile;
62
+ /** Load .scm file content, cached. Returns null if file not found. */
63
+ private loadScm;
64
+ /** Clear all caches. */
65
+ dispose(): void;
66
+ /** Resolve the directory path for a language's queries. */
67
+ static resolveQueryDir(langDir: string): string;
68
+ }
69
+ //#endregion
70
+ export { CaptureInfo, QueryExecutor, QueryResult, QueryType };
@@ -0,0 +1 @@
1
+ import{dirname as e,join as t}from"node:path";import{createLogger as n}from"../../../core/dist/index.js";import{existsSync as r,readFileSync as i}from"node:fs";import{fileURLToPath as a}from"node:url";const o=n(`query-executor`),s=e(a(import.meta.url));function c(){let e=t(s,`..`,`queries`);if(r(e))return e;let n=t(s,`..`,`..`,`src`,`queries`);return r(n)?n:e}const l=c(),u={".ts":`typescript`,".tsx":`typescript`,".mts":`typescript`,".cts":`typescript`,".js":`javascript`,".jsx":`javascript`,".mjs":`javascript`,".cjs":`javascript`,".py":`python`,".go":`go`,".rs":`rust`,".java":`java`};var d=class{queryCache=new Map;scmCache=new Map;execute(e,t,n,r){let i=this.getOrCompile(t,n,r);return i?i.matches(e).map(e=>f(e)):[]}executeCaptures(e,t,n,r){let i=this.getOrCompile(t,n,r);return i?i.captures(e).map(e=>p(e)):[]}executeRaw(e,t,n){return t.query(n).matches(e).map(e=>f(e))}getOrCompile(e,t,n){let r=u[t];if(!r)return null;let i=`${r}:${n}`,a=this.queryCache.get(i);if(a)return a;let s=this.loadScm(r,n);if(!s)return null;try{let t=e.query(s);return this.queryCache.set(i,t),t}catch(e){throw o.warn(`Failed to compile query`,{langDir:r,queryType:n,error:String(e)}),Error(`Failed to compile ${r}/${n}.scm: ${String(e)}`)}}loadScm(e,n){let r=`${e}:${n}`,a=this.scmCache.get(r);if(a!==void 0)return a;let s=t(l,e,`${n}.scm`);try{let e=i(s,`utf-8`);return this.scmCache.set(r,e),e}catch{return o.info(`Query file not found (graceful skip)`,{langDir:e,queryType:n}),null}}dispose(){this.queryCache.clear(),this.scmCache.clear()}static resolveQueryDir(e){return t(l,e)}};function f(e){let t=new Map;for(let n of e.captures)t.set(n.name,p(n));return{pattern:e.pattern,captures:t}}function p(e){let{node:t}=e;return{name:e.name,text:t.text,nodeType:t.type,startLine:t.startPosition.row,endLine:t.endPosition.row,startColumn:t.startPosition.column,endColumn:t.endPosition.column,node:t}}export{d as QueryExecutor};
@@ -0,0 +1,44 @@
1
+ import { WasmLanguage, WasmParser, WasmTree } from "./types.js";
2
+
3
+ //#region packages/chunker/src/wasm/runtime.d.ts
4
+ declare class WasmRuntime {
5
+ private static instance;
6
+ private parser;
7
+ private languages;
8
+ /** Track which grammar files have been loaded (by path) to avoid re-loading. */
9
+ private loadedGrammars;
10
+ /** Initialize the singleton runtime. Returns the instance or null on failure. */
11
+ static initialize(): Promise<WasmRuntime | null>;
12
+ /** Get the current runtime (null if not initialized). */
13
+ static get(): WasmRuntime | null;
14
+ /** Ensure the runtime is initialized, initializing if needed. */
15
+ static ensure(): Promise<WasmRuntime>;
16
+ /** Reset the singleton (for testing). */
17
+ static dispose(): void;
18
+ private init;
19
+ /**
20
+ * Load a language grammar for a file extension (lazy, cached).
21
+ * Returns the Language object or null if unsupported/unavailable.
22
+ */
23
+ loadLanguage(ext: string): Promise<WasmLanguage | null>;
24
+ /**
25
+ * Parse source code and return the AST tree.
26
+ * Lazily loads the grammar on first use for the given extension.
27
+ */
28
+ parse(content: string, ext: string): Promise<WasmTree | null>;
29
+ /** Check if a grammar is available (loaded or loadable) for the given extension. */
30
+ hasLanguage(ext: string): boolean;
31
+ /** Check if a grammar is already loaded for the given extension. */
32
+ isLanguageLoaded(ext: string): boolean;
33
+ /** Get the underlying parser instance (for advanced query usage). */
34
+ getParser(): WasmParser | null;
35
+ /** Get a loaded language by extension (null if not loaded yet). */
36
+ getLanguage(ext: string): WasmLanguage | null;
37
+ }
38
+ /**
39
+ * Initialize the WASM runtime. Call once at startup.
40
+ * Returns true if the runtime is available, false otherwise.
41
+ */
42
+ declare function initializeWasm(): Promise<boolean>;
43
+ //#endregion
44
+ export { WasmRuntime, initializeWasm };
@@ -0,0 +1 @@
1
+ import{SUPPORTED_EXTENSIONS as e,resolveGrammarPath as t,resolveParserWasmPath as n}from"./languages.js";import{createLogger as r}from"../../../core/dist/index.js";const i=r(`wasm-runtime`);async function a(){return(await import(`web-tree-sitter`)).default}var o=class r{static instance=null;parser=null;languages=new Map;loadedGrammars=new Map;static async initialize(){if(r.instance)return r.instance;let e=new r;return await e.init()?(r.instance=e,e):null}static get(){return r.instance}static async ensure(){let e=r.get();if(e)return e;let t=await r.initialize();if(!t)throw Error(`Failed to initialize WASM tree-sitter runtime`);return t}static dispose(){r.instance&&=(r.instance.parser?.delete(),r.instance.parser=null,r.instance.languages.clear(),r.instance.loadedGrammars.clear(),null)}async init(){try{let e=n();if(!e)return i.warn(`Parser WASM file not found`),!1;let t=await a();return await t.init({locateFile:()=>e}),this.parser=new t,i.info(`WASM tree-sitter parser initialized`),!0}catch(e){return i.warn(`Failed to initialize WASM tree-sitter`,{error:String(e)}),!1}}async loadLanguage(e){let n=this.languages.get(e);if(n)return n;let r=t(e);if(!r)return null;let o=this.loadedGrammars.get(r);if(o)return this.languages.set(e,o),o;try{let t=await(await a()).Language.load(r);return this.loadedGrammars.set(r,t),this.languages.set(e,t),i.info(`Loaded grammar`,{ext:e}),t}catch(t){return i.warn(`Failed to load grammar`,{ext:e,error:String(t)}),null}}async parse(e,t){if(!this.parser)return null;let n=await this.loadLanguage(t);return n?(this.parser.setLanguage(n),this.parser.parse(e)):null}hasLanguage(t){return e.has(t)}isLanguageLoaded(e){return this.languages.has(e)}getParser(){return this.parser}getLanguage(e){return this.languages.get(e)??null}};async function s(){return await o.initialize()!==null}export{o as WasmRuntime,s as initializeWasm};
@@ -0,0 +1,84 @@
1
+ //#region packages/chunker/src/wasm/types.d.ts
2
+ /**
3
+ * Minimal type definitions for web-tree-sitter 0.24.x.
4
+ *
5
+ * web-tree-sitter uses `export = Parser` (CJS-style) which doesn't interop
6
+ * cleanly with ESM `import type` under `moduleResolution: NodeNext` without
7
+ * `esModuleInterop`. We define our own interfaces for the subset we use.
8
+ */
9
+ interface WasmPoint {
10
+ row: number;
11
+ column: number;
12
+ }
13
+ interface WasmSyntaxNode {
14
+ type: string;
15
+ text: string;
16
+ startPosition: WasmPoint;
17
+ endPosition: WasmPoint;
18
+ startIndex: number;
19
+ endIndex: number;
20
+ children: WasmSyntaxNode[];
21
+ namedChildren: WasmSyntaxNode[];
22
+ childCount: number;
23
+ namedChildCount: number;
24
+ parent: WasmSyntaxNode | null;
25
+ nextSibling: WasmSyntaxNode | null;
26
+ previousSibling: WasmSyntaxNode | null;
27
+ nextNamedSibling: WasmSyntaxNode | null;
28
+ previousNamedSibling: WasmSyntaxNode | null;
29
+ isNamed: boolean;
30
+ firstChild: WasmSyntaxNode | null;
31
+ lastChild: WasmSyntaxNode | null;
32
+ firstNamedChild: WasmSyntaxNode | null;
33
+ lastNamedChild: WasmSyntaxNode | null;
34
+ childForFieldName(fieldName: string): WasmSyntaxNode | null;
35
+ descendantsOfType(types: string | string[], startPosition?: WasmPoint, endPosition?: WasmPoint): WasmSyntaxNode[];
36
+ }
37
+ interface WasmTree {
38
+ rootNode: WasmSyntaxNode;
39
+ delete(): void;
40
+ }
41
+ interface WasmLanguage {
42
+ query(source: string): WasmQuery;
43
+ readonly version: number;
44
+ readonly fieldCount: number;
45
+ }
46
+ interface WasmQuery {
47
+ matches(rootNode: WasmSyntaxNode, options?: {
48
+ startPosition?: WasmPoint;
49
+ endPosition?: WasmPoint;
50
+ matchLimit?: number;
51
+ }): WasmQueryMatch[];
52
+ captures(rootNode: WasmSyntaxNode, options?: {
53
+ startPosition?: WasmPoint;
54
+ endPosition?: WasmPoint;
55
+ matchLimit?: number;
56
+ }): WasmQueryCapture[];
57
+ captureNames: string[];
58
+ delete(): void;
59
+ }
60
+ interface WasmQueryMatch {
61
+ pattern: number;
62
+ captures: WasmQueryCapture[];
63
+ }
64
+ interface WasmQueryCapture {
65
+ name: string;
66
+ node: WasmSyntaxNode;
67
+ }
68
+ interface WasmParser {
69
+ parse(input: string): WasmTree;
70
+ setLanguage(language: WasmLanguage | null): void;
71
+ delete(): void;
72
+ }
73
+ /** The Parser constructor + statics as returned by web-tree-sitter. */
74
+ interface WasmParserModule {
75
+ new (): WasmParser;
76
+ init(moduleOptions?: {
77
+ locateFile?: (scriptName: string, scriptDirectory: string) => string;
78
+ }): Promise<void>;
79
+ Language: {
80
+ load(input: string | Uint8Array): Promise<WasmLanguage>;
81
+ };
82
+ }
83
+ //#endregion
84
+ export { WasmLanguage, WasmParser, WasmParserModule, WasmPoint, WasmQuery, WasmQueryCapture, WasmQueryMatch, WasmSyntaxNode, WasmTree };
@@ -0,0 +1 @@
1
+ export{};
@@ -0,0 +1,23 @@
1
+ import { IChunker } from "./chunker.interface.js";
2
+ import { ChunkMetadata, RawChunk } from "@kb/core";
3
+
4
+ //#region packages/chunker/src/wasm-chunker.d.ts
5
+ declare class WasmChunker implements IChunker {
6
+ private readonly maxChunkSize;
7
+ constructor(options?: {
8
+ maxChunkSize?: number;
9
+ });
10
+ chunk(content: string, metadata: ChunkMetadata): RawChunk[];
11
+ /** Find declaration boundaries from AST top-level children. */
12
+ private findAstBoundaries;
13
+ /** Build RawChunk[] from AST boundaries, grouping consecutive preamble items. */
14
+ private buildChunks;
15
+ /** Split text by lines respecting max chunk size. */
16
+ private splitByLines;
17
+ /** Extract file extension from path. */
18
+ private extractExt;
19
+ /** Fallback: return the whole content as a single chunk. */
20
+ private singleChunk;
21
+ }
22
+ //#endregion
23
+ export { WasmChunker };
@@ -0,0 +1,6 @@
1
+ import{WasmRuntime as e}from"./wasm/runtime.js";import{CHUNK_SIZES as t}from"../../core/dist/index.js";const n=new Set([`function_declaration`,`class_declaration`,`interface_declaration`,`type_alias_declaration`,`enum_declaration`,`lexical_declaration`,`variable_declaration`,`export_statement`,`function_definition`,`class_definition`,`decorated_definition`,`class_declaration`,`interface_declaration`,`enum_declaration`,`function_declaration`,`method_declaration`,`type_declaration`,`function_item`,`struct_item`,`enum_item`,`trait_item`,`impl_item`,`const_item`,`static_item`,`type_item`]),r=new Set([`import_statement`,`import_from_statement`,`import_declaration`,`package_declaration`,`use_declaration`,`extern_crate_declaration`,`import_spec`,`package_clause`]);var i=class{maxChunkSize;constructor(e){this.maxChunkSize=e?.maxChunkSize??t.code.max}chunk(t,n){let r=e.get();if(!r)return this.singleChunk(t,n);let i=this.extractExt(n.sourcePath),a=r.getLanguage(i);if(!a)return this.singleChunk(t,n);let o=r.getParser();if(!o)return this.singleChunk(t,n);o.setLanguage(a);let s=o.parse(t);if(!s)return this.singleChunk(t,n);let c=this.findAstBoundaries(s.rootNode,t);return c.length===0?this.singleChunk(t,n):this.buildChunks(c,t,n)}findAstBoundaries(e,t){let i=[];for(let t of e.children){if(!t.isNamed)continue;let e=n.has(t.type),a=r.has(t.type);(e||a)&&i.push({startOffset:t.startIndex,endOffset:t.endIndex,startLine:t.startPosition.row+1,endLine:t.endPosition.row+1,isPreamble:a})}return i}buildChunks(e,t,n){let r=[],i=null,a=0,o=0;for(let s of e){if(s.isPreamble){i===null&&(i=s.startLine),a=s.endOffset,o=s.endLine;continue}if(i!==null){let e=t.slice(0,a).trim();e.length>0&&r.push({text:`// File: ${n.sourcePath}\n${e}`,sourcePath:n.sourcePath,contentType:n.contentType,chunkIndex:0,totalChunks:0,startLine:i,endLine:o}),i=null}let e=t.slice(s.startOffset,s.endOffset).trim();if(e=`// File: ${n.sourcePath}\n`+e,e.length>this.maxChunkSize){let t=this.splitByLines(e,this.maxChunkSize),i=s.startLine;for(let e of t){let t=e.split(`
2
+ `).length;r.push({text:e,sourcePath:n.sourcePath,contentType:n.contentType,chunkIndex:0,totalChunks:0,startLine:i,endLine:i+t-1}),i+=t}}else r.push({text:e,sourcePath:n.sourcePath,contentType:n.contentType,chunkIndex:0,totalChunks:0,startLine:s.startLine,endLine:s.endLine})}if(i!==null){let e=t.slice(0,a).trim();e.length>0&&r.push({text:`// File: ${n.sourcePath}\n${e}`,sourcePath:n.sourcePath,contentType:n.contentType,chunkIndex:0,totalChunks:0,startLine:i,endLine:o})}return r.map((e,t)=>({...e,chunkIndex:t,totalChunks:r.length}))}splitByLines(e,t){let n=e.split(`
3
+ `),r=[],i=[],a=0;for(let e of n)a+e.length+1>t&&i.length>0&&(r.push(i.join(`
4
+ `)),i=[],a=0),i.push(e),a+=e.length+1;return i.length>0&&r.push(i.join(`
5
+ `)),r}extractExt(e){let t=e.lastIndexOf(`.`);return t>=0?e.slice(t).toLowerCase():``}singleChunk(e,t){return[{text:`// File: ${t.sourcePath}\n${e}`,sourcePath:t.sourcePath,contentType:t.contentType,chunkIndex:0,totalChunks:1,startLine:1,endLine:e.split(`
6
+ `).length}]}};export{i as WasmChunker};
@@ -0,0 +1,11 @@
1
+ ; Go call extraction queries
2
+ ; Captures: @node (call), @callee (function name)
3
+
4
+ ; foo(args) — direct function call
5
+ (call_expression
6
+ function: (identifier) @callee) @node
7
+
8
+ ; pkg.Foo(args) — qualified/selector call
9
+ (call_expression
10
+ function: (selector_expression
11
+ field: (field_identifier) @callee)) @node
@@ -0,0 +1,20 @@
1
+ ; Go entry-point detection queries
2
+ ; Captures: @node (declaration), @name (function name)
3
+
4
+ ; func main()
5
+ (function_declaration
6
+ name: (identifier) @name
7
+ (#eq? @name "main")) @node
8
+
9
+ ; func init()
10
+ (function_declaration
11
+ name: (identifier) @name
12
+ (#eq? @name "init")) @node
13
+
14
+ ; http.HandleFunc / http.Handle
15
+ (call_expression
16
+ function: (selector_expression
17
+ operand: (identifier) @_pkg
18
+ field: (field_identifier) @name
19
+ (#eq? @_pkg "http")
20
+ (#match? @name "^Handle"))) @node
@@ -0,0 +1,6 @@
1
+ ; Go import extraction queries
2
+ ; Captures: @node (import spec), @source (path string)
3
+
4
+ ; Each individual import spec (works for both single and block imports)
5
+ (import_spec
6
+ path: (interpreted_string_literal) @source) @node
@@ -0,0 +1,25 @@
1
+ ; Go pattern detection queries
2
+ ; Captures: @node (pattern site), @name (identifier)
3
+
4
+ ; Interface type definition
5
+ (type_declaration
6
+ (type_spec
7
+ name: (type_identifier) @name
8
+ type: (interface_type))) @node
9
+
10
+ ; Goroutine launch
11
+ (go_statement
12
+ (call_expression
13
+ function: (identifier) @name)) @node
14
+
15
+ ; Channel creation: make(chan T)
16
+ (call_expression
17
+ function: (identifier) @name
18
+ (#eq? @name "make")) @node
19
+
20
+ ; sync primitives (field of type sync.Mutex, sync.WaitGroup, etc.)
21
+ (field_declaration
22
+ type: (qualified_type
23
+ package: (package_identifier) @_pkg
24
+ name: (type_identifier) @name
25
+ (#eq? @_pkg "sync"))) @node
@@ -0,0 +1,26 @@
1
+ ; Go symbol extraction queries
2
+ ; Captures: @node (declaration), @name (identifier)
3
+ ; Export convention: uppercase first letter = exported (checked by extractor)
4
+
5
+ ; Function declaration
6
+ (function_declaration
7
+ name: (identifier) @name) @node
8
+
9
+ ; Method declaration (receiver function)
10
+ (method_declaration
11
+ name: (field_identifier) @name) @node
12
+
13
+ ; Type declaration (struct, interface, type alias)
14
+ (type_declaration
15
+ (type_spec
16
+ name: (type_identifier) @name)) @node
17
+
18
+ ; Const declaration
19
+ (const_declaration
20
+ (const_spec
21
+ name: (identifier) @name)) @node
22
+
23
+ ; Var declaration
24
+ (var_declaration
25
+ (var_spec
26
+ name: (identifier) @name)) @node
@@ -0,0 +1,10 @@
1
+ ; Java call extraction queries
2
+ ; Captures: @node (call), @callee (method/constructor name)
3
+
4
+ ; foo(args) / this.foo(args) / obj.method(args)
5
+ (method_invocation
6
+ name: (identifier) @callee) @node
7
+
8
+ ; new Foo(args)
9
+ (object_creation_expression
10
+ type: (type_identifier) @callee) @node
@@ -0,0 +1,27 @@
1
+ ; Java entry-point detection queries
2
+ ; Captures: @node (declaration), @name (class/method name)
3
+
4
+ ; public static void main(String[] args)
5
+ (method_declaration
6
+ (modifiers) @_mods
7
+ type: (void_type)
8
+ name: (identifier) @name
9
+ (#eq? @name "main")
10
+ (#match? @_mods "public")
11
+ (#match? @_mods "static")) @node
12
+
13
+ ; @SpringBootApplication class
14
+ (class_declaration
15
+ (modifiers
16
+ (marker_annotation
17
+ name: (identifier) @_ann
18
+ (#eq? @_ann "SpringBootApplication")))
19
+ name: (identifier) @name) @node
20
+
21
+ ; @RestController / @Controller class
22
+ (class_declaration
23
+ (modifiers
24
+ (marker_annotation
25
+ name: (identifier) @_ann
26
+ (#match? @_ann "^(RestController|Controller)$")))
27
+ name: (identifier) @name) @node
@@ -0,0 +1,11 @@
1
+ ; Java import extraction queries
2
+ ; Captures: @node (import), @source (fully qualified path)
3
+
4
+ ; import com.example.Foo;
5
+ ; import static com.example.Foo.bar;
6
+ (import_declaration
7
+ (scoped_identifier) @source) @node
8
+
9
+ ; import Foo; (single identifier, rare)
10
+ (import_declaration
11
+ (identifier) @source) @node
@@ -0,0 +1,27 @@
1
+ ; Java pattern detection queries
2
+ ; Captures: @node (pattern site), @name (identifier)
3
+
4
+ ; Singleton: private constructor
5
+ (class_declaration
6
+ name: (identifier) @name
7
+ body: (class_body
8
+ (constructor_declaration
9
+ (modifiers) @_mods
10
+ (#match? @_mods "private")))) @node
11
+
12
+ ; Factory: static method named create/build/of/from
13
+ (method_declaration
14
+ (modifiers) @_mods
15
+ name: (identifier) @name
16
+ (#match? @_mods "static")
17
+ (#match? @name "^(create|build|of|from|new)")) @node
18
+
19
+ ; Builder class
20
+ (class_declaration
21
+ name: (identifier) @name
22
+ (#match? @name "Builder")) @node
23
+
24
+ ; DI/framework annotations
25
+ (marker_annotation
26
+ name: (identifier) @name
27
+ (#match? @name "^(Singleton|Component|Service|Repository|Controller|Bean)$")) @node