managed-deepagents 0.6.2-dev.4 → 0.6.2-dev.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -3
- package/dist/agent-auth.d.ts +141 -0
- package/dist/agent-auth.d.ts.map +1 -0
- package/dist/agent-auth.js +426 -0
- package/dist/agent-auth.js.map +1 -0
- package/dist/channels/manifest.d.ts +4 -0
- package/dist/channels/manifest.d.ts.map +1 -1
- package/dist/channels/schedule-delivery.d.ts +2 -0
- package/dist/channels/schedule-delivery.d.ts.map +1 -1
- package/dist/channels/schedule-delivery.js +40 -4
- package/dist/channels/schedule-delivery.js.map +1 -1
- package/dist/channels/trigger/client.d.ts +1 -0
- package/dist/channels/trigger/client.d.ts.map +1 -1
- package/dist/channels/trigger/client.js +19 -8
- package/dist/channels/trigger/client.js.map +1 -1
- package/dist/channels/trigger/http.d.ts +8 -0
- package/dist/channels/trigger/http.d.ts.map +1 -1
- package/dist/channels/trigger/http.js +42 -1
- package/dist/channels/trigger/http.js.map +1 -1
- package/dist/channels/trigger/identity-context.d.ts +47 -0
- package/dist/channels/trigger/identity-context.d.ts.map +1 -0
- package/dist/channels/trigger/identity-context.js +171 -0
- package/dist/channels/trigger/identity-context.js.map +1 -0
- package/dist/channels/trigger/types.d.ts +5 -1
- package/dist/channels/trigger/types.d.ts.map +1 -1
- package/dist/channels/trigger/types.js +5 -0
- package/dist/channels/trigger/types.js.map +1 -1
- package/dist/connections.d.ts +74 -0
- package/dist/connections.d.ts.map +1 -0
- package/dist/connections.js +277 -0
- package/dist/connections.js.map +1 -0
- package/dist/connectors/mcp/index.d.ts +29 -89
- package/dist/connectors/mcp/index.d.ts.map +1 -1
- package/dist/connectors/mcp/index.js +258 -50
- package/dist/connectors/mcp/index.js.map +1 -1
- package/dist/connectors/mcp/schema.d.ts +12 -0
- package/dist/connectors/mcp/schema.d.ts.map +1 -0
- package/dist/connectors/mcp/schema.js +57 -0
- package/dist/connectors/mcp/schema.js.map +1 -0
- package/dist/connectors/mcp/types.d.ts +62 -0
- package/dist/connectors/mcp/types.d.ts.map +1 -0
- package/dist/connectors/mcp/types.js +2 -0
- package/dist/connectors/mcp/types.js.map +1 -0
- package/dist/connectors/tool-selection.d.ts +9 -18
- package/dist/connectors/tool-selection.d.ts.map +1 -1
- package/dist/connectors/tool-selection.js +32 -58
- package/dist/connectors/tool-selection.js.map +1 -1
- package/dist/credential-gate.d.ts +40 -0
- package/dist/credential-gate.d.ts.map +1 -0
- package/dist/credential-gate.js +227 -0
- package/dist/credential-gate.js.map +1 -0
- package/dist/identity/index.d.ts +1 -1
- package/dist/identity/index.d.ts.map +1 -1
- package/dist/identity/index.js.map +1 -1
- package/dist/identity/types.d.ts +79 -5
- package/dist/identity/types.d.ts.map +1 -1
- package/dist/index.d.ts +11 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/ingress/index.d.ts +10 -2
- package/dist/ingress/index.d.ts.map +1 -1
- package/dist/ingress/index.js +17 -9
- package/dist/ingress/index.js.map +1 -1
- package/dist/runtime/auth.d.ts +49 -5
- package/dist/runtime/auth.d.ts.map +1 -1
- package/dist/runtime/auth.js +100 -5
- package/dist/runtime/auth.js.map +1 -1
- package/dist/runtime/http.d.ts +1 -1
- package/dist/runtime/http.d.ts.map +1 -1
- package/dist/runtime/http.js.map +1 -1
- package/dist/runtime/identity-runtime.d.ts +65 -5
- package/dist/runtime/identity-runtime.d.ts.map +1 -1
- package/dist/runtime/identity-runtime.js +148 -0
- package/dist/runtime/identity-runtime.js.map +1 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +12 -7
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/managed-middleware.d.ts +2 -2
- package/dist/runtime/managed-middleware.js +6 -6
- package/dist/runtime/managed-tools.d.ts +19 -15
- package/dist/runtime/managed-tools.d.ts.map +1 -1
- package/dist/runtime/managed-tools.js +14 -13
- package/dist/runtime/managed-tools.js.map +1 -1
- package/dist/runtime/types.d.ts +2 -2
- package/package.json +8 -8
- package/dist/connectors/mcp/load.d.ts +0 -12
- package/dist/connectors/mcp/load.d.ts.map +0 -1
- package/dist/connectors/mcp/load.js +0 -122
- package/dist/connectors/mcp/load.js.map +0 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { getConfig } from "@langchain/langgraph";
|
|
2
2
|
import { trustedChannelSourceProviders } from "../channels/registry-store.js";
|
|
3
|
+
import { normalizeGroups, } from "../identity/index.js";
|
|
3
4
|
/**
|
|
4
5
|
* Identity fields a client must never assert via `config.configurable`; only the
|
|
5
6
|
* custom-auth handler (`langgraph_auth_user`) is trusted.
|
|
@@ -88,6 +89,10 @@ export function resolveAmbientConfigurable() {
|
|
|
88
89
|
* `langgraph_auth_user` the custom-auth handler produced. Returns
|
|
89
90
|
* `undefined` when the deployment has no resolvable user (identity is opt-in).
|
|
90
91
|
*
|
|
92
|
+
* Used by HTTP connector handlers (`resolveRequestIdentity`). Tools and
|
|
93
|
+
* middleware should use {@link buildPrincipalEnvelope} /
|
|
94
|
+
* `runtime.serverInfo.principal` instead.
|
|
95
|
+
*
|
|
91
96
|
* LangGraph Studio injects a `StudioUser` (no `mda_user_id`) when
|
|
92
97
|
* `x-auth-scheme: langsmith` is present; that maps to a service principal with
|
|
93
98
|
* `source.provider: "studio"` so user-scoped memory/credentials still resolve
|
|
@@ -141,6 +146,149 @@ function deepFreeze(value) {
|
|
|
141
146
|
}
|
|
142
147
|
return value;
|
|
143
148
|
}
|
|
149
|
+
/**
|
|
150
|
+
* Reassemble the Agent Auth wire envelope from flattened `serverInfo` fields.
|
|
151
|
+
*/
|
|
152
|
+
export function principalEnvelopeFromServerInfo(info) {
|
|
153
|
+
if (!info?.principal || !info.subject || !info.link) {
|
|
154
|
+
return undefined;
|
|
155
|
+
}
|
|
156
|
+
return deepFreeze({
|
|
157
|
+
principal: info.principal,
|
|
158
|
+
subject: info.subject,
|
|
159
|
+
link: info.link,
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Resolve the trusted auth user for `runtime.serverInfo.user`. Returns
|
|
164
|
+
* `undefined` when the deployment has no resolvable caller (identity is opt-in).
|
|
165
|
+
*/
|
|
166
|
+
export function resolveAuthUser(configurable) {
|
|
167
|
+
const user = configurable?.langgraph_auth_user;
|
|
168
|
+
const studio = isStudioAuthUser(user);
|
|
169
|
+
const userId = user?.mda_user_id ?? (studio ? user?.identity : undefined);
|
|
170
|
+
if (!user || !userId) {
|
|
171
|
+
return undefined;
|
|
172
|
+
}
|
|
173
|
+
return deepFreeze({
|
|
174
|
+
...user,
|
|
175
|
+
identity: typeof user.identity === "string" && user.identity.trim().length > 0
|
|
176
|
+
? user.identity
|
|
177
|
+
: String(userId),
|
|
178
|
+
permissions: Array.isArray(user.permissions) ? user.permissions : [],
|
|
179
|
+
mda_user_id: String(user.mda_user_id ?? userId),
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Project trusted auth stamps into an Agent Auth–aligned
|
|
184
|
+
* {@link PrincipalEnvelope}. Returns `undefined` when no caller resolved.
|
|
185
|
+
*
|
|
186
|
+
* Today this is built from `langgraph_auth_user`; later Agent Auth
|
|
187
|
+
* `resolve-principal` can supply the same shape directly.
|
|
188
|
+
*/
|
|
189
|
+
export function buildPrincipalEnvelope(configurable, agentId = "") {
|
|
190
|
+
const user = configurable?.langgraph_auth_user;
|
|
191
|
+
const studio = isStudioAuthUser(user);
|
|
192
|
+
const userId = user?.mda_user_id ?? (studio ? user?.identity : undefined);
|
|
193
|
+
if (!user || !userId) {
|
|
194
|
+
return undefined;
|
|
195
|
+
}
|
|
196
|
+
const isService = studio || user.mda_user_kind === "service";
|
|
197
|
+
const kind = isService ? "service" : "person";
|
|
198
|
+
const authority = isService ? "agent" : "user";
|
|
199
|
+
const envelope = {
|
|
200
|
+
principal: {
|
|
201
|
+
id: String(userId),
|
|
202
|
+
kind,
|
|
203
|
+
claims: principalClaims(user),
|
|
204
|
+
},
|
|
205
|
+
subject: {
|
|
206
|
+
authority,
|
|
207
|
+
...(agentId ? { agent_id: agentId } : {}),
|
|
208
|
+
...(authority === "user" ? { user_id: String(userId) } : {}),
|
|
209
|
+
},
|
|
210
|
+
link: { status: "not_required" },
|
|
211
|
+
};
|
|
212
|
+
return deepFreeze(envelope);
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Build the caller's claim bag, normalizing the two claims MDA names.
|
|
216
|
+
*
|
|
217
|
+
* `mda_groups` / `mda_user_email` are already normalized, but they are only
|
|
218
|
+
* stamped when the deployment mapped those claims — mapping both is optional.
|
|
219
|
+
* The raw token payload sits in `mda_claims` and can carry a `groups` or
|
|
220
|
+
* `email` of any shape, so normalize whatever survives and drop it when it
|
|
221
|
+
* does not normalize. Otherwise {@link PrincipalClaims} would promise a string
|
|
222
|
+
* array on a deployment that never mapped `groups` and hand back the delimited
|
|
223
|
+
* string the IdP sent.
|
|
224
|
+
*/
|
|
225
|
+
function principalClaims(user) {
|
|
226
|
+
const claims = {
|
|
227
|
+
...(user.mda_claims && typeof user.mda_claims === "object"
|
|
228
|
+
? user.mda_claims
|
|
229
|
+
: {}),
|
|
230
|
+
};
|
|
231
|
+
const groups = normalizeGroups(user.mda_groups ?? claims.groups);
|
|
232
|
+
if (groups.length > 0) {
|
|
233
|
+
claims.groups = groups;
|
|
234
|
+
}
|
|
235
|
+
else {
|
|
236
|
+
delete claims.groups;
|
|
237
|
+
}
|
|
238
|
+
const email = user.mda_user_email ?? claims.email;
|
|
239
|
+
if (typeof email === "string" && email.length > 0) {
|
|
240
|
+
claims.email = email;
|
|
241
|
+
}
|
|
242
|
+
else {
|
|
243
|
+
delete claims.email;
|
|
244
|
+
}
|
|
245
|
+
return claims;
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Build LangGraph `serverInfo` with the trusted auth user, principal envelope,
|
|
249
|
+
* and ingress source. Preserves platform `assistantId` / `graphId` when present
|
|
250
|
+
* and omits them otherwise, rather than reporting an empty id as a real one.
|
|
251
|
+
*/
|
|
252
|
+
export function buildManagedServerInfo(runtime, configurable) {
|
|
253
|
+
const user = resolveAuthUser(configurable);
|
|
254
|
+
if (!user) {
|
|
255
|
+
return undefined;
|
|
256
|
+
}
|
|
257
|
+
const existing = runtime?.serverInfo ?? runtime?.config?.serverInfo;
|
|
258
|
+
const assistantId = typeof existing?.assistantId === "string" && existing.assistantId
|
|
259
|
+
? existing.assistantId
|
|
260
|
+
: undefined;
|
|
261
|
+
const graphId = typeof existing?.graphId === "string" && existing.graphId
|
|
262
|
+
? existing.graphId
|
|
263
|
+
: undefined;
|
|
264
|
+
const agentId = assistantId ?? graphId ?? "";
|
|
265
|
+
const envelope = buildPrincipalEnvelope(configurable, agentId);
|
|
266
|
+
return deepFreeze({
|
|
267
|
+
...(assistantId ? { assistantId } : {}),
|
|
268
|
+
...(graphId ? { graphId } : {}),
|
|
269
|
+
...(envelope
|
|
270
|
+
? {
|
|
271
|
+
principal: envelope.principal,
|
|
272
|
+
subject: envelope.subject,
|
|
273
|
+
link: envelope.link,
|
|
274
|
+
}
|
|
275
|
+
: {}),
|
|
276
|
+
source: buildIdentitySource(configurable),
|
|
277
|
+
user,
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Resolve the ingress source for `serverInfo.source` from the trusted stamps,
|
|
282
|
+
* so authors do not have to read `serverInfo.user.mda_source_provider`.
|
|
283
|
+
*/
|
|
284
|
+
export function buildIdentitySource(configurable) {
|
|
285
|
+
const user = configurable?.langgraph_auth_user;
|
|
286
|
+
const thread = threadId(configurable);
|
|
287
|
+
return {
|
|
288
|
+
provider: isStudioAuthUser(user) ? "studio" : sourceProvider(configurable),
|
|
289
|
+
...(thread ? { threadId: thread } : {}),
|
|
290
|
+
};
|
|
291
|
+
}
|
|
144
292
|
/**
|
|
145
293
|
* Strip client-supplied identity keys from an incoming `configurable` so a
|
|
146
294
|
* request body can never spoof the user the handler resolved. The platform-set
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity-runtime.js","sourceRoot":"","sources":["../../src/runtime/identity-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"identity-runtime.js","sourceRoot":"","sources":["../../src/runtime/identity-runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAgCvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAExE,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACxE,OAAO,EAAE,gCAAgC,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,EACL,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAIzD,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,WAAW,EACX,kBAAkB,EAClB,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,SAAS,EACT,qBAAqB,EACrB,uBAAuB,EACvB,iBAAiB,EACjB,yBAAyB,EACzB,aAAa,EACb,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,WAAW,GACZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,aAAa,EACb,eAAe,EACf,SAAS,EACT,wBAAwB,GACzB,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,OAAO,EACP,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,mBAAmB,EAC/B,MAAM,CAAC,EAAE,gBAAgB,EACzB,OAAO,CAAC,EAAE,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2YA0J9B;AAED,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAC9C,mBAAmB,EACnB,aAAa,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,CACnD;IACC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,0BAA0B,CAC9C,UAAU,EAAE,mBAAmB,EAC/B,MAAM,CAAC,EAAE,gBAAgB,EACzB,OAAO,CAAC,EAAE,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2YAsB7B"}
|
package/dist/runtime/index.js
CHANGED
|
@@ -3,6 +3,8 @@ import { LazyManagedSandboxBackend } from "./backend.js";
|
|
|
3
3
|
import { loadConnectorTools } from "./connector.js";
|
|
4
4
|
import { createScheduleDeliveryMiddleware } from "../channels/schedule-delivery.js";
|
|
5
5
|
import { createChannelResponseFormatMiddleware } from "../channels/response-format.js";
|
|
6
|
+
import { createCredentialGateMiddleware } from "../credential-gate.js";
|
|
7
|
+
import { mcpCredentialConsumers } from "../connectors/mcp/index.js";
|
|
6
8
|
import { wrapMiddlewareWithManagedRuntime, } from "./managed-middleware.js";
|
|
7
9
|
import { wrapToolsWithManagedRuntime, } from "./managed-tools.js";
|
|
8
10
|
import { createMemoryInstructionsMiddleware, hasAgentMemorySlice, hotMemoryPaths, } from "../memory/index.js";
|
|
@@ -32,8 +34,8 @@ export async function compileManagedAgent(definition, config, options) {
|
|
|
32
34
|
// one object, but mounting is owned by the managed HTTP app — leave it on
|
|
33
35
|
// `options` unused here.
|
|
34
36
|
// Resolution + thread/store scoping run in the generated custom-auth handler
|
|
35
|
-
// (`buildManagedAuth`). When identity is declared, the seam also surfaces
|
|
36
|
-
//
|
|
37
|
+
// (`buildManagedAuth`). When identity is declared, the seam also surfaces
|
|
38
|
+
// `runtime.serverInfo.principal` to authored + connector tools (below).
|
|
37
39
|
identity,
|
|
38
40
|
// The root `memory.{ts,py}` declaration. Absent → no durable memory: the
|
|
39
41
|
// slices a run mounts come from here and nowhere else.
|
|
@@ -108,15 +110,14 @@ export async function compileManagedAgent(definition, config, options) {
|
|
|
108
110
|
const authoredTools = Array.isArray(params.tools) ? params.tools : [];
|
|
109
111
|
params.tools = [...authoredTools, ...connectorTools];
|
|
110
112
|
}
|
|
111
|
-
// With identity declared, surface
|
|
112
|
-
//
|
|
113
|
-
// `langgraph_auth_user`.
|
|
113
|
+
// With identity declared, surface `runtime.serverInfo.principal` on the runtime
|
|
114
|
+
// every tool receives, projected from the trusted `langgraph_auth_user`.
|
|
114
115
|
if (identity && Array.isArray(params.tools)) {
|
|
115
116
|
params.tools = wrapToolsWithManagedRuntime(params.tools);
|
|
116
117
|
}
|
|
117
118
|
// Do the same for authored middleware: each hook's `runtime` (and the `wrap*`
|
|
118
|
-
// hooks' `request.runtime`) gains `runtime.
|
|
119
|
-
// trusted `langgraph_auth_user` on `runtime.configurable`.
|
|
119
|
+
// hooks' `request.runtime`) gains `runtime.serverInfo.principal`, built from the
|
|
120
|
+
// same trusted `langgraph_auth_user` on `runtime.configurable`.
|
|
120
121
|
const authoredMiddleware = Array.isArray(params.middleware)
|
|
121
122
|
? params.middleware
|
|
122
123
|
: [];
|
|
@@ -124,14 +125,18 @@ export async function compileManagedAgent(definition, config, options) {
|
|
|
124
125
|
? wrapMiddlewareWithManagedRuntime(authoredMiddleware)
|
|
125
126
|
: authoredMiddleware;
|
|
126
127
|
// Always-on schedule deliverTo auto-post (cron runs); prepend before authored.
|
|
128
|
+
// The credential gate runs early so OAuth interrupts happen before the model
|
|
129
|
+
// turn; it only installs when a declaration names a user-owned credential.
|
|
127
130
|
// The memory policy goes last on purpose. First in this list is outermost, so a
|
|
128
131
|
// middleware placed earlier can have its prompt replaced by an authored one that
|
|
129
132
|
// rewrites `systemPrompt` wholesale — and this policy is a security control, not a
|
|
130
133
|
// hint. Last means nothing authored runs after it. deepagents still appends its own
|
|
131
134
|
// `<agent_memory>` block after the whole custom stack, so the policy's "block below"
|
|
132
135
|
// wording stays accurate.
|
|
136
|
+
const credentialGate = createCredentialGateMiddleware(mcpCredentialConsumers(connectors));
|
|
133
137
|
params.middleware = [
|
|
134
138
|
createScheduleDeliveryMiddleware(),
|
|
139
|
+
...(credentialGate ? [credentialGate] : []),
|
|
135
140
|
...wrappedAuthored,
|
|
136
141
|
createChannelResponseFormatMiddleware(),
|
|
137
142
|
...(mountsMemory ? [createMemoryInstructionsMiddleware()] : []),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,GAChB,MAAM,YAAY,CAAC;AAIpB,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,gCAAgC,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAAE,qCAAqC,EAAE,MAAM,gCAAgC,CAAC;AACvF,OAAO,EAEL,gCAAgC,GACjC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,kCAAkC,EAClC,mBAAmB,EACnB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,MAAM,EACN,mBAAmB,EACnB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gCAAgC,EAAE,MAAM,sBAAsB,CAAC;AACxE,OAAO,EACL,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,gCAAgC,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,EACL,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,0EAA0E;AAC1E,gFAAgF;AAChF,wBAAwB;AACxB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,WAAW,EACX,kBAAkB,EAClB,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AAgBxB,OAAO,EACL,aAAa,EACb,eAAe,EACf,SAAS,EACT,wBAAwB,GACzB,MAAM,cAAc,CAAC;AAStB;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,UAA+B,EAC/B,MAAyB,EACzB,OAA6B;IAE7B,MAAM,EACJ,WAAW,EACX,WAAW,EACX,YAAY,EACZ,SAAS,GAAG,KAAK,EACjB,OAAO,EACP,UAAU;IACV,4EAA4E;IAC5E,0EAA0E;IAC1E,yBAAyB;IACzB,6EAA6E;IAC7E,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,8 +7,8 @@ export interface ManagedMiddleware {
|
|
|
7
7
|
[key: string]: unknown;
|
|
8
8
|
}
|
|
9
9
|
/**
|
|
10
|
-
* Wrap a middleware so every hook sees `runtime.
|
|
11
|
-
* its name, schema, registered tools, or class.
|
|
10
|
+
* Wrap a middleware so every hook sees `runtime.serverInfo.principal` (…) without
|
|
11
|
+
* changing its name, schema, registered tools, or class.
|
|
12
12
|
*
|
|
13
13
|
* A `Proxy` intercepts only the hook properties: lifecycle hooks
|
|
14
14
|
* (`beforeAgent`/`beforeModel`/`afterModel`/`afterAgent`, in either function or
|
|
@@ -10,10 +10,10 @@ const LIFECYCLE_HOOKS = new Set([
|
|
|
10
10
|
const WRAP_HOOKS = new Set(["wrapModelCall", "wrapToolCall"]);
|
|
11
11
|
/**
|
|
12
12
|
* Return a copy of the middleware runtime with the managed primitives
|
|
13
|
-
* (`runtime.
|
|
14
|
-
* `runtime.configurable.langgraph_auth_user` the custom-auth handler
|
|
15
|
-
* the same channel tools use — since the platform, not us, invokes the
|
|
16
|
-
* `runtime.context` is caller-supplied per-run data we do not control.
|
|
13
|
+
* (`runtime.serverInfo.principal`, …) layered on. The envelope is projected from
|
|
14
|
+
* the trusted `runtime.configurable.langgraph_auth_user` the custom-auth handler
|
|
15
|
+
* produced — the same channel tools use — since the platform, not us, invokes the
|
|
16
|
+
* graph and `runtime.context` is caller-supplied per-run data we do not control.
|
|
17
17
|
*/
|
|
18
18
|
function augmentRuntime(runtime) {
|
|
19
19
|
const overrides = managedRuntimeOverrides(runtime);
|
|
@@ -41,8 +41,8 @@ function wrapWrapHook(target, value) {
|
|
|
41
41
|
return (request, handler) => fn.call(target, { ...request, runtime: augmentRuntime(request?.runtime) }, handler);
|
|
42
42
|
}
|
|
43
43
|
/**
|
|
44
|
-
* Wrap a middleware so every hook sees `runtime.
|
|
45
|
-
* its name, schema, registered tools, or class.
|
|
44
|
+
* Wrap a middleware so every hook sees `runtime.serverInfo.principal` (…) without
|
|
45
|
+
* changing its name, schema, registered tools, or class.
|
|
46
46
|
*
|
|
47
47
|
* A `Proxy` intercepts only the hook properties: lifecycle hooks
|
|
48
48
|
* (`beforeAgent`/`beforeModel`/`afterModel`/`afterAgent`, in either function or
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import type { ToolRuntime } from "@langchain/core/tools";
|
|
2
|
-
import type { RuntimeIdentity } from "../identity/index.js";
|
|
3
2
|
import type { RuntimeChannel } from "../channels/types.js";
|
|
4
|
-
import type { RuntimeConfigLike } from "./identity-runtime.js";
|
|
5
|
-
export type { RuntimeConfigLike } from "./identity-runtime.js";
|
|
3
|
+
import type { ManagedServerInfo, RuntimeConfigLike } from "./identity-runtime.js";
|
|
4
|
+
export type { ManagedServerInfo, RuntimeConfigLike, } from "./identity-runtime.js";
|
|
6
5
|
/**
|
|
7
6
|
* A LangChain/LangGraph tool from MDA's perspective: the only surface the runtime
|
|
8
7
|
* seam touches is `invoke(input, runtime)`. Kept structural so the wrapper works
|
|
@@ -13,7 +12,11 @@ export interface InvokableTool {
|
|
|
13
12
|
}
|
|
14
13
|
/** The managed primitives MDA layers onto the tool runtime. */
|
|
15
14
|
export interface ManagedRuntimeExtras {
|
|
16
|
-
|
|
15
|
+
/**
|
|
16
|
+
* LangGraph server metadata with the author-facing principal on `principal`
|
|
17
|
+
* (plus `subject` / `link`) and LangGraph AuthUser on `user`.
|
|
18
|
+
*/
|
|
19
|
+
serverInfo?: ManagedServerInfo;
|
|
17
20
|
/**
|
|
18
21
|
* Present only for channel-originated runs. Ordinary HTTP and schedule runs
|
|
19
22
|
* leave this undefined.
|
|
@@ -22,31 +25,32 @@ export interface ManagedRuntimeExtras {
|
|
|
22
25
|
}
|
|
23
26
|
/**
|
|
24
27
|
* The runtime surface managed Deep Agent tools receive: LangGraph's
|
|
25
|
-
* {@link ToolRuntime} plus MDA-managed primitives such as `
|
|
28
|
+
* {@link ToolRuntime} plus MDA-managed primitives such as `serverInfo`.
|
|
26
29
|
*
|
|
27
30
|
* Annotate the second parameter of a `tool(...)` handler when you need the
|
|
28
|
-
*
|
|
31
|
+
* trusted caller for the current run (`runtime.serverInfo?.principal`).
|
|
29
32
|
*/
|
|
30
33
|
export interface ManagedDeepAgentRuntime<TState = unknown, TContext = unknown> extends ToolRuntime<TState, TContext>, ManagedRuntimeExtras {
|
|
31
34
|
}
|
|
32
35
|
/**
|
|
33
36
|
* The fields MDA overlays onto the runtime a tool/middleware hook receives:
|
|
34
|
-
*
|
|
35
|
-
* reserved identity keys stripped so downstream code
|
|
36
|
-
* client-spoofed `actor_id`/`tenant_id`. Returns an empty object
|
|
37
|
-
* nothing to change, so the original runtime passes through
|
|
37
|
+
* `serverInfo.principal` / `subject` / `link` (when an actor resolved) and a
|
|
38
|
+
* `configurable` with the reserved identity keys stripped so downstream code
|
|
39
|
+
* can't read a client-spoofed `actor_id`/`tenant_id`. Returns an empty object
|
|
40
|
+
* when there is nothing to change, so the original runtime passes through
|
|
41
|
+
* untouched.
|
|
38
42
|
*/
|
|
39
43
|
export declare function managedRuntimeOverrides(runtime: RuntimeConfigLike | undefined): ManagedRuntimeExtras & {
|
|
40
44
|
configurable?: Record<string, unknown>;
|
|
41
45
|
};
|
|
42
46
|
/**
|
|
43
|
-
* Wrap a tool so its runtime carries the managed primitives
|
|
44
|
-
* …) without changing its name, schema, or class.
|
|
47
|
+
* Wrap a tool so its runtime carries the managed primitives
|
|
48
|
+
* (`runtime.serverInfo.principal`, …) without changing its name, schema, or class.
|
|
45
49
|
*
|
|
46
50
|
* Augments `invoke` (for LangGraph's `ToolNode`) and patches a shallow copy's
|
|
47
|
-
* internal `func`/`coroutine` so
|
|
48
|
-
* LangChain rewrites the runtime into a RunnableConfig before calling the
|
|
49
|
-
* function. The original tool instance is left untouched.
|
|
51
|
+
* internal `func`/`coroutine` so the auth user reaches the authored handler even
|
|
52
|
+
* when LangChain rewrites the runtime into a RunnableConfig before calling the
|
|
53
|
+
* tool function. The original tool instance is left untouched.
|
|
50
54
|
*/
|
|
51
55
|
export declare function withManagedRuntime<T extends InvokableTool>(managedTool: T): T;
|
|
52
56
|
/** Wrap every tool in a list with {@link withManagedRuntime}. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"managed-tools.d.ts","sourceRoot":"","sources":["../../src/runtime/managed-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"managed-tools.d.ts","sourceRoot":"","sources":["../../src/runtime/managed-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAM3D,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EACV,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAE/B;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC;CAC9D;AAED,+DAA+D;AAC/D,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B;;;OAGG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,uBAAuB,CAAC,MAAM,GAAG,OAAO,EAAE,QAAQ,GAAG,OAAO,CAC3E,SAAQ,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,oBAAoB;CAAG;AAEhE;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,iBAAiB,GAAG,SAAS,GACrC,oBAAoB,GAAG;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAmCnE;AAwBD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,aAAa,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC,CAqC7E;AAED,iEAAiE;AACjE,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,aAAa,EACjE,KAAK,EAAE,SAAS,CAAC,EAAE,GAClB,CAAC,EAAE,CAEL"}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import { resolveRuntimeChannel } from "../channels/binding.js";
|
|
2
|
-
import {
|
|
2
|
+
import { buildManagedServerInfo, resolveRuntimeConfigurable, sanitizeConfigurable, } from "./identity-runtime.js";
|
|
3
3
|
/**
|
|
4
4
|
* The fields MDA overlays onto the runtime a tool/middleware hook receives:
|
|
5
|
-
*
|
|
6
|
-
* reserved identity keys stripped so downstream code
|
|
7
|
-
* client-spoofed `actor_id`/`tenant_id`. Returns an empty object
|
|
8
|
-
* nothing to change, so the original runtime passes through
|
|
5
|
+
* `serverInfo.principal` / `subject` / `link` (when an actor resolved) and a
|
|
6
|
+
* `configurable` with the reserved identity keys stripped so downstream code
|
|
7
|
+
* can't read a client-spoofed `actor_id`/`tenant_id`. Returns an empty object
|
|
8
|
+
* when there is nothing to change, so the original runtime passes through
|
|
9
|
+
* untouched.
|
|
9
10
|
*/
|
|
10
11
|
export function managedRuntimeOverrides(runtime) {
|
|
11
12
|
const overrides = {};
|
|
12
13
|
const configurable = resolveRuntimeConfigurable(runtime);
|
|
13
|
-
const
|
|
14
|
-
if (
|
|
15
|
-
overrides.
|
|
14
|
+
const serverInfo = buildManagedServerInfo(runtime, configurable);
|
|
15
|
+
if (serverInfo) {
|
|
16
|
+
overrides.serverInfo = serverInfo;
|
|
16
17
|
}
|
|
17
18
|
if (runtime?.channel) {
|
|
18
19
|
overrides.channel = runtime.channel;
|
|
@@ -49,13 +50,13 @@ function wrapToolCallable(original, receiver) {
|
|
|
49
50
|
return (input, runManager, config) => original.call(receiver, input, runManager, augmentToolConfig(config));
|
|
50
51
|
}
|
|
51
52
|
/**
|
|
52
|
-
* Wrap a tool so its runtime carries the managed primitives
|
|
53
|
-
* …) without changing its name, schema, or class.
|
|
53
|
+
* Wrap a tool so its runtime carries the managed primitives
|
|
54
|
+
* (`runtime.serverInfo.principal`, …) without changing its name, schema, or class.
|
|
54
55
|
*
|
|
55
56
|
* Augments `invoke` (for LangGraph's `ToolNode`) and patches a shallow copy's
|
|
56
|
-
* internal `func`/`coroutine` so
|
|
57
|
-
* LangChain rewrites the runtime into a RunnableConfig before calling the
|
|
58
|
-
* function. The original tool instance is left untouched.
|
|
57
|
+
* internal `func`/`coroutine` so the auth user reaches the authored handler even
|
|
58
|
+
* when LangChain rewrites the runtime into a RunnableConfig before calling the
|
|
59
|
+
* tool function. The original tool instance is left untouched.
|
|
59
60
|
*/
|
|
60
61
|
export function withManagedRuntime(managedTool) {
|
|
61
62
|
const patchable = Object.assign(Object.create(Object.getPrototypeOf(managedTool)), managedTool);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"managed-tools.js","sourceRoot":"","sources":["../../src/runtime/managed-tools.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"managed-tools.js","sourceRoot":"","sources":["../../src/runtime/managed-tools.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/types.d.ts
CHANGED
|
@@ -61,8 +61,8 @@ export interface ManagedAgentOptions {
|
|
|
61
61
|
/**
|
|
62
62
|
* The root `identity.ts` declaration, if the project opts into managed
|
|
63
63
|
* identity. Resolution + thread scoping run in the generated custom-auth
|
|
64
|
-
* handler (`buildManagedAuth`); this seam reserves the declaration for
|
|
65
|
-
*
|
|
64
|
+
* handler (`buildManagedAuth`); this seam reserves the declaration for
|
|
65
|
+
* `runtime.serverInfo.principal` and memory namespacing.
|
|
66
66
|
*/
|
|
67
67
|
identity?: IdentityDefinition;
|
|
68
68
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "managed-deepagents",
|
|
3
|
-
"version": "0.6.2-dev.
|
|
3
|
+
"version": "0.6.2-dev.41",
|
|
4
4
|
"description": "Managed Deep Agents — the `defineDeepAgent` authoring interface plus the CLI that compiles and deploys a code-first Deep Agent repository to a managed LangGraph runtime.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"langchain",
|
|
@@ -66,16 +66,16 @@
|
|
|
66
66
|
"zod": "^4.4.3"
|
|
67
67
|
},
|
|
68
68
|
"optionalDependencies": {
|
|
69
|
-
"@langchain/managed-deepagents-darwin-arm64": "0.6.2-dev.
|
|
70
|
-
"@langchain/managed-deepagents-darwin-x64": "0.6.2-dev.
|
|
71
|
-
"@langchain/managed-deepagents-linux-arm64": "0.6.2-dev.
|
|
72
|
-
"@langchain/managed-deepagents-linux-x64": "0.6.2-dev.
|
|
73
|
-
"@langchain/managed-deepagents-win32-arm64": "0.6.2-dev.
|
|
74
|
-
"@langchain/managed-deepagents-win32-x64": "0.6.2-dev.
|
|
69
|
+
"@langchain/managed-deepagents-darwin-arm64": "0.6.2-dev.41",
|
|
70
|
+
"@langchain/managed-deepagents-darwin-x64": "0.6.2-dev.41",
|
|
71
|
+
"@langchain/managed-deepagents-linux-arm64": "0.6.2-dev.41",
|
|
72
|
+
"@langchain/managed-deepagents-linux-x64": "0.6.2-dev.41",
|
|
73
|
+
"@langchain/managed-deepagents-win32-arm64": "0.6.2-dev.41",
|
|
74
|
+
"@langchain/managed-deepagents-win32-x64": "0.6.2-dev.41"
|
|
75
75
|
},
|
|
76
76
|
"devDependencies": {
|
|
77
77
|
"@types/node": "^26.1.1",
|
|
78
|
-
"oxfmt": "^0.
|
|
78
|
+
"oxfmt": "^0.65.0",
|
|
79
79
|
"oxlint": "^1.75.0",
|
|
80
80
|
"typescript": "^7.0.2",
|
|
81
81
|
"vitest": "^4.1.10"
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { McpServersDefinition } from "./index.js";
|
|
2
|
-
/**
|
|
3
|
-
* Load (and cache) the MCP tools for one connector declaration.
|
|
4
|
-
*
|
|
5
|
-
* A failed load is never cached, so a transient connection error on the first
|
|
6
|
-
* run can be retried on the next, but a misconfigured deployment surfaces the
|
|
7
|
-
* error rather than silently starting with no tools.
|
|
8
|
-
*/
|
|
9
|
-
export declare function loadManagedMcpTools(connectors: McpServersDefinition): Promise<unknown[]>;
|
|
10
|
-
/** Clear the process-level MCP tool cache. @internal Test-only. */
|
|
11
|
-
export declare function clearManagedMcpToolsCacheForTests(connectors?: McpServersDefinition): void;
|
|
12
|
-
//# sourceMappingURL=load.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../../src/connectors/mcp/load.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAA0B,MAAM,YAAY,CAAC;AAc/E;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,oBAAoB,GAC/B,OAAO,CAAC,OAAO,EAAE,CAAC,CAWpB;AAED,mEAAmE;AACnE,wBAAgB,iCAAiC,CAC/C,UAAU,CAAC,EAAE,oBAAoB,GAChC,IAAI,CAMN"}
|