@ellyco/agentic 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/README.md +88 -126
  2. package/dist/graphs/graph.d.ts.map +1 -1
  3. package/dist/graphs/graph.js +72 -47
  4. package/dist/graphs/graph.js.map +1 -1
  5. package/dist/graphs/index.d.ts +0 -1
  6. package/dist/graphs/index.d.ts.map +1 -1
  7. package/dist/graphs/index.js +0 -1
  8. package/dist/graphs/index.js.map +1 -1
  9. package/dist/graphs/iterator.d.ts +25 -21
  10. package/dist/graphs/iterator.d.ts.map +1 -1
  11. package/dist/graphs/iterator.js +30 -25
  12. package/dist/graphs/iterator.js.map +1 -1
  13. package/dist/graphs/types.d.ts +2 -3
  14. package/dist/graphs/types.d.ts.map +1 -1
  15. package/dist/index.d.ts +1 -0
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +1 -0
  18. package/dist/index.js.map +1 -1
  19. package/dist/models/BaseModel.d.ts +3 -1
  20. package/dist/models/BaseModel.d.ts.map +1 -1
  21. package/dist/models/BaseModel.js +5 -0
  22. package/dist/models/BaseModel.js.map +1 -1
  23. package/dist/models/react-agent.d.ts +12 -0
  24. package/dist/models/react-agent.d.ts.map +1 -0
  25. package/dist/models/react-agent.js +48 -0
  26. package/dist/models/react-agent.js.map +1 -0
  27. package/dist/tools.d.ts +7 -6
  28. package/dist/tools.d.ts.map +1 -1
  29. package/dist/tools.js +3 -2
  30. package/dist/tools.js.map +1 -1
  31. package/dist/util/clone-aware.d.ts +2 -0
  32. package/dist/util/clone-aware.d.ts.map +1 -0
  33. package/dist/util/clone-aware.js +29 -0
  34. package/dist/util/clone-aware.js.map +1 -0
  35. package/dist/util/index.d.ts +4 -0
  36. package/dist/util/index.d.ts.map +1 -0
  37. package/dist/util/index.js +20 -0
  38. package/dist/util/index.js.map +1 -0
  39. package/dist/util/merge-state.d.ts.map +1 -0
  40. package/dist/{graphs → util}/merge-state.js +13 -11
  41. package/dist/util/merge-state.js.map +1 -0
  42. package/dist/util/serializer.d.ts +15 -0
  43. package/dist/util/serializer.d.ts.map +1 -0
  44. package/dist/util/serializer.js +73 -0
  45. package/dist/util/serializer.js.map +1 -0
  46. package/package.json +5 -1
  47. package/dist/graphs/merge-state.d.ts.map +0 -1
  48. package/dist/graphs/merge-state.js.map +0 -1
  49. /package/dist/{graphs → util}/merge-state.d.ts +0 -0
package/README.md CHANGED
@@ -138,7 +138,7 @@ sm.addNode("path2", path2Node);
138
138
  // Conditional edge - route based on state
139
139
  sm.addConditionalEdge(
140
140
  "decision",
141
- ["path1", "path2", "end"],
141
+ ["path1", "path2"],
142
142
  (state) => state.priority > 5 ? "path1" : "path2"
143
143
  );
144
144
  ```
@@ -162,7 +162,7 @@ const schema = z.object({
162
162
  items: z.array(z.object({ value: z.number() }))
163
163
  });
164
164
 
165
- const iterator = new Iterator(schema, "item", "items");
165
+ const iterator = new Iterator(schema, "items", "item");
166
166
  iterator.setLoopedNode(loopedNode);
167
167
 
168
168
  const result = await iterator.invoke({
@@ -227,43 +227,74 @@ const agent = new AgentMessage("The analysis shows...");
227
227
 
228
228
  ### Tool Usage
229
229
 
230
- Tools enable models to request external operations:
230
+ Tools enable models to request external operations. Define tools and attach them to models:
231
231
 
232
232
  ```typescript
