@adhd/agent-mcp 0.0.9 → 1.0.1

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 (105) hide show
  1. package/drizzle/0004_brief_shocker.sql +4 -0
  2. package/drizzle/0005_clear_lenny_balinger.sql +25 -0
  3. package/drizzle/meta/0004_snapshot.json +551 -0
  4. package/drizzle/meta/0005_snapshot.json +545 -0
  5. package/drizzle/meta/_journal.json +14 -0
  6. package/package.json +1 -1
  7. package/src/__tests__/integration/harness.d.ts +195 -0
  8. package/src/__tests__/integration/harness.d.ts.map +1 -0
  9. package/src/__tests__/integration/harness.js +401 -0
  10. package/src/__tests__/integration/harness.js.map +1 -0
  11. package/src/__tests__/integration/scripted-provider.d.ts +44 -0
  12. package/src/__tests__/integration/scripted-provider.d.ts.map +1 -0
  13. package/src/__tests__/integration/scripted-provider.js +82 -0
  14. package/src/__tests__/integration/scripted-provider.js.map +1 -0
  15. package/src/clients/http-client.d.ts +1 -1
  16. package/src/clients/http-client.d.ts.map +1 -1
  17. package/src/clients/http-client.js +4 -2
  18. package/src/clients/http-client.js.map +1 -1
  19. package/src/clients/in-process.d.ts +1 -1
  20. package/src/clients/in-process.d.ts.map +1 -1
  21. package/src/clients/in-process.js +6 -1
  22. package/src/clients/in-process.js.map +1 -1
  23. package/src/clients/registry.d.ts +17 -0
  24. package/src/clients/registry.d.ts.map +1 -1
  25. package/src/clients/registry.js +45 -6
  26. package/src/clients/registry.js.map +1 -1
  27. package/src/clients/stdio-client.d.ts +1 -1
  28. package/src/clients/stdio-client.d.ts.map +1 -1
  29. package/src/clients/stdio-client.js +9 -3
  30. package/src/clients/stdio-client.js.map +1 -1
  31. package/src/clients/tool-naming.d.ts +20 -0
  32. package/src/clients/tool-naming.d.ts.map +1 -0
  33. package/src/clients/tool-naming.js +22 -0
  34. package/src/clients/tool-naming.js.map +1 -0
  35. package/src/clients/types.d.ts +5 -1
  36. package/src/clients/types.d.ts.map +1 -1
  37. package/src/db/client.d.ts +1 -0
  38. package/src/db/client.d.ts.map +1 -1
  39. package/src/db/client.js +1 -1
  40. package/src/db/client.js.map +1 -1
  41. package/src/db/migrate-runner.d.ts +38 -0
  42. package/src/db/migrate-runner.d.ts.map +1 -0
  43. package/src/db/migrate-runner.js +41 -0
  44. package/src/db/migrate-runner.js.map +1 -0
  45. package/src/db/migrate.d.ts +3 -0
  46. package/src/db/migrate.d.ts.map +1 -1
  47. package/src/db/migrate.js +6 -5
  48. package/src/db/migrate.js.map +1 -1
  49. package/src/db/schema.d.ts +96 -3
  50. package/src/db/schema.d.ts.map +1 -1
  51. package/src/db/schema.js +16 -6
  52. package/src/db/schema.js.map +1 -1
  53. package/src/engine/dag-engine.d.ts +62 -0
  54. package/src/engine/dag-engine.d.ts.map +1 -0
  55. package/src/engine/dag-engine.js +158 -0
  56. package/src/engine/dag-engine.js.map +1 -0
  57. package/src/engine/orchestrator.d.ts +14 -0
  58. package/src/engine/orchestrator.d.ts.map +1 -1
  59. package/src/engine/orchestrator.js +206 -58
  60. package/src/engine/orchestrator.js.map +1 -1
  61. package/src/engine/queue.d.ts +6 -0
  62. package/src/engine/queue.d.ts.map +1 -1
  63. package/src/engine/queue.js +8 -0
  64. package/src/engine/queue.js.map +1 -1
  65. package/src/index.js +75 -0
  66. package/src/index.js.map +1 -1
  67. package/src/providers/anthropic.d.ts.map +1 -1
  68. package/src/providers/anthropic.js +22 -3
  69. package/src/providers/anthropic.js.map +1 -1
  70. package/src/server.d.ts +18 -0
  71. package/src/server.d.ts.map +1 -1
  72. package/src/server.js +25 -2
  73. package/src/server.js.map +1 -1
  74. package/src/store/task-store.d.ts +7 -1
  75. package/src/store/task-store.d.ts.map +1 -1
  76. package/src/store/task-store.js +37 -5
  77. package/src/store/task-store.js.map +1 -1
  78. package/src/streaming/event-bus.d.ts +28 -0
  79. package/src/streaming/event-bus.d.ts.map +1 -0
  80. package/src/streaming/event-bus.js +12 -0
  81. package/src/streaming/event-bus.js.map +1 -0
  82. package/src/streaming/sse-server.d.ts +16 -0
  83. package/src/streaming/sse-server.d.ts.map +1 -0
  84. package/src/streaming/sse-server.js +118 -0
  85. package/src/streaming/sse-server.js.map +1 -0
  86. package/src/tools/task.d.ts +35 -0
  87. package/src/tools/task.d.ts.map +1 -1
  88. package/src/tools/task.js +200 -36
  89. package/src/tools/task.js.map +1 -1
  90. package/src/validation/agent.d.ts +3 -0
  91. package/src/validation/agent.d.ts.map +1 -1
  92. package/src/validation/agent.js +7 -0
  93. package/src/validation/agent.js.map +1 -1
  94. package/src/validation/errors.d.ts +1 -0
  95. package/src/validation/errors.d.ts.map +1 -1
  96. package/src/validation/errors.js +1 -0
  97. package/src/validation/errors.js.map +1 -1
  98. package/src/validation/execution.d.ts +2 -0
  99. package/src/validation/execution.d.ts.map +1 -1
  100. package/src/validation/execution.js +5 -0
  101. package/src/validation/execution.js.map +1 -1
  102. package/src/validation/task.d.ts +31 -1
  103. package/src/validation/task.d.ts.map +1 -1
  104. package/src/validation/task.js +24 -1
  105. package/src/validation/task.js.map +1 -1
