codingbuddy 5.1.3 → 5.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (483) hide show
  1. package/README.md +9 -0
  2. package/dist/src/agent/agent-prompt.builder.js +135 -2
  3. package/dist/src/agent/agent-stack.loader.d.ts +3 -0
  4. package/dist/src/agent/agent-stack.loader.js +38 -0
  5. package/dist/src/agent/agent-stack.schema.d.ts +14 -0
  6. package/dist/src/agent/agent-stack.schema.js +19 -0
  7. package/dist/src/agent/agent-stack.service.d.ts +15 -0
  8. package/dist/src/agent/agent-stack.service.js +112 -0
  9. package/dist/src/agent/agent.module.js +5 -2
  10. package/dist/src/agent/agent.service.d.ts +8 -1
  11. package/dist/src/agent/agent.service.js +126 -40
  12. package/dist/src/agent/agent.types.d.ts +26 -46
  13. package/dist/src/agent/council-preset.service.d.ts +6 -0
  14. package/dist/src/agent/council-preset.service.js +46 -0
  15. package/dist/src/agent/council-preset.types.d.ts +6 -0
  16. package/dist/src/agent/council-preset.types.js +3 -0
  17. package/dist/src/agent/execution-plan.d.ts +8 -0
  18. package/dist/src/agent/execution-plan.js +73 -0
  19. package/dist/src/agent/execution-plan.types.d.ts +74 -0
  20. package/dist/src/agent/execution-plan.types.js +3 -0
  21. package/dist/src/agent/index.d.ts +8 -0
  22. package/dist/src/agent/index.js +8 -0
  23. package/dist/src/agent/teams-capability.service.d.ts +11 -0
  24. package/dist/src/agent/teams-capability.service.js +74 -0
  25. package/dist/src/agent/teams-capability.types.d.ts +6 -0
  26. package/dist/src/agent/teams-capability.types.js +3 -0
  27. package/dist/src/app.module.js +2 -0
  28. package/dist/src/cli/cli.d.ts +4 -3
  29. package/dist/src/cli/cli.js +172 -1
  30. package/dist/src/cli/cli.types.d.ts +18 -0
  31. package/dist/src/cli/completion/completion.d.ts +16 -0
  32. package/dist/src/cli/completion/completion.js +276 -0
  33. package/dist/src/cli/completion/index.d.ts +2 -0
  34. package/dist/src/cli/completion/index.js +7 -0
  35. package/dist/src/cli/init/init.constants.js +0 -1
  36. package/dist/src/cli/plugin/create-plugin.command.d.ts +21 -0
  37. package/dist/src/cli/plugin/create-plugin.command.js +151 -0
  38. package/dist/src/cli/plugin/install.command.d.ts +10 -0
  39. package/dist/src/cli/plugin/install.command.js +31 -0
  40. package/dist/src/cli/plugin/plugins.command.d.ts +9 -0
  41. package/dist/src/cli/plugin/plugins.command.js +51 -0
  42. package/dist/src/cli/plugin/search.command.d.ts +9 -0
  43. package/dist/src/cli/plugin/search.command.js +53 -0
  44. package/dist/src/cli/plugin/uninstall.command.d.ts +12 -0
  45. package/dist/src/cli/plugin/uninstall.command.js +79 -0
  46. package/dist/src/cli/plugin/update.command.d.ts +11 -0
  47. package/dist/src/cli/plugin/update.command.js +103 -0
  48. package/dist/src/cli/run-tui.d.ts +1 -0
  49. package/dist/src/cli/run-tui.js +7 -1
  50. package/dist/src/collaboration/council-summary.service.d.ts +2 -0
  51. package/dist/src/collaboration/council-summary.service.js +114 -0
  52. package/dist/src/collaboration/council-summary.types.d.ts +24 -0
  53. package/dist/src/collaboration/council-summary.types.js +3 -0
  54. package/dist/src/collaboration/index.d.ts +2 -0
  55. package/dist/src/collaboration/index.js +3 -1
  56. package/dist/src/config/config.schema.d.ts +3 -0
  57. package/dist/src/config/config.schema.js +5 -0
  58. package/dist/src/context/briefing-loader.service.d.ts +27 -0
  59. package/dist/src/context/briefing-loader.service.js +124 -0
  60. package/dist/src/context/briefing.service.d.ts +27 -0
  61. package/dist/src/context/briefing.service.js +181 -0
  62. package/dist/src/context/briefing.types.d.ts +13 -0
  63. package/dist/src/context/briefing.types.js +6 -0
  64. package/dist/src/context/context.module.js +16 -2
  65. package/dist/src/context/index.d.ts +2 -0
  66. package/dist/src/context/index.js +2 -0
  67. package/dist/src/keyword/keyword.types.d.ts +8 -0
  68. package/dist/src/main.js +0 -17
  69. package/dist/src/mcp/handlers/agent.handler.d.ts +6 -1
  70. package/dist/src/mcp/handlers/agent.handler.js +81 -8
  71. package/dist/src/mcp/handlers/briefing.handler.d.ts +12 -0
  72. package/dist/src/mcp/handlers/briefing.handler.js +71 -0
  73. package/dist/src/mcp/handlers/checklist-context.handler.d.ts +3 -1
  74. package/dist/src/mcp/handlers/checklist-context.handler.js +17 -2
  75. package/dist/src/mcp/handlers/discussion.handler.d.ts +3 -0
  76. package/dist/src/mcp/handlers/discussion.handler.js +22 -1
  77. package/dist/src/mcp/handlers/index.d.ts +4 -0
  78. package/dist/src/mcp/handlers/index.js +9 -1
  79. package/dist/src/mcp/handlers/mode.handler.d.ts +9 -1
  80. package/dist/src/mcp/handlers/mode.handler.js +79 -2
  81. package/dist/src/mcp/handlers/quality-report.handler.d.ts +14 -0
  82. package/dist/src/mcp/handlers/quality-report.handler.js +93 -0
  83. package/dist/src/mcp/handlers/resume.handler.d.ts +12 -0
  84. package/dist/src/mcp/handlers/resume.handler.js +63 -0
  85. package/dist/src/mcp/handlers/rule-impact.handler.d.ts +23 -0
  86. package/dist/src/mcp/handlers/rule-impact.handler.js +241 -0
  87. package/dist/src/mcp/handlers/skill.handler.js +2 -2
  88. package/dist/src/mcp/mcp.module.js +6 -0
  89. package/dist/src/plugin/plugin-installer.service.d.ts +41 -0
  90. package/dist/src/plugin/plugin-installer.service.js +183 -0
  91. package/dist/src/plugin/plugin-manifest.schema.d.ts +21 -0
  92. package/dist/src/plugin/plugin-manifest.schema.js +45 -0
  93. package/dist/src/plugin/plugin.module.d.ts +2 -0
  94. package/dist/src/plugin/plugin.module.js +17 -0
  95. package/dist/src/plugin/plugin.types.d.ts +7 -0
  96. package/dist/src/plugin/plugin.types.js +3 -0
  97. package/dist/src/plugin/registry-client.d.ts +24 -0
  98. package/dist/src/plugin/registry-client.js +45 -0
  99. package/dist/src/rules/rule-event-collector.d.ts +7 -0
  100. package/dist/src/rules/rule-event-collector.js +38 -0
  101. package/dist/src/rules/rule-event.types.d.ts +9 -0
  102. package/dist/src/rules/rule-event.types.js +10 -0
  103. package/dist/src/rules/rule-stats-writer.d.ts +23 -0
  104. package/dist/src/rules/rule-stats-writer.js +138 -0
  105. package/dist/src/rules/rules.module.js +4 -2
  106. package/dist/src/rules/rules.service.d.ts +8 -1
  107. package/dist/src/rules/rules.service.js +3 -0
  108. package/dist/src/rules/skill.schema.d.ts +10 -0
  109. package/dist/src/rules/skill.schema.js +42 -0
  110. package/dist/src/shared/rules-core.d.ts +7 -1
  111. package/dist/src/shared/rules-core.js +6 -0
  112. package/dist/src/shared/version.d.ts +1 -1
  113. package/dist/src/shared/version.js +1 -1
  114. package/dist/src/ship/file-specialist-mapper.d.ts +9 -0
  115. package/dist/src/ship/file-specialist-mapper.js +56 -0
  116. package/dist/src/ship/quality-report.service.d.ts +6 -0
  117. package/dist/src/ship/quality-report.service.js +56 -0
  118. package/dist/src/ship/quality-report.types.d.ts +20 -0
  119. package/dist/src/ship/quality-report.types.js +3 -0
  120. package/dist/src/ship/ship.module.d.ts +2 -0
  121. package/dist/src/ship/ship.module.js +21 -0
  122. package/dist/src/skill/i18n/keywords.js +921 -0
  123. package/dist/src/skill/skill-recommendation.service.d.ts +10 -2
  124. package/dist/src/skill/skill-recommendation.service.js +120 -16
  125. package/dist/src/skill/skill-recommendation.types.d.ts +5 -0
  126. package/dist/src/skill/skill.module.js +2 -0
  127. package/dist/src/tui/events/hud-file-bridge.d.ts +4 -0
  128. package/dist/src/tui/events/hud-file-bridge.js +36 -0
  129. package/dist/src/tui/testing/tui-test-utils.d.ts +2 -0
  130. package/dist/src/tui/testing/tui-test-utils.js +25 -0
  131. package/dist/src/tui-bundle.mjs +239 -36
  132. package/package.json +7 -2
  133. package/dist/api/mcp.js.map +0 -1
  134. package/dist/src/agent/agent-prompt.builder.js.map +0 -1
  135. package/dist/src/agent/agent-summary.utils.js.map +0 -1
  136. package/dist/src/agent/agent.module.js.map +0 -1
  137. package/dist/src/agent/agent.service.js.map +0 -1
  138. package/dist/src/agent/agent.types.js.map +0 -1
  139. package/dist/src/agent/index.js.map +0 -1
  140. package/dist/src/analyzer/analyzer.module.js.map +0 -1
  141. package/dist/src/analyzer/analyzer.service.js.map +0 -1
  142. package/dist/src/analyzer/analyzer.types.js.map +0 -1
  143. package/dist/src/analyzer/code.sampler.js.map +0 -1
  144. package/dist/src/analyzer/config.analyzer.js.map +0 -1
  145. package/dist/src/analyzer/conventions.analyzer.js.map +0 -1
  146. package/dist/src/analyzer/conventions.schemas.js.map +0 -1
  147. package/dist/src/analyzer/conventions.types.js.map +0 -1
  148. package/dist/src/analyzer/directory.analyzer.js.map +0 -1
  149. package/dist/src/analyzer/index.js.map +0 -1
  150. package/dist/src/analyzer/package.analyzer.js.map +0 -1
  151. package/dist/src/app.module.js.map +0 -1
  152. package/dist/src/checklist/checklist.module.js.map +0 -1
  153. package/dist/src/checklist/checklist.schema.js.map +0 -1
  154. package/dist/src/checklist/checklist.service.js.map +0 -1
  155. package/dist/src/checklist/checklist.types.js.map +0 -1
  156. package/dist/src/checklist/index.js.map +0 -1
  157. package/dist/src/cli/cli.js.map +0 -1
  158. package/dist/src/cli/cli.types.js.map +0 -1
  159. package/dist/src/cli/index.js.map +0 -1
  160. package/dist/src/cli/init/claude-settings.utils.js.map +0 -1
  161. package/dist/src/cli/init/config.generator.js.map +0 -1
  162. package/dist/src/cli/init/config.writer.js.map +0 -1
  163. package/dist/src/cli/init/gitignore.utils.js.map +0 -1
  164. package/dist/src/cli/init/index.js.map +0 -1
  165. package/dist/src/cli/init/init.command.js.map +0 -1
  166. package/dist/src/cli/init/init.constants.js.map +0 -1
  167. package/dist/src/cli/init/init.wizard.js.map +0 -1
  168. package/dist/src/cli/init/prompt.builder.js.map +0 -1
  169. package/dist/src/cli/init/prompts/agent-prompt.js.map +0 -1
  170. package/dist/src/cli/init/prompts/architecture-prompt.js.map +0 -1
  171. package/dist/src/cli/init/prompts/basic-prompt.js.map +0 -1
  172. package/dist/src/cli/init/prompts/conventions-prompt.js.map +0 -1
  173. package/dist/src/cli/init/prompts/index.js.map +0 -1
  174. package/dist/src/cli/init/prompts/language-prompt.js.map +0 -1
  175. package/dist/src/cli/init/prompts/model-prompt.js.map +0 -1
  176. package/dist/src/cli/init/prompts/tech-stack-prompt.js.map +0 -1
  177. package/dist/src/cli/init/prompts/test-strategy-prompt.js.map +0 -1
  178. package/dist/src/cli/init/summary/index.js.map +0 -1
  179. package/dist/src/cli/init/summary/summary.prompt.js.map +0 -1
  180. package/dist/src/cli/init/summary/summary.renderer.js.map +0 -1
  181. package/dist/src/cli/init/templates/config-renderer.js.map +0 -1
  182. package/dist/src/cli/init/templates/frameworks/default.template.js.map +0 -1
  183. package/dist/src/cli/init/templates/frameworks/express.template.js.map +0 -1
  184. package/dist/src/cli/init/templates/frameworks/index.js.map +0 -1
  185. package/dist/src/cli/init/templates/frameworks/nestjs.template.js.map +0 -1
  186. package/dist/src/cli/init/templates/frameworks/nextjs.template.js.map +0 -1
  187. package/dist/src/cli/init/templates/frameworks/node.template.js.map +0 -1
  188. package/dist/src/cli/init/templates/frameworks/react.template.js.map +0 -1
  189. package/dist/src/cli/init/templates/index.js.map +0 -1
  190. package/dist/src/cli/init/templates/template.renderer.js.map +0 -1
  191. package/dist/src/cli/init/templates/template.selector.js.map +0 -1
  192. package/dist/src/cli/init/templates/template.types.js.map +0 -1
  193. package/dist/src/cli/restart-tui.js.map +0 -1
  194. package/dist/src/cli/run-tui.js.map +0 -1
  195. package/dist/src/cli/utils/console.js.map +0 -1
  196. package/dist/src/cli/utils/index.js.map +0 -1
  197. package/dist/src/collaboration/discussion-engine.js.map +0 -1
  198. package/dist/src/collaboration/index.js.map +0 -1
  199. package/dist/src/collaboration/opinion-adapter.js.map +0 -1
  200. package/dist/src/collaboration/terminal-formatter.js.map +0 -1
  201. package/dist/src/collaboration/types.js.map +0 -1
  202. package/dist/src/config/config-diff.service.js.map +0 -1
  203. package/dist/src/config/config.loader.js.map +0 -1
  204. package/dist/src/config/config.module.js.map +0 -1
  205. package/dist/src/config/config.schema.js.map +0 -1
  206. package/dist/src/config/config.service.js.map +0 -1
  207. package/dist/src/config/context.loader.js.map +0 -1
  208. package/dist/src/config/ignore.parser.js.map +0 -1
  209. package/dist/src/config/index.js.map +0 -1
  210. package/dist/src/context/context-archive.service.js.map +0 -1
  211. package/dist/src/context/context-archive.types.js.map +0 -1
  212. package/dist/src/context/context-document.service.js.map +0 -1
  213. package/dist/src/context/context-document.types.js.map +0 -1
  214. package/dist/src/context/context-parser.utils.js.map +0 -1
  215. package/dist/src/context/context-serializer.utils.js.map +0 -1
  216. package/dist/src/context/context.module.js.map +0 -1
  217. package/dist/src/context/context.service.js.map +0 -1
  218. package/dist/src/context/context.types.js.map +0 -1
  219. package/dist/src/context/index.js.map +0 -1
  220. package/dist/src/context/intent-patterns.js.map +0 -1
  221. package/dist/src/custom/custom.module.js.map +0 -1
  222. package/dist/src/custom/custom.service.js.map +0 -1
  223. package/dist/src/custom/custom.types.js.map +0 -1
  224. package/dist/src/custom/index.js.map +0 -1
  225. package/dist/src/diagnostic/diagnostic-log.service.js.map +0 -1
  226. package/dist/src/diagnostic/diagnostic.module.js.map +0 -1
  227. package/dist/src/diagnostic/diagnostic.types.js.map +0 -1
  228. package/dist/src/diagnostic/index.js.map +0 -1
  229. package/dist/src/impact/impact-event.service.js.map +0 -1
  230. package/dist/src/impact/impact-report.service.js.map +0 -1
  231. package/dist/src/impact/impact.module.js.map +0 -1
  232. package/dist/src/impact/impact.types.js.map +0 -1
  233. package/dist/src/impact/index.js.map +0 -1
  234. package/dist/src/keyword/activation-message.builder.js.map +0 -1
  235. package/dist/src/keyword/auto-executor.js.map +0 -1
  236. package/dist/src/keyword/auto-executor.types.js.map +0 -1
  237. package/dist/src/keyword/auto-formatter.js.map +0 -1
  238. package/dist/src/keyword/auto-prompt-builder.js.map +0 -1
  239. package/dist/src/keyword/complexity-classifier.js.map +0 -1
  240. package/dist/src/keyword/complexity-indicators.js.map +0 -1
  241. package/dist/src/keyword/diff-analyzer.js.map +0 -1
  242. package/dist/src/keyword/explicit-pattern-matcher.js.map +0 -1
  243. package/dist/src/keyword/index.js.map +0 -1
  244. package/dist/src/keyword/keyword.module.js.map +0 -1
  245. package/dist/src/keyword/keyword.service.js.map +0 -1
  246. package/dist/src/keyword/keyword.types.js.map +0 -1
  247. package/dist/src/keyword/patterns/agent.patterns.js.map +0 -1
  248. package/dist/src/keyword/patterns/ai-ml.patterns.js.map +0 -1
  249. package/dist/src/keyword/patterns/backend.patterns.js.map +0 -1
  250. package/dist/src/keyword/patterns/context.patterns.js.map +0 -1
  251. package/dist/src/keyword/patterns/data-science.patterns.js.map +0 -1
  252. package/dist/src/keyword/patterns/data.patterns.js.map +0 -1
  253. package/dist/src/keyword/patterns/devops.patterns.js.map +0 -1
  254. package/dist/src/keyword/patterns/explicit.patterns.js.map +0 -1
  255. package/dist/src/keyword/patterns/frontend.patterns.js.map +0 -1
  256. package/dist/src/keyword/patterns/index.js.map +0 -1
  257. package/dist/src/keyword/patterns/intent-pattern-checks.js.map +0 -1
  258. package/dist/src/keyword/patterns/intent-patterns.types.js.map +0 -1
  259. package/dist/src/keyword/patterns/meta-discussion.patterns.js.map +0 -1
  260. package/dist/src/keyword/patterns/mobile.patterns.js.map +0 -1
  261. package/dist/src/keyword/patterns/platform.patterns.js.map +0 -1
  262. package/dist/src/keyword/patterns/security.patterns.js.map +0 -1
  263. package/dist/src/keyword/patterns/systems.patterns.js.map +0 -1
  264. package/dist/src/keyword/patterns/test.patterns.js.map +0 -1
  265. package/dist/src/keyword/patterns/tooling.patterns.js.map +0 -1
  266. package/dist/src/keyword/primary-agent-resolver.js.map +0 -1
  267. package/dist/src/keyword/rule-filter.js.map +0 -1
  268. package/dist/src/keyword/srp-template.js.map +0 -1
  269. package/dist/src/keyword/strategies/__tests__/strategy-test.utils.js.map +0 -1
  270. package/dist/src/keyword/strategies/act-agent.strategy.js.map +0 -1
  271. package/dist/src/keyword/strategies/eval-agent.strategy.js.map +0 -1
  272. package/dist/src/keyword/strategies/index.js.map +0 -1
  273. package/dist/src/keyword/strategies/plan-agent.strategy.js.map +0 -1
  274. package/dist/src/keyword/strategies/resolution-strategy.interface.js.map +0 -1
  275. package/dist/src/keyword/taskmaestro-detector.js.map +0 -1
  276. package/dist/src/keyword/visual-data.builder.js.map +0 -1
  277. package/dist/src/main.js.map +0 -1
  278. package/dist/src/mcp/handlers/abstract-handler.js.map +0 -1
  279. package/dist/src/mcp/handlers/agent.handler.js.map +0 -1
  280. package/dist/src/mcp/handlers/base.handler.js.map +0 -1
  281. package/dist/src/mcp/handlers/checklist-context.handler.js.map +0 -1
  282. package/dist/src/mcp/handlers/config.handler.js.map +0 -1
  283. package/dist/src/mcp/handlers/context-archive.handler.js.map +0 -1
  284. package/dist/src/mcp/handlers/context-document.handler.js.map +0 -1
  285. package/dist/src/mcp/handlers/conventions.handler.js.map +0 -1
  286. package/dist/src/mcp/handlers/discussion.handler.js.map +0 -1
  287. package/dist/src/mcp/handlers/discussion.types.js.map +0 -1
  288. package/dist/src/mcp/handlers/impact.handler.js.map +0 -1
  289. package/dist/src/mcp/handlers/index.js.map +0 -1
  290. package/dist/src/mcp/handlers/mode.handler.js.map +0 -1
  291. package/dist/src/mcp/handlers/pipeline.handler.js.map +0 -1
  292. package/dist/src/mcp/handlers/plugin-validation.handler.js.map +0 -1
  293. package/dist/src/mcp/handlers/release-check.handler.js.map +0 -1
  294. package/dist/src/mcp/handlers/rule-insights.handler.js.map +0 -1
  295. package/dist/src/mcp/handlers/rules.handler.js.map +0 -1
  296. package/dist/src/mcp/handlers/skill.handler.js.map +0 -1
  297. package/dist/src/mcp/handlers/tui.handler.js.map +0 -1
  298. package/dist/src/mcp/mcp-serverless.js.map +0 -1
  299. package/dist/src/mcp/mcp.controller.js.map +0 -1
  300. package/dist/src/mcp/mcp.module.js.map +0 -1
  301. package/dist/src/mcp/mcp.service.js.map +0 -1
  302. package/dist/src/mcp/response.utils.js.map +0 -1
  303. package/dist/src/mcp/sse-auth.guard.js.map +0 -1
  304. package/dist/src/model/index.js.map +0 -1
  305. package/dist/src/model/model-resolver.service.js.map +0 -1
  306. package/dist/src/model/model.constants.js.map +0 -1
  307. package/dist/src/model/model.resolver.js.map +0 -1
  308. package/dist/src/model/model.types.js.map +0 -1
  309. package/dist/src/parallel-validation/extract-file-paths.js.map +0 -1
  310. package/dist/src/parallel-validation/index.js.map +0 -1
  311. package/dist/src/parallel-validation/overlap-matrix.js.map +0 -1
  312. package/dist/src/parallel-validation/parallel-validation.handler.js.map +0 -1
  313. package/dist/src/parallel-validation/parallel-validation.types.js.map +0 -1
  314. package/dist/src/parallel-validation/wave-splitter.js.map +0 -1
  315. package/dist/src/pipeline/index.js.map +0 -1
  316. package/dist/src/pipeline/pipeline.executors.js.map +0 -1
  317. package/dist/src/pipeline/pipeline.module.js.map +0 -1
  318. package/dist/src/pipeline/pipeline.service.js.map +0 -1
  319. package/dist/src/pipeline/pipeline.types.js.map +0 -1
  320. package/dist/src/rules/agent.schema.js.map +0 -1
  321. package/dist/src/rules/rule-insights.service.js.map +0 -1
  322. package/dist/src/rules/rule-tracker.js.map +0 -1
  323. package/dist/src/rules/rules-content.utils.js.map +0 -1
  324. package/dist/src/rules/rules.module.js.map +0 -1
  325. package/dist/src/rules/rules.service.js.map +0 -1
  326. package/dist/src/rules/rules.types.js.map +0 -1
  327. package/dist/src/rules/skill.schema.js.map +0 -1
  328. package/dist/src/shared/agent.utils.js.map +0 -1
  329. package/dist/src/shared/async.utils.js.map +0 -1
  330. package/dist/src/shared/client-type.js.map +0 -1
  331. package/dist/src/shared/error.utils.js.map +0 -1
  332. package/dist/src/shared/esm-import.js.map +0 -1
  333. package/dist/src/shared/event-bridge-reader.js.map +0 -1
  334. package/dist/src/shared/file.utils.js.map +0 -1
  335. package/dist/src/shared/filesystem.interface.js.map +0 -1
  336. package/dist/src/shared/format.utils.js.map +0 -1
  337. package/dist/src/shared/keyword-core.js.map +0 -1
  338. package/dist/src/shared/language.service.js.map +0 -1
  339. package/dist/src/shared/language.types.js.map +0 -1
  340. package/dist/src/shared/lru-cache.js.map +0 -1
  341. package/dist/src/shared/node-filesystem.service.js.map +0 -1
  342. package/dist/src/shared/path.utils.js.map +0 -1
  343. package/dist/src/shared/pattern-matcher.js.map +0 -1
  344. package/dist/src/shared/rules-core.js.map +0 -1
  345. package/dist/src/shared/security.utils.js.map +0 -1
  346. package/dist/src/shared/slug.utils.js.map +0 -1
  347. package/dist/src/shared/tui-bundle-path.js.map +0 -1
  348. package/dist/src/shared/validation.constants.js.map +0 -1
  349. package/dist/src/shared/verbosity.types.js.map +0 -1
  350. package/dist/src/shared/version.js.map +0 -1
  351. package/dist/src/shared/version.utils.js.map +0 -1
  352. package/dist/src/skill/i18n/index.js.map +0 -1
  353. package/dist/src/skill/i18n/keywords.js.map +0 -1
  354. package/dist/src/skill/i18n/keywords.types.js.map +0 -1
  355. package/dist/src/skill/index.js.map +0 -1
  356. package/dist/src/skill/skill-content.utils.js.map +0 -1
  357. package/dist/src/skill/skill-recommendation.service.js.map +0 -1
  358. package/dist/src/skill/skill-recommendation.types.js.map +0 -1
  359. package/dist/src/skill/skill-triggers.js.map +0 -1
  360. package/dist/src/skill/skill.module.js.map +0 -1
  361. package/dist/src/state/index.js.map +0 -1
  362. package/dist/src/state/state.module.js.map +0 -1
  363. package/dist/src/state/state.service.js.map +0 -1
  364. package/dist/src/state/state.types.js.map +0 -1
  365. package/dist/src/tui/__perf__/memory-stability.spec.d.ts +0 -1
  366. package/dist/src/tui/__perf__/memory-stability.spec.js +0 -105
  367. package/dist/src/tui/__perf__/memory-stability.spec.js.map +0 -1
  368. package/dist/src/tui/__perf__/rendering-performance.spec.d.ts +0 -1
  369. package/dist/src/tui/__perf__/rendering-performance.spec.js +0 -166
  370. package/dist/src/tui/__perf__/rendering-performance.spec.js.map +0 -1
  371. package/dist/src/tui/cli-flags.js.map +0 -1
  372. package/dist/src/tui/components/ActModeScreen.js.map +0 -1
  373. package/dist/src/tui/components/ActivityVisualizer.js.map +0 -1
  374. package/dist/src/tui/components/ActivityVisualizer.spec.d.ts +0 -1
  375. package/dist/src/tui/components/ActivityVisualizer.spec.js +0 -91
  376. package/dist/src/tui/components/ActivityVisualizer.spec.js.map +0 -1
  377. package/dist/src/tui/components/AgentDiscussionPanel.js.map +0 -1
  378. package/dist/src/tui/components/AgentDiscussionPanel.spec.d.ts +0 -1
  379. package/dist/src/tui/components/AgentDiscussionPanel.spec.js +0 -229
  380. package/dist/src/tui/components/AgentDiscussionPanel.spec.js.map +0 -1
  381. package/dist/src/tui/components/ChecklistPanel.js.map +0 -1
  382. package/dist/src/tui/components/ChecklistPanel.spec.d.ts +0 -1
  383. package/dist/src/tui/components/ChecklistPanel.spec.js +0 -45
  384. package/dist/src/tui/components/ChecklistPanel.spec.js.map +0 -1
  385. package/dist/src/tui/components/ContextSection.js.map +0 -1
  386. package/dist/src/tui/components/EvalModeScreen.js.map +0 -1
  387. package/dist/src/tui/components/FlowMap.js.map +0 -1
  388. package/dist/src/tui/components/FlowMap.spec.d.ts +0 -1
  389. package/dist/src/tui/components/FlowMap.spec.js +0 -147
  390. package/dist/src/tui/components/FlowMap.spec.js.map +0 -1
  391. package/dist/src/tui/components/FocusedAgentPanel.js.map +0 -1
  392. package/dist/src/tui/components/FocusedAgentPanel.spec.d.ts +0 -1
  393. package/dist/src/tui/components/FocusedAgentPanel.spec.js +0 -183
  394. package/dist/src/tui/components/FocusedAgentPanel.spec.js.map +0 -1
  395. package/dist/src/tui/components/HeaderBar.js.map +0 -1
  396. package/dist/src/tui/components/HeaderBar.spec.d.ts +0 -1
  397. package/dist/src/tui/components/HeaderBar.spec.js +0 -96
  398. package/dist/src/tui/components/HeaderBar.spec.js.map +0 -1
  399. package/dist/src/tui/components/ModeScreenRouter.js.map +0 -1
  400. package/dist/src/tui/components/PlanModeScreen.js.map +0 -1
  401. package/dist/src/tui/components/SessionDashboard.js.map +0 -1
  402. package/dist/src/tui/components/SessionTabBar.js.map +0 -1
  403. package/dist/src/tui/components/SessionTabBar.spec.d.ts +0 -1
  404. package/dist/src/tui/components/SessionTabBar.spec.js +0 -59
  405. package/dist/src/tui/components/SessionTabBar.spec.js.map +0 -1
  406. package/dist/src/tui/components/StageHealthBar.js.map +0 -1
  407. package/dist/src/tui/components/StageHealthBar.spec.d.ts +0 -1
  408. package/dist/src/tui/components/StageHealthBar.spec.js +0 -99
  409. package/dist/src/tui/components/StageHealthBar.spec.js.map +0 -1
  410. package/dist/src/tui/components/act-screen.pure.js.map +0 -1
  411. package/dist/src/tui/components/activity-visualizer.pure.js.map +0 -1
  412. package/dist/src/tui/components/agent-discussion-panel.pure.js.map +0 -1
  413. package/dist/src/tui/components/checklist-panel.pure.js.map +0 -1
  414. package/dist/src/tui/components/context-section.pure.js.map +0 -1
  415. package/dist/src/tui/components/eval-screen.pure.js.map +0 -1
  416. package/dist/src/tui/components/flow-map.pure.js.map +0 -1
  417. package/dist/src/tui/components/focused-agent.pure.js.map +0 -1
  418. package/dist/src/tui/components/grid-layout.pure.js.map +0 -1
  419. package/dist/src/tui/components/index.js.map +0 -1
  420. package/dist/src/tui/components/live.pure.js.map +0 -1
  421. package/dist/src/tui/components/plan-screen.pure.js.map +0 -1
  422. package/dist/src/tui/components/session-dashboard.pure.js.map +0 -1
  423. package/dist/src/tui/components/session-tab-bar.pure.js.map +0 -1
  424. package/dist/src/tui/components/stage-health.pure.js.map +0 -1
  425. package/dist/src/tui/dashboard-app.js.map +0 -1
  426. package/dist/src/tui/dashboard-app.spec.d.ts +0 -1
  427. package/dist/src/tui/dashboard-app.spec.js +0 -158
  428. package/dist/src/tui/dashboard-app.spec.js.map +0 -1
  429. package/dist/src/tui/dashboard-types.js.map +0 -1
  430. package/dist/src/tui/ensure-tui-ready.js.map +0 -1
  431. package/dist/src/tui/eventbus-ui.integration.spec.d.ts +0 -1
  432. package/dist/src/tui/eventbus-ui.integration.spec.js +0 -577
  433. package/dist/src/tui/eventbus-ui.integration.spec.js.map +0 -1
  434. package/dist/src/tui/events/agent-metadata.service.js.map +0 -1
  435. package/dist/src/tui/events/agent-metadata.types.js.map +0 -1
  436. package/dist/src/tui/events/event-bus.js.map +0 -1
  437. package/dist/src/tui/events/events.module.js.map +0 -1
  438. package/dist/src/tui/events/hud-file-bridge.js.map +0 -1
  439. package/dist/src/tui/events/index.js.map +0 -1
  440. package/dist/src/tui/events/parse-agent.js.map +0 -1
  441. package/dist/src/tui/events/parse-tool-response.js.map +0 -1
  442. package/dist/src/tui/events/response-event-extractor.js.map +0 -1
  443. package/dist/src/tui/events/tui-interceptor.js.map +0 -1
  444. package/dist/src/tui/events/types.js.map +0 -1
  445. package/dist/src/tui/hooks/index.js.map +0 -1
  446. package/dist/src/tui/hooks/use-dashboard-state.js.map +0 -1
  447. package/dist/src/tui/hooks/use-focus-agent.js.map +0 -1
  448. package/dist/src/tui/hooks/use-multi-session-state.js.map +0 -1
  449. package/dist/src/tui/hooks/use-terminal-size.js.map +0 -1
  450. package/dist/src/tui/hooks/use-tick.js.map +0 -1
  451. package/dist/src/tui/hooks/use-tick.spec.d.ts +0 -1
  452. package/dist/src/tui/hooks/use-tick.spec.js +0 -70
  453. package/dist/src/tui/hooks/use-tick.spec.js.map +0 -1
  454. package/dist/src/tui/index.js.map +0 -1
  455. package/dist/src/tui/ipc/index.js.map +0 -1
  456. package/dist/src/tui/ipc/instance-registry.js.map +0 -1
  457. package/dist/src/tui/ipc/ipc-bridge.js.map +0 -1
  458. package/dist/src/tui/ipc/ipc-client.js.map +0 -1
  459. package/dist/src/tui/ipc/ipc-debug.js.map +0 -1
  460. package/dist/src/tui/ipc/ipc-server.js.map +0 -1
  461. package/dist/src/tui/ipc/ipc-state-cache.js.map +0 -1
  462. package/dist/src/tui/ipc/ipc.types.js.map +0 -1
  463. package/dist/src/tui/ipc/multi-session-manager.js.map +0 -1
  464. package/dist/src/tui/ipc/shutdown-manager.js.map +0 -1
  465. package/dist/src/tui/ipc/test-utils.js.map +0 -1
  466. package/dist/src/tui/ipc/tui-auto-launcher.js.map +0 -1
  467. package/dist/src/tui/multi-session-app.js.map +0 -1
  468. package/dist/src/tui/multi-session-app.spec.d.ts +0 -1
  469. package/dist/src/tui/multi-session-app.spec.js +0 -95
  470. package/dist/src/tui/multi-session-app.spec.js.map +0 -1
  471. package/dist/src/tui/transport-tui.integration.spec.d.ts +0 -1
  472. package/dist/src/tui/transport-tui.integration.spec.js +0 -189
  473. package/dist/src/tui/transport-tui.integration.spec.js.map +0 -1
  474. package/dist/src/tui/tui-config.js.map +0 -1
  475. package/dist/src/tui/types.js.map +0 -1
  476. package/dist/src/tui/utils/color-buffer.js.map +0 -1
  477. package/dist/src/tui/utils/colors.js.map +0 -1
  478. package/dist/src/tui/utils/display-width.js.map +0 -1
  479. package/dist/src/tui/utils/edge-router.js.map +0 -1
  480. package/dist/src/tui/utils/icons.js.map +0 -1
  481. package/dist/src/tui/utils/index.js.map +0 -1
  482. package/dist/src/tui/utils/theme.js.map +0 -1
  483. package/dist/tsconfig.build.tsbuildinfo +0 -1
