@vpxa/kb 0.1.15 → 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 (449) hide show
  1. package/README.md +62 -15
  2. package/package.json +5 -1
  3. package/packages/analyzers/dist/blast-radius-analyzer.d.ts +1 -2
  4. package/packages/analyzers/dist/blast-radius-analyzer.js +1 -2
  5. package/packages/analyzers/dist/dependency-analyzer.d.ts +2 -3
  6. package/packages/analyzers/dist/dependency-analyzer.js +3 -4
  7. package/packages/analyzers/dist/diagram-generator.d.ts +1 -2
  8. package/packages/analyzers/dist/diagram-generator.js +1 -2
  9. package/packages/analyzers/dist/entry-point-analyzer.d.ts +1 -2
  10. package/packages/analyzers/dist/entry-point-analyzer.js +3 -4
  11. package/packages/analyzers/dist/knowledge-producer.d.ts +6 -2
  12. package/packages/analyzers/dist/knowledge-producer.js +4 -3
  13. package/packages/analyzers/dist/pattern-analyzer.d.ts +1 -2
  14. package/packages/analyzers/dist/pattern-analyzer.js +2 -3
  15. package/packages/analyzers/dist/regex-call-graph.d.ts +1 -2
  16. package/packages/analyzers/dist/regex-call-graph.js +1 -2
  17. package/packages/analyzers/dist/structure-analyzer.d.ts +1 -2
  18. package/packages/analyzers/dist/structure-analyzer.js +1 -2
  19. package/packages/analyzers/dist/symbol-analyzer.d.ts +3 -3
  20. package/packages/analyzers/dist/symbol-analyzer.js +8 -7
  21. package/packages/analyzers/dist/ts-call-graph.d.ts +1 -2
  22. package/packages/analyzers/dist/ts-call-graph.js +1 -2
  23. package/packages/analyzers/dist/types.d.ts +1 -2
  24. package/packages/chunker/dist/call-graph-extractor.d.ts +3 -3
  25. package/packages/chunker/dist/call-graph-extractor.js +1 -2
  26. package/packages/chunker/dist/chunker-factory.d.ts +12 -4
  27. package/packages/chunker/dist/chunker-factory.js +1 -2
  28. package/packages/chunker/dist/chunker.interface.d.ts +1 -2
  29. package/packages/chunker/dist/code-chunker.d.ts +1 -2
  30. package/packages/chunker/dist/code-chunker.js +1 -2
  31. package/packages/chunker/dist/extractors/call-extractor.d.ts +24 -0
  32. package/packages/chunker/dist/extractors/call-extractor.js +1 -0
  33. package/packages/chunker/dist/extractors/entry-point-detector.d.ts +14 -0
  34. package/packages/chunker/dist/extractors/entry-point-detector.js +1 -0
  35. package/packages/chunker/dist/extractors/import-extractor.d.ts +14 -0
  36. package/packages/chunker/dist/extractors/import-extractor.js +1 -0
  37. package/packages/chunker/dist/extractors/pattern-detector.d.ts +14 -0
  38. package/packages/chunker/dist/extractors/pattern-detector.js +1 -0
  39. package/packages/chunker/dist/extractors/scope-resolver.d.ts +26 -0
  40. package/packages/chunker/dist/extractors/scope-resolver.js +1 -0
  41. package/packages/chunker/dist/extractors/symbol-extractor.d.ts +14 -0
  42. package/packages/chunker/dist/extractors/symbol-extractor.js +1 -0
  43. package/packages/chunker/dist/extractors/types.d.ts +36 -0
  44. package/packages/chunker/dist/extractors/types.js +1 -0
  45. package/packages/chunker/dist/generic-chunker.d.ts +1 -2
  46. package/packages/chunker/dist/generic-chunker.js +1 -2
  47. package/packages/chunker/dist/index.d.ts +15 -4
  48. package/packages/chunker/dist/index.js +1 -1
  49. package/packages/chunker/dist/markdown-chunker.d.ts +1 -2
  50. package/packages/chunker/dist/markdown-chunker.js +1 -2
  51. package/packages/chunker/dist/wasm/languages.d.ts +18 -0
  52. package/packages/chunker/dist/wasm/languages.js +1 -0
  53. package/packages/chunker/dist/wasm/query-executor.d.ts +70 -0
  54. package/packages/chunker/dist/wasm/query-executor.js +1 -0
  55. package/packages/chunker/dist/wasm/runtime.d.ts +44 -0
  56. package/packages/chunker/dist/wasm/runtime.js +1 -0
  57. package/packages/chunker/dist/wasm/types.d.ts +84 -0
  58. package/packages/chunker/dist/wasm/types.js +1 -0
  59. package/packages/chunker/dist/wasm-chunker.d.ts +23 -0
  60. package/packages/chunker/dist/wasm-chunker.js +6 -0
  61. package/packages/chunker/src/queries/go/calls.scm +11 -0
  62. package/packages/chunker/src/queries/go/entry-points.scm +20 -0
  63. package/packages/chunker/src/queries/go/imports.scm +6 -0
  64. package/packages/chunker/src/queries/go/patterns.scm +25 -0
  65. package/packages/chunker/src/queries/go/symbols.scm +26 -0
  66. package/packages/chunker/src/queries/java/calls.scm +10 -0
  67. package/packages/chunker/src/queries/java/entry-points.scm +27 -0
  68. package/packages/chunker/src/queries/java/imports.scm +11 -0
  69. package/packages/chunker/src/queries/java/patterns.scm +27 -0
  70. package/packages/chunker/src/queries/java/symbols.scm +28 -0
  71. package/packages/chunker/src/queries/javascript/calls.scm +21 -0
  72. package/packages/chunker/src/queries/javascript/entry-points.scm +31 -0
  73. package/packages/chunker/src/queries/javascript/imports.scm +32 -0
  74. package/packages/chunker/src/queries/javascript/patterns.scm +28 -0
  75. package/packages/chunker/src/queries/javascript/symbols.scm +52 -0
  76. package/packages/chunker/src/queries/python/calls.scm +11 -0
  77. package/packages/chunker/src/queries/python/entry-points.scm +21 -0
  78. package/packages/chunker/src/queries/python/imports.scm +14 -0
  79. package/packages/chunker/src/queries/python/patterns.scm +25 -0
  80. package/packages/chunker/src/queries/python/symbols.scm +17 -0
  81. package/packages/chunker/src/queries/rust/calls.scm +20 -0
  82. package/packages/chunker/src/queries/rust/entry-points.scm +7 -0
  83. package/packages/chunker/src/queries/rust/imports.scm +26 -0
  84. package/packages/chunker/src/queries/rust/patterns.scm +18 -0
  85. package/packages/chunker/src/queries/rust/symbols.scm +73 -0
  86. package/packages/chunker/src/queries/typescript/calls.scm +21 -0
  87. package/packages/chunker/src/queries/typescript/entry-points.scm +48 -0
  88. package/packages/chunker/src/queries/typescript/imports.scm +35 -0
  89. package/packages/chunker/src/queries/typescript/patterns.scm +47 -0
  90. package/packages/chunker/src/queries/typescript/symbols.scm +79 -0
  91. package/packages/chunker/wasm/tree-sitter-go.wasm +0 -0
  92. package/packages/chunker/wasm/tree-sitter-java.wasm +0 -0
  93. package/packages/chunker/wasm/tree-sitter-javascript.wasm +0 -0
  94. package/packages/chunker/wasm/tree-sitter-python.wasm +0 -0
  95. package/packages/chunker/wasm/tree-sitter-rust.wasm +0 -0
  96. package/packages/chunker/wasm/tree-sitter-typescript.wasm +0 -0
  97. package/packages/chunker/wasm/tree-sitter.wasm +0 -0
  98. package/packages/cli/dist/commands/analyze.d.ts +1 -2
  99. package/packages/cli/dist/commands/analyze.js +1 -2
  100. package/packages/cli/dist/commands/context-cmds.d.ts +1 -2
  101. package/packages/cli/dist/commands/context-cmds.js +1 -2
  102. package/packages/cli/dist/commands/environment.d.ts +1 -2
  103. package/packages/cli/dist/commands/environment.js +1 -2
  104. package/packages/cli/dist/commands/execution.d.ts +1 -2
  105. package/packages/cli/dist/commands/execution.js +1 -2
  106. package/packages/cli/dist/commands/graph.d.ts +1 -2
  107. package/packages/cli/dist/commands/graph.js +1 -2
  108. package/packages/cli/dist/commands/init/adapters.d.ts +4 -3
  109. package/packages/cli/dist/commands/init/adapters.js +1 -2
  110. package/packages/cli/dist/commands/init/config.d.ts +1 -2
  111. package/packages/cli/dist/commands/init/config.js +3 -4
  112. package/packages/cli/dist/commands/init/constants.d.ts +18 -0
  113. package/packages/cli/dist/commands/init/constants.js +1 -0
  114. package/packages/cli/dist/commands/init/curated.d.ts +1 -2
  115. package/packages/cli/dist/commands/init/curated.js +1 -2
  116. package/packages/cli/dist/commands/init/global.d.ts +34 -0
  117. package/packages/cli/dist/commands/init/global.js +5 -0
  118. package/packages/cli/dist/commands/init/index.d.ts +7 -2
  119. package/packages/cli/dist/commands/init/index.js +5 -3
  120. package/packages/cli/dist/commands/init/scaffold.d.ts +1 -2
  121. package/packages/cli/dist/commands/init/scaffold.js +1 -2
  122. package/packages/cli/dist/commands/init/templates.d.ts +3 -4
  123. package/packages/cli/dist/commands/init/templates.js +106 -243
  124. package/packages/cli/dist/commands/knowledge.d.ts +1 -2
  125. package/packages/cli/dist/commands/knowledge.js +1 -2
  126. package/packages/cli/dist/commands/search.d.ts +1 -2
  127. package/packages/cli/dist/commands/search.js +1 -2
  128. package/packages/cli/dist/commands/system.d.ts +1 -2
  129. package/packages/cli/dist/commands/system.js +3 -4
  130. package/packages/cli/dist/commands/workspace.d.ts +1 -2
  131. package/packages/cli/dist/commands/workspace.js +1 -2
  132. package/packages/cli/dist/context.d.ts +1 -2
  133. package/packages/cli/dist/context.js +1 -2
  134. package/packages/cli/dist/helpers.d.ts +1 -2
  135. package/packages/cli/dist/helpers.js +1 -2
  136. package/packages/cli/dist/index.d.ts +1 -2
  137. package/packages/cli/dist/index.js +1 -2
  138. package/packages/cli/dist/kb-init.d.ts +1 -2
  139. package/packages/cli/dist/kb-init.js +1 -2
  140. package/packages/cli/dist/types.d.ts +1 -2
  141. package/packages/core/dist/constants.d.ts +23 -2
  142. package/packages/core/dist/constants.js +1 -2
  143. package/packages/core/dist/content-detector.d.ts +1 -2
  144. package/packages/core/dist/content-detector.js +1 -2
  145. package/packages/core/dist/errors.d.ts +1 -2
  146. package/packages/core/dist/errors.js +1 -2
  147. package/packages/core/dist/global-registry.d.ts +62 -0
  148. package/packages/core/dist/global-registry.js +1 -0
  149. package/packages/core/dist/index.d.ts +4 -3
  150. package/packages/core/dist/index.js +1 -1
  151. package/packages/core/dist/logger.d.ts +4 -2
  152. package/packages/core/dist/logger.js +1 -2
  153. package/packages/core/dist/types.d.ts +1 -2
  154. package/packages/core/dist/types.js +1 -2
  155. package/packages/embeddings/dist/embedder.interface.d.ts +1 -2
  156. package/packages/embeddings/dist/onnx-embedder.d.ts +1 -2
  157. package/packages/embeddings/dist/onnx-embedder.js +1 -2
  158. package/packages/enterprise-bridge/dist/cache.d.ts +1 -2
  159. package/packages/enterprise-bridge/dist/cache.js +1 -2
  160. package/packages/enterprise-bridge/dist/er-client.d.ts +1 -2
  161. package/packages/enterprise-bridge/dist/er-client.js +1 -2
  162. package/packages/enterprise-bridge/dist/evolution-collector.d.ts +1 -2
  163. package/packages/enterprise-bridge/dist/evolution-collector.js +1 -2
  164. package/packages/enterprise-bridge/dist/policy-store.d.ts +1 -2
  165. package/packages/enterprise-bridge/dist/policy-store.js +1 -2
  166. package/packages/enterprise-bridge/dist/push-adapter.d.ts +1 -2
  167. package/packages/enterprise-bridge/dist/push-adapter.js +1 -2
  168. package/packages/enterprise-bridge/dist/result-merger.d.ts +1 -2
  169. package/packages/enterprise-bridge/dist/result-merger.js +1 -2
  170. package/packages/enterprise-bridge/dist/types.d.ts +1 -2
  171. package/packages/enterprise-bridge/dist/types.js +1 -2
  172. package/packages/indexer/dist/file-hasher.d.ts +1 -2
  173. package/packages/indexer/dist/file-hasher.js +1 -2
  174. package/packages/indexer/dist/filesystem-crawler.d.ts +1 -2
  175. package/packages/indexer/dist/filesystem-crawler.js +1 -2
  176. package/packages/indexer/dist/graph-extractor.d.ts +1 -2
  177. package/packages/indexer/dist/graph-extractor.js +1 -2
  178. package/packages/indexer/dist/incremental-indexer.d.ts +1 -2
  179. package/packages/indexer/dist/incremental-indexer.js +1 -2
  180. package/packages/server/dist/config.d.ts +1 -2
  181. package/packages/server/dist/config.js +1 -2
  182. package/packages/server/dist/cross-workspace.d.ts +43 -0
  183. package/packages/server/dist/cross-workspace.js +1 -0
  184. package/packages/server/dist/curated-manager.d.ts +2 -3
  185. package/packages/server/dist/curated-manager.js +4 -5
  186. package/packages/server/dist/index.js +1 -2
  187. package/packages/server/dist/replay-interceptor.d.ts +1 -2
  188. package/packages/server/dist/replay-interceptor.js +1 -2
  189. package/packages/server/dist/resources/resources.d.ts +1 -2
  190. package/packages/server/dist/resources/resources.js +1 -2
  191. package/packages/server/dist/server.d.ts +4 -2
  192. package/packages/server/dist/server.js +1 -2
  193. package/packages/server/dist/tools/analyze.tools.d.ts +1 -2
  194. package/packages/server/dist/tools/analyze.tools.js +1 -2
  195. package/packages/server/dist/tools/audit.tool.d.ts +1 -2
  196. package/packages/server/dist/tools/audit.tool.js +1 -2
  197. package/packages/server/dist/tools/bridge.tools.d.ts +1 -2
  198. package/packages/server/dist/tools/bridge.tools.js +1 -2
  199. package/packages/server/dist/tools/evolution.tools.d.ts +1 -2
  200. package/packages/server/dist/tools/evolution.tools.js +1 -2
  201. package/packages/server/dist/tools/forge.tools.d.ts +1 -2
  202. package/packages/server/dist/tools/forge.tools.js +5 -6
  203. package/packages/server/dist/tools/forget.tool.d.ts +1 -2
  204. package/packages/server/dist/tools/forget.tool.js +1 -2
  205. package/packages/server/dist/tools/graph.tool.d.ts +1 -2
  206. package/packages/server/dist/tools/graph.tool.js +1 -2
  207. package/packages/server/dist/tools/list.tool.d.ts +1 -2
  208. package/packages/server/dist/tools/list.tool.js +1 -2
  209. package/packages/server/dist/tools/lookup.tool.d.ts +1 -2
  210. package/packages/server/dist/tools/lookup.tool.js +1 -2
  211. package/packages/server/dist/tools/onboard.tool.d.ts +1 -2
  212. package/packages/server/dist/tools/onboard.tool.js +1 -2
  213. package/packages/server/dist/tools/policy.tools.d.ts +1 -2
  214. package/packages/server/dist/tools/policy.tools.js +1 -2
  215. package/packages/server/dist/tools/produce.tool.d.ts +1 -2
  216. package/packages/server/dist/tools/produce.tool.js +1 -2
  217. package/packages/server/dist/tools/read.tool.d.ts +1 -2
  218. package/packages/server/dist/tools/read.tool.js +2 -3
  219. package/packages/server/dist/tools/reindex.tool.d.ts +1 -2
  220. package/packages/server/dist/tools/reindex.tool.js +3 -3
  221. package/packages/server/dist/tools/remember.tool.d.ts +1 -2
  222. package/packages/server/dist/tools/remember.tool.js +1 -2
  223. package/packages/server/dist/tools/replay.tool.d.ts +1 -2
  224. package/packages/server/dist/tools/replay.tool.js +1 -2
  225. package/packages/server/dist/tools/search.tool.d.ts +1 -2
  226. package/packages/server/dist/tools/search.tool.js +4 -5
  227. package/packages/server/dist/tools/status.tool.d.ts +7 -3
  228. package/packages/server/dist/tools/status.tool.js +2 -3
  229. package/packages/server/dist/tools/toolkit.tools.d.ts +1 -2
  230. package/packages/server/dist/tools/toolkit.tools.js +19 -19
  231. package/packages/server/dist/tools/update.tool.d.ts +1 -2
  232. package/packages/server/dist/tools/update.tool.js +1 -2
  233. package/packages/server/dist/tools/utility.tools.d.ts +1 -2
  234. package/packages/server/dist/tools/utility.tools.js +2 -3
  235. package/packages/server/dist/version-check.d.ts +1 -2
  236. package/packages/server/dist/version-check.js +1 -2
  237. package/packages/store/dist/graph-store.interface.d.ts +1 -2
  238. package/packages/store/dist/lance-store.d.ts +1 -2
  239. package/packages/store/dist/lance-store.js +1 -2
  240. package/packages/store/dist/sqlite-graph-store.d.ts +1 -2
  241. package/packages/store/dist/sqlite-graph-store.js +6 -7
  242. package/packages/store/dist/store-factory.d.ts +1 -2
  243. package/packages/store/dist/store-factory.js +1 -2
  244. package/packages/store/dist/store.interface.d.ts +1 -2
  245. package/packages/tools/dist/audit.d.ts +1 -2
  246. package/packages/tools/dist/audit.js +1 -2
  247. package/packages/tools/dist/batch.d.ts +1 -2
  248. package/packages/tools/dist/batch.js +1 -2
  249. package/packages/tools/dist/changelog.d.ts +1 -2
  250. package/packages/tools/dist/changelog.js +2 -3
  251. package/packages/tools/dist/check.d.ts +1 -2
  252. package/packages/tools/dist/check.js +2 -3
  253. package/packages/tools/dist/checkpoint.d.ts +1 -2
  254. package/packages/tools/dist/checkpoint.js +1 -2
  255. package/packages/tools/dist/codemod.d.ts +1 -2
  256. package/packages/tools/dist/codemod.js +1 -2
  257. package/packages/tools/dist/compact.d.ts +1 -2
  258. package/packages/tools/dist/compact.js +1 -2
  259. package/packages/tools/dist/data-transform.d.ts +1 -2
  260. package/packages/tools/dist/data-transform.js +1 -2
  261. package/packages/tools/dist/dead-symbols.d.ts +1 -2
  262. package/packages/tools/dist/dead-symbols.js +2 -3
  263. package/packages/tools/dist/delegate.d.ts +1 -2
  264. package/packages/tools/dist/delegate.js +1 -2
  265. package/packages/tools/dist/diff-parse.d.ts +1 -2
  266. package/packages/tools/dist/diff-parse.js +1 -2
  267. package/packages/tools/dist/digest.d.ts +1 -2
  268. package/packages/tools/dist/digest.js +1 -2
  269. package/packages/tools/dist/dogfood-log.d.ts +49 -0
  270. package/packages/tools/dist/dogfood-log.js +2 -0
  271. package/packages/tools/dist/encode.d.ts +1 -2
  272. package/packages/tools/dist/encode.js +1 -2
  273. package/packages/tools/dist/env-info.d.ts +1 -2
  274. package/packages/tools/dist/env-info.js +1 -2
  275. package/packages/tools/dist/eval.d.ts +1 -2
  276. package/packages/tools/dist/eval.js +1 -2
  277. package/packages/tools/dist/evidence-map.d.ts +1 -2
  278. package/packages/tools/dist/evidence-map.js +2 -3
  279. package/packages/tools/dist/file-cache.d.ts +1 -2
  280. package/packages/tools/dist/file-cache.js +1 -2
  281. package/packages/tools/dist/file-summary.d.ts +17 -2
  282. package/packages/tools/dist/file-summary.js +2 -3
  283. package/packages/tools/dist/file-walk.d.ts +1 -2
  284. package/packages/tools/dist/file-walk.js +1 -2
  285. package/packages/tools/dist/find-examples.d.ts +1 -2
  286. package/packages/tools/dist/find-examples.js +1 -2
  287. package/packages/tools/dist/find.d.ts +1 -2
  288. package/packages/tools/dist/find.js +1 -2
  289. package/packages/tools/dist/forge-classify.d.ts +1 -2
  290. package/packages/tools/dist/forge-classify.js +2 -3
  291. package/packages/tools/dist/forge-ground.d.ts +1 -2
  292. package/packages/tools/dist/forge-ground.js +1 -2
  293. package/packages/tools/dist/git-context.d.ts +1 -2
  294. package/packages/tools/dist/git-context.js +1 -2
  295. package/packages/tools/dist/graph-query.d.ts +1 -2
  296. package/packages/tools/dist/graph-query.js +1 -2
  297. package/packages/tools/dist/guide.d.ts +1 -2
  298. package/packages/tools/dist/guide.js +1 -2
  299. package/packages/tools/dist/health.d.ts +1 -2
  300. package/packages/tools/dist/health.js +1 -2
  301. package/packages/tools/dist/http-request.d.ts +1 -2
  302. package/packages/tools/dist/http-request.js +1 -2
  303. package/packages/tools/dist/index.d.ts +2 -1
  304. package/packages/tools/dist/index.js +1 -1
  305. package/packages/tools/dist/lane.d.ts +1 -2
  306. package/packages/tools/dist/lane.js +3 -4
  307. package/packages/tools/dist/measure.d.ts +4 -3
  308. package/packages/tools/dist/measure.js +2 -3
  309. package/packages/tools/dist/onboard.d.ts +1 -2
  310. package/packages/tools/dist/onboard.js +14 -15
  311. package/packages/tools/dist/parse-output.d.ts +1 -2
  312. package/packages/tools/dist/parse-output.js +2 -3
  313. package/packages/tools/dist/path-resolver.d.ts +1 -2
  314. package/packages/tools/dist/path-resolver.js +1 -2
  315. package/packages/tools/dist/process-manager.d.ts +1 -2
  316. package/packages/tools/dist/process-manager.js +1 -2
  317. package/packages/tools/dist/queue.d.ts +1 -2
  318. package/packages/tools/dist/queue.js +1 -2
  319. package/packages/tools/dist/regex-test.d.ts +1 -2
  320. package/packages/tools/dist/regex-test.js +1 -2
  321. package/packages/tools/dist/rename.d.ts +1 -2
  322. package/packages/tools/dist/rename.js +1 -2
  323. package/packages/tools/dist/replay.d.ts +2 -3
  324. package/packages/tools/dist/replay.js +4 -5
  325. package/packages/tools/dist/response-envelope.d.ts +1 -2
  326. package/packages/tools/dist/response-envelope.js +1 -2
  327. package/packages/tools/dist/schema-validate.d.ts +1 -2
  328. package/packages/tools/dist/schema-validate.js +1 -2
  329. package/packages/tools/dist/scope-map.d.ts +1 -2
  330. package/packages/tools/dist/scope-map.js +1 -2
  331. package/packages/tools/dist/snippet.d.ts +1 -2
  332. package/packages/tools/dist/snippet.js +1 -2
  333. package/packages/tools/dist/stash.d.ts +1 -2
  334. package/packages/tools/dist/stash.js +1 -2
  335. package/packages/tools/dist/stratum-card.d.ts +1 -2
  336. package/packages/tools/dist/stratum-card.js +1 -2
  337. package/packages/tools/dist/symbol.d.ts +3 -2
  338. package/packages/tools/dist/symbol.js +3 -4
  339. package/packages/tools/dist/test-run.d.ts +1 -2
  340. package/packages/tools/dist/test-run.js +2 -3
  341. package/packages/tools/dist/text-utils.d.ts +1 -2
  342. package/packages/tools/dist/text-utils.js +1 -2
  343. package/packages/tools/dist/time-utils.d.ts +1 -2
  344. package/packages/tools/dist/time-utils.js +1 -2
  345. package/packages/tools/dist/trace.d.ts +3 -2
  346. package/packages/tools/dist/trace.js +2 -3
  347. package/packages/tools/dist/truncation.d.ts +1 -2
  348. package/packages/tools/dist/truncation.js +1 -2
  349. package/packages/tools/dist/watch.d.ts +1 -2
  350. package/packages/tools/dist/watch.js +1 -2
  351. package/packages/tools/dist/web-fetch.d.ts +1 -2
  352. package/packages/tools/dist/web-fetch.js +1 -2
  353. package/packages/tools/dist/web-search.d.ts +1 -2
  354. package/packages/tools/dist/web-search.js +1 -2
  355. package/packages/tools/dist/workset.d.ts +1 -2
  356. package/packages/tools/dist/workset.js +1 -2
  357. package/packages/tui/dist/{App-BAlmxCCw.js → App-CYLNJLr6.js} +1 -2
  358. package/packages/tui/dist/App.d.ts +1 -2
  359. package/packages/tui/dist/App.js +1 -1
  360. package/packages/tui/dist/CuratedPanel-sYdZAICX.js +1 -2
  361. package/packages/tui/dist/LogPanel-DtMnoyXT.js +3 -0
  362. package/packages/tui/dist/SearchPanel-DREo6zgt.js +1 -2
  363. package/packages/tui/dist/StatusPanel-2ex8fLOO.js +1 -2
  364. package/packages/tui/dist/devtools-DUyj952l.js +1 -2
  365. package/packages/tui/dist/embedder.interface-D4ew0HPW.d.ts +1 -2
  366. package/packages/tui/dist/index-B9VpfVPP.d.ts +1 -2
  367. package/packages/tui/dist/index.js +1 -2
  368. package/packages/tui/dist/jsx-runtime-Cof-kwFn.js +1 -2
  369. package/packages/tui/dist/panels/CuratedPanel.d.ts +1 -2
  370. package/packages/tui/dist/panels/LogPanel.d.ts +1 -2
  371. package/packages/tui/dist/panels/LogPanel.js +1 -1
  372. package/packages/tui/dist/panels/SearchPanel.d.ts +1 -2
  373. package/packages/tui/dist/panels/StatusPanel.d.ts +1 -2
  374. package/packages/tui/dist/store.interface-CnY6SPOH.d.ts +1 -2
  375. package/scaffold/copilot/agents/Architect-Reviewer-Alpha.agent.md +7 -0
  376. package/scaffold/copilot/agents/Architect-Reviewer-Beta.agent.md +7 -0
  377. package/scaffold/copilot/agents/Documenter.agent.md +7 -0
  378. package/scaffold/copilot/agents/Orchestrator.agent.md +8 -0
  379. package/scaffold/copilot/agents/Planner.agent.md +9 -0
  380. package/scaffold/copilot/agents/Refactor.agent.md +6 -0
  381. package/scaffold/copilot/agents/Researcher-Alpha.agent.md +8 -0
  382. package/scaffold/copilot/agents/Researcher-Beta.agent.md +8 -0
  383. package/scaffold/copilot/agents/Researcher-Delta.agent.md +8 -0
  384. package/scaffold/copilot/agents/Researcher-Gamma.agent.md +8 -0
  385. package/scaffold/general/agents/Architect-Reviewer-Alpha.agent.md +21 -0
  386. package/scaffold/general/agents/Architect-Reviewer-Beta.agent.md +21 -0
  387. package/scaffold/general/agents/Documenter.agent.md +42 -0
  388. package/scaffold/general/agents/Orchestrator.agent.md +104 -0
  389. package/scaffold/general/agents/Planner.agent.md +55 -0
  390. package/scaffold/general/agents/Refactor.agent.md +36 -0
  391. package/scaffold/general/agents/Researcher-Alpha.agent.md +20 -0
  392. package/scaffold/general/agents/Researcher-Beta.agent.md +20 -0
  393. package/scaffold/general/agents/Researcher-Delta.agent.md +20 -0
  394. package/scaffold/general/agents/Researcher-Gamma.agent.md +20 -0
  395. package/scaffold/{copilot → general}/agents/_shared/code-agent-base.md +18 -0
  396. package/skills/adr-skill/SKILL.md +329 -0
  397. package/skills/adr-skill/assets/templates/adr-madr.md +89 -0
  398. package/skills/adr-skill/assets/templates/adr-readme.md +20 -0
  399. package/skills/adr-skill/assets/templates/adr-simple.md +46 -0
  400. package/skills/adr-skill/references/adr-conventions.md +95 -0
  401. package/skills/adr-skill/references/examples.md +193 -0
  402. package/skills/adr-skill/references/review-checklist.md +77 -0
  403. package/skills/adr-skill/references/template-variants.md +52 -0
  404. package/skills/adr-skill/scripts/bootstrap_adr.js +259 -0
  405. package/skills/adr-skill/scripts/new_adr.js +391 -0
  406. package/skills/adr-skill/scripts/set_adr_status.js +169 -0
  407. package/skills/c4-architecture/SKILL.md +295 -0
  408. package/skills/c4-architecture/references/advanced-patterns.md +552 -0
  409. package/skills/c4-architecture/references/c4-syntax.md +492 -0
  410. package/skills/c4-architecture/references/common-mistakes.md +437 -0
  411. package/skills/knowledge-base/SKILL.md +78 -1
  412. package/skills/lesson-learned/SKILL.md +105 -0
  413. package/skills/lesson-learned/references/anti-patterns.md +55 -0
  414. package/skills/lesson-learned/references/se-principles.md +109 -0
  415. package/skills/requirements-clarity/SKILL.md +324 -0
  416. package/skills/session-handoff/SKILL.md +189 -0
  417. package/skills/session-handoff/references/handoff-template.md +139 -0
  418. package/skills/session-handoff/references/resume-checklist.md +80 -0
  419. package/skills/session-handoff/scripts/check_staleness.js +269 -0
  420. package/skills/session-handoff/scripts/create_handoff.js +299 -0
  421. package/skills/session-handoff/scripts/list_handoffs.js +113 -0
  422. package/skills/session-handoff/scripts/validate_handoff.js +241 -0
  423. package/packages/chunker/dist/treesitter-chunker.d.ts +0 -44
  424. package/packages/chunker/dist/treesitter-chunker.js +0 -7
  425. package/packages/cli/dist/commands/init.d.ts +0 -15
  426. package/packages/cli/dist/commands/init.js +0 -305
  427. package/packages/tui/dist/LogPanel-DVB8Sv46.js +0 -4
  428. /package/scaffold/{copilot → general}/agents/Code-Reviewer-Alpha.agent.md +0 -0
  429. /package/scaffold/{copilot → general}/agents/Code-Reviewer-Beta.agent.md +0 -0
  430. /package/scaffold/{copilot → general}/agents/Debugger.agent.md +0 -0
  431. /package/scaffold/{copilot → general}/agents/Explorer.agent.md +0 -0
  432. /package/scaffold/{copilot → general}/agents/Frontend.agent.md +0 -0
  433. /package/scaffold/{copilot → general}/agents/Implementer.agent.md +0 -0
  434. /package/scaffold/{copilot → general}/agents/README.md +0 -0
  435. /package/scaffold/{copilot → general}/agents/Security.agent.md +0 -0
  436. /package/scaffold/{copilot → general}/agents/_shared/adr-protocol.md +0 -0
  437. /package/scaffold/{copilot → general}/agents/_shared/architect-reviewer-base.md +0 -0
  438. /package/scaffold/{copilot → general}/agents/_shared/code-reviewer-base.md +0 -0
  439. /package/scaffold/{copilot → general}/agents/_shared/decision-protocol.md +0 -0
  440. /package/scaffold/{copilot → general}/agents/_shared/forge-protocol.md +0 -0
  441. /package/scaffold/{copilot → general}/agents/_shared/researcher-base.md +0 -0
  442. /package/scaffold/{copilot → general}/agents/templates/adr-template.md +0 -0
  443. /package/scaffold/{copilot → general}/agents/templates/execution-state.md +0 -0
  444. /package/scaffold/{copilot → general}/prompts/ask.prompt.md +0 -0
  445. /package/scaffold/{copilot → general}/prompts/debug.prompt.md +0 -0
  446. /package/scaffold/{copilot → general}/prompts/design.prompt.md +0 -0
  447. /package/scaffold/{copilot → general}/prompts/implement.prompt.md +0 -0
  448. /package/scaffold/{copilot → general}/prompts/plan.prompt.md +0 -0
  449. /package/scaffold/{copilot → general}/prompts/review.prompt.md +0 -0
