@excitedjs/dreamux 0.12.1-beta.50 → 0.13.0-beta.52

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 (44) hide show
  1. package/dist/admin/methods.js +153 -0
  2. package/dist/admin/methods.js.map +1 -1
  3. package/dist/dispatcher/base-prompt.js +6 -4
  4. package/dist/dispatcher/base-prompt.js.map +1 -1
  5. package/dist/mcp/teammate-mcp.js +303 -2
  6. package/dist/mcp/teammate-mcp.js.map +1 -1
  7. package/dist/onboard/config-files.js +2 -1
  8. package/dist/onboard/config-files.js.map +1 -1
  9. package/dist/runtime/config.js +11 -0
  10. package/dist/runtime/config.js.map +1 -1
  11. package/dist/runtime/package-bin.js +32 -1
  12. package/dist/runtime/package-bin.js.map +1 -1
  13. package/dist/runtime/paths.js +60 -0
  14. package/dist/runtime/paths.js.map +1 -1
  15. package/dist/server.js +570 -14
  16. package/dist/server.js.map +1 -1
  17. package/dist/teammate/delivery.js +4 -0
  18. package/dist/teammate/delivery.js.map +1 -1
  19. package/dist/teammate/ledger.js +628 -91
  20. package/dist/teammate/ledger.js.map +1 -1
  21. package/dist/teammate/wait-broker.js +198 -0
  22. package/dist/teammate/wait-broker.js.map +1 -0
  23. package/dist/teammate/worker/catalog.js +44 -0
  24. package/dist/teammate/worker/catalog.js.map +1 -0
  25. package/dist/teammate/worker/claude-code-provider.js +263 -0
  26. package/dist/teammate/worker/claude-code-provider.js.map +1 -0
  27. package/dist/teammate/worker/codex-provider.js +313 -0
  28. package/dist/teammate/worker/codex-provider.js.map +1 -0
  29. package/dist/teammate/worker/confine.js +62 -0
  30. package/dist/teammate/worker/confine.js.map +1 -0
  31. package/dist/teammate/worker/fake-provider.js +135 -0
  32. package/dist/teammate/worker/fake-provider.js.map +1 -0
  33. package/dist/teammate/worker/index.js +7 -0
  34. package/dist/teammate/worker/index.js.map +1 -0
  35. package/dist/teammate/worker/types.js +17 -0
  36. package/dist/teammate/worker/types.js.map +1 -0
  37. package/dist/teammate/worker-execution.js +242 -0
  38. package/dist/teammate/worker-execution.js.map +1 -0
  39. package/dist/teammate/worker-logs.js +109 -0
  40. package/dist/teammate/worker-logs.js.map +1 -0
  41. package/package.json +1 -1
  42. package/skills/dispatcher/SKILL.md +66 -34
  43. package/skills/dispatcher/references/dispatch-task.md +6 -0
  44. package/skills/dispatcher/references/inspect-and-resume.md +6 -0
@@ -149,6 +149,148 @@ export const adminMethods = {
149
149
  throw new AdminError('TEAMMATE_COMPLETE_FAILED', parseMessage(err));
150
150
  }
151
151
  },