233
- import { ToolRequest, ToolResponse, ToolError } from '@ellyco/agentic';
234
-
235
- // Model requests a tool
236
- const request = new ToolRequest(
237
- "call_123",
238
- "search",
239
- { query: "latest news" }
240
- );
233
+ import { defineTool } from '@ellyco/agentic';
234
+ import { z } from 'zod';
241
235
 
242
- // Tool execution succeeds
243
- const response = new ToolResponse(
244
- "call_123",
245
- "search",
246
- { results: [...] }
236
+ // Define a tool with input schema
237
+ const weatherTool = defineTool(
238
+ "get_weather",
239
+ "Get current weather for a location",
240
+ z.object({
241
+ location: z.string(),
242
+ unit: z.enum(["celsius", "fahrenheit"]).optional()
243
+ })
247
244
  );
248
245
 
249
- // Or fails
250
- const error = new ToolError(
251
- "call_123",
252
- "search",
253
- "API rate limit exceeded"
254
- );
246
+ // Attach tool to model
247
+ const model = new BedrockModel({ modelId: "..." })
248
+ .withTools([weatherTool]);
249
+
250
+ // When you invoke the model, it can request tool usage
251
+ // The model's response will include ToolRequest messages that you can handle
252
+ const response = await model.invoke([
253
+ new UserMessage("What's the weather in San Francisco?")
254
+ ]);
255
+
256
+ // Check for tool requests in the response
257
+ for (const message of response.messages) {
258
+ if (message instanceof ToolRequest) {
259
+ // Execute the tool based on message.name and message.input
260
+ // Then add ToolResponse or ToolError back to the conversation
261
+ }
262
+ }
255
263
  ```
256
264
 
257
265
  ### State Management
258
266
 
259
- State flows through graphs, with each node returning partial updates that are merged using the schema:
267
+ State flows through graphs, with each node returning partial updates that are automatically merged:
260
268
 
261
269
  ```typescript
262
- const base = { count: 5, items: [1, 2, 3] };
263
- const changes = { count: 10, items: [4, 5] };
270
+ const schema = z.object({
271
+ count: z.number(),
272
+ items: z.array(z.string()),
273
+ status: z.string().optional()
274
+ });
264
275
 
265
- // Merged state
266
- const merged = { count: 10, items: [4, 5] };
276
+ const graph = new StateMachine(schema);
277
+
278
+ // Node 1: Sets initial values
279
+ graph.addNode("init", makeNode((state) => ({
280
+ count: 0,
281
+ items: ["a", "b"]
282
+ })));
283
+
284
+ // Node 2: Updates count and adds items
285
+ graph.addNode("update", makeNode((state) => ({
286
+ count: state.count + 1,
287
+ items: [...state.items, "c"]
288
+ })));
289
+
290
+ // Node 3: Sets status
291
+ graph.addNode("finalize", makeNode((state) => ({
292
+ status: `Processed ${state.count} items`
293
+ })));
294
+
295
+ // State evolves: {count: 0, items: ["a","b"]}
296
+ // → {count: 1, items: ["a","b","c"]}
297
+ // → {count: 1, items: ["a","b","c"], status: "Processed 1 items"}
267
298
  ```
268
299
 
269
300
  ## Advanced Features
@@ -309,7 +340,7 @@ let result = await graph.invoke(initialState, { store });
309
340
  if (result.exitReason === "interrupt") {
310
341
  // Later, in a different process:
311
342
  const db2 = new Database("runs.db");
312
- const store2 = new SQLiteStore(db2);
343
+ const store2 = new SQLiteStore(db2, "graph_runs");
313
344
 
314
345
  // Resume from stored checkpoint
315
346
  const result2 = await graph.invoke(result.state, {
@@ -345,10 +376,15 @@ console.log(result.explanation); // string
345
376
 
346
377
  ### Custom Models
347
378
 
348
- Implement your own model provider:
379
+ Implement your own model provider by extending `BaseModel`:
349
380
 
350
381
  ```typescript
351
- import { BaseModel, InvokeResponse, ModelMessages } from '@ellyco/agentic';
382
+ import {
383
+ BaseModel,
384
+ InvokeResponse,
385
+ InvokeResponseStopReason,
386
+ ModelMessages
387
+ } from '@ellyco/agentic';
352
388
 
353
389
  class MyCustomModel extends BaseModel {
354
390
  protected async runModel(
@@ -360,15 +396,22 @@ class MyCustomModel extends BaseModel {
360
396
  body: JSON.stringify({ messages })
361
397
  });
362
398
 
399
+ const data = await response.json();
400
+
363
401
  return {
364
- messages: [...],
365
- usage: { inputTokens: 100, outputTokens: 50 },
402
+ messages: data.messages, // Array of AgentMessage or ToolRequest
403
+ usage: {
404
+ inputTokens: data.usage.inputTokens,
405
+ outputTokens: data.usage.outputTokens
406
+ },
366
407
  stopReason: InvokeResponseStopReason.END_TURN
367
408
  };
368
409
  }
369
410
  }