@@ -13,18 +13,27 @@ exports.AgentHandler = void 0;
13
13
  const common_1 = require("@nestjs/common");
14
14
  const abstract_handler_1 = require("./abstract-handler");
15
15
  const agent_service_1 = require("../../agent/agent.service");
16
+ const agent_stack_service_1 = require("../../agent/agent-stack.service");
16
17
  const verbosity_types_1 = require("../../shared/verbosity.types");
17
18
  const response_utils_1 = require("../response.utils");
18
19
  const validation_constants_1 = require("../../shared/validation.constants");
19
20
  const impact_1 = require("../../impact");
21
+ const rule_event_collector_1 = require("../../rules/rule-event-collector");
20
22
  let AgentHandler = class AgentHandler extends abstract_handler_1.AbstractHandler {
21
- constructor(agentService, impactEventService) {
23
+ constructor(agentService, agentStackService, impactEventService, ruleEventCollector) {
22
24
  super();
23
25
  this.agentService = agentService;
26
+ this.agentStackService = agentStackService;
24
27
  this.impactEventService = impactEventService;
28
+ this.ruleEventCollector = ruleEventCollector;
25
29
  }
26
30
  getHandledTools() {
27
- return ['get_agent_system_prompt', 'prepare_parallel_agents', 'dispatch_agents'];
31
+ return [
32
+ 'get_agent_system_prompt',
33
+ 'prepare_parallel_agents',
34
+ 'dispatch_agents',
35
+ 'list_agent_stacks',
36
+ ];
28
37
  }
29
38
  async handleTool(toolName, args) {
30
39
  switch (toolName) {
@@ -34,6 +43,8 @@ let AgentHandler = class AgentHandler extends abstract_handler_1.AbstractHandler
34
43
  return this.handlePrepareParallelAgents(args);
35
44
  case 'dispatch_agents':
36
45
  return this.handleDispatchAgents(args);
46
+ case 'list_agent_stacks':
47
+ return this.handleListAgentStacks(args);
37
48
  default:
38
49
  return (0, response_utils_1.createErrorResponse)(`Unknown tool: ${toolName}`);
39
50
  }
@@ -144,8 +155,12 @@ let AgentHandler = class AgentHandler extends abstract_handler_1.AbstractHandler
144
155
  },
145
156
  executionStrategy: {
146
157
  type: 'string',
147
- enum: ['subagent', 'taskmaestro', 'teams'],
148
- description: 'Execution strategy for specialist agents. "subagent" (default) uses Claude Code Agent tool with run_in_background. "taskmaestro" returns tmux pane assignments for /taskmaestro skill. "teams" uses Claude Code native teams with shared TaskList coordination.',
158
+ enum: ['subagent', 'taskmaestro', 'teams', 'taskmaestro+teams'],
159
+ description: 'Execution strategy for specialist agents. "subagent" (default) uses Claude Code Agent tool with run_in_background. "taskmaestro" returns tmux pane assignments for /taskmaestro skill. "teams" uses Claude Code native teams with shared TaskList coordination. "taskmaestro+teams" uses TaskMaestro as outer transport with Teams as inner coordination.',
160
+ },
161
+ agentStack: {
162
+ type: 'string',
163
+ description: 'Agent stack name to resolve primary + specialists from a preset (e.g., "api-development"). Overrides primaryAgent and specialists when provided.',
149
164
  },
150
165
  inlineAgents: {
151
166
  type: 'object',
@@ -171,6 +186,19 @@ let AgentHandler = class AgentHandler extends abstract_handler_1.AbstractHandler
171
186
  required: ['mode'],
172
187
  },
173
188
  },
189
+ {
190
+ name: 'list_agent_stacks',
191
+ description: 'List available agent stack presets. Each stack defines a primary agent and specialist combination for common workflows.',
192
+ inputSchema: {
193
+ type: 'object',
194
+ properties: {
195
+ category: {
196
+ type: 'string',
197
+ description: 'Optional category filter (e.g., "development", "review", "data", "security")',
198
+ },
199
+ },
200
+ },
201
+ },
174
202
  ];
