anchor-ai-sdk 0.4.0 → 0.5.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 (46) hide show
  1. package/README.md +28 -1
  2. package/dist/agents/coding/prompts/index.d.ts +2 -0
  3. package/dist/agents/coding/prompts/index.d.ts.map +1 -1
  4. package/dist/agents/coding/prompts/index.js +2 -1
  5. package/dist/agents/coding/prompts/index.js.map +1 -1
  6. package/dist/engine/dispatch.d.ts.map +1 -1
  7. package/dist/engine/dispatch.js +12 -9
  8. package/dist/engine/dispatch.js.map +1 -1
  9. package/dist/engine/events.d.ts +10 -1
  10. package/dist/engine/events.d.ts.map +1 -1
  11. package/dist/engine/loop.d.ts.map +1 -1
  12. package/dist/engine/loop.js +236 -28
  13. package/dist/engine/loop.js.map +1 -1
  14. package/dist/engine/types.d.ts +3 -0
  15. package/dist/engine/types.d.ts.map +1 -1
  16. package/dist/engine/types.js.map +1 -1
  17. package/dist/index.d.ts +1 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +1 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/ledger/ledger.d.ts +20 -5
  22. package/dist/ledger/ledger.d.ts.map +1 -1
  23. package/dist/ledger/ledger.js +223 -30
  24. package/dist/ledger/ledger.js.map +1 -1
  25. package/dist/ledger/types.d.ts +9 -0
  26. package/dist/ledger/types.d.ts.map +1 -1
  27. package/dist/teams/index.d.ts +4 -0
  28. package/dist/teams/index.d.ts.map +1 -0
  29. package/dist/teams/index.js +4 -0
  30. package/dist/teams/index.js.map +1 -0
  31. package/dist/teams/mailbox.d.ts +58 -0
  32. package/dist/teams/mailbox.d.ts.map +1 -0
  33. package/dist/teams/mailbox.js +75 -0
  34. package/dist/teams/mailbox.js.map +1 -0
  35. package/dist/teams/task-board.d.ts +61 -0
  36. package/dist/teams/task-board.d.ts.map +1 -0
  37. package/dist/teams/task-board.js +84 -0
  38. package/dist/teams/task-board.js.map +1 -0
  39. package/dist/teams/types.d.ts +39 -0
  40. package/dist/teams/types.d.ts.map +1 -0
  41. package/dist/teams/types.js +2 -0
  42. package/dist/teams/types.js.map +1 -0
  43. package/dist/tools/types.d.ts +2 -0
  44. package/dist/tools/types.d.ts.map +1 -1
  45. package/dist/tools/types.js.map +1 -1
  46. package/package.json +1 -1
