codingbuddy 5.2.0 → 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 (447) 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 +8 -0
  21. package/dist/src/agent/index.js +8 -0
  22. package/dist/src/agent/teams-capability.service.d.ts +11 -0
  23. package/dist/src/agent/teams-capability.service.js +74 -0
  24. package/dist/src/agent/teams-capability.types.d.ts +6 -0
  25. package/dist/src/agent/teams-capability.types.js +3 -0
  26. package/dist/src/cli/cli.d.ts +4 -3
  27. package/dist/src/cli/cli.js +54 -0
  28. package/dist/src/cli/cli.types.d.ts +4 -0
  29. package/dist/src/cli/completion/completion.d.ts +16 -0
  30. package/dist/src/cli/completion/completion.js +276 -0
  31. package/dist/src/cli/completion/index.d.ts +2 -0
  32. package/dist/src/cli/completion/index.js +7 -0
  33. package/dist/src/cli/plugin/create-plugin.command.d.ts +21 -0
  34. package/dist/src/cli/plugin/create-plugin.command.js +151 -0
  35. package/dist/src/cli/run-tui.d.ts +1 -0
  36. package/dist/src/cli/run-tui.js +7 -1
  37. package/dist/src/collaboration/council-summary.service.d.ts +2 -0
  38. package/dist/src/collaboration/council-summary.service.js +114 -0
  39. package/dist/src/collaboration/council-summary.types.d.ts +24 -0
  40. package/dist/src/collaboration/council-summary.types.js +3 -0
  41. package/dist/src/collaboration/index.d.ts +2 -0
  42. package/dist/src/collaboration/index.js +3 -1
  43. package/dist/src/config/config.schema.d.ts +3 -0
  44. package/dist/src/config/config.schema.js +5 -0
  45. package/dist/src/keyword/keyword.types.d.ts +8 -0
  46. package/dist/src/mcp/handlers/agent.handler.d.ts +6 -1
  47. package/dist/src/mcp/handlers/agent.handler.js +81 -8
  48. package/dist/src/mcp/handlers/checklist-context.handler.d.ts +3 -1
  49. package/dist/src/mcp/handlers/checklist-context.handler.js +17 -2
  50. package/dist/src/mcp/handlers/discussion.handler.d.ts +3 -0
  51. package/dist/src/mcp/handlers/discussion.handler.js +22 -1
  52. package/dist/src/mcp/handlers/mode.handler.d.ts +9 -1
  53. package/dist/src/mcp/handlers/mode.handler.js +79 -2
  54. package/dist/src/mcp/handlers/quality-report.handler.d.ts +3 -1
  55. package/dist/src/mcp/handlers/quality-report.handler.js +20 -2
  56. package/dist/src/rules/rules.service.d.ts +6 -0
  57. package/dist/src/rules/rules.service.js +3 -0
  58. package/dist/src/rules/skill.schema.d.ts +5 -0
  59. package/dist/src/rules/skill.schema.js +36 -0
  60. package/dist/src/shared/rules-core.d.ts +5 -0
  61. package/dist/src/shared/rules-core.js +5 -0
  62. package/dist/src/shared/version.d.ts +1 -1
  63. package/dist/src/shared/version.js +1 -1
  64. package/dist/src/skill/i18n/keywords.js +921 -0
  65. package/dist/src/skill/skill-recommendation.service.d.ts +1 -0
  66. package/dist/src/skill/skill-recommendation.service.js +27 -1
  67. package/dist/src/skill/skill-recommendation.types.d.ts +5 -0
  68. package/dist/src/tui/events/hud-file-bridge.d.ts +4 -0
  69. package/dist/src/tui/events/hud-file-bridge.js +36 -0
  70. package/dist/src/tui-bundle.mjs +45 -3
  71. package/package.json +7 -2
  72. package/dist/api/mcp.js.map +0 -1
  73. package/dist/src/agent/agent-prompt.builder.js.map +0 -1
  74. package/dist/src/agent/agent-summary.utils.js.map +0 -1
  75. package/dist/src/agent/agent.module.js.map +0 -1
  76. package/dist/src/agent/agent.service.js.map +0 -1
  77. package/dist/src/agent/agent.types.js.map +0 -1
  78. package/dist/src/agent/index.js.map +0 -1
  79. package/dist/src/analyzer/analyzer.module.js.map +0 -1
  80. package/dist/src/analyzer/analyzer.service.js.map +0 -1
  81. package/dist/src/analyzer/analyzer.types.js.map +0 -1
  82. package/dist/src/analyzer/code.sampler.js.map +0 -1
  83. package/dist/src/analyzer/config.analyzer.js.map +0 -1
  84. package/dist/src/analyzer/conventions.analyzer.js.map +0 -1
  85. package/dist/src/analyzer/conventions.schemas.js.map +0 -1
  86. package/dist/src/analyzer/conventions.types.js.map +0 -1
  87. package/dist/src/analyzer/directory.analyzer.js.map +0 -1
  88. package/dist/src/analyzer/index.js.map +0 -1
  89. package/dist/src/analyzer/package.analyzer.js.map +0 -1
  90. package/dist/src/app.module.js.map +0 -1
  91. package/dist/src/checklist/checklist.module.js.map +0 -1
  92. package/dist/src/checklist/checklist.schema.js.map +0 -1
  93. package/dist/src/checklist/checklist.service.js.map +0 -1
  94. package/dist/src/checklist/checklist.types.js.map +0 -1
  95. package/dist/src/checklist/index.js.map +0 -1
  96. package/dist/src/cli/cli.js.map +0 -1
  97. package/dist/src/cli/cli.types.js.map +0 -1
  98. package/dist/src/cli/index.js.map +0 -1
  99. package/dist/src/cli/init/claude-settings.utils.js.map +0 -1
  100. package/dist/src/cli/init/config.generator.js.map +0 -1
  101. package/dist/src/cli/init/config.writer.js.map +0 -1
  102. package/dist/src/cli/init/gitignore.utils.js.map +0 -1
  103. package/dist/src/cli/init/index.js.map +0 -1
  104. package/dist/src/cli/init/init.command.js.map +0 -1
  105. package/dist/src/cli/init/init.constants.js.map +0 -1
  106. package/dist/src/cli/init/init.wizard.js.map +0 -1
  107. package/dist/src/cli/init/prompt.builder.js.map +0 -1
  108. package/dist/src/cli/init/prompts/agent-prompt.js.map +0 -1
  109. package/dist/src/cli/init/prompts/architecture-prompt.js.map +0 -1
  110. package/dist/src/cli/init/prompts/basic-prompt.js.map +0 -1
  111. package/dist/src/cli/init/prompts/conventions-prompt.js.map +0 -1
  112. package/dist/src/cli/init/prompts/index.js.map +0 -1
  113. package/dist/src/cli/init/prompts/language-prompt.js.map +0 -1
  114. package/dist/src/cli/init/prompts/model-prompt.js.map +0 -1
  115. package/dist/src/cli/init/prompts/tech-stack-prompt.js.map +0 -1
  116. package/dist/src/cli/init/prompts/test-strategy-prompt.js.map +0 -1
  117. package/dist/src/cli/init/summary/index.js.map +0 -1
  118. package/dist/src/cli/init/summary/summary.prompt.js.map +0 -1
  119. package/dist/src/cli/init/summary/summary.renderer.js.map +0 -1
  120. package/dist/src/cli/init/templates/config-renderer.js.map +0 -1
  121. package/dist/src/cli/init/templates/frameworks/default.template.js.map +0 -1
  122. package/dist/src/cli/init/templates/frameworks/express.template.js.map +0 -1
  123. package/dist/src/cli/init/templates/frameworks/index.js.map +0 -1
  124. package/dist/src/cli/init/templates/frameworks/nestjs.template.js.map +0 -1
  125. package/dist/src/cli/init/templates/frameworks/nextjs.template.js.map +0 -1
  126. package/dist/src/cli/init/templates/frameworks/node.template.js.map +0 -1
  127. package/dist/src/cli/init/templates/frameworks/react.template.js.map +0 -1
  128. package/dist/src/cli/init/templates/index.js.map +0 -1
  129. package/dist/src/cli/init/templates/template.renderer.js.map +0 -1
  130. package/dist/src/cli/init/templates/template.selector.js.map +0 -1
  131. package/dist/src/cli/init/templates/template.types.js.map +0 -1
  132. package/dist/src/cli/plugin/install.command.js.map +0 -1
  133. package/dist/src/cli/plugin/plugins.command.js.map +0 -1
  134. package/dist/src/cli/plugin/search.command.js.map +0 -1
  135. package/dist/src/cli/plugin/uninstall.command.js.map +0 -1
  136. package/dist/src/cli/plugin/update.command.js.map +0 -1
  137. package/dist/src/cli/restart-tui.js.map +0 -1
  138. package/dist/src/cli/run-tui.js.map +0 -1
  139. package/dist/src/cli/utils/console.js.map +0 -1
  140. package/dist/src/cli/utils/index.js.map +0 -1
  141. package/dist/src/collaboration/discussion-engine.js.map +0 -1
  142. package/dist/src/collaboration/index.js.map +0 -1
  143. package/dist/src/collaboration/opinion-adapter.js.map +0 -1
  144. package/dist/src/collaboration/terminal-formatter.js.map +0 -1
  145. package/dist/src/collaboration/types.js.map +0 -1
  146. package/dist/src/config/config-diff.service.js.map +0 -1
  147. package/dist/src/config/config.loader.js.map +0 -1
  148. package/dist/src/config/config.module.js.map +0 -1
  149. package/dist/src/config/config.schema.js.map +0 -1
  150. package/dist/src/config/config.service.js.map +0 -1
  151. package/dist/src/config/context.loader.js.map +0 -1
  152. package/dist/src/config/ignore.parser.js.map +0 -1
  153. package/dist/src/config/index.js.map +0 -1
  154. package/dist/src/context/briefing-loader.service.js.map +0 -1
  155. package/dist/src/context/briefing.service.js.map +0 -1
  156. package/dist/src/context/briefing.types.js.map +0 -1
  157. package/dist/src/context/context-archive.service.js.map +0 -1
  158. package/dist/src/context/context-archive.types.js.map +0 -1
  159. package/dist/src/context/context-document.service.js.map +0 -1
  160. package/dist/src/context/context-document.types.js.map +0 -1
  161. package/dist/src/context/context-parser.utils.js.map +0 -1
  162. package/dist/src/context/context-serializer.utils.js.map +0 -1
  163. package/dist/src/context/context.module.js.map +0 -1
  164. package/dist/src/context/context.service.js.map +0 -1
  165. package/dist/src/context/context.types.js.map +0 -1
  166. package/dist/src/context/index.js.map +0 -1
  167. package/dist/src/context/intent-patterns.js.map +0 -1
  168. package/dist/src/custom/custom.module.js.map +0 -1
  169. package/dist/src/custom/custom.service.js.map +0 -1
  170. package/dist/src/custom/custom.types.js.map +0 -1
  171. package/dist/src/custom/index.js.map +0 -1
  172. package/dist/src/diagnostic/diagnostic-log.service.js.map +0 -1
  173. package/dist/src/diagnostic/diagnostic.module.js.map +0 -1
  174. package/dist/src/diagnostic/diagnostic.types.js.map +0 -1
  175. package/dist/src/diagnostic/index.js.map +0 -1
  176. package/dist/src/impact/impact-event.service.js.map +0 -1
  177. package/dist/src/impact/impact-report.service.js.map +0 -1
  178. package/dist/src/impact/impact.module.js.map +0 -1
  179. package/dist/src/impact/impact.types.js.map +0 -1
  180. package/dist/src/impact/index.js.map +0 -1
  181. package/dist/src/keyword/activation-message.builder.js.map +0 -1
  182. package/dist/src/keyword/auto-executor.js.map +0 -1
  183. package/dist/src/keyword/auto-executor.types.js.map +0 -1
  184. package/dist/src/keyword/auto-formatter.js.map +0 -1
  185. package/dist/src/keyword/auto-prompt-builder.js.map +0 -1
  186. package/dist/src/keyword/complexity-classifier.js.map +0 -1
  187. package/dist/src/keyword/complexity-indicators.js.map +0 -1
  188. package/dist/src/keyword/diff-analyzer.js.map +0 -1
  189. package/dist/src/keyword/explicit-pattern-matcher.js.map +0 -1
  190. package/dist/src/keyword/index.js.map +0 -1
  191. package/dist/src/keyword/keyword.module.js.map +0 -1
  192. package/dist/src/keyword/keyword.service.js.map +0 -1
  193. package/dist/src/keyword/keyword.types.js.map +0 -1
  194. package/dist/src/keyword/patterns/agent.patterns.js.map +0 -1
  195. package/dist/src/keyword/patterns/ai-ml.patterns.js.map +0 -1
  196. package/dist/src/keyword/patterns/backend.patterns.js.map +0 -1
  197. package/dist/src/keyword/patterns/context.patterns.js.map +0 -1
  198. package/dist/src/keyword/patterns/data-science.patterns.js.map +0 -1
  199. package/dist/src/keyword/patterns/data.patterns.js.map +0 -1
  200. package/dist/src/keyword/patterns/devops.patterns.js.map +0 -1
  201. package/dist/src/keyword/patterns/explicit.patterns.js.map +0 -1
  202. package/dist/src/keyword/patterns/frontend.patterns.js.map +0 -1
  203. package/dist/src/keyword/patterns/index.js.map +0 -1
  204. package/dist/src/keyword/patterns/intent-pattern-checks.js.map +0 -1
  205. package/dist/src/keyword/patterns/intent-patterns.types.js.map +0 -1
  206. package/dist/src/keyword/patterns/meta-discussion.patterns.js.map +0 -1
  207. package/dist/src/keyword/patterns/mobile.patterns.js.map +0 -1
  208. package/dist/src/keyword/patterns/platform.patterns.js.map +0 -1
  209. package/dist/src/keyword/patterns/security.patterns.js.map +0 -1
  210. package/dist/src/keyword/patterns/systems.patterns.js.map +0 -1
  211. package/dist/src/keyword/patterns/test.patterns.js.map +0 -1
  212. package/dist/src/keyword/patterns/tooling.patterns.js.map +0 -1
  213. package/dist/src/keyword/primary-agent-resolver.js.map +0 -1
  214. package/dist/src/keyword/rule-filter.js.map +0 -1
  215. package/dist/src/keyword/srp-template.js.map +0 -1
  216. package/dist/src/keyword/strategies/__tests__/strategy-test.utils.js.map +0 -1
  217. package/dist/src/keyword/strategies/act-agent.strategy.js.map +0 -1
  218. package/dist/src/keyword/strategies/eval-agent.strategy.js.map +0 -1
  219. package/dist/src/keyword/strategies/index.js.map +0 -1
  220. package/dist/src/keyword/strategies/plan-agent.strategy.js.map +0 -1
  221. package/dist/src/keyword/strategies/resolution-strategy.interface.js.map +0 -1
  222. package/dist/src/keyword/taskmaestro-detector.js.map +0 -1
  223. package/dist/src/keyword/visual-data.builder.js.map +0 -1
  224. package/dist/src/main.js.map +0 -1
  225. package/dist/src/mcp/handlers/abstract-handler.js.map +0 -1
  226. package/dist/src/mcp/handlers/agent.handler.js.map +0 -1
  227. package/dist/src/mcp/handlers/base.handler.js.map +0 -1
  228. package/dist/src/mcp/handlers/briefing.handler.js.map +0 -1
  229. package/dist/src/mcp/handlers/checklist-context.handler.js.map +0 -1
  230. package/dist/src/mcp/handlers/config.handler.js.map +0 -1
  231. package/dist/src/mcp/handlers/context-archive.handler.js.map +0 -1
  232. package/dist/src/mcp/handlers/context-document.handler.js.map +0 -1
  233. package/dist/src/mcp/handlers/conventions.handler.js.map +0 -1
  234. package/dist/src/mcp/handlers/discussion.handler.js.map +0 -1
  235. package/dist/src/mcp/handlers/discussion.types.js.map +0 -1
  236. package/dist/src/mcp/handlers/impact.handler.js.map +0 -1
  237. package/dist/src/mcp/handlers/index.js.map +0 -1
  238. package/dist/src/mcp/handlers/mode.handler.js.map +0 -1
  239. package/dist/src/mcp/handlers/pipeline.handler.js.map +0 -1
  240. package/dist/src/mcp/handlers/plugin-validation.handler.js.map +0 -1
  241. package/dist/src/mcp/handlers/quality-report.handler.js.map +0 -1
  242. package/dist/src/mcp/handlers/release-check.handler.js.map +0 -1
  243. package/dist/src/mcp/handlers/resume.handler.js.map +0 -1
  244. package/dist/src/mcp/handlers/rule-impact.handler.js.map +0 -1
  245. package/dist/src/mcp/handlers/rule-insights.handler.js.map +0 -1
  246. package/dist/src/mcp/handlers/rules.handler.js.map +0 -1
  247. package/dist/src/mcp/handlers/skill.handler.js.map +0 -1
  248. package/dist/src/mcp/handlers/tui.handler.js.map +0 -1
  249. package/dist/src/mcp/mcp-serverless.js.map +0 -1
  250. package/dist/src/mcp/mcp.controller.js.map +0 -1
  251. package/dist/src/mcp/mcp.module.js.map +0 -1
  252. package/dist/src/mcp/mcp.service.js.map +0 -1
  253. package/dist/src/mcp/response.utils.js.map +0 -1
  254. package/dist/src/mcp/sse-auth.guard.js.map +0 -1
  255. package/dist/src/model/index.js.map +0 -1
  256. package/dist/src/model/model-resolver.service.js.map +0 -1
  257. package/dist/src/model/model.constants.js.map +0 -1
  258. package/dist/src/model/model.resolver.js.map +0 -1
  259. package/dist/src/model/model.types.js.map +0 -1
  260. package/dist/src/parallel-validation/extract-file-paths.js.map +0 -1
  261. package/dist/src/parallel-validation/index.js.map +0 -1
  262. package/dist/src/parallel-validation/overlap-matrix.js.map +0 -1
  263. package/dist/src/parallel-validation/parallel-validation.handler.js.map +0 -1
  264. package/dist/src/parallel-validation/parallel-validation.types.js.map +0 -1
  265. package/dist/src/parallel-validation/wave-splitter.js.map +0 -1
  266. package/dist/src/pipeline/index.js.map +0 -1
  267. package/dist/src/pipeline/pipeline.executors.js.map +0 -1
  268. package/dist/src/pipeline/pipeline.module.js.map +0 -1
  269. package/dist/src/pipeline/pipeline.service.js.map +0 -1
  270. package/dist/src/pipeline/pipeline.types.js.map +0 -1
  271. package/dist/src/plugin/plugin-installer.service.js.map +0 -1
  272. package/dist/src/plugin/plugin-manifest.schema.js.map +0 -1
  273. package/dist/src/plugin/plugin.module.js.map +0 -1
  274. package/dist/src/plugin/plugin.types.js.map +0 -1
  275. package/dist/src/plugin/registry-client.js.map +0 -1
  276. package/dist/src/rules/agent.schema.js.map +0 -1
  277. package/dist/src/rules/rule-event-collector.js.map +0 -1
  278. package/dist/src/rules/rule-event.types.js.map +0 -1
  279. package/dist/src/rules/rule-insights.service.js.map +0 -1
  280. package/dist/src/rules/rule-stats-writer.js.map +0 -1
  281. package/dist/src/rules/rule-tracker.js.map +0 -1
  282. package/dist/src/rules/rules-content.utils.js.map +0 -1
  283. package/dist/src/rules/rules.module.js.map +0 -1
  284. package/dist/src/rules/rules.service.js.map +0 -1
  285. package/dist/src/rules/rules.types.js.map +0 -1
  286. package/dist/src/rules/skill.schema.js.map +0 -1
  287. package/dist/src/shared/agent.utils.js.map +0 -1
  288. package/dist/src/shared/async.utils.js.map +0 -1
  289. package/dist/src/shared/client-type.js.map +0 -1
  290. package/dist/src/shared/error.utils.js.map +0 -1
  291. package/dist/src/shared/esm-import.js.map +0 -1
  292. package/dist/src/shared/event-bridge-reader.js.map +0 -1
  293. package/dist/src/shared/file.utils.js.map +0 -1
  294. package/dist/src/shared/filesystem.interface.js.map +0 -1
  295. package/dist/src/shared/format.utils.js.map +0 -1
  296. package/dist/src/shared/keyword-core.js.map +0 -1
  297. package/dist/src/shared/language.service.js.map +0 -1
  298. package/dist/src/shared/language.types.js.map +0 -1
  299. package/dist/src/shared/lru-cache.js.map +0 -1
  300. package/dist/src/shared/node-filesystem.service.js.map +0 -1
  301. package/dist/src/shared/path.utils.js.map +0 -1
  302. package/dist/src/shared/pattern-matcher.js.map +0 -1
  303. package/dist/src/shared/rules-core.js.map +0 -1
  304. package/dist/src/shared/security.utils.js.map +0 -1
  305. package/dist/src/shared/slug.utils.js.map +0 -1
  306. package/dist/src/shared/tui-bundle-path.js.map +0 -1
  307. package/dist/src/shared/validation.constants.js.map +0 -1
  308. package/dist/src/shared/verbosity.types.js.map +0 -1
  309. package/dist/src/shared/version.js.map +0 -1
  310. package/dist/src/shared/version.utils.js.map +0 -1
  311. package/dist/src/ship/file-specialist-mapper.js.map +0 -1
  312. package/dist/src/ship/quality-report.service.js.map +0 -1
  313. package/dist/src/ship/quality-report.types.js.map +0 -1
  314. package/dist/src/ship/ship.module.js.map +0 -1
  315. package/dist/src/skill/i18n/index.js.map +0 -1
  316. package/dist/src/skill/i18n/keywords.js.map +0 -1
  317. package/dist/src/skill/i18n/keywords.types.js.map +0 -1
  318. package/dist/src/skill/index.js.map +0 -1
  319. package/dist/src/skill/skill-content.utils.js.map +0 -1
  320. package/dist/src/skill/skill-recommendation.service.js.map +0 -1
  321. package/dist/src/skill/skill-recommendation.types.js.map +0 -1
  322. package/dist/src/skill/skill-triggers.js.map +0 -1
  323. package/dist/src/skill/skill.module.js.map +0 -1
  324. package/dist/src/state/index.js.map +0 -1
  325. package/dist/src/state/state.module.js.map +0 -1
  326. package/dist/src/state/state.service.js.map +0 -1
  327. package/dist/src/state/state.types.js.map +0 -1
  328. package/dist/src/tui/__perf__/memory-stability.spec.d.ts +0 -1
  329. package/dist/src/tui/__perf__/memory-stability.spec.js +0 -105
  330. package/dist/src/tui/__perf__/memory-stability.spec.js.map +0 -1
  331. package/dist/src/tui/__perf__/rendering-performance.spec.d.ts +0 -1
  332. package/dist/src/tui/__perf__/rendering-performance.spec.js +0 -163
  333. package/dist/src/tui/__perf__/rendering-performance.spec.js.map +0 -1
  334. package/dist/src/tui/cli-flags.js.map +0 -1
  335. package/dist/src/tui/components/ActModeScreen.js.map +0 -1
  336. package/dist/src/tui/components/ActivityVisualizer.js.map +0 -1
  337. package/dist/src/tui/components/ActivityVisualizer.spec.d.ts +0 -1
  338. package/dist/src/tui/components/ActivityVisualizer.spec.js +0 -91
  339. package/dist/src/tui/components/ActivityVisualizer.spec.js.map +0 -1
  340. package/dist/src/tui/components/AgentDiscussionPanel.js.map +0 -1
  341. package/dist/src/tui/components/AgentDiscussionPanel.spec.d.ts +0 -1
  342. package/dist/src/tui/components/AgentDiscussionPanel.spec.js +0 -229
  343. package/dist/src/tui/components/AgentDiscussionPanel.spec.js.map +0 -1
  344. package/dist/src/tui/components/ChecklistPanel.js.map +0 -1
  345. package/dist/src/tui/components/ChecklistPanel.spec.d.ts +0 -1
  346. package/dist/src/tui/components/ChecklistPanel.spec.js +0 -45
  347. package/dist/src/tui/components/ChecklistPanel.spec.js.map +0 -1
  348. package/dist/src/tui/components/ContextSection.js.map +0 -1
  349. package/dist/src/tui/components/EvalModeScreen.js.map +0 -1
  350. package/dist/src/tui/components/FlowMap.js.map +0 -1
  351. package/dist/src/tui/components/FlowMap.spec.d.ts +0 -1
  352. package/dist/src/tui/components/FlowMap.spec.js +0 -147
  353. package/dist/src/tui/components/FlowMap.spec.js.map +0 -1
  354. package/dist/src/tui/components/FocusedAgentPanel.js.map +0 -1
  355. package/dist/src/tui/components/FocusedAgentPanel.spec.d.ts +0 -1
  356. package/dist/src/tui/components/FocusedAgentPanel.spec.js +0 -183
  357. package/dist/src/tui/components/FocusedAgentPanel.spec.js.map +0 -1
  358. package/dist/src/tui/components/HeaderBar.js.map +0 -1
  359. package/dist/src/tui/components/HeaderBar.spec.d.ts +0 -1
  360. package/dist/src/tui/components/HeaderBar.spec.js +0 -96
  361. package/dist/src/tui/components/HeaderBar.spec.js.map +0 -1
  362. package/dist/src/tui/components/ModeScreenRouter.js.map +0 -1
  363. package/dist/src/tui/components/PlanModeScreen.js.map +0 -1
  364. package/dist/src/tui/components/SessionDashboard.js.map +0 -1
  365. package/dist/src/tui/components/SessionTabBar.js.map +0 -1
  366. package/dist/src/tui/components/SessionTabBar.spec.d.ts +0 -1
  367. package/dist/src/tui/components/SessionTabBar.spec.js +0 -59
  368. package/dist/src/tui/components/SessionTabBar.spec.js.map +0 -1
  369. package/dist/src/tui/components/StageHealthBar.js.map +0 -1
  370. package/dist/src/tui/components/StageHealthBar.spec.d.ts +0 -1
  371. package/dist/src/tui/components/StageHealthBar.spec.js +0 -99
  372. package/dist/src/tui/components/StageHealthBar.spec.js.map +0 -1
  373. package/dist/src/tui/components/act-screen.pure.js.map +0 -1
  374. package/dist/src/tui/components/activity-visualizer.pure.js.map +0 -1
  375. package/dist/src/tui/components/agent-discussion-panel.pure.js.map +0 -1
  376. package/dist/src/tui/components/checklist-panel.pure.js.map +0 -1
  377. package/dist/src/tui/components/context-section.pure.js.map +0 -1
  378. package/dist/src/tui/components/eval-screen.pure.js.map +0 -1
  379. package/dist/src/tui/components/flow-map.pure.js.map +0 -1
  380. package/dist/src/tui/components/focused-agent.pure.js.map +0 -1
  381. package/dist/src/tui/components/grid-layout.pure.js.map +0 -1
  382. package/dist/src/tui/components/index.js.map +0 -1
  383. package/dist/src/tui/components/live.pure.js.map +0 -1
  384. package/dist/src/tui/components/plan-screen.pure.js.map +0 -1
  385. package/dist/src/tui/components/session-dashboard.pure.js.map +0 -1
  386. package/dist/src/tui/components/session-tab-bar.pure.js.map +0 -1
  387. package/dist/src/tui/components/stage-health.pure.js.map +0 -1
  388. package/dist/src/tui/dashboard-app.js.map +0 -1
  389. package/dist/src/tui/dashboard-app.spec.d.ts +0 -1
  390. package/dist/src/tui/dashboard-app.spec.js +0 -158
  391. package/dist/src/tui/dashboard-app.spec.js.map +0 -1
  392. package/dist/src/tui/dashboard-types.js.map +0 -1
  393. package/dist/src/tui/ensure-tui-ready.js.map +0 -1
  394. package/dist/src/tui/eventbus-ui.integration.spec.d.ts +0 -1
  395. package/dist/src/tui/eventbus-ui.integration.spec.js +0 -577
  396. package/dist/src/tui/eventbus-ui.integration.spec.js.map +0 -1
  397. package/dist/src/tui/events/agent-metadata.service.js.map +0 -1
  398. package/dist/src/tui/events/agent-metadata.types.js.map +0 -1
  399. package/dist/src/tui/events/event-bus.js.map +0 -1
  400. package/dist/src/tui/events/events.module.js.map +0 -1
  401. package/dist/src/tui/events/hud-file-bridge.js.map +0 -1
  402. package/dist/src/tui/events/index.js.map +0 -1
  403. package/dist/src/tui/events/parse-agent.js.map +0 -1
  404. package/dist/src/tui/events/parse-tool-response.js.map +0 -1
  405. package/dist/src/tui/events/response-event-extractor.js.map +0 -1
  406. package/dist/src/tui/events/tui-interceptor.js.map +0 -1
  407. package/dist/src/tui/events/types.js.map +0 -1
  408. package/dist/src/tui/hooks/index.js.map +0 -1
  409. package/dist/src/tui/hooks/use-dashboard-state.js.map +0 -1
  410. package/dist/src/tui/hooks/use-focus-agent.js.map +0 -1
  411. package/dist/src/tui/hooks/use-multi-session-state.js.map +0 -1
  412. package/dist/src/tui/hooks/use-terminal-size.js.map +0 -1
  413. package/dist/src/tui/hooks/use-tick.js.map +0 -1
  414. package/dist/src/tui/hooks/use-tick.spec.d.ts +0 -1
  415. package/dist/src/tui/hooks/use-tick.spec.js +0 -70
  416. package/dist/src/tui/hooks/use-tick.spec.js.map +0 -1
  417. package/dist/src/tui/index.js.map +0 -1
  418. package/dist/src/tui/ipc/index.js.map +0 -1
  419. package/dist/src/tui/ipc/instance-registry.js.map +0 -1
  420. package/dist/src/tui/ipc/ipc-bridge.js.map +0 -1
  421. package/dist/src/tui/ipc/ipc-client.js.map +0 -1
  422. package/dist/src/tui/ipc/ipc-debug.js.map +0 -1
  423. package/dist/src/tui/ipc/ipc-server.js.map +0 -1
  424. package/dist/src/tui/ipc/ipc-state-cache.js.map +0 -1
  425. package/dist/src/tui/ipc/ipc.types.js.map +0 -1
  426. package/dist/src/tui/ipc/multi-session-manager.js.map +0 -1
  427. package/dist/src/tui/ipc/shutdown-manager.js.map +0 -1
  428. package/dist/src/tui/ipc/test-utils.js.map +0 -1
  429. package/dist/src/tui/ipc/tui-auto-launcher.js.map +0 -1
  430. package/dist/src/tui/multi-session-app.js.map +0 -1
  431. package/dist/src/tui/multi-session-app.spec.d.ts +0 -1
  432. package/dist/src/tui/multi-session-app.spec.js +0 -95
  433. package/dist/src/tui/multi-session-app.spec.js.map +0 -1
  434. package/dist/src/tui/testing/tui-test-utils.js.map +0 -1
  435. package/dist/src/tui/transport-tui.integration.spec.d.ts +0 -1
  436. package/dist/src/tui/transport-tui.integration.spec.js +0 -189
  437. package/dist/src/tui/transport-tui.integration.spec.js.map +0 -1
  438. package/dist/src/tui/tui-config.js.map +0 -1
  439. package/dist/src/tui/types.js.map +0 -1
  440. package/dist/src/tui/utils/color-buffer.js.map +0 -1
  441. package/dist/src/tui/utils/colors.js.map +0 -1
  442. package/dist/src/tui/utils/display-width.js.map +0 -1
  443. package/dist/src/tui/utils/edge-router.js.map +0 -1
  444. package/dist/src/tui/utils/icons.js.map +0 -1
  445. package/dist/src/tui/utils/index.js.map +0 -1
  446. package/dist/src/tui/utils/theme.js.map +0 -1
  447. 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,12 @@
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';
@@ -16,6 +16,14 @@ 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);
21
29
  //# sourceMappingURL=index.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';
@@ -0,0 +1,16 @@
1
+ export declare const COMMANDS: readonly ["init", "install", "search", "plugins", "update", "uninstall", "mcp", "tui", "completion"];
2
+ export declare const GLOBAL_FLAGS: readonly ["--help", "--version"];
3
+ export declare const COMMAND_FLAGS: Record<string, readonly string[]>;
4
+ export declare function getPluginNames(projectRoot: string): string[];
5
+ export declare function generateBashCompletion(): string;
6
+ export declare function generateZshCompletion(): string;
7
+ export declare function generateFishCompletion(): string;
8
+ export declare function generateCompletion(shell: string): string | null;
9
+ export interface CompletionOptions {
10
+ shell: string;
11
+ }
12
+ export interface CompletionResult {
13
+ success: boolean;
14
+ error?: string;
15
+ }
16
+ export declare function runCompletion(options: CompletionOptions): CompletionResult;