175
203
  }
176
204
  async handleDispatchAgents(args) {
@@ -180,13 +208,25 @@ let AgentHandler = class AgentHandler extends abstract_handler_1.AbstractHandler
180
208
  ? 'Missing required parameter: mode (PLAN, ACT, EVAL, or AUTO)'
181
209
  : `Invalid mode: ${mode}. Must be PLAN, ACT, EVAL, or AUTO`);
182
210
  }
183
- const primaryAgent = (0, validation_constants_1.extractOptionalString)(args, 'primaryAgent');
184
- const specialists = (0, validation_constants_1.extractStringArray)(args, 'specialists');
211
+ const agentStack = (0, validation_constants_1.extractOptionalString)(args, 'agentStack');
212
+ let primaryAgent = (0, validation_constants_1.extractOptionalString)(args, 'primaryAgent');
213
+ let specialists = (0, validation_constants_1.extractStringArray)(args, 'specialists');
185
214
  const targetFiles = (0, validation_constants_1.extractStringArray)(args, 'targetFiles');
186
215
  const taskDescription = (0, validation_constants_1.extractOptionalString)(args, 'taskDescription');
187
- const includeParallel = args?.includeParallel === true;
216
+ let includeParallel = args?.includeParallel === true;
188
217
  const executionStrategy = args?.executionStrategy ?? 'subagent';
