@oni.bot/core 1.0.2 → 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 (186) hide show
  1. package/CHANGELOG.md +146 -146
  2. package/dist/agents/define-agent.d.ts.map +1 -1
  3. package/dist/agents/define-agent.js +7 -2
  4. package/dist/agents/define-agent.js.map +1 -1
  5. package/dist/checkpoint.d.ts.map +1 -1
  6. package/dist/checkpoint.js +7 -2
  7. package/dist/checkpoint.js.map +1 -1
  8. package/dist/checkpointers/postgres.d.ts.map +1 -1
  9. package/dist/checkpointers/postgres.js +43 -27
  10. package/dist/checkpointers/postgres.js.map +1 -1
  11. package/dist/circuit-breaker.d.ts +1 -0
  12. package/dist/circuit-breaker.d.ts.map +1 -1
  13. package/dist/circuit-breaker.js +13 -0
  14. package/dist/circuit-breaker.js.map +1 -1
  15. package/dist/cli/dev.d.ts.map +1 -1
  16. package/dist/cli/dev.js +0 -1
  17. package/dist/cli/dev.js.map +1 -1
  18. package/dist/cli/run.d.ts.map +1 -1
  19. package/dist/cli/run.js +0 -1
  20. package/dist/cli/run.js.map +1 -1
  21. package/dist/config/loader.d.ts +1 -1
  22. package/dist/config/loader.js +12 -4
  23. package/dist/config/loader.js.map +1 -1
  24. package/dist/coordination/pubsub.d.ts +1 -0
  25. package/dist/coordination/pubsub.d.ts.map +1 -1
  26. package/dist/coordination/pubsub.js +31 -16
  27. package/dist/coordination/pubsub.js.map +1 -1
  28. package/dist/coordination/request-reply.d.ts +6 -0
  29. package/dist/coordination/request-reply.d.ts.map +1 -1
  30. package/dist/coordination/request-reply.js +56 -14
  31. package/dist/coordination/request-reply.js.map +1 -1
  32. package/dist/events/bus.d.ts +1 -0
  33. package/dist/events/bus.d.ts.map +1 -1
  34. package/dist/events/bus.js +16 -10
  35. package/dist/events/bus.js.map +1 -1
  36. package/dist/functional.d.ts.map +1 -1
  37. package/dist/functional.js +3 -0
  38. package/dist/functional.js.map +1 -1
  39. package/dist/graph.d.ts.map +1 -1
  40. package/dist/graph.js +5 -2
  41. package/dist/graph.js.map +1 -1
  42. package/dist/guardrails/audit.d.ts +4 -1
  43. package/dist/guardrails/audit.d.ts.map +1 -1
  44. package/dist/guardrails/audit.js +18 -1
  45. package/dist/guardrails/audit.js.map +1 -1
  46. package/dist/harness/agent-loop.d.ts.map +1 -1
  47. package/dist/harness/agent-loop.js +471 -352
  48. package/dist/harness/agent-loop.js.map +1 -1
  49. package/dist/harness/context-compactor.d.ts +1 -0
  50. package/dist/harness/context-compactor.d.ts.map +1 -1
  51. package/dist/harness/context-compactor.js +43 -1
  52. package/dist/harness/context-compactor.js.map +1 -1
  53. package/dist/harness/harness.d.ts +6 -0
  54. package/dist/harness/harness.d.ts.map +1 -1
  55. package/dist/harness/harness.js +32 -5
  56. package/dist/harness/harness.js.map +1 -1
  57. package/dist/harness/hooks-engine.d.ts.map +1 -1
  58. package/dist/harness/hooks-engine.js +12 -10
  59. package/dist/harness/hooks-engine.js.map +1 -1
  60. package/dist/harness/index.d.ts +3 -1
  61. package/dist/harness/index.d.ts.map +1 -1
  62. package/dist/harness/index.js +2 -0
  63. package/dist/harness/index.js.map +1 -1
  64. package/dist/harness/memory-loader.d.ts +150 -0
  65. package/dist/harness/memory-loader.d.ts.map +1 -0
  66. package/dist/harness/memory-loader.js +714 -0
  67. package/dist/harness/memory-loader.js.map +1 -0
  68. package/dist/harness/safety-gate.d.ts.map +1 -1
  69. package/dist/harness/safety-gate.js +47 -26
  70. package/dist/harness/safety-gate.js.map +1 -1
  71. package/dist/harness/skill-loader.d.ts +7 -0
  72. package/dist/harness/skill-loader.d.ts.map +1 -1
  73. package/dist/harness/skill-loader.js +24 -8
  74. package/dist/harness/skill-loader.js.map +1 -1
  75. package/dist/harness/todo-module.d.ts.map +1 -1
  76. package/dist/harness/todo-module.js +13 -6
  77. package/dist/harness/todo-module.js.map +1 -1
  78. package/dist/harness/types.d.ts +7 -0
  79. package/dist/harness/types.d.ts.map +1 -1
  80. package/dist/harness/types.js.map +1 -1
  81. package/dist/harness/validate-args.js +18 -3
  82. package/dist/harness/validate-args.js.map +1 -1
  83. package/dist/hitl/interrupt.d.ts +2 -2
  84. package/dist/hitl/interrupt.d.ts.map +1 -1
  85. package/dist/hitl/interrupt.js +6 -4
  86. package/dist/hitl/interrupt.js.map +1 -1
  87. package/dist/hitl/resume.d.ts +10 -0
  88. package/dist/hitl/resume.d.ts.map +1 -1
  89. package/dist/hitl/resume.js +31 -0
  90. package/dist/hitl/resume.js.map +1 -1
  91. package/dist/injected.d.ts.map +1 -1
  92. package/dist/injected.js.map +1 -1
  93. package/dist/inspect.d.ts.map +1 -1
  94. package/dist/inspect.js +28 -8
  95. package/dist/inspect.js.map +1 -1
  96. package/dist/lsp/client.d.ts +2 -0
  97. package/dist/lsp/client.d.ts.map +1 -1
  98. package/dist/lsp/client.js +62 -17
  99. package/dist/lsp/client.js.map +1 -1
  100. package/dist/lsp/index.d.ts.map +1 -1
  101. package/dist/lsp/index.js.map +1 -1
  102. package/dist/mcp/client.d.ts +2 -0
  103. package/dist/mcp/client.d.ts.map +1 -1
  104. package/dist/mcp/client.js +44 -13
  105. package/dist/mcp/client.js.map +1 -1
  106. package/dist/mcp/convert.js +1 -1
  107. package/dist/mcp/convert.js.map +1 -1
  108. package/dist/mcp/transport.d.ts +2 -0
  109. package/dist/mcp/transport.d.ts.map +1 -1
  110. package/dist/mcp/transport.js +33 -8
  111. package/dist/mcp/transport.js.map +1 -1
  112. package/dist/messages/index.d.ts.map +1 -1
  113. package/dist/messages/index.js +7 -1
  114. package/dist/messages/index.js.map +1 -1
  115. package/dist/models/anthropic.d.ts.map +1 -1
  116. package/dist/models/anthropic.js +25 -15
  117. package/dist/models/anthropic.js.map +1 -1
  118. package/dist/models/google.d.ts.map +1 -1
  119. package/dist/models/google.js +23 -7
  120. package/dist/models/google.js.map +1 -1
  121. package/dist/models/ollama.d.ts.map +1 -1
  122. package/dist/models/ollama.js +11 -1
  123. package/dist/models/ollama.js.map +1 -1
  124. package/dist/models/openai.d.ts.map +1 -1
  125. package/dist/models/openai.js +15 -3
  126. package/dist/models/openai.js.map +1 -1
  127. package/dist/models/openrouter.d.ts.map +1 -1
  128. package/dist/models/openrouter.js +14 -3
  129. package/dist/models/openrouter.js.map +1 -1
  130. package/dist/prebuilt/react-agent.d.ts.map +1 -1
  131. package/dist/prebuilt/react-agent.js +1 -0
  132. package/dist/prebuilt/react-agent.js.map +1 -1
  133. package/dist/pregel.d.ts +9 -6
  134. package/dist/pregel.d.ts.map +1 -1
  135. package/dist/pregel.js +89 -39
  136. package/dist/pregel.js.map +1 -1
  137. package/dist/retry.d.ts.map +1 -1
  138. package/dist/retry.js +7 -6
  139. package/dist/retry.js.map +1 -1
  140. package/dist/store/index.d.ts.map +1 -1
  141. package/dist/store/index.js +36 -9
  142. package/dist/store/index.js.map +1 -1
  143. package/dist/stream-events.d.ts.map +1 -1
  144. package/dist/stream-events.js +3 -9
  145. package/dist/stream-events.js.map +1 -1
  146. package/dist/swarm/graph.d.ts +15 -2
  147. package/dist/swarm/graph.d.ts.map +1 -1
  148. package/dist/swarm/graph.js +43 -14
  149. package/dist/swarm/graph.js.map +1 -1
  150. package/dist/swarm/index.d.ts +2 -1
  151. package/dist/swarm/index.d.ts.map +1 -1
  152. package/dist/swarm/index.js.map +1 -1
  153. package/dist/swarm/mailbox.d.ts.map +1 -1
  154. package/dist/swarm/mailbox.js +3 -1
  155. package/dist/swarm/mailbox.js.map +1 -1
  156. package/dist/swarm/mermaid.d.ts +2 -1
  157. package/dist/swarm/mermaid.d.ts.map +1 -1
  158. package/dist/swarm/mermaid.js +6 -3
  159. package/dist/swarm/mermaid.js.map +1 -1
  160. package/dist/swarm/pool.d.ts.map +1 -1
  161. package/dist/swarm/pool.js +18 -1
  162. package/dist/swarm/pool.js.map +1 -1
  163. package/dist/swarm/registry.d.ts.map +1 -1
  164. package/dist/swarm/registry.js +7 -0
  165. package/dist/swarm/registry.js.map +1 -1
  166. package/dist/swarm/scaling.d.ts +10 -1
  167. package/dist/swarm/scaling.d.ts.map +1 -1
  168. package/dist/swarm/scaling.js +85 -14
  169. package/dist/swarm/scaling.js.map +1 -1
  170. package/dist/swarm/snapshot.d.ts.map +1 -1
  171. package/dist/swarm/snapshot.js +10 -1
  172. package/dist/swarm/snapshot.js.map +1 -1
  173. package/dist/swarm/supervisor.js +20 -12
  174. package/dist/swarm/supervisor.js.map +1 -1
  175. package/dist/swarm/tracer.d.ts +3 -1
  176. package/dist/swarm/tracer.d.ts.map +1 -1
  177. package/dist/swarm/tracer.js +66 -15
  178. package/dist/swarm/tracer.js.map +1 -1
  179. package/dist/swarm/types.d.ts +1 -6
  180. package/dist/swarm/types.d.ts.map +1 -1
  181. package/dist/testing/index.d.ts +2 -2
  182. package/dist/testing/index.d.ts.map +1 -1
  183. package/dist/testing/index.js.map +1 -1
  184. package/dist/types.d.ts +3 -1
  185. package/dist/types.d.ts.map +1 -1
  186. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,146 +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.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
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
@@ -1 +1 @@
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,CAiLd"}
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"}
@@ -93,6 +93,7 @@ export function defineAgent(opts) {
93
93
  messages,
94
94
  tools: llmTools.length > 0 ? llmTools : undefined,
95
95
  systemPrompt,
96
+ signal: config?.signal,
96
97
  });
