@oni.bot/core 1.0.2 → 1.1.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.
- package/CHANGELOG.md +146 -146
- package/dist/agents/define-agent.d.ts.map +1 -1
- package/dist/agents/define-agent.js +7 -2
- package/dist/agents/define-agent.js.map +1 -1
- package/dist/checkpoint.d.ts.map +1 -1
- package/dist/checkpoint.js +7 -2
- package/dist/checkpoint.js.map +1 -1
- package/dist/checkpointers/postgres.d.ts.map +1 -1
- package/dist/checkpointers/postgres.js +45 -28
- package/dist/checkpointers/postgres.js.map +1 -1
- package/dist/circuit-breaker.d.ts +1 -0
- package/dist/circuit-breaker.d.ts.map +1 -1
- package/dist/circuit-breaker.js +13 -0
- package/dist/circuit-breaker.js.map +1 -1
- package/dist/cli/dev.d.ts.map +1 -1
- package/dist/cli/dev.js +0 -1
- package/dist/cli/dev.js.map +1 -1
- package/dist/cli/inspect.d.ts.map +1 -1
- package/dist/cli/inspect.js +4 -2
- package/dist/cli/inspect.js.map +1 -1
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +0 -1
- package/dist/cli/run.js.map +1 -1
- package/dist/config/loader.d.ts +1 -1
- package/dist/config/loader.js +12 -4
- package/dist/config/loader.js.map +1 -1
- package/dist/coordination/pubsub.d.ts +1 -0
- package/dist/coordination/pubsub.d.ts.map +1 -1
- package/dist/coordination/pubsub.js +31 -16
- package/dist/coordination/pubsub.js.map +1 -1
- package/dist/coordination/request-reply.d.ts +17 -2
- package/dist/coordination/request-reply.d.ts.map +1 -1
- package/dist/coordination/request-reply.js +56 -14
- package/dist/coordination/request-reply.js.map +1 -1
- package/dist/events/bus.d.ts +1 -0
- package/dist/events/bus.d.ts.map +1 -1
- package/dist/events/bus.js +17 -10
- package/dist/events/bus.js.map +1 -1
- package/dist/functional.d.ts.map +1 -1
- package/dist/functional.js +3 -0
- package/dist/functional.js.map +1 -1
- package/dist/graph.d.ts +11 -1
- package/dist/graph.d.ts.map +1 -1
- package/dist/graph.js +9 -4
- package/dist/graph.js.map +1 -1
- package/dist/guardrails/audit.d.ts +4 -1
- package/dist/guardrails/audit.d.ts.map +1 -1
- package/dist/guardrails/audit.js +18 -1
- package/dist/guardrails/audit.js.map +1 -1
- package/dist/harness/agent-loop.d.ts +1 -7
- package/dist/harness/agent-loop.d.ts.map +1 -1
- package/dist/harness/agent-loop.js +2 -523
- package/dist/harness/agent-loop.js.map +1 -1
- package/dist/harness/context-compactor.d.ts +1 -0
- package/dist/harness/context-compactor.d.ts.map +1 -1
- package/dist/harness/context-compactor.js +43 -1
- package/dist/harness/context-compactor.js.map +1 -1
- package/dist/harness/harness.d.ts +6 -0
- package/dist/harness/harness.d.ts.map +1 -1
- package/dist/harness/harness.js +32 -5
- package/dist/harness/harness.js.map +1 -1
- package/dist/harness/hooks-engine.d.ts.map +1 -1
- package/dist/harness/hooks-engine.js +12 -10
- package/dist/harness/hooks-engine.js.map +1 -1
- package/dist/harness/index.d.ts +3 -1
- package/dist/harness/index.d.ts.map +1 -1
- package/dist/harness/index.js +2 -0
- package/dist/harness/index.js.map +1 -1
- package/dist/harness/loop/hooks.d.ts +7 -0
- package/dist/harness/loop/hooks.d.ts.map +1 -0
- package/dist/harness/loop/hooks.js +46 -0
- package/dist/harness/loop/hooks.js.map +1 -0
- package/dist/harness/loop/index.d.ts +8 -0
- package/dist/harness/loop/index.d.ts.map +1 -0
- package/dist/harness/loop/index.js +257 -0
- package/dist/harness/loop/index.js.map +1 -0
- package/dist/harness/loop/inference.d.ts +19 -0
- package/dist/harness/loop/inference.d.ts.map +1 -0
- package/dist/harness/loop/inference.js +121 -0
- package/dist/harness/loop/inference.js.map +1 -0
- package/dist/harness/loop/memory.d.ts +22 -0
- package/dist/harness/loop/memory.d.ts.map +1 -0
- package/dist/harness/loop/memory.js +73 -0
- package/dist/harness/loop/memory.js.map +1 -0
- package/dist/harness/loop/safety.d.ts +8 -0
- package/dist/harness/loop/safety.d.ts.map +1 -0
- package/dist/harness/loop/safety.js +21 -0
- package/dist/harness/loop/safety.js.map +1 -0
- package/dist/harness/loop/tools.d.ts +24 -0
- package/dist/harness/loop/tools.d.ts.map +1 -0
- package/dist/harness/loop/tools.js +184 -0
- package/dist/harness/loop/tools.js.map +1 -0
- package/dist/harness/loop/types.d.ts +7 -0
- package/dist/harness/loop/types.d.ts.map +1 -0
- package/dist/harness/loop/types.js +9 -0
- package/dist/harness/loop/types.js.map +1 -0
- package/dist/harness/memory/fs-compat.d.ts +3 -0
- package/dist/harness/memory/fs-compat.d.ts.map +1 -0
- package/dist/harness/memory/fs-compat.js +26 -0
- package/dist/harness/memory/fs-compat.js.map +1 -0
- package/dist/harness/memory/index.d.ts +105 -0
- package/dist/harness/memory/index.d.ts.map +1 -0
- package/dist/harness/memory/index.js +491 -0
- package/dist/harness/memory/index.js.map +1 -0
- package/dist/harness/memory/prompter.d.ts +7 -0
- package/dist/harness/memory/prompter.d.ts.map +1 -0
- package/dist/harness/memory/prompter.js +24 -0
- package/dist/harness/memory/prompter.js.map +1 -0
- package/dist/harness/memory/ranker.d.ts +15 -0
- package/dist/harness/memory/ranker.d.ts.map +1 -0
- package/dist/harness/memory/ranker.js +72 -0
- package/dist/harness/memory/ranker.js.map +1 -0
- package/dist/harness/memory/scanner.d.ts +26 -0
- package/dist/harness/memory/scanner.d.ts.map +1 -0
- package/dist/harness/memory/scanner.js +187 -0
- package/dist/harness/memory/scanner.js.map +1 -0
- package/dist/harness/memory/types.d.ts +50 -0
- package/dist/harness/memory/types.d.ts.map +1 -0
- package/dist/harness/memory/types.js +7 -0
- package/dist/harness/memory/types.js.map +1 -0
- package/dist/harness/memory-loader.d.ts +3 -0
- package/dist/harness/memory-loader.d.ts.map +1 -0
- package/dist/harness/memory-loader.js +2 -0
- package/dist/harness/memory-loader.js.map +1 -0
- package/dist/harness/safety-gate.d.ts.map +1 -1
- package/dist/harness/safety-gate.js +47 -26
- package/dist/harness/safety-gate.js.map +1 -1
- package/dist/harness/skill-loader.d.ts +7 -0
- package/dist/harness/skill-loader.d.ts.map +1 -1
- package/dist/harness/skill-loader.js +24 -8
- package/dist/harness/skill-loader.js.map +1 -1
- package/dist/harness/todo-module.d.ts.map +1 -1
- package/dist/harness/todo-module.js +13 -6
- package/dist/harness/todo-module.js.map +1 -1
- package/dist/harness/types.d.ts +7 -0
- package/dist/harness/types.d.ts.map +1 -1
- package/dist/harness/types.js.map +1 -1
- package/dist/harness/validate-args.js +18 -3
- package/dist/harness/validate-args.js.map +1 -1
- package/dist/hitl/interrupt.d.ts +2 -2
- package/dist/hitl/interrupt.d.ts.map +1 -1
- package/dist/hitl/interrupt.js +8 -5
- package/dist/hitl/interrupt.js.map +1 -1
- package/dist/hitl/resume.d.ts +10 -0
- package/dist/hitl/resume.d.ts.map +1 -1
- package/dist/hitl/resume.js +31 -0
- package/dist/hitl/resume.js.map +1 -1
- package/dist/injected.d.ts.map +1 -1
- package/dist/injected.js.map +1 -1
- package/dist/inspect.d.ts.map +1 -1
- package/dist/inspect.js +28 -8
- package/dist/inspect.js.map +1 -1
- package/dist/lsp/client.d.ts +2 -0
- package/dist/lsp/client.d.ts.map +1 -1
- package/dist/lsp/client.js +62 -17
- package/dist/lsp/client.js.map +1 -1
- package/dist/lsp/index.d.ts.map +1 -1
- package/dist/lsp/index.js.map +1 -1
- package/dist/mcp/client.d.ts +2 -0
- package/dist/mcp/client.d.ts.map +1 -1
- package/dist/mcp/client.js +44 -13
- package/dist/mcp/client.js.map +1 -1
- package/dist/mcp/convert.js +1 -1
- package/dist/mcp/convert.js.map +1 -1
- package/dist/mcp/transport.d.ts +2 -0
- package/dist/mcp/transport.d.ts.map +1 -1
- package/dist/mcp/transport.js +33 -8
- package/dist/mcp/transport.js.map +1 -1
- package/dist/messages/index.d.ts.map +1 -1
- package/dist/messages/index.js +7 -1
- package/dist/messages/index.js.map +1 -1
- package/dist/models/anthropic.d.ts.map +1 -1
- package/dist/models/anthropic.js +25 -15
- package/dist/models/anthropic.js.map +1 -1
- package/dist/models/google.d.ts.map +1 -1
- package/dist/models/google.js +23 -7
- package/dist/models/google.js.map +1 -1
- package/dist/models/ollama.d.ts.map +1 -1
- package/dist/models/ollama.js +11 -1
- package/dist/models/ollama.js.map +1 -1
- package/dist/models/openai.d.ts.map +1 -1
- package/dist/models/openai.js +15 -3
- package/dist/models/openai.js.map +1 -1
- package/dist/models/openrouter.d.ts.map +1 -1
- package/dist/models/openrouter.js +14 -3
- package/dist/models/openrouter.js.map +1 -1
- package/dist/prebuilt/react-agent.d.ts.map +1 -1
- package/dist/prebuilt/react-agent.js +7 -2
- package/dist/prebuilt/react-agent.js.map +1 -1
- package/dist/pregel/checkpointing.d.ts +12 -0
- package/dist/pregel/checkpointing.d.ts.map +1 -0
- package/dist/pregel/checkpointing.js +60 -0
- package/dist/pregel/checkpointing.js.map +1 -0
- package/dist/pregel/execution.d.ts +7 -0
- package/dist/pregel/execution.d.ts.map +1 -0
- package/dist/pregel/execution.js +178 -0
- package/dist/pregel/execution.js.map +1 -0
- package/dist/pregel/index.d.ts +61 -0
- package/dist/pregel/index.d.ts.map +1 -0
- package/dist/pregel/index.js +154 -0
- package/dist/pregel/index.js.map +1 -0
- package/dist/pregel/interrupts.d.ts +3 -0
- package/dist/pregel/interrupts.d.ts.map +1 -0
- package/dist/pregel/interrupts.js +7 -0
- package/dist/pregel/interrupts.js.map +1 -0
- package/dist/pregel/state-helpers.d.ts +12 -0
- package/dist/pregel/state-helpers.d.ts.map +1 -0
- package/dist/pregel/state-helpers.js +71 -0
- package/dist/pregel/state-helpers.js.map +1 -0
- package/dist/pregel/streaming.d.ts +5 -0
- package/dist/pregel/streaming.d.ts.map +1 -0
- package/dist/pregel/streaming.js +462 -0
- package/dist/pregel/streaming.js.map +1 -0
- package/dist/pregel/types.d.ts +48 -0
- package/dist/pregel/types.d.ts.map +1 -0
- package/dist/pregel/types.js +5 -0
- package/dist/pregel/types.js.map +1 -0
- package/dist/pregel.d.ts +1 -63
- package/dist/pregel.d.ts.map +1 -1
- package/dist/pregel.js +2 -804
- package/dist/pregel.js.map +1 -1
- package/dist/retry.d.ts.map +1 -1
- package/dist/retry.js +7 -6
- package/dist/retry.js.map +1 -1
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/index.js +36 -9
- package/dist/store/index.js.map +1 -1
- package/dist/stream-events.d.ts.map +1 -1
- package/dist/stream-events.js +3 -9
- package/dist/stream-events.js.map +1 -1
- package/dist/swarm/agent-node.d.ts +11 -0
- package/dist/swarm/agent-node.d.ts.map +1 -0
- package/dist/swarm/agent-node.js +156 -0
- package/dist/swarm/agent-node.js.map +1 -0
- package/dist/swarm/compile-ext.d.ts +5 -0
- package/dist/swarm/compile-ext.d.ts.map +1 -0
- package/dist/swarm/compile-ext.js +126 -0
- package/dist/swarm/compile-ext.js.map +1 -0
- package/dist/swarm/config.d.ts +147 -0
- package/dist/swarm/config.d.ts.map +1 -0
- package/dist/swarm/config.js +17 -0
- package/dist/swarm/config.js.map +1 -0
- package/dist/swarm/factories.d.ts +37 -0
- package/dist/swarm/factories.d.ts.map +1 -0
- package/dist/swarm/factories.js +703 -0
- package/dist/swarm/factories.js.map +1 -0
- package/dist/swarm/graph.d.ts +16 -136
- package/dist/swarm/graph.d.ts.map +1 -1
- package/dist/swarm/graph.js +39 -897
- package/dist/swarm/graph.js.map +1 -1
- package/dist/swarm/index.d.ts +2 -1
- package/dist/swarm/index.d.ts.map +1 -1
- package/dist/swarm/index.js.map +1 -1
- package/dist/swarm/mailbox.d.ts.map +1 -1
- package/dist/swarm/mailbox.js +3 -1
- package/dist/swarm/mailbox.js.map +1 -1
- package/dist/swarm/mermaid.d.ts +2 -1
- package/dist/swarm/mermaid.d.ts.map +1 -1
- package/dist/swarm/mermaid.js +6 -3
- package/dist/swarm/mermaid.js.map +1 -1
- package/dist/swarm/pool.d.ts.map +1 -1
- package/dist/swarm/pool.js +18 -1
- package/dist/swarm/pool.js.map +1 -1
- package/dist/swarm/registry.d.ts.map +1 -1
- package/dist/swarm/registry.js +7 -0
- package/dist/swarm/registry.js.map +1 -1
- package/dist/swarm/scaling.d.ts +10 -1
- package/dist/swarm/scaling.d.ts.map +1 -1
- package/dist/swarm/scaling.js +85 -14
- package/dist/swarm/scaling.js.map +1 -1
- package/dist/swarm/snapshot.d.ts.map +1 -1
- package/dist/swarm/snapshot.js +10 -1
- package/dist/swarm/snapshot.js.map +1 -1
- package/dist/swarm/supervisor.js +20 -12
- package/dist/swarm/supervisor.js.map +1 -1
- package/dist/swarm/tracer.d.ts +3 -1
- package/dist/swarm/tracer.d.ts.map +1 -1
- package/dist/swarm/tracer.js +66 -15
- package/dist/swarm/tracer.js.map +1 -1
- package/dist/swarm/types.d.ts +1 -6
- package/dist/swarm/types.d.ts.map +1 -1
- package/dist/testing/index.d.ts +4 -4
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +3 -2
- package/dist/testing/index.js.map +1 -1
- package/dist/tools/define.d.ts +2 -1
- package/dist/tools/define.d.ts.map +1 -1
- package/dist/tools/define.js +3 -1
- package/dist/tools/define.js.map +1 -1
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/types.d.ts +3 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
// ============================================================
|
|
2
|
+
// src/swarm/compile-ext.ts — buildSwarmExtensions factory
|
|
3
|
+
// Extracted from SwarmGraph.compile() to keep graph.ts thin.
|
|
4
|
+
// ============================================================
|
|
5
|
+
import { END, Send } from "../types.js";
|
|
6
|
+
import { createAgentNode } from "./agent-node.js";
|
|
7
|
+
export function buildSwarmExtensions(skeleton, registry, inner, hasSupervisor, supervisorNodeName, onErrorPolicy) {
|
|
8
|
+
return {
|
|
9
|
+
registry,
|
|
10
|
+
agentStats: () => registry.stats(),
|
|
11
|
+
toMermaid: () => {
|
|
12
|
+
// Read from the live runner's edge map so the diagram reflects
|
|
13
|
+
// agents added/removed via spawnAgent()/removeAgent() after compile.
|
|
14
|
+
const runner = skeleton._runner;
|
|
15
|
+
const edgesBySource = runner?._edgesBySource;
|
|
16
|
+
if (!edgesBySource)
|
|
17
|
+
return inner.toMermaid(); // safe fallback
|
|
18
|
+
const lines = ["graph TD"];
|
|
19
|
+
for (const [from, edges] of edgesBySource) {
|
|
20
|
+
for (const edge of edges) {
|
|
21
|
+
if (edge.type === "static" && edge.to !== undefined) {
|
|
22
|
+
lines.push(` ${from} --> ${edge.to}`);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
lines.push(` ${from} -->|?| conditional_${from}`);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return lines.join("\n");
|
|
30
|
+
},
|
|
31
|
+
spawnAgent(def) {
|
|
32
|
+
// spawnAgent requires a supervisor to route the spawned agent back into the graph.
|
|
33
|
+
// In unsupervised topologies there is no return path, so the agent would never execute.
|
|
34
|
+
if (!hasSupervisor) {
|
|
35
|
+
throw new Error(`spawnAgent() requires a supervisor node. ` +
|
|
36
|
+
`Use SwarmGraph.hierarchical() to add a supervisor, or call addAgent() before compile() for static topologies.`);
|
|
37
|
+
}
|
|
38
|
+
// Register in the registry
|
|
39
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
40
|
+
registry.register(def); // SAFE: external boundary — generic registry accepts narrower S
|
|
41
|
+
// Use the same createAgentNode path as static agents so dynamic agents get
|
|
42
|
+
// inbox tracking, timeout clamping, handoff handling, retry backoff, and
|
|
43
|
+
// structured error context — identical behavior to compile-time addAgent().
|
|
44
|
+
const swarmLiveState = { hasSupervisor, supervisorNodeName, onErrorPolicy };
|
|
45
|
+
const agentNode = createAgentNode(def, registry, swarmLiveState);
|
|
46
|
+
// Add node to the compiled runner's nodes map
|
|
47
|
+
const runner = skeleton._runner;
|
|
48
|
+
if (runner?.nodes) {
|
|
49
|
+
runner.nodes.set(def.id, { name: def.id, fn: agentNode });
|
|
50
|
+
}
|
|
51
|
+
// In supervised swarms, add a conditional return edge so the runner
|
|
52
|
+
// knows to send this agent's output back to the supervisor (or END).
|
|
53
|
+
if (hasSupervisor && runner) {
|
|
54
|
+
const returnEdge = {
|
|
55
|
+
type: "conditional",
|
|
56
|
+
from: def.id,
|
|
57
|
+
condition: (st) => st.done ? END : supervisorNodeName,
|
|
58
|
+
};
|
|
59
|
+
const edgesBySource = runner._edgesBySource;
|
|
60
|
+
const list = edgesBySource.get(def.id) ?? [];
|
|
61
|
+
list.push(returnEdge);
|
|
62
|
+
edgesBySource.set(def.id, list);
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
removeAgent(agentId) {
|
|
66
|
+
registry.deregister(agentId);
|
|
67
|
+
const runner = skeleton._runner;
|
|
68
|
+
// If the agent is not in the compiled node map it was never part of the graph —
|
|
69
|
+
// no edges can reference it, so there is nothing structural to clean up.
|
|
70
|
+
if (!runner?.nodes?.has(agentId))
|
|
71
|
+
return;
|
|
72
|
+
runner.nodes.delete(agentId);
|
|
73
|
+
// Remove stale edges pointing TO the removed agent so Pregel doesn't try to route to it.
|
|
74
|
+
// Also remove edges FROM the agent (it won't execute, but keeps _edgesBySource clean).
|
|
75
|
+
const edgesBySource = runner._edgesBySource;
|
|
76
|
+
if (edgesBySource) {
|
|
77
|
+
for (const [from, edges] of edgesBySource) {
|
|
78
|
+
let changed = false;
|
|
79
|
+
const updated = edges
|
|
80
|
+
.filter((e) => {
|
|
81
|
+
// Drop static edges that target the removed agent
|
|
82
|
+
if (e.type === "static" && e.to === agentId) {
|
|
83
|
+
changed = true;
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
return true;
|
|
87
|
+
})
|
|
88
|
+
.map((e) => {
|
|
89
|
+
if (e.type !== "conditional")
|
|
90
|
+
return e;
|
|
91
|
+
// (a) Remap any pathMap entry whose value is the removed agentId → END
|
|
92
|
+
let newPathMap = e.pathMap;
|
|
93
|
+
if (newPathMap) {
|
|
94
|
+
const stale = Object.values(newPathMap).some((v) => v === agentId);
|
|
95
|
+
if (stale) {
|
|
96
|
+
newPathMap = Object.fromEntries(Object.entries(newPathMap).map(([k, v]) => [k, v === agentId ? END : v]));
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// (b) Wrap the condition so any runtime return of agentId is replaced with END.
|
|
100
|
+
// We cannot introspect the closure, so we always wrap for safety.
|
|
101
|
+
const orig = e.condition;
|
|
102
|
+
const wrapped = (state, cfg) => {
|
|
103
|
+
const result = orig(state, cfg);
|
|
104
|
+
if (!Array.isArray(result)) {
|
|
105
|
+
// Single NodeName — replace agentId with END
|
|
106
|
+
return result === agentId ? END : result;
|
|
107
|
+
}
|
|
108
|
+
if (result.length > 0 && result[0] instanceof Send) {
|
|
109
|
+
// Send[] — filter out Sends targeting the removed agent
|
|
110
|
+
return result.filter((r) => r.node !== agentId);
|
|
111
|
+
}
|
|
112
|
+
// NodeName[] — replace agentId entries with END
|
|
113
|
+
return result.map((r) => (r === agentId ? END : r));
|
|
114
|
+
};
|
|
115
|
+
changed = true;
|
|
116
|
+
return { ...e, condition: wrapped, pathMap: newPathMap };
|
|
117
|
+
});
|
|
118
|
+
if (changed)
|
|
119
|
+
edgesBySource.set(from, updated);
|
|
120
|
+
}
|
|
121
|
+
edgesBySource.delete(agentId);
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=compile-ext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compile-ext.js","sourceRoot":"","sources":["../../src/swarm/compile-ext.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { END } from "../types.js";
|
|
2
|
+
import type { ChannelSchema, NodeDefinition, Edge, ONICheckpointer } from "../types.js";
|
|
3
|
+
import type { BaseStore } from "../store/index.js";
|
|
4
|
+
import type { GuardrailsConfig } from "../guardrails/types.js";
|
|
5
|
+
import type { EventListeners } from "../events/types.js";
|
|
6
|
+
import type { TracerLike } from "../telemetry.js";
|
|
7
|
+
import type { ONIModel } from "../models/types.js";
|
|
8
|
+
import type { SwarmAgentDef, HandoffRecord, SwarmMessage } from "./types.js";
|
|
9
|
+
import type { AgentRegistry } from "./registry.js";
|
|
10
|
+
export interface PregelRunnerInternals<S extends Record<string, unknown>> {
|
|
11
|
+
nodes: Map<string, NodeDefinition<S>>;
|
|
12
|
+
_edgesBySource: Map<string, Edge<S>[]>;
|
|
13
|
+
}
|
|
14
|
+
export type BaseSwarmState = {
|
|
15
|
+
task: string;
|
|
16
|
+
context: Record<string, unknown>;
|
|
17
|
+
agentResults: Record<string, unknown>;
|
|
18
|
+
messages: Array<{
|
|
19
|
+
role: string;
|
|
20
|
+
content: string;
|
|
21
|
+
}>;
|
|
22
|
+
swarmMessages: SwarmMessage[];
|
|
23
|
+
supervisorRound: number;
|
|
24
|
+
currentAgent: string | null;
|
|
25
|
+
done: boolean;
|
|
26
|
+
handoffHistory: HandoffRecord[];
|
|
27
|
+
[key: string]: unknown;
|
|
28
|
+
};
|
|
29
|
+
export declare const baseSwarmChannels: {
|
|
30
|
+
task: import("../types.js").Channel<string>;
|
|
31
|
+
context: import("../types.js").Channel<{}>;
|
|
32
|
+
agentResults: import("../types.js").Channel<{}>;
|
|
33
|
+
messages: import("../types.js").Channel<{
|
|
34
|
+
role: string;
|
|
35
|
+
content: string;
|
|
36
|
+
}[]>;
|
|
37
|
+
swarmMessages: import("../types.js").Channel<SwarmMessage[]>;
|
|
38
|
+
supervisorRound: import("../types.js").Channel<number>;
|
|
39
|
+
currentAgent: import("../types.js").Channel<string | null>;
|
|
40
|
+
done: import("../types.js").Channel<boolean>;
|
|
41
|
+
handoffHistory: import("../types.js").Channel<HandoffRecord[]>;
|
|
42
|
+
};
|
|
43
|
+
export interface HierarchicalConfig<S extends BaseSwarmState> {
|
|
44
|
+
supervisor: {
|
|
45
|
+
model?: ONIModel;
|
|
46
|
+
strategy: "llm" | "rule" | "round-robin";
|
|
47
|
+
rules?: Array<{
|
|
48
|
+
condition: (task: string, context: Record<string, unknown>) => boolean;
|
|
49
|
+
agentId: string;
|
|
50
|
+
}>;
|
|
51
|
+
systemPrompt?: string;
|
|
52
|
+
maxRounds?: number;
|
|
53
|
+
/** Whole-swarm deadline in ms, computed from invoke-time (not compile-time). */
|
|
54
|
+
deadlineMs?: number;
|
|
55
|
+
/** Auto-recover: when an agent errors, route to an idle agent with matching capability. */
|
|
56
|
+
autoRecover?: boolean;
|
|
57
|
+
};
|
|
58
|
+
agents: SwarmAgentDef<S>[];
|
|
59
|
+
channels?: Partial<ChannelSchema<S>>;
|
|
60
|
+
onError?: "fallback" | "throw";
|
|
61
|
+
}
|
|
62
|
+
export interface FanOutConfig<S extends BaseSwarmState> {
|
|
63
|
+
agents: SwarmAgentDef<S>[];
|
|
64
|
+
reducer: (agentResults: Record<string, unknown>, weights?: Record<string, number>) => Partial<S>;
|
|
65
|
+
channels?: Partial<ChannelSchema<S>>;
|
|
66
|
+
/** Max agents to run simultaneously (default: all). */
|
|
67
|
+
maxConcurrency?: number;
|
|
68
|
+
/** Per-agent timeout in ms. Agents that exceed this are marked with _error. */
|
|
69
|
+
timeoutMs?: number;
|
|
70
|
+
/** Per-agent weights passed to the reducer as second argument. */
|
|
71
|
+
weights?: Record<string, number>;
|
|
72
|
+
}
|
|
73
|
+
export interface PipelineConfig<S extends BaseSwarmState> {
|
|
74
|
+
stages: SwarmAgentDef<S>[];
|
|
75
|
+
transitions?: Record<string, (state: S) => string | typeof END>;
|
|
76
|
+
channels?: Partial<ChannelSchema<S>>;
|
|
77
|
+
}
|
|
78
|
+
export interface PeerNetworkConfig<S extends BaseSwarmState> {
|
|
79
|
+
agents: SwarmAgentDef<S>[];
|
|
80
|
+
entrypoint: string;
|
|
81
|
+
handoffs: Record<string, (state: S) => string | typeof END>;
|
|
82
|
+
channels?: Partial<ChannelSchema<S>>;
|
|
83
|
+
}
|
|
84
|
+
export interface MapReduceConfig<S extends BaseSwarmState> {
|
|
85
|
+
mapper: SwarmAgentDef<S>;
|
|
86
|
+
poolSize?: number;
|
|
87
|
+
poolStrategy?: "round-robin" | "least-busy" | "random";
|
|
88
|
+
inputField: keyof S;
|
|
89
|
+
reducer: (agentResults: Record<string, unknown>) => Partial<S>;
|
|
90
|
+
channels?: Partial<ChannelSchema<S>>;
|
|
91
|
+
}
|
|
92
|
+
export interface DebateConfig<S extends BaseSwarmState> {
|
|
93
|
+
debaters: SwarmAgentDef<S>[];
|
|
94
|
+
judge: {
|
|
95
|
+
model: ONIModel;
|
|
96
|
+
systemPrompt?: string;
|
|
97
|
+
maxRounds: number;
|
|
98
|
+
consensusKeyword?: string;
|
|
99
|
+
/** Enable per-round scoring of debaters (scores stored in context.debateScores). */
|
|
100
|
+
scoreDebaters?: boolean;
|
|
101
|
+
/** Auto-consensus when score spread is within this threshold. */
|
|
102
|
+
consensusThreshold?: number;
|
|
103
|
+
};
|
|
104
|
+
topic: keyof S;
|
|
105
|
+
channels?: Partial<ChannelSchema<S>>;
|
|
106
|
+
}
|
|
107
|
+
export interface HierarchicalMeshConfig<S extends BaseSwarmState> {
|
|
108
|
+
coordinator: {
|
|
109
|
+
model: ONIModel;
|
|
110
|
+
strategy: "llm" | "rule" | "round-robin";
|
|
111
|
+
rules?: Array<{
|
|
112
|
+
condition: (task: string, context: Record<string, unknown>) => boolean;
|
|
113
|
+
agentId: string;
|
|
114
|
+
}>;
|
|
115
|
+
systemPrompt?: string;
|
|
116
|
+
maxRounds?: number;
|
|
117
|
+
};
|
|
118
|
+
teams: Record<string, {
|
|
119
|
+
topology: "pipeline" | "peerNetwork";
|
|
120
|
+
agents: SwarmAgentDef<S>[];
|
|
121
|
+
handoffs?: Record<string, (state: S) => string | typeof END>;
|
|
122
|
+
}>;
|
|
123
|
+
channels?: Partial<ChannelSchema<S>>;
|
|
124
|
+
}
|
|
125
|
+
export interface SwarmCompileOpts<S> {
|
|
126
|
+
checkpointer?: ONICheckpointer<S>;
|
|
127
|
+
interruptBefore?: string[];
|
|
128
|
+
interruptAfter?: string[];
|
|
129
|
+
store?: BaseStore;
|
|
130
|
+
guardrails?: GuardrailsConfig;
|
|
131
|
+
listeners?: EventListeners;
|
|
132
|
+
defaults?: {
|
|
133
|
+
nodeTimeout?: number;
|
|
134
|
+
};
|
|
135
|
+
deadLetterQueue?: boolean;
|
|
136
|
+
tracer?: TracerLike;
|
|
137
|
+
}
|
|
138
|
+
export interface SwarmExtensions<S extends Record<string, unknown>> {
|
|
139
|
+
registry: AgentRegistry<S>;
|
|
140
|
+
agentStats: () => ReturnType<AgentRegistry<S>["stats"]>;
|
|
141
|
+
toMermaid: () => string;
|
|
142
|
+
/** Dynamically spawn a new agent into the compiled swarm */
|
|
143
|
+
spawnAgent: (def: SwarmAgentDef<S>) => void;
|
|
144
|
+
/** Remove an agent from the compiled swarm (marks as terminated) */
|
|
145
|
+
removeAgent: (agentId: string) => void;
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/swarm/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// ============================================================
|
|
2
|
+
// src/swarm/config.ts — SwarmGraph topology config types
|
|
3
|
+
// Extracted from graph.ts to keep SwarmGraph class focused.
|
|
4
|
+
// ============================================================
|
|
5
|
+
import { appendList, lastValue, mergeObject } from "../types.js";
|
|
6
|
+
export const baseSwarmChannels = {
|
|
7
|
+
task: lastValue(() => ""),
|
|
8
|
+
context: mergeObject(() => ({})),
|
|
9
|
+
agentResults: mergeObject(() => ({})),
|
|
10
|
+
messages: appendList(() => []),
|
|
11
|
+
swarmMessages: appendList(() => []),
|
|
12
|
+
supervisorRound: lastValue(() => 0),
|
|
13
|
+
currentAgent: lastValue(() => null),
|
|
14
|
+
done: lastValue(() => false),
|
|
15
|
+
handoffHistory: appendList(() => []),
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/swarm/config.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,yDAAyD;AACzD,4DAA4D;AAC5D,+DAA+D;AAE/D,OAAO,EAAO,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAqCtE,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,IAAI,EAAa,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;IACpC,OAAO,EAAU,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACxC,YAAY,EAAK,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACxC,QAAQ,EAAS,UAAU,CAAC,GAAG,EAAE,CAAC,EAA8C,CAAC;IACjF,aAAa,EAAI,UAAU,CAAC,GAAG,EAAE,CAAC,EAAoB,CAAC;IACvD,eAAe,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACnC,YAAY,EAAK,SAAS,CAAC,GAAkB,EAAE,CAAC,IAAI,CAAC;IACrD,IAAI,EAAa,SAAS,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;IACvC,cAAc,EAAG,UAAU,CAAC,GAAG,EAAE,CAAC,EAAqB,CAAC;CACzD,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { ChannelSchema } from "../types.js";
|
|
2
|
+
import type { SwarmAgentDef } from "./types.js";
|
|
3
|
+
import type { BaseSwarmState, HierarchicalConfig, FanOutConfig, PipelineConfig, PeerNetworkConfig, MapReduceConfig, DebateConfig, HierarchicalMeshConfig } from "./config.js";
|
|
4
|
+
import type { SwarmGraph } from "./graph.js";
|
|
5
|
+
export declare function buildHierarchical<S extends BaseSwarmState>(config: HierarchicalConfig<S>, swarm: SwarmGraph<S>): SwarmGraph<S>;
|
|
6
|
+
export declare function buildFanOut<S extends BaseSwarmState>(config: FanOutConfig<S>, swarm: SwarmGraph<S>): SwarmGraph<S>;
|
|
7
|
+
export declare function buildPipeline<S extends BaseSwarmState>(config: PipelineConfig<S>, swarm: SwarmGraph<S>): SwarmGraph<S>;
|
|
8
|
+
export declare function buildPeerNetwork<S extends BaseSwarmState>(config: PeerNetworkConfig<S>, swarm: SwarmGraph<S>): SwarmGraph<S>;
|
|
9
|
+
export declare function buildMapReduce<S extends BaseSwarmState>(config: MapReduceConfig<S>, swarm: SwarmGraph<S>): SwarmGraph<S>;
|
|
10
|
+
export declare function buildDebate<S extends BaseSwarmState>(config: DebateConfig<S>, swarm: SwarmGraph<S>): SwarmGraph<S>;
|
|
11
|
+
export declare function buildHierarchicalMesh<S extends BaseSwarmState>(config: HierarchicalMeshConfig<S>, swarm: SwarmGraph<S>, makeSwarm: (channels?: Partial<ChannelSchema<S>>) => SwarmGraph<S>): SwarmGraph<S>;
|
|
12
|
+
export declare function buildRace<S extends BaseSwarmState>(config: {
|
|
13
|
+
agents: SwarmAgentDef<S>[];
|
|
14
|
+
accept?: (result: unknown) => boolean;
|
|
15
|
+
timeoutMs?: number;
|
|
16
|
+
channels?: Partial<ChannelSchema<S>>;
|
|
17
|
+
}, swarm: SwarmGraph<S>): SwarmGraph<S>;
|
|
18
|
+
export declare function buildDag<S extends BaseSwarmState>(config: {
|
|
19
|
+
agents: SwarmAgentDef<S>[];
|
|
20
|
+
dependencies: Record<string, string[]>;
|
|
21
|
+
channels?: Partial<ChannelSchema<S>>;
|
|
22
|
+
}, swarm: SwarmGraph<S>): SwarmGraph<S>;
|
|
23
|
+
export declare function buildPool<S extends BaseSwarmState>(config: {
|
|
24
|
+
agent: SwarmAgentDef<S>;
|
|
25
|
+
poolSize: number;
|
|
26
|
+
inputField: keyof S;
|
|
27
|
+
reducer: (results: Record<string, unknown>) => Partial<S>;
|
|
28
|
+
channels?: Partial<ChannelSchema<S>>;
|
|
29
|
+
}, swarm: SwarmGraph<S>): SwarmGraph<S>;
|
|
30
|
+
export declare function buildCompose<S extends BaseSwarmState>(config: {
|
|
31
|
+
stages: Array<{
|
|
32
|
+
id: string;
|
|
33
|
+
swarm: SwarmGraph<S>;
|
|
34
|
+
}>;
|
|
35
|
+
channels?: Partial<ChannelSchema<S>>;
|
|
36
|
+
}, swarm: SwarmGraph<S>): SwarmGraph<S>;
|
|
37
|
+
//# sourceMappingURL=factories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../src/swarm/factories.ts"],"names":[],"mappings":"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"}
|