@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":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * SecureWrappedLLM — LangChain BaseChatModel adapter for secure LLM calls.
3
+ *
4
+ * Thin adapter that provides the LangChain `BaseChatModel` interface while
5
+ * delegating `invoke_llm` orchestration to `SecureLLMProxy` in runner-shared.
6
+ *
7
+ * Port of `agent_engine_sdk_langgraph/secure_llm.py`.
8
+ */
9
+ import type { CallbackManagerForLLMRun } from "@langchain/core/callbacks/manager";
10
+ import { type BaseMessage } from "@langchain/core/messages";
11
+ import { type BaseChatModel, BaseChatModel as _BaseChatModel } from "@langchain/core/language_models/chat_models";
12
+ import { ChatGenerationChunk, type ChatResult } from "@langchain/core/outputs";
13
+ import { type DurableMemoryState, LLMInvocationError, PolicyDeniedException } from "@mongodb-js/agent-engine-runner-shared";
14
+ export { LLMInvocationError, PolicyDeniedException };
15
+ /**
16
+ * Structural shape of the `SecureToolWrapper` retrieved via `getCurrentWrapper()`.
17
+ * Matches the public fields of agent-engine-runner-shared's `SecureToolWrapper`.
18
+ */
19
+ export interface SecureLLMWrapper {
20
+ readonly stepCounter: number;
21
+ oeUrl: string;
22
+ executionId: string;
23
+ durableMemory: DurableMemoryState | null;
24
+ operationalSteps: {
25
+ next(): number;
26
+ observeAtLeast(n: number): void;
27
+ current(): number;
28
+ };
29
+ nextOperationalStep(): number;
30
+ observeOperationalStep(n: number): void;
31
+ }
32
+ /** Callable that returns the active wrapper, or `null` if no execution context. */
33
+ export type GetWrapperFn = () => SecureLLMWrapper | null;
34
+ /**
35
+ * Insert missing `ToolMessage`s after assistant tool calls before LLM invocation.
36
+ *
37
+ * A tool node failure can leave a checkpoint with an assistant `tool_calls`
38
+ * message but no matching `ToolMessage`. Providers reject that history on the
39
+ * next LLM call, so repair the prompt sent to OE while preserving the
40
+ * original checkpoint state.
41
+ *
42
+ * @internal Exported for unit testing only — not part of the public API.
43
+ */
44
+ export declare function repairMissingToolMessages(messages: readonly BaseMessage[]): BaseMessage[];
45
+ /**
46
+ * LangChain LLM wrapper that routes all calls through OE.
47
+ *
48
+ * Wraps a real LLM (Gemini, OpenAI, etc.) and delegates OE orchestration to
49
+ * `SecureLLMProxy`. The adapter handles:
50
+ * - LangChain ↔ sdk-core message conversion
51
+ * - Translating OE-owned invoke_llm results back into LangChain types
52
+ * - Logging and metrics (LangChain-specific concerns)
53
+ *
54
+ * The `SecureToolWrapper` is obtained via a callable at invocation time,
55
+ * allowing the graph to be built before execution context exists.
56
+ */
57
+ export declare class SecureWrappedLLM extends _BaseChatModel {
58
+ modelName: string;
59
+ private readonly llm;
60
+ private readonly getWrapper;
61
+ private boundTools;
62
+ private boundToolChoice;
63
+ private readonly llmId;
64
+ constructor(llm: BaseChatModel, getWrapper: GetWrapperFn, llmId?: string, modelName?: string);
65
+ _llmType(): string;
66
+ _identifyingParams(): Record<string, unknown>;
67
+ /**
68
+ * Bind tools to the LLM — returns a new `SecureWrappedLLM` instance.
69
+ *
70
+ * LangChain JS tools (`tool()`, `DynamicTool`, `DynamicStructuredTool`,
71
+ * `RunnableToolLike`) carry their input schema as a Zod object on
72
+ * `.schema`, not as a JSON Schema dict. We normalize them here via
73
+ * `convertToOpenAITool` so the dict that reaches `SecureLLMProxy` (and
74
+ * crosses the wire to OE / the tool pod) is the canonical OpenAI shape
75
+ * `{type:"function", function:{name, description, parameters}}`. Without
76
+ * this step, the agent-engine-runner-shared validator strips the Zod schema and
77
+ * the eventual provider call fails with `tools[0].type` missing.
78
+ *
79
+ * The inner LLM still receives the original tools so its own bindTools
80
+ * pipeline is unchanged.
81
+ *
82
+ * `tool_choice` (e.g. a forced function name) is captured and forwarded to
83
+ * the tool pod's bind_tools call: invocations route through SecureLLMProxy
84
+ * and never touch the inner LangChain binding, so a choice left only on the
85
+ * inner LLM would otherwise be lost.
86
+ */
87
+ bindTools(tools: ReadonlyArray<unknown>, kwargs?: Record<string, unknown>): SecureWrappedLLM;
88
+ private getWrapperOrRaise;
89
+ private static buildInvocationOptions;
90
+ _generate(messages: BaseMessage[], options: this["ParsedCallOptions"], _runManager?: CallbackManagerForLLMRun): Promise<ChatResult>;
91
+ _streamResponseChunks(messages: BaseMessage[], options: this["ParsedCallOptions"], runManager?: CallbackManagerForLLMRun): AsyncGenerator<ChatGenerationChunk>;
92
+ }
93
+ //# sourceMappingURL=secure_llm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secure_llm.d.ts","sourceRoot":"","sources":["../src/secure_llm.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAClF,OAAO,EAGL,KAAK,WAAW,EAEjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,KAAK,aAAa,EAClB,aAAa,IAAI,cAAc,EAChC,MAAM,6CAA6C,CAAC;AAErD,OAAO,EAAE,mBAAmB,EAAE,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAU/E,OAAO,EACL,KAAK,kBAAkB,EAGvB,kBAAkB,EAWlB,qBAAqB,EAEtB,MAAM,wCAAwC,CAAC;AAWhD,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,CAAC;AAmCrD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACzC,gBAAgB,EAAE;QAChB,IAAI,IAAI,MAAM,CAAC;QACf,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAChC,OAAO,IAAI,MAAM,CAAC;KACnB,CAAC;IACF,mBAAmB,IAAI,MAAM,CAAC;IAC9B,sBAAsB,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC;AAED,mFAAmF;AACnF,MAAM,MAAM,YAAY,GAAG,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAMzD;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,SAAS,WAAW,EAAE,GAC/B,WAAW,EAAE,CAmEf;AAMD;;;;;;;;;;;GAWG;AACH,qBAAa,gBAAiB,SAAQ,cAAc;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAe;IAC1C,OAAO,CAAC,UAAU,CAAyB;IAC3C,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;gBAG7B,GAAG,EAAE,aAAa,EAClB,UAAU,EAAE,YAAY,EACxB,KAAK,GAAE,MAAsB,EAC7B,SAAS,CAAC,EAAE,MAAM;IAqBX,QAAQ,IAAI,MAAM;IAIlB,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAItD;;;;;;;;;;;;;;;;;;;OAmBG;IACM,SAAS,CAChB,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,EAC7B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,gBAAgB;IAwBnB,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAStB,SAAS,CACtB,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,EAClC,WAAW,CAAC,EAAE,wBAAwB,GACrC,OAAO,CAAC,UAAU,CAAC;IAiHN,qBAAqB,CACnC,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,EAClC,UAAU,CAAC,EAAE,wBAAwB,GACpC,cAAc,CAAC,mBAAmB,CAAC;CA2HvC"}
@@ -0,0 +1,423 @@
1
+ /**
2
+ * SecureWrappedLLM — LangChain BaseChatModel adapter for secure LLM calls.
3
+ *
4
+ * Thin adapter that provides the LangChain `BaseChatModel` interface while
5
+ * delegating `invoke_llm` orchestration to `SecureLLMProxy` in runner-shared.
6
+ *
7
+ * Port of `agent_engine_sdk_langgraph/secure_llm.py`.
8
+ */
9
+ import { AIMessage, AIMessageChunk, ToolMessage, } from "@langchain/core/messages";
10
+ import { BaseChatModel as _BaseChatModel, } from "@langchain/core/language_models/chat_models";
11
+ import { ChatGenerationChunk } from "@langchain/core/outputs";
12
+ import { convertToOpenAITool, isLangChainTool, } from "@langchain/core/utils/function_calling";
13
+ import { LLMInvocationOptions, LLMToolSchema, } from "@mongodb-js/agent-engine-sdk";
14
+ import { getLogger, getTracer, LLMInvocationError, logCachedResult, logLLMMessages, logLLMResponse, logPolicyBlocked, logSeparator, Metrics, MODEL_REQUEST_PREPARE, MODEL_RESPONSE_PROCESS, OPENINFERENCE_SPAN_KIND, OpenInferenceSpanKind, PolicyDeniedException, SecureLLMProxy, } from "@mongodb-js/agent-engine-runner-shared";
15
+ import { lcMessagesToPlatform, llmResponseToChatResult, llmStreamChunkToGenerationChunk, } from "./messages.js";
16
+ import { stampDeepAgentMessageIds } from "./durable_deep_agent.js";
17
+ const logger = getLogger("agent_engine_sdk_langgraph.secure_llm");
18
+ // Re-export for backward compatibility (tests import from here)
19
+ export { LLMInvocationError, PolicyDeniedException };
20
+ const MISSING_TOOL_RESULT_TEMPLATE = (toolName) => `Tool execution failed before the platform recorded a result for ${toolName}. ` +
21
+ `Treat this as a failed tool call and continue with the user request.`;
22
+ /**
23
+ * Normalize a bound tool into a shape that `SecureLLMProxy.serializeBoundTools`
24
+ * can handle without losing the input schema.
25
+ *
26
+ * - LangChain JS tools → `convertToOpenAITool` → OpenAI-canonical dict.
27
+ * - `LLMToolSchema` instances and plain dicts → returned as-is.
28
+ * - Anything else → returned as-is (the proxy will log and skip if it can't
29
+ * make sense of it, matching pre-existing behavior).
30
+ */
31
+ function normalizeBoundTool(tool) {
32
+ if (tool instanceof LLMToolSchema)
33
+ return tool;
34
+ if (isLangChainTool(tool)) {
35
+ try {
36
+ return convertToOpenAITool(tool);
37
+ }
38
+ catch (err) {
39
+ logger.warn({ err: err instanceof Error ? err.message : String(err) }, "SecureWrappedLLM.bindTools: convertToOpenAITool failed; passing tool through unchanged");
40
+ return tool;
41
+ }
42
+ }
43
+ return tool;
44
+ }
45
+ // ---------------------------------------------------------------------------
46
+ // Internal helper — repair missing ToolMessages
47
+ // ---------------------------------------------------------------------------
48
+ /**
49
+ * Insert missing `ToolMessage`s after assistant tool calls before LLM invocation.
50
+ *
51
+ * A tool node failure can leave a checkpoint with an assistant `tool_calls`
52
+ * message but no matching `ToolMessage`. Providers reject that history on the
53
+ * next LLM call, so repair the prompt sent to OE while preserving the
54
+ * original checkpoint state.
55
+ *
56
+ * @internal Exported for unit testing only — not part of the public API.
57
+ */
58
+ export function repairMissingToolMessages(messages) {
59
+ const repaired = [];
60
+ let inserted = 0;
61
+ let index = 0;
62
+ while (index < messages.length) {
63
+ const message = messages[index];
64
+ repaired.push(message);
65
+ index += 1;
66
+ const isAiMessage = message instanceof AIMessage ||
67
+ message instanceof AIMessageChunk ||
68
+ message.type === "ai";
69
+ const toolCalls = message.tool_calls;
70
+ if (!isAiMessage || !toolCalls || toolCalls.length === 0) {
71
+ continue;
72
+ }
73
+ const expected = [];
74
+ for (const toolCall of toolCalls) {
75
+ if (toolCall === null || typeof toolCall !== "object")
76
+ continue;
77
+ const tc = toolCall;
78
+ const toolCallId = tc["id"];
79
+ if (typeof toolCallId !== "string" || toolCallId === "")
80
+ continue;
81
+ const toolName = tc["name"];
82
+ expected.push([
83
+ toolCallId,
84
+ typeof toolName === "string" ? toolName : undefined,
85
+ ]);
86
+ }
87
+ if (expected.length === 0)
88
+ continue;
89
+ const seen = new Set();
90
+ while (index < messages.length && messages[index] instanceof ToolMessage) {
91
+ const toolMessage = messages[index];
92
+ if (toolMessage.tool_call_id)
93
+ seen.add(toolMessage.tool_call_id);
94
+ repaired.push(toolMessage);
95
+ index += 1;
96
+ }
97
+ for (const [toolCallId, toolName] of expected) {
98
+ if (seen.has(toolCallId))
99
+ continue;
100
+ const displayName = toolName ?? "the requested tool";
101
+ repaired.push(new ToolMessage({
102
+ content: MISSING_TOOL_RESULT_TEMPLATE(displayName),
103
+ tool_call_id: toolCallId,
104
+ ...(toolName !== undefined && { name: toolName }),
105
+ status: "error",
106
+ }));
107
+ inserted += 1;
108
+ }
109
+ }
110
+ if (inserted > 0) {
111
+ logger.warn(`Inserted ${inserted} missing tool message(s) before LLM invocation`);
112
+ return repaired;
113
+ }
114
+ // No repair needed — return the input as-is (matches Python's `return messages`).
115
+ // Callers only read the result (passed straight to lcMessagesToPlatform, which
116
+ // maps into a fresh array), so a defensive copy here is redundant.
117
+ return messages;
118
+ }
119
+ // ---------------------------------------------------------------------------
120
+ // SecureWrappedLLM
121
+ // ---------------------------------------------------------------------------
122
+ /**
123
+ * LangChain LLM wrapper that routes all calls through OE.
124
+ *
125
+ * Wraps a real LLM (Gemini, OpenAI, etc.) and delegates OE orchestration to
126
+ * `SecureLLMProxy`. The adapter handles:
127
+ * - LangChain ↔ sdk-core message conversion
128
+ * - Translating OE-owned invoke_llm results back into LangChain types
129
+ * - Logging and metrics (LangChain-specific concerns)
130
+ *
131
+ * The `SecureToolWrapper` is obtained via a callable at invocation time,
132
+ * allowing the graph to be built before execution context exists.
133
+ */
134
+ export class SecureWrappedLLM extends _BaseChatModel {
135
+ modelName;
136
+ llm;
137
+ getWrapper;
138
+ boundTools;
139
+ boundToolChoice;
140
+ llmId;
141
+ constructor(llm, getWrapper, llmId = "__default__", modelName) {
142
+ super({});
143
+ this.llm = llm;
144
+ this.getWrapper = getWrapper;
145
+ this.boundTools = [];
146
+ this.boundToolChoice = null;
147
+ this.llmId = llmId;
148
+ const llmAny = llm;
149
+ this.modelName =
150
+ modelName ??
151
+ (typeof llmAny.model === "string" ? llmAny.model : undefined) ??
152
+ (typeof llmAny.modelName === "string" ? llmAny.modelName : undefined) ??
153
+ "unknown";
154
+ }
155
+ _llmType() {
156
+ return "secure-wrapped-llm";
157
+ }
158
+ _identifyingParams() {
159
+ return { model_name: this.modelName, llm_id: this.llmId };
160
+ }
161
+ /**
162
+ * Bind tools to the LLM — returns a new `SecureWrappedLLM` instance.
163
+ *
164
+ * LangChain JS tools (`tool()`, `DynamicTool`, `DynamicStructuredTool`,
165
+ * `RunnableToolLike`) carry their input schema as a Zod object on
166
+ * `.schema`, not as a JSON Schema dict. We normalize them here via
167
+ * `convertToOpenAITool` so the dict that reaches `SecureLLMProxy` (and
168
+ * crosses the wire to OE / the tool pod) is the canonical OpenAI shape
169
+ * `{type:"function", function:{name, description, parameters}}`. Without
170
+ * this step, the agent-engine-runner-shared validator strips the Zod schema and
171
+ * the eventual provider call fails with `tools[0].type` missing.
172
+ *
173
+ * The inner LLM still receives the original tools so its own bindTools
174
+ * pipeline is unchanged.
175
+ *
176
+ * `tool_choice` (e.g. a forced function name) is captured and forwarded to
177
+ * the tool pod's bind_tools call: invocations route through SecureLLMProxy
178
+ * and never touch the inner LangChain binding, so a choice left only on the
179
+ * inner LLM would otherwise be lost.
180
+ */
181
+ bindTools(tools, kwargs) {
182
+ const inner = this.llm;
183
+ const newInnerLlm = typeof inner.bindTools === "function"
184
+ ? inner.bindTools(tools, kwargs)
185
+ : this.llm;
186
+ const next = new SecureWrappedLLM(newInnerLlm, this.getWrapper, this.llmId, this.modelName);
187
+ next.boundTools = tools.map((t) => normalizeBoundTool(t));
188
+ // `?? null` normalizes an absent choice to null while preserving
189
+ // tool_choice=false (which disables forced tool use).
190
+ next.boundToolChoice = kwargs?.["tool_choice"] ?? null;
191
+ return next;
192
+ }
193
+ getWrapperOrRaise() {
194
+ const wrapper = this.getWrapper();
195
+ if (wrapper === null) {
196
+ throw new Error("SecureToolWrapper is not initialized. This means the LLM is being invoked " +
197
+ "outside of an execution context. Ensure the graph is invoked via AER's /execute endpoint.");
198
+ }
199
+ return wrapper;
200
+ }
201
+ static buildInvocationOptions(kwargs) {
202
+ if (Object.keys(kwargs).length === 0)
203
+ return undefined;
204
+ return new LLMInvocationOptions(kwargs);
205
+ }
206
+ async _generate(messages, options, _runManager) {
207
+ const wrapper = this.getWrapperOrRaise();
208
+ const tracer = getTracer("agent-engine-sdk-langgraph.secure_llm");
209
+ const { step, platformMessages, stop, invocationOptions, proxy } = tracer.startActiveSpan(MODEL_REQUEST_PREPARE, {
210
+ attributes: {
211
+ [OPENINFERENCE_SPAN_KIND]: OpenInferenceSpanKind.CHAIN,
212
+ },
213
+ }, (span) => {
214
+ try {
215
+ const step = wrapper.nextOperationalStep();
216
+ stampDeepAgentMessageIds(messages);
217
+ const repairedMessages = repairMissingToolMessages(messages);
218
+ logSeparator();
219
+ logLLMMessages(repairedMessages, "LLM");
220
+ const platformMessages = lcMessagesToPlatform(repairedMessages);
221
+ const stop = extractStop(options);
222
+ const kwargs = extractKwargs(options);
223
+ const invocationOptions = SecureWrappedLLM.buildInvocationOptions(kwargs);
224
+ const proxy = new SecureLLMProxy({
225
+ oeUrl: wrapper.oeUrl,
226
+ executionId: wrapper.executionId,
227
+ modelName: this.modelName,
228
+ llmId: this.llmId,
229
+ boundTools: this.boundTools.length > 0 ? [...this.boundTools] : null,
230
+ boundToolChoice: this.boundToolChoice,
231
+ operationalSteps: wrapper.operationalSteps,
232
+ durableMemory: wrapper.durableMemory,
233
+ });
234
+ return { step, platformMessages, stop, invocationOptions, proxy };
235
+ }
236
+ finally {
237
+ span.end();
238
+ }
239
+ });
240
+ // proxy.stream() (the provider round trip via OE) is left
241
+ // uninstrumented: LangChain's auto-instrumentation already wraps this
242
+ // whole method in its own LLM-kind span, so the gap between
243
+ // request.prepare and response.process is the provider call.
244
+ let response;
245
+ try {
246
+ const chunks = [];
247
+ for await (const chunk of proxy.stream([...platformMessages], step, stop !== undefined ? [...stop] : null, invocationOptions ?? null)) {
248
+ chunks.push(chunk);
249
+ }
250
+ response = SecureLLMProxy.responseFromStreamChunks(chunks);
251
+ }
252
+ catch (exc) {
253
+ if (exc instanceof PolicyDeniedException) {
254
+ logPolicyBlocked("invoke_llm", step, exc.message, "LLM");
255
+ throw exc;
256
+ }
257
+ if (exc instanceof LLMInvocationError) {
258
+ Metrics.recordLatency("llm_call", proxy.lastDurationMs, {
259
+ model_name: this.modelName,
260
+ });
261
+ Metrics.recordError("llm_call", { model_name: this.modelName });
262
+ throw exc;
263
+ }
264
+ throw exc;
265
+ }
266
+ return tracer.startActiveSpan(MODEL_RESPONSE_PROCESS, {
267
+ attributes: { [OPENINFERENCE_SPAN_KIND]: OpenInferenceSpanKind.CHAIN },
268
+ }, (span) => {
269
+ try {
270
+ if (proxy.lastLatestStepNumber !== null) {
271
+ wrapper.observeOperationalStep(proxy.lastLatestStepNumber);
272
+ }
273
+ const proxyAny = proxy;
274
+ if (proxyAny.lastFromCache === true) {
275
+ logCachedResult("invoke_llm", step, "LLM");
276
+ }
277
+ const result = llmResponseToChatResult(response);
278
+ const aiMessage = result.generations[0]?.message;
279
+ logLLMResponse(aiMessage, step, "LLM");
280
+ Metrics.recordLatency("llm_call", proxy.lastDurationMs, {
281
+ model_name: this.modelName,
282
+ });
283
+ return result;
284
+ }
285
+ finally {
286
+ span.end();
287
+ }
288
+ });
289
+ }
290
+ async *_streamResponseChunks(messages, options, runManager) {
291
+ const wrapper = this.getWrapperOrRaise();
292
+ // Check if underlying LLM supports streaming. If not, delegate to _generate.
293
+ const innerLlm = this.llm;
294
+ const hasStream = typeof innerLlm._streamResponseChunks === "function" ||
295
+ typeof innerLlm.stream === "function";
296
+ if (!hasStream) {
297
+ const result = await this._generate(messages, options, runManager);
298
+ const msg = result.generations[0]?.message;
299
+ if (msg !== undefined) {
300
+ const msgData = msg.toDict();
301
+ msgData["type"] = "AIMessageChunk";
302
+ const chunk = new AIMessageChunk(msgData);
303
+ yield new ChatGenerationChunk({
304
+ message: chunk,
305
+ text: typeof msg.content === "string" ? msg.content : "",
306
+ });
307
+ }
308
+ return;
309
+ }
310
+ const tracer = getTracer("agent-engine-sdk-langgraph.secure_llm");
311
+ const { step, platformMessages, stop, invocationOptions, proxy } = tracer.startActiveSpan(MODEL_REQUEST_PREPARE, {
312
+ attributes: {
313
+ [OPENINFERENCE_SPAN_KIND]: OpenInferenceSpanKind.CHAIN,
314
+ },
315
+ }, (span) => {
316
+ try {
317
+ const step = wrapper.nextOperationalStep();
318
+ stampDeepAgentMessageIds(messages);
319
+ const repairedMessages = repairMissingToolMessages(messages);
320
+ logSeparator();
321
+ logLLMMessages(repairedMessages, "LLM");
322
+ const platformMessages = lcMessagesToPlatform(repairedMessages);
323
+ const stop = extractStop(options);
324
+ const kwargs = extractKwargs(options);
325
+ const invocationOptions = SecureWrappedLLM.buildInvocationOptions(kwargs);
326
+ const proxy = new SecureLLMProxy({
327
+ oeUrl: wrapper.oeUrl,
328
+ executionId: wrapper.executionId,
329
+ modelName: this.modelName,
330
+ llmId: this.llmId,
331
+ boundTools: this.boundTools.length > 0 ? [...this.boundTools] : null,
332
+ boundToolChoice: this.boundToolChoice,
333
+ operationalSteps: wrapper.operationalSteps,
334
+ durableMemory: wrapper.durableMemory,
335
+ });
336
+ return { step, platformMessages, stop, invocationOptions, proxy };
337
+ }
338
+ finally {
339
+ span.end();
340
+ }
341
+ });
342
+ // Gap between request.prepare and response.process is the provider
343
+ // round trip, same reasoning as _generate above.
344
+ //
345
+ // Spans the whole consumption loop, not just the first chunk: a
346
+ // streaming response isn't "processed" until the stream ends. Opened
347
+ // with startSpan (not startActiveSpan) because it must stay open across
348
+ // the yield points below.
349
+ const responseProcessSpan = tracer.startSpan(MODEL_RESPONSE_PROCESS, {
350
+ attributes: { [OPENINFERENCE_SPAN_KIND]: OpenInferenceSpanKind.CHAIN },
351
+ });
352
+ try {
353
+ for await (const sdkChunk of proxy.stream([...platformMessages], step, stop !== undefined ? [...stop] : null, invocationOptions ?? null)) {
354
+ yield llmStreamChunkToGenerationChunk(sdkChunk);
355
+ }
356
+ }
357
+ catch (exc) {
358
+ if (exc instanceof PolicyDeniedException) {
359
+ logPolicyBlocked("invoke_llm", step, exc.message, "LLM");
360
+ throw exc;
361
+ }
362
+ if (exc instanceof LLMInvocationError) {
363
+ Metrics.recordLatency("llm_call", proxy.lastDurationMs, {
364
+ model_name: this.modelName,
365
+ });
366
+ Metrics.recordError("llm_call", { model_name: this.modelName });
367
+ throw exc;
368
+ }
369
+ throw exc;
370
+ }
371
+ finally {
372
+ responseProcessSpan.end();
373
+ }
374
+ if (proxy.lastLatestStepNumber !== null) {
375
+ wrapper.observeOperationalStep(proxy.lastLatestStepNumber);
376
+ }
377
+ const proxyAny = proxy;
378
+ if (proxyAny.lastFromCache === true) {
379
+ logCachedResult("invoke_llm", step, "LLM");
380
+ }
381
+ Metrics.recordLatency("llm_call", proxy.lastDurationMs, {
382
+ model_name: this.modelName,
383
+ });
384
+ }
385
+ }
386
+ // ---------------------------------------------------------------------------
387
+ // Local helpers — extract Python-style `stop` and `**kwargs` from LC.js options
388
+ // ---------------------------------------------------------------------------
389
+ function extractStop(options) {
390
+ if (options === undefined)
391
+ return undefined;
392
+ const stop = options["stop"];
393
+ return Array.isArray(stop) ? stop : undefined;
394
+ }
395
+ function extractKwargs(options) {
396
+ if (options === undefined)
397
+ return {};
398
+ const known = new Set([
399
+ "stop",
400
+ "signal",
401
+ "timeout",
402
+ "maxConcurrency",
403
+ "tags",
404
+ "metadata",
405
+ "callbacks",
406
+ "runName",
407
+ "configurable",
408
+ // LangGraph runtime state injected into task configs. It is per-attempt
409
+ // bookkeeping (checkpoint/task UUIDs, nodeFirstAttemptTime), never a
410
+ // provider option; letting it reach the OE semantic input makes every
411
+ // durable replay re-admit the LLM activity with a different input hash.
412
+ "control",
413
+ "durability",
414
+ "executionInfo",
415
+ ]);
416
+ const result = {};
417
+ for (const [key, value] of Object.entries(options)) {
418
+ if (!known.has(key) && value !== undefined)
419
+ result[key] = value;
420
+ }
421
+ return result;
422
+ }
423
+ //# sourceMappingURL=secure_llm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secure_llm.js","sourceRoot":"","sources":["../src/secure_llm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /** Select native or durable LangGraph execution once per invoke or stream. */
2
+ import type { CompiledStateGraph } from "@langchain/langgraph";
3
+ import type { AgentInput, RequestContext } from "@mongodb-js/agent-engine-sdk";
4
+ import { type ExecutionSession, type SessionOptions } from "./execution_session.js";
5
+ export declare function executionSession(graph: CompiledStateGraph<unknown, unknown>, ctx: RequestContext, input: AgentInput, options: SessionOptions): ExecutionSession;
6
+ //# sourceMappingURL=session_factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session_factory.d.ts","sourceRoot":"","sources":["../src/session_factory.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAE9E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAQ/E,OAAO,EACL,KAAK,gBAAgB,EAGrB,KAAK,cAAc,EACpB,MAAM,wBAAwB,CAAC;AAkChC,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,EAC3C,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,cAAc,GACtB,gBAAgB,CAWlB"}
@@ -0,0 +1,29 @@
1
+ /** Select native or durable LangGraph execution once per invoke or stream. */
2
+ import { currentAttemptContext, } from "@mongodb-js/agent-engine-runner-shared";
3
+ import { branchPointFromMetadata } from "./checkpoint_branch.js";
4
+ import { DurableSession } from "./durable_session.js";
5
+ import { explicitCheckpointId, NativeSession, } from "./execution_session.js";
6
+ import { PlatformCheckpointer, requireDurableExecutionId, UnsupportedDurableGraphError, } from "./platform_checkpointer.js";
7
+ function validateDurableExecution(graph, ctx, attempt) {
8
+ const checkpointer = graph.checkpointer;
9
+ if (!(checkpointer instanceof PlatformCheckpointer)) {
10
+ throw new UnsupportedDurableGraphError("durable execution requires the platform checkpointer");
11
+ }
12
+ const executionId = requireDurableExecutionId(attempt);
13
+ if (attempt.replayMode !== true) {
14
+ if (explicitCheckpointId(ctx) !== undefined) {
15
+ throw new UnsupportedDurableGraphError("explicit checkpoint targeting is not supported on durable_workflow sessions");
16
+ }
17
+ if (branchPointFromMetadata(ctx.metadata) !== undefined) {
18
+ throw new UnsupportedDurableGraphError("checkpoint branching is not supported on durable_workflow sessions");
19
+ }
20
+ }
21
+ return { attempt, checkpointer, executionId };
22
+ }
23
+ export function executionSession(graph, ctx, input, options) {
24
+ const attempt = currentAttemptContext();
25
+ return attempt === null
26
+ ? new NativeSession(graph, ctx, input, options)
27
+ : new DurableSession(graph, ctx, input, options, validateDurableExecution(graph, ctx, attempt));
28
+ }
29
+ //# sourceMappingURL=session_factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session_factory.js","sourceRoot":"","sources":["../src/session_factory.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAI9E,OAAO,EACL,qBAAqB,GAEtB,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAyB,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAEL,oBAAoB,EACpB,aAAa,GAEd,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,oBAAoB,EACpB,yBAAyB,EACzB,4BAA4B,GAC7B,MAAM,4BAA4B,CAAC;AAEpC,SAAS,wBAAwB,CAC/B,KAA2C,EAC3C,GAAmB,EACnB,OAAuB;IAEvB,MAAM,YAAY,GAAI,KAAoC,CAAC,YAAY,CAAC;IACxE,IAAI,CAAC,CAAC,YAAY,YAAY,oBAAoB,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,4BAA4B,CACpC,sDAAsD,CACvD,CAAC;IACJ,CAAC;IACD,MAAM,WAAW,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;IACvD,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QAChC,IAAI,oBAAoB,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YAC5C,MAAM,IAAI,4BAA4B,CACpC,6EAA6E,CAC9E,CAAC;QACJ,CAAC;QACD,IAAI,uBAAuB,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE,CAAC;YACxD,MAAM,IAAI,4BAA4B,CACpC,oEAAoE,CACrE,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,KAA2C,EAC3C,GAAmB,EACnB,KAAiB,EACjB,OAAuB;IAEvB,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;IACxC,OAAO,OAAO,KAAK,IAAI;QACrB,CAAC,CAAC,IAAI,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC;QAC/C,CAAC,CAAC,IAAI,cAAc,CAChB,KAAK,EACL,GAAG,EACH,KAAK,EACL,OAAO,EACP,wBAAwB,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,CAC9C,CAAC;AACR,CAAC"}