@mongodb-js/agent-engine-sdk-langgraph 0.11.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +39 -0
- package/LICENSE.md +201 -0
- package/README.md +149 -0
- package/dist/agent.d.ts +53 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +508 -0
- package/dist/agent.js.map +1 -0
- package/dist/backends/tool_sandbox.d.ts +15 -0
- package/dist/backends/tool_sandbox.d.ts.map +1 -0
- package/dist/backends/tool_sandbox.js +15 -0
- package/dist/backends/tool_sandbox.js.map +1 -0
- package/dist/backends/toolpod.d.ts +68 -0
- package/dist/backends/toolpod.d.ts.map +1 -0
- package/dist/backends/toolpod.js +451 -0
- package/dist/backends/toolpod.js.map +1 -0
- package/dist/call_interrupt.d.ts +20 -0
- package/dist/call_interrupt.d.ts.map +1 -0
- package/dist/call_interrupt.js +23 -0
- package/dist/call_interrupt.js.map +1 -0
- package/dist/checkpoint_branch.d.ts +58 -0
- package/dist/checkpoint_branch.d.ts.map +1 -0
- package/dist/checkpoint_branch.js +239 -0
- package/dist/checkpoint_branch.js.map +1 -0
- package/dist/checkpointer.d.ts +21 -0
- package/dist/checkpointer.d.ts.map +1 -0
- package/dist/checkpointer.js +31 -0
- package/dist/checkpointer.js.map +1 -0
- package/dist/deep_agent.d.ts +49 -0
- package/dist/deep_agent.d.ts.map +1 -0
- package/dist/deep_agent.js +110 -0
- package/dist/deep_agent.js.map +1 -0
- package/dist/deep_agent_checkpointer.d.ts +11 -0
- package/dist/deep_agent_checkpointer.d.ts.map +1 -0
- package/dist/deep_agent_checkpointer.js +19 -0
- package/dist/deep_agent_checkpointer.js.map +1 -0
- package/dist/deep_agent_task.d.ts +26 -0
- package/dist/deep_agent_task.d.ts.map +1 -0
- package/dist/deep_agent_task.js +49 -0
- package/dist/deep_agent_task.js.map +1 -0
- package/dist/durable_deep_agent.d.ts +23 -0
- package/dist/durable_deep_agent.d.ts.map +1 -0
- package/dist/durable_deep_agent.js +176 -0
- package/dist/durable_deep_agent.js.map +1 -0
- package/dist/durable_message_identity.d.ts +5 -0
- package/dist/durable_message_identity.d.ts.map +1 -0
- package/dist/durable_message_identity.js +106 -0
- package/dist/durable_message_identity.js.map +1 -0
- package/dist/durable_session.d.ts +30 -0
- package/dist/durable_session.d.ts.map +1 -0
- package/dist/durable_session.js +400 -0
- package/dist/durable_session.js.map +1 -0
- package/dist/durable_subgraphs.d.ts +13 -0
- package/dist/durable_subgraphs.d.ts.map +1 -0
- package/dist/durable_subgraphs.js +82 -0
- package/dist/durable_subgraphs.js.map +1 -0
- package/dist/durable_tools.d.ts +12 -0
- package/dist/durable_tools.d.ts.map +1 -0
- package/dist/durable_tools.js +41 -0
- package/dist/durable_tools.js.map +1 -0
- package/dist/execution_session.d.ts +63 -0
- package/dist/execution_session.d.ts.map +1 -0
- package/dist/execution_session.js +300 -0
- package/dist/execution_session.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/llm_adapter.d.ts +41 -0
- package/dist/llm_adapter.d.ts.map +1 -0
- package/dist/llm_adapter.js +177 -0
- package/dist/llm_adapter.js.map +1 -0
- package/dist/messages.d.ts +56 -0
- package/dist/messages.d.ts.map +1 -0
- package/dist/messages.js +592 -0
- package/dist/messages.js.map +1 -0
- package/dist/node_logger_adapter.d.ts +51 -0
- package/dist/node_logger_adapter.d.ts.map +1 -0
- package/dist/node_logger_adapter.js +163 -0
- package/dist/node_logger_adapter.js.map +1 -0
- package/dist/platform_checkpointer.d.ts +70 -0
- package/dist/platform_checkpointer.d.ts.map +1 -0
- package/dist/platform_checkpointer.js +252 -0
- package/dist/platform_checkpointer.js.map +1 -0
- package/dist/query.d.ts +103 -0
- package/dist/query.d.ts.map +1 -0
- package/dist/query.js +623 -0
- package/dist/query.js.map +1 -0
- package/dist/runtime.d.ts +336 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +881 -0
- package/dist/runtime.js.map +1 -0
- package/dist/secure_llm.d.ts +93 -0
- package/dist/secure_llm.d.ts.map +1 -0
- package/dist/secure_llm.js +423 -0
- package/dist/secure_llm.js.map +1 -0
- package/dist/session_factory.d.ts +6 -0
- package/dist/session_factory.d.ts.map +1 -0
- package/dist/session_factory.js +29 -0
- package/dist/session_factory.js.map +1 -0
- package/dist/session_fork.d.ts +76 -0
- package/dist/session_fork.d.ts.map +1 -0
- package/dist/session_fork.js +428 -0
- package/dist/session_fork.js.map +1 -0
- package/dist/subagents.d.ts +37 -0
- package/dist/subagents.d.ts.map +1 -0
- package/dist/subagents.js +67 -0
- package/dist/subagents.js.map +1 -0
- package/dist/suspend.d.ts +27 -0
- package/dist/suspend.d.ts.map +1 -0
- package/dist/suspend.js +87 -0
- package/dist/suspend.js.map +1 -0
- package/dist/thread_id.d.ts +30 -0
- package/dist/thread_id.d.ts.map +1 -0
- package/dist/thread_id.js +69 -0
- package/dist/thread_id.js.map +1 -0
- package/dist/workflow_json.d.ts +11 -0
- package/dist/workflow_json.d.ts.map +1 -0
- package/dist/workflow_json.js +49 -0
- package/dist/workflow_json.js.map +1 -0
- package/dist/workflow_message.d.ts +11 -0
- package/dist/workflow_message.d.ts.map +1 -0
- package/dist/workflow_message.js +179 -0
- package/dist/workflow_message.js.map +1 -0
- package/dist/workflow_state.d.ts +7 -0
- package/dist/workflow_state.d.ts.map +1 -0
- package/dist/workflow_state.js +62 -0
- package/dist/workflow_state.js.map +1 -0
- package/package.json +66 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LangGraph callback adapter for `BaseExecutionCallback`.
|
|
3
|
+
*
|
|
4
|
+
* Bridges LangChain's `BaseCallbackHandler` interface to the framework-neutral
|
|
5
|
+
* `BaseExecutionCallback` protocol. Extracts node names from LangGraph-specific
|
|
6
|
+
* metadata and forwards events to the platform's NodeExecutionLogger.
|
|
7
|
+
*
|
|
8
|
+
* Port of `agent_engine_sdk_langgraph/node_logger_adapter.py`.
|
|
9
|
+
*
|
|
10
|
+
* **API difference vs Python:** LangChain.js exposes chain callbacks as
|
|
11
|
+
* `handleChainStart` / `handleChainEnd` / `handleChainError` (not `on_chain_*`).
|
|
12
|
+
* Method names and parameter order follow the LangChain.js contract — the
|
|
13
|
+
* Python `on_*` names cannot be reused or LangChain will skip them.
|
|
14
|
+
*
|
|
15
|
+
* LangChain.js's chain-end / chain-error callbacks do **not** pass `metadata`
|
|
16
|
+
* as a parameter (Python's do). To preserve parity, the adapter stores the
|
|
17
|
+
* chain-start metadata keyed by `runId` and looks it up at end / error time.
|
|
18
|
+
*/
|
|
19
|
+
import { BaseCallbackHandler } from "@langchain/core/callbacks/base";
|
|
20
|
+
import type { Serialized } from "@langchain/core/load/serializable";
|
|
21
|
+
import type { BaseExecutionCallback } from "@mongodb-js/agent-engine-sdk";
|
|
22
|
+
type ChainValues = Record<string, unknown>;
|
|
23
|
+
/**
|
|
24
|
+
* Wraps a `BaseExecutionCallback` to satisfy LangChain's callback interface.
|
|
25
|
+
*
|
|
26
|
+
* Used by the LangGraph agent to forward node execution events to the
|
|
27
|
+
* platform's framework-neutral `NodeExecutionLogger`.
|
|
28
|
+
*/
|
|
29
|
+
export declare class LangGraphCallbackAdapter extends BaseCallbackHandler {
|
|
30
|
+
name: string;
|
|
31
|
+
private readonly callback;
|
|
32
|
+
/**
|
|
33
|
+
* Stores per-`runId` metadata captured in `handleChainStart` so `handleChainEnd`
|
|
34
|
+
* and `handleChainError` (which don't receive `metadata` from LangChain.js)
|
|
35
|
+
* can recover Python parity. Entries are deleted on end / error to bound the
|
|
36
|
+
* map's size during long-running graphs.
|
|
37
|
+
*/
|
|
38
|
+
private readonly runMetadata;
|
|
39
|
+
/**
|
|
40
|
+
* `runId`s identified as conditional-edge router evaluations in
|
|
41
|
+
* `handleChainStart`; their end / error callbacks are dropped so a ghost
|
|
42
|
+
* pair never reaches the callback. Entries are deleted on end / error.
|
|
43
|
+
*/
|
|
44
|
+
private readonly skippedRuns;
|
|
45
|
+
constructor(callback: BaseExecutionCallback);
|
|
46
|
+
handleChainStart(chain: Serialized, inputs: ChainValues, runId: string, _runType?: string, tags?: string[], metadata?: Record<string, unknown>, _runName?: string, parentRunId?: string): void;
|
|
47
|
+
handleChainEnd(outputs: ChainValues, runId: string, parentRunId?: string, tags?: string[]): void;
|
|
48
|
+
handleChainError(error: Error, runId: string, parentRunId?: string, tags?: string[]): void;
|
|
49
|
+
}
|
|
50
|
+
export {};
|
|
51
|
+
//# sourceMappingURL=node_logger_adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node_logger_adapter.d.ts","sourceRoot":"","sources":["../src/node_logger_adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAGpE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAM1E,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAM3C;;;;;GAKG;AACH,qBAAa,wBAAyB,SAAQ,mBAAmB;IACtD,IAAI,SAA8B;IAC3C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwB;IACjD;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAGxB;IAEJ;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;gBAErC,QAAQ,EAAE,qBAAqB;IAKlC,gBAAgB,CACvB,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,MAAM,EAAE,EACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,QAAQ,CAAC,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,MAAM,GACnB,IAAI;IAkBE,cAAc,CACrB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,MAAM,EACb,WAAW,CAAC,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE,MAAM,EAAE,GACd,IAAI;IAeE,gBAAgB,CACvB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,EACb,WAAW,CAAC,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE,MAAM,EAAE,GACd,IAAI;CA8DR"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LangGraph callback adapter for `BaseExecutionCallback`.
|
|
3
|
+
*
|
|
4
|
+
* Bridges LangChain's `BaseCallbackHandler` interface to the framework-neutral
|
|
5
|
+
* `BaseExecutionCallback` protocol. Extracts node names from LangGraph-specific
|
|
6
|
+
* metadata and forwards events to the platform's NodeExecutionLogger.
|
|
7
|
+
*
|
|
8
|
+
* Port of `agent_engine_sdk_langgraph/node_logger_adapter.py`.
|
|
9
|
+
*
|
|
10
|
+
* **API difference vs Python:** LangChain.js exposes chain callbacks as
|
|
11
|
+
* `handleChainStart` / `handleChainEnd` / `handleChainError` (not `on_chain_*`).
|
|
12
|
+
* Method names and parameter order follow the LangChain.js contract — the
|
|
13
|
+
* Python `on_*` names cannot be reused or LangChain will skip them.
|
|
14
|
+
*
|
|
15
|
+
* LangChain.js's chain-end / chain-error callbacks do **not** pass `metadata`
|
|
16
|
+
* as a parameter (Python's do). To preserve parity, the adapter stores the
|
|
17
|
+
* chain-start metadata keyed by `runId` and looks it up at end / error time.
|
|
18
|
+
*/
|
|
19
|
+
import { BaseCallbackHandler } from "@langchain/core/callbacks/base";
|
|
20
|
+
import { isGraphInterrupt } from "@langchain/langgraph";
|
|
21
|
+
import { getLogger } from "@mongodb-js/agent-engine-runner-shared";
|
|
22
|
+
const logger = getLogger("agent_engine_sdk_langgraph.node_logger_adapter");
|
|
23
|
+
// ---------------------------------------------------------------------------
|
|
24
|
+
// LangGraphCallbackAdapter
|
|
25
|
+
// ---------------------------------------------------------------------------
|
|
26
|
+
/**
|
|
27
|
+
* Wraps a `BaseExecutionCallback` to satisfy LangChain's callback interface.
|
|
28
|
+
*
|
|
29
|
+
* Used by the LangGraph agent to forward node execution events to the
|
|
30
|
+
* platform's framework-neutral `NodeExecutionLogger`.
|
|
31
|
+
*/
|
|
32
|
+
export class LangGraphCallbackAdapter extends BaseCallbackHandler {
|
|
33
|
+
name = "LangGraphCallbackAdapter";
|
|
34
|
+
callback;
|
|
35
|
+
/**
|
|
36
|
+
* Stores per-`runId` metadata captured in `handleChainStart` so `handleChainEnd`
|
|
37
|
+
* and `handleChainError` (which don't receive `metadata` from LangChain.js)
|
|
38
|
+
* can recover Python parity. Entries are deleted on end / error to bound the
|
|
39
|
+
* map's size during long-running graphs.
|
|
40
|
+
*/
|
|
41
|
+
runMetadata = new Map();
|
|
42
|
+
/**
|
|
43
|
+
* `runId`s identified as conditional-edge router evaluations in
|
|
44
|
+
* `handleChainStart`; their end / error callbacks are dropped so a ghost
|
|
45
|
+
* pair never reaches the callback. Entries are deleted on end / error.
|
|
46
|
+
*/
|
|
47
|
+
skippedRuns = new Set();
|
|
48
|
+
constructor(callback) {
|
|
49
|
+
super();
|
|
50
|
+
this.callback = callback;
|
|
51
|
+
}
|
|
52
|
+
handleChainStart(chain, inputs, runId, _runType, tags, metadata, _runName, parentRunId) {
|
|
53
|
+
if (isRouterEvaluation(metadata, tags)) {
|
|
54
|
+
this.skippedRuns.add(runId);
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
if (metadata !== undefined) {
|
|
58
|
+
this.runMetadata.set(runId, metadata);
|
|
59
|
+
}
|
|
60
|
+
const nodeName = extractNodeName(chain, tags, metadata);
|
|
61
|
+
if (!nodeName || nodeName.startsWith("RunnableSequence"))
|
|
62
|
+
return;
|
|
63
|
+
this.callback.onNodeStart(nodeName, inputs, {
|
|
64
|
+
runId,
|
|
65
|
+
...(parentRunId !== undefined && { parentRunId }),
|
|
66
|
+
...(metadata !== undefined && { metadata }),
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
handleChainEnd(outputs, runId, parentRunId, tags) {
|
|
70
|
+
if (this.skippedRuns.delete(runId))
|
|
71
|
+
return;
|
|
72
|
+
const metadata = this.runMetadata.get(runId);
|
|
73
|
+
this.runMetadata.delete(runId);
|
|
74
|
+
const nodeName = extractNodeName(undefined, tags, metadata);
|
|
75
|
+
if (!nodeName || nodeName.startsWith("RunnableSequence"))
|
|
76
|
+
return;
|
|
77
|
+
this.callback.onNodeEnd(nodeName, outputs, {
|
|
78
|
+
runId,
|
|
79
|
+
...(parentRunId !== undefined && { parentRunId }),
|
|
80
|
+
...(metadata !== undefined && { metadata }),
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
handleChainError(error, runId, parentRunId, tags) {
|
|
84
|
+
if (this.skippedRuns.delete(runId))
|
|
85
|
+
return;
|
|
86
|
+
const metadata = this.runMetadata.get(runId);
|
|
87
|
+
this.runMetadata.delete(runId);
|
|
88
|
+
const nodeName = extractNodeName(undefined, tags, metadata);
|
|
89
|
+
if (!nodeName || nodeName.startsWith("RunnableSequence"))
|
|
90
|
+
return;
|
|
91
|
+
if (isGraphInterrupt(error)) {
|
|
92
|
+
// `onNodeSuspend` lives on `NullExecutionCallback` (and any subclass);
|
|
93
|
+
// it isn't part of the base interface. Duck-type to honour it when present.
|
|
94
|
+
const suspend = this.callback.onNodeSuspend;
|
|
95
|
+
if (typeof suspend === "function") {
|
|
96
|
+
suspend.call(this.callback, nodeName, {
|
|
97
|
+
runId,
|
|
98
|
+
...(parentRunId !== undefined && { parentRunId }),
|
|
99
|
+
...(metadata !== undefined && { metadata }),
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
// Backward compat: callbacks that predate `onNodeSuspend` fall back to
|
|
104
|
+
// `onNodeEnd` so the node timing is closed out. The recorded status
|
|
105
|
+
// will be "success" rather than "suspend" — acceptable until the
|
|
106
|
+
// callback implements `onNodeSuspend`.
|
|
107
|
+
logger.warn(`${this.callback.constructor.name} does not implement onNodeSuspend; ` +
|
|
108
|
+
`GraphInterrupt on node ${JSON.stringify(nodeName)} recorded as success. ` +
|
|
109
|
+
`Subclass NullExecutionCallback to fix this.`);
|
|
110
|
+
this.callback.onNodeEnd(nodeName, {}, {
|
|
111
|
+
runId,
|
|
112
|
+
...(parentRunId !== undefined && { parentRunId }),
|
|
113
|
+
...(metadata !== undefined && { metadata }),
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
this.callback.onNodeError(nodeName, error instanceof Error ? error.message : String(error), {
|
|
119
|
+
runId,
|
|
120
|
+
...(parentRunId !== undefined && { parentRunId }),
|
|
121
|
+
...(metadata !== undefined && { metadata }),
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
// ---------------------------------------------------------------------------
|
|
126
|
+
// Internal helpers
|
|
127
|
+
// ---------------------------------------------------------------------------
|
|
128
|
+
/**
|
|
129
|
+
* Pregel stamps every node task run with a `graph:step:N` tag (it builds the
|
|
130
|
+
* per-step child callback manager with it). Conditional-edge routers — any
|
|
131
|
+
* middleware hook declaring `canJumpTo`, or the model node's tools/end edge —
|
|
132
|
+
* run inside their source node's task, so they inherit the node's
|
|
133
|
+
* `langgraph_node` metadata but not the tag. A run carrying the metadata
|
|
134
|
+
* without the tag is a route evaluation, not a node execution.
|
|
135
|
+
*/
|
|
136
|
+
function isRouterEvaluation(metadata, tags) {
|
|
137
|
+
if (!metadata || !("langgraph_node" in metadata))
|
|
138
|
+
return false;
|
|
139
|
+
return !(tags ?? []).some((tag) => tag.startsWith("graph:step:"));
|
|
140
|
+
}
|
|
141
|
+
/** Extract the node name from LangGraph callback parameters. */
|
|
142
|
+
function extractNodeName(serialized, tags, metadata) {
|
|
143
|
+
if (metadata && "langgraph_node" in metadata) {
|
|
144
|
+
const node = metadata["langgraph_node"];
|
|
145
|
+
if (typeof node === "string")
|
|
146
|
+
return node;
|
|
147
|
+
}
|
|
148
|
+
if (tags) {
|
|
149
|
+
for (const tag of tags) {
|
|
150
|
+
if (!tag.startsWith("seq:step:")) {
|
|
151
|
+
return tag;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
if (serialized && "name" in serialized) {
|
|
156
|
+
// `Serialized` is a tagged union; bridge to plain Record once at the boundary.
|
|
157
|
+
const name = serialized["name"];
|
|
158
|
+
if (typeof name === "string")
|
|
159
|
+
return name;
|
|
160
|
+
}
|
|
161
|
+
return undefined;
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=node_logger_adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node_logger_adapter.js","sourceRoot":"","sources":["../src/node_logger_adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/** Request-scoped native versus OE-durable LangGraph checkpoint routing. */
|
|
2
|
+
import type { RunnableConfig } from "@langchain/core/runnables";
|
|
3
|
+
import { BaseCheckpointSaver, MemorySaver } from "@langchain/langgraph";
|
|
4
|
+
import type { ChannelVersions, Checkpoint, CheckpointListOptions, CheckpointMetadata, CheckpointTuple, PendingWrite } from "@langchain/langgraph-checkpoint";
|
|
5
|
+
import { WorkflowClient, type AttemptContext } from "@mongodb-js/agent-engine-runner-shared";
|
|
6
|
+
type PlatformWorkflowClient = Pick<WorkflowClient, "completeExecution" | "finalizeStep">;
|
|
7
|
+
type WorkflowClientFactory = (oeUrl: string) => PlatformWorkflowClient;
|
|
8
|
+
export declare class UnsupportedDurableGraphError extends Error {
|
|
9
|
+
constructor(message: string);
|
|
10
|
+
}
|
|
11
|
+
export declare function requireDurableExecutionId(attempt: AttemptContext): string;
|
|
12
|
+
export declare function scratchThreadId(attempt: AttemptContext): string;
|
|
13
|
+
/**
|
|
14
|
+
* Absolute OE step ordinal recorded on committed root-loop scratch
|
|
15
|
+
* checkpoints so session-fork target selection never reconstructs LangGraph's
|
|
16
|
+
* seeded relative `step` offset (Python `_durable_metadata` parity). The
|
|
17
|
+
* string is part of the stored checkpoint format and shared with the Python
|
|
18
|
+
* SDK, so changing it invalidates forks of older checkpoints.
|
|
19
|
+
*/
|
|
20
|
+
export declare const OE_STEP_ORDINAL_METADATA_KEY = "agent_engine_oe_step_ordinal";
|
|
21
|
+
export declare class PlatformCheckpointer extends BaseCheckpointSaver<string | number> {
|
|
22
|
+
readonly native: BaseCheckpointSaver<string | number> | null;
|
|
23
|
+
private readonly scratch;
|
|
24
|
+
private readonly clientFactory;
|
|
25
|
+
/**
|
|
26
|
+
* Deep-agent graphs route pending ToolCalls through LangGraph Send packets
|
|
27
|
+
* the adapter owns; when set, the Send rejection does not apply. The flag
|
|
28
|
+
* keeps the wrapper sharing the same platform scratch and native savers.
|
|
29
|
+
*/
|
|
30
|
+
private readonly allowSendPackets;
|
|
31
|
+
constructor(args: {
|
|
32
|
+
native: BaseCheckpointSaver<string | number> | null;
|
|
33
|
+
scratch?: MemorySaver;
|
|
34
|
+
clientFactory?: WorkflowClientFactory;
|
|
35
|
+
allowSendPackets?: boolean;
|
|
36
|
+
});
|
|
37
|
+
releaseScratch(attempt: AttemptContext): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* A checkpointer view that shares this instance's platform state and test
|
|
40
|
+
* seams but tolerates the adapter-owned Send routing Deep Agent graphs use
|
|
41
|
+
* (see `checkpointerForDeepAgent`).
|
|
42
|
+
*/
|
|
43
|
+
deepAgentView(): PlatformCheckpointer;
|
|
44
|
+
seedPreviousState(attempt: AttemptContext, config: RunnableConfig): Promise<void>;
|
|
45
|
+
completeExecution(attempt: AttemptContext): Promise<void>;
|
|
46
|
+
getTuple(config: RunnableConfig): Promise<CheckpointTuple | undefined>;
|
|
47
|
+
list(config: RunnableConfig, options?: CheckpointListOptions): AsyncGenerator<CheckpointTuple>;
|
|
48
|
+
put(config: RunnableConfig, checkpoint: Checkpoint, metadata: CheckpointMetadata, newVersions: ChannelVersions): Promise<RunnableConfig>;
|
|
49
|
+
putWrites(config: RunnableConfig, writes: PendingWrite[], taskId: string): Promise<void>;
|
|
50
|
+
deleteThread(threadId: string): Promise<void>;
|
|
51
|
+
getNextVersion(current: string | number | undefined): string | number;
|
|
52
|
+
/**
|
|
53
|
+
* Reject application-authored dynamic fan-out in durable graphs. Deep-agent
|
|
54
|
+
* graphs route their own adapter-owned Send packets through the same
|
|
55
|
+
* platform state, so they opt out via `allowSendPackets`.
|
|
56
|
+
*/
|
|
57
|
+
protected rejectUnsupportedSendPackets(channel: string, value: unknown): void;
|
|
58
|
+
private requireNative;
|
|
59
|
+
private durableConfig;
|
|
60
|
+
private shouldFinalize;
|
|
61
|
+
/**
|
|
62
|
+
* Stamp the absolute ordinal FinalizeStep uses onto the same root-loop
|
|
63
|
+
* scratch checkpoint. LangGraph's relative `step` can shift when OE seeds
|
|
64
|
+
* previous state, so fork target selection reads this key instead.
|
|
65
|
+
*/
|
|
66
|
+
private durableMetadata;
|
|
67
|
+
private workflowClient;
|
|
68
|
+
}
|
|
69
|
+
export {};
|
|
70
|
+
//# sourceMappingURL=platform_checkpointer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform_checkpointer.d.ts","sourceRoot":"","sources":["../src/platform_checkpointer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
/** Request-scoped native versus OE-durable LangGraph checkpoint routing. */
|
|
2
|
+
import { BaseCheckpointSaver, MemorySaver, emptyCheckpoint, Send, } from "@langchain/langgraph";
|
|
3
|
+
import { advanceStepOrdinal, completeExecutionCommand, currentAttemptContext, currentStepOrdinal, finalizeCurrentStepCommand, getCurrentOeUrl, WorkflowClient, } from "@mongodb-js/agent-engine-runner-shared";
|
|
4
|
+
import { channelValuesToStateSnapshot, stateSnapshotToChannelValues, } from "./workflow_state.js";
|
|
5
|
+
export class UnsupportedDurableGraphError extends Error {
|
|
6
|
+
constructor(message) {
|
|
7
|
+
super(message);
|
|
8
|
+
this.name = "UnsupportedDurableGraphError";
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export function requireDurableExecutionId(attempt) {
|
|
12
|
+
const executionId = attempt.workflowIdentity?.executionId ?? "";
|
|
13
|
+
if (!executionId || !attempt.attemptId || attempt.fencingToken <= 0n) {
|
|
14
|
+
throw new UnsupportedDurableGraphError("durable scratch requires complete OE attempt identity");
|
|
15
|
+
}
|
|
16
|
+
return executionId;
|
|
17
|
+
}
|
|
18
|
+
export function scratchThreadId(attempt) {
|
|
19
|
+
const executionId = requireDurableExecutionId(attempt);
|
|
20
|
+
return `${executionId}:${attempt.attemptId}:${attempt.fencingToken.toString()}`;
|
|
21
|
+
}
|
|
22
|
+
/** LangGraph's dynamic-fan-out channel; Send packets on it are unsupported. */
|
|
23
|
+
const PREGEL_TASKS_CHANNEL = "__pregel_tasks";
|
|
24
|
+
/**
|
|
25
|
+
* Absolute OE step ordinal recorded on committed root-loop scratch
|
|
26
|
+
* checkpoints so session-fork target selection never reconstructs LangGraph's
|
|
27
|
+
* seeded relative `step` offset (Python `_durable_metadata` parity). The
|
|
28
|
+
* string is part of the stored checkpoint format and shared with the Python
|
|
29
|
+
* SDK, so changing it invalidates forks of older checkpoints.
|
|
30
|
+
*/
|
|
31
|
+
export const OE_STEP_ORDINAL_METADATA_KEY = "agent_engine_oe_step_ordinal";
|
|
32
|
+
/**
|
|
33
|
+
* Topic.checkpoint() stores this channel as `[seen, values]`, so Send packets
|
|
34
|
+
* sit one array deeper than the checkpoint value itself. Scan arrays to a
|
|
35
|
+
* bounded depth instead of matching only the top level.
|
|
36
|
+
*
|
|
37
|
+
* Recognize a packet by LangGraph's stable SendInterface shape
|
|
38
|
+
* (`{node, args}`) in addition to `instanceof Send`: a tenant application can
|
|
39
|
+
* load its own copy of `@langchain/langgraph`, and a Send from that copy
|
|
40
|
+
* fails a same-module instanceof check while behaving identically here.
|
|
41
|
+
*/
|
|
42
|
+
function containsSendPacket(value, depth = 0) {
|
|
43
|
+
if (depth > 4)
|
|
44
|
+
return false;
|
|
45
|
+
if (Array.isArray(value)) {
|
|
46
|
+
return value.some((item) => containsSendPacket(item, depth + 1));
|
|
47
|
+
}
|
|
48
|
+
if (value instanceof Send)
|
|
49
|
+
return true;
|
|
50
|
+
return (typeof value === "object" &&
|
|
51
|
+
value !== null &&
|
|
52
|
+
typeof value.node === "string" &&
|
|
53
|
+
value.args !== undefined);
|
|
54
|
+
}
|
|
55
|
+
function rejectUnsupportedSendPackets(channel, value) {
|
|
56
|
+
if (channel !== PREGEL_TASKS_CHANNEL)
|
|
57
|
+
return;
|
|
58
|
+
if (containsSendPacket(value)) {
|
|
59
|
+
throw new UnsupportedDurableGraphError("LangGraph Send is not supported on durable_workflow sessions; " +
|
|
60
|
+
"use fixed graph edges, compiled subgraphs, or Deep Agent task delegation");
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
export class PlatformCheckpointer extends BaseCheckpointSaver {
|
|
64
|
+
native;
|
|
65
|
+
scratch;
|
|
66
|
+
clientFactory;
|
|
67
|
+
/**
|
|
68
|
+
* Deep-agent graphs route pending ToolCalls through LangGraph Send packets
|
|
69
|
+
* the adapter owns; when set, the Send rejection does not apply. The flag
|
|
70
|
+
* keeps the wrapper sharing the same platform scratch and native savers.
|
|
71
|
+
*/
|
|
72
|
+
allowSendPackets;
|
|
73
|
+
constructor(args) {
|
|
74
|
+
super(args.native?.serde);
|
|
75
|
+
this.native = args.native;
|
|
76
|
+
this.scratch = args.scratch ?? new MemorySaver();
|
|
77
|
+
this.allowSendPackets = args.allowSendPackets ?? false;
|
|
78
|
+
this.clientFactory =
|
|
79
|
+
args.clientFactory ?? ((oeUrl) => new WorkflowClient(oeUrl));
|
|
80
|
+
}
|
|
81
|
+
async releaseScratch(attempt) {
|
|
82
|
+
await this.scratch.deleteThread(scratchThreadId(attempt));
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* A checkpointer view that shares this instance's platform state and test
|
|
86
|
+
* seams but tolerates the adapter-owned Send routing Deep Agent graphs use
|
|
87
|
+
* (see `checkpointerForDeepAgent`).
|
|
88
|
+
*/
|
|
89
|
+
deepAgentView() {
|
|
90
|
+
return new PlatformCheckpointer({
|
|
91
|
+
native: this.native,
|
|
92
|
+
scratch: this.scratch,
|
|
93
|
+
clientFactory: this.clientFactory,
|
|
94
|
+
allowSendPackets: true,
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
async seedPreviousState(attempt, config) {
|
|
98
|
+
if (attempt.previousState === undefined)
|
|
99
|
+
return;
|
|
100
|
+
const durableConfig = this.durableConfig(config, attempt);
|
|
101
|
+
if ((await this.scratch.getTuple(durableConfig)) !== undefined)
|
|
102
|
+
return;
|
|
103
|
+
const checkpoint = emptyCheckpoint();
|
|
104
|
+
checkpoint.channel_values = stateSnapshotToChannelValues(attempt.previousState);
|
|
105
|
+
const version = this.scratch.getNextVersion(undefined);
|
|
106
|
+
checkpoint.channel_versions = Object.fromEntries(Object.keys(checkpoint.channel_values).map((name) => [name, version]));
|
|
107
|
+
await this.scratch.put(durableConfig, checkpoint, {
|
|
108
|
+
source: "input",
|
|
109
|
+
step: -1,
|
|
110
|
+
parents: {},
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
async completeExecution(attempt) {
|
|
114
|
+
const tuple = await this.scratch.getTuple({
|
|
115
|
+
configurable: { thread_id: scratchThreadId(attempt) },
|
|
116
|
+
});
|
|
117
|
+
if (tuple === undefined) {
|
|
118
|
+
throw new UnsupportedDurableGraphError("durable execution completed without final application state");
|
|
119
|
+
}
|
|
120
|
+
await this.workflowClient().completeExecution(completeExecutionCommand(attempt, channelValuesToStateSnapshot(tuple.checkpoint.channel_values, attempt.replayMode)));
|
|
121
|
+
}
|
|
122
|
+
async getTuple(config) {
|
|
123
|
+
const attempt = currentAttemptContext();
|
|
124
|
+
if (attempt === null)
|
|
125
|
+
return this.requireNative().getTuple(config);
|
|
126
|
+
return this.scratch.getTuple(this.durableConfig(config, attempt));
|
|
127
|
+
}
|
|
128
|
+
async *list(config, options) {
|
|
129
|
+
const attempt = currentAttemptContext();
|
|
130
|
+
if (attempt === null) {
|
|
131
|
+
yield* this.requireNative().list(config, options);
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
// Read-only inspection scoped to the fenced attempt's scratch: OE
|
|
135
|
+
// activity history is the durable replay authority, but the current
|
|
136
|
+
// attempt's own scratch history stays inspectable (Python `alist` parity).
|
|
137
|
+
if (config === undefined || config === null) {
|
|
138
|
+
throw new UnsupportedDurableGraphError("durable scratch history requires the current attempt config");
|
|
139
|
+
}
|
|
140
|
+
const durableOptions = options?.before !== undefined
|
|
141
|
+
? { ...options, before: this.durableConfig(options.before, attempt) }
|
|
142
|
+
: options;
|
|
143
|
+
yield* this.scratch.list(this.durableConfig(config, attempt), durableOptions);
|
|
144
|
+
}
|
|
145
|
+
async put(config, checkpoint, metadata, newVersions) {
|
|
146
|
+
const attempt = currentAttemptContext();
|
|
147
|
+
if (attempt === null) {
|
|
148
|
+
return this.requireNative().put(config, checkpoint, metadata, newVersions);
|
|
149
|
+
}
|
|
150
|
+
if (metadata.source === "update" || metadata.source === "fork") {
|
|
151
|
+
throw new UnsupportedDurableGraphError(`checkpoint ${metadata.source} is not supported on durable_workflow sessions`);
|
|
152
|
+
}
|
|
153
|
+
const durableConfig = this.durableConfig(config, attempt);
|
|
154
|
+
// Reject where LangGraph synchronously commits the producer step: the
|
|
155
|
+
// fanned-out workers must never start on a durable attempt.
|
|
156
|
+
for (const [channel, value] of Object.entries(checkpoint.channel_values)) {
|
|
157
|
+
this.rejectUnsupportedSendPackets(channel, value);
|
|
158
|
+
}
|
|
159
|
+
const durableMetadata = this.durableMetadata(metadata, durableConfig);
|
|
160
|
+
const result = await this.scratch.put(durableConfig, checkpoint, durableMetadata);
|
|
161
|
+
if (this.shouldFinalize(metadata, durableConfig)) {
|
|
162
|
+
const command = finalizeCurrentStepCommand(attempt, channelValuesToStateSnapshot(checkpoint.channel_values, attempt.replayMode));
|
|
163
|
+
const entries = await this.workflowClient().finalizeStep(command);
|
|
164
|
+
if (entries.length > 0) {
|
|
165
|
+
throw new UnsupportedDurableGraphError("settled step finalization returned suspension entries");
|
|
166
|
+
}
|
|
167
|
+
advanceStepOrdinal(Number(command.stepOrdinal));
|
|
168
|
+
}
|
|
169
|
+
return result;
|
|
170
|
+
}
|
|
171
|
+
async putWrites(config, writes, taskId) {
|
|
172
|
+
const attempt = currentAttemptContext();
|
|
173
|
+
if (attempt === null) {
|
|
174
|
+
await this.requireNative().putWrites(config, writes, taskId);
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
// Reject dynamic fan-out where LangGraph backgrounds the write: a PUSH
|
|
178
|
+
// worker could start before this callback fails.
|
|
179
|
+
for (const [channel, value] of writes) {
|
|
180
|
+
this.rejectUnsupportedSendPackets(channel, value);
|
|
181
|
+
}
|
|
182
|
+
await this.scratch.putWrites(this.durableConfig(config, attempt), writes, taskId);
|
|
183
|
+
}
|
|
184
|
+
async deleteThread(threadId) {
|
|
185
|
+
const attempt = currentAttemptContext();
|
|
186
|
+
if (attempt === null) {
|
|
187
|
+
await this.requireNative().deleteThread(threadId);
|
|
188
|
+
return;
|
|
189
|
+
}
|
|
190
|
+
await this.scratch.deleteThread(scratchThreadId(attempt));
|
|
191
|
+
}
|
|
192
|
+
getNextVersion(current) {
|
|
193
|
+
const attempt = currentAttemptContext();
|
|
194
|
+
if (attempt === null)
|
|
195
|
+
return this.requireNative().getNextVersion(current);
|
|
196
|
+
if (typeof current === "string") {
|
|
197
|
+
throw new UnsupportedDurableGraphError("durable scratch requires numeric channel versions");
|
|
198
|
+
}
|
|
199
|
+
return this.scratch.getNextVersion(current);
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Reject application-authored dynamic fan-out in durable graphs. Deep-agent
|
|
203
|
+
* graphs route their own adapter-owned Send packets through the same
|
|
204
|
+
* platform state, so they opt out via `allowSendPackets`.
|
|
205
|
+
*/
|
|
206
|
+
rejectUnsupportedSendPackets(channel, value) {
|
|
207
|
+
if (this.allowSendPackets)
|
|
208
|
+
return;
|
|
209
|
+
rejectUnsupportedSendPackets(channel, value);
|
|
210
|
+
}
|
|
211
|
+
requireNative() {
|
|
212
|
+
if (this.native === null) {
|
|
213
|
+
throw new UnsupportedDurableGraphError("native_checkpoint session requires a MongoDB-backed checkpointer");
|
|
214
|
+
}
|
|
215
|
+
return this.native;
|
|
216
|
+
}
|
|
217
|
+
durableConfig(config, attempt) {
|
|
218
|
+
return {
|
|
219
|
+
...config,
|
|
220
|
+
configurable: {
|
|
221
|
+
...(config.configurable ?? {}),
|
|
222
|
+
thread_id: scratchThreadId(attempt),
|
|
223
|
+
checkpoint_ns: config.configurable?.["checkpoint_ns"] ?? "",
|
|
224
|
+
},
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
shouldFinalize(metadata, config) {
|
|
228
|
+
return (metadata.source === "loop" &&
|
|
229
|
+
(config.configurable?.["checkpoint_ns"] ?? "") === "");
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Stamp the absolute ordinal FinalizeStep uses onto the same root-loop
|
|
233
|
+
* scratch checkpoint. LangGraph's relative `step` can shift when OE seeds
|
|
234
|
+
* previous state, so fork target selection reads this key instead.
|
|
235
|
+
*/
|
|
236
|
+
durableMetadata(metadata, config) {
|
|
237
|
+
if (!this.shouldFinalize(metadata, config))
|
|
238
|
+
return metadata;
|
|
239
|
+
return {
|
|
240
|
+
...metadata,
|
|
241
|
+
[OE_STEP_ORDINAL_METADATA_KEY]: currentStepOrdinal(),
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
workflowClient() {
|
|
245
|
+
const oeUrl = getCurrentOeUrl();
|
|
246
|
+
if (!oeUrl) {
|
|
247
|
+
throw new UnsupportedDurableGraphError("durable workflow state requires the OE callback URL");
|
|
248
|
+
}
|
|
249
|
+
return this.clientFactory(oeUrl);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
//# sourceMappingURL=platform_checkpointer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform_checkpointer.js","sourceRoot":"","sources":["../src/platform_checkpointer.ts"],"names":[],"mappings":"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"}
|