@@ -2,7 +2,57 @@ import { logger } from "../logger.js";
2
2
  import { ToolError } from "../validation/errors.js";
3
3
  import { generateId } from "../utils/ids.js";
4
4
  import { nowIso } from "../utils/timestamps.js";
5
+ import { emitTaskEvent } from "../streaming/event-bus.js";
5
6
  import { windowMessages } from "../store/session-store.js";
7
+ // ── HITL (Human-in-the-Loop) support ─────────────────────────────────────────
8
+ /** Built-in tool name intercepted before any MCP client dispatch. */
9
+ const HITL_TOOL_NAME = "request_human_input";
10
+ /**
11
+ * Tool definition advertised to the model when `allowHumanInput === true` on
12
+ * the agent and the task is non-ephemeral.
13
+ *
14
+ * Name encodes as `builtin__request_human_input`:
15
+ * - server = "builtin" (both OpenAI and Anthropic split on first "__")
16
+ * - tool = "request_human_input" ← matches HITL_TOOL_NAME
17
+ *
18
+ * The existing Phase-1 intercept (`tc.tool === HITL_TOOL_NAME`) catches it
19
+ * before Phase-2 dispatch, so it is never forwarded to any MCP client.
20
+ */
21
+ const HITL_BUILTIN_TOOL_DEFINITION = {
22
+ name: "builtin__request_human_input",
23
+ description: "Pause the task to ask the human operator a question. The task suspends " +
24
+ "until a human answers via task_resume. Use when you need human confirmation, " +
25
+ "a decision, or missing information you cannot obtain yourself.",
26
+ inputSchema: {
27
+ type: "object",
28
+ properties: {
29
+ prompt: {
30
+ type: "string",
31
+ description: "The question to ask the human.",
32
+ },
33
+ },
34
+ required: ["prompt"],
35
+ },
36
+ };
37
+ /**
38
+ * Module-scoped resolver map: taskId → resolver function.
39
+ * Populated when an orchestrator suspends awaiting human input.
40
+ * Entries are cleared when resolved or when the task is cancelled.
41
+ */
42
+ const hitlResolvers = new Map();
43
+ /**
44
+ * Resolve a suspended HITL task with the provided user input.
45
+ * Returns `true` if the resolver was found and called; `false` if the
46
+ * process restarted and the in-memory resolver no longer exists.
47
+ */
48
+ export function resolveHitl(taskId, userInput) {
49
+ const resolve = hitlResolvers.get(taskId);
50
+ if (!resolve)
51
+ return false;
52
+ hitlResolvers.delete(taskId);
53
+ resolve(userInput);
54
+ return true;
55
+ }
6
56
  /** No-op IHookRegistry used as a fallback when none is provided. */