189
218
  const inlineAgents = this.extractInlineAgents(args);
219
+ if (agentStack) {
220
+ try {
221
+ const stack = await this.agentStackService.resolveStack(agentStack);
222
+ primaryAgent = primaryAgent ?? stack.primary_agent;
223
+ specialists = specialists?.length ? specialists : stack.specialist_agents;
224
+ includeParallel = includeParallel || stack.specialist_agents.length > 0;
225
+ }
226
+ catch (error) {
227
+ return (0, response_utils_1.createErrorResponse)(`Failed to resolve agent stack: ${error instanceof Error ? error.message : 'Unknown error'}`);
228
+ }
229
+ }
190
230
  try {
191
231
  const result = await this.agentService.dispatchAgents({
192
232
  mode: mode,
@@ -218,6 +258,27 @@ let AgentHandler = class AgentHandler extends abstract_handler_1.AbstractHandler
218
258
  }
219
259
  catch {
220
260
  }
261
+ try {
262
+ const timestamp = new Date().toISOString();
263
+ if (primaryAgent) {
264
+ this.ruleEventCollector.record({
265
+ type: 'specialist_dispatched',
266
+ timestamp,
267
+ domain: primaryAgent,
268
+ });
269
+ }
270
+ if (result.parallelAgents) {
271
+ for (const agent of result.parallelAgents) {
272
+ this.ruleEventCollector.record({
273
+ type: 'specialist_dispatched',
274
+ timestamp,
275
+ domain: agent.name,
276
+ });
277
+ }
278
+ }
279
+ }
280
+ catch {
281
+ }
221
282
  return (0, response_utils_1.createJsonResponse)(result);
222
283
  }
223
284
  catch (error) {
@@ -283,6 +344,16 @@ let AgentHandler = class AgentHandler extends abstract_handler_1.AbstractHandler
283
344
  return (0, response_utils_1.createErrorResponse)(`Failed to prepare parallel agents: ${error instanceof Error ? error.message : 'Unknown error'}`);
284
345
  }
285
346
  }