370
411
 
371
- const model = new MyCustomModel({ temperature: 0.7 });
412
+ const model = new MyCustomModel({ temperature: 0.7 })
413
+ .withSystemMessage("You are helpful")
414
+ .withTools([myTool]);
372
415
  ```
373
416
 
374
417
  ### Testing with TestModel
@@ -487,27 +530,6 @@ const exporter = new OTLPTraceExporter({
487
530
  provider.addSpanProcessor(new BatchSpanProcessor(exporter));
488
531
  ```
489
532
 
490
- #### Tracing Nested Graphs
491
-
492
- When graphs call other graphs, context layers create a hierarchical span structure:
493
-
494
- ```typescript
495
- // Parent graph
496
- const parentGraph = new StateMachine(parentSchema);
497
- parentGraph.addNode("delegate", new FunctionNode(async (state) => {
498
- // Calling a subgraph
499
- return await subGraph.run(state, context);
500
- }));
501
-
502
- // Traces show hierarchy:
503
- // ├─ run-id: run-abc123
504
- // │ ├─ process (layerId: ROOT)
505
- // │ ├─ delegate (layerId: ROOT.delegate)
506
- // │ │ ├─ subprocess (layerId: ROOT.delegate.subprocess)
507
- // │ │ └─ validate (layerId: ROOT.delegate.validate)
508
- // │ └─ finalize (layerId: ROOT)
509
- ```
510
-
511
533
  #### Debugging with Traces
512
534
 
513
535
  Traces are invaluable for:
@@ -516,102 +538,43 @@ Traces are invaluable for:
516
538
  - **Error investigation** - Track state at each step before failure
517
539
  - **Production monitoring** - Monitor graph executions in real-time
518
540
 
519
- ```typescript
520
- // Example: Find slow nodes
521
- const traces = await exporter.getTraces();
522
- traces.forEach(span => {
523
- const duration = span.endTime - span.startTime;
524
- if (duration > 5000) {
525
- console.warn(`Slow node: ${span.attributes.nodeName} took ${duration}ms`);
526
- }
527
- });
528
- ```
529
-
530
- ## Architecture
531
-
532
- ### Execution Flow
533
-
534
- ```
535
- Graph.invoke()
536
-
537
- Create RuntimeContext
538
-
539
- Loop:
540
- - Get current node
541
- - Execute node.run(state, context)
542
- - Merge returned state
543
- - Check for interrupts
544
- - Transition to next node
545
-
546
- Return result (end or interrupt)
547
- ```
548
-
549
- ### State Transformation
550
-
551
- ```
552
- Graph State
553
-
554
- stateToNodeState() ← Node gets specific state type
555
-
556
- Node.run() ← Node executes
557
-
558
- nodeStateToState() ← Convert back to graph state
559
-
560
- mergeState() ← Merge with existing state
561
-
562
- Updated Graph State
563
- ```
564
-
565
- ### Context Layers
566
-
567
- Nested graphs create a stack of context layers for tracking execution position:
568
-
569
- ```typescript
570
- RuntimeContext
571
- └─ ContextLayer 0 (root)
572
- ├─ currentNode: "node1"
573
- ├─ custom: { ... }
574
- └─ ContextLayer 1 (nested graph)
575
- ├─ currentNode: "subnode"
576
- └─ custom: { ... }
577
- ```
541
+ When graphs call other graphs (nested execution), traces automatically show the hierarchical structure with layer IDs, making it easy to understand the execution flow.
578
542
 
