@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.
- package/CHANGELOG.md +146 -126
- package/SECURITY.md +2 -2
- package/dist/agents/context.d.ts +0 -2
- package/dist/agents/context.d.ts.map +1 -1
- package/dist/agents/context.js +1 -3
- package/dist/agents/context.js.map +1 -1
- package/dist/agents/define-agent.d.ts.map +1 -1
- package/dist/agents/define-agent.js +99 -41
- package/dist/agents/define-agent.js.map +1 -1
- package/dist/agents/functional-agent.d.ts.map +1 -1
- package/dist/agents/functional-agent.js +0 -7
- package/dist/agents/functional-agent.js.map +1 -1
- package/dist/agents/types.d.ts +0 -2
- package/dist/agents/types.d.ts.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 +47 -31
- package/dist/checkpointers/postgres.js.map +1 -1
- package/dist/checkpointers/sqlite.js +4 -4
- package/dist/checkpointers/sqlite.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/router.js +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.d.ts.map +1 -1
- package/dist/config/loader.js +35 -5
- package/dist/config/loader.js.map +1 -1
- package/dist/context.d.ts +20 -0
- package/dist/context.d.ts.map +1 -1
- package/dist/context.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 +7 -0
- package/dist/coordination/request-reply.d.ts.map +1 -1
- package/dist/coordination/request-reply.js +65 -11
- 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 +16 -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.map +1 -1
- package/dist/graph.js +21 -3
- 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.map +1 -1
- package/dist/harness/agent-loop.js +471 -352
- 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/memory-loader.d.ts +150 -0
- package/dist/harness/memory-loader.d.ts.map +1 -0
- package/dist/harness/memory-loader.js +714 -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 +6 -4
- 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/index.js +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 +45 -14
- 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 +1 -0
- package/dist/prebuilt/react-agent.js.map +1 -1
- package/dist/pregel.d.ts +11 -6
- package/dist/pregel.d.ts.map +1 -1
- package/dist/pregel.js +473 -349
- 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 +1 -1
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/index.js +63 -13
- 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/streaming.d.ts +5 -2
- package/dist/streaming.d.ts.map +1 -1
- package/dist/streaming.js +9 -8
- package/dist/streaming.js.map +1 -1
- package/dist/swarm/graph.d.ts +16 -2
- package/dist/swarm/graph.d.ts.map +1 -1
- package/dist/swarm/graph.js +204 -53
- 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 +30 -5
- 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 +2 -2
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js.map +1 -1
- package/dist/tools/define.d.ts.map +1 -1
- package/dist/tools/define.js +1 -0
- package/dist/tools/define.js.map +1 -1
- package/dist/tools/types.d.ts +2 -0
- 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 +7 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,126 +1,146 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
All notable changes to @oni.bot/core are documented here.
|
|
4
|
-
|
|
5
|
-
Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
6
|
-
This project uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
-
|
|
8
|
-
## [1.0.
|
|
9
|
-
|
|
10
|
-
###
|
|
11
|
-
- `
|
|
12
|
-
- `
|
|
13
|
-
- `
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
-
|
|
17
|
-
- `
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
- `
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
-
|
|
86
|
-
-
|
|
87
|
-
-
|
|
88
|
-
-
|
|
89
|
-
-
|
|
90
|
-
- `
|
|
91
|
-
- `
|
|
92
|
-
- `
|
|
93
|
-
-
|
|
94
|
-
-
|
|
95
|
-
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
-
|
|
110
|
-
-
|
|
111
|
-
- `
|
|
112
|
-
-
|
|
113
|
-
-
|
|
114
|
-
-
|
|
115
|
-
-
|
|
116
|
-
-
|
|
117
|
-
-
|
|
118
|
-
-
|
|
119
|
-
-
|
|
120
|
-
-
|
|
121
|
-
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
-
|
|
125
|
-
|
|
126
|
-
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to @oni.bot/core are documented here.
|
|
4
|
+
|
|
5
|
+
Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
6
|
+
This project uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [1.0.2] — 2026-03-13
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
- **Budget guardrails:** `BudgetTracker.record()` is now called from `defineAgent` after each `model.chat()` via a RunContext callback; throws `BudgetExceededError` when `maxTokensPerRun`/`maxTokensPerAgent`/`maxCostPerRun` is exceeded.
|
|
12
|
+
- **defineAgent ToolContext:** `store` and stream `emit` now read from the live RunContext instead of being hard-coded to `null`/noop, so tools receive the real store and can emit custom stream events.
|
|
13
|
+
- **parallelSafe enforcement:** `parallelSafe: false` is now preserved through `ToolDefinition` and respected by `defineAgent` — when any tool in a batch has `parallelSafe: false` all calls in that step execute sequentially.
|
|
14
|
+
- **pathMap compile-time validation:** `StateGraph.compile()` now validates conditional edge `pathMap` targets at compile time, throwing `NodeNotFoundError` instead of failing silently at runtime.
|
|
15
|
+
- **spawnAgent in unsupervised swarms:** `spawnAgent()` now throws a clear error when called on a swarm without a supervisor, rather than silently adding an agent that never executes.
|
|
16
|
+
- **removeAgent edge cleanup:** `removeAgent()` now removes stale static edges pointing to the removed node from `_edgesBySource`, preventing `NodeNotFoundError` when Pregel tries to route to a removed agent.
|
|
17
|
+
- **Lifecycle events from defineAgent:** `llm.request`, `llm.response`, `tool.call`, and `tool.result` events are now emitted and audit entries written for every model call and tool execution inside `defineAgent`.
|
|
18
|
+
- **toolPermissions enforcement:** `checkToolPermission()` is called before each tool execution in `defineAgent`, outside the tool's try/catch, so `ToolPermissionError` propagates as a real graph failure.
|
|
19
|
+
|
|
20
|
+
## [1.0.1] — 2026-03-13
|
|
21
|
+
|
|
22
|
+
### Fixed
|
|
23
|
+
- **Token streaming (parallel nodes):** Replaced module-level `_tokenHandler` global with `AsyncLocalStorage` — each node in a parallel fan-out now gets its own token handler, preventing tokens from being silently dropped or misrouted to the wrong node.
|
|
24
|
+
- **HITL resume:** `resume()` now looks up the session by `resumeId` (not just the first pending interrupt) and calls `markResumed()` so sessions transition from `"pending"` to `"resumed"` after being handled.
|
|
25
|
+
- **Subgraph checkpointer restore:** The child runner's original `checkpointer` is saved before being overwritten with a `NamespacedCheckpointer` and restored after the subgraph completes, preventing the child's checkpointer from leaking across invocations.
|
|
26
|
+
- **Circuit breaker fallback:** The user-supplied `fallback(state, error)` is now called with the real node state and the `CircuitBreakerOpenError` instance rather than `(undefined, undefined)`.
|
|
27
|
+
|
|
28
|
+
## [1.0.0] — 2026-03-13
|
|
29
|
+
|
|
30
|
+
### Breaking Changes
|
|
31
|
+
- `oni-code` AI coding assistant extracted to `@oni.bot/code` (separate package)
|
|
32
|
+
- `sentinel` code analysis engine extracted to `@oni.bot/sentinel` (separate package)
|
|
33
|
+
- `oni` and `oni-code` CLI binaries removed from this package (install `@oni.bot/code` for the CLI)
|
|
34
|
+
|
|
35
|
+
### Added
|
|
36
|
+
- `./config` sub-module export (`@oni.bot/core/config`) — JSONC config loader with env var substitution and hierarchical merge
|
|
37
|
+
- `"sideEffects": false` — enables full tree shaking in bundlers
|
|
38
|
+
|
|
39
|
+
### Framework
|
|
40
|
+
- 5 model adapters (anthropic, openai, openrouter, google, ollama) — zero runtime dependencies
|
|
41
|
+
- 21 total exports: root + 20 named subpaths
|
|
42
|
+
|
|
43
|
+
## [0.7.0] - 2026-03-08
|
|
44
|
+
|
|
45
|
+
### Added
|
|
46
|
+
- Structured error codes with `ONI_<CATEGORY>_<NAME>` taxonomy — every error carries code, category, recoverable flag, suggestion, and context
|
|
47
|
+
- Per-node timeouts via `addNode(name, fn, { timeout: ms })` with `NodeTimeoutError`
|
|
48
|
+
- Global default timeout via `compile({ defaults: { nodeTimeout: ms } })`
|
|
49
|
+
- Circuit breaker pattern: `addNode(name, fn, { circuitBreaker: { threshold, resetAfter, fallback? } })`
|
|
50
|
+
- Dead letter queue: `compile({ deadLetterQueue: true })` captures failed node inputs for recovery
|
|
51
|
+
- OpenTelemetry tracing adapter (`ONITracer`) — zero-dep, user brings own tracer
|
|
52
|
+
- Backpressure streaming with `BoundedBuffer` (drop-oldest and error strategies)
|
|
53
|
+
- Testing utilities: `mockModel()`, `assertGraph()`, `createTestHarness()` via `@oni.bot/core/testing`
|
|
54
|
+
- `oni init` CLI command for project scaffolding
|
|
55
|
+
- 7 new error types: `NodeTimeoutError`, `CircuitBreakerOpenError`, `SwarmDeadlockError`, `ModelRateLimitError`, `ModelContextLengthError`, `CheckpointCorruptError`, `StoreKeyNotFoundError`
|
|
56
|
+
|
|
57
|
+
### Changed
|
|
58
|
+
- `ONIError` now accepts optional `ONIErrorOptions` as second constructor parameter
|
|
59
|
+
- All existing error classes enhanced with structured codes (backward compatible)
|
|
60
|
+
|
|
61
|
+
## [0.6.3] - 2026-03-05
|
|
62
|
+
|
|
63
|
+
### Added
|
|
64
|
+
- `set()` alias for `put()` on `InMemoryStore` and `NamespacedStore`
|
|
65
|
+
|
|
66
|
+
## [0.6.2] - 2026-03-05
|
|
67
|
+
|
|
68
|
+
### Fixed
|
|
69
|
+
- `createReactAgent` now accepts `ONIModel` (auto-adapts chat to invoke)
|
|
70
|
+
|
|
71
|
+
### Changed
|
|
72
|
+
- Package renamed from `@oni-bot/core` to `@oni.bot/core`
|
|
73
|
+
|
|
74
|
+
## [0.6.1] - 2026-03-05
|
|
75
|
+
|
|
76
|
+
### Changed
|
|
77
|
+
- Removed all external framework references from codebase and documentation
|
|
78
|
+
|
|
79
|
+
### Fixed
|
|
80
|
+
- Resolved TypeScript strict errors in swarm template `Send` casts
|
|
81
|
+
|
|
82
|
+
## [0.6.0] - 2026-03-04
|
|
83
|
+
|
|
84
|
+
### Added
|
|
85
|
+
- `SwarmGraph` builder for multi-agent orchestration
|
|
86
|
+
- `SwarmGraph.hierarchical()` template — supervisor-workers pattern
|
|
87
|
+
- `SwarmGraph.fanOut()` template — parallel agent execution with reducer
|
|
88
|
+
- `SwarmGraph.pipeline()` template — linear chain with conditional transitions
|
|
89
|
+
- `SwarmGraph.peerNetwork()` template — decentralized agent handoffs
|
|
90
|
+
- `SwarmGraph.mapReduce()` template — parallel map with reducer
|
|
91
|
+
- `SwarmGraph.debate()` template — multi-round parallel debate with judge
|
|
92
|
+
- `SwarmGraph.hierarchicalMesh()` template — nested team coordination
|
|
93
|
+
- Lazy coordination auto-wiring (broker and pubsub) on `SwarmGraph`
|
|
94
|
+
- Handoff execution — agent `Handoff` returns converted to `Command` routing
|
|
95
|
+
- Retry-then-fallback — agents retry on failure, fall back to supervisor
|
|
96
|
+
|
|
97
|
+
### Changed
|
|
98
|
+
- Replaced `SwarmLLM` with `ONIModel` in supervisor routing
|
|
99
|
+
|
|
100
|
+
## [0.5.0] - 2026-03-04
|
|
101
|
+
|
|
102
|
+
### Added
|
|
103
|
+
- `ONIModel` interface and core LLM types
|
|
104
|
+
- Anthropic LLM adapter
|
|
105
|
+
- OpenAI LLM adapter
|
|
106
|
+
- Ollama LLM adapter
|
|
107
|
+
- Google Gemini LLM adapter
|
|
108
|
+
- Models export path and re-exports
|
|
109
|
+
- Tool framework with `defineTool()` and `ToolContext`
|
|
110
|
+
- `AgentContext` and agent types
|
|
111
|
+
- `defineAgent()` declarative agent factory
|
|
112
|
+
- `agent()` functional agent factory
|
|
113
|
+
- `addAgent()` on `StateGraph` to wire agent nodes
|
|
114
|
+
- Request/response and pub/sub coordination patterns
|
|
115
|
+
- Tool permission guardrails
|
|
116
|
+
- Budget tracking and cost control guardrails
|
|
117
|
+
- Content filtering guardrails
|
|
118
|
+
- Audit trail and guardrails exports
|
|
119
|
+
- `EventBus` for structured lifecycle events
|
|
120
|
+
- Guardrails and event bus wired into compile/execution pipeline
|
|
121
|
+
- Integration tests for agents, tools, and guardrails
|
|
122
|
+
|
|
123
|
+
### Removed
|
|
124
|
+
- Direct `openai` dependency (adapters are now bring-your-own-client)
|
|
125
|
+
|
|
126
|
+
## [0.4.0] - 2026-03-04
|
|
127
|
+
|
|
128
|
+
### Added
|
|
129
|
+
- `StateGraph` builder with `addNode()`, `addEdge()`, `addConditionalEdges()`
|
|
130
|
+
- Pregel execution engine (`ONIPregelRunner`) with parallel superstep execution
|
|
131
|
+
- `Command` and `Send` primitives for dynamic routing
|
|
132
|
+
- Subgraph support via `addSubgraph()`
|
|
133
|
+
- Functional API (`entrypoint`, `task`)
|
|
134
|
+
- `MemoryCheckpointer` and `NoopCheckpointer`
|
|
135
|
+
- `InMemoryStore` and `NamespacedStore` for shared key-value state
|
|
136
|
+
- Human-in-the-loop via `interrupt()` and `getUserInput()`
|
|
137
|
+
- Token streaming with `emitToken()` and `TokenStreamWriter`
|
|
138
|
+
- Stream modes: `values`, `updates`, `events`, `messages`, `custom`
|
|
139
|
+
- Graph inspection via `getGraphDef()`
|
|
140
|
+
- `createReactAgent` prebuilt for tool-calling loops
|
|
141
|
+
- `ToolNode` prebuilt for automatic tool dispatch
|
|
142
|
+
- Messages reducer (`messagesReducer`, `addMessages`, `removeMessages`)
|
|
143
|
+
- Retry policies with configurable backoff
|
|
144
|
+
- Swarm primitives: `AgentRegistry`, `AgentPool`, `Mailbox`, `Supervisor`
|
|
145
|
+
- Ephemeral channel support
|
|
146
|
+
- Map-reduce parallel fan-out pattern
|
package/SECURITY.md
CHANGED
package/dist/agents/context.d.ts
CHANGED
|
@@ -16,9 +16,7 @@ export interface BuildAgentContextOptions<S = Record<string, unknown>> {
|
|
|
16
16
|
remainingSteps: number;
|
|
17
17
|
onSend: (agent: string, payload: unknown) => void;
|
|
18
18
|
getInbox: () => SwarmMessageView[];
|
|
19
|
-
onRequest: (agent: string, payload: unknown) => Promise<unknown>;
|
|
20
19
|
onReply: (msg: SwarmMessageView, payload: unknown) => void;
|
|
21
|
-
onPublish: (topic: string, data: unknown) => void;
|
|
22
20
|
}
|
|
23
21
|
export declare function buildAgentContext<S = Record<string, unknown>>(opts: BuildAgentContextOptions<S>): AgentContext<S>;
|
|
24
22
|
//# sourceMappingURL=context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/agents/context.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,QAAQ,EAMT,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAMjE,MAAM,WAAW,wBAAwB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACnE,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,CAAC,CAAC;IACT,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,cAAc,EAAE,MAAM,CAAC;IAGvB,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAClD,QAAQ,EAAE,MAAM,gBAAgB,EAAE,CAAC;IACnC,
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/agents/context.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,QAAQ,EAMT,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAMjE,MAAM,WAAW,wBAAwB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACnE,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,CAAC,CAAC;IACT,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,cAAc,EAAE,MAAM,CAAC;IAGvB,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAClD,QAAQ,EAAE,MAAM,gBAAgB,EAAE,CAAC;IACnC,OAAO,EAAE,CAAC,GAAG,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAC5D;AAMD,wBAAgB,iBAAiB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,IAAI,EAAE,wBAAwB,CAAC,CAAC,CAAC,GAChC,YAAY,CAAC,CAAC,CAAC,CA8GjB"}
|
package/dist/agents/context.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
// buildAgentContext — assemble a full AgentContext
|
|
9
9
|
// ----------------------------------------------------------------
|
|
10
10
|
export function buildAgentContext(opts) {
|
|
11
|
-
const { model, tools = [], agentName, systemPrompt, config, store, state, streamWriter, remainingSteps, onSend, getInbox,
|
|
11
|
+
const { model, tools = [], agentName, systemPrompt, config, store, state, streamWriter, remainingSteps, onSend, getInbox, onReply, } = opts;
|
|
12
12
|
// Convert ToolDefinition[] to LLMToolDef[] for model.chat/stream
|
|
13
13
|
const llmTools = tools.map((t) => ({
|
|
14
14
|
name: t.name,
|
|
@@ -78,9 +78,7 @@ export function buildAgentContext(opts) {
|
|
|
78
78
|
// ---- Coordination ----
|
|
79
79
|
send: onSend,
|
|
80
80
|
inbox: getInbox,
|
|
81
|
-
request: onRequest,
|
|
82
81
|
reply: onReply,
|
|
83
|
-
publish: onPublish,
|
|
84
82
|
// ---- Runtime context ----
|
|
85
83
|
config,
|
|
86
84
|
store,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/agents/context.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,uCAAuC;AACvC,+DAA+D;AAC/D,6DAA6D;AAC7D,oDAAoD;AACpD,+DAA+D;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/agents/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define-agent.d.ts","sourceRoot":"","sources":["../../src/agents/define-agent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"define-agent.d.ts","sourceRoot":"","sources":["../../src/agents/define-agent.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAIhE;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrF,IAAI,EAAE,kBAAkB,GACvB,SAAS,CAAC,CAAC,CAAC,CAuLd"}
|
|
@@ -4,14 +4,17 @@
|
|
|
4
4
|
// Creates an AgentNode that runs a ReAct loop automatically:
|
|
5
5
|
// 1. Seed messages from state.messages
|
|
6
6
|
// 2. Loop up to maxSteps:
|
|
7
|
-
// a.
|
|
8
|
-
// b.
|
|
9
|
-
// c.
|
|
7
|
+
// a. Emit llm.request event, call model.chat
|
|
8
|
+
// b. Emit llm.response + audit, record budget usage
|
|
9
|
+
// c. Track token usage; push assistant message
|
|
10
10
|
// d. If no toolCalls -> break (done)
|
|
11
|
-
// e. Execute tools
|
|
11
|
+
// e. Execute tools (sequentially if any is parallelSafe: false)
|
|
12
|
+
// - emit tool.call / tool.result events and audit entries
|
|
12
13
|
// f. Push tool result messages
|
|
13
14
|
// 3. Return { messages }
|
|
14
15
|
// ============================================================
|
|
16
|
+
import { _getRunContext } from "../context.js";
|
|
17
|
+
import { checkToolPermission } from "../guardrails/permissions.js";
|
|
15
18
|
/**
|
|
16
19
|
* defineAgent — create a declarative ReAct agent
|
|
17
20
|
*
|
|
@@ -28,23 +31,93 @@ export function defineAgent(opts) {
|
|
|
28
31
|
parameters: t.schema,
|
|
29
32
|
}));
|
|
30
33
|
const _nodeFn = async (state, config) => {
|
|
34
|
+
const runCtx = _getRunContext();
|
|
31
35
|
// 1. Seed messages from state
|
|
32
36
|
const existingMessages = (Array.isArray(state.messages)
|
|
33
37
|
? state.messages
|
|
34
38
|
: []);
|
|
35
39
|
const messages = [...existingMessages];
|
|
36
40
|
let totalTokens = 0;
|
|
41
|
+
const toolMap = new Map(tools.map((t) => [t.name, t]));
|
|
42
|
+
// Helper: execute a single tool call with events + audit + permission check
|
|
43
|
+
const executeOneCall = async (call) => {
|
|
44
|
+
const tool = toolMap.get(call.name);
|
|
45
|
+
if (!tool) {
|
|
46
|
+
return { toolCallId: call.id, name: call.name, result: `Tool "${call.name}" not found`, isError: true };
|
|
47
|
+
}
|
|
48
|
+
// Permission check — outside try/catch so ToolPermissionError propagates as a real failure
|
|
49
|
+
if (runCtx?.toolPermissions) {
|
|
50
|
+
checkToolPermission(runCtx.toolPermissions, name, call.name);
|
|
51
|
+
}
|
|
52
|
+
runCtx?._emitEvent?.({
|
|
53
|
+
type: "tool.call",
|
|
54
|
+
agent: name,
|
|
55
|
+
tool: call.name,
|
|
56
|
+
timestamp: Date.now(),
|
|
57
|
+
input: call.args,
|
|
58
|
+
});
|
|
59
|
+
const toolStart = Date.now();
|
|
60
|
+
try {
|
|
61
|
+
const toolCtx = {
|
|
62
|
+
config: config ?? {},
|
|
63
|
+
store: runCtx?.store ?? null,
|
|
64
|
+
state: state,
|
|
65
|
+
emit: (event, data) => runCtx?.writer?.emit(event, data),
|
|
66
|
+
};
|
|
67
|
+
const result = await tool.execute(call.args, toolCtx);
|
|
68
|
+
const duration = Date.now() - toolStart;
|
|
69
|
+
runCtx?._emitEvent?.({ type: "tool.result", agent: name, tool: call.name, timestamp: Date.now(), duration, status: "success", output: result });
|
|
70
|
+
runCtx?._auditRecord?.({ timestamp: Date.now(), agent: name, action: "tool.result", data: { tool: call.name, status: "success" } });
|
|
71
|
+
return { toolCallId: call.id, name: call.name, result };
|
|
72
|
+
}
|
|
73
|
+
catch (err) {
|
|
74
|
+
const duration = Date.now() - toolStart;
|
|
75
|
+
runCtx?._emitEvent?.({ type: "tool.result", agent: name, tool: call.name, timestamp: Date.now(), duration, status: "error", error: String(err) });
|
|
76
|
+
runCtx?._auditRecord?.({ timestamp: Date.now(), agent: name, action: "tool.result", data: { tool: call.name, status: "error", error: String(err) } });
|
|
77
|
+
return { toolCallId: call.id, name: call.name, result: String(err), isError: true };
|
|
78
|
+
}
|
|
79
|
+
};
|
|
37
80
|
// 2. ReAct loop
|
|
38
81
|
for (let step = 0; step < maxSteps; step++) {
|
|
39
|
-
// a.
|
|
82
|
+
// a. Emit llm.request then call model.chat
|
|
83
|
+
runCtx?._emitEvent?.({
|
|
84
|
+
type: "llm.request",
|
|
85
|
+
agent: name,
|
|
86
|
+
model: model.modelId,
|
|
87
|
+
timestamp: Date.now(),
|
|
88
|
+
messageCount: messages.length,
|
|
89
|
+
hasTools: llmTools.length > 0,
|
|
90
|
+
});
|
|
91
|
+
const llmStart = Date.now();
|
|
40
92
|
const response = await model.chat({
|
|
41
93
|
messages,
|
|
42
94
|
tools: llmTools.length > 0 ? llmTools : undefined,
|
|
43
95
|
systemPrompt,
|
|
96
|
+
signal: config?.signal,
|
|
97
|
+
});
|
|
98
|
+
const llmDuration = Date.now() - llmStart;
|
|
99
|
+
// b. Emit llm.response + audit + budget
|
|
100
|
+
runCtx?._emitEvent?.({
|
|
101
|
+
type: "llm.response",
|
|
102
|
+
agent: name,
|
|
103
|
+
model: model.modelId,
|
|
104
|
+
timestamp: Date.now(),
|
|
105
|
+
duration: llmDuration,
|
|
106
|
+
usage: response.usage,
|
|
107
|
+
stopReason: response.stopReason,
|
|
108
|
+
hasToolCalls: (response.toolCalls?.length ?? 0) > 0,
|
|
44
109
|
});
|
|
45
|
-
|
|
110
|
+
runCtx?._auditRecord?.({
|
|
111
|
+
timestamp: Date.now(),
|
|
112
|
+
agent: name,
|
|
113
|
+
action: "llm.response",
|
|
114
|
+
data: { model: model.modelId, inputTokens: response.usage.inputTokens, outputTokens: response.usage.outputTokens },
|
|
115
|
+
});
|
|
116
|
+
// Record usage — throws BudgetExceededError if over budget
|
|
117
|
+
runCtx?._recordUsage?.(name, model.modelId, response.usage);
|
|
118
|
+
// c. Track token usage
|
|
46
119
|
totalTokens += response.usage.inputTokens + response.usage.outputTokens;
|
|
47
|
-
//
|
|
120
|
+
// d. Push assistant message
|
|
48
121
|
const assistantMsg = {
|
|
49
122
|
role: "assistant",
|
|
50
123
|
content: response.content,
|
|
@@ -52,47 +125,32 @@ export function defineAgent(opts) {
|
|
|
52
125
|
if (response.toolCalls && response.toolCalls.length > 0) {
|
|
53
126
|
assistantMsg.toolCalls = response.toolCalls;
|
|
54
127
|
}
|
|
55
|
-
|
|
56
|
-
//
|
|
128
|
+
// Check maxTokens budget before pushing — if over budget with pending tool calls,
|
|
129
|
+
// push the assistant message with toolCalls stripped. An assistant+toolCalls message
|
|
130
|
+
// with no following tool results is rejected by Anthropic and OpenAI APIs, but the
|
|
131
|
+
// text content is still valid and worth preserving for conversation history continuity.
|
|
57
132
|
if (maxTokens !== undefined && totalTokens >= maxTokens) {
|
|
133
|
+
messages.push({ role: "assistant", content: assistantMsg.content });
|
|
58
134
|
break;
|
|
59
135
|
}
|
|
60
|
-
|
|
136
|
+
messages.push(assistantMsg);
|
|
137
|
+
// e. If no tool calls -> done
|
|
61
138
|
if (!response.toolCalls || response.toolCalls.length === 0) {
|
|
62
139
|
break;
|
|
63
140
|
}
|
|
64
|
-
//
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
name: call.name,
|
|
72
|
-
result: `Tool "${call.name}" not found`,
|
|
73
|
-
isError: true,
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
try {
|
|
77
|
-
const toolCtx = {
|
|
78
|
-
config: config ?? {},
|
|
79
|
-
store: null,
|
|
80
|
-
state: state,
|
|
81
|
-
emit: () => { },
|
|
82
|
-
};
|
|
83
|
-
const result = await tool.execute(call.args, toolCtx);
|
|
84
|
-
return { toolCallId: call.id, name: call.name, result };
|
|
141
|
+
// f. Execute tools — sequentially if any has parallelSafe: false, otherwise in parallel
|
|
142
|
+
const hasSafetyConstraint = response.toolCalls.some((call) => toolMap.get(call.name)?.parallelSafe === false);
|
|
143
|
+
let toolResults;
|
|
144
|
+
if (hasSafetyConstraint) {
|
|
145
|
+
toolResults = [];
|
|
146
|
+
for (const call of response.toolCalls) {
|
|
147
|
+
toolResults.push(await executeOneCall(call));
|
|
85
148
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
isError: true,
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
}));
|
|
95
|
-
// f. Push tool result messages
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
toolResults = await Promise.all(response.toolCalls.map((call) => executeOneCall(call)));
|
|
152
|
+
}
|
|
153
|
+
// g. Push tool result messages
|
|
96
154
|
for (const tr of toolResults) {
|
|
97
155
|
messages.push({
|
|
98
156
|
role: "tool",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define-agent.js","sourceRoot":"","sources":["../../src/agents/define-agent.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,4DAA4D;AAC5D,+DAA+D;AAC/D,6DAA6D;AAC7D,yCAAyC;AACzC,4BAA4B;AAC5B
|
|
1
|
+
{"version":3,"file":"define-agent.js","sourceRoot":"","sources":["../../src/agents/define-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"functional-agent.d.ts","sourceRoot":"","sources":["../../src/agents/functional-agent.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,sBAAsB,EAAoB,MAAM,YAAY,CAAC;AAQpG,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAElF;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/E,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,sBAAsB,EAClD,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GACnB,SAAS,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"functional-agent.d.ts","sourceRoot":"","sources":["../../src/agents/functional-agent.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,sBAAsB,EAAoB,MAAM,YAAY,CAAC;AAQpG,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAElF;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/E,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,sBAAsB,EAClD,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,GACnB,SAAS,CAAC,CAAC,CAAC,CAyGd"}
|
|
@@ -69,18 +69,11 @@ export function agent(name, fnOrOpts, fn) {
|
|
|
69
69
|
return [];
|
|
70
70
|
return msgs.filter((m) => m !== null && typeof m === "object");
|
|
71
71
|
},
|
|
72
|
-
onRequest: async (_agent, _payload) => {
|
|
73
|
-
// Request/response coordination will be fully wired in Task 12
|
|
74
|
-
throw new Error("request() is not yet wired — see Task 12 (enhanced coordination).");
|
|
75
|
-
},
|
|
76
72
|
onReply: (msg, payload) => {
|
|
77
73
|
if (msg._replyChannel) {
|
|
78
74
|
msg._replyChannel(payload);
|
|
79
75
|
}
|
|
80
76
|
},
|
|
81
|
-
onPublish: (_topic, _data) => {
|
|
82
|
-
// Pub/sub coordination will be fully wired in Task 12
|
|
83
|
-
},
|
|
84
77
|
});
|
|
85
78
|
// Execute the user handler
|
|
86
79
|
const result = await handler(ctx);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"functional-agent.js","sourceRoot":"","sources":["../../src/agents/functional-agent.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,qDAAqD;AACrD,+DAA+D;AAC/D,8DAA8D;AAC9D,EAAE;AACF,SAAS;AACT,6CAA6C;AAC7C,+DAA+D;AAC/D,EAAE;AACF,8DAA8D;AAC9D,6DAA6D;AAC7D,+DAA+D;AAI/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,mEAAmE;AACnE,OAAO,EACL,cAAc,GACf,MAAM,eAAe,CAAC;AAIvB;;;;;;GAMG;AACH,MAAM,UAAU,KAAK,CACnB,IAAY,EACZ,QAAkD,EAClD,EAAoB;IAEpB,IAAI,OAAwB,CAAC;IAC7B,IAAI,IAAI,GAA2B,EAAE,CAAC;IAEtC,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;QACnC,OAAO,GAAG,QAAQ,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,QAAQ,CAAC;QAChB,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,IAAI,KAAK,CACb,UAAU,IAAI,kEAAkE,CACjF,CAAC;QACJ,CAAC;QACD,OAAO,GAAG,EAAE,CAAC;IACf,CAAC;IAED,MAAM,EACJ,KAAK,EACL,KAAK,GAAG,EAAE,EACV,YAAY,EACZ,QAAQ,GAAG,EAAE,EACb,SAAS,GACV,GAAG,IAAI,CAAC;IAET,MAAM,OAAO,GAAG,KAAK,EAAE,KAAQ,EAAE,MAAkB,EAAuB,EAAE;QAC1E,2EAA2E;QAC3E,MAAM,eAAe,GAA+D,EAAE,CAAC;QAEvF,8EAA8E;QAC9E,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;QAEhC,MAAM,eAAe,GAAG,MAAM,IAAI,MAAM,EAAE,MAAM,IAAI,EAAE,CAAC;QACvD,MAAM,cAAc,GAAG,MAAM,EAAE,KAAK,IAAI,IAAI,CAAC;QAC7C,MAAM,eAAe,GAAG,MAAM,EAAE,MAAM,IAAI,IAAI,CAAC;QAC/C,MAAM,kBAAkB,GAAG,MAAM;YAC/B,CAAC,CAAC,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,IAAI;YACrC,CAAC,CAAC,QAAQ,CAAC;QAEb,MAAM,GAAG,GAAG,iBAAiB,CAAI;YAC/B,KAAK;YACL,KAAK;YACL,SAAS,EAAE,IAAI;YACf,YAAY;YACZ,MAAM,EAAE,eAAe;YACvB,KAAK,EAAE,cAAc;YACrB,KAAK;YACL,YAAY,EAAE,eAAe;YAC7B,cAAc,EAAE,kBAAkB;YAElC,MAAM,EAAE,CAAC,KAAa,EAAE,OAAgB,EAAE,EAAE;gBAC1C,eAAe,CAAC,IAAI,CAAC;oBACnB,EAAE,EAAE,KAAK;oBACT,OAAO,EAAE,OAAO;oBAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;iBACtB,CAAC,CAAC;YACL,CAAC;YAED,QAAQ,EAAE,GAAG,EAAE;gBACb,6CAA6C;gBAC7C,MAAM,IAAI,GAAI,KAAiC,CAAC,aAAa,CAAC;gBAC9D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;oBAAE,OAAO,EAAE,CAAC;gBACpC,OAAO,IAAI,CAAC,MAAM,CAChB,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,CACvC,CAAC;YAC1B,CAAC;YAED,
|
|
1
|
+
{"version":3,"file":"functional-agent.js","sourceRoot":"","sources":["../../src/agents/functional-agent.ts"],"names":[],"mappings":"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"}
|