347
+ async handleListAgentStacks(args) {
348
+ const category = (0, validation_constants_1.extractOptionalString)(args, 'category');
349
+ try {
350
+ const stacks = await this.agentStackService.listStacks(category);
351
+ return (0, response_utils_1.createJsonResponse)({ stacks });
352
+ }
353
+ catch (error) {
354
+ return (0, response_utils_1.createErrorResponse)(`Failed to list agent stacks: ${error instanceof Error ? error.message : 'Unknown error'}`);
355
+ }
356
+ }
286
357
  extractInlineAgents(args) {
287
358
  const raw = args?.inlineAgents;
288
359
  if (!(0, validation_constants_1.isRecordObject)(raw))
@@ -294,6 +365,8 @@ exports.AgentHandler = AgentHandler;
294
365
  exports.AgentHandler = AgentHandler = __decorate([
295
366
  (0, common_1.Injectable)(),
296
367
  __metadata("design:paramtypes", [agent_service_1.AgentService,
297
- impact_1.ImpactEventService])
368
+ agent_stack_service_1.AgentStackService,
369
+ impact_1.ImpactEventService,
370
+ rule_event_collector_1.RuleEventCollector])
298
371
  ], AgentHandler);
299
372
  //# sourceMappingURL=agent.handler.js.map