@@ -29,5 +29,4 @@ declare function watchList(): Array<{
29
29
  eventCount: number;
30
30
  }>;
31
31
  //#endregion
32
- export { WatchEvent, WatchHandle, WatchOptions, watchList, watchStart, watchStop };
33
- //# sourceMappingURL=watch.d.ts.map
32
+ export { WatchEvent, WatchHandle, WatchOptions, watchList, watchStart, watchStop };
@@ -1,2 +1 @@
1
- import{watch as e}from"node:fs";const t=new Map,n=[`node_modules`,`.git`,`dist`,`.turbo`,`.kb-data`,`cdk.out`];function r(r){if(t.size>=20)throw Error(`Watcher limit reached (20). Stop existing watchers first.`);let{path:i,maxEvents:a=100}=r,s=r.exclude??n,c=`watch-${Date.now()}`,l=[],u=e=>s.some(t=>o(e).includes(o(t))),d=e(i,{recursive:!0},(e,t)=>{if(t==null)return;let n=String(t);!n||u(n)||(l.push({type:e,path:o(n),timestamp:new Date().toISOString()}),l.length>a&&l.shift())});d.on(`error`,()=>{f.status=`stopped`,t.delete(c);try{d.close()}catch{}});let f={id:c,path:i,events:l,status:`watching`,stop:()=>{d.close(),f.status=`stopped`,t.delete(c)},getEvents:e=>e?l.filter(t=>t.timestamp>e):l};return t.set(c,{watcher:d,handle:f}),f}function i(e){let n=t.get(e);return n?(n.handle.stop(),!0):!1}function a(){return[...t.values()].map(e=>({id:e.handle.id,path:e.handle.path,status:e.handle.status,eventCount:e.handle.events.length}))}function o(e){return e.replace(/\\/g,`/`)}export{a as watchList,r as watchStart,i as watchStop};
2
- //# sourceMappingURL=watch.js.map
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};
@@ -44,5 +44,4 @@ interface WebFetchResult {
44
44
  */
45
45
  declare function webFetch(options: WebFetchOptions): Promise<WebFetchResult>;
46
46
  //#endregion
47
- export { WebFetchMode, WebFetchOptions, WebFetchResult, webFetch };
48
- //# sourceMappingURL=web-fetch.d.ts.map
47
+ export { WebFetchMode, WebFetchOptions, WebFetchResult, webFetch };
@@ -5,5 +5,4 @@ import{paragraphTruncate as e}from"./truncation.js";import t from"turndown";cons
5
5
  `)}function c(e,t,n){let r=[`---`];return e&&r.push(`**${e}**`),r.push(`URL: ${n}`),t&&r.push(`> ${t}`),r.push(`---
6
6
 
7
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};
9
- //# sourceMappingURL=web-fetch.js.map
8
+ `)}function l(e,t){try{return new URL(e,t).href}catch{return e}}const u=e;export{i as webFetch};
@@ -22,5 +22,4 @@ declare function webSearch(options: WebSearchOptions): Promise<WebSearchResult>;
22
22
  /** Parse search results from DuckDuckGo HTML. Exported for testing. */
23
23
  declare function parseSearchResults(html: string, query: string, limit: number): WebSearchResult;
24
24
  //#endregion
25
- export { WebSearchOptions, WebSearchResult, WebSearchResultItem, parseSearchResults, webSearch };
26
- //# sourceMappingURL=web-search.d.ts.map
25
+ export { WebSearchOptions, WebSearchResult, WebSearchResultItem, parseSearchResults, webSearch };
@@ -1,2 +1 @@
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};
2
- //# sourceMappingURL=web-search.js.map
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};
@@ -44,5 +44,4 @@ declare function addToWorkset(name: string, files: string[], cwd?: string): Work
44
44
  */
45
45
  declare function removeFromWorkset(name: string, files: string[], cwd?: string): Workset | null;
46
46
  //#endregion
47
- export { Workset, WorksetStore, addToWorkset, deleteWorkset, getWorkset, listWorksets, removeFromWorkset, saveWorkset };
48
- //# sourceMappingURL=workset.d.ts.map
47
+ export { Workset, WorksetStore, addToWorkset, deleteWorkset, getWorkset, listWorksets, removeFromWorkset, saveWorkset };
@@ -1,2 +1 @@
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";function o(e){return t(e??process.cwd(),`.kb-state`,`worksets.json`)}function s(e){let t=o(e);if(!n(t))return{worksets:{}};try{let e=i(t,`utf-8`);return JSON.parse(e)}catch{return{worksets:{}}}}function c(t,i){let s=o(i),c=e(s);n(c)||r(c,{recursive:!0}),a(s,`${JSON.stringify(t,null,2)}\n`,`utf-8`)}function l(e,t,n){let r=s(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,c(r,n?.cwd),o}function u(e,t){return s(t).worksets[e]??null}function d(e){let t=s(e);return Object.values(t.worksets).sort((e,t)=>new Date(t.updated).getTime()-new Date(e.updated).getTime())}function f(e,t){let n=s(t);return n.worksets[e]?(delete n.worksets[e],c(n,t),!0):!1}function p(e,t,n){let r=s(n).worksets[e]?.files??[];return l(e,[...new Set([...r,...t])],{cwd:n})}function m(e,t,n){let r=s(n).worksets[e];if(!r)return null;let i=new Set(t);return l(e,r.files.filter(e=>!i.has(e)),{cwd:n})}export{p as addToWorkset,f as deleteWorkset,u as getWorkset,d as listWorksets,m as removeFromWorkset,l as saveWorkset};
2
- //# sourceMappingURL=workset.js.map
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};
@@ -1,3 +1,2 @@
1
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-DVB8Sv46.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};
3
- //# sourceMappingURL=App-BAlmxCCw.js.map
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};
@@ -10,5 +10,4 @@ declare function App({
10
10
  context
11
11
  }: AppProps): React.ReactElement;
12
12
  //#endregion
13
- export { App };
14
- //# sourceMappingURL=App.d.ts.map
13
+ export { App };
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
2
- import{t as e}from"./App-BAlmxCCw.js";export{e as App};
2
+ import{t as e}from"./App-CYLNJLr6.js";export{e as App};
@@ -1,3 +1,2 @@
1
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,s as r,t as i}from"./jsx-runtime-Cof-kwFn.js";var a=e(r()),o=i();function s({store:e}){let[r,i]=(0,a.useState)([]),[s,c]=(0,a.useState)(null);return(0,a.useEffect)(()=>{let t=!0,n=async()=>{try{let n=(await e.listSourcePaths()).filter(e=>e.includes(`curated`));t&&(i(n.slice(-20).map(e=>({title:e.split(`/`).pop()??e,category:e.split(`/`).at(-2)??`uncategorized`}))),c(null))}catch(e){t&&c(e instanceof Error?e.message:String(e))}};n();let r=setInterval(n,1e4);return()=>{t=!1,clearInterval(r)}},[e]),(0,o.jsxs)(t,{flexDirection:`column`,borderStyle:`round`,paddingX:1,children:[(0,o.jsx)(n,{bold:!0,color:`cyan`,children:`Curated Knowledge`}),(0,o.jsx)(n,{children:` `}),s&&(0,o.jsxs)(n,{color:`red`,children:[`Error: `,s]}),r.length===0&&!s&&(0,o.jsx)(n,{color:`gray`,children:`No curated entries found`}),r.map(e=>(0,o.jsxs)(n,{children:[(0,o.jsx)(n,{color:`magenta`,children:`•`}),` `,e.title,` `,(0,o.jsxs)(n,{color:`gray`,children:[`(`,e.category,`)`]})]},e.title)),(0,o.jsx)(n,{children:` `}),(0,o.jsx)(n,{color:`gray`,children:`Refreshes every 10s`})]})}export{s as t};
3
- //# sourceMappingURL=CuratedPanel-sYdZAICX.js.map
2
+ import{r as e}from"./chunk-D6axbAb-.js";import{a as t,i as n,s as r,t as i}from"./jsx-runtime-Cof-kwFn.js";var a=e(r()),o=i();function s({store:e}){let[r,i]=(0,a.useState)([]),[s,c]=(0,a.useState)(null);return(0,a.useEffect)(()=>{let t=!0,n=async()=>{try{let n=(await e.listSourcePaths()).filter(e=>e.includes(`curated`));t&&(i(n.slice(-20).map(e=>({title:e.split(`/`).pop()??e,category:e.split(`/`).at(-2)??`uncategorized`}))),c(null))}catch(e){t&&c(e instanceof Error?e.message:String(e))}};n();let r=setInterval(n,1e4);return()=>{t=!1,clearInterval(r)}},[e]),(0,o.jsxs)(t,{flexDirection:`column`,borderStyle:`round`,paddingX:1,children:[(0,o.jsx)(n,{bold:!0,color:`cyan`,children:`Curated Knowledge`}),(0,o.jsx)(n,{children:` `}),s&&(0,o.jsxs)(n,{color:`red`,children:[`Error: `,s]}),r.length===0&&!s&&(0,o.jsx)(n,{color:`gray`,children:`No curated entries found`}),r.map(e=>(0,o.jsxs)(n,{children:[(0,o.jsx)(n,{color:`magenta`,children:`•`}),` `,e.title,` `,(0,o.jsxs)(n,{color:`gray`,children:[`(`,e.category,`)`]})]},e.title)),(0,o.jsx)(n,{children:` `}),(0,o.jsx)(n,{color:`gray`,children:`Refreshes every 10s`})]})}export{s as t};
@@ -0,0 +1,3 @@
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,s as r,t as i}from"./jsx-runtime-Cof-kwFn.js";import{exec as a,execFile as o}from"node:child_process";import{appendFileSync as s,existsSync as c,mkdirSync as l,readFileSync as u,readdirSync as d,unlinkSync as f}from"node:fs";import{dirname as p,join as m,resolve as h}from"node:path";import{promisify as g}from"node:util";import{fileURLToPath as _}from"node:url";import"turndown";g(a),m(p(_(import.meta.url)),`..`,`..`,`wasm`),new Set(Object.keys({".ts":`tree-sitter-typescript.wasm`,".tsx":`tree-sitter-typescript.wasm`,".mts":`tree-sitter-typescript.wasm`,".cts":`tree-sitter-typescript.wasm`,".js":`tree-sitter-javascript.wasm`,".jsx":`tree-sitter-javascript.wasm`,".mjs":`tree-sitter-javascript.wasm`,".cjs":`tree-sitter-javascript.wasm`,".py":`tree-sitter-python.wasm`,".go":`tree-sitter-go.wasm`,".rs":`tree-sitter-rust.wasm`,".java":`tree-sitter-java.wasm`}));const v={ai:`.ai`,aiKb:`.ai/kb`,aiCurated:`.ai/curated`,data:`.kb-data`,state:`.kb-state`,logs:`.kb-state/logs`,brainstorm:`.brainstorm`,handoffs:`.handoffs`};v.data;const y={debug:0,info:1,warn:2,error:3};let b=process.env.KB_LOG_LEVEL??`info`,x=process.env.KB_LOG_FILE_SINK===`true`||process.env.KB_LOG_FILE_SINK!==`false`&&!process.env.VITEST&&process.env.NODE_ENV!==`test`;function S(){return x?process.env.VITEST||process.env.NODE_ENV===`test`?process.env.KB_LOG_FILE_SINK===`true`:!0:!1}let C;function w(){return C||=h(process.cwd(),v.logs),C}function T(e){let t=e.toISOString().slice(0,10);return m(w(),`${t}.jsonl`)}let E=0;function D(){let e=Date.now();if(!(e-E<36e5)){E=e;try{let t=w(),n=new Date(e-30*864e5).toISOString().slice(0,10);for(let e of d(t))if(e.endsWith(`.jsonl`)&&e.slice(0,10)<n)try{f(m(t,e))}catch{}}catch{}}}function O(e,t){try{l(w(),{recursive:!0}),s(T(t),`${e}\n`),D()}catch{}}function k(e){function t(t,n,r){if(y[t]<y[b])return;let i=new Date,a={ts:i.toISOString(),level:t,component:e,msg:n,...r},o=JSON.stringify(a);console.error(o),S()&&(t===`warn`||t===`error`)&&O(o,i)}return{debug:(e,n)=>t(`debug`,e,n),info:(e,n)=>t(`info`,e,n),warn:(e,n)=>t(`warn`,e,n),error:(e,n)=>t(`error`,e,n)}}const A=k(`query-executor`),j=p(_(import.meta.url));function M(){let e=m(j,`..`,`queries`);if(c(e))return e;let t=m(j,`..`,`..`,`src`,`queries`);return c(t)?t:e}const N=M(),P={".ts":`typescript`,".tsx":`typescript`,".mts":`typescript`,".cts":`typescript`,".js":`javascript`,".jsx":`javascript`,".mjs":`javascript`,".cjs":`javascript`,".py":`python`,".go":`go`,".rs":`rust`,".java":`java`};var F=class{queryCache=new Map;scmCache=new Map;execute(e,t,n,r){let i=this.getOrCompile(t,n,r);return i?i.matches(e).map(e=>I(e)):[]}executeCaptures(e,t,n,r){let i=this.getOrCompile(t,n,r);return i?i.captures(e).map(e=>L(e)):[]}executeRaw(e,t,n){return t.query(n).matches(e).map(e=>I(e))}getOrCompile(e,t,n){let r=P[t];if(!r)return null;let i=`${r}:${n}`,a=this.queryCache.get(i);if(a)return a;let o=this.loadScm(r,n);if(!o)return null;try{let t=e.query(o);return this.queryCache.set(i,t),t}catch(e){throw A.warn(`Failed to compile query`,{langDir:r,queryType:n,error:String(e)}),Error(`Failed to compile ${r}/${n}.scm: ${String(e)}`)}}loadScm(e,t){let n=`${e}:${t}`,r=this.scmCache.get(n);if(r!==void 0)return r;let i=m(N,e,`${t}.scm`);try{let e=u(i,`utf-8`);return this.scmCache.set(n,e),e}catch{return A.info(`Query file not found (graceful skip)`,{langDir:e,queryType:t}),null}}dispose(){this.queryCache.clear(),this.scmCache.clear()}static resolveQueryDir(e){return m(N,e)}};function I(e){let t=new Map;for(let n of e.captures)t.set(n.name,L(n));return{pattern:e.pattern,captures:t}}function L(e){let{node:t}=e;return{name:e.name,text:t.text,nodeType:t.type,startLine:t.startPosition.row,endLine:t.endPosition.row,startColumn:t.startPosition.column,endColumn:t.endPosition.column,node:t}}new F,new F,new F,new F,new F,new Set(`.ts,.tsx,.js,.jsx,.mjs,.cjs,.java,.kt,.kts,.scala,.py,.go,.rs,.rb,.php,.swift,.cs,.c,.cpp,.h,.hpp,.sh,.bash,.ps1,.sql,.graphql,.gql,.proto,.json,.yaml,.yml,.toml,.env,.ini,.cfg,.xml,.pom,.gradle,.tf,.hcl,.lock,.mjs`.split(`,`)),`${v.state}`,new Set([`node_modules`,`.git`,`dist`,`build`,`coverage`,`.turbo`,`.cache`,`cdk.out`,v.state]),v.state,new Set([`.git`,v.data,v.state,`.turbo`,`.yarn`,`build`,`coverage`,`dist`,`node_modules`]),g(o),`${v.state}`,new Set(`if_statement.for_statement.for_in_statement.while_statement.do_statement.switch_case.catch_clause.ternary_expression.if_statement.for_statement.while_statement.except_clause.list_comprehension.if_statement.for_statement.enhanced_for_statement.while_statement.catch_clause.ternary_expression.if_statement.for_statement.select_statement.if_expression.for_expression.while_expression.match_arm`.split(`.`)),v.state;function R(){return h(process.cwd(),v.state,`replay.jsonl`)}function z(e={}){let t=R(),n;try{n=u(t,`utf-8`)}catch{return[]}let r=n.trim().split(`
3
+ `).filter(Boolean),i=[];for(let e of r)try{i.push(JSON.parse(e))}catch{}if(e.tool&&(i=i.filter(t=>t.tool===e.tool)),e.source&&(i=i.filter(t=>t.source===e.source)),e.since){let t=e.since;i=i.filter(e=>e.ts>=t)}let a=e.last??20;return i.slice(-a)}v.state,g(a),v.data,`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(`,`),v.state;var B=e(r()),V=i();function H(){let[e,r]=(0,B.useState)([]);return(0,B.useEffect)(()=>{let e=()=>{r(z({last:30}))};e();let t=setInterval(e,2e3);return()=>clearInterval(t)},[]),(0,V.jsxs)(t,{flexDirection:`column`,borderStyle:`round`,paddingX:1,children:[(0,V.jsx)(n,{bold:!0,color:`cyan`,children:`Activity Log`}),(0,V.jsx)(n,{children:` `}),e.length===0&&(0,V.jsx)(n,{color:`gray`,children:`No activity recorded yet`}),e.slice().reverse().map((e,t)=>{let r=e.ts.split(`T`)[1]?.split(`.`)[0]??e.ts,i=e.status===`ok`?`green`:`red`;return(0,V.jsxs)(n,{children:[(0,V.jsx)(n,{color:`gray`,children:r}),` `,(0,V.jsx)(n,{color:i,children:e.status===`ok`?`✓`:`✗`}),` `,(0,V.jsx)(n,{bold:!0,children:e.tool}),` `,(0,V.jsxs)(n,{color:`gray`,children:[`(`,e.durationMs,`ms)`]})]},`${e.ts}-${t}`)}),(0,V.jsx)(n,{children:` `}),(0,V.jsx)(n,{color:`gray`,children:`Refreshes every 2s │ Showing last 30`})]})}export{H as t};
@@ -1,3 +1,2 @@
1
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,o as i,s as a,t as o}from"./jsx-runtime-Cof-kwFn.js";var s=e(a(),1);function c({value:e,placeholder:t=``,focus:a=!0,mask:o,highlightPastedText:c=!1,showCursor:l=!0,onChange:u,onSubmit:d}){let[f,p]=(0,s.useState)({cursorOffset:(e||``).length,cursorWidth:0}),{cursorOffset:m,cursorWidth:h}=f;(0,s.useEffect)(()=>{p(t=>{if(!a||!l)return t;let n=e||``;return t.cursorOffset>n.length-1?{cursorOffset:n.length,cursorWidth:0}:t})},[e,a,l]);let g=c?h:0,_=o?o.repeat(e.length):e,v=_,y=t?i.grey(t):void 0;if(l&&a){y=t.length>0?i.inverse(t[0])+i.grey(t.slice(1)):i.inverse(` `),v=_.length>0?``:i.inverse(` `);let e=0;for(let t of _)v+=e>=m-g&&e<=m?i.inverse(t):t,e++;_.length>0&&m===_.length&&(v+=i.inverse(` `))}return r((t,n)=>{if(n.upArrow||n.downArrow||n.ctrl&&t===`c`||n.tab||n.shift&&n.tab)return;if(n.return){d&&d(e);return}let r=m,i=e,a=0;n.leftArrow?l&&r--:n.rightArrow?l&&r++:n.backspace||n.delete?m>0&&(i=e.slice(0,m-1)+e.slice(m,e.length),r--):(i=e.slice(0,m)+t+e.slice(m,e.length),r+=t.length,t.length>1&&(a=t.length)),m<0&&(r=0),m>e.length&&(r=e.length),p({cursorOffset:r,cursorWidth:a}),i!==e&&u(i)},{isActive:a}),s.createElement(n,null,t?_.length>0?v:y:v)}var l=o();function u({store:e,embedder:r}){let[i,a]=(0,s.useState)(``),[o,u]=(0,s.useState)([]),[d,f]=(0,s.useState)(!1);return(0,l.jsxs)(t,{flexDirection:`column`,borderStyle:`round`,paddingX:1,children:[(0,l.jsx)(n,{bold:!0,color:`cyan`,children:`Search`}),(0,l.jsxs)(t,{children:[(0,l.jsx)(n,{color:`green`,children:`> `}),(0,l.jsx)(c,{value:i,onChange:a,onSubmit:async t=>{if(t.trim()){f(!0);try{let n=await r.embed(t);u((await e.search(n,{limit:10})).map(e=>({path:e.record.sourcePath,score:e.score,snippet:e.record.content.slice(0,80)})))}catch{u([])}finally{f(!1)}}}})]}),(0,l.jsx)(n,{children:` `}),d&&(0,l.jsx)(n,{color:`yellow`,children:`Searching…`}),!d&&o.length===0&&i&&(0,l.jsx)(n,{color:`gray`,children:`No results. Press Enter to search.`}),o.map((e,r)=>(0,l.jsxs)(t,{flexDirection:`column`,children:[(0,l.jsxs)(n,{children:[(0,l.jsxs)(n,{color:`green`,children:[(r+1).toString(),`.`]}),` `,(0,l.jsx)(n,{bold:!0,children:e.path}),(0,l.jsxs)(n,{color:`gray`,children:[` (score: `,e.score.toFixed(3),`)`]})]}),(0,l.jsxs)(n,{color:`gray`,children:[` `,e.snippet]})]},`${e.path}-${r}`))]})}export{u as t};
3
- //# sourceMappingURL=SearchPanel-DREo6zgt.js.map
2
+ import{r as e}from"./chunk-D6axbAb-.js";import{a as t,i as n,n as r,o as i,s as a,t as o}from"./jsx-runtime-Cof-kwFn.js";var s=e(a(),1);function c({value:e,placeholder:t=``,focus:a=!0,mask:o,highlightPastedText:c=!1,showCursor:l=!0,onChange:u,onSubmit:d}){let[f,p]=(0,s.useState)({cursorOffset:(e||``).length,cursorWidth:0}),{cursorOffset:m,cursorWidth:h}=f;(0,s.useEffect)(()=>{p(t=>{if(!a||!l)return t;let n=e||``;return t.cursorOffset>n.length-1?{cursorOffset:n.length,cursorWidth:0}:t})},[e,a,l]);let g=c?h:0,_=o?o.repeat(e.length):e,v=_,y=t?i.grey(t):void 0;if(l&&a){y=t.length>0?i.inverse(t[0])+i.grey(t.slice(1)):i.inverse(` `),v=_.length>0?``:i.inverse(` `);let e=0;for(let t of _)v+=e>=m-g&&e<=m?i.inverse(t):t,e++;_.length>0&&m===_.length&&(v+=i.inverse(` `))}return r((t,n)=>{if(n.upArrow||n.downArrow||n.ctrl&&t===`c`||n.tab||n.shift&&n.tab)return;if(n.return){d&&d(e);return}let r=m,i=e,a=0;n.leftArrow?l&&r--:n.rightArrow?l&&r++:n.backspace||n.delete?m>0&&(i=e.slice(0,m-1)+e.slice(m,e.length),r--):(i=e.slice(0,m)+t+e.slice(m,e.length),r+=t.length,t.length>1&&(a=t.length)),m<0&&(r=0),m>e.length&&(r=e.length),p({cursorOffset:r,cursorWidth:a}),i!==e&&u(i)},{isActive:a}),s.createElement(n,null,t?_.length>0?v:y:v)}var l=o();function u({store:e,embedder:r}){let[i,a]=(0,s.useState)(``),[o,u]=(0,s.useState)([]),[d,f]=(0,s.useState)(!1);return(0,l.jsxs)(t,{flexDirection:`column`,borderStyle:`round`,paddingX:1,children:[(0,l.jsx)(n,{bold:!0,color:`cyan`,children:`Search`}),(0,l.jsxs)(t,{children:[(0,l.jsx)(n,{color:`green`,children:`> `}),(0,l.jsx)(c,{value:i,onChange:a,onSubmit:async t=>{if(t.trim()){f(!0);try{let n=await r.embed(t);u((await e.search(n,{limit:10})).map(e=>({path:e.record.sourcePath,score:e.score,snippet:e.record.content.slice(0,80)})))}catch{u([])}finally{f(!1)}}}})]}),(0,l.jsx)(n,{children:` `}),d&&(0,l.jsx)(n,{color:`yellow`,children:`Searching…`}),!d&&o.length===0&&i&&(0,l.jsx)(n,{color:`gray`,children:`No results. Press Enter to search.`}),o.map((e,r)=>(0,l.jsxs)(t,{flexDirection:`column`,children:[(0,l.jsxs)(n,{children:[(0,l.jsxs)(n,{color:`green`,children:[(r+1).toString(),`.`]}),` `,(0,l.jsx)(n,{bold:!0,children:e.path}),(0,l.jsxs)(n,{color:`gray`,children:[` (score: `,e.score.toFixed(3),`)`]})]}),(0,l.jsxs)(n,{color:`gray`,children:[` `,e.snippet]})]},`${e.path}-${r}`))]})}export{u as t};
@@ -1,3 +1,2 @@
1
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,s as r,t as i}from"./jsx-runtime-Cof-kwFn.js";var a=e(r()),o=i();function s({store:e}){let[r,i]=(0,a.useState)(null),[s,c]=(0,a.useState)(null);return(0,a.useEffect)(()=>{let t=!0,n=async()=>{try{let n=await e.getStats(),r=await e.listSourcePaths();t&&(i({totalRecords:n.totalRecords,totalFiles:n.totalFiles??0,sourcePaths:r}),c(null))}catch(e){t&&c(e instanceof Error?e.message:String(e))}};n();let r=setInterval(n,5e3);return()=>{t=!1,clearInterval(r)}},[e]),(0,o.jsxs)(t,{flexDirection:`column`,borderStyle:`round`,paddingX:1,children:[(0,o.jsx)(n,{bold:!0,color:`cyan`,children:`Index Status`}),(0,o.jsx)(n,{children:` `}),s&&(0,o.jsxs)(n,{color:`red`,children:[`Error: `,s]}),r&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(n,{children:[`Records: `,(0,o.jsx)(n,{bold:!0,children:r.totalRecords.toLocaleString()})]}),(0,o.jsxs)(n,{children:[`Files: `,(0,o.jsx)(n,{bold:!0,children:r.totalFiles.toLocaleString()})]}),(0,o.jsxs)(n,{children:[`Sources: `,(0,o.jsx)(n,{bold:!0,children:r.sourcePaths.length})]}),r.sourcePaths.slice(0,5).map(e=>(0,o.jsxs)(n,{color:`gray`,children:[` `,`• `,e]},e)),r.sourcePaths.length>5&&(0,o.jsxs)(n,{color:`gray`,children:[` `,`… and `,r.sourcePaths.length-5,` more`]})]}),!r&&!s&&(0,o.jsx)(n,{color:`yellow`,children:`Loading…`}),(0,o.jsx)(n,{children:` `}),(0,o.jsx)(n,{color:`gray`,children:`Refreshes every 5s`})]})}export{s as t};
3
- //# sourceMappingURL=StatusPanel-2ex8fLOO.js.map
2
+ import{r as e}from"./chunk-D6axbAb-.js";import{a as t,i as n,s as r,t as i}from"./jsx-runtime-Cof-kwFn.js";var a=e(r()),o=i();function s({store:e}){let[r,i]=(0,a.useState)(null),[s,c]=(0,a.useState)(null);return(0,a.useEffect)(()=>{let t=!0,n=async()=>{try{let n=await e.getStats(),r=await e.listSourcePaths();t&&(i({totalRecords:n.totalRecords,totalFiles:n.totalFiles??0,sourcePaths:r}),c(null))}catch(e){t&&c(e instanceof Error?e.message:String(e))}};n();let r=setInterval(n,5e3);return()=>{t=!1,clearInterval(r)}},[e]),(0,o.jsxs)(t,{flexDirection:`column`,borderStyle:`round`,paddingX:1,children:[(0,o.jsx)(n,{bold:!0,color:`cyan`,children:`Index Status`}),(0,o.jsx)(n,{children:` `}),s&&(0,o.jsxs)(n,{color:`red`,children:[`Error: `,s]}),r&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(n,{children:[`Records: `,(0,o.jsx)(n,{bold:!0,children:r.totalRecords.toLocaleString()})]}),(0,o.jsxs)(n,{children:[`Files: `,(0,o.jsx)(n,{bold:!0,children:r.totalFiles.toLocaleString()})]}),(0,o.jsxs)(n,{children:[`Sources: `,(0,o.jsx)(n,{bold:!0,children:r.sourcePaths.length})]}),r.sourcePaths.slice(0,5).map(e=>(0,o.jsxs)(n,{color:`gray`,children:[` `,`• `,e]},e)),r.sourcePaths.length>5&&(0,o.jsxs)(n,{color:`gray`,children:[` `,`… and `,r.sourcePaths.length-5,` more`]})]}),!r&&!s&&(0,o.jsx)(n,{color:`yellow`,children:`Loading…`}),(0,o.jsx)(n,{children:` `}),(0,o.jsx)(n,{color:`gray`,children:`Refreshes every 5s`})]})}export{s as t};
@@ -4,5 +4,4 @@ import{n as e,r as t,t as n}from"./chunk-D6axbAb-.js";import r from"react-devtoo
4
4
  `)),i.removeListener(`error`,S),d.setSocket(i,a,{allowSynchronousEvents:this.options.allowSynchronousEvents,maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation}),this.clients&&(this.clients.add(d),d.on(`close`,()=>{this.clients.delete(d),this._shouldEmitClose&&!this.clients.size&&process.nextTick(x,this)})),o(d,r)}};function b(e,t){for(let n of Object.keys(t))e.on(n,t[n]);return function(){for(let n of Object.keys(t))e.removeListener(n,t[n])}}function x(e){e._state=2,e.emit(`close`)}function S(){this.destroy()}function C(e,t,n,r){n||=a.STATUS_CODES[t],r={Connection:`close`,"Content-Type":`text/html`,"Content-Length":Buffer.byteLength(n),...r},e.once(`finish`,e.destroy),e.end(`HTTP/1.1 ${t} ${a.STATUS_CODES[t]}\r\n`+Object.keys(r).map(e=>`${e}: ${r[e]}`).join(`\r