package/README.md CHANGED
@@ -96,7 +96,7 @@ const result = await runAgent(
96
96
  ```
97
97
 
98
98
  The `create_task` intrinsic is available when `verifier` is enabled and no
99
- contract is active. The agent supplies a goal and 1–12 requirements, each owned
99
+ contract is active. The agent supplies a goal and 1–30 requirements, each owned
100
100
  by one of the strategy's phases. The engine derives the authoritative request
101
101
  text from the user messages; the agent cannot supply or rewrite the standard it
102
102
  is judged against. A turn without `create_task` is an ordinary conversation with
@@ -205,6 +205,33 @@ The consumer injects `index` into its prompt and adds `skills` to the agent.
205
205
  only through the normal `bash` tool. The body is an untrusted tool result, never
206
206
  a system message. See [docs/skills.md](docs/skills.md).
207
207
 
208
+ ### Optional agent teams
209
+
210
+ A leader can delegate to named workers or evaluators:
211
+
212
+ ```ts
213
+ const result = await runAgent(
214
+ { messages: [{ role: "user", content: "Fix the retry bug" }] },
215
+ {
216
+ llm,
217
+ sandbox,
218
+ agent: leaderAgent,
219
+ team: {
220
+ members: {
221
+ implementer: { agent: implementerAgent, role: "worker" },
222
+ reviewer: { agent: reviewerAgent, role: "evaluator" },
223
+ },
224
+ },
225
+ },
226
+ );
227
+ ```
228
+
229
+ Members run in an isolated nested loop in the same sandbox and return only a
230
+ result. Evaluators are read-only; workers cannot finish; only the leader can
231
+ finish or publish. Anchor exports `TeamTaskStore` / `AgentMailbox` contracts and
232
+ in-memory adapters; durable task boards and mailboxes stay consumer-owned. See
233
+ [docs/agent-teams.md](docs/agent-teams.md).
234
+
208
235
  ## One sandbox interface
209
236
 
210
237
  **Configure the provider once. Keep the agent-facing machine interface the same.**
@@ -17,6 +17,8 @@ export interface CodingPromptOptions {
17
17
  operatingRules?: string;
18
18
  verification?: string;
19
19
  phases?: StrategyPhase[];
20
+ /** Intro before the phase list. Defaults to the generic advice. */
21
+ phasesIntro?: string;
20
22
  context?: string;
21
23
  summary?: string;
22
24
  additionalSections?: Array<{
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/agents/coding/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAMjE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,2EAA2E;AAC3E,eAAO,MAAM,sBAAsB;;;;;;CAMzB,CAAC;AAEX,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC7D;AAED;+EAC+E;AAC/E,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,mBAAwB,GAAG,MAAM,CA6C3E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/agents/coding/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAMjE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,2EAA2E;AAC3E,eAAO,MAAM,sBAAsB;;;;;;CAMzB,CAAC;AAEX,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,mEAAmE;IACnE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC7D;AAED;+EAC+E;AAC/E,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,mBAAwB,GAAG,MAAM,CA8C3E"}
@@ -39,7 +39,8 @@ export function buildCodingPrompt(options = {}) {
39
39
  {
40
40
  title: "Approach phases",
41
41
  body: [
42
- "These describe your approach, not prerequisites. Choose the phases that fit, skip or revisit them when appropriate, and conclude from any phase. When your work shifts between kinds of activity — investigating, changing code, verifying, answering — call set_phase to record the new phase and keep the thread's timeline honest.",
42
+ options.phasesIntro ??
43
+ "These describe your approach, not prerequisites. Choose the phases that fit, skip or revisit them when appropriate, and conclude from any phase. When your work shifts between kinds of activity — investigating, changing code, verifying, answering — call set_phase to record the new phase and keep the thread's timeline honest.",
43
44
  ...phases.map((phase) => `- ${phase.id}: ${phase.goal}${phase.guidance ? ` ${phase.guidance}` : ""}`),
44
45
  ].join("\n"),
45
46
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/agents/coding/prompts/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,2EAA2E;AAC3E,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,SAAS;IACT,IAAI;IACJ,QAAQ;IACR,cAAc;IACd,YAAY;CACJ,CAAC;AAcX;+EAC+E;AAC/E,MAAM,UAAU,iBAAiB,CAAC,OAAO,GAAwB,EAAE;IACjE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,YAAY,CAAC;IAC9C,OAAO;QACL,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,IAAI,SAAS,EAAE;QAC5D,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI,EAAE;QAC7C,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,IAAI,QAAQ,EAAE;QACzD;YACE,KAAK,EAAE,iBAAiB;YACxB,IAAI,EAAE,OAAO,CAAC,cAAc,IAAI,cAAc;SAC/C;QACD;YACE,KAAK,EAAE,yBAAyB;YAChC,IAAI,EAAE,OAAO,CAAC,YAAY,IAAI,YAAY;SAC3C;QACD;YACE,KAAK,EAAE,eAAe;YACtB,IAAI,EACF,0FAA0F;gBAC1F,sFAAsF;gBACtF,sEAAsE;gBACtE,2FAA2F;SAC9F;QACD;YACE,KAAK,EAAE,iBAAiB;YACxB,IAAI,EAAE;gBACJ,uUAAuU;gBACvU,GAAG,MAAM,CAAC,GAAG,CACX,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9E;aACF,CAAC,IAAI,CAAC,IAAI,CAAC;SACb;QACD,GAAG,CAAC,OAAO,CAAC,kBAAkB,IAAI,EAAE,CAAC;QACrC;YACE,KAAK,EAAE,2CAA2C;YAClD,IAAI,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;SAC5B;QACD;YACE,KAAK,EAAE,sDAAsD;YAC7D,IAAI,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;SAC5B;KACF;SACE,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SACxC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC;SACvD,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/agents/coding/prompts/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,2EAA2E;AAC3E,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,SAAS;IACT,IAAI;IACJ,QAAQ;IACR,cAAc;IACd,YAAY;CACJ,CAAC;AAgBX;+EAC+E;AAC/E,MAAM,UAAU,iBAAiB,CAAC,OAAO,GAAwB,EAAE;IACjE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,YAAY,CAAC;IAC9C,OAAO;QACL,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,IAAI,SAAS,EAAE;QAC5D,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI,EAAE;QAC7C,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,IAAI,QAAQ,EAAE;QACzD;YACE,KAAK,EAAE,iBAAiB;YACxB,IAAI,EAAE,OAAO,CAAC,cAAc,IAAI,cAAc;SAC/C;QACD;YACE,KAAK,EAAE,yBAAyB;YAChC,IAAI,EAAE,OAAO,CAAC,YAAY,IAAI,YAAY;SAC3C;QACD;YACE,KAAK,EAAE,eAAe;YACtB,IAAI,EACF,0FAA0F;gBAC1F,sFAAsF;gBACtF,sEAAsE;gBACtE,2FAA2F;SAC9F;QACD;YACE,KAAK,EAAE,iBAAiB;YACxB,IAAI,EAAE;gBACJ,OAAO,CAAC,WAAW;oBACjB,uUAAuU;gBACzU,GAAG,MAAM,CAAC,GAAG,CACX,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9E;aACF,CAAC,IAAI,CAAC,IAAI,CAAC;SACb;QACD,GAAG,CAAC,OAAO,CAAC,kBAAkB,IAAI,EAAE,CAAC;QACrC;YACE,KAAK,EAAE,2CAA2C;YAClD,IAAI,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;SAC5B;QACD;YACE,KAAK,EAAE,sDAAsD;YAC7D,IAAI,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;SAC5B;KACF;SACE,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SACxC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC;SACvD,IAAI,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/engine/dispatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/engine/dispatch.ts"],"names":[],"mappings":"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"}
@@ -164,7 +164,7 @@ export async function dispatchToolCalls(args) {
164
164
  ok: false,
165
165
  content: invalid,
166
166
  };
167
- const outcome = await invoke(tool, call.name, input, toolContext, available);
167
+ const outcome = await invoke(tool, call.name, input, { ...toolContext, callId: call.id }, available);
168
168
  return "invalid" in outcome
169
169
  ? { ok: false, content: outcome.invalid }
170
170
  : outcome.result;
@@ -242,7 +242,7 @@ export async function dispatchToolCalls(args) {
242
242
  results.set(item.call.id, { ok: false, content: item.invalid });
243
243
  continue;
244
244
  }
245
- const outcome = await invoke(item.tool, item.call.name, item.input, toolContext, available);
245
+ const outcome = await invoke(item.tool, item.call.name, item.input, { ...toolContext, callId: item.call.id }, available);
246
246
  results.set(item.call.id, "invalid" in outcome
247
247
  ? { ok: false, content: outcome.invalid }
248
248
  : outcome.result);
@@ -320,13 +320,16 @@ export async function dispatchToolCalls(args) {
320
320
  result = { ok: false, content: invalid };
321
321
  }
322
322
  else {
323
- const callContext = operationId && args.operations
324
- ? {
325
- ...toolContext,
326
- operationId,
327
- acknowledge: (ack) => args.operations.acknowledge(operationId, ack),
328
- }
329
- : toolContext;
323
+ const callContext = {
324
+ ...toolContext,
325
+ callId: call.id,
326
+ ...(operationId && args.operations
327
+ ? {
328
+ operationId,
329
+ acknowledge: (ack) => args.operations.acknowledge(operationId, ack),
330
+ }
331
+ : {}),
332
+ };
330
333
  const outcome = await invoke(tool, call.name, input, callContext, available);
331
334
  if ("invalid" in outcome) {
332
335
  result = { ok: false, content: outcome.invalid };
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/engine/dispatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/engine/dispatch.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ export interface RevivalRequest {
17
17
  estimatedSteps?: number;
18
18
  estimatedTokens?: number;
19
19
  }
20
- export type AgentEvent = {
20
+ type AgentEventBody = {
21
21
  type: "run_started";
22
22
  /** Human-readable text of this turn's input messages. */
23
23
  text: string;
@@ -192,5 +192,14 @@ export type AgentEvent = {
192
192
  type: "error";
193
193
  message: string;
194
194
  };
195
+ export type AgentEvent = AgentEventBody & {
196
+ /** Agent bundle that emitted this event. */
197
+ agent?: string;
198
+ /** Parent agent when this event belongs to a delegated child. */
199
+ parentAgent?: string;
200
+ /** Tool-call id of the delegate invocation that started the child. */
201
+ delegateCallId?: string;
202
+ };
195
203
  export type EventSink = (event: AgentEvent) => void;
204
+ export {};
196
205
  //# sourceMappingURL=events.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/engine/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/engine/events.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../../src/engine/loop.ts"],"names":[],"mappings":"AAyFA,OAAO,KAAK,EACV,QAAQ,EACR,aAAa,EACb,WAAW,EAGZ,MAAM,YAAY,CAAC;AAUpB,YAAY,EACV,QAAQ,EACR,aAAa,EACb,WAAW,EACX,YAAY,EACZ,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AA0gEtC,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,WAAW,CAAC,CAGtB"}
1
+ {"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../../src/engine/loop.ts"],"names":[],"mappings":"AA2FA,OAAO,KAAK,EACV,QAAQ,EACR,aAAa,EACb,WAAW,EAGZ,MAAM,YAAY,CAAC;AAUpB,YAAY,EACV,QAAQ,EACR,aAAa,EACb,WAAW,EACX,YAAY,EACZ,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAwvEtC,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC,WAAW,CAAC,CAGtB"}
@@ -11,7 +11,7 @@ import { TraceFanout } from "../trace/sink.js";
11
11
  import { budgetWarning, revivalBlock, warnPercent as revivalWarnPercent, } from "./revival.js";
12
12
  import { phaseDisciplineBlock } from "./phase-discipline.js";
13
13
  import { renderPromptBlocks } from "./prompt.js";
14
- import { addRequirement, compileLedger, createLedger, ledgerGate, linkEvidence, recordEvidence, renderLedger, setRequirementStatus, } from "../ledger/index.js";
14
+ import { addRequirement, compileLedger, createLedger, ledgerGate, linkEvidence, readyRequirements, recordEvidence, renderLedger, setRequirementStatus, unmetDependencies, } from "../ledger/index.js";
15
15
  import { llmJudge } from "../verify/index.js";
16
16
  import { dispatchToolCalls, } from "./dispatch.js";
17
17
  import { mintOperationId, reconcilePendingOperations, settleFromResult, } from "./operations.js";
@@ -53,10 +53,18 @@ async function runOne(input, opts, chain = {}) {
53
53
  if (fanout)
54
54
  await fanout.flush();
55
55
  };
56
+ const traceAttribution = {
57
+ ...(chain.agent ? { agent: chain.agent } : {}),
58
+ ...(chain.parentAgent ? { parentAgent: chain.parentAgent } : {}),
59
+ ...(chain.delegateCallId ? { delegateCallId: chain.delegateCallId } : {}),
60
+ };
56
61
  const emit = (event) => {
57
- fanout?.record(event);
62
+ const attributed = Object.keys(traceAttribution).length > 0
63
+ ? { ...event, ...traceAttribution }
64
+ : event;
65
+ fanout?.record(attributed);
58
66
  try {
59
- opts.onEvent?.(event);
67
+ opts.onEvent?.(attributed);
60
68
  }
61
69
  catch {
62
70
  // A subscriber must never kill the run — same rule as sinks.
@@ -134,6 +142,117 @@ async function runOne(input, opts, chain = {}) {
134
142
  let summary = prior?.summary;
135
143
  let compaction = prior?.compaction;
136
144
  const budget = chain.budget ?? new BudgetTracker(opts.budgets);
145
+ // ---- Delegated subagents ------------------------------------------------
146
+ if (opts.team && Object.keys(opts.team.members).length > 0) {
147
+ available.set("delegate", defineTool({
148
+ name: "delegate",
149
+ description: "Delegate one bounded task to a named worker or evaluator. The child runs in an isolated context in the same sandbox and returns only its result. Evaluators are read-only. Only the leader may finish or publish.",
150
+ parameters: {
151
+ type: "object",
152
+ properties: {
153
+ agent: {
154
+ type: "string",
155
+ description: "Exact roster name.",
156
+ },
157
+ task: {
158
+ type: "string",
159
+ description: "One bounded task for the child.",
160
+ },
161
+ context: {
162
+ type: "string",
163
+ description: "Optional compact context; never the full parent transcript.",
164
+ },
165
+ feedback: {
166
+ type: "string",
167
+ description: "Optional evaluator findings or repair notes for a follow-up call.",
168
+ },
169
+ },
170
+ required: ["agent", "task"],
171
+ additionalProperties: false,
172
+ },
173
+ }, async (input, ctx) => {
174
+ const name = String(input.agent ?? "").trim();
175
+ const member = opts.team.members[name];
176
+ if (!member) {
177
+ return {
178
+ ok: false,
179
+ content: `unknown team member "${name}" — available: ${Object.keys(opts.team.members).join(", ")}`,
180
+ meta: { agent: name },
181
+ };
182
+ }
183
+ const task = String(input.task ?? "").trim();
184
+ if (!task)
185
+ return { ok: false, content: "task is required" };
186
+ const contextText = typeof input.context === "string" ? input.context.trim() : "";
187
+ const feedback = typeof input.feedback === "string" ? input.feedback.trim() : "";
188
+ const readOnly = member.role === "evaluator" || member.readOnly === true;
189
+ const childTools = readOnly
190
+ ? member.agent.tools.filter((tool) => tool.readOnly === true ||
191
+ tool.definition.name === "run_tests")
192
+ : member.agent.tools;
193
+ const childAgent = { ...member.agent, tools: childTools };
194
+ const limits = budget.limits;
195
+ const remainingUsd = Math.max(0, limits.maxUsd - budget.costUsd);
196
+ const childBudget = new BudgetTracker({
197
+ maxSteps: member.maxSteps ?? limits.maxSteps,
198
+ maxTokens: member.maxTokens ?? limits.maxTokens,
199
+ maxUsd: Math.min(member.maxUsd ?? limits.maxUsd, remainingUsd),
200
+ });
201
+ const childInput = {
202
+ messages: [
203
+ {
204
+ role: "user",
205
+ content: [
206
+ task,
207
+ contextText ? `Context:\n${contextText}` : "",
208
+ feedback ? `Feedback from prior review:\n${feedback}` : "",
209
+ ]
210
+ .filter(Boolean)
211
+ .join("\n\n"),
212
+ },
213
+ ],
214
+ };
215
+ const childOpts = {
216
+ llm: member.llm ?? opts.llm,
217
+ agent: childAgent,
218
+ ...(opts.sandbox ? { sandbox: opts.sandbox } : {}),
219
+ ...(opts.repos ? { repos: opts.repos } : {}),
220
+ ...(opts.backgroundAfterSecs !== undefined
221
+ ? { backgroundAfterSecs: opts.backgroundAfterSecs }
222
+ : {}),
223
+ ...(opts.operations ? { operations: opts.operations } : {}),
224
+ intrinsics: { finish: false, task: false },
225
+ verifier: false,
226
+ signal,
227
+ onEvent: emit,
228
+ };
229
+ const childResult = await runOne(childInput, childOpts, {
230
+ budget: childBudget,
231
+ agent: name,
232
+ parentAgent: strategy.name,
233
+ ...(ctx.callId ? { delegateCallId: ctx.callId } : {}),
234
+ });
235
+ budget.record(childResult.usage);
236
+ const summary = childResult.summary?.trim() ||
237
+ childResult.error?.trim() ||
238
+ `(${childResult.reason})`;
239
+ return {
240
+ ok: childResult.ok,
241
+ content: summary,
242
+ meta: {
243
+ agent: name,
244
+ role: member.role,
245
+ status: childResult.reason,
246
+ steps: childResult.steps,
247
+ usage: { ...childResult.usage },
248
+ ...(childResult.phase ? { phase: childResult.phase } : {}),
249
+ ...(childResult.verified !== undefined
250
+ ? { verified: childResult.verified }
251
+ : {}),
252
+ },
253
+ };
254
+ }, { verb: (input) => `Delegating to ${String(input.agent)}` }));
255
+ }
137
256
  // ---- Task contracts and the judge --------------------------------------
138
257
  const verifierOn = opts.verifier !== undefined && opts.verifier !== false;
139
258
  const verifierConfig = verifierOn && typeof opts.verifier === "object" ? opts.verifier : {};
@@ -223,7 +342,9 @@ async function runOne(input, opts, chain = {}) {
223
342
  },
224
343
  text: { type: "string" },
225
344
  required: { type: "boolean" },
345
+ id: { type: "string" },
226
346
  phase: { type: "string" },
347
+ dependsOn: { type: "array", items: { type: "string" } },
227
348
  requirementId: { type: "string" },
228
349
  evidenceId: { type: "string" },
229
350
  claim: { type: "string" },
@@ -238,21 +359,62 @@ async function runOne(input, opts, chain = {}) {
238
359
  },
239
360
  }, async (input) => {
240
361
  const op = String(input.op ?? "");
362
+ const dependencyError = (requirementId) => {
363
+ const requirement = ledger.requirements.find((item) => item.id === requirementId);
364
+ if (!requirement)
365
+ return `unknown requirement "${requirementId}"`;
366
+ const unmet = unmetDependencies(ledger, requirement, {
367
+ allowWaived: verifierConfig.allowWaived,
368
+ });
369
+ return unmet.length
370
+ ? `${requirement.id} requires ${unmet.join(", ")}`
371
+ : undefined;
372
+ };
241
373
  if (op === "add_requirement") {
242
374
  const text = String(input.text ?? "").trim();
243
375
  if (!text)
244
376
  return { ok: false, content: "text is required" };
245
- const requirement = addRequirement(ledger, {
246
- text,
247
- required: input.required !== false,
248
- ...(typeof input.phase === "string" && input.phase
249
- ? { phase: input.phase }
250
- : {}),
251
- }, "agent");
252
- return {
253
- ok: true,
254
- content: `added ${requirement.id}: ${requirement.text}`,
255
- };
377
+ if (input.id !== undefined && typeof input.id !== "string") {
378
+ return { ok: false, content: "id must be a string" };
379
+ }
380
+ if (input.dependsOn !== undefined && !Array.isArray(input.dependsOn)) {
381
+ return {
382
+ ok: false,
383
+ content: "dependsOn must be an array of requirement ids",
384
+ };
385
+ }
386
+ if (Array.isArray(input.dependsOn) &&
387
+ input.dependsOn.some((item) => typeof item !== "string")) {
388
+ return {
389
+ ok: false,
390
+ content: "dependsOn must be an array of requirement ids",
391
+ };
392
+ }
393
+ try {
394
+ const requirement = addRequirement(ledger, {
395
+ text,
396
+ required: input.required !== false,
397
+ ...(typeof input.id === "string" && input.id
398
+ ? { id: input.id }
399
+ : {}),
400
+ ...(typeof input.phase === "string" && input.phase
401
+ ? { phase: input.phase }
402
+ : {}),
403
+ ...(Array.isArray(input.dependsOn) && input.dependsOn.length
404
+ ? { dependsOn: input.dependsOn }
405
+ : {}),
406
+ }, "agent");
407
+ return {
408
+ ok: true,
409
+ content: `added ${requirement.id}: ${requirement.text}`,
410
+ };
411
+ }
412
+ catch (error) {
413
+ return {
414
+ ok: false,
415
+ content: error instanceof Error ? error.message : String(error),
416
+ };
417
+ }
256
418
  }
257
419
  if (op === "link_evidence") {
258
420
  const claim = String(input.claim ?? "").trim();
@@ -274,6 +436,9 @@ async function runOne(input, opts, chain = {}) {
274
436
  };
275
437
  }
276
438
  const requirementId = String(input.requirementId ?? "");
439
+ const unmet = dependencyError(requirementId);
440
+ if (unmet)
441
+ return { ok: false, content: unmet };
277
442
  linkEvidence(ledger, requirementId, String(input.evidenceId ?? ""), claim);
278
443
  setRequirementStatus(ledger, requirementId, "verified");
279
444
  return { ok: true, content: "evidence linked and requirement verified" };
@@ -284,6 +449,11 @@ async function runOne(input, opts, chain = {}) {
284
449
  return { ok: false, content: "use a user revision to supersede" };
285
450
  }
286
451
  const requirementId = String(input.requirementId ?? "");
452
+ if (status === "verified" || status === "waived") {
453
+ const unmet = dependencyError(requirementId);
454
+ if (unmet)
455
+ return { ok: false, content: unmet };
456
+ }
287
457
  if (status === "verified") {
288
458
  const requirement = ledger.requirements.find((item) => item.id === requirementId);
289
459
  if (!requirement || requirement.evidenceIds.length === 0) {
@@ -348,6 +518,7 @@ async function runOne(input, opts, chain = {}) {
348
518
  "Verification gate: required work is not complete.",
349
519
  `open: ${structural.open.join(", ") || "none"}`,
350
520
  `missingEvidence: ${structural.missingEvidence.join(", ") || "none"}`,
521
+ `unsatisfiedDependencies: ${structural.unsatisfiedDependencies.join(" | ") || "none"}`,
351
522
  `failures: ${structural.failures.join(" | ") || "none"}`,
352
523
  "Attach evidence to each requirement with update_ledger, resolve failures, and try again.",
353
524
  ].join("\n"),
@@ -449,7 +620,9 @@ async function runOne(input, opts, chain = {}) {
449
620
  ? [
450
621
  "## Runtime task state",
451
622
  "This is authoritative state, not a new user request.",
452
- renderLedger(ledger),
623
+ renderLedger(ledger, {
624
+ allowWaived: verifierConfig.allowWaived,
625
+ }),
453
626
  "Use update_ledger to link evidence to each requirement and mark it verified. Do not claim completion while a required item is open or lacks evidence.",
454
627
  ].join("\n\n")
455
628
  : undefined,
@@ -834,7 +1007,7 @@ async function runOne(input, opts, chain = {}) {
834
1007
  available.set("create_task", defineTool({
835
1008
  name: "create_task",
836
1009
  description: "Create the task contract for this turn when the user asked for real work. " +
837
- "State a measurable goal and 1-12 independently checkable requirements, each assigned " +
1010
+ "State a measurable goal and 1-30 independently checkable requirements, each assigned " +
838
1011
  "to one of the strategy's phases. Do not include a source field; the engine derives " +
839
1012
  "the authoritative request from the user's messages.",
840
1013
  parameters: {
@@ -844,10 +1017,11 @@ async function runOne(input, opts, chain = {}) {
844
1017
  requirements: {
845
1018
  type: "array",
846
1019
  minItems: 1,
847
- maxItems: 12,
1020
+ maxItems: 30,
848
1021
  items: {
849
1022
  type: "object",
850
1023
  properties: {
1024
+ id: { type: "string" },
851
1025
  text: { type: "string" },
852
1026
  required: { type: "boolean" },
853
1027
  phase: {
@@ -855,6 +1029,7 @@ async function runOne(input, opts, chain = {}) {
855
1029
  enum: strategy.phases.map((item) => item.id),
856
1030
  },
857
1031
  sourceQuote: { type: "string" },
1032
+ dependsOn: { type: "array", items: { type: "string" } },
858
1033
  },
859
1034
  required: ["text", "phase"],
860
1035
  additionalProperties: false,
@@ -878,10 +1053,10 @@ async function runOne(input, opts, chain = {}) {
878
1053
  const rows = Array.isArray(input.requirements)
879
1054
  ? input.requirements
880
1055
  : [];
881
- if (rows.length < 1 || rows.length > 12) {
1056
+ if (rows.length < 1 || rows.length > 30) {
882
1057
  return {
883
1058
  ok: false,
884
- content: "requirements must contain 1-12 items",
1059
+ content: "requirements must contain 1-30 items",
885
1060
  };
886
1061
  }
887
1062
  const phaseIds = new Set(strategy.phases.map((item) => item.id));
@@ -914,22 +1089,52 @@ async function runOne(input, opts, chain = {}) {
914
1089
  content: `requirement ${index} sourceQuote is not in the user's request`,
915
1090
  };