@@ -0,0 +1,12 @@
1
+ import type { ToolDefinition } from './base.handler';
2
+ import type { ToolResponse } from '../response.utils';
3
+ import { AbstractHandler } from './abstract-handler';
4
+ import { BriefingService } from '../../context/briefing.service';
5
+ export declare class BriefingHandler extends AbstractHandler {
6
+ private readonly briefingService;
7
+ private readonly logger;
8
+ constructor(briefingService: BriefingService);
9
+ protected getHandledTools(): string[];
10
+ protected handleTool(_toolName: string, args: Record<string, unknown> | undefined): Promise<ToolResponse>;
11
+ getToolDefinitions(): ToolDefinition[];
12
+ }
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var BriefingHandler_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.BriefingHandler = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const abstract_handler_1 = require("./abstract-handler");
16
+ const briefing_service_1 = require("../../context/briefing.service");
17
+ const response_utils_1 = require("../response.utils");
18
+ const validation_constants_1 = require("../../shared/validation.constants");
19
+ let BriefingHandler = BriefingHandler_1 = class BriefingHandler extends abstract_handler_1.AbstractHandler {
20
+ constructor(briefingService) {
21
+ super();
22
+ this.briefingService = briefingService;
23
+ this.logger = new common_1.Logger(BriefingHandler_1.name);
24
+ }
25
+ getHandledTools() {
26
+ return ['create_briefing'];
27
+ }
28
+ async handleTool(_toolName, args) {
29
+ try {
30
+ const contextPath = (0, validation_constants_1.extractOptionalString)(args, 'contextPath');
31
+ const projectRoot = (0, validation_constants_1.extractOptionalString)(args, 'projectRoot');
32
+ const result = await this.briefingService.createBriefing({
33
+ contextPath,
34
+ projectRoot,
35
+ });
36
+ return (0, response_utils_1.createJsonResponse)(result);
37
+ }
38
+ catch (error) {
39
+ this.logger.error(`Briefing creation failed: ${error}`);
40
+ return (0, response_utils_1.createErrorResponse)(`Briefing creation failed: ${error instanceof Error ? error.message : String(error)}`);
41
+ }
42
+ }
43
+ getToolDefinitions() {
44
+ return [
45
+ {
46
+ name: 'create_briefing',
47
+ description: 'Capture current session state into a briefing document for cross-session recovery',
48
+ inputSchema: {
49
+ type: 'object',
50
+ properties: {
51
+ contextPath: {
52
+ type: 'string',
53
+ description: 'Path to context.md file (default: docs/codingbuddy/context.md)',
54
+ },
55
+ projectRoot: {
56
+ type: 'string',
57
+ description: 'Project root directory (default: auto-detected)',
58
+ },
59
+ },
60
+ required: [],
61
+ },
62
+ },
63
+ ];
64
+ }
65
+ };
66
+ exports.BriefingHandler = BriefingHandler;
67
+ exports.BriefingHandler = BriefingHandler = BriefingHandler_1 = __decorate([
68
+ (0, common_1.Injectable)(),
69
+ __metadata("design:paramtypes", [briefing_service_1.BriefingService])
70
+ ], BriefingHandler);
71
+ //# sourceMappingURL=briefing.handler.js.map
@@ -4,11 +4,13 @@ import { AbstractHandler } from './abstract-handler';
4
4
  import { ChecklistService } from '../../checklist/checklist.service';
5
5
  import { ContextService } from '../../context/context.service';
6
6
  import { ImpactEventService } from '../../impact';