152
+ // Executable normal-path create-and-execute tool (issue #126). No worker is
153
+ // wired yet, so the task is created and the execution sub-result reports
154
+ // provider_unavailable.
155
+ 'mcp.teammate.run': async (server, params) => {
156
+ const id = mustDispatcherId(params);
157
+ mustExistingDispatcher(server, id);
158
+ const callerKind = mustCallerKind(params);
159
+ const title = mustString(params, 'title');
160
+ const prompt = mustString(params, 'prompt');
161
+ const targetPath = mustString(params, 'target_path');
162
+ const teammateId = optionalString(params, 'teammate_id');
163
+ const intent = optionalString(params, 'intent');
164
+ const targetMode = optionalString(params, 'target_mode');
165
+ const providerRef = optionalString(params, 'provider_ref');
166
+ const operationId = optionalString(params, 'operation_id');
167
+ try {
168
+ return await server.runTeamMateTaskFromMcp({
169
+ dispatcherId: id,
170
+ callerKind,
171
+ title,
172
+ prompt,
173
+ targetPath,
174
+ ...(teammateId !== null ? { teammateId } : {}),
175
+ ...(intent !== null ? { intent } : {}),
176
+ ...(targetMode !== null
177
+ ? { targetMode: targetMode }
178
+ : {}),
179
+ ...(providerRef !== null ? { providerRef } : {}),
180
+ ...(operationId !== null ? { operationId } : {}),
181
+ });
182
+ }
183
+ catch (err) {
184
+ if (err instanceof NestedTeamMateDispatchError) {
185
+ throw new AdminError('TEAMMATE_NESTED_DISPATCH_REJECTED', parseMessage(err));
186
+ }
187
+ throw new AdminError('TEAMMATE_RUN_FAILED', parseMessage(err));
188
+ }
189
+ },
190
+ 'mcp.teammate.execute': async (server, params) => {
191
+ const id = mustDispatcherId(params);
192
+ mustExistingDispatcher(server, id);
193
+ const taskId = mustString(params, 'task_id');
194
+ const providerRef = optionalString(params, 'provider_ref');
195
+ const targetMode = optionalString(params, 'target_mode');
196
+ const operationId = optionalString(params, 'operation_id');
197
+ try {
198
+ return await server.executeTeamMateTaskFromMcp({
199
+ dispatcherId: id,
200
+ taskId,
201
+ ...(providerRef !== null ? { providerRef } : {}),
202
+ ...(targetMode !== null
203
+ ? { targetMode: targetMode }
204
+ : {}),
205
+ ...(operationId !== null ? { operationId } : {}),
206
+ });
207
+ }
208
+ catch (err) {
209
+ throw new AdminError('TEAMMATE_EXECUTE_FAILED', parseMessage(err));
210
+ }
211
+ },
212
+ 'mcp.teammate.send_input': async (server, params) => {
213
+ const id = mustDispatcherId(params);
214
+ mustExistingDispatcher(server, id);
215
+ const taskId = mustString(params, 'task_id');
216
+ const prompt = mustString(params, 'prompt');
217
+ const mode = optionalString(params, 'mode');
218
+ const operationId = optionalString(params, 'operation_id');
219
+ try {
220
+ return await server.sendTeamMateInputFromMcp({
221
+ dispatcherId: id,
222
+ taskId,
223
+ prompt,
224
+ ...(mode !== null ? { mode: mode } : {}),
225
+ ...(operationId !== null ? { operationId } : {}),
226
+ });
227
+ }
228
+ catch (err) {
229
+ throw new AdminError('TEAMMATE_SEND_INPUT_FAILED', parseMessage(err));
230
+ }
231
+ },
232
+ // Bounded server-side wait; a timeout returns a structured still_running
233
+ // result, not an error (issue #126).
234
+ 'mcp.teammate.await': async (server, params) => {
235
+ const id = mustDispatcherId(params);
236
+ mustExistingDispatcher(server, id);
237
+ const taskId = mustString(params, 'task_id');
238
+ const afterEventId = optionalNumber(params, 'after_event_id');
239
+ const until = optionalStringArray(params, 'until');
240
+ const timeoutMs = optionalNumber(params, 'timeout_ms');
241
+ try {
242
+ return await server.awaitTeamMateCompletionFromMcp({
243
+ dispatcherId: id,
244
+ taskId,
245
+ ...(afterEventId !== null ? { afterEventId } : {}),
246
+ ...(until !== null ? { until } : {}),
247
+ ...(timeoutMs !== null ? { timeoutMs } : {}),
248
+ });
249
+ }
250
+ catch (err) {
251
+ throw new AdminError('TEAMMATE_AWAIT_FAILED', parseMessage(err));
252
+ }
253
+ },
254
+ 'mcp.teammate.cancel': async (server, params) => {
255
+ const id = mustDispatcherId(params);
256
+ mustExistingDispatcher(server, id);
257
+ const taskId = mustString(params, 'task_id');
258
+ const note = optionalString(params, 'note');
259
+ try {
260
+ return await server.cancelTeamMateTaskFromMcp({
261
+ dispatcherId: id,
262
+ taskId,
263
+ ...(note !== null ? { note } : {}),
264
+ });
265
+ }
266
+ catch (err) {
267
+ throw new AdminError('TEAMMATE_CANCEL_FAILED', parseMessage(err));
268
+ }
269
+ },
270
+ 'mcp.teammate.logs': async (server, params) => {
271
+ const id = mustDispatcherId(params);
272
+ mustExistingDispatcher(server, id);
273
+ const taskId = mustString(params, 'task_id');
274
+ const maxBytes = optionalNumber(params, 'max_bytes');
275
+ const stream = optionalString(params, 'stream');
276
+ if (stream !== null && stream !== 'stdout' && stream !== 'stderr') {
277
+ throw new AdminError('BAD_REQUEST', "param 'stream' must be 'stdout' or 'stderr'");
278
+ }
279
+ try {
280
+ return await server.getTeamMateTaskLogsFromMcp({
281
+ dispatcherId: id,
282
+ taskId,
283
+ ...(maxBytes !== null ? { maxBytes } : {}),
284
+ ...(stream !== null
285
+ ? { stream: stream }
286
+ : {}),
287
+ });
288
+ }
289
+ catch (err) {
290
+ throw new AdminError('TEAMMATE_LOGS_FAILED', parseMessage(err));
291
+ }
292
+ },
293
+ 'mcp.teammate.capabilities': (server) => server.getTeamMateCapabilitiesFromMcp(),
152
294
  'mcp.teammate.list': async (server, params) => {
153
295
  const id = mustDispatcherId(params);
154
296
  mustExistingDispatcher(server, id);
@@ -201,6 +343,17 @@ function optionalString(params, key) {
201
343
  }
202
344
  return v;
203
345
  }
