@adhd/agent-mcp 0.0.9 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) 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 +396 -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/registry.d.ts +17 -0
  16. package/src/clients/registry.d.ts.map +1 -1
  17. package/src/clients/registry.js +45 -6
  18. package/src/clients/registry.js.map +1 -1
  19. package/src/clients/tool-naming.d.ts +20 -0
  20. package/src/clients/tool-naming.d.ts.map +1 -0
  21. package/src/clients/tool-naming.js +22 -0
  22. package/src/clients/tool-naming.js.map +1 -0
  23. package/src/db/client.d.ts +1 -0
  24. package/src/db/client.d.ts.map +1 -1
  25. package/src/db/client.js +1 -1
  26. package/src/db/client.js.map +1 -1
  27. package/src/db/migrate-runner.d.ts +38 -0
  28. package/src/db/migrate-runner.d.ts.map +1 -0
  29. package/src/db/migrate-runner.js +41 -0
  30. package/src/db/migrate-runner.js.map +1 -0
  31. package/src/db/migrate.d.ts +3 -0
  32. package/src/db/migrate.d.ts.map +1 -1
  33. package/src/db/migrate.js +6 -5
  34. package/src/db/migrate.js.map +1 -1
  35. package/src/db/schema.d.ts +96 -3
  36. package/src/db/schema.d.ts.map +1 -1
  37. package/src/db/schema.js +16 -6
  38. package/src/db/schema.js.map +1 -1
  39. package/src/engine/dag-engine.d.ts +62 -0
  40. package/src/engine/dag-engine.d.ts.map +1 -0
  41. package/src/engine/dag-engine.js +158 -0
  42. package/src/engine/dag-engine.js.map +1 -0
  43. package/src/engine/orchestrator.d.ts +14 -0
  44. package/src/engine/orchestrator.d.ts.map +1 -1
  45. package/src/engine/orchestrator.js +202 -57
  46. package/src/engine/orchestrator.js.map +1 -1
  47. package/src/engine/queue.d.ts +6 -0
  48. package/src/engine/queue.d.ts.map +1 -1
  49. package/src/engine/queue.js +8 -0
  50. package/src/engine/queue.js.map +1 -1
  51. package/src/index.js +75 -0
  52. package/src/index.js.map +1 -1
  53. package/src/providers/anthropic.d.ts.map +1 -1
  54. package/src/providers/anthropic.js +22 -3
  55. package/src/providers/anthropic.js.map +1 -1
  56. package/src/server.d.ts +18 -0
  57. package/src/server.d.ts.map +1 -1
  58. package/src/server.js +25 -2
  59. package/src/server.js.map +1 -1
  60. package/src/store/task-store.d.ts +7 -1
  61. package/src/store/task-store.d.ts.map +1 -1
  62. package/src/store/task-store.js +37 -5
  63. package/src/store/task-store.js.map +1 -1
  64. package/src/streaming/event-bus.d.ts +28 -0
  65. package/src/streaming/event-bus.d.ts.map +1 -0
  66. package/src/streaming/event-bus.js +12 -0
  67. package/src/streaming/event-bus.js.map +1 -0
  68. package/src/streaming/sse-server.d.ts +4 -0
  69. package/src/streaming/sse-server.d.ts.map +1 -0
  70. package/src/streaming/sse-server.js +95 -0
  71. package/src/streaming/sse-server.js.map +1 -0
  72. package/src/tools/task.d.ts +35 -0
  73. package/src/tools/task.d.ts.map +1 -1
  74. package/src/tools/task.js +200 -36
  75. package/src/tools/task.js.map +1 -1
  76. package/src/validation/agent.d.ts +3 -0
  77. package/src/validation/agent.d.ts.map +1 -1
  78. package/src/validation/agent.js +7 -0
  79. package/src/validation/agent.js.map +1 -1
  80. package/src/validation/errors.d.ts +1 -0
  81. package/src/validation/errors.d.ts.map +1 -1
  82. package/src/validation/errors.js +1 -0
  83. package/src/validation/errors.js.map +1 -1
  84. package/src/validation/execution.d.ts +2 -0
  85. package/src/validation/execution.d.ts.map +1 -1
  86. package/src/validation/execution.js +5 -0
  87. package/src/validation/execution.js.map +1 -1
  88. package/src/validation/task.d.ts +31 -1
  89. package/src/validation/task.d.ts.map +1 -1
  90. package/src/validation/task.js +24 -1
  91. package/src/validation/task.js.map +1 -1
@@ -1,4 +1,5 @@
1
1
  import type { BackgroundQueue } from "../engine/queue.js";
2
+ import type { DagEngine } from "../engine/dag-engine.js";
2
3
  import type { Orchestrator } from "../engine/orchestrator.js";