97
98
  const llmDuration = Date.now() - llmStart;
98
99
  // b. Emit llm.response + audit + budget
@@ -124,11 +125,15 @@ export function defineAgent(opts) {
124
125
  if (response.toolCalls && response.toolCalls.length > 0) {
125
126
  assistantMsg.toolCalls = response.toolCalls;
126
127
  }
127
- messages.push(assistantMsg);
128
- // Check maxTokens budget
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.
129
132
  if (maxTokens !== undefined && totalTokens >= maxTokens) {
133
+ messages.push({ role: "assistant", content: assistantMsg.content });
130
134
  break;
131
135
  }
136
+ messages.push(assistantMsg);
132
137
  // e. If no tool calls -> done
133
138
  if (!response.toolCalls || response.toolCalls.length === 0) {
134
139
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"define-agent.js","sourceRoot":"","sources":["../../src/agents/define-agent.ts"],"names":[],"mappings":"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"}
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":"checkpoint.d.ts","sourceRoot":"","sources":["../src/checkpoint.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAMxF,qBAAa,kBAAkB,CAAC,CAAC,CAAE,YAAW,eAAe,CAAC,CAAC,CAAC;IAC9D,OAAO,CAAC,KAAK,CAAyC;IAEhD,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAMvD,GAAG,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAShD,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IAiBjF,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMvC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAK7E,iEAAiE;IAC3D,IAAI,CACR,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC;IAWnB,KAAK,IAAI,IAAI;CACd;AAMD,qBAAa,gBAAgB,CAAC,CAAC,CAAE,YAAW,eAAe,CAAC,CAAC,CAAC;IACtD,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAC7B,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IACvC,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5C,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CACvC;AAOD,8BAAsB,sBAAsB,CAAC,CAAC,CAAE,YAAW,eAAe,CAAC,CAAC,CAAC;IAC3E,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAyC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACtG,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,GAA6B,OAAO,CAAC,IAAI,CAAC;IACnF,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,qBAAqB,GAAU,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IACjG,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAsC,OAAO,CAAC,IAAI,CAAC;IAE7E,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAKvE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CASzE"}
1
+ {"version":3,"file":"checkpoint.d.ts","sourceRoot":"","sources":["../src/checkpoint.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAMxF,qBAAa,kBAAkB,CAAC,CAAC,CAAE,YAAW,eAAe,CAAC,CAAC,CAAC;IAC9D,OAAO,CAAC,KAAK,CAAyC;IAEhD,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAMvD,GAAG,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAehD,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IAiBjF,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMvC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAK7E,iEAAiE;IAC3D,IAAI,CACR,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC;IAWnB,KAAK,IAAI,IAAI;CACd;AAMD,qBAAa,gBAAgB,CAAC,CAAC,CAAE,YAAW,eAAe,CAAC,CAAC,CAAC;IACtD,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAC7B,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IACvC,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5C,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CACvC;AAOD,8BAAsB,sBAAsB,CAAC,CAAC,CAAE,YAAW,eAAe,CAAC,CAAC,CAAC;IAC3E,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAyC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACtG,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,GAA6B,OAAO,CAAC,IAAI,CAAC;IACnF,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,qBAAqB,GAAU,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IACjG,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAsC,OAAO,CAAC,IAAI,CAAC;IAE7E,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAKvE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CASzE"}
@@ -17,10 +17,15 @@ export class MemoryCheckpointer {
17
17
  const existing = this.store.get(checkpoint.threadId) ?? [];
18
18
  // Overwrite if same step exists (idempotent)
19
19
  const idx = existing.findIndex((c) => c.step === checkpoint.step);
20
- if (idx >= 0)
20
+ if (idx >= 0) {
21
21
  existing[idx] = { ...checkpoint };
22
- else
22
+ }
23
+ else {
23
24
  existing.push({ ...checkpoint });
25
+ // Keep sorted by step so get() (which returns the last element) always
26
+ // returns the highest step even when steps are written out of order.
27
+ existing.sort((a, b) => a.step - b.step);
28
+ }
24
29
  this.store.set(checkpoint.threadId, existing);
25
30
  }
26
31
  async list(threadId, opts) {
@@ -1 +1 @@
1
- {"version":3,"file":"checkpoint.js","sourceRoot":"","sources":["../src/checkpoint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checkpoint.js","sourceRoot":"","sources":["../src/checkpoint.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../src/checkpointers/postgres.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAOzF,qBAAa,oBAAoB,CAAC,CAAC,CAAE,YAAW,eAAe,CAAC,CAAC,CAAC;IAC5C,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAzC,OAAO;WAEM,MAAM,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;IA2B5E,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAQvD,GAAG,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBxC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IA8BjF,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOvC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,OAAO,CAAC,WAAW;CAgBpB"}
1
+ {"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../src/checkpointers/postgres.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAQzF,qBAAa,oBAAoB,CAAC,CAAC,CAAE,YAAW,eAAe,CAAC,CAAC,CAAC;IAC5C,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAzC,OAAO;WAEM,MAAM,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAgC5E,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAQvD,GAAG,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBxC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IA8BjF,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOvC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,OAAO,CAAC,WAAW;CAuBpB"}
@@ -4,31 +4,38 @@
4
4
  // Production-grade checkpointer using PostgreSQL.
5
5
  // Requires `pg` as an optional peer dependency.
6
6
  // ============================================================
7
+ import { CheckpointCorruptError } from "../errors.js";
7
8
  export class PostgresCheckpointer {
8
9
  pool;
9
10
  constructor(pool) {
10
11
  this.pool = pool;
11
12
  }
12
13
  static async create(connectionString) {
13
- // @ts-ignore — pg is an optional peer dependency
14
+ // @ts-expect-error — pg is an optional peer dependency
14
15
  const pg = await import("pg");
15
16
  const Pool = pg.Pool ?? pg.default?.Pool ?? pg;
16
17
  const pool = new Pool({ connectionString });
17
- await pool.query(`
18
- CREATE TABLE IF NOT EXISTS oni_checkpoints (
19
- thread_id TEXT NOT NULL,
20
- step INTEGER NOT NULL,
21
- agent_id TEXT,
22
- state JSONB NOT NULL,
23
- next_nodes JSONB NOT NULL,
24
- pending_sends JSONB NOT NULL DEFAULT '[]',
25
- metadata JSONB,
26
- pending_writes JSONB,
27
- timestamp BIGINT NOT NULL,
28
- PRIMARY KEY (thread_id, step)
29
- )
30
- `);
31
- await pool.query(`CREATE INDEX IF NOT EXISTS idx_oni_cp_thread ON oni_checkpoints (thread_id)`);
18
+ try {
19
+ await pool.query(`
20
+ CREATE TABLE IF NOT EXISTS oni_checkpoints (
21
+ thread_id TEXT NOT NULL,
22
+ step INTEGER NOT NULL,
23
+ agent_id TEXT,
24
+ state JSONB NOT NULL,
25
+ next_nodes JSONB NOT NULL,
26
+ pending_sends JSONB NOT NULL DEFAULT '[]',
27
+ metadata JSONB,
28
+ pending_writes JSONB,
29
+ timestamp BIGINT NOT NULL,
30
+ PRIMARY KEY (thread_id, step)
31
+ )
32
+ `);
33
+ await pool.query(`CREATE INDEX IF NOT EXISTS idx_oni_cp_thread ON oni_checkpoints (thread_id)`);
34
+ }
35
+ catch (err) {
36
+ await pool.end().catch(() => { });
37
+ throw err;
38
+ }
32
39
  return new PostgresCheckpointer(pool);
33
40
  }
34
41
  async get(threadId) {
@@ -36,10 +43,10 @@ export class PostgresCheckpointer {
36
43
  return rows.length > 0 ? this.deserialize(rows[0]) : null;
37
44
  }
38
45
  async put(cp) {
39
- await this.pool.query(`INSERT INTO oni_checkpoints
40
- (thread_id, step, agent_id, state, next_nodes, pending_sends, metadata, pending_writes, timestamp)
41
- VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9)
42
- ON CONFLICT (thread_id, step)
46
+ await this.pool.query(`INSERT INTO oni_checkpoints
47
+ (thread_id, step, agent_id, state, next_nodes, pending_sends, metadata, pending_writes, timestamp)
48
+ VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9)
49
+ ON CONFLICT (thread_id, step)
43
50
  DO UPDATE SET state=$4, next_nodes=$5, pending_sends=$6, metadata=$7, pending_writes=$8, timestamp=$9`, [
44
51
  cp.threadId,
45
52
  cp.step,
@@ -83,16 +90,25 @@ export class PostgresCheckpointer {
83
90
  await this.pool.end();
84
91
  }
85
92
  deserialize(row) {
86
- const parse = (val) => typeof val === "string" ? JSON.parse(val) : val;
93
+ const threadId = row.thread_id;
94
+ const safeParse = (field, raw) => {
95
+ const val = typeof raw === "string" ? raw : JSON.stringify(raw);
96
+ try {
97
+ return JSON.parse(val);
98
+ }
99
+ catch {
100
+ throw new CheckpointCorruptError(threadId, `failed to parse "${field}" — data may be truncated or corrupted`);
101
+ }
102
+ };
87
103
  return {
88
- threadId: row.thread_id,
104
+ threadId,
89
105
  step: row.step,
90
106
  agentId: row.agent_id ?? undefined,
91
- state: parse(row.state),
92
- nextNodes: parse(row.next_nodes),
93
- pendingSends: parse(row.pending_sends),
94
- metadata: row.metadata ? parse(row.metadata) : undefined,
95
- pendingWrites: row.pending_writes ? parse(row.pending_writes) : undefined,
107
+ state: safeParse("state", row.state),
108
+ nextNodes: safeParse("next_nodes", row.next_nodes),
109
+ pendingSends: safeParse("pending_sends", row.pending_sends),
110
+ metadata: row.metadata ? safeParse("metadata", row.metadata) : undefined,
111
+ pendingWrites: row.pending_writes ? safeParse("pending_writes", row.pending_writes) : undefined,
96
112
  timestamp: Number(row.timestamp),
97
113
  };
98
114
  }
@@ -1 +1 @@
1
- {"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../src/checkpointers/postgres.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../src/checkpointers/postgres.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ export declare class CircuitBreaker {
9
9
  private _state;
10
10
  private consecutiveFailures;
11
11
  private lastFailureTime;
12
+ private _probeInFlight;
12
13
  private readonly nodeName;
13
14
  constructor(config: CircuitBreakerConfig, nodeName?: string);
14
15
  get state(): CircuitState;
@@ -1 +1 @@
1
- {"version":3,"file":"circuit-breaker.d.ts","sourceRoot":"","sources":["../src/circuit-breaker.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;AAE3D,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;CAC5C;AAED,qBAAa,cAAc;IAMb,OAAO,CAAC,QAAQ,CAAC,MAAM;IALnC,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEL,MAAM,EAAE,oBAAoB,EAAE,QAAQ,CAAC,EAAE,MAAM;IAI5E,IAAI,KAAK,IAAI,YAAY,CAKxB;IAEK,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAgBlD,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,SAAS;IAUjB,KAAK,IAAI,IAAI;CAKd"}
1
+ {"version":3,"file":"circuit-breaker.d.ts","sourceRoot":"","sources":["../src/circuit-breaker.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;AAE3D,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;CAC5C;AAED,qBAAa,cAAc;IAOb,OAAO,CAAC,QAAQ,CAAC,MAAM;IANnC,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEL,MAAM,EAAE,oBAAoB,EAAE,QAAQ,CAAC,EAAE,MAAM;IAI5E,IAAI,KAAK,IAAI,YAAY,CAKxB;IAEK,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAwBlD,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,SAAS;IAWjB,KAAK,IAAI,IAAI;CAMd"}
@@ -7,6 +7,7 @@ export class CircuitBreaker {
7
7
  _state = "closed";
8
8
  consecutiveFailures = 0;
9
9
  lastFailureTime = 0;
10
+ _probeInFlight = false;
10
11
  nodeName;
11
12
  constructor(config, nodeName) {
12
13
  this.config = config;
@@ -25,6 +26,15 @@ export class CircuitBreaker {
25
26
  return this.config.fallback();
26
27
  throw new CircuitBreakerOpenError(this.nodeName, this.config.resetAfter);
27
28
  }
29
+ if (currentState === "half_open") {
30
+ if (this._probeInFlight) {
31
+ // Another probe is already in flight — reject additional concurrent callers
32
+ if (this.config.fallback)
33
+ return this.config.fallback();
34
+ throw new CircuitBreakerOpenError(this.nodeName, this.config.resetAfter);
35
+ }
36
+ this._probeInFlight = true; // Set synchronously before any await
37
+ }
28
38
  try {
29
39
  const result = await fn();
30
40
  this.onSuccess();
@@ -38,8 +48,10 @@ export class CircuitBreaker {
38
48
  onSuccess() {
39
49
  this.consecutiveFailures = 0;
40
50
  this._state = "closed";
51
+ this._probeInFlight = false;
41
52
  }
42
53
  onFailure() {
54
+ this._probeInFlight = false;
43
55
  this.consecutiveFailures++;
44
56
  this.lastFailureTime = Date.now();
45
57
  if (this._state === "half_open") {
@@ -53,6 +65,7 @@ export class CircuitBreaker {
53
65
  this._state = "closed";
54
66
  this.consecutiveFailures = 0;
55
67
  this.lastFailureTime = 0;
68
+ this._probeInFlight = false;
56
69
  }
57
70
  }
58
71
  //# sourceMappingURL=circuit-breaker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"circuit-breaker.js","sourceRoot":"","sources":["../src/circuit-breaker.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,kCAAkC;AAClC,+DAA+D;AAE/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAUtD,MAAM,OAAO,cAAc;IAMI;IALrB,MAAM,GAAiB,QAAQ,CAAC;IAChC,mBAAmB,GAAG,CAAC,CAAC;IACxB,eAAe,GAAG,CAAC,CAAC;IACX,QAAQ,CAAS;IAElC,YAA6B,MAA4B,EAAE,QAAiB;QAA/C,WAAM,GAAN,MAAM,CAAsB;QACvD,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,SAAS,CAAC;IACxC,CAAC;IAED,IAAI,KAAK;QACP,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YAC1F,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC;QAC5B,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,OAAO,CAAI,EAAoB;QACnC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;QAChC,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ;gBAAE,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAO,CAAC;YAC7D,MAAM,IAAI,uBAAuB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;YAC1B,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,SAAS;QACf,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;IACzB,CAAC;IAEO,SAAS;QACf,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAClC,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,CAAC;aAAM,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC7D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,CAAC;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;IAC3B,CAAC;CACF"}
1
+ {"version":3,"file":"circuit-breaker.js","sourceRoot":"","sources":["../src/circuit-breaker.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/cli/dev.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAE/D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA4ChE"}
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/cli/dev.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAE/D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA2ChE"}