@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.
Files changed (128) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/LICENSE.md +201 -0
  3. package/README.md +149 -0
  4. package/dist/agent.d.ts +53 -0
  5. package/dist/agent.d.ts.map +1 -0
  6. package/dist/agent.js +508 -0
  7. package/dist/agent.js.map +1 -0
  8. package/dist/backends/tool_sandbox.d.ts +15 -0
  9. package/dist/backends/tool_sandbox.d.ts.map +1 -0
  10. package/dist/backends/tool_sandbox.js +15 -0
  11. package/dist/backends/tool_sandbox.js.map +1 -0
  12. package/dist/backends/toolpod.d.ts +68 -0
  13. package/dist/backends/toolpod.d.ts.map +1 -0
  14. package/dist/backends/toolpod.js +451 -0
  15. package/dist/backends/toolpod.js.map +1 -0
  16. package/dist/call_interrupt.d.ts +20 -0
  17. package/dist/call_interrupt.d.ts.map +1 -0
  18. package/dist/call_interrupt.js +23 -0
  19. package/dist/call_interrupt.js.map +1 -0
  20. package/dist/checkpoint_branch.d.ts +58 -0
  21. package/dist/checkpoint_branch.d.ts.map +1 -0
  22. package/dist/checkpoint_branch.js +239 -0
  23. package/dist/checkpoint_branch.js.map +1 -0
  24. package/dist/checkpointer.d.ts +21 -0
  25. package/dist/checkpointer.d.ts.map +1 -0
  26. package/dist/checkpointer.js +31 -0
  27. package/dist/checkpointer.js.map +1 -0
  28. package/dist/deep_agent.d.ts +49 -0
  29. package/dist/deep_agent.d.ts.map +1 -0
  30. package/dist/deep_agent.js +110 -0
  31. package/dist/deep_agent.js.map +1 -0
  32. package/dist/deep_agent_checkpointer.d.ts +11 -0
  33. package/dist/deep_agent_checkpointer.d.ts.map +1 -0
  34. package/dist/deep_agent_checkpointer.js +19 -0
  35. package/dist/deep_agent_checkpointer.js.map +1 -0
  36. package/dist/deep_agent_task.d.ts +26 -0
  37. package/dist/deep_agent_task.d.ts.map +1 -0
  38. package/dist/deep_agent_task.js +49 -0
  39. package/dist/deep_agent_task.js.map +1 -0
  40. package/dist/durable_deep_agent.d.ts +23 -0
  41. package/dist/durable_deep_agent.d.ts.map +1 -0
  42. package/dist/durable_deep_agent.js +176 -0
  43. package/dist/durable_deep_agent.js.map +1 -0
  44. package/dist/durable_message_identity.d.ts +5 -0
  45. package/dist/durable_message_identity.d.ts.map +1 -0
  46. package/dist/durable_message_identity.js +106 -0
  47. package/dist/durable_message_identity.js.map +1 -0
  48. package/dist/durable_session.d.ts +30 -0
  49. package/dist/durable_session.d.ts.map +1 -0
  50. package/dist/durable_session.js +400 -0
  51. package/dist/durable_session.js.map +1 -0
  52. package/dist/durable_subgraphs.d.ts +13 -0
  53. package/dist/durable_subgraphs.d.ts.map +1 -0
  54. package/dist/durable_subgraphs.js +82 -0
  55. package/dist/durable_subgraphs.js.map +1 -0
  56. package/dist/durable_tools.d.ts +12 -0
  57. package/dist/durable_tools.d.ts.map +1 -0
  58. package/dist/durable_tools.js +41 -0
  59. package/dist/durable_tools.js.map +1 -0
  60. package/dist/execution_session.d.ts +63 -0
  61. package/dist/execution_session.d.ts.map +1 -0
  62. package/dist/execution_session.js +300 -0
  63. package/dist/execution_session.js.map +1 -0
  64. package/dist/index.d.ts +19 -0
  65. package/dist/index.d.ts.map +1 -0
  66. package/dist/index.js +17 -0
  67. package/dist/index.js.map +1 -0
  68. package/dist/llm_adapter.d.ts +41 -0
  69. package/dist/llm_adapter.d.ts.map +1 -0
  70. package/dist/llm_adapter.js +177 -0
  71. package/dist/llm_adapter.js.map +1 -0
  72. package/dist/messages.d.ts +56 -0
  73. package/dist/messages.d.ts.map +1 -0
  74. package/dist/messages.js +592 -0
  75. package/dist/messages.js.map +1 -0
  76. package/dist/node_logger_adapter.d.ts +51 -0
  77. package/dist/node_logger_adapter.d.ts.map +1 -0
  78. package/dist/node_logger_adapter.js +163 -0
  79. package/dist/node_logger_adapter.js.map +1 -0
  80. package/dist/platform_checkpointer.d.ts +70 -0
  81. package/dist/platform_checkpointer.d.ts.map +1 -0
  82. package/dist/platform_checkpointer.js +252 -0
  83. package/dist/platform_checkpointer.js.map +1 -0
  84. package/dist/query.d.ts +103 -0
  85. package/dist/query.d.ts.map +1 -0
  86. package/dist/query.js +623 -0
  87. package/dist/query.js.map +1 -0
  88. package/dist/runtime.d.ts +336 -0
  89. package/dist/runtime.d.ts.map +1 -0
  90. package/dist/runtime.js +881 -0
  91. package/dist/runtime.js.map +1 -0
  92. package/dist/secure_llm.d.ts +93 -0
  93. package/dist/secure_llm.d.ts.map +1 -0
  94. package/dist/secure_llm.js +423 -0
  95. package/dist/secure_llm.js.map +1 -0
  96. package/dist/session_factory.d.ts +6 -0
  97. package/dist/session_factory.d.ts.map +1 -0
  98. package/dist/session_factory.js +29 -0
  99. package/dist/session_factory.js.map +1 -0
  100. package/dist/session_fork.d.ts +76 -0
  101. package/dist/session_fork.d.ts.map +1 -0
  102. package/dist/session_fork.js +428 -0
  103. package/dist/session_fork.js.map +1 -0
  104. package/dist/subagents.d.ts +37 -0
  105. package/dist/subagents.d.ts.map +1 -0
  106. package/dist/subagents.js +67 -0
  107. package/dist/subagents.js.map +1 -0
  108. package/dist/suspend.d.ts +27 -0
  109. package/dist/suspend.d.ts.map +1 -0
  110. package/dist/suspend.js +87 -0
  111. package/dist/suspend.js.map +1 -0
  112. package/dist/thread_id.d.ts +30 -0
  113. package/dist/thread_id.d.ts.map +1 -0
  114. package/dist/thread_id.js +69 -0
  115. package/dist/thread_id.js.map +1 -0
  116. package/dist/workflow_json.d.ts +11 -0
  117. package/dist/workflow_json.d.ts.map +1 -0
  118. package/dist/workflow_json.js +49 -0
  119. package/dist/workflow_json.js.map +1 -0
  120. package/dist/workflow_message.d.ts +11 -0
  121. package/dist/workflow_message.d.ts.map +1 -0
  122. package/dist/workflow_message.js +179 -0
  123. package/dist/workflow_message.js.map +1 -0
  124. package/dist/workflow_state.d.ts +7 -0
  125. package/dist/workflow_state.d.ts.map +1 -0
  126. package/dist/workflow_state.js +62 -0
  127. package/dist/workflow_state.js.map +1 -0
  128. 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":"AAAA,4EAA4E;AAE5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EACL,mBAAmB,EACnB,WAAW,EAGZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,eAAe,EACf,UAAU,EACV,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACb,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAOL,cAAc,EACd,KAAK,cAAc,EACpB,MAAM,wCAAwC,CAAC;AAOhD,KAAK,sBAAsB,GAAG,IAAI,CAChC,cAAc,EACd,mBAAmB,GAAG,cAAc,CACrC,CAAC;AACF,KAAK,qBAAqB,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,sBAAsB,CAAC;AAEvE,qBAAa,4BAA6B,SAAQ,KAAK;gBACzC,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAQzE;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAG/D;AAKD;;;;;;GAMG;AACH,eAAO,MAAM,4BAA4B,iCAAiC,CAAC;AAoC3E,qBAAa,oBAAqB,SAAQ,mBAAmB,CAAC,MAAM,GAAG,MAAM,CAAC;IAC5E,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC;IAC7D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;IACtD;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAU;gBAE/B,IAAI,EAAE;QAChB,MAAM,EAAE,mBAAmB,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC;QACpD,OAAO,CAAC,EAAE,WAAW,CAAC;QACtB,aAAa,CAAC,EAAE,qBAAqB,CAAC;QACtC,gBAAgB,CAAC,EAAE,OAAO,CAAC;KAC5B;IASK,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5D;;;;OAIG;IACH,aAAa,IAAI,oBAAoB;IAS/B,iBAAiB,CACrB,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,IAAI,CAAC;IAoBV,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBhD,QAAQ,CACrB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAMvB,IAAI,CAClB,MAAM,EAAE,cAAc,EACtB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,cAAc,CAAC,eAAe,CAAC;IAwBnB,GAAG,CAChB,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,kBAAkB,EAC5B,WAAW,EAAE,eAAe,GAC3B,OAAO,CAAC,cAAc,CAAC;IAiDX,SAAS,CACtB,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,YAAY,EAAE,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IAkBD,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASnD,cAAc,CACrB,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GACnC,MAAM,GAAG,MAAM;IAWlB;;;;OAIG;IACH,SAAS,CAAC,4BAA4B,CACpC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,GACb,IAAI;IAKP,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,cAAc;IAUtB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,cAAc;CASvB"}