5
5
  `)+`\r
6
6
  \r
7
- `+n)}function w(e,t,n,r,i,a){if(e.listenerCount(`wsClientError`)){let r=Error(i);Error.captureStackTrace(r,w),e.emit(`wsClientError`,r,n,t)}else C(n,r,i,a)}}));m(),f(),s(),l(),u(),h();var _=t(p(),1);g();var v=_.default;const y=global;y.WebSocket||=v,y.window||=global,y.self||=global,y.window.__REACT_DEVTOOLS_COMPONENT_FILTERS__=[{type:1,value:7,isEnabled:!0},{type:2,value:`InternalApp`,isEnabled:!0,isValid:!0},{type:2,value:`InternalAppContext`,isEnabled:!0,isValid:!0},{type:2,value:`InternalStdoutContext`,isEnabled:!0,isValid:!0},{type:2,value:`InternalStderrContext`,isEnabled:!0,isValid:!0},{type:2,value:`InternalStdinContext`,isEnabled:!0,isValid:!0},{type:2,value:`InternalFocusContext`,isEnabled:!0,isValid:!0}],r.initialize(),r.connectToDevTools();export{};
8
- //# sourceMappingURL=devtools-DUyj952l.js.map
7
+ `+n)}function w(e,t,n,r,i,a){if(e.listenerCount(`wsClientError`)){let r=Error(i);Error.captureStackTrace(r,w),e.emit(`wsClientError`,r,n,t)}else C(n,r,i,a)}}));m(),f(),s(),l(),u(),h();var _=t(p(),1);g();var v=_.default;const y=global;y.WebSocket||=v,y.window||=global,y.self||=global,y.window.__REACT_DEVTOOLS_COMPONENT_FILTERS__=[{type:1,value:7,isEnabled:!0},{type:2,value:`InternalApp`,isEnabled:!0,isValid:!0},{type:2,value:`InternalAppContext`,isEnabled:!0,isValid:!0},{type:2,value:`InternalStdoutContext`,isEnabled:!0,isValid:!0},{type:2,value:`InternalStderrContext`,isEnabled:!0,isValid:!0},{type:2,value:`InternalStdinContext`,isEnabled:!0,isValid:!0},{type:2,value:`InternalFocusContext`,isEnabled:!0,isValid:!0}],r.initialize(),r.connectToDevTools();export{};
@@ -25,5 +25,4 @@ interface IEmbedder {
25
25
  shutdown?(): Promise<void>;
26
26
  } //#endregion
