@vpxa/kb 0.1.13 → 0.1.15

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 (383) hide show
  1. package/README.md +8 -2
  2. package/package.json +10 -7
  3. package/packages/analyzers/dist/blast-radius-analyzer.d.ts +17 -20
  4. package/packages/analyzers/dist/blast-radius-analyzer.js +6 -12
  5. package/packages/analyzers/dist/dependency-analyzer.d.ts +31 -27
  6. package/packages/analyzers/dist/dependency-analyzer.js +7 -9
  7. package/packages/analyzers/dist/diagram-generator.d.ts +12 -8
  8. package/packages/analyzers/dist/diagram-generator.js +3 -4
  9. package/packages/analyzers/dist/entry-point-analyzer.d.ts +39 -35
  10. package/packages/analyzers/dist/entry-point-analyzer.js +5 -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 +29 -25
  14. package/packages/analyzers/dist/knowledge-producer.js +16 -15
  15. package/packages/analyzers/dist/pattern-analyzer.d.ts +14 -10
  16. package/packages/analyzers/dist/pattern-analyzer.js +3 -5
  17. package/packages/analyzers/dist/regex-call-graph.d.ts +6 -12
  18. package/packages/analyzers/dist/regex-call-graph.js +2 -1
  19. package/packages/analyzers/dist/structure-analyzer.d.ts +13 -9
  20. package/packages/analyzers/dist/structure-analyzer.js +3 -4
  21. package/packages/analyzers/dist/symbol-analyzer.d.ts +12 -8
  22. package/packages/analyzers/dist/symbol-analyzer.js +8 -13
  23. package/packages/analyzers/dist/ts-call-graph.d.ts +16 -13
  24. package/packages/analyzers/dist/ts-call-graph.js +2 -1
  25. package/packages/analyzers/dist/types.d.ts +82 -79
  26. package/packages/analyzers/dist/types.js +1 -0
  27. package/packages/chunker/dist/call-graph-extractor.d.ts +13 -10
  28. package/packages/chunker/dist/call-graph-extractor.js +2 -1
  29. package/packages/chunker/dist/chunker-factory.d.ts +6 -2
  30. package/packages/chunker/dist/chunker-factory.js +2 -1
  31. package/packages/chunker/dist/chunker.interface.d.ts +8 -4
  32. package/packages/chunker/dist/chunker.interface.js +1 -0
  33. package/packages/chunker/dist/code-chunker.d.ts +16 -12
  34. package/packages/chunker/dist/code-chunker.js +12 -14
  35. package/packages/chunker/dist/generic-chunker.d.ts +14 -10
  36. package/packages/chunker/dist/generic-chunker.js +6 -5
  37. package/packages/chunker/dist/index.d.ts +8 -8
  38. package/packages/chunker/dist/index.js +1 -1
  39. package/packages/chunker/dist/markdown-chunker.d.ts +16 -12
  40. package/packages/chunker/dist/markdown-chunker.js +4 -10
  41. package/packages/chunker/dist/treesitter-chunker.d.ts +28 -31
  42. package/packages/chunker/dist/treesitter-chunker.js +7 -8
  43. package/packages/cli/dist/commands/analyze.d.ts +6 -2
  44. package/packages/cli/dist/commands/analyze.js +3 -3
  45. package/packages/cli/dist/commands/context-cmds.d.ts +6 -2
  46. package/packages/cli/dist/commands/context-cmds.js +2 -1
  47. package/packages/cli/dist/commands/environment.d.ts +6 -2
  48. package/packages/cli/dist/commands/environment.js +2 -2
  49. package/packages/cli/dist/commands/execution.d.ts +6 -2
  50. package/packages/cli/dist/commands/execution.js +2 -1
  51. package/packages/cli/dist/commands/graph.d.ts +6 -2
  52. package/packages/cli/dist/commands/graph.js +6 -6
  53. package/packages/cli/dist/commands/init/adapters.d.ts +27 -0
  54. package/packages/cli/dist/commands/init/adapters.js +2 -0
  55. package/packages/cli/dist/commands/init/config.d.ts +11 -0
  56. package/packages/cli/dist/commands/init/config.js +4 -0
  57. package/packages/cli/dist/commands/init/curated.d.ts +8 -0
  58. package/packages/cli/dist/commands/init/curated.js +2 -0
  59. package/packages/cli/dist/commands/init/index.d.ts +23 -0
  60. package/packages/cli/dist/commands/init/index.js +3 -0
  61. package/packages/cli/dist/commands/init/scaffold.d.ts +24 -0
  62. package/packages/cli/dist/commands/init/scaffold.js +2 -0
  63. package/packages/cli/dist/commands/init/templates.d.ts +10 -0
  64. package/packages/cli/dist/commands/init/templates.js +302 -0
  65. package/packages/cli/dist/commands/init.d.ts +8 -3
  66. package/packages/cli/dist/commands/init.js +120 -123
  67. package/packages/cli/dist/commands/knowledge.d.ts +6 -2
  68. package/packages/cli/dist/commands/knowledge.js +2 -1
  69. package/packages/cli/dist/commands/search.d.ts +6 -2
  70. package/packages/cli/dist/commands/search.js +2 -8
  71. package/packages/cli/dist/commands/system.d.ts +6 -2
  72. package/packages/cli/dist/commands/system.js +5 -7
  73. package/packages/cli/dist/commands/workspace.d.ts +6 -2
  74. package/packages/cli/dist/commands/workspace.js +2 -2
  75. package/packages/cli/dist/context.d.ts +7 -4
  76. package/packages/cli/dist/context.js +2 -1
  77. package/packages/cli/dist/helpers.d.ts +51 -47
  78. package/packages/cli/dist/helpers.js +6 -5
  79. package/packages/cli/dist/index.d.ts +4 -1
  80. package/packages/cli/dist/index.js +3 -2
  81. package/packages/cli/dist/kb-init.d.ts +48 -50
  82. package/packages/cli/dist/kb-init.js +2 -1
  83. package/packages/cli/dist/types.d.ts +8 -5
  84. package/packages/cli/dist/types.js +1 -0
  85. package/packages/core/dist/constants.d.ts +36 -33
  86. package/packages/core/dist/constants.js +2 -1
  87. package/packages/core/dist/content-detector.d.ts +8 -7
  88. package/packages/core/dist/content-detector.js +2 -1
  89. package/packages/core/dist/errors.d.ts +15 -12
  90. package/packages/core/dist/errors.js +2 -1
  91. package/packages/core/dist/index.d.ts +6 -6
  92. package/packages/core/dist/index.js +1 -1
  93. package/packages/core/dist/logger.d.ts +16 -7
  94. package/packages/core/dist/logger.js +2 -1
  95. package/packages/core/dist/types.d.ts +107 -91
  96. package/packages/core/dist/types.js +2 -0
  97. package/packages/embeddings/dist/embedder.interface.d.ts +22 -19
  98. package/packages/embeddings/dist/embedder.interface.js +1 -0
  99. package/packages/embeddings/dist/index.d.ts +3 -3
  100. package/packages/embeddings/dist/index.js +1 -1
  101. package/packages/embeddings/dist/onnx-embedder.d.ts +21 -22
  102. package/packages/embeddings/dist/onnx-embedder.js +2 -1
  103. package/packages/enterprise-bridge/dist/cache.d.ts +29 -0
  104. package/packages/enterprise-bridge/dist/cache.js +2 -0
  105. package/packages/enterprise-bridge/dist/er-client.d.ts +38 -0
  106. package/packages/enterprise-bridge/dist/er-client.js +2 -0
  107. package/packages/enterprise-bridge/dist/evolution-collector.d.ts +63 -0
  108. package/packages/enterprise-bridge/dist/evolution-collector.js +2 -0
  109. package/packages/enterprise-bridge/dist/index.d.ts +8 -0
  110. package/packages/enterprise-bridge/dist/index.js +1 -0
  111. package/packages/enterprise-bridge/dist/policy-store.d.ts +46 -0
  112. package/packages/enterprise-bridge/dist/policy-store.js +2 -0
  113. package/packages/enterprise-bridge/dist/push-adapter.d.ts +24 -0
  114. package/packages/enterprise-bridge/dist/push-adapter.js +2 -0
  115. package/packages/enterprise-bridge/dist/result-merger.d.ts +15 -0
  116. package/packages/enterprise-bridge/dist/result-merger.js +2 -0
  117. package/packages/enterprise-bridge/dist/types.d.ts +82 -0
  118. package/packages/enterprise-bridge/dist/types.js +2 -0
  119. package/packages/indexer/dist/file-hasher.d.ts +5 -2
  120. package/packages/indexer/dist/file-hasher.js +2 -1
  121. package/packages/indexer/dist/filesystem-crawler.d.ts +23 -20
  122. package/packages/indexer/dist/filesystem-crawler.js +2 -1
  123. package/packages/indexer/dist/graph-extractor.d.ts +9 -12
  124. package/packages/indexer/dist/graph-extractor.js +2 -1
  125. package/packages/indexer/dist/incremental-indexer.d.ts +49 -43
  126. package/packages/indexer/dist/incremental-indexer.js +2 -1
  127. package/packages/indexer/dist/index.d.ts +5 -5
  128. package/packages/indexer/dist/index.js +1 -1
  129. package/packages/server/dist/api.d.ts +3 -8
  130. package/packages/server/dist/api.js +1 -1
  131. package/packages/server/dist/config.d.ts +6 -2
  132. package/packages/server/dist/config.js +2 -1
  133. package/packages/server/dist/curated-manager.d.ts +79 -76
  134. package/packages/server/dist/curated-manager.js +6 -10
  135. package/packages/server/dist/index.d.ts +1 -2
  136. package/packages/server/dist/index.js +2 -1
  137. package/packages/server/dist/replay-interceptor.d.ts +6 -6
  138. package/packages/server/dist/replay-interceptor.js +2 -1
  139. package/packages/server/dist/resources/resources.d.ts +7 -3
  140. package/packages/server/dist/resources/resources.js +3 -2
  141. package/packages/server/dist/server.d.ts +34 -24
  142. package/packages/server/dist/server.js +2 -1
  143. package/packages/server/dist/tools/analyze.tools.d.ts +14 -10
  144. package/packages/server/dist/tools/analyze.tools.js +2 -3
  145. package/packages/server/dist/tools/audit.tool.d.ts +8 -4
  146. package/packages/server/dist/tools/audit.tool.js +2 -4
  147. package/packages/server/dist/tools/bridge.tools.d.ts +35 -0
  148. package/packages/server/dist/tools/bridge.tools.js +16 -0
  149. package/packages/server/dist/tools/evolution.tools.d.ts +8 -0
  150. package/packages/server/dist/tools/evolution.tools.js +6 -0
  151. package/packages/server/dist/tools/forge.tools.d.ts +13 -11
  152. package/packages/server/dist/tools/forge.tools.js +11 -13
  153. package/packages/server/dist/tools/forget.tool.d.ts +7 -3
  154. package/packages/server/dist/tools/forget.tool.js +2 -7
  155. package/packages/server/dist/tools/graph.tool.d.ts +7 -3
  156. package/packages/server/dist/tools/graph.tool.js +5 -5
  157. package/packages/server/dist/tools/list.tool.d.ts +7 -3
  158. package/packages/server/dist/tools/list.tool.js +3 -8
  159. package/packages/server/dist/tools/lookup.tool.d.ts +7 -3
  160. package/packages/server/dist/tools/lookup.tool.js +3 -9
  161. package/packages/server/dist/tools/onboard.tool.d.ts +8 -4
  162. package/packages/server/dist/tools/onboard.tool.js +3 -2
  163. package/packages/server/dist/tools/policy.tools.d.ts +8 -0
  164. package/packages/server/dist/tools/policy.tools.js +3 -0
  165. package/packages/server/dist/tools/produce.tool.d.ts +6 -2
  166. package/packages/server/dist/tools/produce.tool.js +3 -2
  167. package/packages/server/dist/tools/read.tool.d.ts +7 -3
  168. package/packages/server/dist/tools/read.tool.js +3 -6
  169. package/packages/server/dist/tools/reindex.tool.d.ts +10 -6
  170. package/packages/server/dist/tools/reindex.tool.js +3 -2
  171. package/packages/server/dist/tools/remember.tool.d.ts +8 -3
  172. package/packages/server/dist/tools/remember.tool.js +4 -5
  173. package/packages/server/dist/tools/replay.tool.d.ts +6 -2
  174. package/packages/server/dist/tools/replay.tool.js +3 -6
  175. package/packages/server/dist/tools/search.tool.d.ts +10 -4
  176. package/packages/server/dist/tools/search.tool.js +7 -22
  177. package/packages/server/dist/tools/status.tool.d.ts +7 -3
  178. package/packages/server/dist/tools/status.tool.js +3 -3
  179. package/packages/server/dist/tools/toolkit.tools.d.ts +36 -34
  180. package/packages/server/dist/tools/toolkit.tools.js +20 -24
  181. package/packages/server/dist/tools/update.tool.d.ts +7 -3
  182. package/packages/server/dist/tools/update.tool.js +2 -6
  183. package/packages/server/dist/tools/utility.tools.d.ts +15 -14
  184. package/packages/server/dist/tools/utility.tools.js +11 -23
  185. package/packages/server/dist/version-check.d.ts +5 -1
  186. package/packages/server/dist/version-check.js +2 -1
  187. package/packages/store/dist/graph-store.interface.d.ts +89 -86
  188. package/packages/store/dist/graph-store.interface.js +1 -0
  189. package/packages/store/dist/index.d.ts +6 -6
  190. package/packages/store/dist/index.js +1 -1
  191. package/packages/store/dist/lance-store.d.ts +37 -30
  192. package/packages/store/dist/lance-store.js +2 -1
  193. package/packages/store/dist/sqlite-graph-store.d.ts +43 -46
  194. package/packages/store/dist/sqlite-graph-store.js +14 -13
  195. package/packages/store/dist/store-factory.d.ts +11 -7
  196. package/packages/store/dist/store-factory.js +2 -1
  197. package/packages/store/dist/store.interface.d.ts +47 -46
  198. package/packages/store/dist/store.interface.js +1 -0
  199. package/packages/tools/dist/audit.d.ts +61 -61
  200. package/packages/tools/dist/audit.js +5 -5
  201. package/packages/tools/dist/batch.d.ts +20 -17
  202. package/packages/tools/dist/batch.js +2 -1
  203. package/packages/tools/dist/changelog.d.ts +29 -26
  204. package/packages/tools/dist/changelog.js +3 -2
  205. package/packages/tools/dist/check.d.ts +42 -38
  206. package/packages/tools/dist/check.js +3 -2
  207. package/packages/tools/dist/checkpoint.d.ts +17 -14
  208. package/packages/tools/dist/checkpoint.js +2 -2
  209. package/packages/tools/dist/codemod.d.ts +35 -32
  210. package/packages/tools/dist/codemod.js +3 -2
  211. package/packages/tools/dist/compact.d.ts +34 -37
  212. package/packages/tools/dist/compact.js +3 -2
  213. package/packages/tools/dist/data-transform.d.ts +10 -7
  214. package/packages/tools/dist/data-transform.js +2 -1
  215. package/packages/tools/dist/dead-symbols.d.ts +29 -25
  216. package/packages/tools/dist/dead-symbols.js +3 -2
  217. package/packages/tools/dist/delegate.d.ts +26 -23
  218. package/packages/tools/dist/delegate.js +2 -5
  219. package/packages/tools/dist/diff-parse.d.ts +24 -21
  220. package/packages/tools/dist/diff-parse.js +4 -3
  221. package/packages/tools/dist/digest.d.ts +43 -45
  222. package/packages/tools/dist/digest.js +5 -5
  223. package/packages/tools/dist/encode.d.ts +11 -8
  224. package/packages/tools/dist/encode.js +2 -1
  225. package/packages/tools/dist/env-info.d.ts +25 -22
  226. package/packages/tools/dist/env-info.js +2 -1
  227. package/packages/tools/dist/eval.d.ts +13 -10
  228. package/packages/tools/dist/eval.js +3 -3
  229. package/packages/tools/dist/evidence-map.d.ts +64 -61
  230. package/packages/tools/dist/evidence-map.js +3 -3
  231. package/packages/tools/dist/file-cache.d.ts +42 -0
  232. package/packages/tools/dist/file-cache.js +4 -0
  233. package/packages/tools/dist/file-summary.d.ts +34 -29
  234. package/packages/tools/dist/file-summary.js +3 -2
  235. package/packages/tools/dist/file-walk.d.ts +6 -3
  236. package/packages/tools/dist/file-walk.js +2 -1
  237. package/packages/tools/dist/find-examples.d.ts +26 -21
  238. package/packages/tools/dist/find-examples.js +4 -3
  239. package/packages/tools/dist/find.d.ts +39 -40
  240. package/packages/tools/dist/find.js +2 -1
  241. package/packages/tools/dist/forge-classify.d.ts +35 -38
  242. package/packages/tools/dist/forge-classify.js +3 -2
  243. package/packages/tools/dist/forge-ground.d.ts +58 -60
  244. package/packages/tools/dist/forge-ground.js +2 -1
  245. package/packages/tools/dist/git-context.d.ts +22 -19
  246. package/packages/tools/dist/git-context.js +4 -3
  247. package/packages/tools/dist/graph-query.d.ts +75 -78
  248. package/packages/tools/dist/graph-query.js +2 -1
  249. package/packages/tools/dist/guide.d.ts +14 -11
  250. package/packages/tools/dist/guide.js +2 -1
  251. package/packages/tools/dist/health.d.ts +13 -10
  252. package/packages/tools/dist/health.js +3 -2
  253. package/packages/tools/dist/http-request.d.ts +20 -17
  254. package/packages/tools/dist/http-request.js +2 -1
  255. package/packages/tools/dist/index.d.ts +54 -53
  256. package/packages/tools/dist/index.js +1 -1
  257. package/packages/tools/dist/lane.d.ts +28 -25
  258. package/packages/tools/dist/lane.js +7 -7
  259. package/packages/tools/dist/measure.d.ts +32 -29
  260. package/packages/tools/dist/measure.js +3 -2
  261. package/packages/tools/dist/onboard.d.ts +29 -26
  262. package/packages/tools/dist/onboard.js +18 -41
  263. package/packages/tools/dist/parse-output.d.ts +48 -45
  264. package/packages/tools/dist/parse-output.js +3 -2
  265. package/packages/tools/dist/path-resolver.d.ts +4 -1
  266. package/packages/tools/dist/path-resolver.js +2 -1
  267. package/packages/tools/dist/process-manager.d.ts +18 -15
  268. package/packages/tools/dist/process-manager.js +2 -1
  269. package/packages/tools/dist/queue.d.ts +28 -25
  270. package/packages/tools/dist/queue.js +2 -2
  271. package/packages/tools/dist/regex-test.d.ts +26 -23
  272. package/packages/tools/dist/regex-test.js +2 -1
  273. package/packages/tools/dist/rename.d.ts +28 -25
  274. package/packages/tools/dist/rename.js +3 -2
  275. package/packages/tools/dist/replay.d.ts +32 -29
  276. package/packages/tools/dist/replay.js +5 -6
  277. package/packages/tools/dist/response-envelope.d.ts +32 -29
  278. package/packages/tools/dist/response-envelope.js +2 -1
  279. package/packages/tools/dist/schema-validate.d.ts +15 -12
  280. package/packages/tools/dist/schema-validate.js +2 -1
  281. package/packages/tools/dist/scope-map.d.ts +45 -47
  282. package/packages/tools/dist/scope-map.js +2 -1
  283. package/packages/tools/dist/snippet.d.ts +26 -24
  284. package/packages/tools/dist/snippet.js +2 -1
  285. package/packages/tools/dist/stash.d.ts +13 -10
  286. package/packages/tools/dist/stash.js +2 -2
  287. package/packages/tools/dist/stratum-card.d.ts +27 -27
  288. package/packages/tools/dist/stratum-card.js +4 -5
  289. package/packages/tools/dist/symbol.d.ts +29 -25
  290. package/packages/tools/dist/symbol.js +4 -3
  291. package/packages/tools/dist/test-run.d.ts +19 -15
  292. package/packages/tools/dist/test-run.js +3 -2
  293. package/packages/tools/dist/text-utils.d.ts +6 -3
  294. package/packages/tools/dist/text-utils.js +3 -2
  295. package/packages/tools/dist/time-utils.d.ts +15 -12
  296. package/packages/tools/dist/time-utils.js +2 -1
  297. package/packages/tools/dist/trace.d.ts +24 -20
  298. package/packages/tools/dist/trace.js +3 -2
  299. package/packages/tools/dist/truncation.d.ts +6 -3
  300. package/packages/tools/dist/truncation.js +8 -14
  301. package/packages/tools/dist/watch.d.ts +28 -25
  302. package/packages/tools/dist/watch.js +2 -1
  303. package/packages/tools/dist/web-fetch.d.ts +35 -32
  304. package/packages/tools/dist/web-fetch.js +7 -12
  305. package/packages/tools/dist/web-search.d.ts +16 -13
  306. package/packages/tools/dist/web-search.js +2 -1
  307. package/packages/tools/dist/workset.d.ts +19 -16
  308. package/packages/tools/dist/workset.js +2 -2
  309. package/packages/tui/dist/App-BAlmxCCw.js +3 -0
  310. package/packages/tui/dist/App.d.ts +11 -5
  311. package/packages/tui/dist/App.js +1 -450
  312. package/packages/tui/dist/CuratedPanel-sYdZAICX.js +3 -0
  313. package/packages/tui/dist/LogPanel-DVB8Sv46.js +4 -0
  314. package/packages/tui/dist/SearchPanel-DREo6zgt.js +3 -0
  315. package/packages/tui/dist/StatusPanel-2ex8fLOO.js +3 -0
  316. package/packages/tui/dist/chunk-D6axbAb-.js +2 -0
  317. package/packages/tui/dist/devtools-DUyj952l.js +8 -0
  318. package/packages/tui/dist/embedder.interface-D4ew0HPW.d.ts +29 -0
  319. package/packages/tui/dist/index-B9VpfVPP.d.ts +14 -0
  320. package/packages/tui/dist/index.d.ts +3 -19
  321. package/packages/tui/dist/index.js +2 -476
  322. package/packages/tui/dist/jsx-runtime-Cof-kwFn.js +317 -0
  323. package/packages/tui/dist/panels/CuratedPanel.d.ts +11 -5
  324. package/packages/tui/dist/panels/CuratedPanel.js +1 -371
  325. package/packages/tui/dist/panels/LogPanel.d.ts +7 -2
  326. package/packages/tui/dist/panels/LogPanel.js +1 -449
  327. package/packages/tui/dist/panels/SearchPanel.d.ts +14 -7
  328. package/packages/tui/dist/panels/SearchPanel.js +1 -372
  329. package/packages/tui/dist/panels/StatusPanel.d.ts +11 -5
  330. package/packages/tui/dist/panels/StatusPanel.js +1 -371
  331. package/packages/tui/dist/store.interface-CnY6SPOH.d.ts +151 -0
  332. package/scaffold/adapters/claude-code.mjs +20 -0
  333. package/scaffold/adapters/copilot.mjs +320 -0
  334. package/scaffold/copilot/agents/Architect-Reviewer-Alpha.agent.md +14 -0
  335. package/scaffold/copilot/agents/Architect-Reviewer-Beta.agent.md +14 -0
  336. package/scaffold/copilot/agents/Code-Reviewer-Alpha.agent.md +12 -0
  337. package/scaffold/copilot/agents/Code-Reviewer-Beta.agent.md +12 -0
  338. package/scaffold/copilot/agents/Debugger.agent.md +31 -0
  339. package/scaffold/copilot/agents/Documenter.agent.md +35 -0
  340. package/scaffold/copilot/agents/Explorer.agent.md +50 -0
  341. package/scaffold/copilot/agents/Frontend.agent.md +29 -0
  342. package/scaffold/copilot/agents/Implementer.agent.md +31 -0
  343. package/scaffold/copilot/agents/Orchestrator.agent.md +96 -0
  344. package/scaffold/copilot/agents/Planner.agent.md +45 -0
  345. package/scaffold/copilot/agents/README.md +57 -0
  346. package/scaffold/copilot/agents/Refactor.agent.md +30 -0
  347. package/scaffold/copilot/agents/Researcher-Alpha.agent.md +12 -0
  348. package/scaffold/copilot/agents/Researcher-Beta.agent.md +12 -0
  349. package/scaffold/copilot/agents/Researcher-Delta.agent.md +12 -0
  350. package/scaffold/copilot/agents/Researcher-Gamma.agent.md +12 -0
  351. package/scaffold/copilot/agents/Security.agent.md +42 -0
  352. package/scaffold/copilot/agents/_shared/adr-protocol.md +91 -0
  353. package/scaffold/copilot/agents/_shared/architect-reviewer-base.md +50 -0
  354. package/scaffold/copilot/agents/_shared/code-agent-base.md +70 -0
  355. package/scaffold/copilot/agents/_shared/code-reviewer-base.md +54 -0
  356. package/scaffold/copilot/agents/_shared/decision-protocol.md +27 -0
  357. package/scaffold/copilot/agents/_shared/forge-protocol.md +46 -0
  358. package/scaffold/copilot/agents/_shared/researcher-base.md +61 -0
  359. package/scaffold/copilot/agents/templates/adr-template.md +27 -0
  360. package/scaffold/copilot/agents/templates/execution-state.md +25 -0
  361. package/scaffold/copilot/prompts/ask.prompt.md +20 -0
  362. package/scaffold/copilot/prompts/debug.prompt.md +25 -0
  363. package/scaffold/copilot/prompts/design.prompt.md +22 -0
  364. package/scaffold/copilot/prompts/implement.prompt.md +26 -0
  365. package/scaffold/copilot/prompts/plan.prompt.md +24 -0
  366. package/scaffold/copilot/prompts/review.prompt.md +31 -0
  367. package/scaffold/definitions/agents.mjs +165 -0
  368. package/scaffold/definitions/bodies.mjs +292 -0
  369. package/scaffold/definitions/hooks.mjs +43 -0
  370. package/scaffold/definitions/models.mjs +56 -0
  371. package/scaffold/definitions/plugins.mjs +24 -0
  372. package/scaffold/definitions/prompts.mjs +145 -0
  373. package/scaffold/definitions/protocols.mjs +322 -0
  374. package/scaffold/definitions/tools.mjs +176 -0
  375. package/scaffold/generate.mjs +74 -0
  376. package/skills/brainstorming/SKILL.md +259 -0
  377. package/skills/brainstorming/scripts/frame-template.html +365 -0
  378. package/skills/brainstorming/scripts/helper.js +216 -0
  379. package/skills/brainstorming/scripts/server.cjs +9 -0
  380. package/skills/brainstorming/scripts/server.src.cjs +249 -0
  381. package/skills/brainstorming/spec-document-reviewer-prompt.md +49 -0
  382. package/skills/brainstorming/visual-companion.md +430 -0
  383. package/skills/knowledge-base/SKILL.md +22 -9