7
+ import { RuleEventCollector } from '../../rules/rule-event-collector';
7
8
  export declare class ChecklistContextHandler extends AbstractHandler {
8
9
  private readonly checklistService;
9
10
  private readonly contextService;
10
11
  private readonly impactEventService;
11
- constructor(checklistService: ChecklistService, contextService: ContextService, impactEventService: ImpactEventService);
12
+ private readonly ruleEventCollector;
13
+ constructor(checklistService: ChecklistService, contextService: ContextService, impactEventService: ImpactEventService, ruleEventCollector: RuleEventCollector);
12
14
  protected getHandledTools(): string[];
13
15
  protected handleTool(toolName: string, args: Record<string, unknown> | undefined): Promise<ToolResponse>;
14
16
  getToolDefinitions(): ToolDefinition[];
@@ -17,6 +17,7 @@ const context_service_1 = require("../../context/context.service");
17
17
  const response_utils_1 = require("../response.utils");
18
18
  const validation_constants_1 = require("../../shared/validation.constants");
19
19
  const impact_1 = require("../../impact");
20
+ const rule_event_collector_1 = require("../../rules/rule-event-collector");
20
21
  const VALID_CHECKLIST_DOMAINS = [
21
22
  'security',
22
23
  'accessibility',
@@ -26,11 +27,12 @@ const VALID_CHECKLIST_DOMAINS = [
26
27
  'seo',
27
28
  ];
28
29
  let ChecklistContextHandler = class ChecklistContextHandler extends abstract_handler_1.AbstractHandler {
29
- constructor(checklistService, contextService, impactEventService) {
30
+ constructor(checklistService, contextService, impactEventService, ruleEventCollector) {
30
31
  super();
31
32
  this.checklistService = checklistService;
32
33
  this.contextService = contextService;
33
34
  this.impactEventService = impactEventService;
35
+ this.ruleEventCollector = ruleEventCollector;
34
36
  }
35
37
  getHandledTools() {
36
38
  return ['generate_checklist', 'analyze_task'];
@@ -120,6 +122,18 @@ let ChecklistContextHandler = class ChecklistContextHandler extends abstract_han
120
122
  }
121
123
  catch {
122
124
  }
125
+ try {
126
+ const timestamp = new Date().toISOString();
127
+ for (const domain of domains ?? []) {
128
+ this.ruleEventCollector.record({
129
+ type: 'checklist_generated',
130
+ timestamp,
131
+ domain,
132
+ });
133
+ }
134
+ }
135
+ catch {
136
+ }
123
137
  return (0, response_utils_1.createJsonResponse)(result);
124
138
  }
125
139
  catch (error) {
@@ -152,6 +166,7 @@ exports.ChecklistContextHandler = ChecklistContextHandler = __decorate([
152
166
  (0, common_1.Injectable)(),
153
167
  __metadata("design:paramtypes", [checklist_service_1.ChecklistService,
154
168
  context_service_1.ContextService,
155
- impact_1.ImpactEventService])
169
+ impact_1.ImpactEventService,
170
+ rule_event_collector_1.RuleEventCollector])
156
171
  ], ChecklistContextHandler);
157
172
  //# sourceMappingURL=checklist-context.handler.js.map
@@ -1,7 +1,10 @@
1
1
  import type { ToolDefinition } from './base.handler';
2
2
  import type { ToolResponse } from '../response.utils';
3
3
  import { AbstractHandler } from './abstract-handler';
4
+ import { RuleEventCollector } from '../../rules/rule-event-collector';
4
5
  export declare class DiscussionHandler extends AbstractHandler {
6
+ private readonly ruleEventCollector;
7
+ constructor(ruleEventCollector: RuleEventCollector);
5
8
  protected getHandledTools(): string[];
6
9
  protected handleTool(toolName: string, args: Record<string, unknown> | undefined): Promise<ToolResponse>;
7
10
  getToolDefinitions(): ToolDefinition[];
@@ -5,6 +5,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
8
11
  Object.defineProperty(exports, "__esModule", { value: true });
9
12
  exports.DiscussionHandler = void 0;
10
13
  const common_1 = require("@nestjs/common");
@@ -12,6 +15,7 @@ const abstract_handler_1 = require("./abstract-handler");
12
15
  const response_utils_1 = require("../response.utils");
13
16
  const validation_constants_1 = require("../../shared/validation.constants");
14
17
  const discussion_types_1 = require("./discussion.types");
18
+ const rule_event_collector_1 = require("../../rules/rule-event-collector");
15
19
  const SPECIALIST_DOMAINS = {
16
20
  'security-specialist': { domain: 'security', defaultSeverity: 'high' },
17
21
  'performance-specialist': { domain: 'performance', defaultSeverity: 'medium' },
@@ -24,6 +28,10 @@ const SPECIALIST_DOMAINS = {
24
28
  };
25
29
  const SEVERITY_ORDER = ['info', 'low', 'medium', 'high', 'critical'];
26
30
  let DiscussionHandler = class DiscussionHandler extends abstract_handler_1.AbstractHandler {
31
+ constructor(ruleEventCollector) {
32
+ super();
33
+ this.ruleEventCollector = ruleEventCollector;
34
+ }
27
35
  getHandledTools() {
28
36
  return ['agent_discussion'];
29
37
  }
@@ -87,6 +95,18 @@ let DiscussionHandler = class DiscussionHandler extends abstract_handler_1.Abstr
87
95
  summary,
88
96
  maxSeverity,
89
97
  };
98
+ try {
99
+ const timestamp = new Date().toISOString();
100
+ for (const specialist of specialists) {
101
+ this.ruleEventCollector.record({
102
+ type: 'specialist_dispatched',
103
+ timestamp,
104
+ domain: specialist,
105
+ });
106
+ }
107
+ }
108
+ catch {
109
+ }
90
110
  return (0, response_utils_1.createJsonResponse)(result);
91
111
  }
92
112
  collectOpinions(topic, specialists, context) {
@@ -163,6 +183,7 @@ let DiscussionHandler = class DiscussionHandler extends abstract_handler_1.Abstr
163
183
  };
164
184
  exports.DiscussionHandler = DiscussionHandler;
165
185
  exports.DiscussionHandler = DiscussionHandler = __decorate([
166
- (0, common_1.Injectable)()
186
+ (0, common_1.Injectable)(),
187
+ __metadata("design:paramtypes", [rule_event_collector_1.RuleEventCollector])
167
188
  ], DiscussionHandler);
168
189
  //# sourceMappingURL=discussion.handler.js.map
@@ -16,4 +16,8 @@ export { RuleInsightsHandler } from './rule-insights.handler';
16
16
  export { ImpactHandler } from './impact.handler';
17
17
  export { PluginValidationHandler } from './plugin-validation.handler';
18
18
  export { ReleaseCheckHandler } from './release-check.handler';
19
+ export { QualityReportHandler } from './quality-report.handler';
20
+ export { BriefingHandler } from './briefing.handler';
21
+ export { ResumeHandler } from './resume.handler';
22
+ export { RuleImpactHandler } from './rule-impact.handler';
19
23
  export declare const TOOL_HANDLERS = "TOOL_HANDLERS";
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TOOL_HANDLERS = exports.ReleaseCheckHandler = exports.PluginValidationHandler = exports.ImpactHandler = exports.RuleInsightsHandler = exports.ContextArchiveHandler = exports.PipelineHandler = exports.ParallelValidationHandler = exports.DiscussionHandler = exports.TuiHandler = exports.ContextDocumentHandler = exports.ConventionsHandler = exports.ChecklistContextHandler = exports.ModeHandler = exports.AgentHandler = exports.SkillHandler = exports.ConfigHandler = exports.RulesHandler = void 0;
3
+ exports.TOOL_HANDLERS = exports.RuleImpactHandler = exports.ResumeHandler = exports.BriefingHandler = exports.QualityReportHandler = exports.ReleaseCheckHandler = exports.PluginValidationHandler = exports.ImpactHandler = exports.RuleInsightsHandler = exports.ContextArchiveHandler = exports.PipelineHandler = exports.ParallelValidationHandler = exports.DiscussionHandler = exports.TuiHandler = exports.ContextDocumentHandler = exports.ConventionsHandler = exports.ChecklistContextHandler = exports.ModeHandler = exports.AgentHandler = exports.SkillHandler = exports.ConfigHandler = exports.RulesHandler = void 0;
4
4
  var rules_handler_1 = require("./rules.handler");
5
5
  Object.defineProperty(exports, "RulesHandler", { enumerable: true, get: function () { return rules_handler_1.RulesHandler; } });
6
6
  var config_handler_1 = require("./config.handler");
@@ -35,5 +35,13 @@ var plugin_validation_handler_1 = require("./plugin-validation.handler");
35
35
  Object.defineProperty(exports, "PluginValidationHandler", { enumerable: true, get: function () { return plugin_validation_handler_1.PluginValidationHandler; } });
36
36
  var release_check_handler_1 = require("./release-check.handler");
37
37
  Object.defineProperty(exports, "ReleaseCheckHandler", { enumerable: true, get: function () { return release_check_handler_1.ReleaseCheckHandler; } });
38
+ var quality_report_handler_1 = require("./quality-report.handler");
39
+ Object.defineProperty(exports, "QualityReportHandler", { enumerable: true, get: function () { return quality_report_handler_1.QualityReportHandler; } });
40
+ var briefing_handler_1 = require("./briefing.handler");
41
+ Object.defineProperty(exports, "BriefingHandler", { enumerable: true, get: function () { return briefing_handler_1.BriefingHandler; } });
42
+ var resume_handler_1 = require("./resume.handler");
43
+ Object.defineProperty(exports, "ResumeHandler", { enumerable: true, get: function () { return resume_handler_1.ResumeHandler; } });
44
+ var rule_impact_handler_1 = require("./rule-impact.handler");
45
+ Object.defineProperty(exports, "RuleImpactHandler", { enumerable: true, get: function () { return rule_impact_handler_1.RuleImpactHandler; } });
38
46
  exports.TOOL_HANDLERS = 'TOOL_HANDLERS';
39
47
  //# sourceMappingURL=index.js.map
@@ -9,7 +9,10 @@ import { StateService } from '../../state/state.service';
9
9
  import { ContextDocumentService } from '../../context/context-document.service';
10
10
  import { DiagnosticLogService } from '../../diagnostic/diagnostic-log.service';
11
11
  import { AgentService } from '../../agent/agent.service';
12
+ import { CouncilPresetService } from '../../agent/council-preset.service';
13
+ import { TeamsCapabilityService } from '../../agent/teams-capability.service';
12
14
  import { ImpactEventService } from '../../impact';
15
+ import { RuleEventCollector } from '../../rules/rule-event-collector';
13
16
  export declare class ModeHandler extends AbstractHandler {
14
17
  private readonly keywordService;
15
18
  private readonly configService;
@@ -19,9 +22,12 @@ export declare class ModeHandler extends AbstractHandler {
19
22
  private readonly contextDocService;
20
23
  private readonly diagnosticLogService;
21
24
  private readonly agentService;
25
+ private readonly councilPresetService;
26
+ private readonly teamsCapabilityService;
22
27
  private readonly impactEventService;
28
+ private readonly ruleEventCollector;
23
29
  private readonly logger;
24
- constructor(keywordService: KeywordService, configService: ConfigService, languageService: LanguageService, modelResolverService: ModelResolverService, stateService: StateService, contextDocService: ContextDocumentService, diagnosticLogService: DiagnosticLogService, agentService: AgentService, impactEventService: ImpactEventService);
30
+ constructor(keywordService: KeywordService, configService: ConfigService, languageService: LanguageService, modelResolverService: ModelResolverService, stateService: StateService, contextDocService: ContextDocumentService, diagnosticLogService: DiagnosticLogService, agentService: AgentService, councilPresetService: CouncilPresetService, teamsCapabilityService: TeamsCapabilityService, impactEventService: ImpactEventService, ruleEventCollector: RuleEventCollector);
25
31
  protected getHandledTools(): string[];
26
32
  getToolDefinitions(): ToolDefinition[];
27
33
  protected handleTool(toolName: string, args: Record<string, unknown> | undefined): Promise<ToolResponse>;
@@ -32,5 +38,7 @@ export declare class ModeHandler extends AbstractHandler {
32
38
  private buildPlanReviewGate;
33
39
  private buildAgentDiscussion;
34
40
  private buildVisual;
41
+ private resolveTeamsCapability;
42
+ private buildExecutionPlan;
35
43
  private persistModeState;
36
44
  }
@@ -33,10 +33,14 @@ const keyword_types_2 = require("../../keyword/keyword.types");
33
33
  const visual_data_builder_1 = require("../../keyword/visual-data.builder");
34
34
  const verbosity_types_1 = require("../../shared/verbosity.types");
35
35
  const agent_service_1 = require("../../agent/agent.service");
36
+ const council_preset_service_1 = require("../../agent/council-preset.service");
37
+ const teams_capability_service_1 = require("../../agent/teams-capability.service");
38
+ const execution_plan_1 = require("../../agent/execution-plan");
36
39
  const impact_1 = require("../../impact");
40
+ const rule_event_collector_1 = require("../../rules/rule-event-collector");
37
41
  const CONTEXT_TITLE_MAX_LENGTH = 50;
38
42
  let ModeHandler = ModeHandler_1 = class ModeHandler extends abstract_handler_1.AbstractHandler {
39
- constructor(keywordService, configService, languageService, modelResolverService, stateService, contextDocService, diagnosticLogService, agentService, impactEventService) {
43
+ constructor(keywordService, configService, languageService, modelResolverService, stateService, contextDocService, diagnosticLogService, agentService, councilPresetService, teamsCapabilityService, impactEventService, ruleEventCollector) {
40
44
  super();
41
45
  this.keywordService = keywordService;
42
46
  this.configService = configService;
@@ -46,7 +50,10 @@ let ModeHandler = ModeHandler_1 = class ModeHandler extends abstract_handler_1.A
46
50
  this.contextDocService = contextDocService;
47
51
  this.diagnosticLogService = diagnosticLogService;
48
52
  this.agentService = agentService;
53
+ this.councilPresetService = councilPresetService;
54
+ this.teamsCapabilityService = teamsCapabilityService;
49
55
  this.impactEventService = impactEventService;
56
+ this.ruleEventCollector = ruleEventCollector;
50
57
  this.logger = new common_1.Logger(ModeHandler_1.name);
51
58
  }
52
59
  getHandledTools() {
@@ -143,6 +150,9 @@ let ModeHandler = ModeHandler_1 = class ModeHandler extends abstract_handler_1.A
143
150
  const deepThinkingInstructions = this.buildDeepThinkingInstructions(result.mode);
144
151
  const planReviewGate = this.buildPlanReviewGate(result.mode, settings?.ai?.planReviewGate);
145
152
  const agentDiscussion = this.buildAgentDiscussion(result.mode, settings?.ai?.agentDiscussion);
153
+ const councilPreset = this.councilPresetService.resolvePreset(result.mode) ?? undefined;
154
+ const teamsCapability = await this.resolveTeamsCapability();
155
+ const executionPlan = this.buildExecutionPlan(dispatchReady, teamsCapability);
146
156
  const visual = await this.buildVisual(result.mode, result.delegates_to, result.parallelAgentsRecommendation?.specialists, settings?.eco);
147
157
  const response = (0, response_utils_1.createJsonResponse)({
148
158
  ...result,
@@ -154,6 +164,9 @@ let ModeHandler = ModeHandler_1 = class ModeHandler extends abstract_handler_1.A
154
164
  ...(planReviewGate && { planReviewGate }),
155
165
  ...(agentDiscussion && { agentDiscussion }),
156
166
  ...(visual && { visual }),
167
+ ...(councilPreset && { councilPreset }),
168
+ ...(executionPlan && { executionPlan: (0, execution_plan_1.serializeExecutionPlan)(executionPlan) }),
169
+ ...(teamsCapability && { teamsCapability }),
157
170
  ...contextResult,
158
171
  ...(projectRootWarning && { projectRootWarning }),
159
172
  });
@@ -165,6 +178,16 @@ let ModeHandler = ModeHandler_1 = class ModeHandler extends abstract_handler_1.A
165
178
  }
166
179
  catch {
167
180
  }
181
+ try {
182
+ this.ruleEventCollector.record({
183
+ type: 'mode_activated',
184
+ timestamp: new Date().toISOString(),
185
+ rule: result.mode,
186
+ details: { agent: result.agent },
187
+ });
188
+ }
189
+ catch {
190
+ }
168
191
  return response;
169
192
  }
170
193
  catch (error) {
@@ -353,6 +376,57 @@ let ModeHandler = ModeHandler_1 = class ModeHandler extends abstract_handler_1.A
353
376
  return undefined;
354
377
  }
355
378
  }
379
+ async resolveTeamsCapability() {
380
+ try {
381
+ return await this.teamsCapabilityService.getStatus();
382
+ }
383
+ catch (error) {
384
+ this.logger.warn(`Failed to resolve Teams capability: ${error instanceof Error ? error.message : 'Unknown error'}`);
385
+ return undefined;
386
+ }
387
+ }
388
+ buildExecutionPlan(dispatchReady, teamsCapability) {
389
+ if (!dispatchReady) {
390
+ return undefined;
391
+ }
392
+ const agents = [];
393
+ if (dispatchReady.primaryAgent) {
394
+ agents.push({
395
+ name: dispatchReady.primaryAgent.name,
396
+ displayName: dispatchReady.primaryAgent.displayName,
397
+ description: dispatchReady.primaryAgent.description,
398
+ dispatchParams: dispatchReady.primaryAgent.dispatchParams,
399
+ });
400
+ }
401
+ if (dispatchReady.parallelAgents?.length) {
402
+ for (const agent of dispatchReady.parallelAgents) {
403
+ agents.push({
404
+ name: agent.name,
405
+ displayName: agent.displayName,
406
+ description: agent.description,
407
+ dispatchParams: agent.dispatchParams,
408
+ });
409
+ }
410
+ }
411
+ if (agents.length === 0) {
412
+ return undefined;
413
+ }
414
+ const outer = (0, execution_plan_1.subagentLayer)(agents);
415
+ if (teamsCapability?.available) {
416
+ const inner = (0, execution_plan_1.teamsLayer)({
417
+ team_name: 'auto',
418
+ description: 'Auto-generated Teams coordination layer',
419
+ teammates: agents.map(a => ({
420
+ name: a.name,
421
+ subagent_type: 'general-purpose',
422
+ team_name: 'auto',
423
+ prompt: a.description,
424
+ })),
425
+ });
426
+ return (0, execution_plan_1.buildNestedPlan)(outer, inner);
427
+ }
428
+ return (0, execution_plan_1.buildSimplePlan)(outer);
429
+ }
356
430
  async persistModeState(mode) {
357
431
  try {
358
432
  await this.stateService.updateLastMode(mode);
@@ -375,6 +449,9 @@ exports.ModeHandler = ModeHandler = ModeHandler_1 = __decorate([
375
449
  context_document_service_1.ContextDocumentService,
376
450
  diagnostic_log_service_1.DiagnosticLogService,
377
451
  agent_service_1.AgentService,
378
- impact_1.ImpactEventService])
452
+ council_preset_service_1.CouncilPresetService,
453
+ teams_capability_service_1.TeamsCapabilityService,
454
+ impact_1.ImpactEventService,
455
+ rule_event_collector_1.RuleEventCollector])
379
456
  ], ModeHandler);
380
457
  //# sourceMappingURL=mode.handler.js.map
@@ -0,0 +1,14 @@
1
+ import type { ToolDefinition } from './base.handler';
2
+ import type { ToolResponse } from '../response.utils';
3
+ import { AbstractHandler } from './abstract-handler';
4
+ import { QualityReportService } from '../../ship/quality-report.service';
5
+ import { RuleEventCollector } from '../../rules/rule-event-collector';
6
+ export declare class QualityReportHandler extends AbstractHandler {
7
+ private readonly qualityReportService;
8
+ private readonly ruleEventCollector;
9
+ private readonly logger;
10
+ constructor(qualityReportService: QualityReportService, ruleEventCollector: RuleEventCollector);
11
+ protected getHandledTools(): string[];
12
+ protected handleTool(_toolName: string, args: Record<string, unknown> | undefined): Promise<ToolResponse>;
13
+ getToolDefinitions(): ToolDefinition[];
14
+ }