27
27
  //#endregion
28
- export { IEmbedder as t };
29
- //# sourceMappingURL=embedder.interface-D4ew0HPW.d.ts.map
28
+ export { IEmbedder as t };
@@ -10,5 +10,4 @@ interface TUIContext {
10
10
  }
11
11
  declare function launch(context: TUIContext): void;
12
12
  //#endregion
13
- export { launch as n, TUIContext as t };
14
- //# sourceMappingURL=index-B9VpfVPP.d.ts.map
13
+ export { launch as n, TUIContext as t };
@@ -1,3 +1,2 @@
1
1
  import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
2
- import{r as e}from"./chunk-D6axbAb-.js";import{r as t,s as n}from"./jsx-runtime-Cof-kwFn.js";import{t as r}from"./App-BAlmxCCw.js";var i=e(n());function a(e){t(i.createElement(r,{context:e}))}export{a as launch};
3
- //# sourceMappingURL=index.js.map
2
+ import{r as e}from"./chunk-D6axbAb-.js";import{r as t,s as n}from"./jsx-runtime-Cof-kwFn.js";import{t as r}from"./App-CYLNJLr6.js";var i=e(n());function a(e){t(i.createElement(r,{context:e}))}export{a as launch};
@@ -313,5 +313,4 @@ var Ho=n((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react
313
313
  <%s {...props} />
314
314
  React keys must be passed directly to JSX without using spread:
315
315
  let props = %s;
316
- <%s key={someKey} {...props} />`,o,p,m,p),de[p+o]=!0)}if(p=null,i!==void 0&&(r(i),p=``+i),s(n)&&(r(n.key),p=``+n.key),`key`in n)for(var h in i={},n)h!==`key`&&(i[h]=n[h]);else i=n;return p&&c(i,typeof e==`function`?e.displayName||e.name||`Unknown`:e),u(e,p,i,a(),l,d)}function f(e){p(e)?e._store&&(e._store.validated=1):typeof e==`object`&&e&&e.$$typeof===re&&(e._payload.status===`fulfilled`?p(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function p(e){return typeof e==`object`&&!!e&&e.$$typeof===h}var m=_(),h=Symbol.for(`react.transitional.element`),g=Symbol.for(`react.portal`),v=Symbol.for(`react.fragment`),y=Symbol.for(`react.strict_mode`),b=Symbol.for(`react.profiler`),ee=Symbol.for(`react.consumer`),te=Symbol.for(`react.context`),ne=Symbol.for(`react.forward_ref`),x=Symbol.for(`react.suspense`),S=Symbol.for(`react.suspense_list`),C=Symbol.for(`react.memo`),re=Symbol.for(`react.lazy`),w=Symbol.for(`react.activity`),T=Symbol.for(`react.client.reference`),ie=m.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,E=Object.prototype.hasOwnProperty,ae=Array.isArray,oe=console.createTask?console.createTask:function(){return null};m={react_stack_bottom_frame:function(e){return e()}};var se,ce={},le=m.react_stack_bottom_frame.bind(m,o)(),ue=oe(i(o)),de={};e.Fragment=v,e.jsx=function(e,t,n){var r=1e4>ie.recentlyCreatedOwnerStacks++;return d(e,t,n,!1,r?Error(`react-stack-top-frame`):le,r?oe(i(e)):ue)},e.jsxs=function(e,t,n){var r=1e4>ie.recentlyCreatedOwnerStacks++;return d(e,t,n,!0,r?Error(`react-stack-top-frame`):le,r?oe(i(e)):ue)}})()})),Wo=n(((e,t)=>{process.env.NODE_ENV===`production`?t.exports=Ho():t.exports=Uo()}));export{to as a,no as i,Vo as n,Mi as o,yo as r,_ as s,Wo as t};
317
- //# sourceMappingURL=jsx-runtime-Cof-kwFn.js.map
316
+ <%s key={someKey} {...props} />`,o,p,m,p),de[p+o]=!0)}if(p=null,i!==void 0&&(r(i),p=``+i),s(n)&&(r(n.key),p=``+n.key),`key`in n)for(var h in i={},n)h!==`key`&&(i[h]=n[h]);else i=n;return p&&c(i,typeof e==`function`?e.displayName||e.name||`Unknown`:e),u(e,p,i,a(),l,d)}function f(e){p(e)?e._store&&(e._store.validated=1):typeof e==`object`&&e&&e.$$typeof===re&&(e._payload.status===`fulfilled`?p(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function p(e){return typeof e==`object`&&!!e&&e.$$typeof===h}var m=_(),h=Symbol.for(`react.transitional.element`),g=Symbol.for(`react.portal`),v=Symbol.for(`react.fragment`),y=Symbol.for(`react.strict_mode`),b=Symbol.for(`react.profiler`),ee=Symbol.for(`react.consumer`),te=Symbol.for(`react.context`),ne=Symbol.for(`react.forward_ref`),x=Symbol.for(`react.suspense`),S=Symbol.for(`react.suspense_list`),C=Symbol.for(`react.memo`),re=Symbol.for(`react.lazy`),w=Symbol.for(`react.activity`),T=Symbol.for(`react.client.reference`),ie=m.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,E=Object.prototype.hasOwnProperty,ae=Array.isArray,oe=console.createTask?console.createTask:function(){return null};m={react_stack_bottom_frame:function(e){return e()}};var se,ce={},le=m.react_stack_bottom_frame.bind(m,o)(),ue=oe(i(o)),de={};e.Fragment=v,e.jsx=function(e,t,n){var r=1e4>ie.recentlyCreatedOwnerStacks++;return d(e,t,n,!1,r?Error(`react-stack-top-frame`):le,r?oe(i(e)):ue)},e.jsxs=function(e,t,n){var r=1e4>ie.recentlyCreatedOwnerStacks++;return d(e,t,n,!0,r?Error(`react-stack-top-frame`):le,r?oe(i(e)):ue)}})()})),Wo=n(((e,t)=>{process.env.NODE_ENV===`production`?t.exports=Ho():t.exports=Uo()}));export{to as a,no as i,Vo as n,Mi as o,yo as r,_ as s,Wo as t};
@@ -10,5 +10,4 @@ declare function CuratedPanel({
10
10
  store
11
11
  }: CuratedPanelProps): React.ReactElement;
