maestro-flow 0.3.1 → 0.3.3

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 (574) hide show
  1. package/.claude/CLAUDE.md +2 -2
  2. package/.claude/agents/cli-explore-agent.md +1 -1
  3. package/.claude/agents/team-worker.md +237 -237
  4. package/.claude/commands/maestro-coordinate.md +65 -65
  5. package/.claude/commands/maestro-link-coordinate.md +71 -71
  6. package/.claude/commands/maestro-overlay.md +178 -122
  7. package/.claude/commands/manage-issue-execute.md +73 -73
  8. package/.claude/skills/team-coordinate/SKILL.md +266 -266
  9. package/.claude/skills/team-lifecycle-v4/SKILL.md +209 -209
  10. package/.claude/skills/team-lifecycle-v4/roles/analyst/role.md +94 -94
  11. package/.claude/skills/team-lifecycle-v4/roles/executor/commands/implement.md +62 -62
  12. package/.claude/skills/team-lifecycle-v4/roles/planner/role.md +85 -85
  13. package/.claude/skills/team-lifecycle-v4/roles/writer/role.md +95 -95
  14. package/.claude/skills/team-quality-assurance/SKILL.md +147 -147
  15. package/.claude/skills/team-quality-assurance/roles/scout/role.md +75 -75
  16. package/.claude/skills/team-review/SKILL.md +147 -147
  17. package/.claude/skills/team-review/roles/reviewer/role.md +68 -68
  18. package/.claude/skills/team-review/roles/scanner/role.md +79 -79
  19. package/.claude/skills/team-tech-debt/SKILL.md +128 -128
  20. package/.claude/skills/team-tech-debt/roles/executor/role.md +76 -76
  21. package/.claude/skills/team-tech-debt/roles/scanner/role.md +90 -90
  22. package/.claude/skills/team-tech-debt/roles/validator/role.md +78 -78
  23. package/.claude/skills/team-testing/SKILL.md +143 -143
  24. package/.claude/skills/team-testing/roles/executor/role.md +99 -99
  25. package/.claude/skills/team-testing/roles/generator/role.md +98 -98
  26. package/.codex/skills/maestro-coordinate/SKILL.md +4 -5
  27. package/.codex/skills/manage-issue-analyze/SKILL.md +3 -3
  28. package/.codex/skills/manage-issue-execute/SKILL.md +4 -4
  29. package/.codex/skills/manage-issue-plan/SKILL.md +2 -2
  30. package/.codex/skills/team-coordinate/SKILL.md +7 -7
  31. package/.codex/skills/team-coordinate/roles/coordinator/role.md +1 -1
  32. package/.codex/skills/team-lifecycle-v4/SKILL.md +2 -2
  33. package/.codex/skills/team-lifecycle-v4/instructions/agent-instruction.md +2 -2
  34. package/.codex/skills/team-lifecycle-v4/roles/analyst/role.md +2 -2
  35. package/.codex/skills/team-lifecycle-v4/roles/coordinator/role.md +2 -2
  36. package/.codex/skills/team-lifecycle-v4/roles/executor/commands/implement.md +1 -1
  37. package/.codex/skills/team-lifecycle-v4/roles/planner/role.md +2 -2
  38. package/.codex/skills/team-lifecycle-v4/roles/writer/role.md +1 -1
  39. package/.codex/skills/team-quality-assurance/SKILL.md +2 -2
  40. package/.codex/skills/team-quality-assurance/roles/coordinator/role.md +2 -2
  41. package/.codex/skills/team-quality-assurance/roles/scout/role.md +2 -2
  42. package/.codex/skills/team-review/SKILL.md +2 -2
  43. package/.codex/skills/team-review/roles/coordinator/role.md +2 -2
  44. package/.codex/skills/team-review/roles/reviewer/role.md +1 -1
  45. package/.codex/skills/team-review/roles/scanner/role.md +1 -1
  46. package/.codex/skills/team-tech-debt/SKILL.md +2 -2
  47. package/.codex/skills/team-tech-debt/roles/coordinator/role.md +1 -1
  48. package/.codex/skills/team-tech-debt/roles/executor/role.md +1 -1
  49. package/.codex/skills/team-tech-debt/roles/scanner/role.md +1 -1
  50. package/.codex/skills/team-tech-debt/roles/validator/role.md +1 -1
  51. package/.codex/skills/team-testing/SKILL.md +2 -2
  52. package/.codex/skills/team-testing/roles/coordinator/role.md +2 -2
  53. package/.codex/skills/team-testing/roles/executor/role.md +1 -1
  54. package/.codex/skills/team-testing/roles/generator/role.md +1 -1
  55. package/README.md +31 -2
  56. package/README.zh-CN.md +23 -1
  57. package/dist/src/agents/cli-agent-runner.d.ts.map +1 -1
  58. package/dist/src/agents/cli-agent-runner.js +6 -15
  59. package/dist/src/agents/cli-agent-runner.js.map +1 -1
  60. package/dist/src/commands/delegate.d.ts.map +1 -1
  61. package/dist/src/commands/delegate.js +77 -1
  62. package/dist/src/commands/delegate.js.map +1 -1
  63. package/dist/src/commands/hooks.d.ts +15 -0
  64. package/dist/src/commands/hooks.d.ts.map +1 -1
  65. package/dist/src/commands/hooks.js +29 -2
  66. package/dist/src/commands/hooks.js.map +1 -1
  67. package/dist/src/commands/install-backend.d.ts +15 -0
  68. package/dist/src/commands/install-backend.d.ts.map +1 -1
  69. package/dist/src/commands/install-backend.js +67 -0
  70. package/dist/src/commands/install-backend.js.map +1 -1
  71. package/dist/src/commands/install-ui/BackupConfig.d.ts +6 -4
  72. package/dist/src/commands/install-ui/BackupConfig.d.ts.map +1 -1
  73. package/dist/src/commands/install-ui/BackupConfig.js +39 -12
  74. package/dist/src/commands/install-ui/BackupConfig.js.map +1 -1
  75. package/dist/src/commands/install-ui/ConfigPanel.d.ts.map +1 -1
  76. package/dist/src/commands/install-ui/ConfigPanel.js +1 -1
  77. package/dist/src/commands/install-ui/ConfigPanel.js.map +1 -1
  78. package/dist/src/commands/install-ui/InstallConfirm.d.ts +3 -0
  79. package/dist/src/commands/install-ui/InstallConfirm.d.ts.map +1 -1
  80. package/dist/src/commands/install-ui/InstallConfirm.js +5 -1
  81. package/dist/src/commands/install-ui/InstallConfirm.js.map +1 -1
  82. package/dist/src/commands/install-ui/InstallExecution.d.ts +2 -0
  83. package/dist/src/commands/install-ui/InstallExecution.d.ts.map +1 -1
  84. package/dist/src/commands/install-ui/InstallExecution.js +30 -5
  85. package/dist/src/commands/install-ui/InstallExecution.js.map +1 -1
  86. package/dist/src/commands/install-ui/InstallFlow.d.ts +1 -1
  87. package/dist/src/commands/install-ui/InstallFlow.d.ts.map +1 -1
  88. package/dist/src/commands/install-ui/InstallFlow.js +31 -6
  89. package/dist/src/commands/install-ui/InstallFlow.js.map +1 -1
  90. package/dist/src/commands/install-ui/InstallHub.d.ts +5 -0
  91. package/dist/src/commands/install-ui/InstallHub.d.ts.map +1 -1
  92. package/dist/src/commands/install-ui/InstallHub.js +24 -0
  93. package/dist/src/commands/install-ui/InstallHub.js.map +1 -1
  94. package/dist/src/commands/install-ui/InstallResult.d.ts.map +1 -1
  95. package/dist/src/commands/install-ui/InstallResult.js +1 -1
  96. package/dist/src/commands/install-ui/InstallResult.js.map +1 -1
  97. package/dist/src/commands/install-ui/StatuslineConfig.d.ts +9 -0
  98. package/dist/src/commands/install-ui/StatuslineConfig.d.ts.map +1 -0
  99. package/dist/src/commands/install-ui/StatuslineConfig.js +13 -0
  100. package/dist/src/commands/install-ui/StatuslineConfig.js.map +1 -0
  101. package/dist/src/commands/install-ui/index.d.ts +1 -1
  102. package/dist/src/commands/install-ui/index.d.ts.map +1 -1
  103. package/dist/src/commands/install-ui/types.d.ts +6 -0
  104. package/dist/src/commands/install-ui/types.d.ts.map +1 -1
  105. package/dist/src/commands/install-ui/types.js +3 -0
  106. package/dist/src/commands/install-ui/types.js.map +1 -1
  107. package/dist/src/commands/install.d.ts.map +1 -1
  108. package/dist/src/commands/install.js +6 -1
  109. package/dist/src/commands/install.js.map +1 -1
  110. package/dist/src/commands/launcher.js +1 -1
  111. package/dist/src/commands/launcher.js.map +1 -1
  112. package/dist/src/commands/overlay-ui/OverlayList.d.ts +35 -0
  113. package/dist/src/commands/overlay-ui/OverlayList.d.ts.map +1 -0
  114. package/dist/src/commands/overlay-ui/OverlayList.js +143 -0
  115. package/dist/src/commands/overlay-ui/OverlayList.js.map +1 -0
  116. package/dist/src/commands/overlay-ui/index.d.ts +2 -0
  117. package/dist/src/commands/overlay-ui/index.d.ts.map +1 -0
  118. package/dist/src/commands/overlay-ui/index.js +188 -0
  119. package/dist/src/commands/overlay-ui/index.js.map +1 -0
  120. package/dist/src/commands/overlay.d.ts.map +1 -1
  121. package/dist/src/commands/overlay.js +124 -60
  122. package/dist/src/commands/overlay.js.map +1 -1
  123. package/dist/src/commands/team.d.ts +10 -0
  124. package/dist/src/commands/team.d.ts.map +1 -1
  125. package/dist/src/commands/team.js +436 -42
  126. package/dist/src/commands/team.js.map +1 -1
  127. package/dist/src/core/manifest.d.ts.map +1 -1
  128. package/dist/src/core/manifest.js +58 -0
  129. package/dist/src/core/manifest.js.map +1 -1
  130. package/dist/src/core/overlay/applier.d.ts +36 -1
  131. package/dist/src/core/overlay/applier.d.ts.map +1 -1
  132. package/dist/src/core/overlay/applier.js +109 -1
  133. package/dist/src/core/overlay/applier.js.map +1 -1
  134. package/dist/src/hooks/delegate-monitor.js +1 -1
  135. package/dist/src/hooks/delegate-monitor.js.map +1 -1
  136. package/dist/src/hooks/plugins/spec-injection-plugin.d.ts.map +1 -1
  137. package/dist/src/hooks/plugins/spec-injection-plugin.js +17 -1
  138. package/dist/src/hooks/plugins/spec-injection-plugin.js.map +1 -1
  139. package/dist/src/hooks/spec-injector.d.ts +2 -1
  140. package/dist/src/hooks/spec-injector.d.ts.map +1 -1
  141. package/dist/src/hooks/spec-injector.js +19 -2
  142. package/dist/src/hooks/spec-injector.js.map +1 -1
  143. package/dist/src/hooks/team-monitor.d.ts.map +1 -1
  144. package/dist/src/hooks/team-monitor.js +17 -0
  145. package/dist/src/hooks/team-monitor.js.map +1 -1
  146. package/dist/src/i18n/locales/en.d.ts.map +1 -1
  147. package/dist/src/i18n/locales/en.js +25 -1
  148. package/dist/src/i18n/locales/en.js.map +1 -1
  149. package/dist/src/i18n/locales/zh.d.ts.map +1 -1
  150. package/dist/src/i18n/locales/zh.js +25 -1
  151. package/dist/src/i18n/locales/zh.js.map +1 -1
  152. package/dist/src/i18n/types.d.ts +22 -0
  153. package/dist/src/i18n/types.d.ts.map +1 -1
  154. package/dist/src/mcp/delegate-channel-relay.d.ts.map +1 -1
  155. package/dist/src/mcp/delegate-channel-relay.js +2 -7
  156. package/dist/src/mcp/delegate-channel-relay.js.map +1 -1
  157. package/dist/src/tools/namespace-guard.d.ts +37 -0
  158. package/dist/src/tools/namespace-guard.d.ts.map +1 -0
  159. package/dist/src/tools/namespace-guard.js +126 -0
  160. package/dist/src/tools/namespace-guard.js.map +1 -0
  161. package/dist/src/tools/spec-loader.d.ts +17 -1
  162. package/dist/src/tools/spec-loader.d.ts.map +1 -1
  163. package/dist/src/tools/spec-loader.js +71 -13
  164. package/dist/src/tools/spec-loader.js.map +1 -1
  165. package/dist/src/tools/team-members.d.ts +16 -0
  166. package/dist/src/tools/team-members.d.ts.map +1 -1
  167. package/dist/src/tools/team-members.js +31 -0
  168. package/dist/src/tools/team-members.js.map +1 -1
  169. package/package.json +1 -1
  170. package/workflows/delegate-usage.md +330 -0
  171. package/dist/agents/cli-agent-runner.d.ts +0 -131
  172. package/dist/agents/cli-agent-runner.d.ts.map +0 -1
  173. package/dist/agents/cli-agent-runner.js +0 -688
  174. package/dist/agents/cli-agent-runner.js.map +0 -1
  175. package/dist/agents/cli-history-store.d.ts +0 -63
  176. package/dist/agents/cli-history-store.d.ts.map +0 -1
  177. package/dist/agents/cli-history-store.js +0 -242
  178. package/dist/agents/cli-history-store.js.map +0 -1
  179. package/dist/agents/dashboard-bridge.d.ts +0 -39
  180. package/dist/agents/dashboard-bridge.d.ts.map +0 -1
  181. package/dist/agents/dashboard-bridge.js +0 -76
  182. package/dist/agents/dashboard-bridge.js.map +0 -1
  183. package/dist/agents/parallel-cli-runner.d.ts +0 -46
  184. package/dist/agents/parallel-cli-runner.d.ts.map +0 -1
  185. package/dist/agents/parallel-cli-runner.js +0 -277
  186. package/dist/agents/parallel-cli-runner.js.map +0 -1
  187. package/dist/agents/terminal-adapter.d.ts +0 -94
  188. package/dist/agents/terminal-adapter.d.ts.map +0 -1
  189. package/dist/agents/terminal-adapter.js +0 -132
  190. package/dist/agents/terminal-adapter.js.map +0 -1
  191. package/dist/agents/terminal-backend.d.ts +0 -53
  192. package/dist/agents/terminal-backend.d.ts.map +0 -1
  193. package/dist/agents/terminal-backend.js +0 -286
  194. package/dist/agents/terminal-backend.js.map +0 -1
  195. package/dist/async/delegate-broker-client.d.ts +0 -22
  196. package/dist/async/delegate-broker-client.d.ts.map +0 -1
  197. package/dist/async/delegate-broker-client.js +0 -47
  198. package/dist/async/delegate-broker-client.js.map +0 -1
  199. package/dist/async/delegate-broker.d.ts +0 -180
  200. package/dist/async/delegate-broker.d.ts.map +0 -1
  201. package/dist/async/delegate-broker.js +0 -1040
  202. package/dist/async/delegate-broker.js.map +0 -1
  203. package/dist/async/delegate-control.d.ts +0 -37
  204. package/dist/async/delegate-control.d.ts.map +0 -1
  205. package/dist/async/delegate-control.js +0 -155
  206. package/dist/async/delegate-control.js.map +0 -1
  207. package/dist/async/index.d.ts +0 -3
  208. package/dist/async/index.d.ts.map +0 -1
  209. package/dist/async/index.js +0 -3
  210. package/dist/async/index.js.map +0 -1
  211. package/dist/cli.d.ts +0 -2
  212. package/dist/cli.d.ts.map +0 -1
  213. package/dist/cli.js +0 -40
  214. package/dist/cli.js.map +0 -1
  215. package/dist/commands/cli.d.ts +0 -3
  216. package/dist/commands/cli.d.ts.map +0 -1
  217. package/dist/commands/cli.js +0 -262
  218. package/dist/commands/cli.js.map +0 -1
  219. package/dist/commands/coordinate.d.ts +0 -3
  220. package/dist/commands/coordinate.d.ts.map +0 -1
  221. package/dist/commands/coordinate.js +0 -275
  222. package/dist/commands/coordinate.js.map +0 -1
  223. package/dist/commands/delegate.d.ts +0 -37
  224. package/dist/commands/delegate.d.ts.map +0 -1
  225. package/dist/commands/delegate.js +0 -470
  226. package/dist/commands/delegate.js.map +0 -1
  227. package/dist/commands/ext.d.ts +0 -3
  228. package/dist/commands/ext.d.ts.map +0 -1
  229. package/dist/commands/ext.js +0 -28
  230. package/dist/commands/ext.js.map +0 -1
  231. package/dist/commands/hooks.d.ts +0 -3
  232. package/dist/commands/hooks.d.ts.map +0 -1
  233. package/dist/commands/hooks.js +0 -126
  234. package/dist/commands/hooks.js.map +0 -1
  235. package/dist/commands/install.d.ts +0 -3
  236. package/dist/commands/install.d.ts.map +0 -1
  237. package/dist/commands/install.js +0 -621
  238. package/dist/commands/install.js.map +0 -1
  239. package/dist/commands/launcher.d.ts +0 -3
  240. package/dist/commands/launcher.d.ts.map +0 -1
  241. package/dist/commands/launcher.js +0 -635
  242. package/dist/commands/launcher.js.map +0 -1
  243. package/dist/commands/link-coordinate.d.ts +0 -3
  244. package/dist/commands/link-coordinate.d.ts.map +0 -1
  245. package/dist/commands/link-coordinate.js +0 -225
  246. package/dist/commands/link-coordinate.js.map +0 -1
  247. package/dist/commands/msg.d.ts +0 -3
  248. package/dist/commands/msg.d.ts.map +0 -1
  249. package/dist/commands/msg.js +0 -110
  250. package/dist/commands/msg.js.map +0 -1
  251. package/dist/commands/overlay.d.ts +0 -3
  252. package/dist/commands/overlay.d.ts.map +0 -1
  253. package/dist/commands/overlay.js +0 -243
  254. package/dist/commands/overlay.js.map +0 -1
  255. package/dist/commands/run.d.ts +0 -3
  256. package/dist/commands/run.d.ts.map +0 -1
  257. package/dist/commands/run.js +0 -15
  258. package/dist/commands/run.js.map +0 -1
  259. package/dist/commands/serve.d.ts +0 -3
  260. package/dist/commands/serve.d.ts.map +0 -1
  261. package/dist/commands/serve.js +0 -16
  262. package/dist/commands/serve.js.map +0 -1
  263. package/dist/commands/spec.d.ts +0 -8
  264. package/dist/commands/spec.d.ts.map +0 -1
  265. package/dist/commands/spec.js +0 -147
  266. package/dist/commands/spec.js.map +0 -1
  267. package/dist/commands/stop.d.ts +0 -3
  268. package/dist/commands/stop.d.ts.map +0 -1
  269. package/dist/commands/stop.js +0 -218
  270. package/dist/commands/stop.js.map +0 -1
  271. package/dist/commands/tool.d.ts +0 -3
  272. package/dist/commands/tool.d.ts.map +0 -1
  273. package/dist/commands/tool.js +0 -29
  274. package/dist/commands/tool.js.map +0 -1
  275. package/dist/commands/uninstall.d.ts +0 -3
  276. package/dist/commands/uninstall.d.ts.map +0 -1
  277. package/dist/commands/uninstall.js +0 -77
  278. package/dist/commands/uninstall.js.map +0 -1
  279. package/dist/commands/view.d.ts +0 -3
  280. package/dist/commands/view.d.ts.map +0 -1
  281. package/dist/commands/view.js +0 -337
  282. package/dist/commands/view.js.map +0 -1
  283. package/dist/config/cli-tools-config.d.ts +0 -26
  284. package/dist/config/cli-tools-config.d.ts.map +0 -1
  285. package/dist/config/cli-tools-config.js +0 -49
  286. package/dist/config/cli-tools-config.js.map +0 -1
  287. package/dist/config/cli-tools-config.test.d.ts +0 -2
  288. package/dist/config/cli-tools-config.test.d.ts.map +0 -1
  289. package/dist/config/cli-tools-config.test.js +0 -59
  290. package/dist/config/cli-tools-config.test.js.map +0 -1
  291. package/dist/config/index.d.ts +0 -4
  292. package/dist/config/index.d.ts.map +0 -1
  293. package/dist/config/index.js +0 -27
  294. package/dist/config/index.js.map +0 -1
  295. package/dist/config/paths.d.ts +0 -15
  296. package/dist/config/paths.d.ts.map +0 -1
  297. package/dist/config/paths.js +0 -27
  298. package/dist/config/paths.js.map +0 -1
  299. package/dist/config/template-discovery.d.ts +0 -32
  300. package/dist/config/template-discovery.d.ts.map +0 -1
  301. package/dist/config/template-discovery.js +0 -128
  302. package/dist/config/template-discovery.js.map +0 -1
  303. package/dist/coordinator/cli-executor.d.ts +0 -22
  304. package/dist/coordinator/cli-executor.d.ts.map +0 -1
  305. package/dist/coordinator/cli-executor.js +0 -49
  306. package/dist/coordinator/cli-executor.js.map +0 -1
  307. package/dist/coordinator/expr-evaluator.d.ts +0 -11
  308. package/dist/coordinator/expr-evaluator.d.ts.map +0 -1
  309. package/dist/coordinator/expr-evaluator.js +0 -351
  310. package/dist/coordinator/expr-evaluator.js.map +0 -1
  311. package/dist/coordinator/graph-loader.d.ts +0 -16
  312. package/dist/coordinator/graph-loader.d.ts.map +0 -1
  313. package/dist/coordinator/graph-loader.js +0 -190
  314. package/dist/coordinator/graph-loader.js.map +0 -1
  315. package/dist/coordinator/graph-types.d.ts +0 -304
  316. package/dist/coordinator/graph-types.d.ts.map +0 -1
  317. package/dist/coordinator/graph-types.js +0 -6
  318. package/dist/coordinator/graph-types.js.map +0 -1
  319. package/dist/coordinator/graph-walker.d.ts +0 -51
  320. package/dist/coordinator/graph-walker.d.ts.map +0 -1
  321. package/dist/coordinator/graph-walker.js +0 -666
  322. package/dist/coordinator/graph-walker.js.map +0 -1
  323. package/dist/coordinator/index.d.ts +0 -13
  324. package/dist/coordinator/index.d.ts.map +0 -1
  325. package/dist/coordinator/index.js +0 -14
  326. package/dist/coordinator/index.js.map +0 -1
  327. package/dist/coordinator/intent-router.d.ts +0 -11
  328. package/dist/coordinator/intent-router.d.ts.map +0 -1
  329. package/dist/coordinator/intent-router.js +0 -65
  330. package/dist/coordinator/intent-router.js.map +0 -1
  331. package/dist/coordinator/link-session.d.ts +0 -29
  332. package/dist/coordinator/link-session.d.ts.map +0 -1
  333. package/dist/coordinator/link-session.js +0 -192
  334. package/dist/coordinator/link-session.js.map +0 -1
  335. package/dist/coordinator/link-walker.d.ts +0 -56
  336. package/dist/coordinator/link-walker.d.ts.map +0 -1
  337. package/dist/coordinator/link-walker.js +0 -548
  338. package/dist/coordinator/link-walker.js.map +0 -1
  339. package/dist/coordinator/output-parser.d.ts +0 -5
  340. package/dist/coordinator/output-parser.d.ts.map +0 -1
  341. package/dist/coordinator/output-parser.js +0 -114
  342. package/dist/coordinator/output-parser.js.map +0 -1
  343. package/dist/coordinator/parallel-executor.d.ts +0 -24
  344. package/dist/coordinator/parallel-executor.d.ts.map +0 -1
  345. package/dist/coordinator/parallel-executor.js +0 -43
  346. package/dist/coordinator/parallel-executor.js.map +0 -1
  347. package/dist/coordinator/prompt-assembler.d.ts +0 -15
  348. package/dist/coordinator/prompt-assembler.d.ts.map +0 -1
  349. package/dist/coordinator/prompt-assembler.js +0 -228
  350. package/dist/coordinator/prompt-assembler.js.map +0 -1
  351. package/dist/coordinator/step-analyzer.d.ts +0 -8
  352. package/dist/coordinator/step-analyzer.d.ts.map +0 -1
  353. package/dist/coordinator/step-analyzer.js +0 -82
  354. package/dist/coordinator/step-analyzer.js.map +0 -1
  355. package/dist/core/extension-loader.d.ts +0 -11
  356. package/dist/core/extension-loader.d.ts.map +0 -1
  357. package/dist/core/extension-loader.js +0 -54
  358. package/dist/core/extension-loader.js.map +0 -1
  359. package/dist/core/manifest.d.ts +0 -24
  360. package/dist/core/manifest.d.ts.map +0 -1
  361. package/dist/core/manifest.js +0 -139
  362. package/dist/core/manifest.js.map +0 -1
  363. package/dist/core/mcp-tool-registry.integration.test.d.ts +0 -2
  364. package/dist/core/mcp-tool-registry.integration.test.d.ts.map +0 -1
  365. package/dist/core/mcp-tool-registry.integration.test.js +0 -220
  366. package/dist/core/mcp-tool-registry.integration.test.js.map +0 -1
  367. package/dist/core/overlay/applier.d.ts +0 -73
  368. package/dist/core/overlay/applier.d.ts.map +0 -1
  369. package/dist/core/overlay/applier.js +0 -248
  370. package/dist/core/overlay/applier.js.map +0 -1
  371. package/dist/core/overlay/loader.d.ts +0 -26
  372. package/dist/core/overlay/loader.d.ts.map +0 -1
  373. package/dist/core/overlay/loader.js +0 -199
  374. package/dist/core/overlay/loader.js.map +0 -1
  375. package/dist/core/overlay/patcher.d.ts +0 -26
  376. package/dist/core/overlay/patcher.d.ts.map +0 -1
  377. package/dist/core/overlay/patcher.js +0 -212
  378. package/dist/core/overlay/patcher.js.map +0 -1
  379. package/dist/core/overlay/section-parser.d.ts +0 -25
  380. package/dist/core/overlay/section-parser.d.ts.map +0 -1
  381. package/dist/core/overlay/section-parser.js +0 -99
  382. package/dist/core/overlay/section-parser.js.map +0 -1
  383. package/dist/core/overlay/types.d.ts +0 -51
  384. package/dist/core/overlay/types.d.ts.map +0 -1
  385. package/dist/core/overlay/types.js +0 -15
  386. package/dist/core/overlay/types.js.map +0 -1
  387. package/dist/core/tool-registry.d.ts +0 -10
  388. package/dist/core/tool-registry.d.ts.map +0 -1
  389. package/dist/core/tool-registry.js +0 -29
  390. package/dist/core/tool-registry.js.map +0 -1
  391. package/dist/core/tool-registry.test.d.ts +0 -2
  392. package/dist/core/tool-registry.test.d.ts.map +0 -1
  393. package/dist/core/tool-registry.test.js +0 -78
  394. package/dist/core/tool-registry.test.js.map +0 -1
  395. package/dist/db/connection-pool.d.ts +0 -21
  396. package/dist/db/connection-pool.d.ts.map +0 -1
  397. package/dist/db/connection-pool.js +0 -53
  398. package/dist/db/connection-pool.js.map +0 -1
  399. package/dist/db/index.d.ts +0 -6
  400. package/dist/db/index.d.ts.map +0 -1
  401. package/dist/db/index.js +0 -9
  402. package/dist/db/index.js.map +0 -1
  403. package/dist/db/schema/core/index.d.ts +0 -5
  404. package/dist/db/schema/core/index.d.ts.map +0 -1
  405. package/dist/db/schema/core/index.js +0 -5
  406. package/dist/db/schema/core/index.js.map +0 -1
  407. package/dist/db/schema/core/organizations.d.ts +0 -244
  408. package/dist/db/schema/core/organizations.d.ts.map +0 -1
  409. package/dist/db/schema/core/organizations.js +0 -44
  410. package/dist/db/schema/core/organizations.js.map +0 -1
  411. package/dist/db/schema/core/permissions.d.ts +0 -158
  412. package/dist/db/schema/core/permissions.d.ts.map +0 -1
  413. package/dist/db/schema/core/permissions.js +0 -62
  414. package/dist/db/schema/core/permissions.js.map +0 -1
  415. package/dist/db/schema/core/refresh-tokens.d.ts +0 -147
  416. package/dist/db/schema/core/refresh-tokens.d.ts.map +0 -1
  417. package/dist/db/schema/core/refresh-tokens.js +0 -22
  418. package/dist/db/schema/core/refresh-tokens.js.map +0 -1
  419. package/dist/db/schema/core/users.d.ts +0 -178
  420. package/dist/db/schema/core/users.d.ts.map +0 -1
  421. package/dist/db/schema/core/users.js +0 -14
  422. package/dist/db/schema/core/users.js.map +0 -1
  423. package/dist/db/tenant-migrator.d.ts +0 -11
  424. package/dist/db/tenant-migrator.d.ts.map +0 -1
  425. package/dist/db/tenant-migrator.js +0 -74
  426. package/dist/db/tenant-migrator.js.map +0 -1
  427. package/dist/db/tenant-schema.d.ts +0 -290
  428. package/dist/db/tenant-schema.d.ts.map +0 -1
  429. package/dist/db/tenant-schema.js +0 -32
  430. package/dist/db/tenant-schema.js.map +0 -1
  431. package/dist/hooks/constants.d.ts +0 -40
  432. package/dist/hooks/constants.d.ts.map +0 -1
  433. package/dist/hooks/constants.js +0 -53
  434. package/dist/hooks/constants.js.map +0 -1
  435. package/dist/hooks/context-monitor.d.ts +0 -33
  436. package/dist/hooks/context-monitor.d.ts.map +0 -1
  437. package/dist/hooks/context-monitor.js +0 -117
  438. package/dist/hooks/context-monitor.js.map +0 -1
  439. package/dist/hooks/delegate-monitor.d.ts +0 -24
  440. package/dist/hooks/delegate-monitor.d.ts.map +0 -1
  441. package/dist/hooks/delegate-monitor.js +0 -76
  442. package/dist/hooks/delegate-monitor.js.map +0 -1
  443. package/dist/hooks/index.d.ts +0 -4
  444. package/dist/hooks/index.d.ts.map +0 -1
  445. package/dist/hooks/index.js +0 -4
  446. package/dist/hooks/index.js.map +0 -1
  447. package/dist/hooks/statusline.d.ts +0 -29
  448. package/dist/hooks/statusline.d.ts.map +0 -1
  449. package/dist/hooks/statusline.js +0 -134
  450. package/dist/hooks/statusline.js.map +0 -1
  451. package/dist/index.d.ts +0 -8
  452. package/dist/index.d.ts.map +0 -1
  453. package/dist/index.js +0 -6
  454. package/dist/index.js.map +0 -1
  455. package/dist/mcp/delegate-channel-relay.d.ts +0 -51
  456. package/dist/mcp/delegate-channel-relay.d.ts.map +0 -1
  457. package/dist/mcp/delegate-channel-relay.js +0 -307
  458. package/dist/mcp/delegate-channel-relay.js.map +0 -1
  459. package/dist/mcp/server.d.ts +0 -6
  460. package/dist/mcp/server.d.ts.map +0 -1
  461. package/dist/mcp/server.js +0 -64
  462. package/dist/mcp/server.js.map +0 -1
  463. package/dist/middleware/auth.d.ts +0 -13
  464. package/dist/middleware/auth.d.ts.map +0 -1
  465. package/dist/middleware/auth.js +0 -27
  466. package/dist/middleware/auth.js.map +0 -1
  467. package/dist/middleware/permission.d.ts +0 -9
  468. package/dist/middleware/permission.d.ts.map +0 -1
  469. package/dist/middleware/permission.js +0 -19
  470. package/dist/middleware/permission.js.map +0 -1
  471. package/dist/middleware/rate-limit.d.ts +0 -9
  472. package/dist/middleware/rate-limit.d.ts.map +0 -1
  473. package/dist/middleware/rate-limit.js +0 -40
  474. package/dist/middleware/rate-limit.js.map +0 -1
  475. package/dist/middleware/tenant.d.ts +0 -17
  476. package/dist/middleware/tenant.d.ts.map +0 -1
  477. package/dist/middleware/tenant.js +0 -57
  478. package/dist/middleware/tenant.js.map +0 -1
  479. package/dist/middleware/validation.d.ts +0 -40
  480. package/dist/middleware/validation.d.ts.map +0 -1
  481. package/dist/middleware/validation.js +0 -51
  482. package/dist/middleware/validation.js.map +0 -1
  483. package/dist/routes/auth.d.ts +0 -3
  484. package/dist/routes/auth.d.ts.map +0 -1
  485. package/dist/routes/auth.js +0 -77
  486. package/dist/routes/auth.js.map +0 -1
  487. package/dist/routes/members.d.ts +0 -4
  488. package/dist/routes/members.d.ts.map +0 -1
  489. package/dist/routes/members.js +0 -114
  490. package/dist/routes/members.js.map +0 -1
  491. package/dist/routes/organizations.d.ts +0 -5
  492. package/dist/routes/organizations.d.ts.map +0 -1
  493. package/dist/routes/organizations.js +0 -97
  494. package/dist/routes/organizations.js.map +0 -1
  495. package/dist/services/auth.service.d.ts +0 -24
  496. package/dist/services/auth.service.d.ts.map +0 -1
  497. package/dist/services/auth.service.js +0 -70
  498. package/dist/services/auth.service.js.map +0 -1
  499. package/dist/services/password.service.d.ts +0 -3
  500. package/dist/services/password.service.d.ts.map +0 -1
  501. package/dist/services/password.service.js +0 -18
  502. package/dist/services/password.service.js.map +0 -1
  503. package/dist/services/rbac.service.d.ts +0 -7
  504. package/dist/services/rbac.service.d.ts.map +0 -1
  505. package/dist/services/rbac.service.js +0 -36
  506. package/dist/services/rbac.service.js.map +0 -1
  507. package/dist/services/token.service.d.ts +0 -18
  508. package/dist/services/token.service.d.ts.map +0 -1
  509. package/dist/services/token.service.js +0 -86
  510. package/dist/services/token.service.js.map +0 -1
  511. package/dist/tools/core-memory.d.ts +0 -12
  512. package/dist/tools/core-memory.d.ts.map +0 -1
  513. package/dist/tools/core-memory.js +0 -276
  514. package/dist/tools/core-memory.js.map +0 -1
  515. package/dist/tools/edit-file.d.ts +0 -25
  516. package/dist/tools/edit-file.d.ts.map +0 -1
  517. package/dist/tools/edit-file.js +0 -462
  518. package/dist/tools/edit-file.js.map +0 -1
  519. package/dist/tools/index.d.ts +0 -8
  520. package/dist/tools/index.d.ts.map +0 -1
  521. package/dist/tools/index.js +0 -536
  522. package/dist/tools/index.js.map +0 -1
  523. package/dist/tools/read-file.d.ts +0 -13
  524. package/dist/tools/read-file.d.ts.map +0 -1
  525. package/dist/tools/read-file.js +0 -91
  526. package/dist/tools/read-file.js.map +0 -1
  527. package/dist/tools/read-many-files.d.ts +0 -15
  528. package/dist/tools/read-many-files.d.ts.map +0 -1
  529. package/dist/tools/read-many-files.js +0 -187
  530. package/dist/tools/read-many-files.js.map +0 -1
  531. package/dist/tools/spec-index-builder.d.ts +0 -58
  532. package/dist/tools/spec-index-builder.d.ts.map +0 -1
  533. package/dist/tools/spec-index-builder.js +0 -211
  534. package/dist/tools/spec-index-builder.js.map +0 -1
  535. package/dist/tools/spec-init.d.ts +0 -17
  536. package/dist/tools/spec-init.d.ts.map +0 -1
  537. package/dist/tools/spec-init.js +0 -215
  538. package/dist/tools/spec-init.js.map +0 -1
  539. package/dist/tools/spec-keyword-extractor.d.ts +0 -24
  540. package/dist/tools/spec-keyword-extractor.d.ts.map +0 -1
  541. package/dist/tools/spec-keyword-extractor.js +0 -84
  542. package/dist/tools/spec-keyword-extractor.js.map +0 -1
  543. package/dist/tools/spec-keyword-extractor.test.d.ts +0 -2
  544. package/dist/tools/spec-keyword-extractor.test.d.ts.map +0 -1
  545. package/dist/tools/spec-keyword-extractor.test.js +0 -99
  546. package/dist/tools/spec-keyword-extractor.test.js.map +0 -1
  547. package/dist/tools/spec-loader.d.ts +0 -15
  548. package/dist/tools/spec-loader.d.ts.map +0 -1
  549. package/dist/tools/spec-loader.js +0 -93
  550. package/dist/tools/spec-loader.js.map +0 -1
  551. package/dist/tools/team-msg.d.ts +0 -52
  552. package/dist/tools/team-msg.d.ts.map +0 -1
  553. package/dist/tools/team-msg.js +0 -449
  554. package/dist/tools/team-msg.js.map +0 -1
  555. package/dist/tools/write-file.d.ts +0 -19
  556. package/dist/tools/write-file.d.ts.map +0 -1
  557. package/dist/tools/write-file.js +0 -165
  558. package/dist/tools/write-file.js.map +0 -1
  559. package/dist/types/index.d.ts +0 -47
  560. package/dist/types/index.d.ts.map +0 -1
  561. package/dist/types/index.js +0 -2
  562. package/dist/types/index.js.map +0 -1
  563. package/dist/types/tool-schema.d.ts +0 -37
  564. package/dist/types/tool-schema.d.ts.map +0 -1
  565. package/dist/types/tool-schema.js +0 -24
  566. package/dist/types/tool-schema.js.map +0 -1
  567. package/dist/utils/file-reader.d.ts +0 -74
  568. package/dist/utils/file-reader.d.ts.map +0 -1
  569. package/dist/utils/file-reader.js +0 -217
  570. package/dist/utils/file-reader.js.map +0 -1
  571. package/dist/utils/path-validator.d.ts +0 -52
  572. package/dist/utils/path-validator.d.ts.map +0 -1
  573. package/dist/utils/path-validator.js +0 -151
  574. package/dist/utils/path-validator.js.map +0 -1
