codingbuddy 5.2.0 → 5.4.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 (472) hide show
  1. package/dist/src/agent/agent-prompt.builder.js +135 -2
  2. package/dist/src/agent/agent-stack.loader.d.ts +3 -0
  3. package/dist/src/agent/agent-stack.loader.js +38 -0
  4. package/dist/src/agent/agent-stack.schema.d.ts +14 -0
  5. package/dist/src/agent/agent-stack.schema.js +19 -0
  6. package/dist/src/agent/agent-stack.service.d.ts +15 -0
  7. package/dist/src/agent/agent-stack.service.js +112 -0
  8. package/dist/src/agent/agent.module.js +5 -2
  9. package/dist/src/agent/agent.service.d.ts +8 -1
  10. package/dist/src/agent/agent.service.js +126 -40
  11. package/dist/src/agent/agent.types.d.ts +26 -46
  12. package/dist/src/agent/council-preset.service.d.ts +6 -0
  13. package/dist/src/agent/council-preset.service.js +46 -0
  14. package/dist/src/agent/council-preset.types.d.ts +6 -0
  15. package/dist/src/agent/council-preset.types.js +3 -0
  16. package/dist/src/agent/execution-plan.d.ts +8 -0
  17. package/dist/src/agent/execution-plan.js +73 -0
  18. package/dist/src/agent/execution-plan.types.d.ts +74 -0
  19. package/dist/src/agent/execution-plan.types.js +3 -0
  20. package/dist/src/agent/index.d.ts +9 -0
  21. package/dist/src/agent/index.js +9 -0
  22. package/dist/src/agent/stack-matcher.d.ts +13 -0
  23. package/dist/src/agent/stack-matcher.js +81 -0
  24. package/dist/src/agent/teams-capability.service.d.ts +11 -0
  25. package/dist/src/agent/teams-capability.service.js +74 -0
  26. package/dist/src/agent/teams-capability.types.d.ts +6 -0
  27. package/dist/src/agent/teams-capability.types.js +3 -0
  28. package/dist/src/cli/cli.d.ts +4 -3
  29. package/dist/src/cli/cli.js +54 -0
  30. package/dist/src/cli/cli.types.d.ts +4 -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/plugin/create-plugin.command.d.ts +21 -0
  36. package/dist/src/cli/plugin/create-plugin.command.js +151 -0
  37. package/dist/src/cli/run-tui.d.ts +1 -0
  38. package/dist/src/cli/run-tui.js +7 -1
  39. package/dist/src/config/config.schema.d.ts +3 -0
  40. package/dist/src/config/config.schema.js +5 -0
  41. package/dist/src/keyword/keyword.module.js +39 -2
  42. package/dist/src/keyword/keyword.service.d.ts +5 -0
  43. package/dist/src/keyword/keyword.service.js +90 -6
  44. package/dist/src/keyword/keyword.types.d.ts +30 -0
  45. package/dist/src/keyword/permission-forecast.d.ts +2 -0
  46. package/dist/src/keyword/permission-forecast.js +94 -0
  47. package/dist/src/mcp/handlers/agent.handler.d.ts +6 -1
  48. package/dist/src/mcp/handlers/agent.handler.js +81 -8
  49. package/dist/src/mcp/handlers/checklist-context.handler.d.ts +3 -1
  50. package/dist/src/mcp/handlers/checklist-context.handler.js +17 -2
  51. package/dist/src/mcp/handlers/clarification-gate.d.ts +22 -0
  52. package/dist/src/mcp/handlers/clarification-gate.js +129 -0
  53. package/dist/src/mcp/handlers/council-scene.builder.d.ts +9 -0
  54. package/dist/src/mcp/handlers/council-scene.builder.js +115 -0
  55. package/dist/src/mcp/handlers/council-scene.types.d.ts +11 -0
  56. package/dist/src/mcp/handlers/council-scene.types.js +3 -0
  57. package/dist/src/mcp/handlers/discussion.handler.d.ts +4 -0
  58. package/dist/src/mcp/handlers/discussion.handler.js +45 -5
  59. package/dist/src/mcp/handlers/discussion.types.d.ts +12 -0
  60. package/dist/src/mcp/handlers/discussion.types.js +4 -1
  61. package/dist/src/mcp/handlers/execution-gate.d.ts +29 -0
  62. package/dist/src/mcp/handlers/execution-gate.js +49 -0
  63. package/dist/src/mcp/handlers/index.d.ts +1 -0
  64. package/dist/src/mcp/handlers/index.js +3 -1
  65. package/dist/src/mcp/handlers/mode.handler.d.ts +14 -1
  66. package/dist/src/mcp/handlers/mode.handler.js +205 -3
  67. package/dist/src/mcp/handlers/planning-contract.d.ts +2 -0
  68. package/dist/src/mcp/handlers/planning-contract.js +28 -0
  69. package/dist/src/mcp/handlers/planning-stage.d.ts +20 -0
  70. package/dist/src/mcp/handlers/planning-stage.js +58 -0
  71. package/dist/src/mcp/handlers/quality-report.handler.d.ts +3 -1
  72. package/dist/src/mcp/handlers/quality-report.handler.js +20 -2
  73. package/dist/src/mcp/handlers/review-pr.handler.d.ts +12 -0
  74. package/dist/src/mcp/handlers/review-pr.handler.js +81 -0
  75. package/dist/src/mcp/mcp.module.js +1 -0
  76. package/dist/src/rules/rules.service.d.ts +6 -0
  77. package/dist/src/rules/rules.service.js +3 -0
  78. package/dist/src/rules/skill.schema.d.ts +5 -0
  79. package/dist/src/rules/skill.schema.js +36 -0
  80. package/dist/src/shared/rules-core.d.ts +5 -0
  81. package/dist/src/shared/rules-core.js +5 -0
  82. package/dist/src/shared/version.d.ts +1 -1
  83. package/dist/src/shared/version.js +1 -1
  84. package/dist/src/ship/review-pr.service.d.ts +15 -0
  85. package/dist/src/ship/review-pr.service.js +136 -0
  86. package/dist/src/ship/review-pr.types.d.ts +21 -0
  87. package/dist/src/ship/review-pr.types.js +3 -0
  88. package/dist/src/ship/ship.module.js +5 -2
  89. package/dist/src/skill/i18n/keywords.js +921 -0
  90. package/dist/src/skill/skill-recommendation.service.d.ts +1 -0
  91. package/dist/src/skill/skill-recommendation.service.js +27 -1
  92. package/dist/src/skill/skill-recommendation.types.d.ts +5 -0
  93. package/dist/src/tui/events/hud-file-bridge.d.ts +4 -0
  94. package/dist/src/tui/events/hud-file-bridge.js +36 -0
  95. package/dist/src/tui-bundle.mjs +45 -3
  96. package/package.json +7 -2
  97. package/dist/api/mcp.js.map +0 -1
  98. package/dist/src/agent/agent-prompt.builder.js.map +0 -1
  99. package/dist/src/agent/agent-summary.utils.js.map +0 -1
  100. package/dist/src/agent/agent.module.js.map +0 -1
  101. package/dist/src/agent/agent.service.js.map +0 -1
  102. package/dist/src/agent/agent.types.js.map +0 -1
  103. package/dist/src/agent/index.js.map +0 -1
  104. package/dist/src/analyzer/analyzer.module.js.map +0 -1
  105. package/dist/src/analyzer/analyzer.service.js.map +0 -1
  106. package/dist/src/analyzer/analyzer.types.js.map +0 -1
  107. package/dist/src/analyzer/code.sampler.js.map +0 -1
  108. package/dist/src/analyzer/config.analyzer.js.map +0 -1
  109. package/dist/src/analyzer/conventions.analyzer.js.map +0 -1
  110. package/dist/src/analyzer/conventions.schemas.js.map +0 -1
  111. package/dist/src/analyzer/conventions.types.js.map +0 -1
  112. package/dist/src/analyzer/directory.analyzer.js.map +0 -1
  113. package/dist/src/analyzer/index.js.map +0 -1
  114. package/dist/src/analyzer/package.analyzer.js.map +0 -1
  115. package/dist/src/app.module.js.map +0 -1
  116. package/dist/src/checklist/checklist.module.js.map +0 -1
  117. package/dist/src/checklist/checklist.schema.js.map +0 -1
  118. package/dist/src/checklist/checklist.service.js.map +0 -1
  119. package/dist/src/checklist/checklist.types.js.map +0 -1
  120. package/dist/src/checklist/index.js.map +0 -1
  121. package/dist/src/cli/cli.js.map +0 -1
  122. package/dist/src/cli/cli.types.js.map +0 -1
  123. package/dist/src/cli/index.js.map +0 -1
  124. package/dist/src/cli/init/claude-settings.utils.js.map +0 -1
  125. package/dist/src/cli/init/config.generator.js.map +0 -1
  126. package/dist/src/cli/init/config.writer.js.map +0 -1
  127. package/dist/src/cli/init/gitignore.utils.js.map +0 -1
  128. package/dist/src/cli/init/index.js.map +0 -1
  129. package/dist/src/cli/init/init.command.js.map +0 -1
  130. package/dist/src/cli/init/init.constants.js.map +0 -1
  131. package/dist/src/cli/init/init.wizard.js.map +0 -1
  132. package/dist/src/cli/init/prompt.builder.js.map +0 -1
  133. package/dist/src/cli/init/prompts/agent-prompt.js.map +0 -1
  134. package/dist/src/cli/init/prompts/architecture-prompt.js.map +0 -1
  135. package/dist/src/cli/init/prompts/basic-prompt.js.map +0 -1
  136. package/dist/src/cli/init/prompts/conventions-prompt.js.map +0 -1
  137. package/dist/src/cli/init/prompts/index.js.map +0 -1
  138. package/dist/src/cli/init/prompts/language-prompt.js.map +0 -1
  139. package/dist/src/cli/init/prompts/model-prompt.js.map +0 -1
  140. package/dist/src/cli/init/prompts/tech-stack-prompt.js.map +0 -1
  141. package/dist/src/cli/init/prompts/test-strategy-prompt.js.map +0 -1
  142. package/dist/src/cli/init/summary/index.js.map +0 -1
  143. package/dist/src/cli/init/summary/summary.prompt.js.map +0 -1
  144. package/dist/src/cli/init/summary/summary.renderer.js.map +0 -1
  145. package/dist/src/cli/init/templates/config-renderer.js.map +0 -1
  146. package/dist/src/cli/init/templates/frameworks/default.template.js.map +0 -1
  147. package/dist/src/cli/init/templates/frameworks/express.template.js.map +0 -1
  148. package/dist/src/cli/init/templates/frameworks/index.js.map +0 -1
  149. package/dist/src/cli/init/templates/frameworks/nestjs.template.js.map +0 -1
  150. package/dist/src/cli/init/templates/frameworks/nextjs.template.js.map +0 -1
  151. package/dist/src/cli/init/templates/frameworks/node.template.js.map +0 -1
  152. package/dist/src/cli/init/templates/frameworks/react.template.js.map +0 -1
  153. package/dist/src/cli/init/templates/index.js.map +0 -1
  154. package/dist/src/cli/init/templates/template.renderer.js.map +0 -1
  155. package/dist/src/cli/init/templates/template.selector.js.map +0 -1
  156. package/dist/src/cli/init/templates/template.types.js.map +0 -1
  157. package/dist/src/cli/plugin/install.command.js.map +0 -1
  158. package/dist/src/cli/plugin/plugins.command.js.map +0 -1
  159. package/dist/src/cli/plugin/search.command.js.map +0 -1
  160. package/dist/src/cli/plugin/uninstall.command.js.map +0 -1
  161. package/dist/src/cli/plugin/update.command.js.map +0 -1
  162. package/dist/src/cli/restart-tui.js.map +0 -1
  163. package/dist/src/cli/run-tui.js.map +0 -1
  164. package/dist/src/cli/utils/console.js.map +0 -1
  165. package/dist/src/cli/utils/index.js.map +0 -1
  166. package/dist/src/collaboration/discussion-engine.js.map +0 -1
  167. package/dist/src/collaboration/index.js.map +0 -1
  168. package/dist/src/collaboration/opinion-adapter.js.map +0 -1
  169. package/dist/src/collaboration/terminal-formatter.js.map +0 -1
  170. package/dist/src/collaboration/types.js.map +0 -1
  171. package/dist/src/config/config-diff.service.js.map +0 -1
  172. package/dist/src/config/config.loader.js.map +0 -1
  173. package/dist/src/config/config.module.js.map +0 -1
  174. package/dist/src/config/config.schema.js.map +0 -1
  175. package/dist/src/config/config.service.js.map +0 -1
  176. package/dist/src/config/context.loader.js.map +0 -1
  177. package/dist/src/config/ignore.parser.js.map +0 -1
  178. package/dist/src/config/index.js.map +0 -1
  179. package/dist/src/context/briefing-loader.service.js.map +0 -1
  180. package/dist/src/context/briefing.service.js.map +0 -1
  181. package/dist/src/context/briefing.types.js.map +0 -1
  182. package/dist/src/context/context-archive.service.js.map +0 -1
  183. package/dist/src/context/context-archive.types.js.map +0 -1
  184. package/dist/src/context/context-document.service.js.map +0 -1
  185. package/dist/src/context/context-document.types.js.map +0 -1
  186. package/dist/src/context/context-parser.utils.js.map +0 -1
  187. package/dist/src/context/context-serializer.utils.js.map +0 -1
  188. package/dist/src/context/context.module.js.map +0 -1
  189. package/dist/src/context/context.service.js.map +0 -1
  190. package/dist/src/context/context.types.js.map +0 -1
  191. package/dist/src/context/index.js.map +0 -1
  192. package/dist/src/context/intent-patterns.js.map +0 -1
  193. package/dist/src/custom/custom.module.js.map +0 -1
  194. package/dist/src/custom/custom.service.js.map +0 -1
  195. package/dist/src/custom/custom.types.js.map +0 -1
  196. package/dist/src/custom/index.js.map +0 -1
  197. package/dist/src/diagnostic/diagnostic-log.service.js.map +0 -1
  198. package/dist/src/diagnostic/diagnostic.module.js.map +0 -1
  199. package/dist/src/diagnostic/diagnostic.types.js.map +0 -1
  200. package/dist/src/diagnostic/index.js.map +0 -1
  201. package/dist/src/impact/impact-event.service.js.map +0 -1
  202. package/dist/src/impact/impact-report.service.js.map +0 -1
  203. package/dist/src/impact/impact.module.js.map +0 -1
  204. package/dist/src/impact/impact.types.js.map +0 -1
  205. package/dist/src/impact/index.js.map +0 -1
  206. package/dist/src/keyword/activation-message.builder.js.map +0 -1
  207. package/dist/src/keyword/auto-executor.js.map +0 -1
  208. package/dist/src/keyword/auto-executor.types.js.map +0 -1
  209. package/dist/src/keyword/auto-formatter.js.map +0 -1
  210. package/dist/src/keyword/auto-prompt-builder.js.map +0 -1
  211. package/dist/src/keyword/complexity-classifier.js.map +0 -1
  212. package/dist/src/keyword/complexity-indicators.js.map +0 -1
  213. package/dist/src/keyword/diff-analyzer.js.map +0 -1
  214. package/dist/src/keyword/explicit-pattern-matcher.js.map +0 -1
  215. package/dist/src/keyword/index.js.map +0 -1
  216. package/dist/src/keyword/keyword.module.js.map +0 -1
  217. package/dist/src/keyword/keyword.service.js.map +0 -1
  218. package/dist/src/keyword/keyword.types.js.map +0 -1
  219. package/dist/src/keyword/patterns/agent.patterns.js.map +0 -1
  220. package/dist/src/keyword/patterns/ai-ml.patterns.js.map +0 -1
  221. package/dist/src/keyword/patterns/backend.patterns.js.map +0 -1
  222. package/dist/src/keyword/patterns/context.patterns.js.map +0 -1
  223. package/dist/src/keyword/patterns/data-science.patterns.js.map +0 -1
  224. package/dist/src/keyword/patterns/data.patterns.js.map +0 -1
  225. package/dist/src/keyword/patterns/devops.patterns.js.map +0 -1
  226. package/dist/src/keyword/patterns/explicit.patterns.js.map +0 -1
  227. package/dist/src/keyword/patterns/frontend.patterns.js.map +0 -1
  228. package/dist/src/keyword/patterns/index.js.map +0 -1
  229. package/dist/src/keyword/patterns/intent-pattern-checks.js.map +0 -1
  230. package/dist/src/keyword/patterns/intent-patterns.types.js.map +0 -1
  231. package/dist/src/keyword/patterns/meta-discussion.patterns.js.map +0 -1
  232. package/dist/src/keyword/patterns/mobile.patterns.js.map +0 -1
  233. package/dist/src/keyword/patterns/platform.patterns.js.map +0 -1
  234. package/dist/src/keyword/patterns/security.patterns.js.map +0 -1
  235. package/dist/src/keyword/patterns/systems.patterns.js.map +0 -1
  236. package/dist/src/keyword/patterns/test.patterns.js.map +0 -1
  237. package/dist/src/keyword/patterns/tooling.patterns.js.map +0 -1
  238. package/dist/src/keyword/primary-agent-resolver.js.map +0 -1
  239. package/dist/src/keyword/rule-filter.js.map +0 -1
  240. package/dist/src/keyword/srp-template.js.map +0 -1
  241. package/dist/src/keyword/strategies/__tests__/strategy-test.utils.js.map +0 -1
  242. package/dist/src/keyword/strategies/act-agent.strategy.js.map +0 -1
  243. package/dist/src/keyword/strategies/eval-agent.strategy.js.map +0 -1
  244. package/dist/src/keyword/strategies/index.js.map +0 -1
  245. package/dist/src/keyword/strategies/plan-agent.strategy.js.map +0 -1
  246. package/dist/src/keyword/strategies/resolution-strategy.interface.js.map +0 -1
  247. package/dist/src/keyword/taskmaestro-detector.js.map +0 -1
  248. package/dist/src/keyword/visual-data.builder.js.map +0 -1
  249. package/dist/src/main.js.map +0 -1
  250. package/dist/src/mcp/handlers/abstract-handler.js.map +0 -1
  251. package/dist/src/mcp/handlers/agent.handler.js.map +0 -1
  252. package/dist/src/mcp/handlers/base.handler.js.map +0 -1
  253. package/dist/src/mcp/handlers/briefing.handler.js.map +0 -1
  254. package/dist/src/mcp/handlers/checklist-context.handler.js.map +0 -1
  255. package/dist/src/mcp/handlers/config.handler.js.map +0 -1
  256. package/dist/src/mcp/handlers/context-archive.handler.js.map +0 -1
  257. package/dist/src/mcp/handlers/context-document.handler.js.map +0 -1
  258. package/dist/src/mcp/handlers/conventions.handler.js.map +0 -1
  259. package/dist/src/mcp/handlers/discussion.handler.js.map +0 -1
  260. package/dist/src/mcp/handlers/discussion.types.js.map +0 -1
  261. package/dist/src/mcp/handlers/impact.handler.js.map +0 -1
  262. package/dist/src/mcp/handlers/index.js.map +0 -1
  263. package/dist/src/mcp/handlers/mode.handler.js.map +0 -1
  264. package/dist/src/mcp/handlers/pipeline.handler.js.map +0 -1
  265. package/dist/src/mcp/handlers/plugin-validation.handler.js.map +0 -1
  266. package/dist/src/mcp/handlers/quality-report.handler.js.map +0 -1
  267. package/dist/src/mcp/handlers/release-check.handler.js.map +0 -1
  268. package/dist/src/mcp/handlers/resume.handler.js.map +0 -1
  269. package/dist/src/mcp/handlers/rule-impact.handler.js.map +0 -1
  270. package/dist/src/mcp/handlers/rule-insights.handler.js.map +0 -1
  271. package/dist/src/mcp/handlers/rules.handler.js.map +0 -1
  272. package/dist/src/mcp/handlers/skill.handler.js.map +0 -1
  273. package/dist/src/mcp/handlers/tui.handler.js.map +0 -1
  274. package/dist/src/mcp/mcp-serverless.js.map +0 -1
  275. package/dist/src/mcp/mcp.controller.js.map +0 -1
  276. package/dist/src/mcp/mcp.module.js.map +0 -1
  277. package/dist/src/mcp/mcp.service.js.map +0 -1
  278. package/dist/src/mcp/response.utils.js.map +0 -1
  279. package/dist/src/mcp/sse-auth.guard.js.map +0 -1
  280. package/dist/src/model/index.js.map +0 -1
  281. package/dist/src/model/model-resolver.service.js.map +0 -1
  282. package/dist/src/model/model.constants.js.map +0 -1
  283. package/dist/src/model/model.resolver.js.map +0 -1
  284. package/dist/src/model/model.types.js.map +0 -1
  285. package/dist/src/parallel-validation/extract-file-paths.js.map +0 -1
  286. package/dist/src/parallel-validation/index.js.map +0 -1
  287. package/dist/src/parallel-validation/overlap-matrix.js.map +0 -1
  288. package/dist/src/parallel-validation/parallel-validation.handler.js.map +0 -1
  289. package/dist/src/parallel-validation/parallel-validation.types.js.map +0 -1
  290. package/dist/src/parallel-validation/wave-splitter.js.map +0 -1
  291. package/dist/src/pipeline/index.js.map +0 -1
  292. package/dist/src/pipeline/pipeline.executors.js.map +0 -1
  293. package/dist/src/pipeline/pipeline.module.js.map +0 -1
  294. package/dist/src/pipeline/pipeline.service.js.map +0 -1
  295. package/dist/src/pipeline/pipeline.types.js.map +0 -1
  296. package/dist/src/plugin/plugin-installer.service.js.map +0 -1
  297. package/dist/src/plugin/plugin-manifest.schema.js.map +0 -1
  298. package/dist/src/plugin/plugin.module.js.map +0 -1
  299. package/dist/src/plugin/plugin.types.js.map +0 -1
  300. package/dist/src/plugin/registry-client.js.map +0 -1
  301. package/dist/src/rules/agent.schema.js.map +0 -1
  302. package/dist/src/rules/rule-event-collector.js.map +0 -1
  303. package/dist/src/rules/rule-event.types.js.map +0 -1
  304. package/dist/src/rules/rule-insights.service.js.map +0 -1
  305. package/dist/src/rules/rule-stats-writer.js.map +0 -1
  306. package/dist/src/rules/rule-tracker.js.map +0 -1
  307. package/dist/src/rules/rules-content.utils.js.map +0 -1
  308. package/dist/src/rules/rules.module.js.map +0 -1
  309. package/dist/src/rules/rules.service.js.map +0 -1
  310. package/dist/src/rules/rules.types.js.map +0 -1
  311. package/dist/src/rules/skill.schema.js.map +0 -1
  312. package/dist/src/shared/agent.utils.js.map +0 -1
  313. package/dist/src/shared/async.utils.js.map +0 -1
  314. package/dist/src/shared/client-type.js.map +0 -1
  315. package/dist/src/shared/error.utils.js.map +0 -1
  316. package/dist/src/shared/esm-import.js.map +0 -1
  317. package/dist/src/shared/event-bridge-reader.js.map +0 -1
  318. package/dist/src/shared/file.utils.js.map +0 -1
  319. package/dist/src/shared/filesystem.interface.js.map +0 -1
  320. package/dist/src/shared/format.utils.js.map +0 -1
  321. package/dist/src/shared/keyword-core.js.map +0 -1
  322. package/dist/src/shared/language.service.js.map +0 -1
  323. package/dist/src/shared/language.types.js.map +0 -1
  324. package/dist/src/shared/lru-cache.js.map +0 -1
  325. package/dist/src/shared/node-filesystem.service.js.map +0 -1
  326. package/dist/src/shared/path.utils.js.map +0 -1
  327. package/dist/src/shared/pattern-matcher.js.map +0 -1
  328. package/dist/src/shared/rules-core.js.map +0 -1
  329. package/dist/src/shared/security.utils.js.map +0 -1
  330. package/dist/src/shared/slug.utils.js.map +0 -1
  331. package/dist/src/shared/tui-bundle-path.js.map +0 -1
  332. package/dist/src/shared/validation.constants.js.map +0 -1
  333. package/dist/src/shared/verbosity.types.js.map +0 -1
  334. package/dist/src/shared/version.js.map +0 -1
  335. package/dist/src/shared/version.utils.js.map +0 -1
  336. package/dist/src/ship/file-specialist-mapper.js.map +0 -1
  337. package/dist/src/ship/quality-report.service.js.map +0 -1
  338. package/dist/src/ship/quality-report.types.js.map +0 -1
  339. package/dist/src/ship/ship.module.js.map +0 -1
  340. package/dist/src/skill/i18n/index.js.map +0 -1
  341. package/dist/src/skill/i18n/keywords.js.map +0 -1
  342. package/dist/src/skill/i18n/keywords.types.js.map +0 -1
  343. package/dist/src/skill/index.js.map +0 -1
  344. package/dist/src/skill/skill-content.utils.js.map +0 -1
  345. package/dist/src/skill/skill-recommendation.service.js.map +0 -1
  346. package/dist/src/skill/skill-recommendation.types.js.map +0 -1
  347. package/dist/src/skill/skill-triggers.js.map +0 -1
  348. package/dist/src/skill/skill.module.js.map +0 -1
  349. package/dist/src/state/index.js.map +0 -1
  350. package/dist/src/state/state.module.js.map +0 -1
  351. package/dist/src/state/state.service.js.map +0 -1
  352. package/dist/src/state/state.types.js.map +0 -1
  353. package/dist/src/tui/__perf__/memory-stability.spec.d.ts +0 -1
  354. package/dist/src/tui/__perf__/memory-stability.spec.js +0 -105
  355. package/dist/src/tui/__perf__/memory-stability.spec.js.map +0 -1
  356. package/dist/src/tui/__perf__/rendering-performance.spec.d.ts +0 -1
  357. package/dist/src/tui/__perf__/rendering-performance.spec.js +0 -163
  358. package/dist/src/tui/__perf__/rendering-performance.spec.js.map +0 -1
  359. package/dist/src/tui/cli-flags.js.map +0 -1
  360. package/dist/src/tui/components/ActModeScreen.js.map +0 -1
  361. package/dist/src/tui/components/ActivityVisualizer.js.map +0 -1
  362. package/dist/src/tui/components/ActivityVisualizer.spec.d.ts +0 -1
  363. package/dist/src/tui/components/ActivityVisualizer.spec.js +0 -91
  364. package/dist/src/tui/components/ActivityVisualizer.spec.js.map +0 -1
  365. package/dist/src/tui/components/AgentDiscussionPanel.js.map +0 -1
  366. package/dist/src/tui/components/AgentDiscussionPanel.spec.d.ts +0 -1
  367. package/dist/src/tui/components/AgentDiscussionPanel.spec.js +0 -229
  368. package/dist/src/tui/components/AgentDiscussionPanel.spec.js.map +0 -1
  369. package/dist/src/tui/components/ChecklistPanel.js.map +0 -1
  370. package/dist/src/tui/components/ChecklistPanel.spec.d.ts +0 -1
  371. package/dist/src/tui/components/ChecklistPanel.spec.js +0 -45
  372. package/dist/src/tui/components/ChecklistPanel.spec.js.map +0 -1
  373. package/dist/src/tui/components/ContextSection.js.map +0 -1
  374. package/dist/src/tui/components/EvalModeScreen.js.map +0 -1
  375. package/dist/src/tui/components/FlowMap.js.map +0 -1
  376. package/dist/src/tui/components/FlowMap.spec.d.ts +0 -1
  377. package/dist/src/tui/components/FlowMap.spec.js +0 -147
  378. package/dist/src/tui/components/FlowMap.spec.js.map +0 -1
  379. package/dist/src/tui/components/FocusedAgentPanel.js.map +0 -1
  380. package/dist/src/tui/components/FocusedAgentPanel.spec.d.ts +0 -1
  381. package/dist/src/tui/components/FocusedAgentPanel.spec.js +0 -183
  382. package/dist/src/tui/components/FocusedAgentPanel.spec.js.map +0 -1
  383. package/dist/src/tui/components/HeaderBar.js.map +0 -1
  384. package/dist/src/tui/components/HeaderBar.spec.d.ts +0 -1
  385. package/dist/src/tui/components/HeaderBar.spec.js +0 -96
  386. package/dist/src/tui/components/HeaderBar.spec.js.map +0 -1
  387. package/dist/src/tui/components/ModeScreenRouter.js.map +0 -1
  388. package/dist/src/tui/components/PlanModeScreen.js.map +0 -1
  389. package/dist/src/tui/components/SessionDashboard.js.map +0 -1
  390. package/dist/src/tui/components/SessionTabBar.js.map +0 -1
  391. package/dist/src/tui/components/SessionTabBar.spec.d.ts +0 -1
  392. package/dist/src/tui/components/SessionTabBar.spec.js +0 -59
  393. package/dist/src/tui/components/SessionTabBar.spec.js.map +0 -1
  394. package/dist/src/tui/components/StageHealthBar.js.map +0 -1
  395. package/dist/src/tui/components/StageHealthBar.spec.d.ts +0 -1
  396. package/dist/src/tui/components/StageHealthBar.spec.js +0 -99
  397. package/dist/src/tui/components/StageHealthBar.spec.js.map +0 -1
  398. package/dist/src/tui/components/act-screen.pure.js.map +0 -1
  399. package/dist/src/tui/components/activity-visualizer.pure.js.map +0 -1
  400. package/dist/src/tui/components/agent-discussion-panel.pure.js.map +0 -1
  401. package/dist/src/tui/components/checklist-panel.pure.js.map +0 -1
  402. package/dist/src/tui/components/context-section.pure.js.map +0 -1
  403. package/dist/src/tui/components/eval-screen.pure.js.map +0 -1
  404. package/dist/src/tui/components/flow-map.pure.js.map +0 -1
  405. package/dist/src/tui/components/focused-agent.pure.js.map +0 -1
  406. package/dist/src/tui/components/grid-layout.pure.js.map +0 -1
  407. package/dist/src/tui/components/index.js.map +0 -1
  408. package/dist/src/tui/components/live.pure.js.map +0 -1
  409. package/dist/src/tui/components/plan-screen.pure.js.map +0 -1
  410. package/dist/src/tui/components/session-dashboard.pure.js.map +0 -1
  411. package/dist/src/tui/components/session-tab-bar.pure.js.map +0 -1
  412. package/dist/src/tui/components/stage-health.pure.js.map +0 -1
  413. package/dist/src/tui/dashboard-app.js.map +0 -1
  414. package/dist/src/tui/dashboard-app.spec.d.ts +0 -1
  415. package/dist/src/tui/dashboard-app.spec.js +0 -158
  416. package/dist/src/tui/dashboard-app.spec.js.map +0 -1
  417. package/dist/src/tui/dashboard-types.js.map +0 -1
  418. package/dist/src/tui/ensure-tui-ready.js.map +0 -1
  419. package/dist/src/tui/eventbus-ui.integration.spec.d.ts +0 -1
  420. package/dist/src/tui/eventbus-ui.integration.spec.js +0 -577
  421. package/dist/src/tui/eventbus-ui.integration.spec.js.map +0 -1
  422. package/dist/src/tui/events/agent-metadata.service.js.map +0 -1
  423. package/dist/src/tui/events/agent-metadata.types.js.map +0 -1
  424. package/dist/src/tui/events/event-bus.js.map +0 -1
  425. package/dist/src/tui/events/events.module.js.map +0 -1
  426. package/dist/src/tui/events/hud-file-bridge.js.map +0 -1
  427. package/dist/src/tui/events/index.js.map +0 -1
  428. package/dist/src/tui/events/parse-agent.js.map +0 -1
  429. package/dist/src/tui/events/parse-tool-response.js.map +0 -1
  430. package/dist/src/tui/events/response-event-extractor.js.map +0 -1
  431. package/dist/src/tui/events/tui-interceptor.js.map +0 -1
  432. package/dist/src/tui/events/types.js.map +0 -1
  433. package/dist/src/tui/hooks/index.js.map +0 -1
  434. package/dist/src/tui/hooks/use-dashboard-state.js.map +0 -1
  435. package/dist/src/tui/hooks/use-focus-agent.js.map +0 -1
  436. package/dist/src/tui/hooks/use-multi-session-state.js.map +0 -1
  437. package/dist/src/tui/hooks/use-terminal-size.js.map +0 -1
  438. package/dist/src/tui/hooks/use-tick.js.map +0 -1
  439. package/dist/src/tui/hooks/use-tick.spec.d.ts +0 -1
  440. package/dist/src/tui/hooks/use-tick.spec.js +0 -70
  441. package/dist/src/tui/hooks/use-tick.spec.js.map +0 -1
  442. package/dist/src/tui/index.js.map +0 -1
  443. package/dist/src/tui/ipc/index.js.map +0 -1
  444. package/dist/src/tui/ipc/instance-registry.js.map +0 -1
  445. package/dist/src/tui/ipc/ipc-bridge.js.map +0 -1
  446. package/dist/src/tui/ipc/ipc-client.js.map +0 -1
  447. package/dist/src/tui/ipc/ipc-debug.js.map +0 -1
  448. package/dist/src/tui/ipc/ipc-server.js.map +0 -1
  449. package/dist/src/tui/ipc/ipc-state-cache.js.map +0 -1
  450. package/dist/src/tui/ipc/ipc.types.js.map +0 -1
  451. package/dist/src/tui/ipc/multi-session-manager.js.map +0 -1
  452. package/dist/src/tui/ipc/shutdown-manager.js.map +0 -1
  453. package/dist/src/tui/ipc/test-utils.js.map +0 -1
  454. package/dist/src/tui/ipc/tui-auto-launcher.js.map +0 -1
  455. package/dist/src/tui/multi-session-app.js.map +0 -1
  456. package/dist/src/tui/multi-session-app.spec.d.ts +0 -1
  457. package/dist/src/tui/multi-session-app.spec.js +0 -95
  458. package/dist/src/tui/multi-session-app.spec.js.map +0 -1
  459. package/dist/src/tui/testing/tui-test-utils.js.map +0 -1
  460. package/dist/src/tui/transport-tui.integration.spec.d.ts +0 -1
  461. package/dist/src/tui/transport-tui.integration.spec.js +0 -189
  462. package/dist/src/tui/transport-tui.integration.spec.js.map +0 -1
  463. package/dist/src/tui/tui-config.js.map +0 -1
  464. package/dist/src/tui/types.js.map +0 -1
  465. package/dist/src/tui/utils/color-buffer.js.map +0 -1
  466. package/dist/src/tui/utils/colors.js.map +0 -1
  467. package/dist/src/tui/utils/display-width.js.map +0 -1
  468. package/dist/src/tui/utils/edge-router.js.map +0 -1
  469. package/dist/src/tui/utils/icons.js.map +0 -1
  470. package/dist/src/tui/utils/index.js.map +0 -1
  471. package/dist/src/tui/utils/theme.js.map +0 -1
  472. package/dist/tsconfig.build.tsbuildinfo +0 -1