12
12
  //#endregion
13
- export { CuratedPanel };
14
- //# sourceMappingURL=CuratedPanel.d.ts.map
13
+ export { CuratedPanel };
@@ -4,5 +4,4 @@ import React from "react";
4
4
  //#region packages/tui/src/panels/LogPanel.d.ts
5
5
  declare function LogPanel(): React.ReactElement;
6
6
  //#endregion
7
- export { LogPanel };
8
- //# sourceMappingURL=LogPanel.d.ts.map
7
+ export { LogPanel };
@@ -1,2 +1,2 @@
1
1
  import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
2
- import{t as e}from"../LogPanel-DVB8Sv46.js";export{e as LogPanel};
2
+ import{t as e}from"../LogPanel-DtMnoyXT.js";export{e as LogPanel};
@@ -13,5 +13,4 @@ declare function SearchPanel({
13
13
  embedder
14
14
  }: SearchPanelProps): React.ReactElement;
15
15
  //#endregion
16
- export { SearchPanel };
17
- //# sourceMappingURL=SearchPanel.d.ts.map
16
+ export { SearchPanel };
@@ -10,5 +10,4 @@ declare function StatusPanel({
10
10
  store
11
11
  }: StatusPanelProps): React.ReactElement;
12
12
  //#endregion
13
- export { StatusPanel };
14
- //# sourceMappingURL=StatusPanel.d.ts.map
13
+ export { StatusPanel };
@@ -147,5 +147,4 @@ interface IKnowledgeStore {
147
147
  close(): Promise<void>;
148
148
  } //#endregion