7
57
  const noopHooks = {
8
58
  register: () => undefined,
@@ -10,13 +60,14 @@ const noopHooks = {
10
60
  };
11
61
  export class Orchestrator {
12
62
  async run(input) {
13
- const { executionContext, registry, provider, policy, taskStore, sessionStore, signal, taskId, hooks = noopHooks, } = input;
63
+ const { executionContext, registry, provider, policy, taskStore, sessionStore, signal, taskId, hooks = noopHooks, isEphemeral = false, } = input;
14
64
  // Working copy of messages — we append to this as the loop progresses
15
65
  const currentMessages = [...input.messages];
16
66
  const contextLimit = parseInt(process.env["AGENT_MCP_CONTEXT_LIMIT"] ?? "0", 10);
17
67
  try {
18
68
  // Mark task as running
19
69
  taskStore.updateStatus(taskId, "running");
70
+ emitTaskEvent({ type: "status_change", taskId, status: "running" });
20
71
  await hooks.emit("task:start", { executionContext, messages: currentMessages, rootTaskId: executionContext.rootTaskId });
21
72
  let finalContent = "";
22
73
  // Tool-use loop — break on "completed" stop reason, throw on cancellation/policy
@@ -33,6 +84,11 @@ export class Orchestrator {
33
84
  ]);
34
85
  // Gather available tools from the registry
35
86
  const tools = await registry.listAllTools();
87
+ // Append the built-in HITL tool when the agent opts in AND the
88
+ // task is durable (non-ephemeral has a DB row for the resume token).
89
+ if (executionContext.agentDefinition.allowHumanInput === true && !isEphemeral) {
90
+ tools.push(HITL_BUILTIN_TOOL_DEFINITION);
91
+ }
36
92
  // Emit MODEL_REQUEST event
37
93
  taskStore.appendEvent({
38
94
  taskId,
@@ -63,7 +119,7 @@ export class Orchestrator {
63
119
  executeTool: async (server, tool, args) => {
64
120
  const client = await registry.getClient(server);
65
121
  try {
66
- const result = await client.callTool(tool, args);
122
+ const result = await client.callTool(tool, args, composedSignal);
67
123
  return { result, isError: false };
68
124
  }
69
125
  catch (error) {
@@ -140,83 +196,149 @@ export class Orchestrator {
140
196
  }
141
197
  // Process tool calls
142
198
  const toolCalls = assistantMessage.toolCalls ?? [];
143
- for (const toolCall of toolCalls) {
144
- // Check for cancellation before each tool call
199
+ // Phase 1 — serial pre-dispatch loop (policy + count).
200
+ // Uses variable name `tc` to distinguish from the old sequential per-tool dispatch
201
+ // that has been replaced by Phase 2 (Promise.all concurrent execution below).
202
+ //
203
+ // HITL intercept: `request_human_input` is intercepted here (before Phase 2)
204
+ // and never reaches the MCP client. [inv:request-human-input-intercept]
205
+ const hitlResults = new Map(); // toolCall.id → userInput
206
+ for (const tc of toolCalls) {
145
207
  if (signal.aborted) {
146
208
  throw new ToolError("PROVIDER_ERROR", "Task was cancelled before tool call");
147
209
  }
148
- const qualifiedToolName = `${toolCall.server}__${toolCall.tool}`;
149
- // Emit pre:tool_call hook (observational in Phase 1)
210
+ // ── HITL intercept ──────────────────────────────────────
211
+ if (tc.tool === HITL_TOOL_NAME) {
212
+ // Ephemeral tasks have no session row — cannot persist resume_token
213
+ // (no DB row means task_resume cannot validate it and HITL cannot
214
+ // be resumed after a process restart). Reject via isEphemeral flag.
215
+ if (isEphemeral) {
216
+ throw new ToolError("VALIDATION_ERROR", "request_human_input is not supported for ephemeral tasks");
217
+ }
218
+ // 1. Generate a resumeToken
219
+ const resumeToken = crypto.randomUUID();
220
+ // 2. Persist suspension to DB BEFORE awaiting [inv:resume-token-db-persisted]
221
+ // This ordering ensures the token survives a process restart.
222
+ await taskStore.updateStatus(taskId, "awaiting_input", { resumeToken });
223
+ emitTaskEvent({ type: "status_change", taskId, status: "awaiting_input" });
224
+ // 3. Register resolver and await userInput.
225
+ // Wire into the AbortSignal so task_cancel unblocks this promise —
226
+ // without this, cancelling an awaiting_input task leaves the promise
227
+ // pending forever and the orchestrator's async context leaks.
228
+ let abortHandler;
229
+ const userInput = await new Promise((resolve, reject) => {
230
+ hitlResolvers.set(taskId, resolve);
231
+ abortHandler = () => {
232
+ hitlResolvers.delete(taskId);
233
+ reject(new ToolError("PROVIDER_ERROR", "Task cancelled while awaiting human input"));
234
+ };
235
+ signal.addEventListener("abort", abortHandler, { once: true });
236
+ }).finally(() => {
237
+ // Remove the abort listener once the promise settles so a
238
+ // later cancellation of this (now-resumed) task does not fire
239
+ // a stale handler / leak a listener on the long-lived signal.
240
+ if (abortHandler)
241
+ signal.removeEventListener("abort", abortHandler);
242
+ });
243
+ // 4. Mark running again
244
+ await taskStore.updateStatus(taskId, "running");
245
+ emitTaskEvent({ type: "status_change", taskId, status: "running" });
246
+ // 5. Store userInput to inject as tool result in Phase 3
247
+ hitlResults.set(tc.id, userInput);
248
+ // Return resume token to the caller via event log; continue to next tc
249
+ taskStore.appendEvent({
250
+ taskId,
251
+ type: "TOOL_CALL",
252
+ payload: { tool: HITL_TOOL_NAME, callId: tc.id, resumeToken },
253
+ });
254
+ continue;
255
+ }
256
+ // ── end HITL intercept ──────────────────────────────────
257
+ // Resolve the REAL {server,tool}: OpenAI-compatible/local models
258
+ // rewrite '-' → '_' in tool names, so the returned name may not
259
+ // match what we advertised. Resolving here keeps the qualified
260
+ // name correct for the policy delegation check (otherwise a
261
+ // mangled name would bypass the allowedAgents gate) and dispatch.
262
+ const resolved = registry.resolveToolName?.(`${tc.server}__${tc.tool}`) ??
263
+ { server: tc.server, tool: tc.tool };
264
+ const qualifiedToolName = `${resolved.server}__${resolved.tool}`;
150
265
  await hooks.emit("pre:tool_call", {
151
266
  executionContext,
152
267
  toolName: qualifiedToolName,
153
- callId: toolCall.id,
154
- toolInput: toolCall.arguments,
268
+ callId: tc.id,
269
+ toolInput: tc.arguments,
155
270
  });
156
- // Policy check before executing the tool
157
271
  policy.check({
158
272
  executionContext,
159
273
  targetTool: qualifiedToolName,
160
274
  targetAgentName: qualifiedToolName === "agent-mcp__agent"
161
- ? toolCall.arguments?.name
275
+ ? tc.arguments?.name
162
276
  : undefined,
163
277
  });
164
- // Emit TOOL_CALL event
278
+ // Increment AFTER policy.check — see [inv:toolCallCount-increment-after-check].
279
+ // policy.check enforces "allow while toolCallCount < max" (it expects the
280
+ // count of calls already accounted for), so incrementing BEFORE the check
281
+ // fired the cap one call early (effective max-1). Counting per tool here —
282
+ // still inside the serial pre-dispatch loop, not Phase 3 — keeps the limit
283
+ // enforced WITHIN a single concurrent batch: each tool's check sees the
284
+ // running count from prior tools in this same loop.
285
+ executionContext.toolCallCount++;
286
+ }
287
+ // Phase 2 — Promise.all concurrent execution.
288
+ // HITL calls are excluded (already handled in Phase 1 — their results
289
+ // are in hitlResults and will be injected in Phase 3).
290
+ const nonHitlToolCalls = toolCalls.filter(tc => tc.tool !== HITL_TOOL_NAME);
291
+ const toolResults = await Promise.all(nonHitlToolCalls.map(async (toolCall) => {
292
+ const resolved = registry.resolveToolName?.(`${toolCall.server}__${toolCall.tool}`) ??
293
+ { server: toolCall.server, tool: toolCall.tool };
294
+ const qualifiedToolName = `${resolved.server}__${resolved.tool}`;
295
+ // Emit tool_call SSE event before dispatch
296
+ emitTaskEvent({
297
+ type: "tool_call",
298
+ taskId,
299
+ toolName: qualifiedToolName,
300
+ toolCallId: toolCall.id,
301
+ input: toolCall.arguments,
302
+ });
165
303
  taskStore.appendEvent({
166
304
  taskId,
167
305
  type: "TOOL_CALL",
168
- payload: {
169
- tool: qualifiedToolName,
170
- callId: toolCall.id,
171
- },
306
+ payload: { tool: qualifiedToolName, callId: toolCall.id },
172
307
  });
173
- logger.info({
174
- taskId,
175
- agentName: executionContext.agentName,
176
- tool: qualifiedToolName,
177
- callId: toolCall.id,
178
- }, "TOOL_CALL");
308
+ logger.info({ taskId, agentName: executionContext.agentName, tool: qualifiedToolName, callId: toolCall.id }, "TOOL_CALL");
179
309
  let toolResult;
180
310
  let isError = false;
181
311
  try {
182
- const client = await registry.getClient(toolCall.server);
183
- toolResult = await client.callTool(toolCall.tool, toolCall.arguments);
312
+ const client = await registry.getClient(resolved.server);
313
+ // Thread the composed task-cancel/timeout signal so a
314
+ // cancel mid-batch interrupts this in-flight call
315
+ // instead of waiting for the whole batch (DEBT-003).
316
+ toolResult = await client.callTool(resolved.tool, toolCall.arguments, composedSignal);
184
317
  }
185
318
  catch (error) {
319
+ // Re-throw fatal ToolError codes — these abort the entire task, not just this call.
320
+ // See [inv:fatal-policy-codes] in _shared.md.
321
+ const FATAL_CODES = ["MAX_DEPTH_EXCEEDED", "MAX_TOOL_LOOPS_EXCEEDED", "DELEGATION_NOT_ALLOWED"];
322
+ if (error instanceof ToolError && FATAL_CODES.includes(error.code)) {
323
+ throw error;
324
+ }
186
325
  isError = true;
187
326
  toolResult = error instanceof Error ? error.message : String(error);
188
- logger.warn({
189
- taskId,
190
- tool: qualifiedToolName,
191
- error: toolResult,
192
- }, "TOOL_RESULT error");
193
- // Re-throw policy violations and cancellation — these are fatal
194
- if (error instanceof ToolError) {
195
- const fatalCodes = [
196
- "MAX_DEPTH_EXCEEDED",
197
- "MAX_TOOL_LOOPS_EXCEEDED",
198
- "DELEGATION_NOT_ALLOWED",
199
- ];
200
- if (fatalCodes.includes(error.code)) {
201
- throw error;
202
- }
203
- }
327
+ logger.warn({ taskId, tool: qualifiedToolName, error: toolResult }, "TOOL_RESULT error");
204
328
  }
205
- // Emit TOOL_RESULT event
206
329
  taskStore.appendEvent({
207
330
  taskId,
208
331
  type: "TOOL_RESULT",
209
- payload: {
210
- callId: toolCall.id,
211
- tool: qualifiedToolName,
212
- isError,
213
- },
332
+ payload: { callId: toolCall.id, tool: qualifiedToolName, isError },
214
333
  });
215
- logger.debug({
334
+ // Emit tool_result SSE event after result received
335
+ emitTaskEvent({
336
+ type: "tool_result",
216
337
  taskId,
217
- tool: qualifiedToolName,
218
- isError,
219
- }, "TOOL_RESULT");
338
+ toolCallId: toolCall.id,
339
+ content: toolResult,
340
+ });
341
+ logger.debug({ taskId, tool: qualifiedToolName, isError }, "TOOL_RESULT");
220
342
  await hooks.emit("post:tool_call", {
221
343
  executionContext,
222
344
  toolName: qualifiedToolName,
@@ -225,26 +347,40 @@ export class Orchestrator {
225
347
  result: toolResult,
226
348
  isError,
227
349
  });
228
- // Append tool result message
350
+ return { toolCall, toolResult, isError };
351
+ }));
352
+ // Phase 3 — serial result append (preserves order per [inv:message-order]).
353
+ // Build a lookup for non-HITL results; then iterate original toolCalls
354
+ // order so HITL and non-HITL results are interleaved correctly.
355
+ const toolResultByCallId = new Map(toolResults.map(r => [r.toolCall.id, r]));
356
+ for (const tc of toolCalls) {
357
+ let toolResult;
358
+ let isError = false;
359
+ if (hitlResults.has(tc.id)) {
360
+ // HITL tool: inject userInput as the result
361
+ toolResult = hitlResults.get(tc.id);
362
+ }
363
+ else {
364
+ const r = toolResultByCallId.get(tc.id);
365
+ if (!r)
366
+ continue; // should not happen
367
+ toolResult = r.toolResult;
368
+ isError = r.isError;
369
+ }
229
370
  const toolResultMessage = {
230
371
  id: generateId(),
231
372
  sessionId: executionContext.sessionId,
232
373
  role: "tool",
233
- toolResults: [
234
- {
235
- toolCallId: toolCall.id,
374
+ toolResults: [{
375
+ toolCallId: tc.id, // [inv:call-id-keying]
236
376
  result: toolResult,
237
377
  isError,
238
- },
239
- ],
378
+ }],
240
379
  createdAt: nowIso(),
241
380
  };
242
381
  await sessionStore.appendMessage(executionContext.sessionId, toolResultMessage);
243
382
  currentMessages.push(toolResultMessage);
244
383
  await hooks.emit("message:appended", { executionContext, message: toolResultMessage });
245
- // Increment toolCallCount AFTER the result is appended
246
- // so the next policy check sees the updated value
247
- executionContext.toolCallCount++;
248
384
  }
249
385
  // Guard: provider signalled tool_calls but sent no tool call blocks —
250
386
  // prevents infinite spin on a malformed response.
@@ -259,6 +395,7 @@ export class Orchestrator {
259
395
  result: finalContent,
260
396
  completedAt: nowIso(),
261
397
  });
398
+ emitTaskEvent({ type: "status_change", taskId, status: "completed" });
262
399
  taskStore.appendEvent({
263
400
  taskId,
264
401
  type: "TASK_COMPLETED",
@@ -266,6 +403,8 @@ export class Orchestrator {
266
403
  });
267
404
  logger.info({ taskId, agentName: executionContext.agentName }, "TASK_COMPLETED");
268
405
  await hooks.emit("task:completed", { executionContext, result: finalContent });
406
+ // Emit done on the successful completion path
407
+ emitTaskEvent({ type: "done", taskId, result: finalContent, error: null });
269
408
  return { result: finalContent };
270
409
  }
271
410
  catch (error) {
@@ -277,19 +416,26 @@ export class Orchestrator {
277
416
  try {
278
417
  taskStore.updateStatus(taskId, "cancelled", {
279
418
  cancelledAt: nowIso(),
419
+ // Persist the reason so a later SSE terminal-on-connect read
420
+ // surfaces it instead of error:null (matches the live-bus done).
421
+ error: "Task was cancelled",
280
422
  });
281
423
  }
282
424
  catch {
283
425
  // already cancelled — ignore
284
426
  }
427
+ emitTaskEvent({ type: "status_change", taskId, status: "cancelled" });
285
428
  taskStore.appendEvent({ taskId, type: "TASK_CANCELLED" });
286
429
  await hooks.emit("task:cancelled", { executionContext });
430
+ // Emit done on the cancellation path — SSE clients must not hang
431
+ emitTaskEvent({ type: "done", taskId, result: null, error: "Task was cancelled" });
287
432
  }
288
433
  else {
289
434
  const errorMessage = error instanceof Error ? error.message : String(error);
290
435
  taskStore.updateStatus(taskId, "failed", {
291
436
  error: errorMessage,
292
437
  });
438
+ emitTaskEvent({ type: "status_change", taskId, status: "failed" });
293
439
  taskStore.appendEvent({
294
440
  taskId,
295
441
  type: "TASK_FAILED",
@@ -297,6 +443,8 @@ export class Orchestrator {
297
443
  });
298
444
  logger.error({ taskId, agentName: executionContext.agentName, error }, "TASK_FAILED");
299
445
  await hooks.emit("task:failed", { executionContext, error: errorMessage });
446
+ // Emit done on the failure path
447
+ emitTaskEvent({ type: "done", taskId, result: null, error: errorMessage });
300
448
  }
301
449
  throw error;
302
450
  }
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/engine/orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/engine/orchestrator.ts"],"names":[],"mappings":"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"}
@@ -19,5 +19,11 @@ export declare class BackgroundQueue {
19
19
  enqueue(taskId: string, runFn: BackgroundTaskFn): void;
20
20
  get pending(): number;
21
21
  get size(): number;
22
+ /**
23
+ * Returns a Promise that resolves when the queue has drained to idle
24
+ * (all currently enqueued and running tasks have finished).
25
+ * Delegates to p-queue's own `onIdle()`.
26
+ */
27
+ onIdle(): Promise<void>;
22
28
  }
23
29
  //# sourceMappingURL=queue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/engine/queue.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnD;;;;;;GAMG;AACH,qBAAa,eAAe;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;gBAEnB,WAAW,CAAC,EAAE,MAAM;IAQhC;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAetD,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;CACJ"}
1
+ {"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/engine/queue.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnD;;;;;;GAMG;AACH,qBAAa,eAAe;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;gBAEnB,WAAW,CAAC,EAAE,MAAM;IAQhC;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAetD,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;;OAIG;IACH,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAG1B"}
@@ -41,5 +41,13 @@ export class BackgroundQueue {
41
41
  get size() {
42
42
  return this.queue.size;
43
43
  }
44
+ /**
45
+ * Returns a Promise that resolves when the queue has drained to idle
46
+ * (all currently enqueued and running tasks have finished).
47
+ * Delegates to p-queue's own `onIdle()`.
48
+ */
49
+ onIdle() {
50
+ return this.queue.onIdle();
51
+ }
44
52
  }
45
53
  //# sourceMappingURL=queue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/engine/queue.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,SAAS,CAAC;AAE7B,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAItC;;;;;;GAMG;AACH,MAAM,OAAO,eAAe;IACP,KAAK,CAAS;IAE/B,YAAY,WAAoB;QAC5B,MAAM,mBAAmB,GACrB,WAAW;YACX,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;QAE1D,IAAI,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC,CAAC;IAClE,CAAC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,MAAc,EAAE,KAAuB;QAC3C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;YACtB,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,0BAA0B,CAAC,CAAC;YACrD,IAAI,CAAC;gBACD,MAAM,KAAK,EAAE,CAAC;YAClB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,gEAAgE;gBAChE,yEAAyE;gBACzE,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,wBAAwB,CAAC,CAAC;YAC9D,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,0BAA0B,CAAC,CAAC;IAC7G,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IAC9B,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAC3B,CAAC;CACJ"}
1
+ {"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/engine/queue.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,SAAS,CAAC;AAE7B,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAItC;;;;;;GAMG;AACH,MAAM,OAAO,eAAe;IACP,KAAK,CAAS;IAE/B,YAAY,WAAoB;QAC5B,MAAM,mBAAmB,GACrB,WAAW;YACX,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;QAE1D,IAAI,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC,CAAC;IAClE,CAAC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,MAAc,EAAE,KAAuB;QAC3C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;YACtB,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,0BAA0B,CAAC,CAAC;YACrD,IAAI,CAAC;gBACD,MAAM,KAAK,EAAE,CAAC;YAClB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,gEAAgE;gBAChE,yEAAyE;gBACzE,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,wBAAwB,CAAC,CAAC;YAC9D,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,0BAA0B,CAAC,CAAC;IAC7G,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IAC9B,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACH,MAAM;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IAC/B,CAAC;CACJ"}
package/src/index.js CHANGED
@@ -7,11 +7,17 @@ import { runMigrations } from "./db/migrate.js";
7
7
  import { logger } from "./logger.js";
8
8
  import { AgentStore, SessionStore, TaskStore } from "./store/index.js";
9
9
  import { BackgroundQueue } from "./engine/queue.js";
10
+ import { DagEngine } from "./engine/dag-engine.js";
10
11
  import { Orchestrator } from "./engine/orchestrator.js";
11
12
  import { HookRegistry } from "./engine/hooks.js";
12
13
  import { PolicyEngine } from "./engine/policy.js";
13
14
  import { UsagePlugin } from "./plugins/index.js";
14
15
  import { startServer } from "./server.js";
16
+ import { startSseServer } from "./streaming/sse-server.js";
17
+ import { enqueueExistingTask } from "./tools/task.js";
18
+ import { tasksTable } from "./db/schema.js";
19
+ import { eq } from "drizzle-orm";
20
+ import { ToolError } from "./validation/errors.js";
15
21
  async function main() {
16
22
  // Run DB migrations synchronously before advertising tools
17
23
  runMigrations();
@@ -39,6 +45,26 @@ async function main() {
39
45
  .map(s => s.trim())
40
46
  .filter(Boolean),
41
47
  });
48
+ // Build DagEngine with an injected dispatchFn closure.
49
+ //
50
+ // The closure avoids a circular import between dag-engine.ts and tools/task.ts:
51
+ // DagEngine dispatches waiting→pending tasks by calling dispatchFn(taskId) rather
52
+ // than importing enqueueExistingTask directly. The closure captures `taskDeps`
53
+ // which is populated after startServer resolves (below).
54
+ //
55
+ // dispatchFn is only invoked when DagEngine.dispatchReady() finds a ready task,
56
+ // which always happens AFTER server startup, so `taskDeps` is guaranteed to be
57
+ // set by the time the closure executes.
58
+ let taskDeps;
59
+ const dispatchFn = async (taskId) => {
60
+ if (!taskDeps) {
61
+ throw new Error(`DagEngine.dispatchFn called before server initialised (taskId=${taskId})`);
62
+ }
63
+ await enqueueExistingTask(taskId, taskDeps);
64
+ };
65
+ const dagEngine = new DagEngine(dbAny, queue, taskStore, dispatchFn);
66
+ // Start SSE server alongside MCP server — shares taskStore for terminal-on-connect checks.
67
+ const sseServer = startSseServer(taskStore);
42
68
  const { close } = await startServer({
43
69
  agentStore,
44
70
  sessionStore,
@@ -48,10 +74,59 @@ async function main() {
48
74
  policy,
49
75
  hooks,
50
76
  db: dbAny,
77
+ dagEngine,
51
78
  });
79
+ // Startup re-enqueue scan: recover tasks that were transitioned to "pending"
80
+ // by DagEngine.dispatchReady() but lost their queue slot due to a process
81
+ // crash between the DB UPDATE and queue.enqueue(). Safe to run every startup
82
+ // because the queue is idempotent — already-running tasks are just re-queued.
83
+ //
84
+ // taskDeps must be set before the orphan scan so dispatchFn can call
85
+ // enqueueExistingTask.
86
+ //
87
+ // NOTE: inProcessDescriptors and inProcessHandler are not available here
88
+ // (they are local to server.ts). Dag-dispatched tasks do NOT support
89
+ // in-process recursive calls at the dispatch level — they can use in-process
90
+ // tools once running via the normal orchestrator path through server.ts.
91
+ // Pass empty stubs: the orchestrator builds its own registry per task.
92
+ taskDeps = {
93
+ agentStore,
94
+ sessionStore,
95
+ taskStore,
96
+ orchestrator,
97
+ queue,
98
+ policy,
99
+ hooks,
100
+ selfUrl: undefined,
101
+ inProcessDescriptors: [],
102
+ inProcessHandler: async () => {
103
+ throw new ToolError("VALIDATION_ERROR", "in-process tools unavailable during dag dispatch");
104
+ },
105
+ db: dbAny,
106
+ dagEngine,
107
+ };
108
+ const orphanedPending = dbAny
109
+ .select()
110
+ .from(tasksTable)
111
+ .where(eq(tasksTable.status, "pending"))
112
+ .all();
113
+ if (orphanedPending.length > 0) {
114
+ logger.info({ count: orphanedPending.length }, "Re-enqueueing orphaned pending tasks");
115
+ for (const row of orphanedPending) {
116
+ try {
117
+ await enqueueExistingTask(row.id, taskDeps);
118
+ }
119
+ catch (err) {
120
+ logger.warn({ taskId: row.id, err }, "Failed to re-enqueue orphaned task");
121
+ }
122
+ }
123
+ }
52
124
  const shutdown = async (signal) => {
53
125
  logger.info({ signal }, "Server shutdown");
54
126
  await close();
127
+ // Await SSE drain before exiting — close() is callback-based, so calling
128
+ // process.exit on the next line would race the drain.
129
+ await new Promise(resolve => sseServer.close(() => resolve()));
55
130
  process.exit(0);
56
131
  };
57
132
  process.on("SIGTERM", () => void shutdown("SIGTERM"));
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/ai/agent-mcp/src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/ai/agent-mcp/src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/providers/anthropic.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAqB,MAAM,wBAAwB,CAAC;AAIhF,OAAO,KAAK,EACR,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EAEvB,MAAM,YAAY,CAAC;AAsPpB,qBAAa,iBAAkB,YAAW,WAAW;IACjD,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiD;IACxE,2EAA2E;IAC3E,OAAO,CAAC,iBAAiB,CAAS;gBAEtB,MAAM,EAAE,OAAO,CAAC,cAAc,EAAE;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,CAAC;IAmC5D,IAAI,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CA8I1E"}
1
+ {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/providers/anthropic.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAqB,MAAM,wBAAwB,CAAC;AAIhF,OAAO,KAAK,EACR,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EAEvB,MAAM,YAAY,CAAC;AA+PpB,qBAAa,iBAAkB,YAAW,WAAW;IACjD,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiD;IACxE,2EAA2E;IAC3E,OAAO,CAAC,iBAAiB,CAAS;gBAEtB,MAAM,EAAE,OAAO,CAAC,cAAc,EAAE;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,CAAC;IAmC5D,IAAI,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAwJ1E"}