@@ -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":"AAAA,4EAA4E;AAG5E,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,IAAI,GACL,MAAM,sBAAsB,CAAC;AAS9B,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,kBAAkB,EAClB,0BAA0B,EAC1B,eAAe,EACf,cAAc,GAEf,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,qBAAqB,CAAC;AAQ7B,MAAM,OAAO,4BAA6B,SAAQ,KAAK;IACrD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,8BAA8B,CAAC;IAC7C,CAAC;CACF;AAED,MAAM,UAAU,yBAAyB,CAAC,OAAuB;IAC/D,MAAM,WAAW,GAAG,OAAO,CAAC,gBAAgB,EAAE,WAAW,IAAI,EAAE,CAAC;IAChE,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC;QACrE,MAAM,IAAI,4BAA4B,CACpC,uDAAuD,CACxD,CAAC;IACJ,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAuB;IACrD,MAAM,WAAW,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;IACvD,OAAO,GAAG,WAAW,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC;AAClF,CAAC;AAED,+EAA+E;AAC/E,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;AAE9C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,8BAA8B,CAAC;AAE3E;;;;;;;;;GASG;AACH,SAAS,kBAAkB,CAAC,KAAc,EAAE,KAAK,GAAG,CAAC;IACnD,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,KAAK,YAAY,IAAI;QAAE,OAAO,IAAI,CAAC;IACvC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,OAAQ,KAA4B,CAAC,IAAI,KAAK,QAAQ;QACrD,KAA4B,CAAC,IAAI,KAAK,SAAS,CACjD,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B,CAAC,OAAe,EAAE,KAAc;IACnE,IAAI,OAAO,KAAK,oBAAoB;QAAE,OAAO;IAC7C,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,4BAA4B,CACpC,gEAAgE;YAC9D,0EAA0E,CAC7E,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,OAAO,oBAAqB,SAAQ,mBAAoC;IACnE,MAAM,CAA8C;IAC5C,OAAO,CAAc;IACrB,aAAa,CAAwB;IACtD;;;;OAIG;IACc,gBAAgB,CAAU;IAE3C,YAAY,IAKX;QACC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,WAAW,EAAE,CAAC;QACjD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,IAAI,KAAK,CAAC;QACvD,IAAI,CAAC,aAAa;YAChB,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAAuB;QAC1C,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACH,aAAa;QACX,OAAO,IAAI,oBAAoB,CAAC;YAC9B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,OAAuB,EACvB,MAAsB;QAEtB,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS;YAAE,OAAO;QAChD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,KAAK,SAAS;YAAE,OAAO;QAEvE,MAAM,UAAU,GAAG,eAAe,EAAE,CAAC;QACrC,UAAU,CAAC,cAAc,GAAG,4BAA4B,CACtD,OAAO,CAAC,aAAa,CACtB,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACvD,UAAU,CAAC,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAC9C,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CACtE,CAAC;QACF,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,UAAU,EAAE;YAChD,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,CAAC,CAAC;YACR,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,OAAuB;QAC7C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;YACxC,YAAY,EAAE,EAAE,SAAS,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE;SACtD,CAAC,CAAC;QACH,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,4BAA4B,CACpC,6DAA6D,CAC9D,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,iBAAiB,CAC3C,wBAAwB,CACtB,OAAO,EACP,4BAA4B,CAC1B,KAAK,CAAC,UAAU,CAAC,cAAc,EAC/B,OAAO,CAAC,UAAU,CACnB,CACF,CACF,CAAC;IACJ,CAAC;IAEQ,KAAK,CAAC,QAAQ,CACrB,MAAsB;QAEtB,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;QACxC,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACpE,CAAC;IAEQ,KAAK,CAAC,CAAC,IAAI,CAClB,MAAsB,EACtB,OAA+B;QAE/B,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;QACxC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,KAAK,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QACD,kEAAkE;QAClE,oEAAoE;QACpE,2EAA2E;QAC3E,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YAC5C,MAAM,IAAI,4BAA4B,CACpC,6DAA6D,CAC9D,CAAC;QACJ,CAAC;QACD,MAAM,cAAc,GAClB,OAAO,EAAE,MAAM,KAAK,SAAS;YAC3B,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;YACrE,CAAC,CAAC,OAAO,CAAC;QACd,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CACtB,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,cAAc,CACf,CAAC;IACJ,CAAC;IAEQ,KAAK,CAAC,GAAG,CAChB,MAAsB,EACtB,UAAsB,EACtB,QAA4B,EAC5B,WAA4B;QAE5B,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;QACxC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,GAAG,CAC7B,MAAM,EACN,UAAU,EACV,QAAQ,EACR,WAAW,CACZ,CAAC;QACJ,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC/D,MAAM,IAAI,4BAA4B,CACpC,cAAc,QAAQ,CAAC,MAAM,gDAAgD,CAC9E,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1D,sEAAsE;QACtE,4DAA4D;QAC5D,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAC3C,UAAU,CAAC,cAAyC,CACrD,EAAE,CAAC;YACF,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CACnC,aAAa,EACb,UAAU,EACV,eAAe,CAChB,CAAC;QACF,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,CAAC;YACjD,MAAM,OAAO,GAAG,0BAA0B,CACxC,OAAO,EACP,4BAA4B,CAC1B,UAAU,CAAC,cAAc,EACzB,OAAO,CAAC,UAAU,CACnB,CACF,CAAC;YACF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAClE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,4BAA4B,CACpC,uDAAuD,CACxD,CAAC;YACJ,CAAC;YACD,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEQ,KAAK,CAAC,SAAS,CACtB,MAAsB,EACtB,MAAsB,EACtB,MAAc;QAEd,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;QACxC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAC7D,OAAO;QACT,CAAC;QACD,uEAAuE;QACvE,iDAAiD;QACjD,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;YACtC,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAC1B,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,MAAM,EACN,MAAM,CACP,CAAC;IACJ,CAAC;IAEQ,KAAK,CAAC,YAAY,CAAC,QAAgB;QAC1C,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;QACxC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAClD,OAAO;QACT,CAAC;QACD,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5D,CAAC;IAEQ,cAAc,CACrB,OAAoC;QAEpC,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;QACxC,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC1E,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,MAAM,IAAI,4BAA4B,CACpC,mDAAmD,CACpD,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED;;;;OAIG;IACO,4BAA4B,CACpC,OAAe,EACf,KAAc;QAEd,IAAI,IAAI,CAAC,gBAAgB;YAAE,OAAO;QAClC,4BAA4B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAEO,aAAa;QACnB,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YACzB,MAAM,IAAI,4BAA4B,CACpC,kEAAkE,CACnE,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAEO,aAAa,CACnB,MAAsB,EACtB,OAAuB;QAEvB,OAAO;YACL,GAAG,MAAM;YACT,YAAY,EAAE;gBACZ,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC;gBAC9B,SAAS,EAAE,eAAe,CAAC,OAAO,CAAC;gBACnC,aAAa,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE;aAC5D;SACF,CAAC;IACJ,CAAC;IAEO,cAAc,CACpB,QAA4B,EAC5B,MAAsB;QAEtB,OAAO,CACL,QAAQ,CAAC,MAAM,KAAK,MAAM;YAC1B,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CACtD,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,eAAe,CACrB,QAA4B,EAC5B,MAAsB;QAEtB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC;YAAE,OAAO,QAAQ,CAAC;QAC5D,OAAO;YACL,GAAG,QAAQ;YACX,CAAC,4BAA4B,CAAC,EAAE,kBAAkB,EAAE;SAC/B,CAAC;IAC1B,CAAC;IAEO,cAAc;QACpB,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,4BAA4B,CACpC,qDAAqD,CACtD,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;CACF"}