149
149
  //#endregion
150
- export { KBConfig as n, IKnowledgeStore as t };
151
- //# sourceMappingURL=store.interface-CnY6SPOH.d.ts.map
150
+ export { KBConfig as n, IKnowledgeStore as t };
@@ -12,3 +12,10 @@ You are **Architect-Reviewer-Alpha**, the primary Architect-Reviewer agent.
12
12
  You are **not** the Code-Reviewer agent. Code-Reviewer handles correctness, testing, security, and code quality. You handle the big picture: service boundaries, dependency direction, pattern adherence, and structural health.
13
13
 
14
14
  **Read .github/agents/_shared/architect-reviewer-base.md NOW** — it contains your complete workflow and guidelines. All instructions there apply to you.
15
+
16
+ ## Skills (load on demand)
17
+
18
+ | Skill | When to load |
19
+ |-------|--------------|
20
+ | `c4-architecture` | When reviewing architectural diagrams or boundary changes |
21
+ | `adr-skill` | When the review involves architecture decisions — reference or create ADRs |
@@ -12,3 +12,10 @@ You are **Architect-Reviewer-Beta**, a variant of Architect-Reviewer. Same respo
12
12
  You are **not** the Code-Reviewer agent. Code-Reviewer handles correctness, testing, security, and code quality. You handle the big picture: service boundaries, dependency direction, pattern adherence, and structural health.
13
13
 
14
14
  **Read .github/agents/_shared/architect-reviewer-base.md NOW** — it contains your complete workflow and guidelines. All instructions there apply to you.
15
+
16
+ ## Skills (load on demand)
17
+
18
+ | Skill | When to load |
19
+ |-------|--------------|
20
+ | `c4-architecture` | When reviewing architectural diagrams or boundary changes |
21
+ | `adr-skill` | When the review involves architecture decisions — reference or create ADRs |
@@ -11,6 +11,13 @@ You are the **Documenter**, documentation specialist that creates and maintains
11
11
 
12
12
  **Read `AGENTS.md`** in the workspace root for project conventions and KB protocol.
13
13
 
14
+ ## Skills (load on demand)
15
+
16
+ | Skill | When to load |
17
+ |-------|--------------|
18
+ | `c4-architecture` | When documenting system architecture — generate C4 Mermaid diagrams |
19
+ | `adr-skill` | When documenting architecture decisions — create or update ADRs |
20
+
14
21
  ## Documentation Protocol
15
22
 
16
23
  1. **KB Recall** — Search for existing docs, conventions, architecture decisions
@@ -15,6 +15,14 @@ You are the **Orchestrator**, master conductor that orchestrates the full develo
15
15
  4. **Read _shared/forge-protocol.md** for the quality gate protocol.
