@oni.bot/core 1.0.1 → 1.0.3

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 (214) hide show
  1. package/CHANGELOG.md +146 -126
  2. package/SECURITY.md +2 -2
  3. package/dist/agents/context.d.ts +0 -2
  4. package/dist/agents/context.d.ts.map +1 -1
  5. package/dist/agents/context.js +1 -3
  6. package/dist/agents/context.js.map +1 -1
  7. package/dist/agents/define-agent.d.ts.map +1 -1
  8. package/dist/agents/define-agent.js +99 -41
  9. package/dist/agents/define-agent.js.map +1 -1
  10. package/dist/agents/functional-agent.d.ts.map +1 -1
  11. package/dist/agents/functional-agent.js +0 -7
  12. package/dist/agents/functional-agent.js.map +1 -1
  13. package/dist/agents/types.d.ts +0 -2
  14. package/dist/agents/types.d.ts.map +1 -1
  15. package/dist/checkpoint.d.ts.map +1 -1
  16. package/dist/checkpoint.js +7 -2
  17. package/dist/checkpoint.js.map +1 -1
  18. package/dist/checkpointers/postgres.d.ts.map +1 -1
  19. package/dist/checkpointers/postgres.js +47 -31
  20. package/dist/checkpointers/postgres.js.map +1 -1
  21. package/dist/checkpointers/sqlite.js +4 -4
  22. package/dist/checkpointers/sqlite.js.map +1 -1
  23. package/dist/circuit-breaker.d.ts +1 -0
  24. package/dist/circuit-breaker.d.ts.map +1 -1
  25. package/dist/circuit-breaker.js +13 -0
  26. package/dist/circuit-breaker.js.map +1 -1
  27. package/dist/cli/dev.d.ts.map +1 -1
  28. package/dist/cli/dev.js +0 -1
  29. package/dist/cli/dev.js.map +1 -1
  30. package/dist/cli/router.js +1 -1
  31. package/dist/cli/run.d.ts.map +1 -1
  32. package/dist/cli/run.js +0 -1
  33. package/dist/cli/run.js.map +1 -1
  34. package/dist/config/loader.d.ts +1 -1
  35. package/dist/config/loader.d.ts.map +1 -1
  36. package/dist/config/loader.js +35 -5
  37. package/dist/config/loader.js.map +1 -1
  38. package/dist/context.d.ts +20 -0
  39. package/dist/context.d.ts.map +1 -1
  40. package/dist/context.js.map +1 -1
  41. package/dist/coordination/pubsub.d.ts +1 -0
  42. package/dist/coordination/pubsub.d.ts.map +1 -1
  43. package/dist/coordination/pubsub.js +31 -16
  44. package/dist/coordination/pubsub.js.map +1 -1
  45. package/dist/coordination/request-reply.d.ts +7 -0
  46. package/dist/coordination/request-reply.d.ts.map +1 -1
  47. package/dist/coordination/request-reply.js +65 -11
  48. package/dist/coordination/request-reply.js.map +1 -1
  49. package/dist/events/bus.d.ts +1 -0
  50. package/dist/events/bus.d.ts.map +1 -1
  51. package/dist/events/bus.js +16 -10
  52. package/dist/events/bus.js.map +1 -1
  53. package/dist/functional.d.ts.map +1 -1
  54. package/dist/functional.js +3 -0
  55. package/dist/functional.js.map +1 -1
  56. package/dist/graph.d.ts.map +1 -1
  57. package/dist/graph.js +21 -3
  58. package/dist/graph.js.map +1 -1
  59. package/dist/guardrails/audit.d.ts +4 -1
  60. package/dist/guardrails/audit.d.ts.map +1 -1
  61. package/dist/guardrails/audit.js +18 -1
  62. package/dist/guardrails/audit.js.map +1 -1
  63. package/dist/harness/agent-loop.d.ts.map +1 -1
  64. package/dist/harness/agent-loop.js +471 -352
  65. package/dist/harness/agent-loop.js.map +1 -1
  66. package/dist/harness/context-compactor.d.ts +1 -0
  67. package/dist/harness/context-compactor.d.ts.map +1 -1
  68. package/dist/harness/context-compactor.js +43 -1
  69. package/dist/harness/context-compactor.js.map +1 -1
  70. package/dist/harness/harness.d.ts +6 -0
  71. package/dist/harness/harness.d.ts.map +1 -1
  72. package/dist/harness/harness.js +32 -5
  73. package/dist/harness/harness.js.map +1 -1
  74. package/dist/harness/hooks-engine.d.ts.map +1 -1
  75. package/dist/harness/hooks-engine.js +12 -10
  76. package/dist/harness/hooks-engine.js.map +1 -1
  77. package/dist/harness/index.d.ts +3 -1
  78. package/dist/harness/index.d.ts.map +1 -1
  79. package/dist/harness/index.js +2 -0
  80. package/dist/harness/index.js.map +1 -1
  81. package/dist/harness/memory-loader.d.ts +150 -0
  82. package/dist/harness/memory-loader.d.ts.map +1 -0
  83. package/dist/harness/memory-loader.js +714 -0
  84. package/dist/harness/memory-loader.js.map +1 -0
  85. package/dist/harness/safety-gate.d.ts.map +1 -1
  86. package/dist/harness/safety-gate.js +47 -26
  87. package/dist/harness/safety-gate.js.map +1 -1
  88. package/dist/harness/skill-loader.d.ts +7 -0
  89. package/dist/harness/skill-loader.d.ts.map +1 -1
  90. package/dist/harness/skill-loader.js +24 -8
  91. package/dist/harness/skill-loader.js.map +1 -1
  92. package/dist/harness/todo-module.d.ts.map +1 -1
  93. package/dist/harness/todo-module.js +13 -6
  94. package/dist/harness/todo-module.js.map +1 -1
  95. package/dist/harness/types.d.ts +7 -0
  96. package/dist/harness/types.d.ts.map +1 -1
  97. package/dist/harness/types.js.map +1 -1
  98. package/dist/harness/validate-args.js +18 -3
  99. package/dist/harness/validate-args.js.map +1 -1
  100. package/dist/hitl/interrupt.d.ts +2 -2
  101. package/dist/hitl/interrupt.d.ts.map +1 -1
  102. package/dist/hitl/interrupt.js +6 -4
  103. package/dist/hitl/interrupt.js.map +1 -1
  104. package/dist/hitl/resume.d.ts +10 -0
  105. package/dist/hitl/resume.d.ts.map +1 -1
  106. package/dist/hitl/resume.js +31 -0
  107. package/dist/hitl/resume.js.map +1 -1
  108. package/dist/index.js +1 -1
  109. package/dist/injected.d.ts.map +1 -1
  110. package/dist/injected.js.map +1 -1
  111. package/dist/inspect.d.ts.map +1 -1
  112. package/dist/inspect.js +28 -8
  113. package/dist/inspect.js.map +1 -1
  114. package/dist/lsp/client.d.ts +2 -0
  115. package/dist/lsp/client.d.ts.map +1 -1
  116. package/dist/lsp/client.js +62 -17
  117. package/dist/lsp/client.js.map +1 -1
  118. package/dist/lsp/index.d.ts.map +1 -1
  119. package/dist/lsp/index.js.map +1 -1
  120. package/dist/mcp/client.d.ts +2 -0
  121. package/dist/mcp/client.d.ts.map +1 -1
  122. package/dist/mcp/client.js +45 -14
  123. package/dist/mcp/client.js.map +1 -1
  124. package/dist/mcp/convert.js +1 -1
  125. package/dist/mcp/convert.js.map +1 -1
  126. package/dist/mcp/transport.d.ts +2 -0
  127. package/dist/mcp/transport.d.ts.map +1 -1
  128. package/dist/mcp/transport.js +33 -8
  129. package/dist/mcp/transport.js.map +1 -1
  130. package/dist/messages/index.d.ts.map +1 -1
  131. package/dist/messages/index.js +7 -1
  132. package/dist/messages/index.js.map +1 -1
  133. package/dist/models/anthropic.d.ts.map +1 -1
  134. package/dist/models/anthropic.js +25 -15
  135. package/dist/models/anthropic.js.map +1 -1
  136. package/dist/models/google.d.ts.map +1 -1
  137. package/dist/models/google.js +23 -7
  138. package/dist/models/google.js.map +1 -1
  139. package/dist/models/ollama.d.ts.map +1 -1
  140. package/dist/models/ollama.js +11 -1
  141. package/dist/models/ollama.js.map +1 -1
  142. package/dist/models/openai.d.ts.map +1 -1
  143. package/dist/models/openai.js +15 -3
  144. package/dist/models/openai.js.map +1 -1
  145. package/dist/models/openrouter.d.ts.map +1 -1
  146. package/dist/models/openrouter.js +14 -3
  147. package/dist/models/openrouter.js.map +1 -1
  148. package/dist/prebuilt/react-agent.d.ts.map +1 -1
  149. package/dist/prebuilt/react-agent.js +1 -0
  150. package/dist/prebuilt/react-agent.js.map +1 -1
  151. package/dist/pregel.d.ts +11 -6
  152. package/dist/pregel.d.ts.map +1 -1
  153. package/dist/pregel.js +473 -349
  154. package/dist/pregel.js.map +1 -1
  155. package/dist/retry.d.ts.map +1 -1
  156. package/dist/retry.js +7 -6
  157. package/dist/retry.js.map +1 -1
  158. package/dist/store/index.d.ts +1 -1
  159. package/dist/store/index.d.ts.map +1 -1
  160. package/dist/store/index.js +63 -13
  161. package/dist/store/index.js.map +1 -1
  162. package/dist/stream-events.d.ts.map +1 -1
  163. package/dist/stream-events.js +3 -9
  164. package/dist/stream-events.js.map +1 -1
  165. package/dist/streaming.d.ts +5 -2
  166. package/dist/streaming.d.ts.map +1 -1
  167. package/dist/streaming.js +9 -8
  168. package/dist/streaming.js.map +1 -1
  169. package/dist/swarm/graph.d.ts +16 -2
  170. package/dist/swarm/graph.d.ts.map +1 -1
  171. package/dist/swarm/graph.js +204 -53
  172. package/dist/swarm/graph.js.map +1 -1
  173. package/dist/swarm/index.d.ts +2 -1
  174. package/dist/swarm/index.d.ts.map +1 -1
  175. package/dist/swarm/index.js.map +1 -1
  176. package/dist/swarm/mailbox.d.ts.map +1 -1
  177. package/dist/swarm/mailbox.js +3 -1
  178. package/dist/swarm/mailbox.js.map +1 -1
  179. package/dist/swarm/mermaid.d.ts +2 -1
  180. package/dist/swarm/mermaid.d.ts.map +1 -1
  181. package/dist/swarm/mermaid.js +6 -3
  182. package/dist/swarm/mermaid.js.map +1 -1
  183. package/dist/swarm/pool.d.ts.map +1 -1
  184. package/dist/swarm/pool.js +30 -5
  185. package/dist/swarm/pool.js.map +1 -1
  186. package/dist/swarm/registry.d.ts.map +1 -1
  187. package/dist/swarm/registry.js +7 -0
  188. package/dist/swarm/registry.js.map +1 -1
  189. package/dist/swarm/scaling.d.ts +10 -1
  190. package/dist/swarm/scaling.d.ts.map +1 -1
  191. package/dist/swarm/scaling.js +85 -14
  192. package/dist/swarm/scaling.js.map +1 -1
  193. package/dist/swarm/snapshot.d.ts.map +1 -1
  194. package/dist/swarm/snapshot.js +10 -1
  195. package/dist/swarm/snapshot.js.map +1 -1
  196. package/dist/swarm/supervisor.js +20 -12
  197. package/dist/swarm/supervisor.js.map +1 -1
  198. package/dist/swarm/tracer.d.ts +3 -1
  199. package/dist/swarm/tracer.d.ts.map +1 -1
  200. package/dist/swarm/tracer.js +66 -15
  201. package/dist/swarm/tracer.js.map +1 -1
  202. package/dist/swarm/types.d.ts +1 -6
  203. package/dist/swarm/types.d.ts.map +1 -1
  204. package/dist/testing/index.d.ts +2 -2
  205. package/dist/testing/index.d.ts.map +1 -1
  206. package/dist/testing/index.js.map +1 -1
  207. package/dist/tools/define.d.ts.map +1 -1
  208. package/dist/tools/define.js +1 -0
  209. package/dist/tools/define.js.map +1 -1
  210. package/dist/tools/types.d.ts +2 -0
  211. package/dist/tools/types.d.ts.map +1 -1
  212. package/dist/types.d.ts +3 -1
  213. package/dist/types.d.ts.map +1 -1
  214. package/package.json +7 -1