346
+ function optionalNumber(params, key) {
347
+ if (params === undefined)
348
+ return null;
349
+ const v = params[key];
350
+ if (v === undefined || v === null)
351
+ return null;
352
+ if (typeof v !== 'number' || !Number.isFinite(v)) {
353
+ throw new AdminError('BAD_REQUEST', `param '${key}' must be a finite number`);
354
+ }
355
+ return v;
356
+ }
204
357
  function optionalStringArray(params, key) {
205
358
  if (params === undefined)
206
359
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"methods.js","sourceRoot":"","sources":["../../src/admin/methods.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"methods.js","sourceRoot":"","sources":["../../src/admin/methods.ts"],"names":[],"mappings":"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"}
@@ -22,10 +22,12 @@ export const DREAMUX_DISPATCHER_BASE_INSTRUCTIONS = [
22
22
  '',
23
23
  '# TeamMate Delegation',
24
24
  '',
25
- '- The server-hosted TeamMate MCP is the primary interface for scheduled repository work. Use its schedule tool to accept a task (it returns immediately with an accepted task id), and list_tasks, get_task, and pull_result to track status and retrieve results from the dispatcher-owned task ledger.',
26
- '- Phase 1 boundary: schedule records the task in the server ledger and returns an accepted task id; autonomous worker execution and completion delivery are runtime-specific follow-up and may not run a scheduled task to completion yet. Do not promise that a result will arrive on its own when the runtime cannot yet execute the scheduled task; track the ledger and use the tm fallback when you need an executed result now.',
27
- '- The persistent ledger is the source of truth for TeamMate results. When a task completes, any completion delivery into the dispatcher is a best-effort wake-up, not the reliable result contract; confirm and re-read results with get_task / pull_result rather than relying on a delivered notification arriving.',
28
- '- The tm CLI is the labeled fallback that actually runs a repo-local teammate to completion today, and the path for legacy diagnostics and repository-worktree workflows. Load and follow the dispatcher skill before tm operations; the skill is the operational manual for command shape, status checks, resume, wait, history, and failure reporting.',
25
+ '- The server-hosted TeamMate MCP is the primary interface for repository delegation, and it executes work for real. run_task creates a task and starts a worker against a confined local target in one call; execute_task starts or retries execution for an already-accepted task. The default builtin:codex worker runs the turn to completion; builtin:claude-code runs only when you pin it via provider_ref (single-turn, steer:false). schedule only records an accepted task id in the dispatcher-owned ledger without executing it — use it when you want to register work before running it, not to run a task.',
26
+ '- Track and collect over MCP without holding a shell session or polling a process: list_tasks for statuses, get_task for one task in full (result, history, delivery state), pull_result for a retained or latest result, and await_completion for a bounded server-side wait that returns a terminal state or, on timeout, a still_running snapshot you resume with after_event_id rather than an error. These cover the status, history, last, and poll needs directly.',
27
+ '- Control a running worker over MCP rather than shelling out. cancel_task stops a live worker, closes a not-yet-running or orphaned task, and is an idempotent no-op on an already-terminal task. get_task_logs returns a bounded tail of a worker\'s diagnostic logs (worker stderr, plus codex app-server stdout protocol frames) for inspecting a slow or failed worker — not the clean result, which still comes from get_task / pull_result / await_completion. get_capabilities lists each worker\'s advertised modes.',
28
+ '- The persistent ledger is the source of truth for TeamMate results. A completion delivered into the dispatcher is a best-effort wake-up, not the reliable result contract; confirm and re-read results with get_task / pull_result (or await_completion) rather than trusting that a pushed notification arrived. On an await_completion timeout, re-read the ledger still_running is a snapshot, not a verdict.',
29
+ '- send_input folds a follow-up into a live builtin:codex turn (mode steer); it is steering, not multi-turn continuation. On a single-turn worker (builtin:claude-code, steer:false) or a task with no live session, the input is recorded as queued, not re-executed — resume and multi-turn continuation stay deferred, so do not promise a queued input will run on its own.',
30
+ '- The tm CLI is the labeled fallback, not the default orchestration path. Reach for it only for what the MCP does not yet cover: resuming or recovering a dead teammate session, multi-turn continuation, and isolated repository worktrees (MCP workers run in place at the target, so managed-worktree isolation is a tm capability today). Load and follow the dispatcher skill before tm operations; that skill is the operational manual for command shape, status checks, resume, wait, history, and failure reporting.',
29
31
  '- Use the tm executable from the dispatcher environment PATH. Do not install a different tm, run npx, or call Dreamux admin APIs to create teammate state.',
30
32
  '- Respect explicit engine preferences from the user or operator. Do not invent or hard-code an engine choice when the user has steered to a different teammate engine.',
31
33
  '- Brief TeamMates with the goal, repository, branch, issue or PR anchor, hard constraints, expected deliverable shape, validation expectations, and source-channel context.',
@@ -1 +1 @@
1
- {"version":3,"file":"base-prompt.js","sourceRoot":"","sources":["../../src/dispatcher/base-prompt.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oCAAoC,GAAG;IAClD,iQAAiQ;IACjQ,EAAE;IACF,gBAAgB;IAChB,EAAE;IACF,0OAA0O;IAC1O,wIAAwI;IACxI,gRAAgR;IAChR,sLAAsL;IACtL,oKAAoK;IACpK,oOAAoO;IACpO,8VAA8V;IAC9V,EAAE;IACF,yBAAyB;IACzB,EAAE;IACF,8JAA8J;IAC9J,8NAA8N;IAC9N,qKAAqK;IACrK,sKAAsK;IACtK,yMAAyM;IACzM,6OAA6O;IAC7O,EAAE;IACF,uBAAuB;IACvB,EAAE;IACF,0SAA0S;IAC1S,uaAAua;IACva,uTAAuT;IACvT,0VAA0V;IAC1V,4JAA4J;IAC5J,wKAAwK;IACxK,6KAA6K;IAC7K,gJAAgJ;IAChJ,6GAA6G;IAC7G,oOAAoO;IACpO,iNAAiN;IACjN,EAAE;IACF,0BAA0B;IAC1B,EAAE;IACF,wOAAwO;IACxO,mPAAmP;IACnP,wMAAwM;IACxM,uJAAuJ;IACvJ,EAAE;IACF,mBAAmB;IACnB,EAAE;IACF,qLAAqL;IACrL,0GAA0G;IAC1G,yIAAyI;IACzI,qMAAqM;IACrM,uNAAuN;IACvN,yMAAyM;IACzM,0JAA0J;IAC1J,EAAE;IACF,iBAAiB;IACjB,EAAE;IACF,kRAAkR;IAClR,gMAAgM;IAChM,uHAAuH;IACvH,8HAA8H;IAC9H,kRAAkR;IAClR,EAAE;IACF,iBAAiB;IACjB,EAAE;IACF,gKAAgK;IAChK,kKAAkK;IAClK,8JAA8J;IAC9J,gPAAgP;IAChP,0KAA0K;IAC1K,+MAA+M;IAC/M,yMAAyM;IACzM,8MAA8M;IAC9M,iKAAiK;IACjK,oKAAoK;CACrK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"base-prompt.js","sourceRoot":"","sources":["../../src/dispatcher/base-prompt.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oCAAoC,GAAG;IAClD,iQAAiQ;IACjQ,EAAE;IACF,gBAAgB;IAChB,EAAE;IACF,0OAA0O;IAC1O,wIAAwI;IACxI,gRAAgR;IAChR,sLAAsL;IACtL,oKAAoK;IACpK,oOAAoO;IACpO,8VAA8V;IAC9V,EAAE;IACF,yBAAyB;IACzB,EAAE;IACF,8JAA8J;IAC9J,8NAA8N;IAC9N,qKAAqK;IACrK,sKAAsK;IACtK,yMAAyM;IACzM,6OAA6O;IAC7O,EAAE;IACF,uBAAuB;IACvB,EAAE;IACF,0lBAA0lB;IAC1lB,6cAA6c;IAC7c,8fAA8f;IAC9f,qZAAqZ;IACrZ,gXAAgX;IAChX,+fAA+f;IAC/f,4JAA4J;IAC5J,wKAAwK;IACxK,6KAA6K;IAC7K,gJAAgJ;IAChJ,6GAA6G;IAC7G,oOAAoO;IACpO,iNAAiN;IACjN,EAAE;IACF,0BAA0B;IAC1B,EAAE;IACF,wOAAwO;IACxO,mPAAmP;IACnP,wMAAwM;IACxM,uJAAuJ;IACvJ,EAAE;IACF,mBAAmB;IACnB,EAAE;IACF,qLAAqL;IACrL,0GAA0G;IAC1G,yIAAyI;IACzI,qMAAqM;IACrM,uNAAuN;IACvN,yMAAyM;IACzM,0JAA0J;IAC1J,EAAE;IACF,iBAAiB;IACjB,EAAE;IACF,kRAAkR;IAClR,gMAAgM;IAChM,uHAAuH;IACvH,8HAA8H;IAC9H,kRAAkR;IAClR,EAAE;IACF,iBAAiB;IACjB,EAAE;IACF,gKAAgK;IAChK,kKAAkK;IAClK,8JAA8J;IAC9J,gPAAgP;IAChP,0KAA0K;IAC1K,+MAA+M;IAC/M,yMAAyM;IACzM,8MAA8M;IAC9M,iKAAiK;IACjK,oKAAoK;CACrK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC"}
@@ -2,6 +2,7 @@ import { createInterface } from 'node:readline';
2
2
  import { AdminClientError, sendAdminRequest, } from '../admin/client.js';
3
3
  import { adminSocketPath as defaultAdminSocketPath } from '../runtime/paths.js';
4
4
  import { validateDispatcherId } from '../runtime/dispatcher-id.js';
5
+ import { clampWaitTimeout, TEAMMATE_WAIT_CLIENT_BUFFER_MS, } from '../teammate/wait-broker.js';
5
6
  const JSONRPC_VERSION = '2.0';
6
7
  const DEFAULT_MCP_PROTOCOL_VERSION = '2024-11-05';
7
8
  const SUPPORTED_MCP_PROTOCOL_VERSIONS = new Set([
@@ -118,6 +119,183 @@ function teammateTools() {
118
119
  required: ['title', 'prompt'],
119
120
  },
120
121
  },
122
+ {
123
+ name: 'run_task',
124
+ description: 'Create and execute a server-hosted TeamMate task in a local target. ' +
125
+ 'Returns once the task is created and a worker session is started; the ' +
126
+ 'execution sub-result reports running (then completed/failed via the ' +
127
+ 'ledger). The default Codex worker executes for real. If no worker is ' +
128
+ 'wired or the chosen provider is unavailable, the execution sub-result ' +
129
+ 'reports provider_unavailable (retryable) while the task is still ' +
130
+ 'created durably.',
131
+ inputSchema: {
132
+ type: 'object',
133
+ additionalProperties: false,
134
+ properties: {
135
+ title: { type: 'string', minLength: 1, maxLength: 200 },
136
+ prompt: { type: 'string', minLength: 1, maxLength: 20000 },
137
+ target: {
138
+ type: 'object',
139
+ additionalProperties: false,
140
+ description: 'Local execution target. path may be absolute or relative to ' +
141
+ 'the dispatcher directory; it is resolved and confined there.',
142
+ properties: {
143
+ kind: { type: 'string', enum: ['path'] },
144
+ path: { type: 'string', minLength: 1, maxLength: 4096 },
145
+ },
146
+ required: ['path'],
147
+ },
148
+ teammate_id: {
149
+ type: 'string',
150
+ description: 'Optional stable TeamMate id for cross-task identity.',
151
+ },
152
+ intent: { type: 'string', maxLength: 200 },
153
+ target_mode: {
154
+ type: 'string',
155
+ enum: ['managed_worktree', 'in_place'],
156
+ },
157
+ provider_ref: {
158
+ type: 'string',
159
+ description: 'Worker to execute on; defaults to builtin:codex. Pin ' +
160
+ 'builtin:claude-code to run on the Claude Code worker. Consult ' +
161
+ "get_capabilities for each worker's advertised modes " +
162
+ '(builtin:claude-code is single-turn, steer:false).',
163
+ },
164
+ operation_id: {
165
+ type: 'string',
166
+ description: 'Idempotency key; replaying returns the prior task.',
167
+ },
168
+ },
169
+ required: ['title', 'prompt', 'target'],
170
+ },
171
+ },
172
+ {
173
+ name: 'execute_task',
174
+ description: 'Start or retry execution for an accepted TeamMate task. Reports ' +
175
+ 'running once a worker session is live (the default Codex worker runs ' +
176
+ 'for real); a task with no worker wired or an unavailable provider ' +
177
+ 'reports provider_unavailable (retryable).',
178
+ inputSchema: {
179
+ type: 'object',
180
+ additionalProperties: false,
181
+ properties: {
182
+ task_id: { type: 'string' },
183
+ provider_ref: {
184
+ type: 'string',
185
+ description: 'Worker to execute on; defaults to builtin:codex. Pin ' +
186
+ 'builtin:claude-code to run on the Claude Code worker (see ' +
187
+ 'get_capabilities).',
188
+ },
189
+ target_mode: {
190
+ type: 'string',
191
+ enum: ['managed_worktree', 'in_place'],
192
+ },
193
+ operation_id: { type: 'string' },
194
+ },
195
+ required: ['task_id'],
196
+ },
197
+ },
198
+ {
199
+ name: 'send_input',
200
+ description: 'Send a follow-up input to a steerable TeamMate task session. Default ' +
201
+ 'mode is steer; queue and interrupt are explicit. On a worker that ' +
202
+ 'advertises steer (builtin:codex) it folds into the live turn and is ' +
203
+ 'submitted; on a single-turn worker (builtin:claude-code, steer:false) ' +
204
+ 'or with no live session the input is recorded as queued for a future ' +
205
+ 'worker. See get_capabilities.',
206
+ inputSchema: {
207
+ type: 'object',
208
+ additionalProperties: false,
209
+ properties: {
210
+ task_id: { type: 'string' },
211
+ prompt: { type: 'string', minLength: 1, maxLength: 20000 },
212
+ mode: { type: 'string', enum: ['steer', 'queue', 'interrupt'] },
213
+ operation_id: { type: 'string' },
214
+ },
215
+ required: ['task_id', 'prompt'],
216
+ },
217
+ },
218
+ {
219
+ name: 'await_completion',
220
+ description: 'Wait (bounded, server-side) for a TeamMate task to reach a terminal ' +
221
+ 'state without shell polling. A timeout returns status still_running ' +
222
+ 'with the latest snapshot — not an error; resume with after_event_id.',
223
+ inputSchema: {
224
+ type: 'object',
225
+ additionalProperties: false,
226
+ properties: {
227
+ task_id: { type: 'string' },
228
+ after_event_id: {
229
+ type: 'number',
230
+ description: 'Only resolve on an event newer than this id.',
231
+ },
232
+ until: {
233
+ type: 'array',
234
+ items: { type: 'string' },
235
+ description: 'States to wait for; defaults to completed/failed/cancelled.',
236
+ },
237
+ timeout_ms: { type: 'number' },
238
+ },
239
+ required: ['task_id'],
240
+ },
241
+ },
242
+ {
243
+ name: 'cancel_task',
244
+ description: 'Cancel a TeamMate task without shelling out to kill a worker process. ' +
245
+ 'A live worker is stopped and its resources reaped; a not-yet-running or ' +
246
+ 'orphaned task is closed in the ledger. An already-finished task is an ' +
247
+ 'idempotent no-op (status already_terminal). The task closes as ' +
248
+ 'cancelled; pass note for a short reason.',
249
+ inputSchema: {
250
+ type: 'object',
251
+ additionalProperties: false,
252
+ properties: {
253
+ task_id: { type: 'string' },
254
+ note: {
255
+ type: 'string',
256
+ maxLength: 2000,
257
+ description: 'Optional short reason recorded with the cancellation.',
258
+ },
259
+ },
260
+ required: ['task_id'],
261
+ },
262
+ },
263
+ {
264
+ name: 'get_task_logs',
265
+ description: 'Read a bounded tail of a TeamMate worker\'s diagnostic logs to inspect ' +
266
+ 'a slow or failed worker without tailing a file in a shell. Returns ' +
267
+ 'worker stderr (and, for builtin:codex, app-server stdout protocol ' +
268
+ 'frames) — NOT the clean result, which comes from get_task / ' +
269
+ 'pull_result / await_completion. Streams are empty until the worker has ' +
270
+ 'run.',
271
+ inputSchema: {
272
+ type: 'object',
273
+ additionalProperties: false,
274
+ properties: {
275
+ task_id: { type: 'string' },
276
+ max_bytes: {
277
+ type: 'number',
278
+ description: 'Bytes to return per stream (tail). Defaults to 16384; capped at ' +
279
+ '131072.',
280
+ },
281
+ stream: {
282
+ type: 'string',
283
+ enum: ['stdout', 'stderr'],
284
+ description: 'Restrict to one stream; default returns all available.',
285
+ },
286
+ },
287
+ required: ['task_id'],
288
+ },
289
+ },
290
+ {
291
+ name: 'get_capabilities',
292
+ description: 'List server and runtime TeamMate capabilities (read-only). Each ' +
293
+ 'provider reports whether worker execution is available and its modes; ' +
294
+ 'the builtin:codex (steer) and builtin:claude-code (single-turn, ' +
295
+ 'steer:false) workers are available by default, while a runtime without ' +
296
+ 'a worker (or an explicitly empty catalog) reports it unavailable.',
297
+ inputSchema: { type: 'object', additionalProperties: false, properties: {} },
298
+ },
121
299
  {
122
300
  name: 'list_tasks',
123
301
  description: 'List this dispatcher\'s TeamMate tasks and their statuses (no result bodies).',
@@ -162,6 +340,36 @@ async function callTool(params, ctx) {
162
340
  ...scheduleArgs(call.arguments),
163
341
  }, ctx.socketPath, 'schedule');
164
342
  }
343
+ if (call.name === 'run_task') {
344
+ return forwardToolCall('mcp.teammate.run', {
345
+ dispatcher_id: ctx.dispatcherId,
346
+ caller_kind: ctx.callerKind,
347
+ ...runArgs(call.arguments),
348
+ }, ctx.socketPath, 'run_task');
349
+ }
350
+ if (call.name === 'execute_task') {
351
+ return forwardToolCall('mcp.teammate.execute', { dispatcher_id: ctx.dispatcherId, ...executeArgs(call.arguments) }, ctx.socketPath, 'execute_task');
352
+ }
353
+ if (call.name === 'send_input') {
354
+ return forwardToolCall('mcp.teammate.send_input', { dispatcher_id: ctx.dispatcherId, ...sendInputArgs(call.arguments) }, ctx.socketPath, 'send_input');
355
+ }
356
+ if (call.name === 'await_completion') {
357
+ const args = awaitArgs(call.arguments);
358
+ // Hold the admin connection open longer than the bounded server wait so a
359
+ // timeout returns a structured still_running result rather than dying as a
360
+ // client transport timeout (issue #126).
361
+ const clientTimeoutMs = clampWaitTimeout(typeof args['timeout_ms'] === 'number' ? args['timeout_ms'] : undefined) + TEAMMATE_WAIT_CLIENT_BUFFER_MS;
362
+ return forwardToolCall('mcp.teammate.await', { dispatcher_id: ctx.dispatcherId, ...args }, ctx.socketPath, 'await_completion', clientTimeoutMs);
363
+ }
364
+ if (call.name === 'cancel_task') {
365
+ return forwardToolCall('mcp.teammate.cancel', { dispatcher_id: ctx.dispatcherId, ...cancelArgs(call.arguments) }, ctx.socketPath, 'cancel_task');
366
+ }
367
+ if (call.name === 'get_task_logs') {
368
+ return forwardToolCall('mcp.teammate.logs', { dispatcher_id: ctx.dispatcherId, ...logsArgs(call.arguments) }, ctx.socketPath, 'get_task_logs');
369
+ }
370
+ if (call.name === 'get_capabilities') {
371
+ return forwardToolCall('mcp.teammate.capabilities', { dispatcher_id: ctx.dispatcherId }, ctx.socketPath, 'get_capabilities');
372
+ }
165
373
  if (call.name === 'list_tasks') {
166
374
  return forwardToolCall('mcp.teammate.list', { dispatcher_id: ctx.dispatcherId }, ctx.socketPath, 'list_tasks');
167
375
  }
@@ -187,9 +395,12 @@ function negotiateProtocolVersion(params) {
187
395
  }
188
396
  return DEFAULT_MCP_PROTOCOL_VERSION;
189
397
  }
190
- async function forwardToolCall(method, params, socketPath, label) {
398
+ async function forwardToolCall(method, params, socketPath, label, timeoutMs) {
191
399
  try {
192
- const result = await sendAdminRequest(method, params, { socketPath });
400
+ const result = await sendAdminRequest(method, params, {
401
+ socketPath,
402
+ ...(timeoutMs !== undefined ? { timeoutMs } : {}),
403
+ });
193
404
  return {
194
405
  content: [{ type: 'text', text: `${label} forwarded to dreamux serve` }],
195
406
  structuredContent: result,
@@ -229,6 +440,96 @@ function pullArgs(value) {
229
440
  const taskId = optionalString(obj, 'task_id');
230
441
  return taskId !== null ? { task_id: taskId } : {};
231
442
  }
443
+ function runArgs(value) {
444
+ const obj = asRecord(value, 'run_task arguments');
445
+ const target = asRecord(obj['target'], 'run_task target');
446
+ const teammateId = optionalString(obj, 'teammate_id');
447
+ const intent = optionalString(obj, 'intent');
448
+ const targetMode = optionalString(obj, 'target_mode');
449
+ const providerRef = optionalString(obj, 'provider_ref');
450
+ const operationId = optionalString(obj, 'operation_id');
451
+ return {
452
+ title: requireString(obj, 'title'),
453
+ prompt: requireString(obj, 'prompt'),
454
+ target_path: requireString(target, 'path'),
455
+ ...(teammateId !== null ? { teammate_id: teammateId } : {}),
456
+ ...(intent !== null ? { intent } : {}),
457
+ ...(targetMode !== null ? { target_mode: targetMode } : {}),
458
+ ...(providerRef !== null ? { provider_ref: providerRef } : {}),
459
+ ...(operationId !== null ? { operation_id: operationId } : {}),
460
+ };
461
+ }
462
+ function executeArgs(value) {
463
+ const obj = asRecord(value, 'execute_task arguments');
464
+ const providerRef = optionalString(obj, 'provider_ref');
465
+ const targetMode = optionalString(obj, 'target_mode');
466
+ const operationId = optionalString(obj, 'operation_id');
467
+ return {
468
+ task_id: requireString(obj, 'task_id'),
469
+ ...(providerRef !== null ? { provider_ref: providerRef } : {}),
470
+ ...(targetMode !== null ? { target_mode: targetMode } : {}),
471
+ ...(operationId !== null ? { operation_id: operationId } : {}),
472
+ };
473
+ }
474
+ function sendInputArgs(value) {
475
+ const obj = asRecord(value, 'send_input arguments');
476
+ const mode = optionalString(obj, 'mode');
477
+ const operationId = optionalString(obj, 'operation_id');
478
+ return {
479
+ task_id: requireString(obj, 'task_id'),
480
+ prompt: requireString(obj, 'prompt'),
481
+ ...(mode !== null ? { mode } : {}),
482
+ ...(operationId !== null ? { operation_id: operationId } : {}),
483
+ };
484
+ }
485
+ function cancelArgs(value) {
486
+ const obj = asRecord(value, 'cancel_task arguments');
487
+ const note = optionalString(obj, 'note');
488
+ return {
489
+ task_id: requireString(obj, 'task_id'),
490
+ ...(note !== null ? { note } : {}),
491
+ };
492
+ }
493
+ function logsArgs(value) {
494
+ const obj = asRecord(value, 'get_task_logs arguments');
495
+ const maxBytes = optionalNumber(obj, 'max_bytes');
496
+ const stream = optionalString(obj, 'stream');
497
+ return {
498
+ task_id: requireString(obj, 'task_id'),
499
+ ...(maxBytes !== null ? { max_bytes: maxBytes } : {}),
500
+ ...(stream !== null ? { stream } : {}),
501
+ };
502
+ }
503
+ function awaitArgs(value) {
504
+ const obj = asRecord(value, 'await_completion arguments');
505
+ const afterEventId = optionalNumber(obj, 'after_event_id');
506
+ const until = optionalStringArray(obj, 'until');
507
+ const timeoutMs = optionalNumber(obj, 'timeout_ms');
508
+ return {
509
+ task_id: requireString(obj, 'task_id'),
510
+ ...(afterEventId !== null ? { after_event_id: afterEventId } : {}),
511
+ ...(until !== null ? { until } : {}),
512
+ ...(timeoutMs !== null ? { timeout_ms: timeoutMs } : {}),
513
+ };
514
+ }
515
+ function optionalNumber(obj, key) {
516
+ const value = obj[key];
517
+ if (value === undefined || value === null)
518
+ return null;
519
+ if (typeof value !== 'number' || !Number.isFinite(value)) {
520
+ throw new Error(`${key} must be a finite number`);
521
+ }
522
+ return value;
523
+ }
524
+ function optionalStringArray(obj, key) {
525
+ const value = obj[key];
526
+ if (value === undefined || value === null)
527
+ return null;
528
+ if (!Array.isArray(value) || value.some((item) => typeof item !== 'string')) {
529
+ throw new Error(`${key} must be an array of strings`);
530
+ }
531
+ return value;
532
+ }
232
533
  function asRecord(value, label) {
233
534
  if (value === null || typeof value !== 'object' || Array.isArray(value)) {
234
535
  throw new Error(`${label} must be an object`);