16
16
  5. **Use templates/adr-template.md** when writing Architecture Decision Records.
17
17
 
18
+ ## Skills (load on demand)
19
+
20
+ | Skill | When to load |
21
+ |-------|--------------|
22
+ | `brainstorming` | Before any creative/design work (Phase 0 Design Gate) |
23
+ | `session-handoff` | When context window is filling up, session ending, or major milestone completed |
24
+ | `lesson-learned` | After completing work — extract engineering principles and persist via `remember` |
25
+
18
26
  ## Agent Arsenal
19
27
 
20
28
  | Agent | Purpose | Model | Category |
@@ -12,6 +12,15 @@ You are the **Planner**, autonomous planner that researches codebases and writes
12
12
 
13
13
  **Read _shared/code-agent-base.md NOW** — it contains KB recall, FORGE, and handoff protocols.
14
14
 
15
+ ## Skills (load on demand)
16
+
17
+ | Skill | When to load |
18
+ |-------|--------------|
19
+ | `brainstorming` | Before planning any new feature, component, or behavior change — use Visual Companion for architecture mockups |
20
+ | `requirements-clarity` | When requirements are vague or complex (>2 days) — score 0-100 before committing to a plan |
21
+ | `c4-architecture` | When the plan involves architectural changes — generate C4 diagrams |
22
+ | `adr-skill` | When the plan involves non-trivial technical decisions — create executable ADRs |
23
+
15
24
  ## Planning Workflow
16
25
 
17
26
  1. **KB Recall** — Search for past plans, architecture decisions, known patterns
@@ -13,6 +13,12 @@ You are the **Refactor**, code refactoring specialist that improves structure, r
13
13
 
14
14
  **Read _shared/code-agent-base.md NOW** — it contains KB recall, FORGE, and handoff protocols.
15
15
 
16
+ ## Skills (load on demand)
17
+
18
+ | Skill | When to load |
19
+ |-------|--------------|
20
+ | `lesson-learned` | After completing a refactor — extract principles from the before/after diff |
21
+
16
22
  ## Refactoring Protocol
17
23
 
18
24
  1. **KB Recall** — Search for established patterns and conventions
@@ -10,3 +10,11 @@ model: Claude Opus 4.6 (copilot)
10
10
  You are **Researcher-Alpha**, the primary deep research agent. During multi-model decision sessions, you provide deep reasoning and nuanced system design.
11
11
 
12
12
  **Read .github/agents/_shared/researcher-base.md NOW** — it contains your complete workflow and guidelines. All instructions there apply to you.
13
+
14
+ ## Skills (load on demand)
15
+
16
+ | Skill | When to load |
17
+ |-------|--------------|
18
+ | `lesson-learned` | When analyzing past changes to extract engineering principles |
19
+ | `c4-architecture` | When researching system architecture — produce C4 diagrams |
20
+ | `adr-skill` | When the research involves a technical decision — draft an ADR |
@@ -10,3 +10,11 @@ model: Claude Sonnet 4.6 (copilot)
10
10
  You are **Researcher-Beta**, a variant of the Researcher agent. You exist to provide a **different LLM perspective** during multi-model decision sessions. Approach problems with the same rigor but bring your own reasoning style.
11
11
 
12
12
  **Read .github/agents/_shared/researcher-base.md NOW** — it contains your complete workflow and guidelines. All instructions there apply to you.
13
+
14
+ ## Skills (load on demand)
15
+
16
+ | Skill | When to load |
17
+ |-------|--------------|
18
+ | `lesson-learned` | When analyzing past changes to extract engineering principles |
19
+ | `c4-architecture` | When researching system architecture — produce C4 diagrams |
20
+ | `adr-skill` | When the research involves a technical decision — draft an ADR |
@@ -10,3 +10,11 @@ model: Gemini 3.1 Pro (Preview) (copilot)
10
10
  You are **Researcher-Delta**, a variant of the Researcher agent. You exist to provide a **different LLM perspective** during multi-model decision sessions. Approach problems with the same rigor but bring your own reasoning style.
11
11
 
12
12
  **Read .github/agents/_shared/researcher-base.md NOW** — it contains your complete workflow and guidelines. All instructions there apply to you.
13
+
14
+ ## Skills (load on demand)
15
+
16
+ | Skill | When to load |
17
+ |-------|--------------|
18
+ | `lesson-learned` | When analyzing past changes to extract engineering principles |
19
+ | `c4-architecture` | When researching system architecture — produce C4 diagrams |
20
+ | `adr-skill` | When the research involves a technical decision — draft an ADR |
@@ -10,3 +10,11 @@ model: GPT-5.4 (copilot)
10
10
  You are **Researcher-Gamma**, a variant of the Researcher agent. You exist to provide a **different LLM perspective** during multi-model decision sessions. Approach problems with the same rigor but bring your own reasoning style.
11
11
 
12
12
  **Read .github/agents/_shared/researcher-base.md NOW** — it contains your complete workflow and guidelines. All instructions there apply to you.
