maestro-flow 0.3.10 → 0.3.11

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 (184) hide show
  1. package/.claude/agents/workflow-collab-planner.md +1 -1
  2. package/.claude/agents/workflow-executor.md +1 -1
  3. package/.claude/agents/workflow-plan-checker.md +1 -1
  4. package/.claude/agents/workflow-planner.md +1 -1
  5. package/.claude/commands/learn-decompose.md +176 -176
  6. package/.claude/commands/learn-follow.md +167 -167
  7. package/.claude/commands/learn-retro.md +1 -1
  8. package/.claude/commands/maestro-coordinate.md +1 -3
  9. package/.claude/commands/manage-harvest.md +131 -131
  10. package/.claude/commands/manage-issue.md +2 -2
  11. package/.claude/commands/spec-add.md +67 -56
  12. package/.claude/commands/spec-load.md +66 -64
  13. package/.claude/commands/spec-setup.md +5 -9
  14. package/.codex/skills/learn-decompose/SKILL.md +119 -0
  15. package/.codex/skills/learn-follow/SKILL.md +83 -0
  16. package/.codex/skills/learn-investigate/SKILL.md +83 -0
  17. package/.codex/skills/learn-retro/SKILL.md +83 -0
  18. package/.codex/skills/learn-second-opinion/SKILL.md +86 -0
  19. package/.codex/skills/maestro/SKILL.md +151 -279
  20. package/.codex/skills/maestro-analyze/SKILL.md +59 -71
  21. package/.codex/skills/maestro-brainstorm/SKILL.md +452 -463
  22. package/.codex/skills/maestro-chain/SKILL.md +95 -110
  23. package/.codex/skills/maestro-coordinate/SKILL.md +68 -234
  24. package/.codex/skills/maestro-execute/SKILL.md +435 -446
  25. package/.codex/skills/maestro-fork/SKILL.md +68 -0
  26. package/.codex/skills/maestro-init/SKILL.md +171 -167
  27. package/.codex/skills/maestro-learn/SKILL.md +80 -0
  28. package/.codex/skills/maestro-link-coordinate/SKILL.md +224 -220
  29. package/.codex/skills/maestro-merge/SKILL.md +62 -0
  30. package/.codex/skills/maestro-milestone-audit/SKILL.md +108 -103
  31. package/.codex/skills/maestro-milestone-complete/SKILL.md +155 -149
  32. package/.codex/skills/maestro-milestone-release/SKILL.md +70 -0
  33. package/.codex/skills/maestro-overlay/SKILL.md +188 -185
  34. package/.codex/skills/maestro-plan/SKILL.md +58 -69
  35. package/.codex/skills/maestro-quick/SKILL.md +26 -23
  36. package/.codex/skills/maestro-roadmap/SKILL.md +65 -73
  37. package/.codex/skills/maestro-spec-generate/SKILL.md +66 -74
  38. package/.codex/skills/maestro-ui-design/SKILL.md +34 -31
  39. package/.codex/skills/maestro-verify/SKILL.md +556 -566
  40. package/.codex/skills/manage-codebase-rebuild/SKILL.md +397 -405
  41. package/.codex/skills/manage-codebase-refresh/SKILL.md +93 -82
  42. package/.codex/skills/manage-harvest/SKILL.md +82 -0
  43. package/.codex/skills/manage-issue/SKILL.md +80 -65
  44. package/.codex/skills/manage-issue-discover/SKILL.md +491 -503
  45. package/.codex/skills/manage-learn/SKILL.md +190 -186
  46. package/.codex/skills/manage-memory/SKILL.md +95 -72
  47. package/.codex/skills/manage-memory-capture/SKILL.md +99 -86
  48. package/.codex/skills/manage-status/SKILL.md +102 -89
  49. package/.codex/skills/quality-business-test/SKILL.md +228 -223
  50. package/.codex/skills/quality-debug/SKILL.md +54 -66
  51. package/.codex/skills/quality-integration-test/SKILL.md +532 -544
  52. package/.codex/skills/quality-refactor/SKILL.md +197 -191
  53. package/.codex/skills/quality-retrospective/SKILL.md +512 -505
  54. package/.codex/skills/quality-review/SKILL.md +93 -105
  55. package/.codex/skills/quality-sync/SKILL.md +101 -89
  56. package/.codex/skills/quality-test/SKILL.md +202 -198
  57. package/.codex/skills/quality-test-gen/SKILL.md +93 -104
  58. package/.codex/skills/spec-add/SKILL.md +58 -39
  59. package/.codex/skills/spec-load/SKILL.md +45 -40
  60. package/.codex/skills/spec-map/SKILL.md +180 -182
  61. package/.codex/skills/spec-setup/SKILL.md +94 -76
  62. package/.codex/skills/team-coordinate/SKILL.md +346 -357
  63. package/.codex/skills/team-executor/SKILL.md +70 -112
  64. package/.codex/skills/team-lifecycle-v4/SKILL.md +311 -299
  65. package/.codex/skills/team-quality-assurance/SKILL.md +234 -227
  66. package/.codex/skills/team-review/SKILL.md +232 -225
  67. package/.codex/skills/team-tech-debt/SKILL.md +78 -100
  68. package/.codex/skills/team-testing/SKILL.md +242 -235
  69. package/.codex/skills/wiki-connect/SKILL.md +75 -0
  70. package/.codex/skills/wiki-digest/SKILL.md +87 -0
  71. package/README.md +7 -4
  72. package/README.zh-CN.md +7 -4
  73. package/dashboard/dist-server/dashboard/src/server/routes/specs.d.ts +1 -1
  74. package/dashboard/dist-server/dashboard/src/server/routes/specs.js +75 -30
  75. package/dashboard/dist-server/dashboard/src/server/routes/specs.js.map +1 -1
  76. package/dashboard/dist-server/dashboard/src/server/state/event-bus.d.ts +5 -0
  77. package/dashboard/dist-server/dashboard/src/server/state/event-bus.js +5 -0
  78. package/dashboard/dist-server/dashboard/src/server/state/event-bus.js.map +1 -1
  79. package/dashboard/dist-server/dashboard/src/shared/constants.js +5 -0
  80. package/dashboard/dist-server/dashboard/src/shared/constants.js.map +1 -1
  81. package/dashboard/dist-server/dashboard/src/shared/team-types.d.ts +21 -0
  82. package/dashboard/dist-server/dashboard/src/shared/team-types.js.map +1 -1
  83. package/dashboard/dist-server/dashboard/src/shared/types.d.ts +3 -2
  84. package/dashboard/dist-server/dashboard/src/shared/ws-protocol.d.ts +1 -1
  85. package/dashboard/dist-server/dashboard/src/shared/ws-protocol.js.map +1 -1
  86. package/dashboard/dist-server/src/hooks/constants.d.ts +2 -0
  87. package/dashboard/dist-server/src/hooks/constants.js +2 -0
  88. package/dashboard/dist-server/src/hooks/constants.js.map +1 -1
  89. package/dist/src/commands/collab.js +4 -4
  90. package/dist/src/commands/collab.js.map +1 -1
  91. package/dist/src/commands/hooks.d.ts.map +1 -1
  92. package/dist/src/commands/hooks.js +66 -1
  93. package/dist/src/commands/hooks.js.map +1 -1
  94. package/dist/src/commands/spec.d.ts.map +1 -1
  95. package/dist/src/commands/spec.js +7 -2
  96. package/dist/src/commands/spec.js.map +1 -1
  97. package/dist/src/hooks/constants.d.ts +2 -0
  98. package/dist/src/hooks/constants.d.ts.map +1 -1
  99. package/dist/src/hooks/constants.js +2 -0
  100. package/dist/src/hooks/constants.js.map +1 -1
  101. package/dist/src/hooks/guards/index.d.ts +1 -0
  102. package/dist/src/hooks/guards/index.d.ts.map +1 -1
  103. package/dist/src/hooks/guards/index.js +1 -0
  104. package/dist/src/hooks/guards/index.js.map +1 -1
  105. package/dist/src/hooks/guards/spec-validator.d.ts +25 -0
  106. package/dist/src/hooks/guards/spec-validator.d.ts.map +1 -0
  107. package/dist/src/hooks/guards/spec-validator.js +66 -0
  108. package/dist/src/hooks/guards/spec-validator.js.map +1 -0
  109. package/dist/src/hooks/keyword-spec-injector.d.ts +21 -0
  110. package/dist/src/hooks/keyword-spec-injector.d.ts.map +1 -0
  111. package/dist/src/hooks/keyword-spec-injector.js +96 -0
  112. package/dist/src/hooks/keyword-spec-injector.js.map +1 -0
  113. package/dist/src/hooks/plugins/spec-injection-plugin.d.ts +2 -1
  114. package/dist/src/hooks/plugins/spec-injection-plugin.d.ts.map +1 -1
  115. package/dist/src/hooks/plugins/spec-injection-plugin.js +21 -12
  116. package/dist/src/hooks/plugins/spec-injection-plugin.js.map +1 -1
  117. package/dist/src/hooks/spec-bridge.d.ts +40 -0
  118. package/dist/src/hooks/spec-bridge.d.ts.map +1 -0
  119. package/dist/src/hooks/spec-bridge.js +97 -0
  120. package/dist/src/hooks/spec-bridge.js.map +1 -0
  121. package/dist/src/hooks/spec-injector.d.ts.map +1 -1
  122. package/dist/src/hooks/spec-injector.js +18 -12
  123. package/dist/src/hooks/spec-injector.js.map +1 -1
  124. package/dist/src/team/phase-orchestrator.d.ts +52 -0
  125. package/dist/src/team/phase-orchestrator.d.ts.map +1 -0
  126. package/dist/src/team/phase-orchestrator.js +165 -0
  127. package/dist/src/team/phase-orchestrator.js.map +1 -0
  128. package/dist/src/team/phase-types.d.ts +51 -0
  129. package/dist/src/team/phase-types.d.ts.map +1 -0
  130. package/dist/src/team/phase-types.js +41 -0
  131. package/dist/src/team/phase-types.js.map +1 -0
  132. package/dist/src/tools/index.d.ts.map +1 -1
  133. package/dist/src/tools/index.js +6 -0
  134. package/dist/src/tools/index.js.map +1 -1
  135. package/dist/src/tools/spec-entry-parser.d.ts +56 -0
  136. package/dist/src/tools/spec-entry-parser.d.ts.map +1 -0
  137. package/dist/src/tools/spec-entry-parser.js +196 -0
  138. package/dist/src/tools/spec-entry-parser.js.map +1 -0
  139. package/dist/src/tools/spec-init.d.ts.map +1 -1
  140. package/dist/src/tools/spec-init.js +66 -92
  141. package/dist/src/tools/spec-init.js.map +1 -1
  142. package/dist/src/tools/spec-keyword-index.d.ts +30 -0
  143. package/dist/src/tools/spec-keyword-index.d.ts.map +1 -0
  144. package/dist/src/tools/spec-keyword-index.js +101 -0
  145. package/dist/src/tools/spec-keyword-index.js.map +1 -0
  146. package/dist/src/tools/spec-loader.d.ts +3 -3
  147. package/dist/src/tools/spec-loader.d.ts.map +1 -1
  148. package/dist/src/tools/spec-loader.js +49 -23
  149. package/dist/src/tools/spec-loader.js.map +1 -1
  150. package/dist/src/tools/team-agents.d.ts +27 -0
  151. package/dist/src/tools/team-agents.d.ts.map +1 -0
  152. package/dist/src/tools/team-agents.js +362 -0
  153. package/dist/src/tools/team-agents.js.map +1 -0
  154. package/dist/src/tools/team-mailbox.d.ts +40 -0
  155. package/dist/src/tools/team-mailbox.d.ts.map +1 -0
  156. package/dist/src/tools/team-mailbox.js +384 -0
  157. package/dist/src/tools/team-mailbox.js.map +1 -0
  158. package/dist/src/tools/team-msg.d.ts +17 -8
  159. package/dist/src/tools/team-msg.d.ts.map +1 -1
  160. package/dist/src/tools/team-msg.js +110 -13
  161. package/dist/src/tools/team-msg.js.map +1 -1
  162. package/dist/src/tools/team-tasks-mcp.d.ts +27 -0
  163. package/dist/src/tools/team-tasks-mcp.d.ts.map +1 -0
  164. package/dist/src/tools/team-tasks-mcp.js +408 -0
  165. package/dist/src/tools/team-tasks-mcp.js.map +1 -0
  166. package/package.json +2 -1
  167. package/workflows/analyze.md +816 -816
  168. package/workflows/brainstorm.md +471 -471
  169. package/workflows/codebase-rebuild.md +332 -332
  170. package/workflows/codebase-refresh.md +240 -240
  171. package/workflows/execute.md +1 -1
  172. package/workflows/harvest.md +420 -420
  173. package/workflows/integration-test.md +343 -343
  174. package/workflows/issue-discover.md +414 -414
  175. package/workflows/map.md +111 -111
  176. package/workflows/milestone-complete.md +176 -176
  177. package/workflows/plan.md +1 -1
  178. package/workflows/quick.md +497 -497
  179. package/workflows/refactor.md +300 -300
  180. package/workflows/roadmap.md +335 -335
  181. package/workflows/spec-generate.md +640 -640
  182. package/workflows/specs-add.md +46 -81
  183. package/workflows/specs-load.md +15 -17
  184. package/workflows/specs-setup.md +40 -161
