@seanhogg/builderforce-memory 2026.7.12 → 2026.9.27

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 (223) hide show
  1. package/README.md +10 -0
  2. package/dist/bridges/AnthropicBridge.d.ts +9 -1
  3. package/dist/bridges/AnthropicBridge.d.ts.map +1 -1
  4. package/dist/bridges/AnthropicBridge.js +58 -2
  5. package/dist/bridges/AnthropicBridge.js.map +1 -1
  6. package/dist/bridges/CachingBridge.d.ts +9 -1
  7. package/dist/bridges/CachingBridge.d.ts.map +1 -1
  8. package/dist/bridges/CachingBridge.js +24 -1
  9. package/dist/bridges/CachingBridge.js.map +1 -1
  10. package/dist/bridges/OpenAIBridge.d.ts +4 -1
  11. package/dist/bridges/OpenAIBridge.d.ts.map +1 -1
  12. package/dist/bridges/OpenAIBridge.js +40 -2
  13. package/dist/bridges/OpenAIBridge.js.map +1 -1
  14. package/dist/bridges/SemanticCachingBridge.d.ts +8 -1
  15. package/dist/bridges/SemanticCachingBridge.d.ts.map +1 -1
  16. package/dist/bridges/SemanticCachingBridge.js +26 -1
  17. package/dist/bridges/SemanticCachingBridge.js.map +1 -1
  18. package/dist/bridges/TransformerBridge.d.ts +13 -0
  19. package/dist/bridges/TransformerBridge.d.ts.map +1 -1
  20. package/dist/bridges/VertexAIBridge.d.ts +102 -0
  21. package/dist/bridges/VertexAIBridge.d.ts.map +1 -0
  22. package/dist/bridges/VertexAIBridge.js +224 -0
  23. package/dist/bridges/VertexAIBridge.js.map +1 -0
  24. package/dist/bridges/index.d.ts +3 -1
  25. package/dist/bridges/index.d.ts.map +1 -1
  26. package/dist/bridges/index.js +1 -0
  27. package/dist/bridges/index.js.map +1 -1
  28. package/dist/eval/EvalHarness.d.ts +37 -0
  29. package/dist/eval/EvalHarness.d.ts.map +1 -0
  30. package/dist/eval/EvalHarness.js +178 -0
  31. package/dist/eval/EvalHarness.js.map +1 -0
  32. package/dist/eval/graders.d.ts +76 -0
  33. package/dist/eval/graders.d.ts.map +1 -0
  34. package/dist/eval/graders.js +168 -0
  35. package/dist/eval/graders.js.map +1 -0
  36. package/dist/eval/index.d.ts +26 -0
  37. package/dist/eval/index.d.ts.map +1 -0
  38. package/dist/eval/index.js +26 -0
  39. package/dist/eval/index.js.map +1 -0
  40. package/dist/eval/types.d.ts +97 -0
  41. package/dist/eval/types.d.ts.map +1 -0
  42. package/dist/eval/types.js +5 -0
  43. package/dist/eval/types.js.map +1 -0
  44. package/dist/evermind/contract.d.ts +40 -0
  45. package/dist/evermind/contract.d.ts.map +1 -0
  46. package/dist/evermind/contract.js +13 -0
  47. package/dist/evermind/contract.js.map +1 -0
  48. package/dist/evermind/index.d.ts +15 -0
  49. package/dist/evermind/index.d.ts.map +1 -0
  50. package/dist/evermind/index.js +4 -0
  51. package/dist/evermind/index.js.map +1 -0
  52. package/dist/evermind/memoryBlock.d.ts +7 -0
  53. package/dist/evermind/memoryBlock.d.ts.map +1 -0
  54. package/dist/evermind/memoryBlock.js +37 -0
  55. package/dist/evermind/memoryBlock.js.map +1 -0
  56. package/dist/evermind/recall.d.ts +55 -0
  57. package/dist/evermind/recall.d.ts.map +1 -0
  58. package/dist/evermind/recall.js +105 -0
  59. package/dist/evermind/recall.js.map +1 -0
  60. package/dist/index.d.ts +18 -3
  61. package/dist/index.d.ts.map +1 -1
  62. package/dist/index.js +14 -1
  63. package/dist/index.js.map +1 -1
  64. package/dist/ingest/IngestionPipeline.d.ts +95 -0
  65. package/dist/ingest/IngestionPipeline.d.ts.map +1 -0
  66. package/dist/ingest/IngestionPipeline.js +295 -0
  67. package/dist/ingest/IngestionPipeline.js.map +1 -0
  68. package/dist/ingest/index.d.ts +10 -0
  69. package/dist/ingest/index.d.ts.map +1 -0
  70. package/dist/ingest/index.js +8 -0
  71. package/dist/ingest/index.js.map +1 -0
  72. package/dist/ingest/parsers.d.ts +53 -0
  73. package/dist/ingest/parsers.d.ts.map +1 -0
  74. package/dist/ingest/parsers.js +306 -0
  75. package/dist/ingest/parsers.js.map +1 -0
  76. package/dist/ingest/types.d.ts +114 -0
  77. package/dist/ingest/types.d.ts.map +1 -0
  78. package/dist/ingest/types.js +19 -0
  79. package/dist/ingest/types.js.map +1 -0
  80. package/dist/memory/MemoryStore.d.ts +33 -0
  81. package/dist/memory/MemoryStore.d.ts.map +1 -1
  82. package/dist/memory/MemoryStore.js +29 -3
  83. package/dist/memory/MemoryStore.js.map +1 -1
  84. package/dist/memory/index.d.ts +1 -1
  85. package/dist/memory/index.d.ts.map +1 -1
  86. package/dist/orchestration/AgentGraph.d.ts +104 -0
  87. package/dist/orchestration/AgentGraph.d.ts.map +1 -0
  88. package/dist/orchestration/AgentGraph.js +364 -0
  89. package/dist/orchestration/AgentGraph.js.map +1 -0
  90. package/dist/orchestration/checkpoint.d.ts +58 -0
  91. package/dist/orchestration/checkpoint.d.ts.map +1 -0
  92. package/dist/orchestration/checkpoint.js +92 -0
  93. package/dist/orchestration/checkpoint.js.map +1 -0
  94. package/dist/orchestration/index.d.ts +14 -0
  95. package/dist/orchestration/index.d.ts.map +1 -0
  96. package/dist/orchestration/index.js +10 -0
  97. package/dist/orchestration/index.js.map +1 -0
  98. package/dist/orchestration/patterns.d.ts +159 -0
  99. package/dist/orchestration/patterns.d.ts.map +1 -0
  100. package/dist/orchestration/patterns.js +371 -0
  101. package/dist/orchestration/patterns.js.map +1 -0
  102. package/dist/orchestration/types.d.ts +146 -0
  103. package/dist/orchestration/types.d.ts.map +1 -0
  104. package/dist/orchestration/types.js +20 -0
  105. package/dist/orchestration/types.js.map +1 -0
  106. package/dist/rag/EnterpriseRetriever.d.ts +114 -0
  107. package/dist/rag/EnterpriseRetriever.d.ts.map +1 -0
  108. package/dist/rag/EnterpriseRetriever.js +240 -0
  109. package/dist/rag/EnterpriseRetriever.js.map +1 -0
  110. package/dist/rag/index.d.ts +6 -0
  111. package/dist/rag/index.d.ts.map +1 -0
  112. package/dist/rag/index.js +5 -0
  113. package/dist/rag/index.js.map +1 -0
  114. package/dist/retrieval/bm25.d.ts +48 -1
  115. package/dist/retrieval/bm25.d.ts.map +1 -1
  116. package/dist/retrieval/bm25.js +59 -13
  117. package/dist/retrieval/bm25.js.map +1 -1
  118. package/dist/retrieval/index.d.ts +2 -2
  119. package/dist/retrieval/index.d.ts.map +1 -1
  120. package/dist/retrieval/index.js +1 -1
  121. package/dist/retrieval/index.js.map +1 -1
  122. package/dist/telemetry/InstrumentedBridge.d.ts +62 -0
  123. package/dist/telemetry/InstrumentedBridge.d.ts.map +1 -0
  124. package/dist/telemetry/InstrumentedBridge.js +120 -0
  125. package/dist/telemetry/InstrumentedBridge.js.map +1 -0
  126. package/dist/telemetry/MetricsRegistry.d.ts +88 -0
  127. package/dist/telemetry/MetricsRegistry.d.ts.map +1 -0
  128. package/dist/telemetry/MetricsRegistry.js +167 -0
  129. package/dist/telemetry/MetricsRegistry.js.map +1 -0
  130. package/dist/telemetry/Tracer.d.ts +137 -0
  131. package/dist/telemetry/Tracer.d.ts.map +1 -0
  132. package/dist/telemetry/Tracer.js +244 -0
  133. package/dist/telemetry/Tracer.js.map +1 -0
  134. package/dist/telemetry/exporters.d.ts +68 -0
  135. package/dist/telemetry/exporters.d.ts.map +1 -0
  136. package/dist/telemetry/exporters.js +145 -0
  137. package/dist/telemetry/exporters.js.map +1 -0
  138. package/dist/telemetry/index.d.ts +19 -0
  139. package/dist/telemetry/index.d.ts.map +1 -0
  140. package/dist/telemetry/index.js +12 -0
  141. package/dist/telemetry/index.js.map +1 -0
  142. package/dist/telemetry/pricing.d.ts +74 -0
  143. package/dist/telemetry/pricing.d.ts.map +1 -0
  144. package/dist/telemetry/pricing.js +98 -0
  145. package/dist/telemetry/pricing.js.map +1 -0
  146. package/dist/telemetry/traceparent.d.ts +50 -0
  147. package/dist/telemetry/traceparent.d.ts.map +1 -0
  148. package/dist/telemetry/traceparent.js +77 -0
  149. package/dist/telemetry/traceparent.js.map +1 -0
  150. package/dist/telemetry/types.d.ts +90 -0
  151. package/dist/telemetry/types.d.ts.map +1 -0
  152. package/dist/telemetry/types.js +17 -0
  153. package/dist/telemetry/types.js.map +1 -0
  154. package/dist/vectorstore/MemoryVectorStore.d.ts +72 -0
  155. package/dist/vectorstore/MemoryVectorStore.d.ts.map +1 -0
  156. package/dist/vectorstore/MemoryVectorStore.js +205 -0
  157. package/dist/vectorstore/MemoryVectorStore.js.map +1 -0
  158. package/dist/vectorstore/RestVectorStore.d.ts +79 -0
  159. package/dist/vectorstore/RestVectorStore.d.ts.map +1 -0
  160. package/dist/vectorstore/RestVectorStore.js +170 -0
  161. package/dist/vectorstore/RestVectorStore.js.map +1 -0
  162. package/dist/vectorstore/dialects.d.ts +101 -0
  163. package/dist/vectorstore/dialects.d.ts.map +1 -0
  164. package/dist/vectorstore/dialects.js +618 -0
  165. package/dist/vectorstore/dialects.js.map +1 -0
  166. package/dist/vectorstore/filter.d.ts +42 -0
  167. package/dist/vectorstore/filter.d.ts.map +1 -0
  168. package/dist/vectorstore/filter.js +132 -0
  169. package/dist/vectorstore/filter.js.map +1 -0
  170. package/dist/vectorstore/index.d.ts +15 -0
  171. package/dist/vectorstore/index.d.ts.map +1 -0
  172. package/dist/vectorstore/index.js +11 -0
  173. package/dist/vectorstore/index.js.map +1 -0
  174. package/dist/vectorstore/types.d.ts +151 -0
  175. package/dist/vectorstore/types.d.ts.map +1 -0
  176. package/dist/vectorstore/types.js +30 -0
  177. package/dist/vectorstore/types.js.map +1 -0
  178. package/package.json +39 -5
  179. package/src/bridges/AnthropicBridge.ts +68 -3
  180. package/src/bridges/CachingBridge.ts +28 -2
  181. package/src/bridges/OpenAIBridge.ts +48 -3
  182. package/src/bridges/SemanticCachingBridge.ts +29 -2
  183. package/src/bridges/TransformerBridge.ts +16 -0
  184. package/src/bridges/VertexAIBridge.ts +297 -0
  185. package/src/bridges/index.ts +3 -1
  186. package/src/eval/EvalHarness.ts +214 -0
  187. package/src/eval/graders.ts +218 -0
  188. package/src/eval/index.ts +26 -0
  189. package/src/eval/types.ts +107 -0
  190. package/src/evermind/contract.ts +39 -0
  191. package/src/evermind/index.ts +21 -0
  192. package/src/evermind/memoryBlock.ts +38 -0
  193. package/src/evermind/recall.ts +122 -0
  194. package/src/index.ts +232 -0
  195. package/src/ingest/IngestionPipeline.ts +378 -0
  196. package/src/ingest/index.ts +46 -0
  197. package/src/ingest/parsers.ts +318 -0
  198. package/src/ingest/types.ts +116 -0
  199. package/src/memory/MemoryStore.ts +55 -3
  200. package/src/memory/index.ts +1 -1
  201. package/src/orchestration/AgentGraph.ts +462 -0
  202. package/src/orchestration/checkpoint.ts +129 -0
  203. package/src/orchestration/index.ts +63 -0
  204. package/src/orchestration/patterns.ts +532 -0
  205. package/src/orchestration/types.ts +128 -0
  206. package/src/rag/EnterpriseRetriever.ts +348 -0
  207. package/src/rag/index.ts +18 -0
  208. package/src/retrieval/bm25.ts +71 -13
  209. package/src/retrieval/index.ts +2 -2
  210. package/src/telemetry/InstrumentedBridge.ts +152 -0
  211. package/src/telemetry/MetricsRegistry.ts +263 -0
  212. package/src/telemetry/Tracer.ts +310 -0
  213. package/src/telemetry/exporters.ts +187 -0
  214. package/src/telemetry/index.ts +56 -0
  215. package/src/telemetry/pricing.ts +129 -0
  216. package/src/telemetry/traceparent.ts +89 -0
  217. package/src/telemetry/types.ts +105 -0
  218. package/src/vectorstore/MemoryVectorStore.ts +250 -0
  219. package/src/vectorstore/RestVectorStore.ts +236 -0
  220. package/src/vectorstore/dialects.ts +702 -0
  221. package/src/vectorstore/filter.ts +148 -0
  222. package/src/vectorstore/index.ts +53 -0
  223. package/src/vectorstore/types.ts +149 -0
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryStore.js","sourceRoot":"","sources":["../../src/memory/MemoryStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MemoryStore.js","sourceRoot":"","sources":["../../src/memory/MemoryStore.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  export { MemoryStore } from './MemoryStore.js';
2
- export type { MemoryEntry, MemoryStoreOptions, RememberOptions, FactType } from './MemoryStore.js';
2
+ export type { MemoryEntry, MemoryStoreOptions, RememberOptions, FactType, RecallMethod, ScoredMemory, RankedRecall } from './MemoryStore.js';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * orchestration/AgentGraph.ts — a stateful multi-agent graph.
3
+ *
4
+ * Execution is a superstep loop: run the current frontier of nodes concurrently,
5
+ * merge their partial updates through the channel reducers, then compute the next
6
+ * frontier from the edges. This is the model LangGraph popularised, and it is the
7
+ * right one for agents because the three hard parts of multi-agent orchestration —
8
+ * concurrent fan-out, deterministic merge, and resumability — all fall out of it:
9
+ *
10
+ * • Fan-out is just a frontier with more than one node.
11
+ * • A merge conflict has a declared answer (the channel's reducer), not a race.
12
+ * • The state between two supersteps is a complete description of the run, so a
13
+ * checkpoint written there can resume it exactly — which is what makes
14
+ * human-in-the-loop approval and crash recovery the same mechanism.
15
+ *
16
+ * Everything is traced: one span per run, one per node, so a model call inside a
17
+ * node nests under the node that made it and cost rolls up per agent.
18
+ */
19
+ import type { Span, Tracer } from '../telemetry/Tracer.js';
20
+ import { END, START, type ChannelSpecs, type Checkpointer, type EdgeCondition, type GraphEvent, type GraphRunResult, type GraphState, type NodeFn } from './types.js';
21
+ export interface AgentGraphOptions<S extends GraphState> {
22
+ /** Merge semantics per state key. Keys without a spec are last-write-wins. */
23
+ channels?: ChannelSpecs<S>;
24
+ /**
25
+ * Maximum supersteps before the run is stopped. Default 25. A cyclic graph
26
+ * (which is the point of ReAct and reflection) needs a hard stop, or a model
27
+ * that will not converge becomes an unbounded bill.
28
+ */
29
+ recursionLimit?: number;
30
+ /** Node names to pause BEFORE — the human-in-the-loop approval gate. */
31
+ interruptBefore?: string[];
32
+ /**
33
+ * When true (default), a node that throws after its retries fails the run.
34
+ * Set false for best-effort fan-out where one dead branch is acceptable; the
35
+ * error is recorded on the span and emitted either way.
36
+ */
37
+ failFast?: boolean;
38
+ checkpointer?: Checkpointer<S>;
39
+ tracer?: Tracer;
40
+ /** Name used on the run span. Default `'agent-graph'`. */
41
+ name?: string;
42
+ }
43
+ export interface RunOptions {
44
+ /** Correlates checkpoints for one conversation/job. Required to checkpoint. */
45
+ threadId?: string;
46
+ /** Resume from this checkpoint instead of starting fresh. */
47
+ checkpointId?: string;
48
+ signal?: AbortSignal;
49
+ /** Parent span, so a graph nested inside another agent nests in the trace. */
50
+ parent?: Span;
51
+ /** Overrides the graph-level limit for this run. */
52
+ recursionLimit?: number;
53
+ }
54
+ export declare class AgentGraph<S extends GraphState = GraphState> {
55
+ private readonly _nodes;
56
+ private readonly _edges;
57
+ private readonly _channels;
58
+ private readonly _recursionLimit;
59
+ private readonly _interruptBefore;
60
+ private readonly _failFast;
61
+ private readonly _checkpointer;
62
+ private readonly _tracer;
63
+ private readonly _name;
64
+ private _entry;
65
+ private _compiled;
66
+ constructor(opts?: AgentGraphOptions<S>);
67
+ addNode(name: string, fn: NodeFn<S>, opts?: {
68
+ retries?: number;
69
+ }): this;
70
+ addEdge(from: string, to: string): this;
71
+ /**
72
+ * A conditional edge is how delegation, retry-on-failure and "am I done yet"
73
+ * are expressed. `mapping` translates a condition's domain language
74
+ * (`'approve' | 'revise'`) into node names, keeping routing readable.
75
+ */
76
+ addConditionalEdges(from: string, condition: EdgeCondition<S>, mapping?: Record<string, string>): this;
77
+ setEntryPoint(name: string): this;
78
+ /**
79
+ * Validates the graph. Catching a dangling edge here rather than at superstep
80
+ * seven — after six model calls have been billed — is the entire point.
81
+ */
82
+ compile(): this;
83
+ invoke(input: Partial<S>, opts?: RunOptions): Promise<GraphRunResult<S>>;
84
+ private _lastResult;
85
+ /** Streams execution events — what a live orchestration view renders. */
86
+ stream(input: Partial<S>, opts?: RunOptions): AsyncIterable<GraphEvent<S>>;
87
+ /** Resumes an interrupted run, optionally applying a human's edits to state. */
88
+ resume(threadId: string, update?: Partial<S>, opts?: RunOptions): Promise<GraphRunResult<S>>;
89
+ private _withoutInterrupts;
90
+ private _nextFrontier;
91
+ private _initialState;
92
+ private _merge;
93
+ private _checkpoint;
94
+ }
95
+ /** Appends to an array channel — the merge every message log wants. */
96
+ export declare function appendReducer<T>(current: T[] | undefined, update: T[] | T): T[];
97
+ /** Shallow-merges object channels instead of replacing them. */
98
+ export declare function mergeReducer<T extends Record<string, unknown>>(current: T | undefined, update: T): T;
99
+ /** Sums numeric channels — how a run counts tokens or tool calls across agents. */
100
+ export declare function sumReducer(current: number | undefined, update: number): number;
101
+ /** Set-union for array channels, preserving first-seen order. */
102
+ export declare function unionReducer<T>(current: T[] | undefined, update: T[] | T): T[];
103
+ export { START, END };
104
+ //# sourceMappingURL=AgentGraph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentGraph.d.ts","sourceRoot":"","sources":["../../src/orchestration/AgentGraph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,364 @@
1
+ /**
2
+ * orchestration/AgentGraph.ts — a stateful multi-agent graph.
3
+ *
4
+ * Execution is a superstep loop: run the current frontier of nodes concurrently,
5
+ * merge their partial updates through the channel reducers, then compute the next
6
+ * frontier from the edges. This is the model LangGraph popularised, and it is the
7
+ * right one for agents because the three hard parts of multi-agent orchestration —
8
+ * concurrent fan-out, deterministic merge, and resumability — all fall out of it:
9
+ *
10
+ * • Fan-out is just a frontier with more than one node.
11
+ * • A merge conflict has a declared answer (the channel's reducer), not a race.
12
+ * • The state between two supersteps is a complete description of the run, so a
13
+ * checkpoint written there can resume it exactly — which is what makes
14
+ * human-in-the-loop approval and crash recovery the same mechanism.
15
+ *
16
+ * Everything is traced: one span per run, one per node, so a model call inside a
17
+ * node nests under the node that made it and cost rolls up per agent.
18
+ */
19
+ import { END, START, } from './types.js';
20
+ export class AgentGraph {
21
+ _nodes = new Map();
22
+ _edges = [];
23
+ _channels;
24
+ _recursionLimit;
25
+ _interruptBefore;
26
+ _failFast;
27
+ _checkpointer;
28
+ _tracer;
29
+ _name;
30
+ _entry;
31
+ _compiled = false;
32
+ constructor(opts = {}) {
33
+ this._channels = opts.channels ?? {};
34
+ this._recursionLimit = Math.max(1, opts.recursionLimit ?? 25);
35
+ this._interruptBefore = new Set(opts.interruptBefore ?? []);
36
+ this._failFast = opts.failFast ?? true;
37
+ this._checkpointer = opts.checkpointer;
38
+ this._tracer = opts.tracer;
39
+ this._name = opts.name ?? 'agent-graph';
40
+ }
41
+ addNode(name, fn, opts = {}) {
42
+ if (name === START || name === END) {
43
+ throw new Error(`"${name}" is a reserved node name.`);
44
+ }
45
+ if (this._nodes.has(name))
46
+ throw new Error(`Node "${name}" is already defined.`);
47
+ this._nodes.set(name, { name, fn, retries: Math.max(0, opts.retries ?? 0) });
48
+ this._compiled = false;
49
+ return this;
50
+ }
51
+ addEdge(from, to) {
52
+ this._edges.push({ from, to });
53
+ if (from === START)
54
+ this._entry = to;
55
+ this._compiled = false;
56
+ return this;
57
+ }
58
+ /**
59
+ * A conditional edge is how delegation, retry-on-failure and "am I done yet"
60
+ * are expressed. `mapping` translates a condition's domain language
61
+ * (`'approve' | 'revise'`) into node names, keeping routing readable.
62
+ */
63
+ addConditionalEdges(from, condition, mapping) {
64
+ const edge = { from, condition };
65
+ if (mapping)
66
+ edge.mapping = mapping;
67
+ this._edges.push(edge);
68
+ this._compiled = false;
69
+ return this;
70
+ }
71
+ setEntryPoint(name) {
72
+ this._entry = name;
73
+ this._compiled = false;
74
+ return this;
75
+ }
76
+ /**
77
+ * Validates the graph. Catching a dangling edge here rather than at superstep
78
+ * seven — after six model calls have been billed — is the entire point.
79
+ */
80
+ compile() {
81
+ if (!this._entry)
82
+ throw new Error('Graph has no entry point: call setEntryPoint() or addEdge(START, …).');
83
+ if (!this._nodes.has(this._entry))
84
+ throw new Error(`Entry point "${this._entry}" is not a node.`);
85
+ for (const edge of this._edges) {
86
+ if (edge.from !== START && !this._nodes.has(edge.from)) {
87
+ throw new Error(`Edge source "${edge.from}" is not a node.`);
88
+ }
89
+ if (edge.to && edge.to !== END && !this._nodes.has(edge.to)) {
90
+ throw new Error(`Edge target "${edge.to}" is not a node.`);
91
+ }
92
+ for (const target of Object.values(edge.mapping ?? {})) {
93
+ if (target !== END && !this._nodes.has(target)) {
94
+ throw new Error(`Conditional edge from "${edge.from}" maps to unknown node "${target}".`);
95
+ }
96
+ }
97
+ }
98
+ for (const name of this._nodes.keys()) {
99
+ const hasOutgoing = this._edges.some((e) => e.from === name);
100
+ if (!hasOutgoing) {
101
+ throw new Error(`Node "${name}" has no outgoing edge; add one to END if it is terminal.`);
102
+ }
103
+ }
104
+ for (const name of this._interruptBefore) {
105
+ if (!this._nodes.has(name))
106
+ throw new Error(`interruptBefore names unknown node "${name}".`);
107
+ }
108
+ this._compiled = true;
109
+ return this;
110
+ }
111
+ async invoke(input, opts = {}) {
112
+ let last;
113
+ let result;
114
+ for await (const event of this.stream(input, opts)) {
115
+ last = event;
116
+ if (event.type === 'end')
117
+ result = this._lastResult;
118
+ }
119
+ if (!result) {
120
+ throw new Error(`Graph run produced no terminal event (last: ${last?.type ?? 'none'}).`);
121
+ }
122
+ return result;
123
+ }
124
+ _lastResult;
125
+ /** Streams execution events — what a live orchestration view renders. */
126
+ async *stream(input, opts = {}) {
127
+ if (!this._compiled)
128
+ this.compile();
129
+ const limit = Math.max(1, opts.recursionLimit ?? this._recursionLimit);
130
+ const runSpan = this._tracer?.startSpan(this._name, {
131
+ kind: 'graph',
132
+ ...(opts.parent ? { parent: opts.parent } : {}),
133
+ attributes: { 'graph.nodes': this._nodes.size, 'graph.recursion_limit': limit },
134
+ });
135
+ const resumed = opts.threadId && this._checkpointer
136
+ ? await this._checkpointer.load(opts.threadId, opts.checkpointId)
137
+ : undefined;
138
+ let state = resumed ? { ...resumed.state } : this._initialState(input);
139
+ let frontier = resumed ? [...resumed.frontier] : [this._entry];
140
+ const path = resumed ? [...resumed.path] : [];
141
+ let step = resumed ? resumed.step : 0;
142
+ let reason = 'complete';
143
+ let error;
144
+ let checkpointId;
145
+ try {
146
+ while (frontier.length > 0) {
147
+ if (step >= limit) {
148
+ reason = 'recursion-limit';
149
+ break;
150
+ }
151
+ const pausing = frontier.filter((n) => this._interruptBefore.has(n));
152
+ if (pausing.length > 0) {
153
+ reason = 'interrupted';
154
+ checkpointId = await this._checkpoint(opts.threadId, step, state, frontier, path);
155
+ yield { type: 'interrupt', step, before: pausing, state };
156
+ break;
157
+ }
158
+ yield { type: 'step-start', step, frontier: [...frontier] };
159
+ const pending = [];
160
+ const customEvents = [];
161
+ const failures = [];
162
+ // Deterministic order so a fan-out merge reproduces from a checkpoint.
163
+ const running = [...frontier].sort();
164
+ for (const name of running)
165
+ yield { type: 'node-start', step, node: name };
166
+ await Promise.all(running.map(async (name) => {
167
+ const entry = this._nodes.get(name);
168
+ const nodeSpan = this._tracer?.startSpan(`node.${name}`, {
169
+ kind: 'agent',
170
+ ...(runSpan ? { parent: runSpan } : {}),
171
+ attributes: { 'graph.node': name, 'graph.step': step },
172
+ });
173
+ const ctx = {
174
+ step,
175
+ ...(nodeSpan ? { span: nodeSpan } : {}),
176
+ ...(opts.signal ? { signal: opts.signal } : {}),
177
+ state,
178
+ emit: (event) => customEvents.push({ node: name, event }),
179
+ };
180
+ for (let attempt = 0; attempt <= entry.retries; attempt++) {
181
+ try {
182
+ const update = await entry.fn(state, ctx);
183
+ pending.push({ node: name, update: (update ?? {}) });
184
+ nodeSpan?.setAttribute('graph.attempts', attempt + 1);
185
+ nodeSpan?.end('ok');
186
+ return;
187
+ }
188
+ catch (err) {
189
+ if (attempt === entry.retries) {
190
+ const message = err instanceof Error ? err.message : String(err);
191
+ failures.push({ node: name, error: message });
192
+ nodeSpan?.fail(err);
193
+ }
194
+ }
195
+ }
196
+ }));
197
+ for (const { node, event } of customEvents) {
198
+ yield { type: 'custom', step, node, event };
199
+ }
200
+ for (const failure of failures) {
201
+ yield { type: 'node-error', step, node: failure.node, error: failure.error };
202
+ }
203
+ // Merge in the same sorted order the nodes ran in.
204
+ pending.sort((a, b) => a.node.localeCompare(b.node));
205
+ for (const { node, update } of pending) {
206
+ state = this._merge(state, update);
207
+ path.push(node);
208
+ yield { type: 'node-end', step, node, update };
209
+ }
210
+ if (failures.length > 0 && this._failFast) {
211
+ reason = 'error';
212
+ error = failures.map((f) => `${f.node}: ${f.error}`).join('; ');
213
+ break;
214
+ }
215
+ yield { type: 'step-end', step, state };
216
+ checkpointId = await this._checkpoint(opts.threadId, step + 1, state, [], path);
217
+ const succeeded = new Set(pending.map((p) => p.node));
218
+ frontier = await this._nextFrontier([...succeeded], state, step);
219
+ step += 1;
220
+ if (opts.signal?.aborted) {
221
+ reason = 'error';
222
+ error = 'Run aborted.';
223
+ break;
224
+ }
225
+ }
226
+ runSpan?.setAttributes({
227
+ 'graph.steps': step,
228
+ 'graph.reason': reason,
229
+ 'graph.path_length': path.length,
230
+ });
231
+ runSpan?.end(reason === 'error' ? 'error' : 'ok');
232
+ const result = { state, reason, steps: step, path };
233
+ if (runSpan)
234
+ result.traceId = runSpan.traceId;
235
+ if (checkpointId)
236
+ result.checkpointId = checkpointId;
237
+ if (error)
238
+ result.error = error;
239
+ this._lastResult = result;
240
+ yield { type: 'end', step, state, reason };
241
+ }
242
+ catch (err) {
243
+ runSpan?.fail(err);
244
+ throw err;
245
+ }
246
+ finally {
247
+ await this._tracer?.flush();
248
+ }
249
+ }
250
+ /** Resumes an interrupted run, optionally applying a human's edits to state. */
251
+ async resume(threadId, update = {}, opts = {}) {
252
+ if (!this._checkpointer)
253
+ throw new Error('resume() requires a checkpointer.');
254
+ const checkpoint = await this._checkpointer.load(threadId, opts.checkpointId);
255
+ if (!checkpoint)
256
+ throw new Error(`No checkpoint for thread "${threadId}".`);
257
+ // The human's edit is merged through the SAME reducers a node's update goes
258
+ // through, so approving-with-changes cannot corrupt a channel's invariants.
259
+ const merged = this._merge(checkpoint.state, update);
260
+ await this._checkpointer.save({ ...checkpoint, state: merged });
261
+ // Clearing interruptBefore for the resumed run is what prevents the graph
262
+ // from pausing again on the very node the human just approved.
263
+ const resumedGraph = this._withoutInterrupts();
264
+ return resumedGraph.invoke({}, { ...opts, threadId, checkpointId: checkpoint.id });
265
+ }
266
+ _withoutInterrupts() {
267
+ const clone = new AgentGraph({
268
+ channels: this._channels,
269
+ recursionLimit: this._recursionLimit,
270
+ failFast: this._failFast,
271
+ ...(this._checkpointer ? { checkpointer: this._checkpointer } : {}),
272
+ ...(this._tracer ? { tracer: this._tracer } : {}),
273
+ name: this._name,
274
+ });
275
+ for (const [name, entry] of this._nodes)
276
+ clone.addNode(name, entry.fn, { retries: entry.retries });
277
+ for (const edge of this._edges)
278
+ clone._edges.push(edge);
279
+ clone._entry = this._entry;
280
+ return clone.compile();
281
+ }
282
+ async _nextFrontier(from, state, step) {
283
+ const next = new Set();
284
+ for (const node of from) {
285
+ for (const edge of this._edges.filter((e) => e.from === node)) {
286
+ if (edge.to) {
287
+ if (edge.to !== END)
288
+ next.add(edge.to);
289
+ continue;
290
+ }
291
+ const decision = await edge.condition(state, { step });
292
+ for (const raw of Array.isArray(decision) ? decision : [decision]) {
293
+ const target = edge.mapping?.[raw] ?? raw;
294
+ if (target === END)
295
+ continue;
296
+ if (!this._nodes.has(target)) {
297
+ throw new Error(`Conditional edge from "${node}" returned unknown target "${target}".`);
298
+ }
299
+ next.add(target);
300
+ }
301
+ }
302
+ }
303
+ return [...next];
304
+ }
305
+ _initialState(input) {
306
+ const state = {};
307
+ for (const [key, spec] of Object.entries(this._channels)) {
308
+ if (spec?.default)
309
+ state[key] = spec.default();
310
+ }
311
+ return this._merge(state, input);
312
+ }
313
+ _merge(state, update) {
314
+ const next = { ...state };
315
+ for (const [key, value] of Object.entries(update)) {
316
+ if (value === undefined)
317
+ continue;
318
+ const reducer = this._channels[key]?.reducer;
319
+ next[key] = reducer ? reducer(state[key], value) : value;
320
+ }
321
+ return next;
322
+ }
323
+ async _checkpoint(threadId, step, state, frontier, path) {
324
+ if (!threadId || !this._checkpointer)
325
+ return undefined;
326
+ const id = `${threadId}:${step}`;
327
+ await this._checkpointer.save({
328
+ id, threadId, step, state,
329
+ frontier: [...frontier],
330
+ path: [...path],
331
+ createdAt: Date.now(),
332
+ });
333
+ return id;
334
+ }
335
+ }
336
+ // ── channel reducers ──────────────────────────────────────────────────────────
337
+ /** Appends to an array channel — the merge every message log wants. */
338
+ export function appendReducer(current, update) {
339
+ const additions = Array.isArray(update) ? update : [update];
340
+ return [...(current ?? []), ...additions];
341
+ }
342
+ /** Shallow-merges object channels instead of replacing them. */
343
+ export function mergeReducer(current, update) {
344
+ return { ...(current ?? {}), ...update };
345
+ }
346
+ /** Sums numeric channels — how a run counts tokens or tool calls across agents. */
347
+ export function sumReducer(current, update) {
348
+ return (current ?? 0) + update;
349
+ }
350
+ /** Set-union for array channels, preserving first-seen order. */
351
+ export function unionReducer(current, update) {
352
+ const additions = Array.isArray(update) ? update : [update];
353
+ const seen = new Set(current ?? []);
354
+ const out = [...(current ?? [])];
355
+ for (const item of additions) {
356
+ if (seen.has(item))
357
+ continue;
358
+ seen.add(item);
359
+ out.push(item);
360
+ }
361
+ return out;
362
+ }
363
+ export { START, END };
364
+ //# sourceMappingURL=AgentGraph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentGraph.js","sourceRoot":"","sources":["../../src/orchestration/AgentGraph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * orchestration/checkpoint.ts — durable state between supersteps.
3
+ *
4
+ * Checkpointing is what turns three separate features into one mechanism:
5
+ * crash recovery, human-in-the-loop approval, and time-travel debugging. All three
6
+ * are "load the state as of superstep N and continue", so they share an
7
+ * implementation rather than each growing their own.
8
+ */
9
+ import type { Checkpoint, Checkpointer, GraphState } from './types.js';
10
+ export interface InMemoryCheckpointerOptions {
11
+ /**
12
+ * Checkpoints retained per thread, newest kept. Default 50 — bounded, because
13
+ * an unbounded history in a long-lived process is a memory leak with a nice name.
14
+ */
15
+ maxPerThread?: number;
16
+ }
17
+ export declare class InMemoryCheckpointer<S extends GraphState = GraphState> implements Checkpointer<S> {
18
+ private readonly _threads;
19
+ private readonly _max;
20
+ constructor(opts?: InMemoryCheckpointerOptions);
21
+ save(checkpoint: Checkpoint<S>): Promise<void>;
22
+ load(threadId: string, checkpointId?: string): Promise<Checkpoint<S> | undefined>;
23
+ list(threadId: string): Promise<Checkpoint<S>[]>;
24
+ clear(threadId: string): Promise<void>;
25
+ get threadCount(): number;
26
+ }
27
+ /**
28
+ * Persists checkpoints through an injected key-value store.
29
+ *
30
+ * The `KeyValueLike` shape is deliberately the smallest common denominator of
31
+ * Cloudflare KV, Redis, Firestore-as-KV and a plain `Map`, so a deployment binds
32
+ * its own storage without this package taking a dependency on any of them.
33
+ */
34
+ export interface KeyValueLike {
35
+ get(key: string): Promise<string | null | undefined>;
36
+ put(key: string, value: string): Promise<void>;
37
+ delete(key: string): Promise<void>;
38
+ }
39
+ export interface KeyValueCheckpointerOptions {
40
+ kv: KeyValueLike;
41
+ /** Key prefix. Default `'evermind:ckpt:'`. */
42
+ prefix?: string;
43
+ /** Checkpoints retained per thread. Default 50. */
44
+ maxPerThread?: number;
45
+ }
46
+ export declare class KeyValueCheckpointer<S extends GraphState = GraphState> implements Checkpointer<S> {
47
+ private readonly _kv;
48
+ private readonly _prefix;
49
+ private readonly _max;
50
+ constructor(opts: KeyValueCheckpointerOptions);
51
+ save(checkpoint: Checkpoint<S>): Promise<void>;
52
+ load(threadId: string, checkpointId?: string): Promise<Checkpoint<S> | undefined>;
53
+ /** Newest first. */
54
+ list(threadId: string): Promise<Checkpoint<S>[]>;
55
+ clear(threadId: string): Promise<void>;
56
+ private _key;
57
+ }
58
+ //# sourceMappingURL=checkpoint.d.ts.map