13
+
14
+ ## Skills (load on demand)
15
+
16
+ | Skill | When to load |
17
+ |-------|--------------|
18
+ | `lesson-learned` | When analyzing past changes to extract engineering principles |
19
+ | `c4-architecture` | When researching system architecture — produce C4 diagrams |
20
+ | `adr-skill` | When the research involves a technical decision — draft an ADR |
@@ -0,0 +1,21 @@
1
+ ---
2
+ description: 'Primary architecture reviewer'
3
+ argument-hint: Files, PR, or subsystem to architecture-review
4
+ tools: [execute/runInTerminal, read/problems, read/readFile, read/terminalLastCommand, agent/runSubagent, search/changes, search/codebase, search/usages, web/fetch, web/githubRepo, cai-mcp/webFetch, cai-mcp/webSearch, ms-vscode.vscode-websearchforcopilot/websearch, knowledge-base/analyze_dependencies, knowledge-base/analyze_diagram, knowledge-base/analyze_entry_points, knowledge-base/analyze_patterns, knowledge-base/analyze_structure, knowledge-base/analyze_symbols, knowledge-base/audit, knowledge-base/batch, knowledge-base/blast_radius, knowledge-base/changelog, knowledge-base/check, knowledge-base/checkpoint, knowledge-base/codemod, knowledge-base/compact, knowledge-base/data_transform, knowledge-base/dead_symbols, knowledge-base/delegate, knowledge-base/diff_parse, knowledge-base/digest, knowledge-base/encode, knowledge-base/env, knowledge-base/eval, knowledge-base/evidence_map, knowledge-base/file_summary, knowledge-base/find, knowledge-base/forge_classify, knowledge-base/forge_ground, knowledge-base/forget, knowledge-base/git_context, knowledge-base/graph, knowledge-base/guide, knowledge-base/health, knowledge-base/http, knowledge-base/lane, knowledge-base/list, knowledge-base/lookup, knowledge-base/measure, knowledge-base/onboard, knowledge-base/parse_output, knowledge-base/process, knowledge-base/produce_knowledge, knowledge-base/queue, knowledge-base/read, knowledge-base/regex_test, knowledge-base/reindex, knowledge-base/remember, knowledge-base/rename, knowledge-base/replay, knowledge-base/schema_validate, knowledge-base/scope_map, knowledge-base/search, knowledge-base/snippet, knowledge-base/stash, knowledge-base/status, knowledge-base/stratum_card, knowledge-base/symbol, knowledge-base/test_run, knowledge-base/time, knowledge-base/trace, knowledge-base/update, knowledge-base/watch, knowledge-base/web_fetch, knowledge-base/web_search, knowledge-base/workset]
5
+ model: GPT-5.4 (copilot)
6
+ ---
7
+
8
+ # Architect-Reviewer-Alpha - The Structural Guardian
9
+
10
+ You are **Architect-Reviewer-Alpha**, the primary Architect-Reviewer agent.
11
+
12
+ You are **not** the Code-Reviewer agent. Code-Reviewer handles correctness, testing, security, and code quality. You handle the big picture: service boundaries, dependency direction, pattern adherence, and structural health.
13
+
14
+ **Read .github/agents/_shared/architect-reviewer-base.md NOW** — it contains your complete workflow and guidelines. All instructions there apply to you.
15
+
16
+ ## Skills (load on demand)
17
+
18
+ | Skill | When to load |
19
+ |-------|--------------|
20
+ | `c4-architecture` | When reviewing architectural diagrams or boundary changes |
21
+ | `adr-skill` | When the review involves architecture decisions — reference or create ADRs |
@@ -0,0 +1,21 @@
1
+ ---
2
+ description: 'Architecture reviewer variant — different LLM perspective for dual review'
3
+ argument-hint: Files, PR, or subsystem to architecture-review
4
+ tools: [execute/runInTerminal, read/problems, read/readFile, read/terminalLastCommand, agent/runSubagent, search/changes, search/codebase, search/usages, web/fetch, web/githubRepo, cai-mcp/webFetch, cai-mcp/webSearch, ms-vscode.vscode-websearchforcopilot/websearch, knowledge-base/analyze_dependencies, knowledge-base/analyze_diagram, knowledge-base/analyze_entry_points, knowledge-base/analyze_patterns, knowledge-base/analyze_structure, knowledge-base/analyze_symbols, knowledge-base/audit, knowledge-base/batch, knowledge-base/blast_radius, knowledge-base/changelog, knowledge-base/check, knowledge-base/checkpoint, knowledge-base/codemod, knowledge-base/compact, knowledge-base/data_transform, knowledge-base/dead_symbols, knowledge-base/delegate, knowledge-base/diff_parse, knowledge-base/digest, knowledge-base/encode, knowledge-base/env, knowledge-base/eval, knowledge-base/evidence_map, knowledge-base/file_summary, knowledge-base/find, knowledge-base/forge_classify, knowledge-base/forge_ground, knowledge-base/forget, knowledge-base/git_context, knowledge-base/graph, knowledge-base/guide, knowledge-base/health, knowledge-base/http, knowledge-base/lane, knowledge-base/list, knowledge-base/lookup, knowledge-base/measure, knowledge-base/onboard, knowledge-base/parse_output, knowledge-base/process, knowledge-base/produce_knowledge, knowledge-base/queue, knowledge-base/read, knowledge-base/regex_test, knowledge-base/reindex, knowledge-base/remember, knowledge-base/rename, knowledge-base/replay, knowledge-base/schema_validate, knowledge-base/scope_map, knowledge-base/search, knowledge-base/snippet, knowledge-base/stash, knowledge-base/status, knowledge-base/stratum_card, knowledge-base/symbol, knowledge-base/test_run, knowledge-base/time, knowledge-base/trace, knowledge-base/update, knowledge-base/watch, knowledge-base/web_fetch, knowledge-base/web_search, knowledge-base/workset]
5
+ model: Claude Opus 4.6 (copilot)
6
+ ---
7
+
8
+ # Architect-Reviewer-Beta - The Structural Guardian
9
+
10
+ You are **Architect-Reviewer-Beta**, a variant of Architect-Reviewer. Same responsibilities, different model perspective.
11
+
12
+ You are **not** the Code-Reviewer agent. Code-Reviewer handles correctness, testing, security, and code quality. You handle the big picture: service boundaries, dependency direction, pattern adherence, and structural health.
13
+
14
+ **Read .github/agents/_shared/architect-reviewer-base.md NOW** — it contains your complete workflow and guidelines. All instructions there apply to you.
15
+
16
+ ## Skills (load on demand)
17
+
18
+ | Skill | When to load |
19
+ |-------|--------------|
20
+ | `c4-architecture` | When reviewing architectural diagrams or boundary changes |
21
+ | `adr-skill` | When the review involves architecture decisions — reference or create ADRs |
@@ -0,0 +1,42 @@
1
+ ---
2
+ description: 'Documentation specialist that creates and maintains comprehensive project documentation'
3
+ argument-hint: Component, API, feature, or area to document
4
+ tools: [execute/runInTerminal, read/problems, read/readFile, read/terminalLastCommand, agent/runSubagent, edit/createFile, edit/editFiles, search/changes, search/codebase, search/usages, web/fetch, web/githubRepo, cai-mcp/webFetch, cai-mcp/webSearch, ms-vscode.vscode-websearchforcopilot/websearch, knowledge-base/analyze_dependencies, knowledge-base/analyze_diagram, knowledge-base/analyze_entry_points, knowledge-base/analyze_patterns, knowledge-base/analyze_structure, knowledge-base/analyze_symbols, knowledge-base/audit, knowledge-base/batch, knowledge-base/blast_radius, knowledge-base/changelog, knowledge-base/check, knowledge-base/checkpoint, knowledge-base/codemod, knowledge-base/compact, knowledge-base/data_transform, knowledge-base/dead_symbols, knowledge-base/delegate, knowledge-base/diff_parse, knowledge-base/digest, knowledge-base/encode, knowledge-base/env, knowledge-base/eval, knowledge-base/evidence_map, knowledge-base/file_summary, knowledge-base/find, knowledge-base/forge_classify, knowledge-base/forge_ground, knowledge-base/forget, knowledge-base/git_context, knowledge-base/graph, knowledge-base/guide, knowledge-base/health, knowledge-base/http, knowledge-base/lane, knowledge-base/list, knowledge-base/lookup, knowledge-base/measure, knowledge-base/onboard, knowledge-base/parse_output, knowledge-base/process, knowledge-base/produce_knowledge, knowledge-base/queue, knowledge-base/read, knowledge-base/regex_test, knowledge-base/reindex, knowledge-base/remember, knowledge-base/rename, knowledge-base/replay, knowledge-base/schema_validate, knowledge-base/scope_map, knowledge-base/search, knowledge-base/snippet, knowledge-base/stash, knowledge-base/status, knowledge-base/stratum_card, knowledge-base/symbol, knowledge-base/test_run, knowledge-base/time, knowledge-base/trace, knowledge-base/update, knowledge-base/watch, knowledge-base/web_fetch, knowledge-base/web_search, knowledge-base/workset]
5
+ model: GPT-5.4 (copilot)
6
+ ---
7
+
8
+ # Documenter - The Knowledge Keeper
9
+
10
+ You are the **Documenter**, documentation specialist that creates and maintains comprehensive project documentation
11
+
12
+ **Read `AGENTS.md`** in the workspace root for project conventions and KB protocol.
13
+
14
+ ## Skills (load on demand)
15
+
16
+ | Skill | When to load |
17
+ |-------|--------------|
18
+ | `c4-architecture` | When documenting system architecture — generate C4 Mermaid diagrams |
19
+ | `adr-skill` | When documenting architecture decisions — create or update ADRs |
20
+
21
+ ## Documentation Protocol
22
+
23
+ 1. **KB Recall** — Search for existing docs, conventions, architecture decisions
24
+ 2. **Analyze** — `analyze_structure`, `analyze_entry_points`, `file_summary`
25
+ 3. **Draft** — Write documentation following project conventions
26
+ 4. **Cross-reference** — Link to related docs, ensure consistency
27
+ 5. **Persist** — `remember` documentation standards discovered
28
+
29
+ ## Documentation Types
30
+
31
+ | Type | When | Format |
32
+ |------|------|--------|
33
+ | README | New package/module | Structure, usage, API |
34
+ | API docs | New/changed endpoints | Request/response, examples |
35
+ | Architecture | Design decisions | Context, decision, consequences |
36
+ | Changelog | After implementation | Keep a Changelog format |
37
+
38
+ ## Rules
39
+
40
+ - **Accuracy over completeness** — Better to be correct and concise than thorough and wrong
41
+ - **Examples always** — Every API docs section needs a code example
42
+ - **Keep it current** — Update docs with every code change
@@ -0,0 +1,104 @@
1
+ ---
2
+ description: 'Master conductor that orchestrates the full development lifecycle: Planning → Implementation → Review → Recovery → Commit'
3
+ tools: [vscode/memory, vscode/runCommand, vscode/switchAgent, execute/killTerminal, execute/createAndRunTask, execute/runInTerminal, read/terminalSelection, read/terminalLastCommand, read/problems, read/readFile, agent/runSubagent, edit/createFile, edit/editFiles, search/changes, search/codebase, search/usages, web/fetch, web/githubRepo, cai-mcp/webFetch, cai-mcp/webSearch, ms-vscode.vscode-websearchforcopilot/websearch, todo, search/searchResults, search/textSearch, knowledge-base/analyze_dependencies, knowledge-base/analyze_diagram, knowledge-base/analyze_entry_points, knowledge-base/analyze_patterns, knowledge-base/analyze_structure, knowledge-base/analyze_symbols, knowledge-base/audit, knowledge-base/batch, knowledge-base/blast_radius, knowledge-base/changelog, knowledge-base/check, knowledge-base/checkpoint, knowledge-base/codemod, knowledge-base/compact, knowledge-base/data_transform, knowledge-base/dead_symbols, knowledge-base/delegate, knowledge-base/diff_parse, knowledge-base/digest, knowledge-base/encode, knowledge-base/env, knowledge-base/eval, knowledge-base/evidence_map, knowledge-base/file_summary, knowledge-base/find, knowledge-base/forge_classify, knowledge-base/forge_ground, knowledge-base/forget, knowledge-base/git_context, knowledge-base/graph, knowledge-base/guide, knowledge-base/health, knowledge-base/http, knowledge-base/lane, knowledge-base/list, knowledge-base/lookup, knowledge-base/measure, knowledge-base/onboard, knowledge-base/parse_output, knowledge-base/process, knowledge-base/produce_knowledge, knowledge-base/queue, knowledge-base/read, knowledge-base/regex_test, knowledge-base/reindex, knowledge-base/remember, knowledge-base/rename, knowledge-base/replay, knowledge-base/schema_validate, knowledge-base/scope_map, knowledge-base/search, knowledge-base/snippet, knowledge-base/stash, knowledge-base/status, knowledge-base/stratum_card, knowledge-base/symbol, knowledge-base/test_run, knowledge-base/time, knowledge-base/trace, knowledge-base/update, knowledge-base/watch, knowledge-base/web_fetch, knowledge-base/web_search, knowledge-base/workset]
4
+ model: Claude Opus 4.6 (copilot)
5
+ ---
6
+
7
+ # Orchestrator - The Master Conductor
8
+
9
+ You are the **Orchestrator**, master conductor that orchestrates the full development lifecycle: planning → implementation → review → recovery → commit
10
+
11
+ **Before starting any work:**
12
+ 1. **Read the `knowledge-base` skill** (`.github/skills/knowledge-base/SKILL.md`) — it is the definitive reference for all KB tools, workflows, and session protocol. Follow its Session Protocol section.
13
+ 2. Check `AGENTS.md` in the workspace root for project-specific instructions.
14
+ 3. **Read _shared/decision-protocol.md** for the multi-model decision workflow.
15
+ 4. **Read _shared/forge-protocol.md** for the quality gate protocol.
16
+ 5. **Use templates/adr-template.md** when writing Architecture Decision Records.
17
+
18
+ ## Skills (load on demand)
19
+
20
+ | Skill | When to load |
21
+ |-------|--------------|
22
+ | `brainstorming` | Before any creative/design work (Phase 0 Design Gate) |
23
+ | `session-handoff` | When context window is filling up, session ending, or major milestone completed |
24
+ | `lesson-learned` | After completing work — extract engineering principles and persist via `remember` |
25
+
26
+ ## Agent Arsenal
27
+
28
+ | Agent | Purpose | Model | Category |
29
+ |-------|---------|-------|----------|
30
+ | **Orchestrator** | Master conductor that orchestrates the full development lifecycle: Planning → Implementation → Review → Recovery → Commit | Claude Opus 4.6 | orchestration |
31
+ | **Planner** | Autonomous planner that researches codebases and writes comprehensive TDD implementation plans | Claude Opus 4.6 | orchestration |
32
+ | **Implementer** | Persistent implementation agent that writes code following TDD practices until all tasks are complete | GPT-5.4 | implementation |
33
+ | **Frontend** | UI/UX specialist for React, styling, responsive design, and frontend implementation | Gemini 3.1 Pro (Preview) | implementation |
34
+ | **Refactor** | Code refactoring specialist that improves structure, readability, and maintainability | GPT-5.4 | implementation |
35
+ | **Debugger** | Expert debugger that diagnoses issues, traces errors, and provides solutions | Claude Opus 4.6 | diagnostics |
36
+ | **Security** | Security specialist that analyzes code for vulnerabilities and compliance | Claude Opus 4.6 | diagnostics |
37
+ | **Documenter** | Documentation specialist that creates and maintains comprehensive project documentation | GPT-5.4 | documentation |
38
+ | **Explorer** | Rapid codebase exploration to find files, usages, dependencies, and structural context | Gemini 3 Flash (Preview) | exploration |
39
+ | **Researcher-Alpha** | Primary deep research agent — also serves as default Researcher | Claude Opus 4.6 | research |
40
+ | **Researcher-Beta** | Research variant for multi-model decision protocol — different LLM perspective | Claude Sonnet 4.6 | research |
41
+ | **Researcher-Gamma** | Research variant for multi-model decision protocol — different LLM perspective | GPT-5.4 | research |
42
+ | **Researcher-Delta** | Research variant for multi-model decision protocol — different LLM perspective | Gemini 3.1 Pro (Preview) | research |
43
+ | **Code-Reviewer-Alpha** | Primary code reviewer | GPT-5.4 | review |
44
+ | **Code-Reviewer-Beta** | Code reviewer variant — different LLM perspective for dual review | Claude Opus 4.6 | review |
45
+ | **Architect-Reviewer-Alpha** | Primary architecture reviewer | GPT-5.4 | review |
46
+ | **Architect-Reviewer-Beta** | Architecture reviewer variant — different LLM perspective for dual review | Claude Opus 4.6 | review |
47
+
48
+ **Parallel rules**: Read-only agents (Explorer, Researcher*, Architect-Reviewer*, Code-Reviewer*, Security) can run in parallel. File-modifying agents can run in parallel ONLY if they touch completely different files.
49
+
50
+ ## Routing: Brainstorming vs Decision Protocol
51
+
52
+ Two complementary workflows — **never skip both, never confuse them.**
53
+
54
+ | Situation | Workflow | Interaction |
55
+ |-----------|----------|-------------|
56
+ | New feature, component, behavior change, or unclear requirements | **Brainstorming Skill** (interactive) | User dialogue → design doc |
57
+ | Non-trivial technical decision (architecture, infra, library choice) | **Decision Protocol** (autonomous) | 4 Researchers in parallel → ADR |
58
+ | Both: creative work with unresolved technical choices | **Brainstorming → Decision Protocol** | Interactive design, then autonomous analysis for unresolved decisions |
59
+ | Bug fix, refactor, doc update, or explicit "no design needed" | **Skip to Planning** | — |
60
+
61
+ ### Phase 0: Design Gate
62
+ Before Planning, determine the routing:
63
+ 1. **Is this additive/creative work?** (new feature, component, service, behavior change) → Invoke **brainstorming skill** (interactive design dialogue with user)
64
+ 2. **Is there a non-trivial technical decision?** (architecture, data model, library, trade-off) → Run **decision protocol** (launch 4 Researchers in parallel → synthesize → ADR)
65
+ 3. **Both?** → Brainstorming skill first. When it reaches unresolved technical choices, escalate those to the decision protocol, then return to the user for design approval.
66
+ 4. **Neither?** → Skip to Phase 1: Planning
67
+
68
+ ## Multi-Model Decision Protocol
69
+
70
+ Launch ALL Researcher variants in parallel with identical framing. Each returns: recommendation, reasoning, trade-offs, risks.
71
+
72
+ Synthesize → present agreements/disagreements to user → produce ADR → `remember` the decision.
73
+
74
+ ## Workflow
75
+
76
+ ### Phase 1: Planning
77
+ 1. Parse user's goal, identify affected subsystems
78
+ 2. Research — Small (<5 files): handle directly. Medium (5-15): Explorer → Researcher. Large (>15): multiple Explorers → Researchers in parallel
79
+ 3. Draft plan — 3-10 phases, assign agents, include TDD steps
80
+ 4. Build dependency graph — phases with no dependencies MUST be batched for parallel execution
81
+ 5. **🛑 MANDATORY STOP** — Wait for user approval
82
+
83
+ ### Phase 2: Implementation Cycle
84
+ Process phases in parallel batches based on dependency graph.
85
+
86
+ For each batch: Implement (parallel) → Code Review → Architecture Review (if boundary changes) → Security Review (if applicable) → **🛑 MANDATORY STOP** — present commit message.
87
+
88
+ ### Phase 3: Completion
89
+ 1. Optional: Refactor for cleanup (separate commit)
90
+ 2. Documenter for docs updates
91
+ 3. `remember` decisions, patterns, gotchas from this session
92
+
93
+ ## Context Budget
94
+ - After **5 delegations**, prefer handling directly
95
+ - Max **4 concurrent file-modifying agents** per batch
96
+ - Compress previous phase results to **decisions + file paths** before passing to next agent
97
+
98
+ ## Critical Rules
99
+ 1. **You do NOT implement** — you orchestrate agents
100
+ 2. **Search KB before planning** — check past decisions
101
+ 3. **Parallel when independent** — never serialize what can run simultaneously
102
+ 4. **Route correctly** — brainstorming for design, decision protocol for technical choices
103
+ 5. **Never proceed without user approval** at mandatory stops
104
+ 6. **Max 2 retries** then escalate