@@ -1,49 +1,52 @@
1
+ //#region packages/core/src/constants.d.ts
1
2
  /**
2
3
  * Default constants for the Knowledge Base system.
3
4
  */
4
5
  /** Default chunk sizes by content type */
5
- export declare const CHUNK_SIZES: {
6
- readonly markdown: {
7
- readonly max: 1500;
8
- readonly min: 100;
9
- };
10
- readonly code: {
11
- readonly max: 2000;
12
- readonly min: 50;
13
- };
14
- readonly config: {
15
- readonly max: 3000;
16
- readonly min: 50;
17
- };
18
- readonly default: {
19
- readonly max: 1500;
20
- readonly min: 100;
21
- readonly overlap: 200;
22
- };
6
+ declare const CHUNK_SIZES: {
7
+ readonly markdown: {
8
+ readonly max: 1500;
9
+ readonly min: 100;
10
+ };
11
+ readonly code: {
12
+ readonly max: 2000;
13
+ readonly min: 50;
14
+ };
15
+ readonly config: {
16
+ readonly max: 3000;
17
+ readonly min: 50;
18
+ };
19
+ readonly default: {
20
+ readonly max: 1500;
21
+ readonly min: 100;
22
+ readonly overlap: 200;
23
+ };
23
24
  };
24
25
  /** Default embedding config */
25
- export declare const EMBEDDING_DEFAULTS: {
26
- readonly model: "mixedbread-ai/mxbai-embed-large-v1";
27
- readonly dimensions: 1024;
26
+ declare const EMBEDDING_DEFAULTS: {
27
+ readonly model: "mixedbread-ai/mxbai-embed-large-v1";
28
+ readonly dimensions: 1024;
28
29
  };
29
30
  /** Default store config */
30
- export declare const STORE_DEFAULTS: {
31
- readonly backend: "lancedb";
32
- readonly path: ".kb-data";
33
- readonly tableName: "knowledge";
31
+ declare const STORE_DEFAULTS: {
32
+ readonly backend: "lancedb";
33
+ readonly path: ".kb-data";
34
+ readonly tableName: "knowledge";
34
35
  };
35
36
  /** File size limits */
36
- export declare const FILE_LIMITS: {
37
- readonly maxFileSizeBytes: 1000000;
38
- readonly maxCuratedFileSizeBytes: 50000;
37
+ declare const FILE_LIMITS: {
38
+ readonly maxFileSizeBytes: 1000000;
39
+ readonly maxCuratedFileSizeBytes: 50000;
39
40
  };
40
41
  /** Search defaults */
41
- export declare const SEARCH_DEFAULTS: {
42
- readonly maxResults: 10;
43
- readonly minScore: 0.25;
42
+ declare const SEARCH_DEFAULTS: {
43
+ readonly maxResults: 10;
44
+ readonly minScore: 0.25;
44
45
  };
45
46
  /** Category validation regex */
46
- export declare const CATEGORY_PATTERN: RegExp;
47
+ declare const CATEGORY_PATTERN: RegExp;
47
48
  /** Default knowledge categories */
48
- export declare const DEFAULT_CATEGORIES: readonly ["decisions", "patterns", "troubleshooting", "conventions", "architecture"];
49
+ declare const DEFAULT_CATEGORIES: readonly ["decisions", "patterns", "troubleshooting", "conventions", "architecture"];
50
+ //#endregion
51
+ export { CATEGORY_PATTERN, CHUNK_SIZES, DEFAULT_CATEGORIES, EMBEDDING_DEFAULTS, FILE_LIMITS, SEARCH_DEFAULTS, STORE_DEFAULTS };
49
52
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1,2 @@
1
- const e={markdown:{max:1500,min:100},code:{max:2e3,min:50},config:{max:3e3,min:50},default:{max:1500,min:100,overlap:200}},t={model:"mixedbread-ai/mxbai-embed-large-v1",dimensions:1024},o={backend:"lancedb",path:".kb-data",tableName:"knowledge"},a={maxFileSizeBytes:1e6,maxCuratedFileSizeBytes:5e4},n={maxResults:10,minScore:.25},s=/^[a-z][a-z0-9-]*$/,c=["decisions","patterns","troubleshooting","conventions","architecture"];export{s as CATEGORY_PATTERN,e as CHUNK_SIZES,c as DEFAULT_CATEGORIES,t as EMBEDDING_DEFAULTS,a as FILE_LIMITS,n as SEARCH_DEFAULTS,o as STORE_DEFAULTS};
1
+ const e={markdown:{max:1500,min:100},code:{max:2e3,min:50},config:{max:3e3,min:50},default:{max:1500,min:100,overlap:200}},t={model:`mixedbread-ai/mxbai-embed-large-v1`,dimensions:1024},n={backend:`lancedb`,path:`.kb-data`,tableName:`knowledge`},r={maxFileSizeBytes:1e6,maxCuratedFileSizeBytes:5e4},i={maxResults:10,minScore:.25},a=/^[a-z][a-z0-9-]*$/,o=[`decisions`,`patterns`,`troubleshooting`,`conventions`,`architecture`];export{a as CATEGORY_PATTERN,e as CHUNK_SIZES,o as DEFAULT_CATEGORIES,t as EMBEDDING_DEFAULTS,r as FILE_LIMITS,i as SEARCH_DEFAULTS,n as STORE_DEFAULTS};
2
+ //# sourceMappingURL=constants.js.map
@@ -1,13 +1,14 @@
1
- /**
2
- * Detects content type from file path and extension.
3
- */
4
- import type { ContentType, SourceType } from './types.js';
1
+ import { ContentType, SourceType } from "./types.js";
2
+
3
+ //#region packages/core/src/content-detector.d.ts
5
4
  /**
6
5
  * Detect the content type of a file based on its path.
7
6
  */
8
- export declare function detectContentType(filePath: string): ContentType;
7
+ declare function detectContentType(filePath: string): ContentType;
9
8
  /** Derive the coarse SourceType from a ContentType. */
10
- export declare function contentTypeToSourceType(ct: ContentType): SourceType;
9
+ declare function contentTypeToSourceType(ct: ContentType): SourceType;
11
10
  /** Get all ContentTypes that belong to a given SourceType. */
12
- export declare function sourceTypeContentTypes(st: SourceType): ContentType[];
11
+ declare function sourceTypeContentTypes(st: SourceType): ContentType[];
12
+ //#endregion
13
+ export { contentTypeToSourceType, detectContentType, sourceTypeContentTypes };
13
14
  //# sourceMappingURL=content-detector.d.ts.map
@@ -1 +1,2 @@
1
- import{basename as r,extname as p}from"node:path";const n={".ts":"code-typescript",".tsx":"code-typescript",".mts":"code-typescript",".cts":"code-typescript",".js":"code-javascript",".jsx":"code-javascript",".mjs":"code-javascript",".cjs":"code-javascript",".py":"code-python",".json":"config-json",".yaml":"config-yaml",".yml":"config-yaml",".toml":"config-toml",".env":"config-env",".md":"markdown",".mdx":"markdown"},i=[/\.test\.[jt]sx?$/,/\.spec\.[jt]sx?$/,/(^|\/)__tests__\//,/(^|\/)test\//,/(^|\/)tests\//,/(^|\/)spec\//,/(^|\/)fixtures\//],d=[/\.stack\.[jt]s$/,/(^|\/)stacks\//,/(^|\/)constructs\//,/cdk\.json$/];function m(e){const t=p(e).toLowerCase(),s=r(e).toLowerCase();return e.includes("curated/")?"curated-knowledge":i.some(o=>o.test(e))?"test-code":d.some(o=>o.test(e))?"cdk-stack":t in n?n[t]:s.startsWith(".env")?"config-env":[".go",".rs",".java",".rb",".php",".sh",".ps1",".sql",".graphql",".proto",".css",".scss",".less",".html",".htm",".vue",".svelte",".astro",".hbs",".ejs",".svg"].includes(t)?"code-other":"unknown"}const c={"code-typescript":"source","code-javascript":"source","code-python":"source","code-other":"source","cdk-stack":"source","test-code":"test",markdown:"documentation",documentation:"documentation","curated-knowledge":"documentation","produced-knowledge":"documentation","config-json":"config","config-yaml":"config","config-toml":"config","config-env":"config",unknown:"source"};function y(e){return c[e]??"source"}function T(e){return Object.entries(c).filter(([,t])=>t===e).map(([t])=>t)}export{y as contentTypeToSourceType,m as detectContentType,T as sourceTypeContentTypes};
1
+ import{basename as e,extname as t}from"node:path";const n={".ts":`code-typescript`,".tsx":`code-typescript`,".mts":`code-typescript`,".cts":`code-typescript`,".js":`code-javascript`,".jsx":`code-javascript`,".mjs":`code-javascript`,".cjs":`code-javascript`,".py":`code-python`,".json":`config-json`,".yaml":`config-yaml`,".yml":`config-yaml`,".toml":`config-toml`,".env":`config-env`,".md":`markdown`,".mdx":`markdown`},r=[/\.test\.[jt]sx?$/,/\.spec\.[jt]sx?$/,/(^|\/)__tests__\//,/(^|\/)test\//,/(^|\/)tests\//,/(^|\/)spec\//,/(^|\/)fixtures\//],i=[/\.stack\.[jt]s$/,/(^|\/)stacks\//,/(^|\/)constructs\//,/cdk\.json$/];function a(a){let o=t(a).toLowerCase(),s=e(a).toLowerCase();return a.includes(`curated/`)?`curated-knowledge`:r.some(e=>e.test(a))?`test-code`:i.some(e=>e.test(a))?`cdk-stack`:o in n?n[o]:s.startsWith(`.env`)?`config-env`:[`.go`,`.rs`,`.java`,`.rb`,`.php`,`.sh`,`.ps1`,`.sql`,`.graphql`,`.proto`,`.css`,`.scss`,`.less`,`.html`,`.htm`,`.vue`,`.svelte`,`.astro`,`.hbs`,`.ejs`,`.svg`].includes(o)?`code-other`:`unknown`}const o={"code-typescript":`source`,"code-javascript":`source`,"code-python":`source`,"code-other":`source`,"cdk-stack":`source`,"test-code":`test`,markdown:`documentation`,documentation:`documentation`,"curated-knowledge":`documentation`,"produced-knowledge":`documentation`,"config-json":`config`,"config-yaml":`config`,"config-toml":`config`,"config-env":`config`,unknown:`source`};function s(e){return o[e]??`source`}function c(e){return Object.entries(o).filter(([,t])=>t===e).map(([e])=>e)}export{s as contentTypeToSourceType,a as detectContentType,c as sourceTypeContentTypes};
2
+ //# sourceMappingURL=content-detector.js.map
@@ -1,18 +1,21 @@
1
- export declare class KBError extends Error {
2
- readonly code: string;
3
- readonly cause?: unknown | undefined;
4
- constructor(message: string, code: string, cause?: unknown | undefined);
1
+ //#region packages/core/src/errors.d.ts
2
+ declare class KBError extends Error {
3
+ readonly code: string;
4
+ readonly cause?: unknown | undefined;
5
+ constructor(message: string, code: string, cause?: unknown | undefined);
5
6
  }
6
- export declare class EmbeddingError extends KBError {
7
- constructor(message: string, cause?: unknown);
7
+ declare class EmbeddingError extends KBError {
8
+ constructor(message: string, cause?: unknown);
8
9
  }
9
- export declare class StoreError extends KBError {
10
- constructor(message: string, cause?: unknown);
10
+ declare class StoreError extends KBError {
11
+ constructor(message: string, cause?: unknown);
11
12
  }
12
- export declare class IndexError extends KBError {
13
- constructor(message: string, cause?: unknown);
13
+ declare class IndexError extends KBError {
14
+ constructor(message: string, cause?: unknown);
14
15
  }
15
- export declare class ConfigError extends KBError {
16
- constructor(message: string, cause?: unknown);
16
+ declare class ConfigError extends KBError {
17
+ constructor(message: string, cause?: unknown);
17
18
  }
19
+ //#endregion
20
+ export { ConfigError, EmbeddingError, IndexError, KBError, StoreError };
18
21
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1,2 @@
1
- class s extends Error{constructor(r,e,t){super(r);this.code=e;this.cause=t;this.name="KBError"}}class E extends s{constructor(n,r){super(n,"EMBEDDING_ERROR",r),this.name="EmbeddingError"}}class c extends s{constructor(n,r){super(n,"STORE_ERROR",r),this.name="StoreError"}}class u extends s{constructor(n,r){super(n,"INDEX_ERROR",r),this.name="IndexError"}}class i extends s{constructor(n,r){super(n,"CONFIG_ERROR",r),this.name="ConfigError"}}export{i as ConfigError,E as EmbeddingError,u as IndexError,s as KBError,c as StoreError};
1
+ var e=class extends Error{constructor(e,t,n){super(e),this.code=t,this.cause=n,this.name=`KBError`}},t=class extends e{constructor(e,t){super(e,`EMBEDDING_ERROR`,t),this.name=`EmbeddingError`}},n=class extends e{constructor(e,t){super(e,`STORE_ERROR`,t),this.name=`StoreError`}},r=class extends e{constructor(e,t){super(e,`INDEX_ERROR`,t),this.name=`IndexError`}},i=class extends e{constructor(e,t){super(e,`CONFIG_ERROR`,t),this.name=`ConfigError`}};export{i as ConfigError,t as EmbeddingError,r as IndexError,e as KBError,n as StoreError};
2
+ //# sourceMappingURL=errors.js.map
@@ -1,6 +1,6 @@
1
- export * from './constants.js';
2
- export { contentTypeToSourceType, detectContentType, sourceTypeContentTypes, } from './content-detector.js';
3
- export * from './errors.js';
4
- export * from './logger.js';
5
- export * from './types.js';
6
- //# sourceMappingURL=index.d.ts.map
1
+ import { CATEGORY_PATTERN, CHUNK_SIZES, DEFAULT_CATEGORIES, EMBEDDING_DEFAULTS, FILE_LIMITS, SEARCH_DEFAULTS, STORE_DEFAULTS } from "./constants.js";
2
+ import { CONTENT_TYPES, ChunkMetadata, ContentType, IndexStats, KBConfig, KNOWLEDGE_ORIGINS, KnowledgeOrigin, KnowledgeRecord, RawChunk, SOURCE_TYPES, SearchResult, SourceType } from "./types.js";
3
+ import { contentTypeToSourceType, detectContentType, sourceTypeContentTypes } from "./content-detector.js";
4
+ import { ConfigError, EmbeddingError, IndexError, KBError, StoreError } from "./errors.js";
5
+ import { LogLevel, createLogger, getLogLevel, serializeError, setLogLevel } from "./logger.js";
6
+ export { CATEGORY_PATTERN, CHUNK_SIZES, CONTENT_TYPES, ChunkMetadata, ConfigError, ContentType, DEFAULT_CATEGORIES, EMBEDDING_DEFAULTS, EmbeddingError, FILE_LIMITS, IndexError, IndexStats, KBConfig, KBError, KNOWLEDGE_ORIGINS, KnowledgeOrigin, KnowledgeRecord, LogLevel, RawChunk, SEARCH_DEFAULTS, SOURCE_TYPES, STORE_DEFAULTS, SearchResult, SourceType, StoreError, contentTypeToSourceType, createLogger, detectContentType, getLogLevel, serializeError, setLogLevel, sourceTypeContentTypes };
@@ -1 +1 @@
1
- export*from"./constants.js";import{contentTypeToSourceType as r,detectContentType as p,sourceTypeContentTypes as n}from"./content-detector.js";export*from"./errors.js";export*from"./logger.js";export*from"./types.js";export{r as contentTypeToSourceType,p as detectContentType,n as sourceTypeContentTypes};
1
+ import{CATEGORY_PATTERN as e,CHUNK_SIZES as t,DEFAULT_CATEGORIES as n,EMBEDDING_DEFAULTS as r,FILE_LIMITS as i,SEARCH_DEFAULTS as a,STORE_DEFAULTS as o}from"./constants.js";import{contentTypeToSourceType as s,detectContentType as c,sourceTypeContentTypes as l}from"./content-detector.js";import{ConfigError as u,EmbeddingError as d,IndexError as f,KBError as p,StoreError as m}from"./errors.js";import{createLogger as h,getLogLevel as g,serializeError as _,setLogLevel as v}from"./logger.js";import{CONTENT_TYPES as y,KNOWLEDGE_ORIGINS as b,SOURCE_TYPES as x}from"./types.js";export{e as CATEGORY_PATTERN,t as CHUNK_SIZES,y as CONTENT_TYPES,u as ConfigError,n as DEFAULT_CATEGORIES,r as EMBEDDING_DEFAULTS,d as EmbeddingError,i as FILE_LIMITS,f as IndexError,p as KBError,b as KNOWLEDGE_ORIGINS,a as SEARCH_DEFAULTS,x as SOURCE_TYPES,o as STORE_DEFAULTS,m as StoreError,s as contentTypeToSourceType,h as createLogger,c as detectContentType,g as getLogLevel,_ as serializeError,v as setLogLevel,l as sourceTypeContentTypes};
@@ -1,9 +1,18 @@
1
- export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
2
- export declare function setLogLevel(level: LogLevel): void;
3
- export declare function createLogger(component: string): {
4
- debug: (msg: string, data?: Record<string, unknown>) => void;
5
- info: (msg: string, data?: Record<string, unknown>) => void;
6
- warn: (msg: string, data?: Record<string, unknown>) => void;
7
- error: (msg: string, data?: Record<string, unknown>) => void;
1
+ //#region packages/core/src/logger.d.ts
2
+ type LogLevel = 'debug' | 'info' | 'warn' | 'error';
3
+ declare function setLogLevel(level: LogLevel): void;
4
+ declare function getLogLevel(): LogLevel;
5
+ /**
6
+ * Serialize an unknown error into a structured record suitable for JSON logging.
7
+ * Includes stack traces only at debug level to keep production logs concise.
8
+ */
9
+ declare function serializeError(err: unknown): Record<string, unknown>;
10
+ declare function createLogger(component: string): {
11
+ debug: (msg: string, data?: Record<string, unknown>) => void;
12
+ info: (msg: string, data?: Record<string, unknown>) => void;
13
+ warn: (msg: string, data?: Record<string, unknown>) => void;
14
+ error: (msg: string, data?: Record<string, unknown>) => void;
8
15
  };
16
+ //#endregion
17
+ export { LogLevel, createLogger, getLogLevel, serializeError, setLogLevel };
9
18
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1,2 @@
1
- const t={debug:0,info:1,warn:2,error:3};let g=process.env.KB_LOG_LEVEL??"info";function s(o){g=o}function u(o){function e(n,r,i){if(t[n]<t[g])return;const L={ts:new Date().toISOString(),level:n,component:o,msg:r,...i};console.error(JSON.stringify(L))}return{debug:(n,r)=>e("debug",n,r),info:(n,r)=>e("info",n,r),warn:(n,r)=>e("warn",n,r),error:(n,r)=>e("error",n,r)}}export{u as createLogger,s as setLogLevel};
1
+ const e={debug:0,info:1,warn:2,error:3};let t=process.env.KB_LOG_LEVEL??`info`;function n(e){t=e}function r(){return t}function i(e){if(e instanceof Error){let n={error:e.message};return t===`debug`&&e.stack&&(n.stack=e.stack),n}return{error:String(e)}}function a(n){function r(r,i,a){if(e[r]<e[t])return;let o={ts:new Date().toISOString(),level:r,component:n,msg:i,...a};console.error(JSON.stringify(o))}return{debug:(e,t)=>r(`debug`,e,t),info:(e,t)=>r(`info`,e,t),warn:(e,t)=>r(`warn`,e,t),error:(e,t)=>r(`error`,e,t)}}export{a as createLogger,r as getLogLevel,i as serializeError,n as setLogLevel};
2
+ //# sourceMappingURL=logger.js.map
@@ -1,110 +1,126 @@
1
+ //#region packages/core/src/types.d.ts
1
2
  /**
2
3
  * Core types for the MCP Knowledge Base system.
3
4
  */
4
5
  /** The origin of a knowledge record — how it was created */
5
- export type KnowledgeOrigin = 'indexed' | 'curated' | 'produced';
6
+ declare const KNOWLEDGE_ORIGINS: readonly ["indexed", "curated", "produced"];
7
+ type KnowledgeOrigin = (typeof KNOWLEDGE_ORIGINS)[number];
6
8
  /** Coarse source classification derived from ContentType */
7
- export type SourceType = 'source' | 'documentation' | 'test' | 'config' | 'generated';
9
+ declare const SOURCE_TYPES: readonly ["source", "documentation", "test", "config", "generated"];
10
+ type SourceType = (typeof SOURCE_TYPES)[number];
8
11
  /** Content type classification */
9
- export type ContentType = 'documentation' | 'code-typescript' | 'code-javascript' | 'code-python' | 'code-other' | 'config-json' | 'config-yaml' | 'config-toml' | 'config-env' | 'test-code' | 'cdk-stack' | 'markdown' | 'curated-knowledge' | 'produced-knowledge' | 'unknown';
12
+ declare const CONTENT_TYPES: readonly ["documentation", "code-typescript", "code-javascript", "code-python", "code-other", "config-json", "config-yaml", "config-toml", "config-env", "test-code", "cdk-stack", "markdown", "curated-knowledge", "produced-knowledge", "unknown"];
13
+ type ContentType = (typeof CONTENT_TYPES)[number];
10
14
  /** A single knowledge record stored in the vector DB */
11
- export interface KnowledgeRecord {
12
- /** Unique identifier (deterministic hash of source + chunk index) */
13
- id: string;
14
- /** The text content of this chunk */
15
- content: string;
16
- /** Source file path relative to workspace root */
17
- sourcePath: string;
18
- /** Content type classification */
19
- contentType: ContentType;
20
- /** Heading path for markdown (e.g., "## Setup > ### Prerequisites") */
21
- headingPath?: string;
22
- /** Zero-based chunk index within the source file */
23
- chunkIndex: number;
24
- /** Total number of chunks from this source file */
25
- totalChunks: number;
26
- /** Start line in source file (1-based) */
27
- startLine: number;
28
- /** End line in source file (1-based) */
29
- endLine: number;
30
- /** File hash for incremental indexing */
31
- fileHash: string;
32
- /** ISO timestamp when this record was created/updated */
33
- indexedAt: string;
34
- /** How this record was created */
35
- origin: KnowledgeOrigin;
36
- /** User-defined tags for categorization */
37
- tags: string[];
38
- /** Category for curated/produced knowledge */
39
- category?: string;
40
- /** Version number for curated knowledge updates */
41
- version: number;
15
+ interface KnowledgeRecord {
16
+ /** Unique identifier (deterministic hash of source + chunk index) */
17
+ id: string;
18
+ /** The text content of this chunk */
19
+ content: string;
20
+ /** Source file path relative to workspace root */
21
+ sourcePath: string;
22
+ /** Content type classification */
23
+ contentType: ContentType;
24
+ /** Heading path for markdown (e.g., "## Setup > ### Prerequisites") */
25
+ headingPath?: string;
26
+ /** Zero-based chunk index within the source file */
27
+ chunkIndex: number;
28
+ /** Total number of chunks from this source file */
29
+ totalChunks: number;
30
+ /** Start line in source file (1-based) */
31
+ startLine: number;
32
+ /** End line in source file (1-based) */
33
+ endLine: number;
34
+ /** File hash for incremental indexing */
35
+ fileHash: string;
36
+ /** ISO timestamp when this record was created/updated */
37
+ indexedAt: string;
38
+ /** How this record was created */
39
+ origin: KnowledgeOrigin;
40
+ /** User-defined tags for categorization */
41
+ tags: string[];
42
+ /** Category for curated/produced knowledge */
43
+ category?: string;
44
+ /** Version number for curated knowledge updates */
45
+ version: number;
42
46
  }
43
47
  /** A raw chunk produced by a chunker before embedding */
44
- export interface RawChunk {
45
- /** The text content */
46
- text: string;
47
- /** Source file path */
48
- sourcePath: string;
49
- /** Content type */
50
- contentType: ContentType;
51
- /** Heading path (markdown only) */
52
- headingPath?: string;
53
- /** Chunk index */
54
- chunkIndex: number;
55
- /** Total chunks from this file */
56
- totalChunks: number;
57
- /** Start line (1-based) */
58
- startLine: number;
59
- /** End line (1-based) */
60
- endLine: number;
48
+ interface RawChunk {
49
+ /** The text content */
50
+ text: string;
51
+ /** Source file path */
52
+ sourcePath: string;
53
+ /** Content type */
54
+ contentType: ContentType;
55
+ /** Heading path (markdown only) */
56
+ headingPath?: string;
57
+ /** Chunk index */
58
+ chunkIndex: number;
59
+ /** Total chunks from this file */
60
+ totalChunks: number;
61
+ /** Start line (1-based) */
62
+ startLine: number;
63
+ /** End line (1-based) */
64
+ endLine: number;
61
65
  }
62
66
  /** Metadata passed to a chunker */
63
- export interface ChunkMetadata {
64
- /** File path relative to workspace root */
65
- sourcePath: string;
66
- /** Detected content type */
67
- contentType: ContentType;
67
+ interface ChunkMetadata {
68
+ /** File path relative to workspace root */
69
+ sourcePath: string;
70
+ /** Detected content type */
71
+ contentType: ContentType;
68
72
  }
69
73
  /** Search result returned by the store */
70
- export interface SearchResult {
71
- /** The matching knowledge record */
72
- record: KnowledgeRecord;
73
- /** Similarity score (0-1, higher = more similar) */
74
- score: number;
74
+ interface SearchResult {
75
+ /** The matching knowledge record */
76
+ record: KnowledgeRecord;
77
+ /** Similarity score (0-1, higher = more similar) */
78
+ score: number;
75
79
  }
76
80
  /** Configuration loaded from kb.config.json */
77
- export interface KBConfig {
78
- sources: Array<{
79
- path: string;
80
- excludePatterns: string[];
81
- }>;
82
- indexing: {
83
- chunkSize: number;
84
- chunkOverlap: number;
85
- minChunkSize: number;
86
- /** Max files processed concurrently. Defaults to half of available CPU cores. */
87
- concurrency?: number;
88
- };
89
- embedding: {
90
- model: string;
91
- dimensions: number;
92
- };
93
- store: {
94
- backend: string;
95
- path: string;
96
- };
97
- curated: {
98
- path: string;
99
- };
81
+ interface KBConfig {
82
+ /** MCP server name. Defaults to 'kb'. */
83
+ serverName?: string;
84
+ sources: Array<{
85
+ path: string;
86
+ excludePatterns: string[];
87
+ }>;
88
+ indexing: {
89
+ chunkSize: number;
90
+ chunkOverlap: number;
91
+ minChunkSize: number; /** Max files processed concurrently. Defaults to half of available CPU cores. */
92
+ concurrency?: number;
93
+ };
94
+ embedding: {
95
+ model: string;
96
+ dimensions: number;
97
+ };
98
+ store: {
99
+ backend: string;
100
+ path: string;
101
+ };
102
+ curated: {
103
+ path: string;
104
+ };
105
+ /** Enterprise RAG bridge configuration (optional) */
106
+ er?: {
107
+ /** Whether ER integration is enabled */enabled: boolean; /** Base URL of the ER API (e.g., https://xxx.execute-api.region.amazonaws.com/prod) */
108
+ baseUrl: string; /** Request timeout in milliseconds. Defaults to 5000. */
109
+ timeoutMs?: number; /** Cache TTL in milliseconds. Defaults to 21600000 (6 hours). */
110
+ cacheTtlMs?: number; /** Maximum cache entries. Defaults to 100. */
111
+ cacheMaxEntries?: number; /** Vector similarity threshold below which ER fallback triggers. Defaults to 0.45. */
112
+ fallbackThreshold?: number;
113
+ };
100
114
  }
101
115
  /** Index statistics */
102
- export interface IndexStats {
103
- totalRecords: number;
104
- totalFiles: number;
105
- contentTypeBreakdown: Record<string, number>;
106
- lastIndexedAt: string | null;
107
- storeBackend: string;
108
- embeddingModel: string;
116
+ interface IndexStats {
117
+ totalRecords: number;
118
+ totalFiles: number;
119
+ contentTypeBreakdown: Record<string, number>;
120
+ lastIndexedAt: string | null;
121
+ storeBackend: string;
122
+ embeddingModel: string;
109
123
  }
124
+ //#endregion
125
+ export { CONTENT_TYPES, ChunkMetadata, ContentType, IndexStats, KBConfig, KNOWLEDGE_ORIGINS, KnowledgeOrigin, KnowledgeRecord, RawChunk, SOURCE_TYPES, SearchResult, SourceType };
110
126
  //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,2 @@
1
+ const e=[`indexed`,`curated`,`produced`],t=[`source`,`documentation`,`test`,`config`,`generated`],n=[`documentation`,`code-typescript`,`code-javascript`,`code-python`,`code-other`,`config-json`,`config-yaml`,`config-toml`,`config-env`,`test-code`,`cdk-stack`,`markdown`,`curated-knowledge`,`produced-knowledge`,`unknown`];export{n as CONTENT_TYPES,e as KNOWLEDGE_ORIGINS,t as SOURCE_TYPES};
2
+ //# sourceMappingURL=types.js.map
@@ -1,24 +1,27 @@
1
+ //#region packages/embeddings/src/embedder.interface.d.ts
1
2
  /**
2
3
  * Embedding abstraction — allows swapping embedding models.
3
4
  */
4
- export interface IEmbedder {
5
- /** Generate an embedding vector for a single text string (used for documents/passages) */
6
- embed(text: string): Promise<Float32Array>;
7
- /**
8
- * Generate an embedding vector for a search query.
9
- * Some models (e.g., BGE) use a query prefix for asymmetric retrieval.
10
- * Falls back to embed() if the model doesn't need query prefixing.
11
- */
12
- embedQuery(query: string): Promise<Float32Array>;
13
- /** Generate embeddings for multiple text strings (batched, for documents/passages) */
14
- embedBatch(texts: string[]): Promise<Float32Array[]>;
15
- /** The dimensionality of the embedding vectors */
16
- readonly dimensions: number;
17
- /** The model identifier */
18
- readonly modelId: string;
19
- /** Initialize the model (download if needed, load into memory) */
20
- initialize(): Promise<void>;
21
- /** Release model resources */
22
- shutdown?(): Promise<void>;
5
+ interface IEmbedder {
6
+ /** Generate an embedding vector for a single text string (used for documents/passages) */
7
+ embed(text: string): Promise<Float32Array>;
8
+ /**
9
+ * Generate an embedding vector for a search query.
10
+ * Some models (e.g., BGE) use a query prefix for asymmetric retrieval.
11
+ * Falls back to embed() if the model doesn't need query prefixing.
12
+ */
13
+ embedQuery(query: string): Promise<Float32Array>;
14
+ /** Generate embeddings for multiple text strings (batched, for documents/passages) */
15
+ embedBatch(texts: string[]): Promise<Float32Array[]>;
16
+ /** The dimensionality of the embedding vectors */
17
+ readonly dimensions: number;
18
+ /** The model identifier */
19
+ readonly modelId: string;
20
+ /** Initialize the model (download if needed, load into memory) */
21
+ initialize(): Promise<void>;
22
+ /** Release model resources */
23
+ shutdown?(): Promise<void>;
23
24
  }
25
+ //#endregion
26
+ export { IEmbedder };
24
27
  //# sourceMappingURL=embedder.interface.d.ts.map
@@ -0,0 +1 @@
1
+ export{};
@@ -1,3 +1,3 @@
1
- export type { IEmbedder } from './embedder.interface.js';
2
- export { OnnxEmbedder } from './onnx-embedder.js';
3
- //# sourceMappingURL=index.d.ts.map
1
+ import { IEmbedder } from "./embedder.interface.js";
2
+ import { OnnxEmbedder } from "./onnx-embedder.js";
3
+ export { type IEmbedder, OnnxEmbedder };
@@ -1 +1 @@
1
- import{OnnxEmbedder as d}from"./onnx-embedder.js";export{d as OnnxEmbedder};
1
+ import{OnnxEmbedder as e}from"./onnx-embedder.js";export{e as OnnxEmbedder};
@@ -1,24 +1,23 @@
1
- /**
2
- * ONNX-based embedder using @huggingface/transformers.
3
- * Uses mixedbread-ai/mxbai-embed-large-v1 (1024 dimensions, ~1.3GB ONNX model).
4
- * BGE-derived models use query prefixing for asymmetric retrieval (short query → long document).
5
- */
6
- import type { IEmbedder } from './embedder.interface.js';
7
- export declare class OnnxEmbedder implements IEmbedder {
8
- private pipe;
9
- readonly dimensions: number;
10
- readonly modelId: string;
11
- private readonly queryPrefix;
12
- constructor(options?: {
13
- model?: string;
14
- dimensions?: number;
15
- queryPrefix?: string;
16
- });
17
- private detectQueryPrefix;
18
- initialize(): Promise<void>;
19
- shutdown(): Promise<void>;
20
- embed(text: string): Promise<Float32Array>;
21
- embedQuery(query: string): Promise<Float32Array>;
22
- embedBatch(texts: string[]): Promise<Float32Array[]>;
1
+ import { IEmbedder } from "./embedder.interface.js";
2
+
3
+ //#region packages/embeddings/src/onnx-embedder.d.ts
4
+ declare class OnnxEmbedder implements IEmbedder {
5
+ private pipe;
6
+ readonly dimensions: number;
7
+ readonly modelId: string;
8
+ private readonly queryPrefix;
9
+ constructor(options?: {
10
+ model?: string;
11
+ dimensions?: number;
12
+ queryPrefix?: string;
13
+ });
14
+ private detectQueryPrefix;
15
+ initialize(): Promise<void>;
16
+ shutdown(): Promise<void>;
17
+ embed(text: string): Promise<Float32Array>;
18
+ embedQuery(query: string): Promise<Float32Array>;
19
+ embedBatch(texts: string[]): Promise<Float32Array[]>;
23
20
  }
21
+ //#endregion
22
+ export { OnnxEmbedder };
24
23
  //# sourceMappingURL=onnx-embedder.d.ts.map
@@ -1 +1,2 @@
1
- import{homedir as m}from"node:os";import{join as u}from"node:path";import{env as p,pipeline as c}from"@huggingface/transformers";import{EMBEDDING_DEFAULTS as l}from"../../core/dist/index.js";p.cacheDir=u(m(),".cache","huggingface","transformers-js");class w{pipe=null;dimensions;modelId;queryPrefix;constructor(e){this.modelId=e?.model??l.model,this.dimensions=e?.dimensions??l.dimensions,this.queryPrefix=e?.queryPrefix??this.detectQueryPrefix(this.modelId)}detectQueryPrefix(e){const i=e.toLowerCase();return i.includes("bge")||i.includes("mxbai-embed")?"Represent this sentence for searching relevant passages: ":i.includes("/e5-")||i.includes("multilingual-e5")?"query: ":""}async initialize(){if(!this.pipe)try{this.pipe=await c("feature-extraction",this.modelId,{dtype:"fp32"})}catch(e){throw new Error(`Failed to initialize embedding model "${this.modelId}": ${e.message}`)}}async shutdown(){this.pipe=null}async embed(e){this.pipe||await this.initialize();const i=await this.pipe?.(e,{pooling:"mean",normalize:!0});if(!i)throw new Error("Embedding pipeline returned no output");return new Float32Array(i.data)}async embedQuery(e){return this.embed(this.queryPrefix+e)}async embedBatch(e){if(e.length===0)return[];this.pipe||await this.initialize();const i=[],o=32;for(let r=0;r<e.length;r+=o){const t=e.slice(r,r+o),n=await this.pipe?.(t,{pooling:"mean",normalize:!0});if(!n)throw new Error("Embedding pipeline returned no output");if(t.length===1)i.push(new Float32Array(n.data));else for(let s=0;s<t.length;s++){const a=s*this.dimensions,d=n.data.slice(a,a+this.dimensions);i.push(new Float32Array(d))}}return i}}export{w as OnnxEmbedder};
1
+ import{homedir as e}from"node:os";import{join as t}from"node:path";import{env as n,pipeline as r}from"@huggingface/transformers";import{EMBEDDING_DEFAULTS as i}from"../../core/dist/index.js";n.cacheDir=t(e(),`.cache`,`huggingface`,`transformers-js`);var a=class{pipe=null;dimensions;modelId;queryPrefix;constructor(e){this.modelId=e?.model??i.model,this.dimensions=e?.dimensions??i.dimensions,this.queryPrefix=e?.queryPrefix??this.detectQueryPrefix(this.modelId)}detectQueryPrefix(e){let t=e.toLowerCase();return t.includes(`bge`)||t.includes(`mxbai-embed`)?`Represent this sentence for searching relevant passages: `:t.includes(`/e5-`)||t.includes(`multilingual-e5`)?`query: `:``}async initialize(){if(!this.pipe)try{this.pipe=await r(`feature-extraction`,this.modelId,{dtype:`fp32`})}catch(e){throw Error(`Failed to initialize embedding model "${this.modelId}": ${e.message}`)}}async shutdown(){this.pipe=null}async embed(e){this.pipe||await this.initialize();let t=await this.pipe?.(e,{pooling:`mean`,normalize:!0});if(!t)throw Error(`Embedding pipeline returned no output`);return new Float32Array(t.data)}async embedQuery(e){return this.embed(this.queryPrefix+e)}async embedBatch(e){if(e.length===0)return[];this.pipe||await this.initialize();let t=[];for(let n=0;n<e.length;n+=32){let r=e.slice(n,n+32),i=await this.pipe?.(r,{pooling:`mean`,normalize:!0});if(!i)throw Error(`Embedding pipeline returned no output`);if(r.length===1)t.push(new Float32Array(i.data));else for(let e=0;e<r.length;e++){let n=e*this.dimensions,r=i.data.slice(n,n+this.dimensions);t.push(new Float32Array(r))}}return t}};export{a as OnnxEmbedder};
2
+ //# sourceMappingURL=onnx-embedder.js.map
@@ -0,0 +1,29 @@
1
+ import { ERSearchResult } from "./types.js";
2
+
3
+ //#region packages/enterprise-bridge/src/cache.d.ts
4
+ declare class ERCache {
5
+ private readonly cache;
6
+ private readonly maxEntries;
7
+ private readonly defaultTtl;
8
+ constructor(options?: {
9
+ maxEntries?: number;
10
+ defaultTtl?: number;
11
+ });
12
+ /** Normalize query for cache key: lowercase, trim, collapse whitespace */
13
+ static normalizeKey(query: string): string;
14
+ get(query: string): ERSearchResult[] | undefined;
15
+ set(query: string, results: ERSearchResult[], ttl?: number): void;
16
+ /** Invalidate entries matching a topic (exact normalized key match) */
17
+ invalidate(query: string): boolean;
18
+ clear(): void;
19
+ get size(): number;
20
+ /** Get cache stats */
21
+ stats(): {
22
+ size: number;
23
+ maxEntries: number;
24
+ defaultTtlMs: number;
25
+ };
26
+ }
27
+ //#endregion
28
+ export { ERCache };
29
+ //# sourceMappingURL=cache.d.ts.map