@@ -0,0 +1,362 @@
1
+ /**
2
+ * Team Agents - MCP tools for agent lifecycle management via delegate broker
3
+ *
4
+ * Tools:
5
+ * - team_spawn_agent: Spawn a new agent (register session + create job)
6
+ * - team_shutdown_agent: Cancel a running agent's delegate job
7
+ * - team_remove_agent: Remove agent from team config
8
+ * - team_members: List team members with live status from broker
9
+ *
10
+ * Storage: .workflow/.team/{session-id}/members.json
11
+ *
12
+ * Integration:
13
+ * - Delegate broker for job lifecycle (registerSession, publishEvent, requestCancel)
14
+ * - Team config (members.json) for persistent member registry
15
+ */
16
+ import { z } from 'zod';
17
+ import { existsSync, mkdirSync, readFileSync, writeFileSync, } from 'node:fs';
18
+ import { join } from 'node:path';
19
+ import { getProjectRoot } from '../utils/path-validator.js';
20
+ import { createDefaultDelegateBroker } from '../async/delegate-broker.js';
21
+ // ---------------------------------------------------------------------------
22
+ // Path helpers
23
+ // ---------------------------------------------------------------------------
24
+ function getTeamDir(sessionId) {
25
+ const dir = join(getProjectRoot(), '.workflow', '.team', sessionId);
26
+ if (!existsSync(dir)) {
27
+ mkdirSync(dir, { recursive: true });
28
+ }
29
+ return dir;
30
+ }
31
+ function getMembersPath(sessionId) {
32
+ return join(getTeamDir(sessionId), 'members.json');
33
+ }
34
+ function readMembers(sessionId) {
35
+ const path = getMembersPath(sessionId);
36
+ if (!existsSync(path))
37
+ return [];
38
+ try {
39
+ const raw = readFileSync(path, 'utf-8');
40
+ const config = JSON.parse(raw);
41
+ return Array.isArray(config.members) ? config.members : [];
42
+ }
43
+ catch {
44
+ return [];
45
+ }
46
+ }
47
+ function writeMembers(sessionId, members) {
48
+ const path = getMembersPath(sessionId);
49
+ writeFileSync(path, JSON.stringify({ members }, null, 2), 'utf-8');
50
+ }
51
+ /** Derive a deterministic job ID from session + role. */
52
+ function deriveJobId(sessionId, role) {
53
+ return `${sessionId}-${role}`;
54
+ }
55
+ function nowISO() {
56
+ return new Date().toISOString();
57
+ }
58
+ // ---------------------------------------------------------------------------
59
+ // Broker helpers (lazy initialization)
60
+ // ---------------------------------------------------------------------------
61
+ function getBroker() {
62
+ return createDefaultDelegateBroker();
63
+ }
64
+ // ---------------------------------------------------------------------------
65
+ // Operations
66
+ // ---------------------------------------------------------------------------
67
+ function opSpawnAgent(params) {
68
+ const { session_id, role, prompt } = params;
69
+ const tool = params.tool || 'gemini';
70
+ // Ensure session is registered with broker
71
+ const broker = getBroker();
72
+ broker.registerSession({
73
+ sessionId: session_id,
74
+ metadata: { source: 'team-agents', role },
75
+ });
76
+ // Derive deterministic job ID
77
+ const jobId = deriveJobId(session_id, role);
78
+ // Create a 'queued' event to register the job with the broker
79
+ const event = broker.publishEvent({
80
+ jobId,
81
+ type: 'queued',
82
+ payload: {
83
+ summary: `Agent spawned: ${role}`,
84
+ prompt: prompt.substring(0, 200),
85
+ tool,
86
+ },
87
+ jobMetadata: {
88
+ role,
89
+ tool,
90
+ sessionId: session_id,
91
+ },
92
+ });
93
+ const execId = `agent-${event.eventId}`;
94
+ // Persist member entry
95
+ const members = readMembers(session_id);
96
+ const existing = members.find(m => m.role === role);
97
+ if (existing) {
98
+ return {
99
+ success: false,
100
+ error: `Agent with role "${role}" already exists in session ${session_id}`,
101
+ };
102
+ }
103
+ const member = {
104
+ role,
105
+ tool,
106
+ prompt,
107
+ job_id: jobId,
108
+ exec_id: execId,
109
+ spawned_at: nowISO(),
110
+ };
111
+ members.push(member);
112
+ writeMembers(session_id, members);
113
+ return {
114
+ success: true,
115
+ result: {
116
+ job_id: jobId,
117
+ exec_id: execId,
118
+ role,
119
+ tool,
120
+ },
121
+ };
122
+ }
123
+ function opShutdownAgent(params) {
124
+ const { session_id, role } = params;
125
+ const members = readMembers(session_id);
126
+ const member = members.find(m => m.role === role);
127
+ if (!member) {
128
+ return {
129
+ success: false,
130
+ error: `Agent with role "${role}" not found in session ${session_id}`,
131
+ };
132
+ }
133
+ const broker = getBroker();
134
+ const job = broker.getJob(member.job_id);
135
+ if (!job) {
136
+ return {
137
+ success: false,
138
+ error: `No delegate job found for ${role} (${member.job_id})`,
139
+ };
140
+ }
141
+ // Skip if already terminal or cancel already requested
142
+ const terminalStatuses = new Set(['completed', 'failed', 'cancelled']);
143
+ if (terminalStatuses.has(job.status)) {
144
+ return {
145
+ success: true,
146
+ result: {
147
+ job_id: member.job_id,
148
+ role,
149
+ status: job.status,
150
+ message: `Job ${member.job_id} is already ${job.status}`,
151
+ },
152
+ };
153
+ }
154
+ if (job.metadata?.cancelRequestedAt) {
155
+ return {
156
+ success: true,
157
+ result: {
158
+ job_id: member.job_id,
159
+ role,
160
+ status: job.status,
161
+ message: `Job ${member.job_id} already has a pending cancel request`,
162
+ },
163
+ };
164
+ }
165
+ broker.requestCancel({
166
+ jobId: member.job_id,
167
+ requestedBy: 'team-agents',
168
+ reason: `Shutdown requested for agent role: ${role}`,
169
+ });
170
+ return {
171
+ success: true,
172
+ result: {
173
+ job_id: member.job_id,
174
+ role,
175
+ status: 'cancelling',
176
+ message: `Shutdown requested for agent "${role}"`,
177
+ },
178
+ };
179
+ }
180
+ function opRemoveAgent(params) {
181
+ const { session_id, role } = params;
182
+ const members = readMembers(session_id);
183
+ const idx = members.findIndex(m => m.role === role);
184
+ if (idx === -1) {
185
+ return {
186
+ success: false,
187
+ error: `Agent with role "${role}" not found in session ${session_id}`,
188
+ };
189
+ }
190
+ const removed = members.splice(idx, 1)[0];
191
+ writeMembers(session_id, members);
192
+ return {
193
+ success: true,
194
+ result: {
195
+ role: removed.role,
196
+ job_id: removed.job_id,
197
+ message: `Removed agent "${role}" from session ${session_id}`,
198
+ },
199
+ };
200
+ }
201
+ function opMembers(params) {
202
+ const { session_id } = params;
203
+ const members = readMembers(session_id);
204
+ if (members.length === 0) {
205
+ return {
206
+ success: true,
207
+ result: {
208
+ members: [],
209
+ total: 0,
210
+ formatted: `No agents registered in session ${session_id}.`,
211
+ },
212
+ };
213
+ }
214
+ const broker = getBroker();
215
+ const terminalStatuses = new Set(['completed', 'failed', 'cancelled']);
216
+ const result = members.map(m => {
217
+ const job = broker.getJob(m.job_id);
218
+ let status = 'offline';
219
+ if (job) {
220
+ if (terminalStatuses.has(job.status)) {
221
+ status = 'idle';
222
+ }
223
+ else if (job.metadata?.cancelRequestedAt) {
224
+ // Cancel was requested but job not yet terminal
225
+ status = 'idle';
226
+ }
227
+ else if (job.status === 'running' || job.status === 'queued' || job.status === 'input_required') {
228
+ status = 'running';
229
+ }
230
+ }
231
+ return {
232
+ role: m.role,
233
+ status,
234
+ tool: m.tool,
235
+ job_id: m.job_id,
236
+ spawned_at: m.spawned_at,
237
+ };
238
+ });
239
+ const formatted = result.map(m => `${m.role.padEnd(16)} | status: ${m.status.padEnd(7)} | tool: ${m.tool} | job: ${m.job_id}`).join('\n');
240
+ return {
241
+ success: true,
242
+ result: {
243
+ members: result,
244
+ total: result.length,
245
+ formatted,
246
+ },
247
+ };
248
+ }
249
+ // ---------------------------------------------------------------------------
250
+ // Zod Schema
251
+ // ---------------------------------------------------------------------------
252
+ const ParamsSchema = z.object({
253
+ operation: z
254
+ .enum(['spawn_agent', 'shutdown_agent', 'remove_agent', 'members'])
255
+ .describe('Operation to perform'),
256
+ session_id: z.string().describe('Session ID for team namespace scoping'),
257
+ // spawn_agent params
258
+ role: z.string().optional().describe('[spawn/shutdown/remove] Agent role name'),
259
+ prompt: z.string().optional().describe('[spawn] Prompt/instructions for the agent'),
260
+ tool: z.string().optional().describe('[spawn] CLI tool to use (default: gemini)'),
261
+ });
262
+ // ---------------------------------------------------------------------------
263
+ // Tool Schema
264
+ // ---------------------------------------------------------------------------
265
+ export const schema = {
266
+ name: 'team_agent',
267
+ description: `Team agent lifecycle management - spawn, shutdown, remove agents via delegate broker.
268
+
269
+ **Storage Location:** .workflow/.team/{session_id}/members.json
270
+
271
+ **Operations & Required Parameters:**
272
+
273
+ * **spawn_agent**: Spawn a new agent in the team.
274
+ * **session_id** (string, **REQUIRED**): Session ID.
275
+ * **role** (string, **REQUIRED**): Unique role name for the agent.
276
+ * **prompt** (string, **REQUIRED**): Instructions for the agent.
277
+ * *tool* (string): CLI tool to use (default: "gemini").
278
+
279
+ * **shutdown_agent**: Cancel a running agent's delegate job.
280
+ * **session_id** (string, **REQUIRED**): Session ID.
281
+ * **role** (string, **REQUIRED**): Role name of the agent to shut down.
282
+
283
+ * **remove_agent**: Remove agent from team config.
284
+ * **session_id** (string, **REQUIRED**): Session ID.
285
+ * **role** (string, **REQUIRED**): Role name to remove.
286
+
287
+ * **members**: List team members with live status from broker.
288
+ * **session_id** (string, **REQUIRED**): Session ID.`,
289
+ inputSchema: {
290
+ type: 'object',
291
+ properties: {
292
+ operation: {
293
+ type: 'string',
294
+ enum: ['spawn_agent', 'shutdown_agent', 'remove_agent', 'members'],
295
+ description: 'Operation to perform',
296
+ },
297
+ session_id: {
298
+ type: 'string',
299
+ description: 'Session ID for team namespace scoping',
300
+ },
301
+ role: {
302
+ type: 'string',
303
+ description: '[spawn/shutdown/remove] Agent role name',
304
+ },
305
+ prompt: {
306
+ type: 'string',
307
+ description: '[spawn] Prompt/instructions for the agent',
308
+ },
309
+ tool: {
310
+ type: 'string',
311
+ description: '[spawn] CLI tool to use (default: "gemini")',
312
+ },
313
+ },
314
+ required: ['operation', 'session_id'],
315
+ },
316
+ };
317
+ // ---------------------------------------------------------------------------
318
+ // Handler
319
+ // ---------------------------------------------------------------------------
320
+ export async function handler(params) {
321
+ const parsed = ParamsSchema.safeParse(params);
322
+ if (!parsed.success) {
323
+ return { success: false, error: `Invalid params: ${parsed.error.message}` };
324
+ }
325
+ const p = parsed.data;
326
+ switch (p.operation) {
327
+ case 'spawn_agent': {
328
+ if (!p.role)
329
+ return { success: false, error: 'spawn_agent requires "role"' };
330
+ if (!p.prompt)
331
+ return { success: false, error: 'spawn_agent requires "prompt"' };
332
+ return opSpawnAgent({
333
+ session_id: p.session_id,
334
+ role: p.role,
335
+ prompt: p.prompt,
336
+ tool: p.tool,
337
+ });
338
+ }
339
+ case 'shutdown_agent': {
340
+ if (!p.role)
341
+ return { success: false, error: 'shutdown_agent requires "role"' };
342
+ return opShutdownAgent({
343
+ session_id: p.session_id,
344
+ role: p.role,
345
+ });
346
+ }
347
+ case 'remove_agent': {
348
+ if (!p.role)
349
+ return { success: false, error: 'remove_agent requires "role"' };
350
+ return opRemoveAgent({
351
+ session_id: p.session_id,
352
+ role: p.role,
353
+ });
354
+ }
355
+ case 'members': {
356
+ return opMembers({ session_id: p.session_id });
357
+ }
358
+ default:
359
+ return { success: false, error: `Unknown operation: ${p.operation}` };
360
+ }
361
+ }
362
+ //# sourceMappingURL=team-agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team-agents.js","sourceRoot":"","sources":["../../../src/tools/team-agents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Team Mailbox - MCP tools for agent-to-agent messaging with delivery tracking
3
+ *
4
+ * Tools:
5
+ * - team_send_message: Send a message to a team role (persists to JSONL + broker inject)
6
+ * - team_read_mailbox: Read unread messages for a role, mark as delivered
7
+ * - team_mailbox_status: Per-role unread/pending/delivered counts
8
+ *
9
+ * Storage: .workflow/.team/{session-id}/.msg/mailbox.jsonl
10
+ *
11
+ * Integration points for TASK-001 (team-msg dispatch upgrade):
12
+ * - opReadMailbox: reads messages addressed to a role
13
+ * - opGetMailboxStatus: aggregates per-role delivery counts
14
+ * - delivery_method field on opLog messages
15
+ */
16
+ import type { ToolSchema, CcwToolResult } from '../types/tool-schema.js';
17
+ export type DeliveryMethod = 'inject' | 'poll' | 'broadcast';
18
+ export type DeliveryStatus = 'pending' | 'notified' | 'delivered' | 'failed';
19
+ export interface MailboxMessage {
20
+ id: string;
21
+ ts: string;
22
+ from: string;
23
+ to: string;
24
+ type: string;
25
+ message: string;
26
+ delivery_method: DeliveryMethod;
27
+ delivery_status: DeliveryStatus;
28
+ delivered_at?: string;
29
+ data?: Record<string, unknown>;
30
+ }
31
+ export interface MailboxRoleStatus {
32
+ role: string;
33
+ pending: number;
34
+ notified: number;
35
+ delivered: number;
36
+ failed: number;
37
+ }
38
+ export declare const schema: ToolSchema;
39
+ export declare function handler(params: Record<string, unknown>): Promise<CcwToolResult>;
40
+ //# sourceMappingURL=team-mailbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team-mailbox.d.ts","sourceRoot":"","sources":["../../../src/tools/team-mailbox.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAQzE,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;AAC7D,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE7E,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,cAAc,CAAC;IAChC,eAAe,EAAE,cAAc,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAuQD,eAAO,MAAM,MAAM,EAAE,UA+EpB,CAAC;AAwBF,wBAAsB,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CA0CrF"}