579
543
  ## API Reference
580
544
 
545
+ This is a high-level overview. For detailed API documentation, see the JSDoc comments in the source code.
546
+
581
547
  ### Graph Classes
582
548
 
583
- - **`Graph<Z, S, NS>`** - Abstract base class for all graphs
584
549
  - **`StateMachine<T, S>`** - Flexible graph with manual node/edge definition
585
550
  - **`NodeSequence<T, S>`** - Linear graph executing nodes in sequence
586
551
  - **`Iterator<Item, T, Prefix, S, NS>`** - Loop over array items
587
552
 
588
553
  ### Node Classes
589
554
 
590
- - **`FunctionNode<T>`** - Execute a function
591
- - **`ModelNode<T>`** - Invoke an AI model
592
- - **`InterruptNode<T>`** - Pause execution
555
+ - **`FunctionNode<T>`** - Execute a function (or use `makeNode()` helper)
556
+ - **`ModelNode<T>`** - Invoke an AI model and store response in state
557
+ - **`InterruptNode<T>`** - Pause execution for external input
593
558
 
594
559
  ### Message Classes
595
560
 
596
- - **`BaseMessage`** - Abstract message base
597
561
  - **`SystemMessage`** - System context message
598
- - **`UserMessage`** - User request message
562
+ - **`UserMessage`** - User request message (supports template interpolation)
599
563
  - **`AgentMessage`** - Agent response message
600
- - **`ToolRequest<T>`** - Tool invocation request
564
+ - **`ToolRequest<T>`** - Tool invocation request from models
601
565
  - **`ToolResponse<T>`** - Tool execution result
602
566
  - **`ToolError`** - Tool execution error
603
567
 
604
568
  ### Model Classes
605
569
 
606
- - **`BaseModel`** - Abstract model base class
570
+ - **`BaseModel`** - Abstract base class for custom model implementations
607
571
  - **`BedrockModel`** - AWS Bedrock integration
608
572
  - **`TestModel`** - Mock model for testing
609
573
 
610
574
  ### Storage Classes
611
575
 
612
- - **`BaseStore`** - Abstract store interface
613
- - **`SQLiteStore`** - SQLite-based persistence
614
- - **`StoredRun`** - Single run checkpoint wrapper
576
+ - **`SQLiteStore`** - SQLite-based persistence for checkpoints
577
+ - **`StoredRun`** - Wrapper for interacting with a specific run's stored state
615
578
 
616
579
  ## Complete Example
617
580
 
@@ -626,8 +589,7 @@ import {
626
589
  UserMessage,
627
590
  SystemMessage,
628
591
  SQLiteStore,
629
- defineTool,
630
- tool
592
+ defineTool
631
593
  } from '@ellyco/agentic';
632
594
  import { z } from 'zod';
633
595
  import Database from 'better-sqlite3';
