@ellyco/agentic 0.1.1 → 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.
- package/README.md +98 -136
- package/dist/graphs/graph.d.ts.map +1 -1
- package/dist/graphs/graph.js +72 -47
- package/dist/graphs/graph.js.map +1 -1
- package/dist/graphs/index.d.ts +8 -6
- package/dist/graphs/index.d.ts.map +1 -1
- package/dist/graphs/index.js +22 -12
- package/dist/graphs/index.js.map +1 -1
- package/dist/graphs/iterator.d.ts +25 -21
- package/dist/graphs/iterator.d.ts.map +1 -1
- package/dist/graphs/iterator.js +30 -25
- package/dist/graphs/iterator.js.map +1 -1
- package/dist/graphs/store/index.d.ts +4 -0
- package/dist/graphs/store/index.d.ts.map +1 -0
- package/dist/graphs/store/index.js +20 -0
- package/dist/graphs/store/index.js.map +1 -0
- package/dist/graphs/types.d.ts +2 -3
- package/dist/graphs/types.d.ts.map +1 -1
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -0
- package/dist/models/BaseModel.d.ts +3 -1
- package/dist/models/BaseModel.d.ts.map +1 -1
- package/dist/models/BaseModel.js +5 -0
- package/dist/models/BaseModel.js.map +1 -1
- package/dist/models/index.d.ts +4 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +20 -0
- package/dist/models/index.js.map +1 -0
- package/dist/models/react-agent.d.ts +12 -0
- package/dist/models/react-agent.d.ts.map +1 -0
- package/dist/models/react-agent.js +48 -0
- package/dist/models/react-agent.js.map +1 -0
- package/dist/nodes/index.d.ts +4 -3
- package/dist/nodes/index.d.ts.map +1 -1
- package/dist/nodes/index.js +18 -6
- package/dist/nodes/index.js.map +1 -1
- package/dist/tools.d.ts +7 -6
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +3 -2
- package/dist/tools.js.map +1 -1
- package/dist/util/clone-aware.d.ts +2 -0
- package/dist/util/clone-aware.d.ts.map +1 -0
- package/dist/util/clone-aware.js +29 -0
- package/dist/util/clone-aware.js.map +1 -0
- package/dist/util/index.d.ts +4 -0
- package/dist/util/index.d.ts.map +1 -0
- package/dist/util/index.js +20 -0
- package/dist/util/index.js.map +1 -0
- package/dist/util/merge-state.d.ts.map +1 -0
- package/dist/{graphs → util}/merge-state.js +13 -11
- package/dist/util/merge-state.js.map +1 -0
- package/dist/util/serializer.d.ts +15 -0
- package/dist/util/serializer.d.ts.map +1 -0
- package/dist/util/serializer.js +73 -0
- package/dist/util/serializer.js.map +1 -0
- package/package.json +7 -1
- package/dist/graphs/merge-state.d.ts.map +0 -1
- package/dist/graphs/merge-state.js.map +0 -1
- /package/dist/{graphs → util}/merge-state.d.ts +0 -0
package/README.md
CHANGED
|
@@ -17,7 +17,7 @@ A powerful TypeScript framework for building stateful, agentic workflows with bu
|
|
|
17
17
|
## Installation
|
|
18
18
|
|
|
19
19
|
```bash
|
|
20
|
-
npm install ellyco
|
|
20
|
+
npm install @ellyco/agentic
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
### Dependencies
|
|
@@ -31,7 +31,7 @@ npm install ellyco-agentic
|
|
|
31
31
|
### 1. Define Your Messages
|
|
32
32
|
|
|
33
33
|
```typescript
|
|
34
|
-
import { SystemMessage, UserMessage, AgentMessage } from 'ellyco
|
|
34
|
+
import { SystemMessage, UserMessage, AgentMessage } from '@ellyco/agentic';
|
|
35
35
|
|
|
36
36
|
const systemMsg = new SystemMessage(
|
|
37
37
|
"You are a helpful assistant that processes data."
|
|
@@ -46,7 +46,7 @@ userMsg.interpolate({ data: "important info" });
|
|
|
46
46
|
### 2. Define Your Tools
|
|
47
47
|
|
|
48
48
|
```typescript
|
|
49
|
-
import { defineTool, tool } from 'ellyco
|
|
49
|
+
import { defineTool, tool } from '@ellyco/agentic';
|
|
50
50
|
import { z } from 'zod';
|
|
51
51
|
|
|
52
52
|
const searchTool = defineTool(
|
|
@@ -70,7 +70,7 @@ const searchImplementation = tool(
|
|
|
70
70
|
### 3. Configure Your Model
|
|
71
71
|
|
|
72
72
|
```typescript
|
|
73
|
-
import { BedrockModel } from 'ellyco
|
|
73
|
+
import { BedrockModel } from '@ellyco/agentic';
|
|
74
74
|
|
|
75
75
|
const model = new BedrockModel({
|
|
76
76
|
modelId: "anthropic.claude-3-sonnet-20240229-v1:0",
|
|
@@ -86,7 +86,7 @@ const response = await model.invoke([userMsg]);
|
|
|
86
86
|
### 4. Build a Graph
|
|
87
87
|
|
|
88
88
|
```typescript
|
|
89
|
-
import { StateMachine, makeNode } from 'ellyco
|
|
89
|
+
import { StateMachine, makeNode } from '@ellyco/agentic';
|
|
90
90
|
import { z } from 'zod';
|
|
91
91
|
|
|
92
92
|
const schema = z.object({
|
|
@@ -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"
|
|
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, "
|
|
165
|
+
const iterator = new Iterator(schema, "items", "item");
|
|
166
166
|
iterator.setLoopedNode(loopedNode);
|
|
167
167
|
|
|
168
168
|
const result = await iterator.invoke({
|
|
@@ -178,7 +178,7 @@ Nodes are the building blocks of graphs - they execute logic and return partial
|
|
|
178
178
|
Simple synchronous or asynchronous functions.
|
|
179
179
|
|
|
180
180
|
```typescript
|
|
181
|
-
import { makeNode } from 'ellyco
|
|
181
|
+
import { makeNode } from '@ellyco/agentic';
|
|
182
182
|
|
|
183
183
|
const node = makeNode((state, context) => ({
|
|
184
184
|
processed: true,
|
|
@@ -212,7 +212,7 @@ const confirmNode = new InterruptNode(
|
|
|
212
212
|
Messages represent communication in the system with different roles:
|
|
213
213
|
|
|
214
214
|
```typescript
|
|
215
|
-
import { SystemMessage, UserMessage, AgentMessage } from 'ellyco
|
|
215
|
+
import { SystemMessage, UserMessage, AgentMessage } from '@ellyco/agentic';
|
|
216
216
|
|
|
217
217
|
// System messages set context
|
|
218
218
|
const system = new SystemMessage("You are a data analyst");
|
|
@@ -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 {
|
|
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
|
-
//
|
|
243
|
-
const
|
|
244
|
-
"
|
|
245
|
-
"
|
|
246
|
-
{
|
|
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
|
-
//
|
|
250
|
-
const
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
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
|
|
267
|
+
State flows through graphs, with each node returning partial updates that are automatically merged:
|
|
260
268
|
|
|
261
269
|
```typescript
|
|
262
|
-
const
|
|
263
|
-
|
|
270
|
+
const schema = z.object({
|
|
271
|
+
count: z.number(),
|
|
272
|
+
items: z.array(z.string()),
|
|
273
|
+
status: z.string().optional()
|
|
274
|
+
});
|
|
275
|
+
|
|
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
|
+
})));
|
|
264
294
|
|
|
265
|
-
//
|
|
266
|
-
|
|
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
|
|
@@ -296,7 +327,7 @@ if (result.exitReason === "interrupt") {
|
|
|
296
327
|
Use SQLite to persist and resume runs across sessions:
|
|
297
328
|
|
|
298
329
|
```typescript
|
|
299
|
-
import { SQLiteStore } from 'ellyco
|
|
330
|
+
import { SQLiteStore } from '@ellyco/agentic';
|
|
300
331
|
import Database from 'better-sqlite3';
|
|
301
332
|
|
|
302
333
|
// Setup database
|
|
@@ -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 {
|
|
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: {
|
|
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
|
|
@@ -376,7 +419,7 @@ const model = new MyCustomModel({ temperature: 0.7 });
|
|
|
376
419
|
Use the mock model for testing without hitting real APIs:
|
|
377
420
|
|
|
378
421
|
```typescript
|
|
379
|
-
import { TestModel, TestResponseConfig } from 'ellyco
|
|
422
|
+
import { TestModel, TestResponseConfig } from '@ellyco/agentic';
|
|
380
423
|
|
|
381
424
|
const testModel = new TestModel({ temperature: 0.7 });
|
|
382
425
|
|
|
@@ -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
|
-
|
|
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
|
|
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
|
-
- **`
|
|
613
|
-
- **`
|
|
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,9 +589,8 @@ import {
|
|
|
626
589
|
UserMessage,
|
|
627
590
|
SystemMessage,
|
|
628
591
|
SQLiteStore,
|
|
629
|
-
defineTool
|
|
630
|
-
|
|
631
|
-
} from 'ellyco-agentic';
|
|
592
|
+
defineTool
|
|
593
|
+
} from '@ellyco/agentic';
|
|
632
594
|
import { z } from 'zod';
|
|
633
595
|
import Database from 'better-sqlite3';
|
|
634
596
|
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
1
|
+
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/graphs/graph.ts"],"names":[],"mappings":"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"}
|
package/dist/graphs/graph.js
CHANGED
|
@@ -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
|
|
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
|
|
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
|
-
|
|
157
|
-
|
|
158
|
-
|
|
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(
|
|
171
|
+
changes: JSON.stringify(changes),
|
|
172
|
+
newState: JSON.stringify(mergedState),
|
|
162
173
|
});
|
|
163
|
-
return
|
|
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 =
|
|
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(
|
|
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
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
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: "
|
|
311
|
-
exitMessage: runtime.exitMessage,
|
|
312
|
-
cursor: runtime.wrapCursor(),
|
|
334
|
+
exitReason: "end",
|
|
313
335
|
};
|
|
314
336
|
}
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
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
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
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: "
|
|
341
|
-
exitMessage: runtime.exitMessage,
|
|
342
|
-
cursor: runtime.wrapCursor(),
|
|
366
|
+
exitReason: "end",
|
|
343
367
|
};
|
|
344
368
|
}
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
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
|
}
|
package/dist/graphs/graph.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/graphs/graph.ts"],"names":[],"mappings":";;;AAEA,uDAAiE;AAEjE,gDAAgD;
|
|
1
|
+
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/graphs/graph.ts"],"names":[],"mappings":"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"}
|
package/dist/graphs/index.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
export
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
export
|
|
5
|
-
export
|
|
6
|
-
export
|
|
1
|
+
export * from "./store";
|
|
2
|
+
export * from "./graph";
|
|
3
|
+
export * from "./iterator";
|
|
4
|
+
export * from "./node-sequence";
|
|
5
|
+
export * from "./registry";
|
|
6
|
+
export * from "./runtime-context";
|
|
7
|
+
export * from "./state-machine";
|
|
8
|
+
export * from "./types";
|
|
7
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/graphs/index.ts"],"names":[],"mappings":"AAAA,
|
|
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"}
|