3
4
  import type { PolicyEngine } from "../engine/policy.js";
4
5
  import type { InProcessToolDescriptor, InProcessToolHandler } from "../clients/in-process.js";
@@ -24,6 +25,11 @@ export interface TaskDeps {
24
25
  * task's token-usage rollup (direct + subtree). See [dod.2].
25
26
  */
26
27
  db: Database;
28
+ /**
29
+ * DagEngine — manages dependency cycle detection and fan-in dispatch.
30
+ * Injected at server startup (index.ts) to avoid circular imports.
31
+ */
32
+ dagEngine: DagEngine;
27
33
  }
28
34
  /**
29
35
  * `task` tool — runs a prompt against a session's agent (session mode) or runs a
@@ -41,10 +47,39 @@ export interface TaskDeps {
41
47
  * 9. Run orchestrator (background or sync)
42
48
  */
43
49
  export declare function taskTool(input: TaskToolInput, deps: TaskDeps, callerContext?: ExecutionContext): Promise<TaskToolOutput>;
50
+ /**
51
+ * Re-enqueue an existing task row that is already in "pending" status.
52
+ *
53
+ * Called by DagEngine.dispatchFn (built in index.ts) when a waiting task
54
+ * transitions to pending after all its dependencies complete. The task row
55
+ * already exists in the DB — this function only builds the runtime context
56
+ * (executionContext, messages, provider, registry) and enqueues it.
57
+ *
58
+ * Also used on server startup to re-enqueue tasks orphaned by a crash between
59
+ * DagEngine's DB update and queue.enqueue().
60
+ */
61
+ export declare function enqueueExistingTask(taskId: string, deps: TaskDeps): Promise<void>;
44
62
  export declare function taskList(input: TaskListInput, deps: Pick<TaskDeps, "taskStore">): Task[];
45
63
  export declare function taskCancel(input: TaskCancelInput, deps: Pick<TaskDeps, "taskStore">): {
46
64
  success: true;
47
65
  };
66
+ /**
67
+ * `task_resume` tool — resumes a suspended `awaiting_input` task by providing
68
+ * the `userInput` that the orchestrator is waiting for.
69
+ *
70
+ * The caller must supply the `resumeToken` that was written to the DB when the
71
+ * task was suspended. If the process restarted while the task was suspended the
72
+ * in-memory resolver no longer exists; the task is auto-failed and
73
+ * `TASK_NOT_RESUMABLE` is thrown so the caller knows not to retry.
74
+ */
75
+ export declare function taskResume(input: {
76
+ taskId: string;
77
+ resumeToken: string;
78
+ userInput: string;
79
+ }, deps: Pick<TaskDeps, "taskStore">): Promise<{
80
+ success: true;
81
+ taskId: string;
82
+ }>;
48
83
  export declare function resultTool(input: ResultInput, deps: Pick<TaskDeps, "taskStore" | "db">): Task & {
49
84
  usage?: TaskUsageReport;
50
85
  };