@@ -1 +1 @@
1
- {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/graphs/graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/graphs/graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB;;GAEG;AACH,MAAM,MAAM,IAAI,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AAEjF;;GAEG;AACH,eAAO,MAAM,KAAK,UAAU,CAAC;AAE7B;;GAEG;AACH,eAAO,MAAM,GAAG,QAAQ,CAAC;AAEzB;;;;;;GAMG;AACH,MAAM,WAAW,SAAS;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AAWD;;;GAGG;AACH,MAAM,MAAM,4BAA4B,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,GAAG;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,CAAC;AAE/F;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,wBAAwB,GAAI,CAAC,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,KAAK,CAAC,KAAG,4BAA4B,CAAC,CAAC,CAGnH,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,8BAAsB,KAAK,CACvB,CAAC,SAAS,CAAC,CAAC,SAAS,EACrB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAC9C,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CACxC,YAAW,QAAQ,CAAC,CAAC,CAAC;IAsDR,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IArDxC;;OAEG;IACH,SAAgB,OAAO,QAAQ;IAE/B;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAM;IAEnD;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAE7C;;OAEG;IACH,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAM;IAE1D;;OAEG;IACH,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,KAAK,MAAM,CAAC,CAAM;IAE9F;;;;;;;;;OASG;IACH,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,GAAG,EAAE;IAExE;;;;;;;;OAQG;IACH,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC;IAE9F;;;;OAIG;gBAC4B,MAAM,EAAE,CAAC;IAExC;;;;;;;;OAQG;IACH,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAwB3D;;;;;;;;OAQG;cACa,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC;IAyCjE;;;;;OAKG;IACH,QAAQ,IAAI,IAAI;IAwBhB;;;;;;;;OAQG;cACa,WAAW,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IA4BjF;;;;;;;OAOG;IACH,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAItD;;;;;;;OAOG;IACG,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,gBAAgB,EAAE,YAAY,GAAG,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAUzF;;;;;;;;OAQG;IACG,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAEnE;;;;;OAKG;IACG,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;CAgHrF"}
@@ -3,9 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Graph = exports.DerivedSchemaConstructor = exports.END = exports.START = void 0;
4
4
  const runtime_context_1 = require("./runtime-context");
5
5
  const cuid2_1 = require("@paralleldrive/cuid2");
6
- const merge_state_1 = require("./merge-state");
6
+ const zod_1 = require("zod");
7
+ const merge_state_1 = require("../util/merge-state");
7
8
  const api_1 = require("@opentelemetry/api");
8
- const tracer = api_1.trace.getTracer("@ellyco/agentic", "0.1.2");
9
+ const util_1 = require("../util");
10
+ const tracer = api_1.trace.getTracer("@ellyco/agentic", "0.2.0");
9
11
  /**
10
12
  * Special node name indicating the start of graph execution
11
13
  */
@@ -153,22 +155,29 @@ class Graph {
153
155
  layerId: context.id,
154
156
  }
155
157
  }, async (span) => {
156
- const inputNodeState = this.stateToNodeState(structuredClone(state), context);
157
- const result = await node.run(structuredClone(inputNodeState), context);
158
- if (Object.keys(result).length === 0) {
158
+ try {
159
+ const inputNodeState = this.stateToNodeState(state, context);
160
+ const result = await node.run((0, util_1.cloneAware)(inputNodeState), context);
161
+ if (Object.keys(result).length === 0) {
162
+ span.setAttributes({
163
+ changes: JSON.stringify({}),
164
+ newState: JSON.stringify(state),
165
+ });
166
+ return state;
167
+ }
168
+ const changes = this.nodeStateToState(result, context);
169
+ const mergedState = this.mergeState(state, changes);
159
170
  span.setAttributes({
160
- changes: JSON.stringify({}),
161
- newState: JSON.stringify(state),
171
+ changes: JSON.stringify(changes),
172
+ newState: JSON.stringify(mergedState),
162
173
  });
163
- return state;
174
+ return mergedState;
175
+ }
176
+ catch (error) {
177
+ console.error(`Exception encountered at node ${context.id}.${currentNode}`);
178
+ span.recordException(error);
179
+ throw error;
164
180
  }
165
- const changes = this.nodeStateToState(result, context);
166
- const mergedState = this.mergeState(state, changes);
167
- span.setAttributes({
168
- changes: JSON.stringify(changes),
169
- newState: JSON.stringify(mergedState),
170
- });
171
- return mergedState;
172
181
  });
173
182
  }
174
183
  /**
@@ -206,7 +215,7 @@ class Graph {
206
215
  * @returns {Promise<Partial<S>>} Final state changes
207
216
  */