@@ -1,449 +0,0 @@
1
- /**
2
- * Team Message Bus - JSONL-based persistent message log for Agent Teams
3
- *
4
- * Operations:
5
- * - log: Append a message (to defaults to "coordinator", summary auto-generated if omitted)
6
- * - read: Read message(s) by ID
7
- * - list: List recent messages with optional filters (from/to/type/last N)
8
- * - status: Summarize team member activity from message history
9
- * - delete: Delete a specific message by ID
10
- * - clear: Clear all messages for a team
11
- * - broadcast: Log a message with to="all"
12
- * - get_state: Read role state from meta.json
13
- */
14
- import { z } from 'zod';
15
- import { existsSync, mkdirSync, readFileSync, appendFileSync, writeFileSync, rmSync, statSync } from 'fs';
16
- import { join, dirname } from 'path';
17
- import { getProjectRoot } from '../utils/path-validator.js';
18
- export function getMetaPath(team) {
19
- return join(getLogDir(team), 'meta.json');
20
- }
21
- export function readTeamMeta(team) {
22
- const metaPath = getMetaPath(team);
23
- if (!existsSync(metaPath))
24
- return null;
25
- try {
26
- return JSON.parse(readFileSync(metaPath, 'utf-8'));
27
- }
28
- catch {
29
- return null;
30
- }
31
- }
32
- export function writeTeamMeta(team, meta) {
33
- const dir = getLogDir(team);
34
- if (!existsSync(dir)) {
35
- mkdirSync(dir, { recursive: true });
36
- }
37
- writeFileSync(getMetaPath(team), JSON.stringify(meta, null, 2), 'utf-8');
38
- }
39
- export function inferTeamStatus(team) {
40
- const messages = readAllMessages(team);
41
- if (messages.length === 0)
42
- return 'active';
43
- const lastMsg = messages[messages.length - 1];
44
- return lastMsg.type === 'shutdown' ? 'completed' : 'active';
45
- }
46
- export function getEffectiveTeamMeta(team) {
47
- const meta = readTeamMeta(team);
48
- if (meta) {
49
- if (!meta.role_state || !meta.pipeline_mode || !meta.roles || !meta.pipeline_stages) {
50
- const legacyData = readLegacyFiles(team);
51
- if (!meta.pipeline_mode && legacyData.pipeline_mode) {
52
- meta.pipeline_mode = legacyData.pipeline_mode;
53
- }
54
- if (!meta.role_state && legacyData.role_state) {
55
- meta.role_state = legacyData.role_state;
56
- }
57
- if (!meta.pipeline_stages && legacyData.pipeline_stages) {
58
- meta.pipeline_stages = legacyData.pipeline_stages;
59
- }
60
- if (!meta.team_name && legacyData.team_name) {
61
- meta.team_name = legacyData.team_name;
62
- }
63
- if (!meta.roles && legacyData.roles) {
64
- meta.roles = legacyData.roles;
65
- }
66
- }
67
- return meta;
68
- }
69
- const status = inferTeamStatus(team);
70
- const dir = getLogDir(team);
71
- let created_at = new Date().toISOString();
72
- try {
73
- const stat = statSync(dir);
74
- created_at = stat.birthtime.toISOString();
75
- }
76
- catch { /* use now as fallback */ }
77
- const messages = readAllMessages(team);
78
- const lastMsg = messages[messages.length - 1];
79
- const updated_at = lastMsg?.ts || created_at;
80
- const legacyData = readLegacyFiles(team);
81
- return {
82
- status,
83
- created_at,
84
- updated_at,
85
- ...legacyData,
86
- };
87
- }
88
- function readLegacyFiles(team) {
89
- const root = getProjectRoot();
90
- const sessionDir = join(root, '.workflow', '.team', team);
91
- const result = {};
92
- const sharedMemPath = join(sessionDir, 'shared-memory.json');
93
- if (existsSync(sharedMemPath)) {
94
- try {
95
- const sharedMem = JSON.parse(readFileSync(sharedMemPath, 'utf-8'));
96
- if (sharedMem.pipeline_mode)
97
- result.pipeline_mode = sharedMem.pipeline_mode;
98
- if (sharedMem.pipeline_stages)
99
- result.pipeline_stages = sharedMem.pipeline_stages;
100
- const roleState = {};
101
- for (const [key, value] of Object.entries(sharedMem)) {
102
- if (typeof value === 'object' && value !== null && !Array.isArray(value)
103
- && !['pipeline_mode', 'pipeline_stages'].includes(key)) {
104
- roleState[key] = value;
105
- }
106
- }
107
- if (Object.keys(roleState).length > 0)
108
- result.role_state = roleState;
109
- }
110
- catch { /* ignore parse errors */ }
111
- }
112
- const sessionPath = join(sessionDir, 'team-session.json');
113
- if (existsSync(sessionPath)) {
114
- try {
115
- const session = JSON.parse(readFileSync(sessionPath, 'utf-8'));
116
- if (!result.pipeline_mode && session.pipeline_mode)
117
- result.pipeline_mode = session.pipeline_mode;
118
- if (!result.pipeline_stages && session.pipeline_stages)
119
- result.pipeline_stages = session.pipeline_stages;
120
- if (session.team_name)
121
- result.team_name = session.team_name;
122
- if (session.task_description)
123
- result.task_description = session.task_description;
124
- if (session.roles && Array.isArray(session.roles)) {
125
- if (typeof session.roles[0] === 'string') {
126
- result.roles = session.roles;
127
- }
128
- else if (typeof session.roles[0] === 'object' && session.roles[0] !== null && 'name' in session.roles[0]) {
129
- result.roles = session.roles.map((r) => r.name);
130
- }
131
- }
132
- }
133
- catch { /* ignore parse errors */ }
134
- }
135
- return result;
136
- }
137
- // --- Zod Schema ---
138
- const ParamsSchema = z.object({
139
- operation: z.enum(['log', 'read', 'list', 'status', 'delete', 'clear', 'broadcast', 'get_state']).describe('Operation to perform'),
140
- session_id: z.string().optional().describe('Session ID that determines message storage path'),
141
- team_session_id: z.string().optional().describe('[deprecated] Use session_id'),
142
- team: z.string().optional().describe('[deprecated] Use session_id'),
143
- from: z.string().optional().describe('[log/broadcast/list] Sender role name'),
144
- to: z.string().optional().describe('[log/list] Recipient role (defaults to "coordinator")'),
145
- type: z.string().optional().describe('[log/broadcast/list] Message type'),
146
- summary: z.string().optional().describe('[log/broadcast] One-line summary'),
147
- data: z.record(z.string(), z.unknown()).optional().describe('[log/broadcast] Structured data payload'),
148
- id: z.string().optional().describe('[read/delete] Message ID'),
149
- last: z.number().min(1).max(100).optional().describe('[list] Return last N messages'),
150
- role: z.string().optional().describe('[get_state] Role name to query'),
151
- ref: z.string().optional().describe('[deprecated] Use data.ref instead'),
152
- });
153
- function resolveTeamId(params) {
154
- return params.session_id || params.team_session_id || params.team || null;
155
- }
156
- // --- Tool Schema ---
157
- export const schema = {
158
- name: 'team_msg',
159
- description: `Team message bus - persistent JSONL log for Agent Team communication. Choose an operation and provide its required parameters.
160
-
161
- **Storage Location:** .workflow/.team/{session-id}/.msg/messages.jsonl
162
-
163
- **Operations & Required Parameters:**
164
-
165
- * **log**: Append a message to the log.
166
- * **session_id** (string, **REQUIRED**): Session ID.
167
- * **from** (string, **REQUIRED**): Sender role name.
168
- * *to* (string): Recipient role (default: "coordinator").
169
- * *type* (string): Message type (default: "message").
170
- * *summary* (string): One-line summary (auto-generated if omitted).
171
- * *data* (object): Structured data payload.
172
-
173
- * **broadcast**: Send message to all team members.
174
- * **session_id** (string, **REQUIRED**): Session ID.
175
- * **from** (string, **REQUIRED**): Sender role name.
176
-
177
- * **read**: Read a specific message by ID.
178
- * **session_id** (string, **REQUIRED**): Session ID.
179
- * **id** (string, **REQUIRED**): Message ID.
180
-
181
- * **list**: List recent messages.
182
- * **session_id** (string, **REQUIRED**): Session ID.
183
- * *last* (number): Number of messages (default: 20).
184
-
185
- * **status**: Summarize team member activity.
186
- * **session_id** (string, **REQUIRED**): Session ID.
187
-
188
- * **get_state**: Get state for a specific role.
189
- * **session_id** (string, **REQUIRED**): Session ID.
190
- * *role* (string): Role name to query.
191
-
192
- * **delete**: Delete a message by ID.
193
- * **session_id** (string, **REQUIRED**): Session ID.
194
- * **id** (string, **REQUIRED**): Message ID.
195
-
196
- * **clear**: Clear all messages for a session.
197
- * **session_id** (string, **REQUIRED**): Session ID.`,
198
- inputSchema: {
199
- type: 'object',
200
- properties: {
201
- operation: {
202
- type: 'string',
203
- enum: ['log', 'read', 'list', 'status', 'delete', 'clear', 'broadcast', 'get_state'],
204
- description: 'Operation to perform',
205
- },
206
- session_id: {
207
- type: 'string',
208
- description: 'Session ID (e.g., TLS-my-project-2026-02-27)',
209
- },
210
- from: { type: 'string', description: '[log/broadcast/list] Sender role' },
211
- to: { type: 'string', description: '[log/list] Recipient role' },
212
- type: { type: 'string', description: '[log/broadcast/list] Message type' },
213
- summary: { type: 'string', description: '[log/broadcast] One-line summary' },
214
- data: { type: 'object', description: '[log/broadcast] Structured data' },
215
- id: { type: 'string', description: '[read/delete] Message ID' },
216
- last: { type: 'number', description: '[list] Last N messages', minimum: 1, maximum: 100 },
217
- role: { type: 'string', description: '[get_state] Role name to query' },
218
- team_session_id: { type: 'string', description: '[deprecated] Use session_id' },
219
- team: { type: 'string', description: '[deprecated] Use session_id' },
220
- ref: { type: 'string', description: '[deprecated] Use data.ref instead' },
221
- },
222
- required: ['operation'],
223
- },
224
- };
225
- // --- Helpers ---
226
- export function getLogDir(sessionId) {
227
- const root = getProjectRoot();
228
- return join(root, '.workflow', '.team', sessionId, '.msg');
229
- }
230
- export function getLogDirWithFallback(sessionId) {
231
- const newPath = getLogDir(sessionId);
232
- if (existsSync(newPath)) {
233
- return newPath;
234
- }
235
- const root = getProjectRoot();
236
- return join(root, '.workflow', '.team-msg', sessionId);
237
- }
238
- function getLogPath(teamId) {
239
- return join(getLogDir(teamId), 'messages.jsonl');
240
- }
241
- function ensureLogFile(teamId) {
242
- const logPath = getLogPath(teamId);
243
- const dir = dirname(logPath);
244
- if (!existsSync(dir)) {
245
- mkdirSync(dir, { recursive: true });
246
- }
247
- if (!existsSync(logPath)) {
248
- appendFileSync(logPath, '', 'utf-8');
249
- }
250
- return logPath;
251
- }
252
- export function readAllMessages(teamId) {
253
- const logPath = getLogPath(teamId);
254
- if (!existsSync(logPath))
255
- return [];
256
- const content = readFileSync(logPath, 'utf-8').trim();
257
- if (!content)
258
- return [];
259
- return content.split('\n').map(line => {
260
- try {
261
- return JSON.parse(line);
262
- }
263
- catch {
264
- return null;
265
- }
266
- }).filter((m) => m !== null);
267
- }
268
- function getNextId(messages) {
269
- const maxNum = messages.reduce((max, m) => {
270
- const match = m.id.match(/^MSG-(\d+)$/);
271
- return match ? Math.max(max, parseInt(match[1], 10)) : max;
272
- }, 0);
273
- return `MSG-${String(maxNum + 1).padStart(3, '0')}`;
274
- }
275
- function nowISO() {
276
- return new Date().toISOString().replace('Z', '+00:00');
277
- }
278
- // --- Operations ---
279
- function opLog(params, teamId) {
280
- if (!params.from)
281
- return { success: false, error: 'log requires "from"' };
282
- const to = params.to || 'coordinator';
283
- if (params.ref) {
284
- if (!params.data)
285
- params.data = {};
286
- if (!params.data.ref)
287
- params.data.ref = params.ref;
288
- }
289
- const summary = params.summary || `[${params.from}] ${params.type || 'message'} → ${to}`;
290
- const logPath = ensureLogFile(teamId);
291
- const messages = readAllMessages(teamId);
292
- const id = getNextId(messages);
293
- const msg = {
294
- id,
295
- ts: nowISO(),
296
- from: params.from,
297
- to,
298
- type: params.type || 'message',
299
- summary,
300
- };
301
- if (params.data)
302
- msg.data = params.data;
303
- appendFileSync(logPath, JSON.stringify(msg) + '\n', 'utf-8');
304
- if (params.type === 'state_update' && params.data) {
305
- const meta = getEffectiveTeamMeta(teamId);
306
- if (params.from) {
307
- if (!meta.role_state)
308
- meta.role_state = {};
309
- meta.role_state[params.from] = {
310
- ...meta.role_state[params.from],
311
- ...params.data,
312
- _updated_at: nowISO(),
313
- };
314
- }
315
- const topLevelKeys = ['pipeline_mode', 'pipeline_stages', 'team_name', 'task_description', 'roles'];
316
- for (const key of topLevelKeys) {
317
- if (params.data[key] !== undefined) {
318
- meta[key] = params.data[key];
319
- }
320
- }
321
- meta.updated_at = nowISO();
322
- writeTeamMeta(teamId, meta);
323
- }
324
- return { success: true, result: { id, message: `Logged ${id}: [${msg.from} → ${msg.to}] ${msg.summary}` } };
325
- }
326
- function opRead(params, teamId) {
327
- if (!params.id)
328
- return { success: false, error: 'read requires "id"' };
329
- const messages = readAllMessages(teamId);
330
- const msg = messages.find(m => m.id === params.id);
331
- if (!msg) {
332
- return { success: false, error: `Message ${params.id} not found in team "${teamId}"` };
333
- }
334
- return { success: true, result: msg };
335
- }
336
- function opList(params, teamId) {
337
- let messages = readAllMessages(teamId);
338
- if (params.from)
339
- messages = messages.filter(m => m.from === params.from);
340
- if (params.to)
341
- messages = messages.filter(m => m.to === params.to);
342
- if (params.type)
343
- messages = messages.filter(m => m.type === params.type);
344
- const last = params.last || 20;
345
- const sliced = messages.slice(-last);
346
- const lines = sliced.map(m => `${m.id} [${m.ts.substring(11, 19)}] ${m.from} → ${m.to} (${m.type}) ${m.summary}`);
347
- return {
348
- success: true,
349
- result: {
350
- total: messages.length,
351
- showing: sliced.length,
352
- messages: sliced,
353
- formatted: lines.join('\n'),
354
- },
355
- };
356
- }
357
- function opStatus(params, teamId) {
358
- const messages = readAllMessages(teamId);
359
- if (messages.length === 0) {
360
- return { success: true, result: { members: [], summary: 'No messages recorded yet.' } };
361
- }
362
- const memberMap = new Map();
363
- for (const msg of messages) {
364
- for (const role of [msg.from, msg.to]) {
365
- if (!memberMap.has(role)) {
366
- memberMap.set(role, { member: role, lastSeen: msg.ts, lastAction: '', messageCount: 0 });
367
- }
368
- }
369
- const fromEntry = memberMap.get(msg.from);
370
- fromEntry.lastSeen = msg.ts;
371
- fromEntry.lastAction = `sent ${msg.type} → ${msg.to}`;
372
- fromEntry.messageCount++;
373
- }
374
- const members = Array.from(memberMap.values()).sort((a, b) => b.lastSeen.localeCompare(a.lastSeen));
375
- const formatted = members.map(m => `${m.member.padEnd(12)} | last: ${m.lastSeen.substring(11, 19)} | msgs: ${m.messageCount} | ${m.lastAction}`).join('\n');
376
- return {
377
- success: true,
378
- result: {
379
- members,
380
- total_messages: messages.length,
381
- formatted,
382
- },
383
- };
384
- }
385
- function opDelete(params, teamId) {
386
- if (!params.id)
387
- return { success: false, error: 'delete requires "id"' };
388
- const messages = readAllMessages(teamId);
389
- const idx = messages.findIndex(m => m.id === params.id);
390
- if (idx === -1) {
391
- return { success: false, error: `Message ${params.id} not found in team "${teamId}"` };
392
- }
393
- const removed = messages.splice(idx, 1)[0];
394
- const logPath = ensureLogFile(teamId);
395
- writeFileSync(logPath, messages.map(m => JSON.stringify(m)).join('\n') + (messages.length > 0 ? '\n' : ''), 'utf-8');
396
- return { success: true, result: { deleted: removed.id, message: `Deleted ${removed.id}: [${removed.from} → ${removed.to}] ${removed.summary}` } };
397
- }
398
- function opBroadcast(params, teamId) {
399
- if (!params.from)
400
- return { success: false, error: 'broadcast requires "from"' };
401
- return opLog({ ...params, operation: 'log', to: 'all' }, teamId);
402
- }
403
- function opGetState(params, teamId) {
404
- const meta = getEffectiveTeamMeta(teamId);
405
- const roleState = meta.role_state || {};
406
- if (params.role) {
407
- const state = roleState[params.role];
408
- if (!state) {
409
- return { success: true, result: { role: params.role, state: null, message: `No state found for role "${params.role}"` } };
410
- }
411
- return { success: true, result: { role: params.role, state } };
412
- }
413
- return { success: true, result: { role_state: roleState } };
414
- }
415
- function opClear(params, teamId) {
416
- const logPath = getLogPath(teamId);
417
- const dir = getLogDir(teamId);
418
- if (!existsSync(logPath)) {
419
- return { success: true, result: { message: `Team "${teamId}" has no messages to clear.` } };
420
- }
421
- const count = readAllMessages(teamId).length;
422
- rmSync(dir, { recursive: true, force: true });
423
- return { success: true, result: { cleared: count, message: `Cleared ${count} messages for team "${teamId}".` } };
424
- }
425
- // --- Handler ---
426
- export async function handler(params) {
427
- const parsed = ParamsSchema.safeParse(params);
428
- if (!parsed.success) {
429
- return { success: false, error: `Invalid params: ${parsed.error.message}` };
430
- }
431
- const p = parsed.data;
432
- const teamId = resolveTeamId(p);
433
- if (!teamId) {
434
- return { success: false, error: 'Missing required parameter: session_id (or legacy "team_session_id" / "team")' };
435
- }
436
- switch (p.operation) {
437
- case 'log': return opLog(p, teamId);
438
- case 'read': return opRead(p, teamId);
439
- case 'list': return opList(p, teamId);
440
- case 'status': return opStatus(p, teamId);
441
- case 'delete': return opDelete(p, teamId);
442
- case 'clear': return opClear(p, teamId);
443
- case 'broadcast': return opBroadcast(p, teamId);
444
- case 'get_state': return opGetState(p, teamId);
445
- default:
446
- return { success: false, error: `Unknown operation: ${p.operation}` };
447
- }
448
- }
449
- //# sourceMappingURL=team-msg.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"team-msg.js","sourceRoot":"","sources":["../../src/tools/team-msg.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- /**
2
- * Write File Tool - Create or overwrite files
3
- *
4
- * Features:
5
- * - Create new files or overwrite existing
6
- * - Auto-create parent directories
7
- * - Support for text content with proper encoding
8
- * - Optional backup before overwrite
9
- */
10
- import type { ToolSchema, CcwToolResult } from '../types/tool-schema.js';
11
- interface WriteResult {
12
- path: string;
13
- bytes: number;
14
- message: string;
15
- }
16
- export declare const schema: ToolSchema;
17
- export declare function handler(params: Record<string, unknown>): Promise<CcwToolResult<WriteResult>>;
18
- export {};
19
- //# sourceMappingURL=write-file.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"write-file.d.ts","sourceRoot":"","sources":["../../src/tools/write-file.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAezE,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAmDD,eAAO,MAAM,MAAM,EAAE,UAoCpB,CAAC;AAEF,wBAAsB,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAyElG"}
@@ -1,165 +0,0 @@
1
- /**
2
- * Write File Tool - Create or overwrite files
3
- *
4
- * Features:
5
- * - Create new files or overwrite existing
6
- * - Auto-create parent directories
7
- * - Support for text content with proper encoding
8
- * - Optional backup before overwrite
9
- */
10
- import { z } from 'zod';
11
- import { writeFileSync, readFileSync, existsSync, mkdirSync, statSync } from 'fs';
12
- import { resolve, dirname, basename } from 'path';
13
- import { validatePath } from '../utils/path-validator.js';
14
- const ParamsSchema = z.object({
15
- path: z.string().min(1, 'Path is required'),
16
- content: z.string(),
17
- createDirectories: z.boolean().default(true),
18
- backup: z.boolean().default(false),
19
- encoding: z.enum(['utf8', 'utf-8', 'ascii', 'latin1', 'binary', 'hex', 'base64']).default('utf8'),
20
- });
21
- function ensureDir(filePath) {
22
- const dir = dirname(filePath);
23
- if (!existsSync(dir)) {
24
- mkdirSync(dir, { recursive: true });
25
- }
26
- }
27
- function createBackup(filePath) {
28
- if (!existsSync(filePath)) {
29
- return null;
30
- }
31
- const dir = dirname(filePath);
32
- const name = basename(filePath);
33
- const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
34
- const backupPath = resolve(dir, `.${name}.${timestamp}.bak`);
35
- try {
36
- const content = readFileSync(filePath);
37
- writeFileSync(backupPath, content);
38
- return backupPath;
39
- }
40
- catch (error) {
41
- throw new Error(`Failed to create backup: ${error.message}`);
42
- }
43
- }
44
- function verifyFileWrite(filePath, expectedBytes, encoding) {
45
- if (!existsSync(filePath)) {
46
- return `File verification failed: file does not exist at ${filePath}`;
47
- }
48
- try {
49
- const stats = statSync(filePath);
50
- if (stats.size !== expectedBytes) {
51
- return `File verification failed: size mismatch (expected ${expectedBytes}B, actual ${stats.size}B)`;
52
- }
53
- const readContent = readFileSync(filePath, { encoding });
54
- const actualBytes = Buffer.byteLength(readContent, encoding);
55
- if (actualBytes !== expectedBytes) {
56
- return `File verification failed: content size mismatch after read (expected ${expectedBytes}B, read ${actualBytes}B)`;
57
- }
58
- return null;
59
- }
60
- catch (error) {
61
- return `File verification failed: ${error.message}`;
62
- }
63
- }
64
- export const schema = {
65
- name: 'write_file',
66
- description: `Write content to file. Auto-creates parent directories.
67
-
68
- Required: path (string), content (string)
69
- Options: backup=true, createDirectories=false, encoding="utf8"`,
70
- inputSchema: {
71
- type: 'object',
72
- properties: {
73
- path: {
74
- type: 'string',
75
- description: 'Path to the file to create or overwrite',
76
- },
77
- content: {
78
- type: 'string',
79
- description: 'Content to write to the file',
80
- },
81
- createDirectories: {
82
- type: 'boolean',
83
- description: 'Create parent directories if they do not exist (default: true)',
84
- default: true,
85
- },
86
- backup: {
87
- type: 'boolean',
88
- description: 'Create backup of existing file before overwriting (default: false)',
89
- default: false,
90
- },
91
- encoding: {
92
- type: 'string',
93
- description: 'File encoding (default: utf8)',
94
- default: 'utf8',
95
- enum: ['utf8', 'utf-8', 'ascii', 'latin1', 'binary', 'hex', 'base64'],
96
- },
97
- },
98
- required: ['path', 'content'],
99
- },
100
- };
101
- export async function handler(params) {
102
- const parsed = ParamsSchema.safeParse(params);
103
- if (!parsed.success) {
104
- return { success: false, error: `Invalid params: ${parsed.error.message}` };
105
- }
106
- const { path: filePath, content, createDirectories, backup, encoding, } = parsed.data;
107
- const resolvedPath = await validatePath(filePath);
108
- const fileExists = existsSync(resolvedPath);
109
- if (createDirectories) {
110
- ensureDir(resolvedPath);
111
- }
112
- else if (!existsSync(dirname(resolvedPath))) {
113
- return {
114
- success: false,
115
- error: `Parent directory does not exist: ${dirname(resolvedPath)}`,
116
- };
117
- }
118
- let backupPath = null;
119
- if (backup && fileExists) {
120
- try {
121
- backupPath = createBackup(resolvedPath);
122
- }
123
- catch (error) {
124
- return {
125
- success: false,
126
- error: error.message,
127
- };
128
- }
129
- }
130
- try {
131
- writeFileSync(resolvedPath, content, { encoding });
132
- const bytes = Buffer.byteLength(content, encoding);
133
- const verificationError = verifyFileWrite(resolvedPath, bytes, encoding);
134
- if (verificationError) {
135
- return {
136
- success: false,
137
- error: verificationError,
138
- };
139
- }
140
- let message;
141
- if (fileExists) {
142
- message = backupPath
143
- ? `Overwrote (${bytes}B, backup: ${basename(backupPath)}) - verified`
144
- : `Overwrote (${bytes}B) - verified`;
145
- }
146
- else {
147
- message = `Created (${bytes}B) - verified`;
148
- }
149
- return {
150
- success: true,
151
- result: {
152
- path: resolvedPath,
153
- bytes,
154
- message,
155
- },
156
- };
157
- }
158
- catch (error) {
159
- return {
160
- success: false,
161
- error: `Failed to write file: ${error.message}`,
162
- };
163
- }
164
- }
165
- //# sourceMappingURL=write-file.js.map