@@ -1 +1 @@
1
- {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/tools/task.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAE9F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,KAAK,EACR,gBAAgB,EAChB,WAAW,EACX,IAAI,EACJ,eAAe,EACf,aAAa,EAEb,aAAa,EACb,cAAc,EACd,eAAe,EAClB,MAAM,wBAAwB,CAAC;AAIhC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAwB,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEjE,MAAM,WAAW,QAAQ;IACrB,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,YAAY,CAAC;IAC3B,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,oBAAoB,EAAE,uBAAuB,EAAE,CAAC;IAChD,gBAAgB,EAAE,oBAAoB,CAAC;IACvC;;;OAGG;IACH,EAAE,EAAE,QAAQ,CAAC;CAChB;AAgHD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,QAAQ,CAC1B,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,QAAQ,EACd,aAAa,CAAC,EAAE,gBAAgB,GACjC,OAAO,CAAC,cAAc,CAAC,CAqIzB;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAI,EAAE,CAExF;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,CAavG;AAED,wBAAgB,UAAU,CACtB,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC,GACzC,IAAI,GAAG;IAAE,KAAK,CAAC,EAAE,eAAe,CAAA;CAAE,CAIpC"}
1
+ {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/tools/task.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAE9F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,KAAK,EACR,gBAAgB,EAChB,WAAW,EACX,IAAI,EACJ,eAAe,EACf,aAAa,EACb,aAAa,EACb,cAAc,EACd,eAAe,EAClB,MAAM,wBAAwB,CAAC;AAIhC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAwB,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEjE,MAAM,WAAW,QAAQ;IACrB,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,YAAY,CAAC;IAC3B,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,oBAAoB,EAAE,uBAAuB,EAAE,CAAC;IAChD,gBAAgB,EAAE,oBAAoB,CAAC;IACvC;;;OAGG;IACH,EAAE,EAAE,QAAQ,CAAC;IACb;;;OAGG;IACH,SAAS,EAAE,SAAS,CAAC;CACxB;AAoHD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,QAAQ,CAC1B,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,QAAQ,EACd,aAAa,CAAC,EAAE,gBAAgB,GACjC,OAAO,CAAC,cAAc,CAAC,CA8KzB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAmGvF;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAI,EAAE,CAExF;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,CAavG;AAED;;;;;;;;GAQG;AACH,wBAAsB,UAAU,CAC5B,KAAK,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EACjE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,GAClC,OAAO,CAAC;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CA4B5C;AAED,wBAAgB,UAAU,CACtB,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC,GACzC,IAAI,GAAG;IAAE,KAAK,CAAC,EAAE,eAAe,CAAA;CAAE,CAIpC"}
package/src/tools/task.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { logger } from "../logger.js";
2
+ import { resolveHitl } from "../engine/orchestrator.js";
2
3
  import { createProvider } from "../providers/factory.js";
3
4
  import { McpClientRegistry as McpClientRegistryCtor } from "../clients/registry.js";
4
5
  import { ToolError } from "../validation/errors.js";
@@ -6,16 +7,29 @@ import { generateId } from "../utils/ids.js";
6
7
  import { nowIso } from "../utils/timestamps.js";
7
8
  import { buildTaskUsageReport } from "./usage.js";
8
9
  /**
9
- * One-shot ephemeral execution: loads the agent definition but creates no session
10
- * row and persists no messages. Always synchronous.
10
+ * One-shot ephemeral execution: runs a prompt against an agent without creating a
11
+ * session row or persisting any messages. Persists a tasks row + task_events +
12
+ * task_usage so the run is observable via task_list / result / metrics.
11
13
  */
12
14
  async function runEphemeralTask(input, deps, callerContext) {
13
15
  const agentDefinition = deps.agentStore.read(input.agent_name);
14
16
  const taskId = generateId();
17
+ // Use a synthetic session ID only as an in-memory identifier for message
18
+ // threading within this run — it is never written to the DB.
15
19
  const ephemeralSessionId = generateId();
16
20
  const rootTaskId = callerContext
17
21
  ? (callerContext.rootTaskId ?? callerContext.taskId)
18
22
  : undefined;
23
+ // Persist the tasks row so this run is observable (task_list, result tool, metrics).
24
+ // session_id is NULL and is_ephemeral=1 — no sessions row is created.
25
+ deps.taskStore.create({
26
+ id: taskId,
27
+ sessionId: null,
28
+ isEphemeral: true,
29
+ prompt: input.prompt,
30
+ parentTaskId: callerContext?.taskId,
31
+ recursionDepth: (callerContext?.recursionDepth ?? -1) + 1,
32
+ });
19
33
  const executionContext = {
20
34
  taskId,
21
35
  sessionId: ephemeralSessionId,
@@ -47,21 +61,7 @@ async function runEphemeralTask(input, deps, callerContext) {
47
61
  userMessage,
48
62
  ]
49
63
  : [userMessage];
50
- // Capture final status/result without touching the DB
51
- let capturedStatus = "pending";
52
- let capturedResult;
53
- const captureTaskStore = {
54
- updateStatus: (_id, status, fields) => {
55
- capturedStatus = status;
56
- if (fields?.result !== undefined)
57
- capturedResult = fields.result;
58
- return {};
59
- },
60
- // eslint-disable-next-line @typescript-eslint/no-empty-function
61
- appendEvent: () => { },
62
- // eslint-disable-next-line @typescript-eslint/no-empty-function
63
- unregisterCancellation: () => { },
64
- };
64
+ // No messages are persisted noopSessionStore swallows appendMessage calls.
65
65
  const noopSessionStore = {
66
66
  // eslint-disable-next-line @typescript-eslint/no-empty-function
67
67
  appendMessage: async () => { },
@@ -70,6 +70,7 @@ async function runEphemeralTask(input, deps, callerContext) {
70
70
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
71
71
  agentDefinition.mcpServers, deps.selfUrl, deps.inProcessDescriptors, deps.inProcessHandler, executionContext);
72
72
  const controller = new AbortController();
73
+ deps.taskStore.registerCancellation(taskId, controller);
73
74
  try {
74
75
  await deps.orchestrator.run({
75
76
  executionContext,
@@ -77,21 +78,26 @@ async function runEphemeralTask(input, deps, callerContext) {
77
78
  registry,
78
79
  provider,
79
80
  policy: deps.policy,
80
- taskStore: captureTaskStore,
81
+ taskStore: deps.taskStore, // REAL store — events + status persisted
81
82
  sessionStore: noopSessionStore,
82
83
  signal: controller.signal,
83
84
  taskId,
84
85
  hooks: deps.hooks,
86
+ isEphemeral: true, // forbids request_human_input
85
87
  });
86
88
  }
87
89
  catch {
88
- // Orchestrator already captured status via captureTaskStore
90
+ // Orchestrator already updated status via deps.taskStore
91
+ }
92
+ finally {
93
+ deps.taskStore.unregisterCancellation(taskId);
89
94
  }
95
+ const finalTask = deps.taskStore.read(taskId);
90
96
  const usage = buildTaskUsageReport(deps.db, taskId);
91
97
  return {
92
98
  task_id: taskId,
93
- status: capturedStatus,
94
- result: capturedResult,
99
+ status: finalTask.status,
100
+ result: finalTask.result,
95
101
  usage,
96
102
  };
97
103
  }
@@ -122,11 +128,25 @@ export async function taskTool(input, deps, callerContext) {
122
128
  // 2. Load snapshotted agent definition
123
129
  const agentDefinition = deps.sessionStore.getAgentDefinition(input.session_id);
124
130
  // 3. Create task row
131
+ // Validate no dependency cycle before inserting the row.
132
+ // [inv:cycle-check-synchronous] — throws ToolError("VALIDATION_ERROR") on cycle.
133
+ const dependsOn = input.depends_on ?? [];
134
+ const onUpstreamFailure = input
135
+ .on_upstream_failure;
136
+ // Generate the id up front so the cycle check validates the SAME id that is
137
+ // inserted below (TaskStore.create reuses input.id when provided).
138
+ const newTaskId = generateId();
139
+ if (dependsOn.length > 0) {
140
+ deps.dagEngine.validateNoCycle(newTaskId, dependsOn);
141
+ }
125
142
  const task = deps.taskStore.create({
143
+ id: newTaskId,
126
144
  sessionId: input.session_id,
127
145
  prompt: input.prompt,
128
146
  parentTaskId: callerContext?.taskId,
129
147
  recursionDepth: (callerContext?.recursionDepth ?? -1) + 1,
148
+ dependsOn: dependsOn.length > 0 ? dependsOn : undefined,
149
+ onUpstreamFailure,
130
150
  });
131
151
  // Derive rootTaskId at creation time from the in-memory callerContext chain.
132
152
  // A DB walk is deliberately avoided — ephemeral tasks have no tasks row.
@@ -181,27 +201,48 @@ export async function taskTool(input, deps, callerContext) {
181
201
  agentDefinition.mcpServers, deps.selfUrl, deps.inProcessDescriptors, deps.inProcessHandler, executionContext);
182
202
  // 9. Run orchestrator
183
203
  const runTask = async () => {
184
- await deps.orchestrator.run({
185
- executionContext,
186
- messages: allMessages,
187
- registry,
188
- provider,
189
- policy: deps.policy,
190
- taskStore: deps.taskStore,
191
- sessionStore: deps.sessionStore,
192
- signal: controller.signal,
193
- taskId: task.id,
194
- hooks: deps.hooks,
195
- });
204
+ try {
205
+ await deps.orchestrator.run({
206
+ executionContext,
207
+ messages: allMessages,
208
+ registry,
209
+ provider,
210
+ policy: deps.policy,
211
+ taskStore: deps.taskStore,
212
+ sessionStore: deps.sessionStore,
213
+ signal: controller.signal,
214
+ taskId: task.id,
215
+ hooks: deps.hooks,
216
+ });
217
+ }
218
+ finally {
219
+ // [inv:dispatch-on-completion] — dispatchReady fires on every terminal
220
+ // event (completed, failed, cancelled) so dependent waiting tasks are
221
+ // evaluated regardless of how this task ended.
222
+ await deps.dagEngine.dispatchReady(task.id);
223
+ }
196
224
  };
225
+ // Compute stream_url when streaming is requested for a backgrounded task.
226
+ // A synchronous task is already complete by the time the caller gets the
227
+ // response, so an SSE URL for it would only ever hit the terminal-on-connect
228
+ // path and close immediately — omit it.
229
+ const ssePort = process.env["SSE_PORT"] ?? "3001";
230
+ const sseBaseUrl = process.env["SSE_BASE_URL"] ?? `http://localhost:${ssePort}`;
231
+ const streamUrl = input.stream && input.background
232
+ ? `${sseBaseUrl}/tasks/${task.id}/stream`
233
+ : undefined;
197
234
  if (input.background) {
198
235
  // Enqueue for background execution — return immediately
199
236
  deps.queue.enqueue(task.id, runTask);
200
237
  logger.info({ taskId: task.id, sessionId: input.session_id }, "Task enqueued for background execution");
201
- return {
238
+ const response = {
202
239
  task_id: task.id,
203
240
  status: "pending",
204
241
  };
242
+ if (streamUrl) {
243
+ response.stream_url = streamUrl;
244
+ }
245
+ return response;
205
246
  }
206
247
  else {
207
248
  // Synchronous execution — wait for completion
@@ -214,26 +255,149 @@ export async function taskTool(input, deps, callerContext) {
214
255
  }
215
256
  const finalTask = deps.taskStore.read(task.id);
216
257
  const usage = buildTaskUsageReport(deps.db, finalTask.id);
217
- return {
258
+ const response = {
218
259
  task_id: finalTask.id,
219
260
  status: finalTask.status,
220
261
  result: finalTask.result,
221
262
  usage,
222
263
  };
264
+ if (streamUrl) {
265
+ response.stream_url = streamUrl;
266
+ }
267
+ return response;
268
+ }
269
+ }
270
+ /**
271
+ * Re-enqueue an existing task row that is already in "pending" status.
272
+ *
273
+ * Called by DagEngine.dispatchFn (built in index.ts) when a waiting task
274
+ * transitions to pending after all its dependencies complete. The task row
275
+ * already exists in the DB — this function only builds the runtime context
276
+ * (executionContext, messages, provider, registry) and enqueues it.
277
+ *
278
+ * Also used on server startup to re-enqueue tasks orphaned by a crash between
279
+ * DagEngine's DB update and queue.enqueue().
280
+ */
281
+ export async function enqueueExistingTask(taskId, deps) {
282
+ const task = deps.taskStore.read(taskId);
283
+ // Ephemeral tasks have no session row and no in-memory provider context.
284
+ // If the process restarted, the orchestrator context is gone and the task
285
+ // cannot be resumed. Mark it failed so it doesn't linger as pending.
286
+ if (task.isEphemeral || !task.sessionId) {
287
+ logger.warn({ taskId, isEphemeral: task.isEphemeral }, "enqueueExistingTask: skipping ephemeral task — context lost on restart");
288
+ try {
289
+ deps.taskStore.updateStatus(taskId, "failed", {
290
+ error: "Ephemeral task context lost on server restart; create a new task.",
291
+ });
292
+ }
293
+ catch {
294
+ // Already in a terminal state — ignore
295
+ }
296
+ return;
223
297
  }
298
+ const session = deps.sessionStore.read(task.sessionId);
299
+ if (session.status !== "active") {
300
+ logger.warn({ taskId, sessionId: task.sessionId }, "enqueueExistingTask: session is not active, skipping dispatch");
301
+ return;
302
+ }
303
+ const agentDefinition = deps.sessionStore.getAgentDefinition(task.sessionId);
304
+ const executionContext = {
305
+ taskId,
306
+ sessionId: task.sessionId,
307
+ agentName: agentDefinition.name,
308
+ agentDefinition,
309
+ recursionDepth: task.recursionDepth,
310
+ toolCallCount: 0,
311
+ inputs: task.inputs ?? undefined,
312
+ };
313
+ const controller = new AbortController();
314
+ deps.taskStore.registerCancellation(taskId, controller);
315
+ const provider = createProvider(agentDefinition.provider, agentDefinition.mcpServers);
316
+ const existingMessages = deps.sessionStore.getMessages(task.sessionId);
317
+ const userMessage = {
318
+ id: generateId(),
319
+ sessionId: task.sessionId,
320
+ role: "user",
321
+ content: task.prompt,
322
+ createdAt: nowIso(),
323
+ };
324
+ const messages = [...existingMessages, userMessage];
325
+ const allMessages = agentDefinition.systemPrompt
326
+ ? [
327
+ {
328
+ id: generateId(),
329
+ sessionId: task.sessionId,
330
+ role: "system",
331
+ content: agentDefinition.systemPrompt,
332
+ createdAt: nowIso(),
333
+ },
334
+ ...messages,
335
+ ]
336
+ : messages;
337
+ const registry = new McpClientRegistryCtor(
338
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
339
+ agentDefinition.mcpServers, deps.selfUrl, deps.inProcessDescriptors, deps.inProcessHandler, executionContext);
340
+ deps.queue.enqueue(taskId, async () => {
341
+ try {
342
+ await deps.orchestrator.run({
343
+ executionContext,
344
+ messages: allMessages,
345
+ registry,
346
+ provider,
347
+ policy: deps.policy,
348
+ taskStore: deps.taskStore,
349
+ sessionStore: deps.sessionStore,
350
+ signal: controller.signal,
351
+ taskId,
352
+ hooks: deps.hooks,
353
+ });
354
+ }
355
+ finally {
356
+ // [inv:dispatch-on-completion] — dispatchReady fires on every terminal event
357
+ await deps.dagEngine.dispatchReady(taskId);
358
+ }
359
+ });
224
360
  }
225
361
  export function taskList(input, deps) {
226
362
  return deps.taskStore.list(input);
227
363
  }
228
364
  export function taskCancel(input, deps) {
229
365
  const task = deps.taskStore.read(input.task_id); // throws TASK_NOT_FOUND
230
- const cancellableStatuses = ["pending", "running"];
366
+ const cancellableStatuses = ["pending", "running", "awaiting_input"];
231
367
  if (!cancellableStatuses.includes(task.status)) {
232
368
  throw new ToolError("TASK_NOT_CANCELLABLE", `Task '${input.task_id}' has status '${task.status}' and cannot be cancelled`);
233
369
  }
234
370
  deps.taskStore.cancel(input.task_id);
235
371
  return { success: true };
236
372
  }
373
+ /**
374
+ * `task_resume` tool — resumes a suspended `awaiting_input` task by providing
375
+ * the `userInput` that the orchestrator is waiting for.
376
+ *
377
+ * The caller must supply the `resumeToken` that was written to the DB when the
378
+ * task was suspended. If the process restarted while the task was suspended the
379
+ * in-memory resolver no longer exists; the task is auto-failed and
380
+ * `TASK_NOT_RESUMABLE` is thrown so the caller knows not to retry.
381
+ */
382
+ export async function taskResume(input, deps) {
383
+ const task = deps.taskStore.read(input.taskId); // throws TASK_NOT_FOUND
384
+ if (task.status !== "awaiting_input") {
385
+ throw new ToolError("VALIDATION_ERROR", `Task '${input.taskId}' is not awaiting input (status: ${task.status})`);
386
+ }
387
+ if (task.resumeToken !== input.resumeToken) {
388
+ throw new ToolError("VALIDATION_ERROR", "Invalid resumeToken");
389
+ }
390
+ const resolved = resolveHitl(input.taskId, input.userInput);
391
+ if (!resolved) {
392
+ // Process restarted — in-memory resolver is gone. Auto-fail the task so it
393
+ // doesn't remain stranded in awaiting_input with no escape path.
394
+ deps.taskStore.updateStatus(input.taskId, "failed", {
395
+ error: "Task could not be resumed: server restarted while task was suspended. Create a new task.",
396
+ });
397
+ throw new ToolError("TASK_NOT_RESUMABLE", `Task '${input.taskId}' has no active suspension (process restarted; task has been failed)`);
398
+ }
399
+ return { success: true, taskId: input.taskId };
400
+ }
237
401
  export function resultTool(input, deps) {
238
402
  const task = deps.taskStore.read(input.task_id); // throws TASK_NOT_FOUND
239
403
  const usage = buildTaskUsageReport(deps.db, task.id);
@@ -1 +1 @@
1
- {"version":3,"file":"task.js","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/tools/task.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task.js","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/tools/task.ts"],"names":[],"mappings":"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"}
@@ -136,6 +136,7 @@ export declare const agentDefinitionSchema: z.ZodObject<{
136
136
  allowedAgents: z.ZodOptional<z.ZodArray<z.ZodString>>;
137
137
  }, z.core.$strip>>;
138
138
  maxToolLoops: z.ZodOptional<z.ZodNumber>;
139
+ allowHumanInput: z.ZodOptional<z.ZodBoolean>;
139
140
  createdAt: z.ZodString;
140
141
  updatedAt: z.ZodString;
141
142
  }, z.core.$strip>;
@@ -215,6 +216,7 @@ export declare const agentCreateInputSchema: z.ZodObject<{
215
216
  allowedAgents: z.ZodOptional<z.ZodArray<z.ZodString>>;
216
217
  }, z.core.$strip>>;
217
218
  maxToolLoops: z.ZodOptional<z.ZodNumber>;
219
+ allowHumanInput: z.ZodOptional<z.ZodBoolean>;
218
220
  }, z.core.$strip>;
219
221
  export declare const agentUpdateInputSchema: z.ZodObject<{
220
222
  name: z.ZodString;
@@ -292,6 +294,7 @@ export declare const agentUpdateInputSchema: z.ZodObject<{
292
294
  allowedAgents: z.ZodOptional<z.ZodArray<z.ZodString>>;
293
295
  }, z.core.$strip>>;
294
296
  maxToolLoops: z.ZodOptional<z.ZodNumber>;
297
+ allowHumanInput: z.ZodOptional<z.ZodBoolean>;
295
298
  }, z.core.$strip>;
296
299
  }, z.core.$strip>;
297
300
  export declare const agentReadInputSchema: z.ZodObject<{
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/validation/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,iBAAiB;;;;;iBAK5B,CAAC;AAgEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAK/B,CAAC;AAEH,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,eAAO,MAAM,sBAAsB;;iBAKjC,CAAC;AAEH,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAahC,CAAC;AAEH,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAI7D,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAIjC,CAAC;AAaH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAGjC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;iBAE/B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;iBAEjC,CAAC;AAEH,eAAO,MAAM,oBAAoB,+CAA0B,CAAC;AAE5D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/validation/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,iBAAiB;;;;;iBAK5B,CAAC;AAgEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAK/B,CAAC;AAEH,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,eAAO,MAAM,sBAAsB;;iBAKjC,CAAC;AAEH,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmBhC,CAAC;AAEH,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAI7D,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAIjC,CAAC;AAcH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAGjC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;iBAE/B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;iBAEjC,CAAC;AAEH,eAAO,MAAM,oBAAoB,+CAA0B,CAAC;AAE5D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
@@ -89,6 +89,12 @@ export const agentDefinitionSchema = z.object({
89
89
  mcpServers: z.record(z.string(), mcpServerConfigSchema).default({}),
90
90
  permissions: agentPermissionsSchema.default({}),
91
91
  maxToolLoops: z.number().int().positive().optional(),
92
+ /**
93
+ * Opt-in: advertise builtin__request_human_input to the model so it can
94
+ * pause a task and ask the human operator a question. Default false/undefined.
95
+ * Has no effect on ephemeral tasks (no DB row → no resume token).
96
+ */
97
+ allowHumanInput: z.boolean().optional(),
92
98
  createdAt: z.string().datetime(),
93
99
  updatedAt: z.string().datetime(),
94
100
  });
@@ -107,6 +113,7 @@ const agentPatchSchema = z.object({
107
113
  mcpServers: z.record(z.string(), mcpServerConfigSchema).optional(),
108
114
  permissions: agentPermissionsSchema.optional(),
109
115
  maxToolLoops: z.number().int().positive().optional(),
116
+ allowHumanInput: z.boolean().optional(),
110
117
  });
111
118
  export const agentUpdateInputSchema = z.object({
112
119
  name: z.string().min(1),
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/validation/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/validation/agent.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ export declare const errorCodeSchema: z.ZodEnum<{
7
7
  SESSION_CLOSED: "SESSION_CLOSED";
8
8
  TASK_NOT_FOUND: "TASK_NOT_FOUND";
9
9
  TASK_NOT_CANCELLABLE: "TASK_NOT_CANCELLABLE";
10
+ TASK_NOT_RESUMABLE: "TASK_NOT_RESUMABLE";
10
11
  DELEGATION_NOT_ALLOWED: "DELEGATION_NOT_ALLOWED";
11
12
  MAX_DEPTH_EXCEEDED: "MAX_DEPTH_EXCEEDED";
12
13
  MAX_TOOL_LOOPS_EXCEEDED: "MAX_TOOL_LOOPS_EXCEEDED";
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/validation/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;EA6B1B,CAAC;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAClC,MAAM,MAAM,SAAS,GAAG,iBAAiB,CAAC;AAE1C,qBAAa,SAAU,SAAQ,KAAK;IAClC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;gBAEZ,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;CAMrE"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/validation/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;EA8B1B,CAAC;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAClC,MAAM,MAAM,SAAS,GAAG,iBAAiB,CAAC;AAE1C,qBAAa,SAAU,SAAQ,KAAK;IAClC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;gBAEZ,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO;CAMrE"}
@@ -10,6 +10,7 @@ export const errorCodeSchema = z.enum([
10
10
  // Task
11
11
  "TASK_NOT_FOUND",
12
12
  "TASK_NOT_CANCELLABLE",
13
+ "TASK_NOT_RESUMABLE",
13
14
  // Policy / delegation
14
15
  "DELEGATION_NOT_ALLOWED",
15
16
  "MAX_DEPTH_EXCEEDED",
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/validation/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC;IACpC,aAAa;IACb,sBAAsB;IACtB,iBAAiB;IACjB,2BAA2B;IAE3B,UAAU;IACV,mBAAmB;IACnB,gBAAgB;IAEhB,OAAO;IACP,gBAAgB;IAChB,sBAAsB;IAEtB,sBAAsB;IACtB,wBAAwB;IACxB,oBAAoB;IACpB,yBAAyB;IAEzB,UAAU;IACV,gBAAgB;IAChB,kBAAkB;IAClB,qBAAqB;IACrB,uBAAuB;IACvB,yBAAyB;IACzB,kBAAkB;IAElB,aAAa;IACb,kBAAkB;CACnB,CAAC,CAAC;AAMH,MAAM,OAAO,SAAU,SAAQ,KAAK;IACzB,IAAI,CAAoB;IACxB,IAAI,CAAW;IAExB,YAAY,IAAuB,EAAE,OAAe,EAAE,IAAc;QAClE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/validation/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC;IACpC,aAAa;IACb,sBAAsB;IACtB,iBAAiB;IACjB,2BAA2B;IAE3B,UAAU;IACV,mBAAmB;IACnB,gBAAgB;IAEhB,OAAO;IACP,gBAAgB;IAChB,sBAAsB;IACtB,oBAAoB;IAEpB,sBAAsB;IACtB,wBAAwB;IACxB,oBAAoB;IACpB,yBAAyB;IAEzB,UAAU;IACV,gBAAgB;IAChB,kBAAkB;IAClB,qBAAqB;IACrB,uBAAuB;IACvB,yBAAyB;IACzB,kBAAkB;IAElB,aAAa;IACb,kBAAkB;CACnB,CAAC,CAAC;AAMH,MAAM,OAAO,SAAU,SAAQ,KAAK;IACzB,IAAI,CAAoB;IACxB,IAAI,CAAW;IAExB,YAAY,IAAuB,EAAE,OAAe,EAAE,IAAc;QAClE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF"}
@@ -79,6 +79,7 @@ export declare const executionContextSchema: z.ZodObject<{
79
79
  allowedAgents: z.ZodOptional<z.ZodArray<z.ZodString>>;
80
80
  }, z.core.$strip>>;
81
81
  maxToolLoops: z.ZodOptional<z.ZodNumber>;
82
+ allowHumanInput: z.ZodOptional<z.ZodBoolean>;
82
83
  createdAt: z.ZodString;
83
84
  updatedAt: z.ZodString;
84
85
  }, z.core.$strip>;
@@ -86,6 +87,7 @@ export declare const executionContextSchema: z.ZodObject<{
86
87
  parentTaskId: z.ZodOptional<z.ZodString>;
87
88
  recursionDepth: z.ZodNumber;
88
89
  toolCallCount: z.ZodNumber;
90
+ inputs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
89
91
  }, z.core.$strip>;
90
92
  export type { ExecutionContext } from "@adhd/agent-mcp-types";
91
93
  //# sourceMappingURL=execution.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/validation/execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsBjC,CAAC;AAEH,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"execution.d.ts","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/validation/execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA4BjC,CAAC;AAEH,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -19,5 +19,10 @@ export const executionContextSchema = z.object({
19
19
  // to enforce the toolLoops ceiling.
20
20
  recursionDepth: z.number().int().nonnegative(),
21
21
  toolCallCount: z.number().int().nonnegative(),
22
+ // Upstream task results keyed by upstream taskId.
23
+ // Populated by DagEngine at dispatch time from the task row's `inputs` JSON field.
24
+ // Only present for tasks that have depends_on entries; omit from runtime context
25
+ // if not set on the task row.
26
+ inputs: z.record(z.string(), z.string()).optional(),
22
27
  });
23
28
  //# sourceMappingURL=execution.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"execution.js","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/validation/execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnD,sEAAsE;AACtE,gDAAgD;AAChD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IACzB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAE5B,2CAA2C;IAC3C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IAErB,gEAAgE;IAChE,6EAA6E;IAC7E,eAAe,EAAE,qBAAqB;IAEtC,oEAAoE;IACpE,sDAAsD;IACtD,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEvC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAE1C,oEAAoE;IACpE,mEAAmE;IACnE,oCAAoC;IACpC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC9C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;CAC9C,CAAC,CAAC"}
1
+ {"version":3,"file":"execution.js","sourceRoot":"","sources":["../../../../../../packages/ai/agent-mcp/src/validation/execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnD,sEAAsE;AACtE,gDAAgD;AAChD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IACzB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;IAE5B,2CAA2C;IAC3C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IAErB,gEAAgE;IAChE,6EAA6E;IAC7E,eAAe,EAAE,qBAAqB;IAEtC,oEAAoE;IACpE,sDAAsD;IACtD,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEvC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IAE1C,oEAAoE;IACpE,mEAAmE;IACnE,oCAAoC;IACpC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAC9C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IAE7C,kDAAkD;IAClD,mFAAmF;IACnF,iFAAiF;IACjF,8BAA8B;IAC9B,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CACpD,CAAC,CAAC"}