208
217
  async runInternal(input, context) {
209
- let state = structuredClone(input);
218
+ let state = (0, util_1.cloneAware)(input);
210
219
  let shouldContinue = true;
211
220
  while (shouldContinue) {
212
221
  const currentNode = context.currentNode;
@@ -220,7 +229,7 @@ class Graph {
220
229
  this.transition(input, context);
221
230
  continue;
222
231
  }
223
- state = { ...state, ...(await this.step(structuredClone(state), context)) };
232
+ state = { ...state, ...(await this.step(state, context)) };
224
233
  if (context.runtime.interrupted) {
225
234
  shouldContinue = false;
226
235
  break;
@@ -299,30 +308,38 @@ class Graph {
299
308
  mergedState = this.mergeState(mergedState, load.state);
300
309
  runtime.unwrapCursor(load.cursor);
301
310
  }
302
- const state = this.schema.parse(mergedState);
303
- const result = await this.run(state, runtime);
304
- const finalState = { ...state, ...result };
305
- if (runtime.interrupted) {
306
- await storedRun.save(runtime.wrapCursor(), finalState);
311
+ try {
312
+ const state = this.schema.parse(mergedState);
313
+ const result = await this.run(state, runtime);
314
+ const finalState = { ...state, ...result };
315
+ if (runtime.interrupted) {
316
+ await storedRun.save(runtime.wrapCursor(), finalState);
317
+ return {
318
+ runId,
319
+ state: finalState,
320
+ exitReason: "interrupt",
321
+ exitMessage: runtime.exitMessage,
322
+ cursor: runtime.wrapCursor(),
323
+ };
324
+ }
325
+ if (config?.deleteAfterEnd) {
326
+ await storedRun.delete();
327
+ }
328
+ else {
329
+ await storedRun.save(exports.END, finalState);
330
+ }
307
331
  return {
308
332
  runId,
309
333
  state: finalState,
310
- exitReason: "interrupt",
311
- exitMessage: runtime.exitMessage,
312
- cursor: runtime.wrapCursor(),
334
+ exitReason: "end",
313
335
  };
314
336
  }
315
- if (config?.deleteAfterEnd) {
316
- await storedRun.delete();
317
- }
318
- else {
319
- await storedRun.save(exports.END, finalState);
337
+ catch (error) {
338
+ if (error instanceof zod_1.z.ZodError) {
339
+ throw new Error(`Input does not match schema: ${error.message}`);
340
+ }
341
+ throw error;
320
342
  }
321
- return {
322
- runId,
323
- state: finalState,
324
- exitReason: "end",
325
- };
326
343
  }
327
344
  else {
328
345
  const fullInput = input;
@@ -330,23 +347,31 @@ class Graph {
330
347
  if (config?.resumeFrom) {
331
348
  runtime.unwrapCursor(config.resumeFrom);
332
349
  }
333
- const state = this.schema.parse(fullInput);
334
- const result = await this.run(state, runtime);
335
- const finalState = { ...state, ...result };
336
- if (runtime.interrupted) {
350
+ try {
351
+ const state = this.schema.parse(fullInput);
352
+ const result = await this.run(state, runtime);
353
+ const finalState = { ...state, ...result };
354
+ if (runtime.interrupted) {
355
+ return {
356
+ runId,
357
+ state: finalState,
358
+ exitReason: "interrupt",
359
+ exitMessage: runtime.exitMessage,
360
+ cursor: runtime.wrapCursor(),
361
+ };
362
+ }
337
363
  return {
338
364
  runId,
339
365
  state: finalState,
340
- exitReason: "interrupt",
341
- exitMessage: runtime.exitMessage,
342
- cursor: runtime.wrapCursor(),
366
+ exitReason: "end",
343
367
  };
344
368
  }
345
- return {
346
- runId,
347
- state: finalState,
348
- exitReason: "end",
349
- };
369
+ catch (error) {
370
+ if (error instanceof zod_1.z.ZodError) {
371
+ throw new Error(`Input does not match schema: ${error.message}`);
372
+ }
373
+ throw error;
374
+ }
350
375
  }
351
376
  }
352
377
  }
@@ -1 +1 @@
1
- {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/graphs/graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/graphs/graph.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  export * from "./store";
2
2
  export * from "./graph";
3
3
  export * from "./iterator";
4
- export * from "./merge-state";
5
4
  export * from "./node-sequence";
6
5
  export * from "./registry";
7
6
  export * from "./runtime-context";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/graphs/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/graphs/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC"}
@@ -17,7 +17,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./store"), exports);
18
18
  __exportStar(require("./graph"), exports);
19
19
  __exportStar(require("./iterator"), exports);
20
- __exportStar(require("./merge-state"), exports);
21
20
  __exportStar(require("./node-sequence"), exports);
22
21
  __exportStar(require("./registry"), exports);
23
22
  __exportStar(require("./runtime-context"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/graphs/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,0CAAwB;AACxB,6CAA2B;AAC3B,gDAA8B;AAC9B,kDAAgC;AAChC,6CAA2B;AAC3B,oDAAkC;AAClC,kDAAgC;AAChC,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/graphs/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,0CAAwB;AACxB,6CAA2B;AAC3B,kDAAgC;AAChC,6CAA2B;AAC3B,oDAAkC;AAClC,kDAAgC;AAChC,0CAAwB"}
@@ -61,37 +61,41 @@ type ArrayKeys<T> = TypedKeys<T, any[]>;
61
61
  * @template S - The inferred state type from T
62
62
  * @template NS - The node state type including index and item
63
63
  *
64
- * @example
65
- * ```typescript
66
- * const schema = z.object({
67
- * items: z.array(z.object({ name: z.string(), value: z.number() }))
68
- * });
69
- *
70
- * const iterator = new Iterator(schema, "item", "items");
71
- * const looped = new NodeSequence(iterator.getNodeSchema());
72
- * looped.next(new FunctionNode((state) => ({
73
- * itemValue: state.itemItem.value * 2
74
- * })));
75
- *
76
- * iterator.setLoopedNode(looped);
77
- *
78
- * const result = await iterator.invoke({
79
- * items: [{ name: "a", value: 1 }, { name: "b", value: 2 }]
80
- * });
81
- * ```
64
+ * @example
65
+ * ```typescript
66
+ * const schema = z.object({
67
+ * items: z.array(z.object({ name: z.string(), value: z.number() }))
68
+ * });
69
+ *
70
+ * // With explicit prefix
71
+ * const iterator = new Iterator(schema, "items", "item");
72
+ * // Or without prefix (uses iteratorKey as prefix)
73
+ * const iterator2 = new Iterator(schema, "items");
74
+ *
75
+ * const looped = new NodeSequence(iterator.getNodeSchema());
76
+ * looped.next(new FunctionNode((state) => ({
77
+ * itemValue: state.itemItem.value * 2
78
+ * })));
79
+ *
80
+ * iterator.setLoopedNode(looped);
81
+ *
82
+ * const result = await iterator.invoke({
83
+ * items: [{ name: "a", value: 1 }, { name: "b", value: 2 }]
84
+ * });
85
+ * ```
82
86
  */
83
87
  export declare class Iterator<Item extends any, T extends z.ZodObject, Prefix extends string, S extends Record<string, unknown> = z.infer<T>, NS extends Record<string, unknown> = IteratorNodeState<S, Prefix, Item>> extends Graph<T, S, NS> {
84
88
  protected readonly schema: T;
85
- private readonly prefix;
86
89
  private readonly iteratorKey;
90
+ private readonly prefix;
87
91
  /**
88
92
  * Creates an iterator graph.
89
93
  *
90
94
  * @param {T} schema - The base state schema
91
- * @param {Prefix} prefix - Prefix for index and item keys
92
95
  * @param {ArrayKeys<z.infer<T>>} iteratorKey - The state key containing the array to iterate
96
+ * @param {Prefix} [prefix] - Optional prefix for index and item keys. If not provided, uses iteratorKey
93
97
  */
94
- constructor(schema: T, prefix: Prefix, iteratorKey: ArrayKeys<z.infer<T>>);
98
+ constructor(schema: T, iteratorKey: ArrayKeys<z.infer<T>>, prefix?: Prefix);
95
99
  /**
96
100
  * Sets the node to be executed for each item in the array.
97
101
  *
@@ -1 +1 @@
1
- {"version":3,"file":"iterator.d.ts","sourceRoot":"","sources":["../../src/graphs/iterator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"iterator.d.ts","sourceRoot":"","sources":["../../src/graphs/iterator.ts"],"names":[],"mappings":"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"}