@@ -1,4 +1,17 @@
1
- import type { Mode } from '../keyword/keyword.types';
1
+ type Mode = 'PLAN' | 'ACT' | 'EVAL' | 'AUTO';
2
+ import type { DispatchedAgent, TaskmaestroDispatch, TeamsDispatch, VisibilityConfig, ExecutionPlan } from './execution-plan.types';
3
+ export interface AgentStack {
4
+ name: string;
5
+ description: string;
6
+ category: string;
7
+ tags: string[];
8
+ primary_agent: string;
9
+ specialist_agents: string[];
10
+ recommended_for?: {
11
+ file_patterns?: string[];
12
+ modes?: string[];
13
+ };
14
+ }
2
15
  export interface AgentContext {
3
16
  mode: Mode;
4
17
  targetFiles?: string[];
@@ -31,50 +44,7 @@ export interface ParallelAgentSet {
31
44
  parallelExecutionHint: string;
32
45
  failedAgents?: FailedAgent[];
33
46
  }
34
- export interface DispatchParams {
35
- subagent_type: 'general-purpose';
36
- prompt: string;
37
- description: string;
38
- run_in_background?: true;
39
- }
40
- export interface DispatchedAgent {
41
- name: string;
42
- displayName: string;
43
- description: string;
44
- dispatchParams: DispatchParams;
45
- }
46
- export interface TaskmaestroAssignment {
47
- name: string;
48
- displayName: string;
49
- prompt: string;
50
- }
51
- export interface TaskmaestroDispatch {
52
- sessionName: string;
53
- paneCount: number;
54
- assignments: TaskmaestroAssignment[];
55
- }
56
- export interface TeamsTeammate {
57
- name: string;
58
- subagent_type: 'general-purpose';
59
- team_name: string;
60
- prompt: string;
61
- }
62
- export interface TeamsDispatch {
63
- team_name: string;
64
- description: string;
65
- teammates: TeamsTeammate[];
66
- }
67
- export interface VisibilityMessages {
68
- onStart: string;
69
- onFinding: string;
70
- onComplete: string;
71
- }
72
- export interface VisibilityConfig {
73
- reportTo: string;
74
- format: string;
75
- includeProgress: boolean;
76
- messages?: VisibilityMessages;
77
- }
47
+ export type { DispatchParams, DispatchedAgent, InnerTeamsSpec, TaskmaestroAssignment, TaskmaestroDispatch, TeamsTeammate, TeamsDispatch, VisibilityMessages, VisibilityConfig, SubagentLayer, TaskmaestroLayer, TeamsLayer, ExecutionLayer, ExecutionPlan, } from './execution-plan.types';
78
48
  export interface DispatchResult {
79
49
  primaryAgent?: DispatchedAgent;
80
50
  parallelAgents?: DispatchedAgent[];
@@ -84,6 +54,7 @@ export interface DispatchResult {
84
54
  teams?: TeamsDispatch;
85
55
  executionStrategy?: string;
86
56
  visibility?: VisibilityConfig;
57
+ executionPlan?: ExecutionPlan;
87
58
  }
88
59
  export interface InlineAgentDefinition {
89
60
  name: string;
@@ -100,6 +71,14 @@ export interface InlineAgentDefinition {
100
71
  };
101
72
  [key: string]: unknown;
102
73
  }
74
+ export interface AgentStackSummary {
75
+ name: string;
76
+ description: string;
77
+ category: string;
78
+ primary_agent: string;
79
+ specialist_count: number;
80
+ tags: string[];
81
+ }
103
82
  export interface DispatchAgentsInput {
104
83
  mode: Mode;
105
84
  taskDescription?: string;
@@ -107,7 +86,8 @@ export interface DispatchAgentsInput {
107
86
  specialists?: string[];
108
87
  includeParallel?: boolean;
109
88
  primaryAgent?: string;
110
- executionStrategy?: 'subagent' | 'taskmaestro' | 'teams';
89
+ agentStack?: string;
90
+ executionStrategy?: 'subagent' | 'taskmaestro' | 'teams' | 'taskmaestro+teams';
111
91
  inlineAgents?: Record<string, InlineAgentDefinition>;
112
92
  }
113
93
  export declare const FILE_PATTERN_SPECIALISTS: Record<string, string[]>;
@@ -0,0 +1,6 @@
1
+ import type { CouncilPreset } from './council-preset.types';
2
+ export type { CouncilPreset } from './council-preset.types';
3
+ export declare class CouncilPresetService {
4
+ resolvePreset(mode: string): CouncilPreset | null;
5
+ listPresets(): CouncilPreset[];
6
+ }
@@ -0,0 +1,46 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.CouncilPresetService = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const COUNCIL_PRESETS = {
12
+ PLAN: {
13
+ mode: 'PLAN',
14
+ primary: 'technical-planner',
15
+ specialists: [
16
+ 'architecture-specialist',
17
+ 'test-strategy-specialist',
18
+ 'code-quality-specialist',
19
+ 'security-specialist',
20
+ ],
21
+ },
22
+ EVAL: {
23
+ mode: 'EVAL',
24
+ primary: 'code-reviewer',
25
+ specialists: ['security-specialist', 'performance-specialist', 'accessibility-specialist'],
26
+ },
27
+ };
28
+ let CouncilPresetService = class CouncilPresetService {
29
+ resolvePreset(mode) {
30
+ const preset = COUNCIL_PRESETS[mode];
31
+ if (!preset)
32
+ return null;
33
+ return { ...preset, specialists: [...preset.specialists] };
34
+ }
35
+ listPresets() {
36
+ return Object.values(COUNCIL_PRESETS).map(p => ({
37
+ ...p,
38
+ specialists: [...p.specialists],
39
+ }));
40
+ }
41
+ };
42
+ exports.CouncilPresetService = CouncilPresetService;
43
+ exports.CouncilPresetService = CouncilPresetService = __decorate([
44
+ (0, common_1.Injectable)()
45
+ ], CouncilPresetService);
46
+ //# sourceMappingURL=council-preset.service.js.map
@@ -0,0 +1,6 @@
1
+ export type CouncilMode = 'PLAN' | 'EVAL';
2
+ export interface CouncilPreset {
3
+ mode: CouncilMode;
4
+ primary: string;
5
+ specialists: string[];
6
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=council-preset.types.js.map
@@ -0,0 +1,8 @@
1
+ import type { ExecutionPlan, ExecutionLayer, DispatchedAgent, TaskmaestroDispatch, TeamsDispatch, VisibilityConfig } from './execution-plan.types';
2
+ export declare function buildSimplePlan(layer: ExecutionLayer): ExecutionPlan;
3
+ export declare function buildNestedPlan(outer: ExecutionLayer, inner: ExecutionLayer): ExecutionPlan;
4
+ export declare function isNestedPlan(plan: ExecutionPlan): boolean;
5
+ export declare function subagentLayer(agents: DispatchedAgent[]): ExecutionLayer;
6
+ export declare function taskmaestroLayer(config: TaskmaestroDispatch): ExecutionLayer;
7
+ export declare function teamsLayer(config: TeamsDispatch, visibility?: VisibilityConfig): ExecutionLayer;
8
+ export declare function serializeExecutionPlan(plan: ExecutionPlan): Record<string, unknown>;
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildSimplePlan = buildSimplePlan;
4
+ exports.buildNestedPlan = buildNestedPlan;
5
+ exports.isNestedPlan = isNestedPlan;
6
+ exports.subagentLayer = subagentLayer;
7
+ exports.taskmaestroLayer = taskmaestroLayer;
8
+ exports.teamsLayer = teamsLayer;
9
+ exports.serializeExecutionPlan = serializeExecutionPlan;
10
+ function buildSimplePlan(layer) {
11
+ return { outerExecution: layer };
12
+ }
13
+ function buildNestedPlan(outer, inner) {
14
+ return { outerExecution: outer, innerCoordination: inner };
15
+ }
16
+ function isNestedPlan(plan) {
17
+ return plan.innerCoordination !== undefined;
18
+ }
19
+ function subagentLayer(agents) {
20
+ return { type: 'subagent', agents };
21
+ }
22
+ function taskmaestroLayer(config) {
23
+ return { type: 'taskmaestro', config };
24
+ }
25
+ function teamsLayer(config, visibility) {
26
+ return { type: 'teams', config, ...(visibility ? { visibility } : {}) };
27
+ }
28
+ function serializeExecutionPlan(plan) {
29
+ const serialized = {
30
+ outerExecution: serializeLayer(plan.outerExecution),
31
+ isNested: isNestedPlan(plan),
32
+ strategy: plan.innerCoordination
33
+ ? `${plan.outerExecution.type}+${plan.innerCoordination.type}`
34
+ : plan.outerExecution.type,
35
+ };
36
+ if (plan.innerCoordination) {
37
+ serialized.innerCoordination = serializeLayer(plan.innerCoordination);
38
+ }
39
+ return serialized;
40
+ }
41
+ function serializeLayer(layer) {
42
+ switch (layer.type) {
43
+ case 'subagent':
44
+ return {
45
+ type: 'subagent',
46
+ agentCount: layer.agents.length,
47
+ agents: layer.agents.map(a => ({
48
+ name: a.name,
49
+ displayName: a.displayName,
50
+ description: a.description,
51
+ })),
52
+ };
53
+ case 'taskmaestro':
54
+ return {
55
+ type: 'taskmaestro',
56
+ sessionName: layer.config.sessionName,
57
+ paneCount: layer.config.paneCount,
58
+ assignments: layer.config.assignments.map(a => ({
59
+ name: a.name,
60
+ displayName: a.displayName,
61
+ })),
62
+ };
63
+ case 'teams':
64
+ return {
65
+ type: 'teams',
66
+ teamName: layer.config.team_name,
67
+ teammateCount: layer.config.teammates.length,
68
+ teammates: layer.config.teammates.map(t => ({ name: t.name })),
69
+ ...(layer.visibility ? { visibility: layer.visibility } : {}),
70
+ };
71
+ }
72
+ }
73
+ //# sourceMappingURL=execution-plan.js.map
@@ -0,0 +1,74 @@
1
+ export interface DispatchParams {
2
+ subagent_type: 'general-purpose';
3
+ prompt: string;
4
+ description: string;
5
+ run_in_background?: true;
6
+ }
7
+ export interface DispatchedAgent {
8
+ name: string;
9
+ displayName: string;
10
+ description: string;
11
+ dispatchParams: DispatchParams;
12
+ }
13
+ export interface InnerTeamsSpec {
14
+ type: 'teams';
15
+ teamSpec: {
16
+ team_name: string;
17
+ description: string;
18
+ };
19
+ teammates: Array<{
20
+ name: string;
21
+ subagent_type: 'general-purpose';
22
+ }>;
23
+ }
24
+ export interface TaskmaestroAssignment {
25
+ name: string;
26
+ displayName: string;
27
+ prompt: string;
28
+ innerCoordination?: InnerTeamsSpec;
29
+ }
30
+ export interface TaskmaestroDispatch {
31
+ sessionName: string;
32
+ paneCount: number;
33
+ assignments: TaskmaestroAssignment[];
34
+ }
35
+ export interface TeamsTeammate {
36
+ name: string;
37
+ subagent_type: 'general-purpose';
38
+ team_name: string;
39
+ prompt: string;
40
+ }
41
+ export interface TeamsDispatch {
42
+ team_name: string;
43
+ description: string;
44
+ teammates: TeamsTeammate[];
45
+ }
46
+ export interface VisibilityMessages {
47
+ onStart: string;
48
+ onFinding: string;
49
+ onComplete: string;
50
+ }
51
+ export interface VisibilityConfig {
52
+ reportTo: string;
53
+ format: string;
54
+ includeProgress: boolean;
55
+ messages?: VisibilityMessages;
56
+ }
57
+ export interface SubagentLayer {
58
+ type: 'subagent';
59
+ agents: DispatchedAgent[];
60
+ }
61
+ export interface TaskmaestroLayer {
62
+ type: 'taskmaestro';
63
+ config: TaskmaestroDispatch;
64
+ }
65
+ export interface TeamsLayer {
66
+ type: 'teams';
67
+ config: TeamsDispatch;
68
+ visibility?: VisibilityConfig;
69
+ }
70
+ export type ExecutionLayer = SubagentLayer | TaskmaestroLayer | TeamsLayer;
71
+ export interface ExecutionPlan {
72
+ outerExecution: ExecutionLayer;
73
+ innerCoordination?: ExecutionLayer;
74
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=execution-plan.types.js.map
@@ -1,4 +1,13 @@
1
1
  export * from './agent.module';
2
2
  export * from './agent.service';
3
+ export * from './agent-stack.service';
4
+ export * from './council-preset.service';
5
+ export * from './teams-capability.service';
6
+ export * from './teams-capability.types';
3
7
  export * from './agent.types';
4
8
  export * from './agent-prompt.builder';
9
+ export * from './agent-stack.schema';
10
+ export * from './agent-stack.loader';
11
+ export * from './execution-plan';
12
+ export * from './execution-plan.types';
13
+ export * from './stack-matcher';
@@ -16,6 +16,15 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./agent.module"), exports);
18
18
  __exportStar(require("./agent.service"), exports);
19
+ __exportStar(require("./agent-stack.service"), exports);
20
+ __exportStar(require("./council-preset.service"), exports);
21
+ __exportStar(require("./teams-capability.service"), exports);
22
+ __exportStar(require("./teams-capability.types"), exports);
19
23
  __exportStar(require("./agent.types"), exports);
20
24
  __exportStar(require("./agent-prompt.builder"), exports);
25
+ __exportStar(require("./agent-stack.schema"), exports);
26
+ __exportStar(require("./agent-stack.loader"), exports);
27
+ __exportStar(require("./execution-plan"), exports);
28
+ __exportStar(require("./execution-plan.types"), exports);
29
+ __exportStar(require("./stack-matcher"), exports);
21
30
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,13 @@
1
+ export interface StackMatchInput {
2
+ name: string;
3
+ category: string;
4
+ tags: string[];
5
+ specialist_agents?: string[];
6
+ }
7
+ export interface StackMatchResult {
8
+ stackName: string;
9
+ confidence: number;
10
+ matchedTags: string[];
11
+ stackBased: true;
12
+ }
13
+ export declare function matchStack(prompt: string, stacks: readonly StackMatchInput[]): StackMatchResult | null;
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.matchStack = matchStack;
4
+ const DOMAIN_KEYWORDS = [
5
+ { pattern: /\bREST\b/i, tags: ['rest', 'api'] },
6
+ { pattern: /\bGraphQL\b/i, tags: ['graphql', 'api'] },
7
+ { pattern: /\bAPI\b/i, tags: ['api'] },
8
+ { pattern: /\bbackend\b/i, tags: ['backend'] },
9
+ { pattern: /\bendpoint/i, tags: ['api', 'backend'] },
10
+ { pattern: /\bcontroller/i, tags: ['api', 'backend'] },
11
+ { pattern: /\bservice\s+layer/i, tags: ['backend'] },
12
+ { pattern: /\broute/i, tags: ['api', 'backend'] },
13
+ { pattern: /\bsecurity\b/i, tags: ['security'] },
14
+ { pattern: /\baudit\b/i, tags: ['audit', 'security'] },
15
+ { pattern: /\b(?:vulnerability|vulnerabilities)\b/i, tags: ['vulnerability', 'security'] },
16
+ { pattern: /\bcompliance\b/i, tags: ['compliance', 'security'] },
17
+ { pattern: /\bOAuth\b/i, tags: ['security'] },
18
+ { pattern: /\bJWT\b/i, tags: ['security'] },
19
+ { pattern: /\b(?:XSS|CSRF)\b/i, tags: ['security', 'vulnerability'] },
20
+ { pattern: /\bauthenticat/i, tags: ['security'] },
21
+ { pattern: /\bUI\b/i, tags: ['ui', 'frontend'] },
22
+ { pattern: /\bUX\b/i, tags: ['ux', 'frontend'] },
23
+ { pattern: /\baccessibility\b/i, tags: ['accessibility', 'frontend'] },
24
+ { pattern: /\bSEO\b/i, tags: ['seo', 'frontend'] },
25
+ { pattern: /\bfrontend\b/i, tags: ['frontend'] },
26
+ { pattern: /\bETL\b/i, tags: ['etl', 'data'] },
27
+ { pattern: /\bpipeline\b/i, tags: ['pipeline', 'data'] },
28
+ { pattern: /\banalytics\b/i, tags: ['analytics', 'data'] },
29
+ { pattern: /\bdata\s+(warehouse|lake|pipeline|ingestion)/i, tags: ['data', 'pipeline'] },
30
+ { pattern: /\bmodel\s+(training|inference|deploy)/i, tags: ['model', 'ml'] },
31
+ { pattern: /\bML\b/i, tags: ['ml'] },
32
+ { pattern: /\bmachine\s*learning/i, tags: ['ml', 'ai'] },
33
+ { pattern: /\binference\b/i, tags: ['inference', 'ml'] },
34
+ { pattern: /\btraining\b/i, tags: ['training', 'ml'] },
35
+ { pattern: /\bfull[- ]?stack\b/i, tags: ['fullstack'] },
36
+ { pattern: /보안/i, tags: ['security'] },
37
+ { pattern: /취약점/i, tags: ['vulnerability', 'security'] },
38
+ { pattern: /감사/i, tags: ['audit', 'security'] },
39
+ { pattern: /접근성/i, tags: ['accessibility', 'frontend'] },
40
+ { pattern: /데이터\s*파이프라인/i, tags: ['data', 'pipeline'] },
41
+ { pattern: /머신\s*러닝|기계\s*학습/i, tags: ['ml', 'ai'] },
42
+ ];
43
+ const MIN_CONFIDENCE = 0.3;
44
+ function matchStack(prompt, stacks) {
45
+ if (!prompt || stacks.length === 0)
46
+ return null;
47
+ const detectedTags = new Set();
48
+ for (const { pattern, tags } of DOMAIN_KEYWORDS) {
49
+ if (pattern.test(prompt)) {
50
+ for (const tag of tags)
51
+ detectedTags.add(tag);
52
+ }
53
+ }
54
+ if (detectedTags.size === 0)
55
+ return null;
56
+ let bestResult = null;
57
+ for (const stack of stacks) {
58
+ const matched = [];
59
+ for (const tag of stack.tags) {
60
+ if (detectedTags.has(tag))
61
+ matched.push(tag);
62
+ }
63
+ if (matched.length === 0)
64
+ continue;
65
+ const tagCoverage = matched.length / stack.tags.length;
66
+ const detectedCoverage = matched.length / detectedTags.size;
67
+ const confidence = Math.min((tagCoverage + detectedCoverage) / 2, 1.0);
68
+ if (confidence < MIN_CONFIDENCE)
69
+ continue;
70
+ if (!bestResult || confidence > bestResult.confidence) {
71
+ bestResult = {
72
+ stackName: stack.name,
73
+ confidence,
74
+ matchedTags: matched,
75
+ stackBased: true,
76
+ };
77
+ }
78
+ }
79
+ return bestResult;
80
+ }
81
+ //# sourceMappingURL=stack-matcher.js.map
@@ -0,0 +1,11 @@
1
+ import { ConfigService } from '../config/config.service';
2
+ import type { TeamsCapabilityStatus } from './teams-capability.types';
3
+ export declare class TeamsCapabilityService {
4
+ private readonly configService;
5
+ private readonly logger;
6
+ constructor(configService: ConfigService);
7
+ getStatus(): Promise<TeamsCapabilityStatus>;
8
+ isAvailable(): Promise<boolean>;
9
+ readEnvFlag(): boolean | undefined;
10
+ private readConfigFlag;
11
+ }
@@ -0,0 +1,74 @@
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 TeamsCapabilityService_1;
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.TeamsCapabilityService = void 0;
14
+ const common_1 = require("@nestjs/common");
15
+ const config_service_1 = require("../config/config.service");
16
+ let TeamsCapabilityService = TeamsCapabilityService_1 = class TeamsCapabilityService {
17
+ constructor(configService) {
18
+ this.configService = configService;
19
+ this.logger = new common_1.Logger(TeamsCapabilityService_1.name);
20
+ }
21
+ async getStatus() {
22
+ const envValue = this.readEnvFlag();
23
+ if (envValue !== undefined) {
24
+ const status = {
25
+ available: envValue,
26
+ reason: envValue
27
+ ? 'Enabled via CODINGBUDDY_TEAMS_ENABLED environment variable'
28
+ : 'Disabled via CODINGBUDDY_TEAMS_ENABLED environment variable',
29
+ source: 'environment',
30
+ };
31
+ this.logger.debug(`Teams capability: ${status.reason}`);
32
+ return status;
33
+ }
34
+ const configValue = await this.readConfigFlag();
35
+ if (configValue !== undefined) {
36
+ const status = {
37
+ available: configValue,
38
+ reason: configValue
39
+ ? 'Enabled via experimental.teamsCoordination config'
40
+ : 'Disabled via experimental.teamsCoordination config',
41
+ source: 'config',
42
+ };
43
+ this.logger.debug(`Teams capability: ${status.reason}`);
44
+ return status;
45
+ }
46
+ const status = {
47
+ available: false,
48
+ reason: 'Teams coordination is experimental and disabled by default',
49
+ source: 'default',
50
+ };
51
+ this.logger.debug(`Teams capability: ${status.reason}`);
52
+ return status;
53
+ }
54
+ async isAvailable() {
55
+ const status = await this.getStatus();
56
+ return status.available;
57
+ }
58
+ readEnvFlag() {
59
+ const raw = process.env.CODINGBUDDY_TEAMS_ENABLED;
60
+ if (raw === undefined || raw === '')
61
+ return undefined;
62
+ return raw === 'true' || raw === '1';
63
+ }
64
+ async readConfigFlag() {
65
+ const settings = await this.configService.getSettings();
66
+ return settings.experimental?.teamsCoordination ?? undefined;
67
+ }
68
+ };
69
+ exports.TeamsCapabilityService = TeamsCapabilityService;
70
+ exports.TeamsCapabilityService = TeamsCapabilityService = TeamsCapabilityService_1 = __decorate([
71
+ (0, common_1.Injectable)(),
72
+ __metadata("design:paramtypes", [config_service_1.ConfigService])
73
+ ], TeamsCapabilityService);
74
+ //# sourceMappingURL=teams-capability.service.js.map
@@ -0,0 +1,6 @@
1
+ export interface TeamsCapabilityStatus {
2
+ readonly available: boolean;
3
+ readonly reason: string;
4
+ readonly source: TeamsCapabilitySource;
5
+ }
6
+ export type TeamsCapabilitySource = 'config' | 'environment' | 'default';
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=teams-capability.types.js.map
@@ -1,8 +1,9 @@
1
1
  #!/usr/bin/env node
2
- import type { InitOptions, TuiOptions, InstallOptions, UninstallOptions, SearchOptions, UpdateOptions } from './cli.types';
2
+ import type { InitOptions, TuiOptions, InstallOptions, UninstallOptions, SearchOptions, UpdateOptions, CreatePluginOptions } from './cli.types';
3
+ import type { CompletionOptions } from './completion';
3
4
  export interface ParsedArgs {
4
- command: 'init' | 'install' | 'plugins' | 'uninstall' | 'search' | 'update' | 'mcp' | 'tui' | 'help' | 'version';
5
- options: Partial<InitOptions> & Partial<TuiOptions> & Partial<InstallOptions> & Partial<UninstallOptions> & Partial<SearchOptions> & Partial<UpdateOptions>;
5
+ command: 'init' | 'install' | 'plugins' | 'uninstall' | 'search' | 'update' | 'create-plugin' | 'mcp' | 'tui' | 'completion' | 'help' | 'version';
6
+ options: Partial<InitOptions> & Partial<TuiOptions> & Partial<InstallOptions> & Partial<UninstallOptions> & Partial<SearchOptions> & Partial<UpdateOptions> & Partial<CreatePluginOptions> & Partial<CompletionOptions>;
6
7
  }
7
8
  export declare function parseArgs(args: string[]): ParsedArgs;
8
9
  export declare function printUsage(): void;
@@ -61,6 +61,25 @@ function parseArgs(args) {
61
61
  options: { ...options, updatePluginName },
62
62
  };
63
63
  }
64
+ if (command === 'create-plugin') {
65
+ const createPluginName = args[1];
66
+ let createPluginTemplate;
67
+ const templateIdx = args.indexOf('--template');
68
+ if (templateIdx !== -1) {
69
+ createPluginTemplate = args[templateIdx + 1];
70
+ }
71
+ return {
72
+ command: 'create-plugin',
73
+ options: { ...options, createPluginName, createPluginTemplate },
74
+ };
75
+ }
76
+ if (command === 'completion') {
77
+ const shell = args[1];
78
+ return {
79
+ command: 'completion',
80
+ options: { ...options, shell },
81
+ };
82
+ }
64
83
  if (command !== 'init') {
65
84
  return { command: 'help', options };
66
85
  }
@@ -95,6 +114,8 @@ Usage:
95
114
  codingbuddy mcp Start MCP server (stdio mode)
96
115
  codingbuddy tui Monitor agent execution in real-time
97
116
  codingbuddy tui --restart Restart TUI client (fixes blank screen)
117
+ codingbuddy create-plugin <name> Scaffold a new plugin project
118
+ codingbuddy completion <shell> Generate shell completions (bash, zsh, fish)
98
119
  codingbuddy --help Show this help
99
120
  codingbuddy --version Show version
100
121
 
@@ -114,6 +135,8 @@ Examples:
114
135
  codingbuddy update my-plugin Update a specific plugin
115
136
  codingbuddy uninstall my-plugin Remove a plugin
116
137
  codingbuddy uninstall my-plugin -y Remove without confirmation
138
+ codingbuddy create-plugin my-plugin Scaffold minimal plugin
139
+ codingbuddy create-plugin my-plugin --template full Scaffold with examples
117
140
  codingbuddy mcp Start MCP server for AI assistants
118
141
 
119
142
  Note:
@@ -233,6 +256,37 @@ async function main(args = process.argv.slice(2)) {
233
256
  }
234
257
  break;
235
258
  }
259
+ case 'create-plugin': {
260
+ const { runCreatePlugin } = await Promise.resolve().then(() => require('./plugin/create-plugin.command'));
261
+ if (!options.createPluginName) {
262
+ process.stderr.write('Error: Missing plugin name. Usage: codingbuddy create-plugin <name> [--template minimal|full]\n');
263
+ process.exitCode = 1;
264
+ break;
265
+ }
266
+ const template = options.createPluginTemplate === 'full' ? 'full' : 'minimal';
267
+ const createResult = await runCreatePlugin({
268
+ name: options.createPluginName,
269
+ outputDir: process.cwd(),
270
+ template,
271
+ });
272
+ if (!createResult.success) {
273
+ process.exitCode = 1;
274
+ }
275
+ break;
276
+ }
277
+ case 'completion': {
278
+ const { runCompletion } = await Promise.resolve().then(() => require('./completion'));
279
+ if (!options.shell) {
280
+ process.stderr.write('Error: Missing shell type. Usage: codingbuddy completion <bash|zsh|fish>\n');
281
+ process.exitCode = 1;
282
+ break;
283
+ }
284
+ const completionResult = runCompletion({ shell: options.shell });
285
+ if (!completionResult.success) {
286
+ process.exitCode = 1;
287
+ }
288
+ break;
289
+ }
236
290
  case 'init': {
237
291
  const result = await (0, init_1.runInit)(options);
238
292
  if (!result.success) {
@@ -29,4 +29,8 @@ export interface SearchOptions {
29
29
  export interface UpdateOptions {
30
30
  updatePluginName?: string;
31
31
  }
32
+ export interface CreatePluginOptions {
33
+ createPluginName?: string;
34
+ createPluginTemplate?: string;
35
+ }
32
36
  export type LogLevel = 'info' | 'success' | 'warn' | 'error';