@@ -1 +1 @@
1
- {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/swarm/graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/swarm/graph.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,7 @@ export class SwarmGraph {
38
38
  agentIds = new Set();
39
39
  supervisorNodeName = "__supervisor__";
40
40
  hasSupervisor = false;
41
+ onErrorPolicy = "fallback";
41
42
  _broker;
42
43
  _pubsub;
43
44
  get broker() {
@@ -76,6 +77,7 @@ export class SwarmGraph {
76
77
  deadlineMs: config.supervisor.deadlineMs,
77
78
  autoRecover: config.supervisor.autoRecover,
78
79
  });
80
+ swarm.onErrorPolicy = config.onError ?? "fallback";
79
81
  return swarm;
80
82
  }
81
83
  // ---- Static factory: fan-out template ----
@@ -154,6 +156,9 @@ export class SwarmGraph {
154
156
  * transition (e.g. loop back for review cycles).
155
157
  */
156
158
  static pipeline(config) {
159
+ if (config.stages.length === 0) {
160
+ throw new Error("SwarmGraph.pipeline: stages must contain at least one agent.");
161
+ }
157
162
  const swarm = new SwarmGraph(config.channels);
158
163
  const ids = config.stages.map((a) => a.id);
159
164
  for (const agentDef of config.stages) {
@@ -205,8 +210,11 @@ export class SwarmGraph {
205
210
  * fan-out via Send, and collect results through a reducer node.
206
211
  */
207
212
  static mapReduce(config) {
208
- const swarm = new SwarmGraph(config.channels);
209
213
  const poolSize = config.poolSize ?? 1;
214
+ if (poolSize < 1) {
215
+ throw new Error("SwarmGraph.mapReduce: poolSize must be at least 1.");
216
+ }
217
+ const swarm = new SwarmGraph(config.channels);
210
218
  // Register poolSize copies of the mapper agent
211
219
  const mapperIds = [];
212
220
  for (let i = 0; i < poolSize; i++) {
@@ -227,15 +235,39 @@ export class SwarmGraph {
227
235
  });
228
236
  // Wiring: START → __splitter__
229
237
  swarm.inner.addEdge(START, "__splitter__");
230
- // __splitter__ → Send to mapper agents round-robin across pool
238
+ // __splitter__ → Send to mapper agents using the configured poolStrategy
231
239
  const inputField = config.inputField;
240
+ const strategy = config.poolStrategy ?? "round-robin";
232
241
  swarm.inner.addConditionalEdges("__splitter__", ((state) => {
233
242
  const items = state[inputField];
234
243
  if (!Array.isArray(items) || items.length === 0) {
235
244
  return "__reducer__";
236
245
  }
246
+ // Per-batch assignment counts — used by least-busy strategy
247
+ const assignCounts = new Map(mapperIds.map((id) => [id, 0]));
237
248
  return items.map((item, idx) => {
238
- const targetId = mapperIds[idx % mapperIds.length];
249
+ let targetId;
250
+ if (strategy === "random") {
251
+ targetId = mapperIds[Math.floor(Math.random() * mapperIds.length)];
252
+ }
253
+ else if (strategy === "least-busy") {
254
+ // Pick the mapper with fewest assignments in this batch so far
255
+ let minCount = Infinity;
256
+ let minId = mapperIds[0];
257
+ for (const id of mapperIds) {
258
+ const c = assignCounts.get(id) ?? 0;
259
+ if (c < minCount) {
260
+ minCount = c;
261
+ minId = id;
262
+ }
263
+ }
264
+ targetId = minId;
265
+ }
266
+ else {
267
+ // round-robin (default)
268
+ targetId = mapperIds[idx % mapperIds.length];
269
+ }
270
+ assignCounts.set(targetId, (assignCounts.get(targetId) ?? 0) + 1);
239
271
  return new Send(targetId, { ...state, task: String(item) });
240
272
  });
241
273
  }));
@@ -254,6 +286,9 @@ export class SwarmGraph {
254
286
  * and decides whether consensus has been reached.
255
287
  */
256
288
  static debate(config) {
289
+ if (config.debaters.length === 0) {
290
+ throw new Error("SwarmGraph.debate: debaters must contain at least one agent.");
291
+ }
257
292
  const swarm = new SwarmGraph(config.channels);
258
293
  const debaterIds = config.debaters.map((d) => d.id);
259
294
  const consensusKeyword = config.judge.consensusKeyword ?? "CONSENSUS";
@@ -378,15 +413,17 @@ export class SwarmGraph {
378
413
  });
379
414
  }
380
415
  const teamSkeleton = teamSwarm.compile();
381
- // Mount team as a single node in the outer graph
416
+ // Mount team as a single node in the outer graph.
417
+ // Spread all top-level fields from teamResult (including done, context)
418
+ // so they propagate to the outer coordinator state.
382
419
  swarm.inner.addNode(teamId, async (state, cfg) => {
383
420
  const teamResult = await teamSkeleton.invoke(state, cfg);
384
421
  return {
422
+ ...teamResult,
385
423
  agentResults: {
386
424
  ...(state.agentResults ?? {}),
387
425
  [teamId]: teamResult,
388
426
  },
389
- messages: teamResult.messages ?? [],
390
427
  };
391
428
  });
392
429
  }
@@ -425,6 +462,22 @@ export class SwarmGraph {
425
462
  goto: target,
426
463
  });
427
464
  }
465
+ // Rule-based strategy: evaluate rules in order, route to the first match
466
+ if (config.coordinator.strategy === "rule") {
467
+ const rules = config.coordinator.rules ?? [];
468
+ const task = String(state.task ?? "");
469
+ const ctx = (state.context ?? {});
470
+ for (const rule of rules) {
471
+ if (rule.condition(task, ctx)) {
472
+ return new Command({
473
+ update: { supervisorRound: round + 1, currentAgent: rule.agentId },
474
+ goto: rule.agentId,
475
+ });
476
+ }
477
+ }
478
+ // No matching rule — done
479
+ return { done: true, supervisorRound: round + 1 };
480
+ }
428
481
  return { done: true };
429
482
  });
430
483
  // Wiring: START → coordinator
@@ -453,7 +506,6 @@ export class SwarmGraph {
453
506
  */
454
507
  static race(config) {
455
508
  const swarm = new SwarmGraph(config.channels);
456
- const agentIds = config.agents.map((a) => a.id);
457
509
  const accept = config.accept ?? (() => true);
458
510
  const timeoutMs = config.timeoutMs;
459
511
  // Register agents so they appear in the registry
@@ -461,37 +513,53 @@ export class SwarmGraph {
461
513
  swarm.registry.register(agentDef);
462
514
  swarm.agentIds.add(agentDef.id);
463
515
  }
464
- // Single node that races all agents
516
+ // Single node that races all agents — resolves as soon as one produces
517
+ // an acceptable result (true Promise.race semantics, not Promise.all).
465
518
  swarm.inner.addNode("__race__", async (state, cfg) => {
466
- const promises = config.agents.map(async (agent) => {
467
- try {
468
- const result = await agent.skeleton.invoke({ ...state }, { ...cfg, agentId: agent.id });
469
- return { id: agent.id, result, error: null };
470
- }
471
- catch (err) {
472
- return { id: agent.id, result: null, error: err };
519
+ const agentPromises = config.agents.map((agent) => {
520
+ const p = agent.skeleton
521
+ .invoke({ ...state }, { ...cfg, agentId: agent.id })
522
+ .then((result) => ({ id: agent.id, result, error: null }), (err) => ({ id: agent.id, result: null, error: err }));
523
+ if (timeoutMs != null) {
524
+ return Promise.race([
525
+ p,
526
+ new Promise((resolve) => setTimeout(() => resolve({ id: agent.id, result: null, error: new Error("timeout") }), timeoutMs)),
527
+ ]);
473
528
  }
529
+ return p;
474
530
  });
475
- let allResults;
476
- if (timeoutMs != null) {
477
- // Wrap each promise with a timeout
478
- const timedPromises = promises.map((p) => Promise.race([
479
- p,
480
- new Promise((resolve) => setTimeout(() => resolve({ id: "?", result: null, error: new Error("timeout") }), timeoutMs)),
481
- ]));
482
- allResults = await Promise.all(timedPromises);
483
- }
484
- else {
485
- allResults = await Promise.all(promises);
486
- }
487
- // Find the first acceptable result (in order of agent definition)
488
- for (const { id, result, error } of allResults) {
489
- if (!error && accept(result)) {
490
- return {
491
- agentResults: { [id]: result },
492
- context: { ...(state.context ?? {}), raceWinner: id },
493
- };
531
+ // Resolve as soon as the first acceptable result arrives.
532
+ const winner = await new Promise((resolve) => {
533
+ let remaining = agentPromises.length;
534
+ if (remaining === 0) {
535
+ resolve(null);
536
+ return;
494
537
  }
538
+ for (const p of agentPromises) {
539
+ p.then((r) => {
540
+ let accepted = false;
541
+ try {
542
+ accepted = !r.error && accept(r.result);
543
+ }
544
+ catch {
545
+ // accept() threw — treat as not accepted to keep remaining decrement working
546
+ }
547
+ if (accepted) {
548
+ resolve(r);
549
+ }
550
+ else {
551
+ remaining--;
552
+ if (remaining === 0)
553
+ resolve(null);
554
+ }
555
+ });
556
+ }
557
+ });
558
+ if (winner) {
559
+ return {
560
+ agentResults: { [winner.id]: winner.result },
561
+ context: { ...(state.context ?? {}), raceWinner: winner.id },
562
+ };
495
563
  }
496
564
  // No acceptable result
497
565
  return {
@@ -513,7 +581,7 @@ export class SwarmGraph {
513
581
  static dag(config) {
514
582
  const agentMap = new Map(config.agents.map((a) => [a.id, a]));
515
583
  // Validate dependencies
516
- for (const [node, deps] of Object.entries(config.dependencies)) {
584
+ for (const [_node, deps] of Object.entries(config.dependencies)) {
517
585
  for (const dep of deps) {
518
586
  if (!agentMap.has(dep)) {
519
587
  throw new Error(`Dependency "${dep}" not found in agents list.`);
@@ -547,8 +615,8 @@ export class SwarmGraph {
547
615
  }
548
616
  // Group agents into layers based on dependencies
549
617
  const deps = config.dependencies;
550
- const rootIds = config.agents.filter((a) => !deps[a.id]?.length).map((a) => a.id);
551
- const nonRootIds = config.agents.filter((a) => deps[a.id]?.length).map((a) => a.id);
618
+ const _rootIds = config.agents.filter((a) => !deps[a.id]?.length).map((a) => a.id);
619
+ const _nonRootIds = config.agents.filter((a) => deps[a.id]?.length).map((a) => a.id);
552
620
  // For DAG execution: use a single orchestrator node
553
621
  swarm.inner.addNode("__dag_runner__", async (state, cfg) => {
554
622
  const results = {};
@@ -617,17 +685,37 @@ export class SwarmGraph {
617
685
  idx,
618
686
  targetId: poolIds[idx % poolIds.length],
619
687
  }));
620
- await new Promise((resolve, reject) => {
688
+ await new Promise((resolve, _reject) => {
621
689
  let completed = 0;
622
690
  const total = queue.length;
623
691
  function processNext() {
624
692
  while (running < poolSize && queue.length > 0) {
625
693
  const work = queue.shift();
694
+ // Respect removeAgent() — if the assigned slot was removed, redirect
695
+ // to an active pool slot; if none remain, mark the item as failed.
696
+ let agentDef = swarm.registry.getDef(work.targetId);
697
+ if (!agentDef) {
698
+ const activeIds = poolIds.filter((id) => !!swarm.registry.getDef(id));
699
+ if (activeIds.length > 0) {
700
+ work.targetId = activeIds[work.idx % activeIds.length];
701
+ agentDef = swarm.registry.getDef(work.targetId);
702
+ }
703
+ else {
704
+ results[`item_${work.idx}`] = { _error: `Pool slot removed; no active agents remain` };
705
+ completed++;
706
+ if (completed === total)
707
+ resolve();
708
+ continue;
709
+ }
710
+ }
626
711
  running++;
627
- const agent = swarm.registry.getDef(work.targetId)
628
- ?? config.agent;
629
- const skeleton = agent.skeleton;
630
- skeleton.invoke({ ...state, task: String(work.item) }, { ...cfg, agentId: work.targetId }).then((result) => {
712
+ // Use the full wrapped agentNode (hooks, retries, timeout) stored
713
+ // by addAgent() in swarm.inner.nodes rather than raw skeleton.invoke.
714
+ const wrappedFn = swarm.inner.nodes.get(work.targetId)?.fn;
715
+ const invocation = wrappedFn
716
+ ? wrappedFn({ ...state, task: String(work.item) }, { ...cfg, agentId: work.targetId })
717
+ : agentDef.skeleton.invoke({ ...state, task: String(work.item) }, { ...cfg, agentId: work.targetId });
718
+ invocation.then((result) => {
631
719
  results[`item_${work.idx}`] = result;
632
720
  running--;
633
721
  completed++;
@@ -665,6 +753,9 @@ export class SwarmGraph {
665
753
  * Each stage runs a compiled sub-swarm, passing state through.
666
754
  */
667
755
  static compose(config) {
756
+ if (config.stages.length === 0) {
757
+ throw new Error("SwarmGraph.compose: stages must contain at least one sub-swarm.");
758
+ }
668
759
  const swarm = new SwarmGraph(config.channels);
669
760
  const stageIds = config.stages.map((s) => s.id);
670
761
  for (const stage of config.stages) {
@@ -774,7 +865,6 @@ export class SwarmGraph {
774
865
  [def.id]: result,
775
866
  },
776
867
  handoffHistory: [
777
- ...(state.handoffHistory ?? []),
778
868
  {
779
869
  from: def.id,
780
870
  to: "__completed__",
@@ -787,7 +877,6 @@ export class SwarmGraph {
787
877
  }
788
878
  catch (err) {
789
879
  lastError = err;
790
- this.registry.markError(def.id);
791
880
  if (attempt < maxRetries) {
792
881
  // Backoff delay between retries — clamped to remaining deadline
793
882
  if (retryDelayMs > 0) {
@@ -805,7 +894,8 @@ export class SwarmGraph {
805
894
  }
806
895
  }
807
896
  }
808
- // All retries exhausted — fire onError hook
897
+ // All retries exhausted — mark error once, then fire onError hook
898
+ this.registry.markError(def.id);
809
899
  await def.hooks?.onError?.(def.id, lastError);
810
900
  // Keep agent in error status (don't reset to idle)
811
901
  // Build structured error context
@@ -814,7 +904,7 @@ export class SwarmGraph {
814
904
  errStr.includes("model") ? "model_error" :
815
905
  errStr.includes("tool") ? "tool_error" :
816
906
  "unknown";
817
- if (this.hasSupervisor) {
907
+ if (this.hasSupervisor && this.onErrorPolicy !== "throw") {
818
908
  return new Command({
819
909
  update: {
820
910
  context: {
@@ -831,7 +921,7 @@ export class SwarmGraph {
831
921
  goto: this.supervisorNodeName,
832
922
  });
833
923
  }
834
- // No supervisor — rethrow
924
+ // No supervisor, or onError: "throw" — rethrow
835
925
  throw lastError;
836
926
  };
837
927
  this.inner.addNode(def.id, agentNode);
@@ -895,8 +985,12 @@ export class SwarmGraph {
895
985
  if (edge.type === "static") {
896
986
  edgeTargets.add(edge.to);
897
987
  }
898
- // Conditional edges: the 'from' node is reachable if it has incoming edges
899
- edgeTargets.add(edge.from);
988
+ // Conditional edges also declare a reachable target
989
+ if (edge.type === "conditional" && edge.pathMap) {
990
+ for (const target of Object.values(edge.pathMap)) {
991
+ edgeTargets.add(target);
992
+ }
993
+ }
900
994
  }
901
995
  for (const agentId of this.agentIds) {
902
996
  if (!edgeTargets.has(agentId)) {
@@ -922,21 +1016,51 @@ export class SwarmGraph {
922
1016
  // ---- Compile ----
923
1017
  compile(opts = {}) {
924
1018
  const skeleton = this.inner.compile({
925
- ...(opts.checkpointer ? { checkpointer: opts.checkpointer } : {}),
926
- ...(opts.interruptBefore ? { interruptBefore: opts.interruptBefore } : {}),
927
- ...(opts.interruptAfter ? { interruptAfter: opts.interruptAfter } : {}),
1019
+ ...(opts.checkpointer !== undefined ? { checkpointer: opts.checkpointer } : {}),
1020
+ ...(opts.interruptBefore !== undefined ? { interruptBefore: opts.interruptBefore } : {}),
1021
+ ...(opts.interruptAfter !== undefined ? { interruptAfter: opts.interruptAfter } : {}),
1022
+ ...(opts.store !== undefined ? { store: opts.store } : {}),
1023
+ ...(opts.guardrails !== undefined ? { guardrails: opts.guardrails } : {}),
1024
+ ...(opts.listeners !== undefined ? { listeners: opts.listeners } : {}),
1025
+ ...(opts.defaults !== undefined ? { defaults: opts.defaults } : {}),
1026
+ ...(opts.deadLetterQueue !== undefined ? { deadLetterQueue: opts.deadLetterQueue } : {}),
1027
+ ...(opts.tracer !== undefined ? { tracer: opts.tracer } : {}),
928
1028
  });
929
1029
  const registry = this.registry;
930
1030
  const inner = this.inner;
931
1031
  const hasSupervisor = this.hasSupervisor;
932
1032
  const supervisorNodeName = this.supervisorNodeName;
933
- const self = this;
934
1033
  // Attach swarm-specific extensions
935
1034
  const extensions = {
936
1035
  registry,
937
1036
  agentStats: () => registry.stats(),
938
- toMermaid: () => inner.toMermaid(),
1037
+ toMermaid: () => {
1038
+ // Read from the live runner's edge map so the diagram reflects
1039
+ // agents added/removed via spawnAgent()/removeAgent() after compile.
1040
+ const runner = skeleton._runner;
1041
+ const edgesBySource = runner?._edgesBySource;
1042
+ if (!edgesBySource)
1043
+ return inner.toMermaid(); // safe fallback
1044
+ const lines = ["graph TD"];
1045
+ for (const [from, edges] of edgesBySource) {
1046
+ for (const edge of edges) {
1047
+ if (edge.type === "static" && edge.to !== undefined) {
1048
+ lines.push(` ${from} --> ${edge.to}`);
1049
+ }
1050
+ else {
1051
+ lines.push(` ${from} -->|?| conditional_${from}`);
1052
+ }
1053
+ }
1054
+ }
1055
+ return lines.join("\n");
1056
+ },
939
1057
  spawnAgent(def) {
1058
+ // spawnAgent requires a supervisor to route the spawned agent back into the graph.
1059
+ // In unsupervised topologies there is no return path, so the agent would never execute.
1060
+ if (!hasSupervisor) {
1061
+ throw new Error(`spawnAgent() requires a supervisor node. ` +
1062
+ `Use SwarmGraph.hierarchical() to add a supervisor, or call addAgent() before compile() for static topologies.`);
1063
+ }
940
1064
  // Register in the registry
941
1065
  registry.register(def);
942
1066
  // Create the agent node function (same logic as addAgent)
@@ -977,9 +1101,36 @@ export class SwarmGraph {
977
1101
  if (runner?.nodes) {
978
1102
  runner.nodes.set(def.id, { name: def.id, fn: agentNode });
979
1103
  }
1104
+ // In supervised swarms, add a conditional return edge so the runner
1105
+ // knows to send this agent's output back to the supervisor (or END).
1106
+ if (hasSupervisor && runner) {
1107
+ const returnEdge = {
1108
+ type: "conditional",
1109
+ from: def.id,
1110
+ condition: (st) => st.done ? END : supervisorNodeName,
1111
+ };
1112
+ const edgesBySource = runner._edgesBySource;
1113
+ const list = edgesBySource.get(def.id) ?? [];
1114
+ list.push(returnEdge);
1115
+ edgesBySource.set(def.id, list);
1116
+ }
980
1117
  },
981
1118
  removeAgent(agentId) {
982
1119
  registry.deregister(agentId);
1120
+ const runner = skeleton._runner;
1121
+ if (runner?.nodes)
1122
+ runner.nodes.delete(agentId);
1123
+ // Remove stale edges pointing TO the removed agent so Pregel doesn't try to route to it.
1124
+ // Also remove edges FROM the agent (it won't execute, but keeps _edgesBySource clean).
1125
+ if (runner?._edgesBySource) {
1126
+ const edgesBySource = runner._edgesBySource;
1127
+ for (const [from, edges] of edgesBySource) {
1128
+ const filtered = edges.filter((e) => !(e.type === "static" && e.to === agentId));
1129
+ if (filtered.length !== edges.length)
1130
+ edgesBySource.set(from, filtered);
1131
+ }
1132
+ edgesBySource.delete(agentId);
1133
+ }
983
1134
  },
984
1135
  };
985
1136
  return Object.assign(skeleton, extensions);