916
1091
  }
1092
+ if (entry.id !== undefined && typeof entry.id !== "string") {
1093
+ return {
1094
+ ok: false,
1095
+ content: `requirement ${index} id must be a string`,
1096
+ };
1097
+ }
1098
+ if (entry.dependsOn !== undefined &&
1099
+ (!Array.isArray(entry.dependsOn) ||
1100
+ entry.dependsOn.some((item) => typeof item !== "string"))) {
1101
+ return {
1102
+ ok: false,
1103
+ content: `requirement ${index} dependsOn must be an array of requirement ids`,
1104
+ };
1105
+ }
1106
+ const id = typeof entry.id === "string" && entry.id.trim()
1107
+ ? entry.id.trim()
1108
+ : undefined;
917
1109
  requirements.push({
1110
+ ...(id ? { id } : {}),
918
1111
  text,
919
1112
  required: entry.required !== false,
920
1113
  phase,
921
1114
  ...(sourceQuote ? { sourceQuote } : {}),
1115
+ ...(Array.isArray(entry.dependsOn) && entry.dependsOn.length
1116
+ ? { dependsOn: entry.dependsOn }
1117
+ : {}),
922
1118
  });
923
1119
  }
924
- const next = createLedger({
925
- taskId: contractTaskId,
926
- source: { kind: "user", text: requestText },
927
- goal,
928
- requirements: requirements.map((item) => ({
929
- ...item,
930
- origin: "agent",
931
- })),
932
- });
1120
+ let next;
1121
+ try {
1122
+ next = createLedger({
1123
+ taskId: contractTaskId,
1124
+ source: { kind: "user", text: requestText },
1125
+ goal,
1126
+ requirements: requirements.map((item) => ({
1127
+ ...item,
1128
+ origin: "agent",
1129
+ })),
1130
+ });
1131
+ }
1132
+ catch (error) {
1133
+ return {
1134
+ ok: false,
1135
+ content: error instanceof Error ? error.message : String(error),
1136
+ };
1137
+ }
933
1138
  if (typeof input.nextStep === "string" && input.nextStep.trim()) {
934
1139
  next.nextStep = input.nextStep.trim();
935
1140
  }
@@ -948,6 +1153,9 @@ async function runOne(input, opts, chain = {}) {
948
1153
  meta: {
949
1154
  taskId: next.taskId,
950
1155
  requirements: next.requirements.map((item) => item.id),
1156
+ ready: readyRequirements(next, {
1157
+ allowWaived: verifierConfig.allowWaived,
1158
+ }),
951
1159
  },
952
1160
  };
953
1161
  }, { verb: "Creating the task contract" }));