@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
@@ -1,30 +1,32 @@
1
- export interface WatchEvent {
2
- type: 'change' | 'rename';
3
- path: string;
4
- timestamp: string;
1
+ //#region packages/tools/src/watch.d.ts
2
+ interface WatchEvent {
3
+ type: 'change' | 'rename';
4
+ path: string;
5
+ timestamp: string;
5
6
  }
6
- export interface WatchOptions {
7
- /** Directory to watch */
8
- path: string;
9
- /** Glob patterns to exclude */
10
- exclude?: string[];
11
- /** Max events to buffer (default: 100) */
12
- maxEvents?: number;
7
+ interface WatchOptions {
8
+ /** Directory to watch */
9
+ path: string;
10
+ /** Glob patterns to exclude */
11
+ exclude?: string[];
12
+ /** Max events to buffer (default: 100) */
13
+ maxEvents?: number;
13
14
  }
14
- export interface WatchHandle {
15
- id: string;
16
- path: string;
17
- events: WatchEvent[];
18
- status: 'watching' | 'stopped';
19
- stop: () => void;
20
- getEvents: (since?: string) => WatchEvent[];
15
+ interface WatchHandle {
16
+ id: string;
17
+ path: string;
18
+ events: WatchEvent[];
19
+ status: 'watching' | 'stopped';
20
+ stop: () => void;
21
+ getEvents: (since?: string) => WatchEvent[];
21
22
  }
22
- export declare function watchStart(options: WatchOptions): WatchHandle;
23
- export declare function watchStop(id: string): boolean;
24
- export declare function watchList(): Array<{
25
- id: string;
26
- path: string;
27
- status: string;
28
- eventCount: number;
23
+ declare function watchStart(options: WatchOptions): WatchHandle;
24
+ declare function watchStop(id: string): boolean;
25
+ declare function watchList(): Array<{
26
+ id: string;
27
+ path: string;
28
+ status: string;
29
+ eventCount: number;
29
30
  }>;
30
- //# sourceMappingURL=watch.d.ts.map
31
+ //#endregion
32
+ export { WatchEvent, WatchHandle, WatchOptions, watchList, watchStart, watchStop };
@@ -1 +1 @@
1
- import{watch as g}from"node:fs";const r=new Map,m=["node_modules",".git","dist",".turbo",".kb-data","cdk.out"];function v(t){const{path:s,maxEvents:p=100}=t,d=t.exclude??m,c=`watch-${Date.now()}`,e=[],l=n=>d.some(a=>o(n).includes(o(a))),u=g(s,{recursive:!0},(n,a)=>{if(a==null)return;const h=String(a);!h||l(h)||(e.push({type:n,path:o(h),timestamp:new Date().toISOString()}),e.length>p&&e.shift())}),i={id:c,path:s,events:e,status:"watching",stop:()=>{u.close(),i.status="stopped",r.delete(c)},getEvents:n=>n?e.filter(a=>a.timestamp>n):e};return r.set(c,{watcher:u,handle:i}),i}function w(t){const s=r.get(t);return s?(s.handle.stop(),!0):!1}function x(){return[...r.values()].map(t=>({id:t.handle.id,path:t.handle.path,status:t.handle.status,eventCount:t.handle.events.length}))}function o(t){return t.replace(/\\/g,"/")}export{x as watchList,v as watchStart,w as watchStop};
1
+ import{watch as e}from"node:fs";import{KB_PATHS as t}from"../../core/dist/index.js";const n=new Map,r=[`node_modules`,`.git`,`dist`,`.turbo`,t.data,`cdk.out`];function i(t){if(n.size>=20)throw Error(`Watcher limit reached (20). Stop existing watchers first.`);let{path:i,maxEvents:a=100}=t,o=t.exclude??r,c=`watch-${Date.now()}`,l=[],u=e=>o.some(t=>s(e).includes(s(t))),d=e(i,{recursive:!0},(e,t)=>{if(t==null)return;let n=String(t);!n||u(n)||(l.push({type:e,path:s(n),timestamp:new Date().toISOString()}),l.length>a&&l.shift())});d.on(`error`,()=>{f.status=`stopped`,n.delete(c);try{d.close()}catch{}});let f={id:c,path:i,events:l,status:`watching`,stop:()=>{d.close(),f.status=`stopped`,n.delete(c)},getEvents:e=>e?l.filter(t=>t.timestamp>e):l};return n.set(c,{watcher:d,handle:f}),f}function a(e){let t=n.get(e);return t?(t.handle.stop(),!0):!1}function o(){return[...n.values()].map(e=>({id:e.handle.id,path:e.handle.path,status:e.handle.status,eventCount:e.handle.events.length}))}function s(e){return e.replace(/\\/g,`/`)}export{o as watchList,i as watchStart,a as watchStop};
@@ -1,3 +1,4 @@
1
+ //#region packages/tools/src/web-fetch.d.ts
1
2
  /**
2
3
  * kb_web_fetch — Fetch a web page and convert to LLM-friendly format.
3
4
  *
@@ -5,41 +6,42 @@
5
6
  * extracted links, or heading outline. Strips scripts, styles,
6
7
  * and non-content elements for compact, token-efficient output.
7
8
  */
8
- export type WebFetchMode = 'markdown' | 'raw' | 'links' | 'outline';
9
- export interface WebFetchOptions {
10
- /** URL to fetch */
11
- url: string;
12
- /** Output mode */
13
- mode?: WebFetchMode;
14
- /** CSS selector to extract specific element (default: auto-detect main content) */
15
- selector?: string;
16
- /** Max characters in output — smart truncation at paragraph boundaries */
17
- maxLength?: number;
18
- /** Include page metadata header (title, description, URL) */
19
- includeMetadata?: boolean;
20
- /** Append extracted links list at the end */
21
- includeLinks?: boolean;
22
- /** Include image alt texts inline */
23
- includeImages?: boolean;
24
- /** Request timeout in milliseconds */
25
- timeout?: number;
9
+ type WebFetchMode = 'markdown' | 'raw' | 'links' | 'outline';
10
+ interface WebFetchOptions {
11
+ /** URL to fetch */
12
+ url: string;
13
+ /** Output mode */
14
+ mode?: WebFetchMode;
15
+ /** CSS selector to extract specific element (default: auto-detect main content) */
16
+ selector?: string;
17
+ /** Max characters in output — smart truncation at paragraph boundaries */
18
+ maxLength?: number;
19
+ /** Include page metadata header (title, description, URL) */
20
+ includeMetadata?: boolean;
21
+ /** Append extracted links list at the end */
22
+ includeLinks?: boolean;
23
+ /** Include image alt texts inline */
24
+ includeImages?: boolean;
25
+ /** Request timeout in milliseconds */
26
+ timeout?: number;
26
27
  }
27
- export interface WebFetchResult {
28
- /** The converted content */
29
- content: string;
30
- /** Page title */
31
- title: string;
32
- /** Page description (from meta) */
33
- description: string;
34
- /** Final URL after redirects */
35
- url: string;
36
- /** Content length before truncation */
37
- originalLength: number;
38
- /** Whether content was truncated */
39
- truncated: boolean;
28
+ interface WebFetchResult {
29
+ /** The converted content */
30
+ content: string;
31
+ /** Page title */
32
+ title: string;
33
+ /** Page description (from meta) */
34
+ description: string;
35
+ /** Final URL after redirects */
36
+ url: string;
37
+ /** Content length before truncation */
38
+ originalLength: number;
39
+ /** Whether content was truncated */
40
+ truncated: boolean;
40
41
  }
41
42
  /**
42
43
  * Fetch a web page and convert to an LLM-friendly format.
43
44
  */
44
- export declare function webFetch(options: WebFetchOptions): Promise<WebFetchResult>;
45
- //# sourceMappingURL=web-fetch.d.ts.map
45
+ declare function webFetch(options: WebFetchOptions): Promise<WebFetchResult>;
46
+ //#endregion
47
+ export { WebFetchMode, WebFetchOptions, WebFetchResult, webFetch };
@@ -1,14 +1,8 @@
1
- import N from"turndown";import{paragraphTruncate as W}from"./truncation.js";const _=15e3,C=15e3,H=["script","style","noscript","iframe","svg","nav","footer","header","aside","form","button","input","select","textarea",'[role="navigation"]','[role="banner"]','[role="contentinfo"]','[aria-hidden="true"]',".sidebar",".nav",".menu",".footer",".header",".ad",".advertisement",".cookie-banner",".popup",".modal"],I=["article",'[role="main"]',"main",".post-content",".article-content",".entry-content",".content","#content",".prose",".markdown-body",".documentation",".doc-content"];async function X(r){const{url:o,mode:e="markdown",selector:t,maxLength:c=_,includeMetadata:d=!0,includeLinks:p=!1,includeImages:y=!1,timeout:v=C}=r,g=new URL(o);if(g.protocol!=="http:"&&g.protocol!=="https:")throw new Error(`Unsupported protocol: ${g.protocol} \u2014 only http/https allowed`);const k=new AbortController,$=setTimeout(()=>k.abort(),v);let l;try{l=await fetch(o,{signal:k.signal,headers:{"User-Agent":"kb-web-fetch/1.0 (LLM context tool)",Accept:"text/html,application/xhtml+xml,text/plain"},redirect:"follow"})}finally{clearTimeout($)}if(!l.ok)throw new Error(`HTTP ${l.status}: ${l.statusText}`);const R=l.headers.get("content-type")??"",U=/text\/html|application\/xhtml\+xml/i.test(R),L=await l.text(),u=l.url;if(!U){let n=L;const m=u.split("/").pop()??"";d&&(n=M(m,"",u)+n);const f=n.length,E=f>c;return E&&(n=q(n,c)),{content:n,title:m,description:"",url:u,originalLength:f,truncated:E}}const{parseHTML:F}=await import("linkedom"),{document:a}=F(L),b=a.querySelector("title")?.textContent?.trim()??a.querySelector('meta[property="og:title"]')?.getAttribute("content")?.trim()??"",x=a.querySelector('meta[name="description"]')?.getAttribute("content")?.trim()??a.querySelector('meta[property="og:description"]')?.getAttribute("content")?.trim()??"";for(const n of H)for(const m of a.querySelectorAll(n))m.remove();if(!y)for(const n of a.querySelectorAll("img"))n.remove();let s=null;if(t){if(s=a.querySelector(t),!s)throw new Error(`Selector "${t}" matched no elements on the page`)}else{for(const n of I)if(s=a.querySelector(n),s)break;s||(s=a.querySelector("body"))}if(!s)return{content:"(empty page \u2014 no content found)",title:b,description:x,url:u,originalLength:0,truncated:!1};const w=s.innerHTML,h=[];if(p||e==="links")for(const n of s.querySelectorAll("a[href]")){const m=n.textContent?.trim(),f=n.getAttribute("href");m&&f&&!f.startsWith("#")&&!f.startsWith("javascript:")&&h.push({text:m,href:P(f,u)})}let i;switch(e){case"raw":i=w;break;case"links":i=A(h);break;case"outline":i=j(s);break;default:i=O(w,y);break}d&&e!=="links"&&(i=M(b,x,u)+i),p&&e!=="links"&&h.length>0&&(i+=`
1
+ import{paragraphTruncate as e}from"./truncation.js";import t from"turndown";const n=`script,style,noscript,iframe,svg,nav,footer,header,aside,form,button,input,select,textarea,[role="navigation"],[role="banner"],[role="contentinfo"],[aria-hidden="true"],.sidebar,.nav,.menu,.footer,.header,.ad,.advertisement,.cookie-banner,.popup,.modal`.split(`,`),r=[`article`,`[role="main"]`,`main`,`.post-content`,`.article-content`,`.entry-content`,`.content`,`#content`,`.prose`,`.markdown-body`,`.documentation`,`.doc-content`];async function i(e){let{url:t,mode:i=`markdown`,selector:d,maxLength:f=15e3,includeMetadata:p=!0,includeLinks:m=!1,includeImages:h=!1,timeout:g=15e3}=e,_=new URL(t);if(_.protocol!==`http:`&&_.protocol!==`https:`)throw Error(`Unsupported protocol: ${_.protocol} only http/https allowed`);let v=new AbortController,y=setTimeout(()=>v.abort(),g),b;try{b=await fetch(t,{signal:v.signal,headers:{"User-Agent":`kb-web-fetch/1.0 (LLM context tool)`,Accept:`text/html,application/xhtml+xml,text/plain`},redirect:`follow`})}finally{clearTimeout(y)}if(!b.ok)throw Error(`HTTP ${b.status}: ${b.statusText}`);let x=b.headers.get(`content-type`)??``,S=/text\/html|application\/xhtml\+xml/i.test(x),C=await b.text(),w=b.url;if(!S){let e=C,t=w.split(`/`).pop()??``;p&&(e=c(t,``,w)+e);let n=e.length,r=n>f;return r&&(e=u(e,f)),{content:e,title:t,description:``,url:w,originalLength:n,truncated:r}}let{parseHTML:T}=await import(`linkedom`),{document:E}=T(C),D=E.querySelector(`title`)?.textContent?.trim()??E.querySelector(`meta[property="og:title"]`)?.getAttribute(`content`)?.trim()??``,O=E.querySelector(`meta[name="description"]`)?.getAttribute(`content`)?.trim()??E.querySelector(`meta[property="og:description"]`)?.getAttribute(`content`)?.trim()??``;for(let e of n)for(let t of E.querySelectorAll(e))t.remove();if(!h)for(let e of E.querySelectorAll(`img`))e.remove();let k=null;if(d){if(k=E.querySelector(d),!k)throw Error(`Selector "${d}" matched no elements on the page`)}else{for(let e of r)if(k=E.querySelector(e),k)break;k||=E.querySelector(`body`)}if(!k)return{content:`(empty page no content found)`,title:D,description:O,url:w,originalLength:0,truncated:!1};let A=k.innerHTML,j=[];if(m||i===`links`)for(let e of k.querySelectorAll(`a[href]`)){let t=e.textContent?.trim(),n=e.getAttribute(`href`);t&&n&&!n.startsWith(`#`)&&!n.startsWith(`javascript:`)&&j.push({text:t,href:l(n,w)})}let M;switch(i){case`raw`:M=A;break;case`links`:M=s(j);break;case`outline`:M=o(k);break;default:M=a(A,h);break}p&&i!==`links`&&(M=c(D,O,w)+M),m&&i!==`links`&&j.length>0&&(M+=`\n\n---\n\n## Links\n\n${s(j)}`);let N=M.length,P=N>f;return P&&(M=u(M,f)),{content:M,title:D,description:O,url:w,originalLength:N,truncated:P}}function a(e,n){let r=new t({headingStyle:`atx`,codeBlockStyle:`fenced`,bulletListMarker:`-`});r.addRule(`emptyLinks`,{filter:e=>e.nodeName===`A`&&!e.textContent?.trim(),replacement:()=>``}),n||r.addRule(`removeImages`,{filter:`img`,replacement:()=>``});let i=r.turndown(e);return i=i.replace(/\n{3,}/g,`
2
2
 
3
- ---
3
+ `).trim(),i}function o(e){let t=e.querySelectorAll(`h1, h2, h3, h4, h5, h6`),n=[];for(let e of t){let t=Number.parseInt(e.tagName.slice(1),10),r=` `.repeat(t-1),i=e.textContent?.trim()??``;i&&n.push(`${r}- ${i}`)}return n.length>0?n.join(`
4
+ `):`(no headings found)`}function s(e){if(e.length===0)return`(no links found)`;let t=new Set,n=[];for(let r of e)t.has(r.href)||(t.add(r.href),n.push(r));return n.map(e=>`- [${e.text}](${e.href})`).join(`
5
+ `)}function c(e,t,n){let r=[`---`];return e&&r.push(`**${e}**`),r.push(`URL: ${n}`),t&&r.push(`> ${t}`),r.push(`---
4
6
 
5
- ## Links
6
-
7
- ${A(h)}`);const T=i.length,S=T>c;return S&&(i=q(i,c)),{content:i,title:b,description:x,url:u,originalLength:T,truncated:S}}function O(r,o){const e=new N({headingStyle:"atx",codeBlockStyle:"fenced",bulletListMarker:"-"});e.addRule("emptyLinks",{filter:c=>c.nodeName==="A"&&!c.textContent?.trim(),replacement:()=>""}),o||e.addRule("removeImages",{filter:"img",replacement:()=>""});let t=e.turndown(r);return t=t.replace(/\n{3,}/g,`
8
-
9
- `).trim(),t}function j(r){const o=r.querySelectorAll("h1, h2, h3, h4, h5, h6"),e=[];for(const t of o){const c=Number.parseInt(t.tagName.slice(1),10),d=" ".repeat(c-1),p=t.textContent?.trim()??"";p&&e.push(`${d}- ${p}`)}return e.length>0?e.join(`
10
- `):"(no headings found)"}function A(r){if(r.length===0)return"(no links found)";const o=new Set,e=[];for(const t of r)o.has(t.href)||(o.add(t.href),e.push(t));return e.map(t=>`- [${t.text}](${t.href})`).join(`
11
- `)}function M(r,o,e){const t=["---"];return r&&t.push(`**${r}**`),t.push(`URL: ${e}`),o&&t.push(`> ${o}`),t.push(`---
12
-
13
- `),t.join(`
14
- `)}function P(r,o){try{return new URL(r,o).href}catch{return r}}const q=W;export{X as webFetch};
7
+ `),r.join(`
8
+ `)}function l(e,t){try{return new URL(e,t).href}catch{return e}}const u=e;export{i as webFetch};
@@ -1,23 +1,25 @@
1
+ //#region packages/tools/src/web-search.d.ts
1
2
  /**
2
3
  * kb_web_search — Search the web and return structured results.
3
4
  *
4
5
  * Uses DuckDuckGo HTML search (no API key required).
5
6
  */
6
- export interface WebSearchOptions {
7
- query: string;
8
- limit?: number;
9
- site?: string;
7
+ interface WebSearchOptions {
8
+ query: string;
9
+ limit?: number;
10
+ site?: string;
10
11
  }
11
- export interface WebSearchResultItem {
12
- title: string;
13
- url: string;
14
- snippet: string;
12
+ interface WebSearchResultItem {
13
+ title: string;
14
+ url: string;
15
+ snippet: string;
15
16
  }
16
- export interface WebSearchResult {
17
- results: WebSearchResultItem[];
18
- query: string;
17
+ interface WebSearchResult {
18
+ results: WebSearchResultItem[];
19
+ query: string;
19
20
  }
20
- export declare function webSearch(options: WebSearchOptions): Promise<WebSearchResult>;
21
+ declare function webSearch(options: WebSearchOptions): Promise<WebSearchResult>;
21
22
  /** Parse search results from DuckDuckGo HTML. Exported for testing. */
22
- export declare function parseSearchResults(html: string, query: string, limit: number): WebSearchResult;
23
- //# sourceMappingURL=web-search.d.ts.map
23
+ declare function parseSearchResults(html: string, query: string, limit: number): WebSearchResult;
24
+ //#endregion
25
+ export { WebSearchOptions, WebSearchResult, WebSearchResultItem, parseSearchResults, webSearch };
@@ -1 +1 @@
1
- const h=5;async function g(r){const{query:n,limit:i=5,site:s}=r;if(!n.trim())throw new Error("Search query cannot be empty");const c=s?`${n} site:${s}`:n,e=await fetch("https://html.duckduckgo.com/html/",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded","User-Agent":"kb-web-search/1.0 (LLM developer tool)"},body:`q=${encodeURIComponent(c)}`});if(!e.ok)throw new Error(`Search failed: HTTP ${e.status}`);const t=await e.text();return p(t,c,i)}function p(r,n,i){const s=[],c=/<a[^>]+class="result__a"[^>]*href="([^"]*)"[^>]*>([\s\S]*?)<\/a>[\s\S]*?<a[^>]+class="result__snippet"[^>]*>([\s\S]*?)<\/a>/gi;let e=c.exec(r);for(;e!==null&&s.length<i;){let t=e[1];const o=l(e[2]).trim(),u=l(e[3]).trim();if(t.includes("uddg=")){const a=t.match(/uddg=([^&]+)/)?.[1];a&&(t=decodeURIComponent(a))}o&&t?.startsWith("http")&&s.push({title:o,url:t,snippet:u}),e=c.exec(r)}return{results:s,query:n}}function l(r){return r.replace(/<[^>]+>/g,"").replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&quot;/g,'"').replace(/&#x27;/g,"'")}export{p as parseSearchResults,g as webSearch};
1
+ async function e(e){let{query:n,limit:r=5,site:i}=e;if(!n.trim())throw Error(`Search query cannot be empty`);let a=i?`${n} site:${i}`:n,o=new AbortController,s=setTimeout(()=>o.abort(),15e3),c;try{c=await fetch(`https://html.duckduckgo.com/html/`,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`,"User-Agent":`kb-web-search/1.0 (LLM developer tool)`},body:`q=${encodeURIComponent(a)}`,signal:o.signal})}finally{clearTimeout(s)}if(!c.ok)throw Error(`Search failed: HTTP ${c.status}`);return t(await c.text(),a,r)}function t(e,t,r){let i=[],a=/<a[^>]+class="result__a"[^>]*href="([^"]*)"[^>]*>([\s\S]*?)<\/a>[\s\S]*?<a[^>]+class="result__snippet"[^>]*>([\s\S]*?)<\/a>/gi,o=a.exec(e);for(;o!==null&&i.length<r;){let t=o[1],r=n(o[2]).trim(),s=n(o[3]).trim();if(t.includes(`uddg=`)){let e=t.match(/uddg=([^&]+)/)?.[1];e&&(t=decodeURIComponent(e))}r&&t?.startsWith(`http`)&&i.push({title:r,url:t,snippet:s}),o=a.exec(e)}return{results:i,query:t}}function n(e){return e.replace(/<[^>]+>/g,``).replace(/&amp;/g,`&`).replace(/&lt;/g,`<`).replace(/&gt;/g,`>`).replace(/&quot;/g,`"`).replace(/&#x27;/g,`'`)}export{t as parseSearchResults,e as webSearch};
@@ -1,3 +1,4 @@
1
+ //#region packages/tools/src/workset.d.ts
1
2
  /**
2
3
  * kb_workset — Named file set management.
3
4
  *
@@ -5,41 +6,42 @@
5
6
  * Use cases: "remember this set of files I'm working on",
6
7
  * "load my previous context", "share file sets between sessions".
7
8
  */
8
- export interface Workset {
9
- name: string;
10
- files: string[];
11
- created: string;
12
- updated: string;
13
- description?: string;
9
+ interface Workset {
10
+ name: string;
11
+ files: string[];
12
+ created: string;
13
+ updated: string;
14
+ description?: string;
14
15
  }
15
- export interface WorksetStore {
16
- worksets: Record<string, Workset>;
16
+ interface WorksetStore {
17
+ worksets: Record<string, Workset>;
17
18
  }
18
19
  /**
19
20
  * Create or update a workset.
20
21
  */
21
- export declare function saveWorkset(name: string, files: string[], options?: {
22
- description?: string;
23
- cwd?: string;
22
+ declare function saveWorkset(name: string, files: string[], options?: {
23
+ description?: string;
24
+ cwd?: string;
24
25
  }): Workset;
25
26
  /**
26
27
  * Get a workset by name.
27
28
  */
28
- export declare function getWorkset(name: string, cwd?: string): Workset | null;
29
+ declare function getWorkset(name: string, cwd?: string): Workset | null;
29
30
  /**
30
31
  * List all worksets.
31
32
  */
32
- export declare function listWorksets(cwd?: string): Workset[];
33
+ declare function listWorksets(cwd?: string): Workset[];
33
34
  /**
34
35
  * Delete a workset.
35
36
  */
36
- export declare function deleteWorkset(name: string, cwd?: string): boolean;
37
+ declare function deleteWorkset(name: string, cwd?: string): boolean;
37
38
  /**
38
39
  * Add files to an existing workset (creates if not exists).
39
40
  */
40
- export declare function addToWorkset(name: string, files: string[], cwd?: string): Workset;
41
+ declare function addToWorkset(name: string, files: string[], cwd?: string): Workset;
41
42
  /**
42
43
  * Remove files from a workset.
43
44
  */
44
- export declare function removeFromWorkset(name: string, files: string[], cwd?: string): Workset | null;
45
- //# sourceMappingURL=workset.d.ts.map
45
+ declare function removeFromWorkset(name: string, files: string[], cwd?: string): Workset | null;
46
+ //#endregion
47
+ export { Workset, WorksetStore, addToWorkset, deleteWorkset, getWorkset, listWorksets, removeFromWorkset, saveWorkset };
@@ -1,2 +1 @@
1
- import{existsSync as g,mkdirSync as l,readFileSync as a,writeFileSync as p}from"node:fs";import{dirname as w,resolve as S}from"node:path";const W=".kb-state",x="worksets.json";function u(t){const r=t??process.cwd();return S(r,W,x)}function c(t){const r=u(t);if(!g(r))return{worksets:{}};const e=a(r,"utf-8");return JSON.parse(e)}function k(t,r){const e=u(r),s=w(e);g(s)||l(s,{recursive:!0}),p(e,`${JSON.stringify(t,null,2)}
2
- `,"utf-8")}function d(t,r,e){const s=c(e?.cwd),o=new Date().toISOString(),n=s.worksets[t],i={name:t,files:r,created:n?.created??o,updated:o,description:e?.description??n?.description};return s.worksets[t]=i,k(s,e?.cwd),i}function T(t,r){return c(r).worksets[t]??null}function y(t){const r=c(t);return Object.values(r.worksets).sort((e,s)=>new Date(s.updated).getTime()-new Date(e.updated).getTime())}function F(t,r){const e=c(r);return e.worksets[t]?(delete e.worksets[t],k(e,r),!0):!1}function O(t,r,e){const n=c(e).worksets[t]?.files??[],i=[...new Set([...n,...r])];return d(t,i,{cwd:e})}function h(t,r,e){const o=c(e).worksets[t];if(!o)return null;const n=new Set(r),i=o.files.filter(f=>!n.has(f));return d(t,i,{cwd:e})}export{O as addToWorkset,F as deleteWorkset,T as getWorkset,y as listWorksets,h as removeFromWorkset,d as saveWorkset};
1
+ import{dirname as e,resolve as t}from"node:path";import{existsSync as n,mkdirSync as r,readFileSync as i,writeFileSync as a}from"node:fs";import{KB_PATHS as o}from"../../core/dist/index.js";const s=o.state;function c(e){return t(e??process.cwd(),s,`worksets.json`)}function l(e){let t=c(e);if(!n(t))return{worksets:{}};try{let e=i(t,`utf-8`);return JSON.parse(e)}catch{return{worksets:{}}}}function u(t,i){let o=c(i),s=e(o);n(s)||r(s,{recursive:!0}),a(o,`${JSON.stringify(t,null,2)}\n`,`utf-8`)}function d(e,t,n){let r=l(n?.cwd),i=new Date().toISOString(),a=r.worksets[e],o={name:e,files:t,created:a?.created??i,updated:i,description:n?.description??a?.description};return r.worksets[e]=o,u(r,n?.cwd),o}function f(e,t){return l(t).worksets[e]??null}function p(e){let t=l(e);return Object.values(t.worksets).sort((e,t)=>new Date(t.updated).getTime()-new Date(e.updated).getTime())}function m(e,t){let n=l(t);return n.worksets[e]?(delete n.worksets[e],u(n,t),!0):!1}function h(e,t,n){let r=l(n).worksets[e]?.files??[];return d(e,[...new Set([...r,...t])],{cwd:n})}function g(e,t,n){let r=l(n).worksets[e];if(!r)return null;let i=new Set(t);return d(e,r.files.filter(e=>!i.has(e)),{cwd:n})}export{h as addToWorkset,m as deleteWorkset,f as getWorkset,p as listWorksets,g as removeFromWorkset,d as saveWorkset};
@@ -0,0 +1,2 @@
1
+ import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
2
+ import{r as e}from"./chunk-D6axbAb-.js";import{a as t,i as n,n as r,s as i,t as a}from"./jsx-runtime-Cof-kwFn.js";import{t as o}from"./StatusPanel-2ex8fLOO.js";import{t as s}from"./SearchPanel-DREo6zgt.js";import{t as c}from"./CuratedPanel-sYdZAICX.js";import{t as l}from"./LogPanel-DtMnoyXT.js";var u=e(i()),d=a();const f=[`status`,`search`,`curated`,`log`];function p({context:e}){let[i,a]=(0,u.useState)(`status`);return r((e,t)=>{t.tab&&a(f[(f.indexOf(i)+1)%f.length]),e===`1`&&a(`status`),e===`2`&&a(`search`),e===`3`&&a(`curated`),e===`4`&&a(`log`)}),(0,d.jsxs)(t,{flexDirection:`column`,width:`100%`,children:[(0,d.jsxs)(t,{borderStyle:`single`,paddingX:1,children:[(0,d.jsx)(n,{bold:!0,color:`cyan`,children:`KB Dashboard`}),(0,d.jsx)(n,{children:` │ `}),f.map(e=>(0,d.jsxs)(u.Fragment,{children:[(0,d.jsxs)(n,{color:e===i?`green`:`gray`,bold:e===i,children:[`[`,f.indexOf(e)+1,`] `,e]}),(0,d.jsx)(n,{children:` `})]},e)),(0,d.jsx)(n,{color:`gray`,children:` │ Tab: switch │ Ctrl+C: quit`})]}),(0,d.jsxs)(t,{flexGrow:1,minHeight:10,children:[i===`status`&&(0,d.jsx)(o,{store:e.store}),i===`search`&&(0,d.jsx)(s,{store:e.store,embedder:e.embedder}),i===`curated`&&(0,d.jsx)(c,{store:e.store}),i===`log`&&(0,d.jsx)(l,{})]})]})}export{p as t};
@@ -1,8 +1,13 @@
1
- import React from 'react';
2
- import type { TUIContext } from './index.js';
1
+ import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
2
+ import { t as TUIContext } from "./index-B9VpfVPP.js";
3
+ import React from "react";
4
+
5
+ //#region packages/tui/src/App.d.ts
3
6
  interface AppProps {
4
- context: TUIContext;
7
+ context: TUIContext;
5
8
  }
6
- export declare function App({ context }: AppProps): React.ReactElement;
7
- export {};
8
- //# sourceMappingURL=App.d.ts.map
9
+ declare function App({
10
+ context
11
+ }: AppProps): React.ReactElement;
12
+ //#endregion
13
+ export { App };