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
@@ -0,0 +1,24 @@
1
+ import type { AgentOpinion, Stance } from './types';
2
+ export interface CouncilInput {
3
+ readonly agentName: string;
4
+ readonly opinion: AgentOpinion | null;
5
+ readonly error?: string;
6
+ }
7
+ export interface DisagreementPosition {
8
+ readonly agentName: string;
9
+ readonly stance: Stance;
10
+ readonly reasoning: string;
11
+ }
12
+ export interface Disagreement {
13
+ readonly topic: string;
14
+ readonly positions: readonly DisagreementPosition[];
15
+ }
16
+ export interface CouncilSummary {
17
+ readonly opinions: readonly AgentOpinion[];
18
+ readonly failedAgents: readonly string[];
19
+ readonly consensus: readonly string[];
20
+ readonly disagreements: readonly Disagreement[];
21
+ readonly blockingRisks: readonly string[];
22
+ readonly nextStep: string;
23
+ readonly partialFailure: boolean;
24
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=council-summary.types.js.map
@@ -3,3 +3,5 @@ export { STANCES, STANCE_ICONS, createAgentOpinion, createCrossReview, createDis
3
3
  export { DiscussionEngine } from './discussion-engine';
4
4
  export { formatOpinion, formatCrossReview, formatConsensus, formatDiscussionRound, } from './terminal-formatter';
5
5
  export { mapSeverityToStance, convertSpecialistResult, convertSpecialistResults, type FindingSeverity, type SpecialistFinding, type SpecialistResult, } from './opinion-adapter';
6
+ export type { CouncilInput, CouncilSummary, Disagreement, DisagreementPosition, } from './council-summary.types';
7
+ export { generateCouncilSummary } from './council-summary.service';
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.convertSpecialistResults = exports.convertSpecialistResult = exports.mapSeverityToStance = exports.formatDiscussionRound = exports.formatConsensus = exports.formatCrossReview = exports.formatOpinion = exports.DiscussionEngine = exports.calculateConsensus = exports.createDiscussionRound = exports.createCrossReview = exports.createAgentOpinion = exports.STANCE_ICONS = exports.STANCES = void 0;
3
+ exports.generateCouncilSummary = exports.convertSpecialistResults = exports.convertSpecialistResult = exports.mapSeverityToStance = exports.formatDiscussionRound = exports.formatConsensus = exports.formatCrossReview = exports.formatOpinion = exports.DiscussionEngine = exports.calculateConsensus = exports.createDiscussionRound = exports.createCrossReview = exports.createAgentOpinion = exports.STANCE_ICONS = exports.STANCES = void 0;
4
4
  var types_1 = require("./types");
5
5
  Object.defineProperty(exports, "STANCES", { enumerable: true, get: function () { return types_1.STANCES; } });
6
6
  Object.defineProperty(exports, "STANCE_ICONS", { enumerable: true, get: function () { return types_1.STANCE_ICONS; } });
@@ -19,4 +19,6 @@ var opinion_adapter_1 = require("./opinion-adapter");
19
19
  Object.defineProperty(exports, "mapSeverityToStance", { enumerable: true, get: function () { return opinion_adapter_1.mapSeverityToStance; } });
20
20
  Object.defineProperty(exports, "convertSpecialistResult", { enumerable: true, get: function () { return opinion_adapter_1.convertSpecialistResult; } });
21
21
  Object.defineProperty(exports, "convertSpecialistResults", { enumerable: true, get: function () { return opinion_adapter_1.convertSpecialistResults; } });
22
+ var council_summary_service_1 = require("./council-summary.service");
23
+ Object.defineProperty(exports, "generateCouncilSummary", { enumerable: true, get: function () { return council_summary_service_1.generateCouncilSummary; } });
22
24
  //# sourceMappingURL=index.js.map
@@ -261,6 +261,9 @@ export declare const CodingBuddyConfigSchema: z.ZodObject<{
261
261
  maxArrayItems: z.ZodDefault<z.ZodNumber>;
262
262
  maxItemLength: z.ZodDefault<z.ZodNumber>;
263
263
  }, z.core.$strip>>;
264
+ experimental: z.ZodOptional<z.ZodObject<{
265
+ teamsCoordination: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
266
+ }, z.core.$strip>>;
264
267
  upstreamRepos: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
265
268
  keyFiles: z.ZodOptional<z.ZodArray<z.ZodString>>;
266
269
  avoid: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -98,6 +98,11 @@ exports.CodingBuddyConfigSchema = zod_1.z.object({
98
98
  auto: AutoConfigSchema.optional(),
99
99
  release: ReleaseConfigSchema.optional(),
100
100
  context: ContextConfigSchema.optional(),
101
+ experimental: zod_1.z
102
+ .object({
103
+ teamsCoordination: zod_1.z.boolean().default(false).optional(),
104
+ })
105
+ .optional(),
101
106
  upstreamRepos: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(),
102
107
  keyFiles: zod_1.z.array(zod_1.z.string()).optional(),
103
108
  avoid: zod_1.z.array(zod_1.z.string()).optional(),
@@ -0,0 +1,27 @@
1
+ import { ConfigService } from '../config/config.service';
2
+ import { ContextDocumentService } from './context-document.service';
3
+ export interface ParsedBriefing {
4
+ title: string;
5
+ mode: string;
6
+ decisions: string[];
7
+ pendingTasks: string[];
8
+ changedFiles: string[];
9
+ resumeCommand: string;
10
+ }
11
+ export interface RestoreResult extends ParsedBriefing {
12
+ contextRestored: boolean;
13
+ briefingPath: string;
14
+ }
15
+ export declare class BriefingLoaderService {
16
+ private readonly configService;
17
+ private readonly contextDocumentService;
18
+ private readonly logger;
19
+ constructor(configService: ConfigService, contextDocumentService: ContextDocumentService);
20
+ findMostRecentBriefing(): string | null;
21
+ parseBriefingMarkdown(content: string): ParsedBriefing;
22
+ loadBriefing(briefingPath?: string): Promise<ParsedBriefing & {
23
+ briefingPath: string;
24
+ }>;
25
+ restoreContext(briefingPath?: string): Promise<RestoreResult>;
26
+ private extractSectionItems;
27
+ }
@@ -0,0 +1,124 @@
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 BriefingLoaderService_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.BriefingLoaderService = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const fs = require("fs/promises");
16
+ const fs_1 = require("fs");
17
+ const path = require("path");
18
+ const config_service_1 = require("../config/config.service");
19
+ const context_document_service_1 = require("./context-document.service");
20
+ const briefing_types_1 = require("./briefing.types");
21
+ let BriefingLoaderService = BriefingLoaderService_1 = class BriefingLoaderService {
22
+ constructor(configService, contextDocumentService) {
23
+ this.configService = configService;
24
+ this.contextDocumentService = contextDocumentService;
25
+ this.logger = new common_1.Logger(BriefingLoaderService_1.name);
26
+ }
27
+ findMostRecentBriefing() {
28
+ const projectRoot = this.configService.getProjectRoot();
29
+ const briefingDir = path.join(projectRoot, briefing_types_1.BRIEFING_OUTPUT_DIR);
30
+ if (!(0, fs_1.existsSync)(briefingDir)) {
31
+ this.logger.debug(`Briefings directory does not exist: ${briefingDir}`);
32
+ return null;
33
+ }
34
+ const files = (0, fs_1.readdirSync)(briefingDir)
35
+ .filter(f => f.endsWith('.md'))
36
+ .sort();
37
+ if (files.length === 0) {
38
+ this.logger.debug('No briefing files found');
39
+ return null;
40
+ }
41
+ return path.join(briefingDir, files[files.length - 1]);
42
+ }
43
+ parseBriefingMarkdown(content) {
44
+ const result = {
45
+ title: 'Untitled',
46
+ mode: 'PLAN',
47
+ decisions: [],
48
+ pendingTasks: [],
49
+ changedFiles: [],
50
+ resumeCommand: '',
51
+ };
52
+ if (!content.trim()) {
53
+ return result;
54
+ }
55
+ const titleMatch = content.match(/^# Briefing: (.+)$/m);
56
+ if (titleMatch) {
57
+ result.title = titleMatch[1].trim();
58
+ }
59
+ const modeMatch = content.match(/\*\*Mode\*\*: (\w+)/);
60
+ if (modeMatch) {
61
+ result.mode = modeMatch[1];
62
+ }
63
+ result.decisions = this.extractSectionItems(content, 'Decisions');
64
+ result.changedFiles = this.extractSectionItems(content, 'Changed Files');
65
+ result.pendingTasks = this.extractSectionItems(content, 'Pending Tasks');
66
+ const resumeMatch = content.match(/## Resume Command\s*\n```\n([\s\S]*?)\n```/);
67
+ if (resumeMatch) {
68
+ result.resumeCommand = resumeMatch[1].trim();
69
+ }
70
+ return result;
71
+ }
72
+ async loadBriefing(briefingPath) {
73
+ let resolvedPath;
74
+ if (briefingPath) {
75
+ if (!(0, fs_1.existsSync)(briefingPath)) {
76
+ throw new Error(`Briefing file not found: ${briefingPath}`);
77
+ }
78
+ resolvedPath = briefingPath;
79
+ }
80
+ else {
81
+ const mostRecent = this.findMostRecentBriefing();
82
+ if (!mostRecent) {
83
+ throw new Error('No briefing files found in docs/codingbuddy/briefings/. Create one first with create_briefing.');
84
+ }
85
+ resolvedPath = mostRecent;
86
+ }
87
+ const content = await fs.readFile(resolvedPath, 'utf-8');
88
+ const parsed = this.parseBriefingMarkdown(content);
89
+ this.logger.log(`Loaded briefing: ${resolvedPath}`);
90
+ return { ...parsed, briefingPath: resolvedPath };
91
+ }
92
+ async restoreContext(briefingPath) {
93
+ const briefing = await this.loadBriefing(briefingPath);
94
+ await this.contextDocumentService.resetContext({
95
+ title: briefing.title,
96
+ task: `Resumed from briefing: ${briefing.resumeCommand}`,
97
+ decisions: briefing.decisions,
98
+ notes: briefing.pendingTasks,
99
+ });
100
+ this.logger.log(`Context restored from briefing: ${briefing.briefingPath}`);
101
+ return {
102
+ ...briefing,
103
+ contextRestored: true,
104
+ };
105
+ }
106
+ extractSectionItems(content, sectionName) {
107
+ const sectionRegex = new RegExp(`## ${sectionName}\\s*\\n([\\s\\S]*?)(?=\\n## |$)`);
108
+ const sectionMatch = content.match(sectionRegex);
109
+ if (!sectionMatch) {
110
+ return [];
111
+ }
112
+ return sectionMatch[1]
113
+ .split('\n')
114
+ .filter(line => line.startsWith('- '))
115
+ .map(line => line.slice(2).trim());
116
+ }
117
+ };
118
+ exports.BriefingLoaderService = BriefingLoaderService;
119
+ exports.BriefingLoaderService = BriefingLoaderService = BriefingLoaderService_1 = __decorate([
120
+ (0, common_1.Injectable)(),
121
+ __metadata("design:paramtypes", [config_service_1.ConfigService,
122
+ context_document_service_1.ContextDocumentService])
123
+ ], BriefingLoaderService);
124
+ //# sourceMappingURL=briefing-loader.service.js.map
@@ -0,0 +1,27 @@
1
+ import { ConfigService } from '../config/config.service';
2
+ import { ContextDocumentService } from './context-document.service';
3
+ import type { BriefingInput, BriefingResult } from './briefing.types';
4
+ export declare class BriefingService {
5
+ private readonly configService;
6
+ private readonly contextDocumentService;
7
+ private readonly logger;
8
+ constructor(configService: ConfigService, contextDocumentService: ContextDocumentService);
9
+ createBriefing(input?: BriefingInput): Promise<BriefingResult>;
10
+ parseContext(): Promise<{
11
+ decisions: string[];
12
+ pendingTasks: string[];
13
+ currentMode: string;
14
+ title: string;
15
+ }>;
16
+ getChangedFiles(projectRoot: string): string[];
17
+ generateResumeCommand(currentMode: string, pendingTasks: string[], title: string): string;
18
+ private writeBriefing;
19
+ formatBriefingMarkdown(data: {
20
+ decisions: string[];
21
+ pendingTasks: string[];
22
+ changedFiles: string[];
23
+ resumeCommand: string;
24
+ currentMode: string;
25
+ title: string;
26
+ }): string;
27
+ }
@@ -0,0 +1,181 @@
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 BriefingService_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.BriefingService = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const fs = require("fs/promises");
16
+ const fs_1 = require("fs");
17
+ const path = require("path");
18
+ const child_process_1 = require("child_process");
19
+ const config_service_1 = require("../config/config.service");
20
+ const context_document_service_1 = require("./context-document.service");
21
+ const briefing_types_1 = require("./briefing.types");
22
+ let BriefingService = BriefingService_1 = class BriefingService {
23
+ constructor(configService, contextDocumentService) {
24
+ this.configService = configService;
25
+ this.contextDocumentService = contextDocumentService;
26
+ this.logger = new common_1.Logger(BriefingService_1.name);
27
+ }
28
+ async createBriefing(input) {
29
+ const projectRoot = input?.projectRoot ?? this.configService.getProjectRoot();
30
+ const { decisions, pendingTasks, currentMode, title } = await this.parseContext();
31
+ const changedFiles = this.getChangedFiles(projectRoot);
32
+ const resumeCommand = this.generateResumeCommand(currentMode, pendingTasks, title);
33
+ const filePath = await this.writeBriefing(projectRoot, {
34
+ decisions,
35
+ pendingTasks,
36
+ changedFiles,
37
+ resumeCommand,
38
+ currentMode,
39
+ title,
40
+ });
41
+ return {
42
+ filePath,
43
+ decisions,
44
+ pendingTasks,
45
+ changedFiles,
46
+ resumeCommand,
47
+ };
48
+ }
49
+ async parseContext() {
50
+ const readResult = await this.contextDocumentService.readContext();
51
+ if (!readResult.exists || !readResult.document) {
52
+ return {
53
+ decisions: [],
54
+ pendingTasks: [],
55
+ currentMode: 'PLAN',
56
+ title: 'Untitled',
57
+ };
58
+ }
59
+ const doc = readResult.document;
60
+ const decisions = [];
61
+ const pendingTasks = [];
62
+ for (const section of doc.sections) {
63
+ if (section.decisions) {
64
+ decisions.push(...section.decisions);
65
+ }
66
+ if (section.notes) {
67
+ pendingTasks.push(...section.notes);
68
+ }
69
+ if (section.progress) {
70
+ for (const item of section.progress) {
71
+ if (!item.toLowerCase().includes('completed') && !item.toLowerCase().includes('done')) {
72
+ pendingTasks.push(item);
73
+ }
74
+ }
75
+ }
76
+ }
77
+ return {
78
+ decisions,
79
+ pendingTasks,
80
+ currentMode: doc.metadata.currentMode ?? 'PLAN',
81
+ title: doc.metadata.title ?? 'Untitled',
82
+ };
83
+ }
84
+ getChangedFiles(projectRoot) {
85
+ try {
86
+ const output = (0, child_process_1.execSync)('git diff --stat --name-only', {
87
+ cwd: projectRoot,
88
+ timeout: briefing_types_1.GIT_DIFF_TIMEOUT_MS,
89
+ encoding: 'utf-8',
90
+ stdio: ['pipe', 'pipe', 'pipe'],
91
+ });
92
+ return output
93
+ .split('\n')
94
+ .map(line => line.trim())
95
+ .filter(line => line.length > 0);
96
+ }
97
+ catch (error) {
98
+ this.logger.warn(`Failed to get git diff: ${error instanceof Error ? error.message : String(error)}`);
99
+ return [];
100
+ }
101
+ }
102
+ generateResumeCommand(currentMode, pendingTasks, title) {
103
+ if (pendingTasks.length === 0) {
104
+ return `PLAN continue "${title}"`;
105
+ }
106
+ switch (currentMode) {
107
+ case 'PLAN':
108
+ return `ACT execute the plan for "${title}"`;
109
+ case 'ACT':
110
+ return `ACT continue implementation of "${title}"`;
111
+ case 'EVAL':
112
+ return `ACT apply fixes from evaluation of "${title}"`;
113
+ default:
114
+ return `AUTO continue "${title}"`;
115
+ }
116
+ }
117
+ async writeBriefing(projectRoot, data) {
118
+ const briefingDir = path.join(projectRoot, briefing_types_1.BRIEFING_OUTPUT_DIR);
119
+ if (!(0, fs_1.existsSync)(briefingDir)) {
120
+ (0, fs_1.mkdirSync)(briefingDir, { recursive: true });
121
+ }
122
+ const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
123
+ const fileName = `${timestamp}.md`;
124
+ const filePath = path.join(briefingDir, fileName);
125
+ const content = this.formatBriefingMarkdown(data);
126
+ await fs.writeFile(filePath, content, 'utf-8');
127
+ this.logger.log(`Briefing written to ${filePath}`);
128
+ return filePath;
129
+ }
130
+ formatBriefingMarkdown(data) {
131
+ const lines = [];
132
+ lines.push(`# Briefing: ${data.title}`);
133
+ lines.push('');
134
+ lines.push(`**Mode**: ${data.currentMode}`);
135
+ lines.push(`**Created**: ${new Date().toISOString()}`);
136
+ lines.push('');
137
+ lines.push('## Decisions');
138
+ if (data.decisions.length > 0) {
139
+ for (const decision of data.decisions) {
140
+ lines.push(`- ${decision}`);
141
+ }
142
+ }
143
+ else {
144
+ lines.push('_No decisions recorded._');
145
+ }
146
+ lines.push('');
147
+ lines.push('## Changed Files');
148
+ if (data.changedFiles.length > 0) {
149
+ for (const file of data.changedFiles) {
150
+ lines.push(`- ${file}`);
151
+ }
152
+ }
153
+ else {
154
+ lines.push('_No files changed._');
155
+ }
156
+ lines.push('');
157
+ lines.push('## Pending Tasks');
158
+ if (data.pendingTasks.length > 0) {
159
+ for (const task of data.pendingTasks) {
160
+ lines.push(`- ${task}`);
161
+ }
162
+ }
163
+ else {
164
+ lines.push('_No pending tasks._');
165
+ }
166
+ lines.push('');
167
+ lines.push('## Resume Command');
168
+ lines.push('```');
169
+ lines.push(data.resumeCommand);
170
+ lines.push('```');
171
+ lines.push('');
172
+ return lines.join('\n');
173
+ }
174
+ };
175
+ exports.BriefingService = BriefingService;
176
+ exports.BriefingService = BriefingService = BriefingService_1 = __decorate([
177
+ (0, common_1.Injectable)(),
178
+ __metadata("design:paramtypes", [config_service_1.ConfigService,
179
+ context_document_service_1.ContextDocumentService])
180
+ ], BriefingService);
181
+ //# sourceMappingURL=briefing.service.js.map
@@ -0,0 +1,13 @@
1
+ export interface BriefingInput {
2
+ contextPath?: string;
3
+ projectRoot?: string;
4
+ }
5
+ export interface BriefingResult {
6
+ filePath: string;
7
+ decisions: string[];
8
+ pendingTasks: string[];
9
+ changedFiles: string[];
10
+ resumeCommand: string;
11
+ }
12
+ export declare const BRIEFING_OUTPUT_DIR = "docs/codingbuddy/briefings";
13
+ export declare const GIT_DIFF_TIMEOUT_MS = 10000;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GIT_DIFF_TIMEOUT_MS = exports.BRIEFING_OUTPUT_DIR = void 0;
4
+ exports.BRIEFING_OUTPUT_DIR = 'docs/codingbuddy/briefings';
5
+ exports.GIT_DIFF_TIMEOUT_MS = 10_000;
6
+ //# sourceMappingURL=briefing.types.js.map
@@ -11,6 +11,8 @@ const common_1 = require("@nestjs/common");
11
11
  const context_service_1 = require("./context.service");
12
12
  const context_document_service_1 = require("./context-document.service");
13
13
  const context_archive_service_1 = require("./context-archive.service");
14
+ const briefing_service_1 = require("./briefing.service");
15
+ const briefing_loader_service_1 = require("./briefing-loader.service");
14
16
  const checklist_module_1 = require("../checklist/checklist.module");
15
17
  const config_module_1 = require("../config/config.module");
16
18
  let ContextModule = class ContextModule {
@@ -19,8 +21,20 @@ exports.ContextModule = ContextModule;
19
21
  exports.ContextModule = ContextModule = __decorate([
20
22
  (0, common_1.Module)({
21
23
  imports: [checklist_module_1.ChecklistModule, config_module_1.CodingBuddyConfigModule],
22
- providers: [context_service_1.ContextService, context_document_service_1.ContextDocumentService, context_archive_service_1.ContextArchiveService],
23
- exports: [context_service_1.ContextService, context_document_service_1.ContextDocumentService, context_archive_service_1.ContextArchiveService],
24
+ providers: [
25
+ context_service_1.ContextService,
26
+ context_document_service_1.ContextDocumentService,
27
+ context_archive_service_1.ContextArchiveService,
28
+ briefing_service_1.BriefingService,
29
+ briefing_loader_service_1.BriefingLoaderService,
30
+ ],
31
+ exports: [
32
+ context_service_1.ContextService,
33
+ context_document_service_1.ContextDocumentService,
34
+ context_archive_service_1.ContextArchiveService,
35
+ briefing_service_1.BriefingService,
36
+ briefing_loader_service_1.BriefingLoaderService,
37
+ ],
24
38
  })
25
39
  ], ContextModule);
26
40
  //# sourceMappingURL=context.module.js.map
@@ -2,3 +2,5 @@ export * from './context.module';
2
2
  export * from './context.service';
3
3
  export * from './context.types';
4
4
  export * from './context-archive.service';
5
+ export * from './briefing.service';
6
+ export * from './briefing.types';
@@ -18,4 +18,6 @@ __exportStar(require("./context.module"), exports);
18
18
  __exportStar(require("./context.service"), exports);
19
19
  __exportStar(require("./context.types"), exports);
20
20
  __exportStar(require("./context-archive.service"), exports);
21
+ __exportStar(require("./briefing.service"), exports);
22
+ __exportStar(require("./briefing.types"), exports);
21
23
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,8 @@
1
1
  import type { DiffAnalysisResult } from './diff-analyzer';
2
+ import type { CouncilPreset } from '../agent/council-preset.types';
3
+ import type { CouncilSummary } from '../collaboration/council-summary.types';
4
+ import type { ExecutionPlan } from '../agent/execution-plan.types';
5
+ import type { TeamsCapabilityStatus } from '../agent/teams-capability.types';
2
6
  export declare const KEYWORDS: readonly ["PLAN", "ACT", "EVAL", "AUTO"];
3
7
  export type Mode = (typeof KEYWORDS)[number];
4
8
  export declare const MODE_AGENTS: readonly ["plan-mode", "act-mode", "eval-mode", "auto-mode"];
@@ -118,6 +122,10 @@ export interface ParseModeResult {
118
122
  taskmaestroInstallHint?: string;
119
123
  visual?: VisualData;
120
124
  diffAnalysis?: DiffAnalysisResult;
125
+ councilPreset?: CouncilPreset;
126
+ councilSummary?: CouncilSummary;
127
+ executionPlan?: ExecutionPlan;
128
+ teamsCapability?: TeamsCapabilityStatus;
121
129
  }
122
130
  export interface DispatchReadyParams {
123
131
  subagent_type: 'general-purpose';
package/dist/src/main.js CHANGED
@@ -2,7 +2,6 @@
2
2
  "use strict";
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.bootstrap = bootstrap;
5
- const path = require("path");
6
5
  const core_1 = require("@nestjs/core");
7
6
  const app_module_1 = require("./app.module");
8
7
  const mcp_service_1 = require("./mcp/mcp.service");
@@ -60,16 +59,6 @@ async function initTui(app, stdout) {
60
59
  const eventBus = app.get(TuiEventBus);
61
60
  return startTui({ eventBus, ...(stdout ? { stdout } : {}) });
62
61
  }
63
- async function launchAutoTui(ipcServer, tuiEnabled) {
64
- const { TuiAutoLauncher } = await Promise.resolve().then(() => require('./tui/ipc'));
65
- const codingbuddyBin = path.resolve(process.argv[1]);
66
- const launcher = new TuiAutoLauncher({
67
- enabled: tuiEnabled || process.env.CODINGBUDDY_AUTO_TUI === '1',
68
- codingbuddyBin,
69
- });
70
- const result = await launcher.launch(ipcServer);
71
- debugLog(`TUI auto-launch: ${result.reason}${result.pid ? ` (PID: ${result.pid})` : ''}`);
72
- }
73
62
  async function initIpc(app) {
74
63
  const { ensureTuiReady } = await Promise.resolve().then(() => require('./tui/ensure-tui-ready'));
75
64
  await ensureTuiReady(app);
@@ -156,9 +145,6 @@ async function bootstrap() {
156
145
  try {
157
146
  const ipcResult = await initIpc(app);
158
147
  sseShutdownManager.register(ipcResult.cleanup);
159
- launchAutoTui(ipcResult.ipcServer, tuiEnabled).catch(err => {
160
- debugLog(`TUI auto-launch failed (non-blocking): ${err}`);
161
- });
162
148
  }
163
149
  catch (error) {
164
150
  logger.warn(`IPC server failed to start (non-blocking): ${error}`);
@@ -185,9 +171,6 @@ async function bootstrap() {
185
171
  try {
186
172
  const ipcResult = await initIpc(app);
187
173
  shutdownManager.register(ipcResult.cleanup);
188
- launchAutoTui(ipcResult.ipcServer, tuiEnabled).catch(err => {
189
- debugLog(`TUI auto-launch failed (non-blocking): ${err}`);
190
- });
191
174
  }
192
175
  catch (error) {
193
176
  debugLog(`IPC server failed to start (non-blocking): ${error}`);
@@ -2,16 +2,21 @@ import type { ToolDefinition } from './base.handler';
2
2
  import type { ToolResponse } from '../response.utils';
3
3
  import { AbstractHandler } from './abstract-handler';
4
4
  import { AgentService } from '../../agent/agent.service';
5
+ import { AgentStackService } from '../../agent/agent-stack.service';
5
6
  import { ImpactEventService } from '../../impact';
7
+ import { RuleEventCollector } from '../../rules/rule-event-collector';
6
8
  export declare class AgentHandler extends AbstractHandler {
7
9
  private readonly agentService;
10
+ private readonly agentStackService;
8
11
  private readonly impactEventService;
9
- constructor(agentService: AgentService, impactEventService: ImpactEventService);
12
+ private readonly ruleEventCollector;
13
+ constructor(agentService: AgentService, agentStackService: AgentStackService, impactEventService: ImpactEventService, ruleEventCollector: RuleEventCollector);
10
14
  protected getHandledTools(): string[];
11
15
  protected handleTool(toolName: string, args: Record<string, unknown> | undefined): Promise<ToolResponse>;
12
16
  getToolDefinitions(): ToolDefinition[];
13
17
  private handleDispatchAgents;
14
18
  private handleGetAgentSystemPrompt;
15
19
  private handlePrepareParallelAgents;
20
+ private handleListAgentStacks;
16
21
  private extractInlineAgents;
17
22
  }