managed-deepagents 0.0.3-dev.25 → 0.0.3-dev.29

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 (65) hide show
  1. package/dist/identity.d.ts +273 -0
  2. package/dist/identity.d.ts.map +1 -0
  3. package/dist/identity.js +358 -0
  4. package/dist/identity.js.map +1 -0
  5. package/dist/index.d.ts +3 -0
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +1 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/runtime/auth.d.ts +44 -0
  10. package/dist/runtime/auth.d.ts.map +1 -0
  11. package/dist/runtime/auth.js +168 -0
  12. package/dist/runtime/auth.js.map +1 -0
  13. package/dist/runtime/credentials.d.ts +50 -32
  14. package/dist/runtime/credentials.d.ts.map +1 -1
  15. package/dist/runtime/credentials.js +174 -57
  16. package/dist/runtime/credentials.js.map +1 -1
  17. package/dist/runtime/identity-http.d.ts +8 -0
  18. package/dist/runtime/identity-http.d.ts.map +1 -0
  19. package/dist/runtime/identity-http.js +23 -0
  20. package/dist/runtime/identity-http.js.map +1 -0
  21. package/dist/runtime/identity-runtime.d.ts +54 -0
  22. package/dist/runtime/identity-runtime.d.ts.map +1 -0
  23. package/dist/runtime/identity-runtime.js +151 -0
  24. package/dist/runtime/identity-runtime.js.map +1 -0
  25. package/dist/runtime/index.d.ts +11 -1
  26. package/dist/runtime/index.d.ts.map +1 -1
  27. package/dist/runtime/index.js +90 -69
  28. package/dist/runtime/index.js.map +1 -1
  29. package/dist/runtime/managed-middleware.d.ts +25 -0
  30. package/dist/runtime/managed-middleware.d.ts.map +1 -0
  31. package/dist/runtime/managed-middleware.js +76 -0
  32. package/dist/runtime/managed-middleware.js.map +1 -0
  33. package/dist/runtime/managed-tools.d.ts +61 -0
  34. package/dist/runtime/managed-tools.d.ts.map +1 -0
  35. package/dist/runtime/managed-tools.js +102 -0
  36. package/dist/runtime/managed-tools.js.map +1 -0
  37. package/dist/runtime/sandbox-manager.d.ts +3 -21
  38. package/dist/runtime/sandbox-manager.d.ts.map +1 -1
  39. package/dist/runtime/sandbox-manager.js +41 -125
  40. package/dist/runtime/sandbox-manager.js.map +1 -1
  41. package/dist/runtime/setup-script.d.ts +2 -4
  42. package/dist/runtime/setup-script.d.ts.map +1 -1
  43. package/dist/runtime/setup-script.js +2 -4
  44. package/dist/runtime/setup-script.js.map +1 -1
  45. package/dist/runtime/types.d.ts +21 -5
  46. package/dist/runtime/types.d.ts.map +1 -1
  47. package/dist/runtime/validated-token.d.ts +25 -0
  48. package/dist/runtime/validated-token.d.ts.map +1 -0
  49. package/dist/runtime/validated-token.js +260 -0
  50. package/dist/runtime/validated-token.js.map +1 -0
  51. package/dist/sandbox.d.ts +18 -18
  52. package/dist/sandbox.d.ts.map +1 -1
  53. package/dist/sandbox.js +37 -9
  54. package/dist/sandbox.js.map +1 -1
  55. package/dist/types.d.ts +9 -0
  56. package/dist/types.d.ts.map +1 -1
  57. package/package.json +12 -9
  58. package/dist/runtime/dev-notice.d.ts +0 -7
  59. package/dist/runtime/dev-notice.d.ts.map +0 -1
  60. package/dist/runtime/dev-notice.js +0 -27
  61. package/dist/runtime/dev-notice.js.map +0 -1
  62. package/dist/runtime/local-dev-sandbox.d.ts +0 -13
  63. package/dist/runtime/local-dev-sandbox.d.ts.map +0 -1
  64. package/dist/runtime/local-dev-sandbox.js +0 -39
  65. package/dist/runtime/local-dev-sandbox.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"managed-middleware.js","sourceRoot":"","sources":["../../src/runtime/managed-middleware.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import type { ToolRuntime } from "@langchain/core/tools";
2
+ import type { IdentityConfig, RuntimeIdentity } from "../identity.js";
3
+ import { type CredentialsProvider } from "./credentials.js";
4
+ import type { RuntimeConfigLike } from "./identity-runtime.js";
5
+ export type { RuntimeConfigLike } from "./identity-runtime.js";
6
+ /**
7
+ * A LangChain/LangGraph tool from MDA's perspective: the only surface the runtime
8
+ * seam touches is `invoke(input, runtime)`. Kept structural so the wrapper works
9
+ * across `DynamicStructuredTool`, MCP tools, and any other tool shape.
10
+ */
11
+ export interface InvokableTool {
12
+ invoke(input: unknown, runtime?: RuntimeConfigLike): unknown;
13
+ }
14
+ /** The managed primitives MDA layers onto the tool runtime. */
15
+ export interface ManagedRuntimeExtras {
16
+ identity?: RuntimeIdentity;
17
+ /**
18
+ * Per-run credential minting for custom mode (`scoping.credentials: "custom"`).
19
+ * Absent in managed/`none` modes. Call `runtime.credentials.for(target)` and
20
+ * attach the returned headers to the downstream request.
21
+ */
22
+ credentials?: CredentialsProvider;
23
+ }
24
+ /**
25
+ * The runtime surface managed Deep Agent tools receive: LangGraph's
26
+ * {@link ToolRuntime} plus MDA-managed primitives such as `identity`.
27
+ *
28
+ * Annotate the second parameter of a `tool(...)` handler when you need the
29
+ * frozen identity envelope for the current run.
30
+ */
31
+ export interface ManagedDeepAgentRuntime<TState = unknown, TContext = unknown> extends ToolRuntime<TState, TContext>, ManagedRuntimeExtras {
32
+ }
33
+ /**
34
+ * Derive the managed runtime primitives for a run from its config. Identity is
35
+ * built only from the trusted `configurable.langgraph_auth_user` the custom-auth
36
+ * handler produced — the field LangGraph propagates to every node and tool.
37
+ */
38
+ export declare function managedRuntimeExtras(runtime: RuntimeConfigLike | undefined, cfg?: IdentityConfig): ManagedRuntimeExtras;
39
+ /**
40
+ * The fields MDA overlays onto the runtime a tool/middleware hook receives:
41
+ * the frozen `identity` (when an actor resolved) and a `configurable` with the
42
+ * reserved identity keys stripped (§8) so downstream code can't read a
43
+ * client-spoofed `actor_id`/`tenant_id`. Returns an empty object when there is
44
+ * nothing to change, so the original runtime passes through untouched.
45
+ */
46
+ export declare function managedRuntimeOverrides(runtime: RuntimeConfigLike | undefined, cfg?: IdentityConfig): ManagedRuntimeExtras & {
47
+ configurable?: Record<string, unknown>;
48
+ };
49
+ /**
50
+ * Wrap a tool so its runtime carries the managed primitives (`runtime.identity`,
51
+ * …) without changing its name, schema, or class.
52
+ *
53
+ * Augments `invoke` (for LangGraph's `ToolNode`) and patches the tool's internal
54
+ * `func`/`coroutine` so identity reaches the authored handler even when LangChain
55
+ * rewrites the runtime into a RunnableConfig before calling the tool function.
56
+ * Every other property/method passes through untouched.
57
+ */
58
+ export declare function withManagedRuntime<T extends InvokableTool>(managedTool: T, cfg?: IdentityConfig): T;
59
+ /** Wrap every tool in a list with {@link withManagedRuntime}. */
60
+ export declare function wrapToolsWithManagedRuntime<T extends InvokableTool>(tools: readonly T[], cfg?: IdentityConfig): T[];
61
+ //# sourceMappingURL=managed-tools.d.ts.map
@@ -0,0 +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;AAEzD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EACL,KAAK,mBAAmB,EAEzB,MAAM,kBAAkB,CAAC;AAM1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,YAAY,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D;;;;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,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B;;;;OAIG;IACH,WAAW,CAAC,EAAE,mBAAmB,CAAC;CACnC;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;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,iBAAiB,GAAG,SAAS,EACtC,GAAG,CAAC,EAAE,cAAc,GACnB,oBAAoB,CAatB;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,iBAAiB,GAAG,SAAS,EACtC,GAAG,CAAC,EAAE,cAAc,GACnB,oBAAoB,GAAG;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CA8BnE;AA0BD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,aAAa,EACxD,WAAW,EAAE,CAAC,EACd,GAAG,CAAC,EAAE,cAAc,GACnB,CAAC,CAoCH;AAED,iEAAiE;AACjE,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,aAAa,EACjE,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,GAAG,CAAC,EAAE,cAAc,GACnB,CAAC,EAAE,CAEL"}
@@ -0,0 +1,102 @@
1
+ import { createCredentialsProvider, } from "./credentials.js";
2
+ import { buildRuntimeIdentity, resolveRuntimeConfigurable, sanitizeConfigurable, } from "./identity-runtime.js";
3
+ /**
4
+ * Derive the managed runtime primitives for a run from its config. Identity is
5
+ * built only from the trusted `configurable.langgraph_auth_user` the custom-auth
6
+ * handler produced — the field LangGraph propagates to every node and tool.
7
+ */
8
+ export function managedRuntimeExtras(runtime, cfg) {
9
+ const identity = buildRuntimeIdentity(resolveRuntimeConfigurable(runtime));
10
+ const extras = {};
11
+ if (identity) {
12
+ extras.identity = identity;
13
+ }
14
+ if (cfg) {
15
+ const credentials = createCredentialsProvider(cfg, identity);
16
+ if (credentials) {
17
+ extras.credentials = credentials;
18
+ }
19
+ }
20
+ return extras;
21
+ }
22
+ /**
23
+ * The fields MDA overlays onto the runtime a tool/middleware hook receives:
24
+ * the frozen `identity` (when an actor resolved) and a `configurable` with the
25
+ * reserved identity keys stripped (§8) so downstream code can't read a
26
+ * client-spoofed `actor_id`/`tenant_id`. Returns an empty object when there is
27
+ * nothing to change, so the original runtime passes through untouched.
28
+ */
29
+ export function managedRuntimeOverrides(runtime, cfg) {
30
+ const overrides = {};
31
+ const configurable = resolveRuntimeConfigurable(runtime);
32
+ const identity = buildRuntimeIdentity(configurable);
33
+ if (identity) {
34
+ overrides.identity = identity;
35
+ }
36
+ if (cfg) {
37
+ const credentials = createCredentialsProvider(cfg, identity);
38
+ if (credentials) {
39
+ overrides.credentials = credentials;
40
+ }
41
+ }
42
+ if (configurable) {
43
+ const sanitized = sanitizeConfigurable(configurable);
44
+ if (Object.keys(sanitized).length !== Object.keys(configurable).length) {
45
+ if (runtime?.configurable !== undefined) {
46
+ overrides.configurable = sanitized;
47
+ }
48
+ else if (runtime?.config) {
49
+ overrides.config = {
50
+ ...runtime.config,
51
+ configurable: sanitized,
52
+ };
53
+ }
54
+ }
55
+ }
56
+ return overrides;
57
+ }
58
+ function augmentToolConfig(config, cfg) {
59
+ const overrides = managedRuntimeOverrides(config, cfg);
60
+ return Object.keys(overrides).length > 0
61
+ ? { ...config, ...overrides }
62
+ : config;
63
+ }
64
+ function wrapToolCallable(original, cfg, receiver) {
65
+ return (input, runManager, config) => original.call(receiver, input, runManager, augmentToolConfig(config, cfg));
66
+ }
67
+ /**
68
+ * Wrap a tool so its runtime carries the managed primitives (`runtime.identity`,
69
+ * …) without changing its name, schema, or class.
70
+ *
71
+ * Augments `invoke` (for LangGraph's `ToolNode`) and patches the tool's internal
72
+ * `func`/`coroutine` so identity reaches the authored handler even when LangChain
73
+ * rewrites the runtime into a RunnableConfig before calling the tool function.
74
+ * Every other property/method passes through untouched.
75
+ */
76
+ export function withManagedRuntime(managedTool, cfg) {
77
+ const patchable = managedTool;
78
+ if (typeof patchable.func === "function") {
79
+ patchable.func = wrapToolCallable(patchable.func.bind(managedTool), cfg, managedTool);
80
+ }
81
+ if (typeof patchable.coroutine === "function") {
82
+ patchable.coroutine = wrapToolCallable(patchable.coroutine.bind(managedTool), cfg, managedTool);
83
+ }
84
+ return new Proxy(managedTool, {
85
+ get(target, property, receiver) {
86
+ if (property === "invoke") {
87
+ return (input, runtime) => {
88
+ const overrides = managedRuntimeOverrides(runtime, cfg);
89
+ return target.invoke(input, Object.keys(overrides).length > 0
90
+ ? { ...runtime, ...overrides }
91
+ : runtime);
92
+ };
93
+ }
94
+ return Reflect.get(target, property, receiver);
95
+ },
96
+ });
97
+ }
98
+ /** Wrap every tool in a list with {@link withManagedRuntime}. */
99
+ export function wrapToolsWithManagedRuntime(tools, cfg) {
100
+ return tools.map((managedTool) => withManagedRuntime(managedTool, cfg));
101
+ }
102
+ //# sourceMappingURL=managed-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"managed-tools.js","sourceRoot":"","sources":["../../src/runtime/managed-tools.ts"],"names":[],"mappings":"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"}
@@ -8,33 +8,15 @@ type LangSmithSandboxClientLoader = () => Promise<{
8
8
  };
9
9
  }>;
10
10
  /**
11
- * Resolve (and cache) the scoped sandbox backend for this run, provisioning it
12
- * with `setup.sh` the first time it is created.
11
+ * Resolve (and cache) the scoped LangSmith sandbox backend for this run,
12
+ * provisioning it with `setup.sh` the first time it is created.
13
13
  */
14
14
  export declare function resolveManagedSandbox(sandbox: SandboxDefinition, setupScript: string | undefined, config: ManagedRunConfig | undefined): Promise<ManagedSandboxBackend>;
15
- /**
16
- * Derive the reuse key from the run. Without runtime identity, sandboxes are
17
- * keyed by thread; with identity, by the configured tenant/actor scope.
18
- */
15
+ /** Derive the process-level reuse key from the configured sandbox scope. */
19
16
  export declare function sandboxScopeKey(sandbox: SandboxDefinition, config: ManagedRunConfig | undefined): string;
20
17
  /** Clear the process-level sandbox cache. Test-only. */
21
18
  export declare function clearManagedSandboxCacheForTests(): void;
22
19
  /** Override the LangSmith SDK loader. Test-only. */
23
20
  export declare function setLangSmithSandboxClientLoaderForTests(loader?: LangSmithSandboxClientLoader): void;
24
- /**
25
- * Eagerly resolve the `mda dev` sandbox at startup so the developer sees the
26
- * definitive decision — local vs. the configured provider, and the temp dir
27
- * path when local — right when the dev server boots, not on the first run.
28
- *
29
- * Sandboxes are otherwise created lazily (on first run), so with `--browser`
30
- * off nothing would print until the agent is invoked. The generated entry
31
- * calls this at module load (graph registration); because dev shares one
32
- * sandbox ({@link DEV_SANDBOX_SCOPE_KEY}), the first real run reuses what is
33
- * created here rather than provisioning a second sandbox. The authoritative
34
- * "created" log (with the temp dir) is emitted by {@link createDevSandbox}.
35
- *
36
- * No-op outside `mda dev`, so the generated entry can always call it.
37
- */
38
- export declare function announceSandboxPlan(sandbox: SandboxDefinition, setupScript?: string): Promise<void>;
39
21
  export {};
40
22
  //# sourceMappingURL=sandbox-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox-manager.d.ts","sourceRoot":"","sources":["../../src/runtime/sandbox-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AASvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAoB1E,KAAK,4BAA4B,GAAG,MAAM,OAAO,CAAC;IAChD,aAAa,EAAE,KAAK,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK;QACpD,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KACpE,CAAC;CACH,CAAC,CAAC;AAeH;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,iBAAiB,EAC1B,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,MAAM,EAAE,gBAAgB,GAAG,SAAS,GACnC,OAAO,CAAC,qBAAqB,CAAC,CAchC;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,gBAAgB,GAAG,SAAS,GACnC,MAAM,CAoBR;AAED,wDAAwD;AACxD,wBAAgB,gCAAgC,IAAI,IAAI,CAEvD;AAED,oDAAoD;AACpD,wBAAgB,uCAAuC,CACrD,MAAM,CAAC,EAAE,4BAA4B,GACpC,IAAI,CAEN;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,iBAAiB,EAC1B,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAGf"}
1
+ {"version":3,"file":"sandbox-manager.d.ts","sourceRoot":"","sources":["../../src/runtime/sandbox-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAS1E,KAAK,4BAA4B,GAAG,MAAM,OAAO,CAAC;IAChD,aAAa,EAAE,KAAK,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK;QACpD,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KACpE,CAAC;CACH,CAAC,CAAC;AAeH;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,iBAAiB,EAC1B,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,MAAM,EAAE,gBAAgB,GAAG,SAAS,GACnC,OAAO,CAAC,qBAAqB,CAAC,CAYhC;AAED,4EAA4E;AAC5E,wBAAgB,eAAe,CAC7B,OAAO,EAAE,iBAAiB,EAC1B,MAAM,EAAE,gBAAgB,GAAG,SAAS,GACnC,MAAM,CAMR;AAED,wDAAwD;AACxD,wBAAgB,gCAAgC,IAAI,IAAI,CAEvD;AAED,oDAAoD;AACpD,wBAAgB,uCAAuC,CACrD,MAAM,CAAC,EAAE,4BAA4B,GACpC,IAAI,CAEN"}
@@ -1,40 +1,25 @@
1
- import { isDevMode, providerCredentialStatus, providerKey, } from "./credentials.js";
2
- import { logDevSandboxNoticeOnce } from "./dev-notice.js";
3
- import { createLocalDevSandbox } from "./local-dev-sandbox.js";
4
- import { runSetupScript, runSetupScriptInline } from "./setup-script.js";
1
+ import { runSetupScript } from "./setup-script.js";
5
2
  /**
6
3
  * Created sandboxes, keyed by scope, reused for the lifetime of this runtime
7
4
  * process. Storing the in-flight promise dedupes concurrent runs and guarantees
8
5
  * `setup.sh` is executed only once per newly created sandbox.
9
6
  */
10
7
  const managedSandboxes = new Map();
11
- /**
12
- * Cache key for the single, process-wide sandbox used under `mda dev`.
13
- *
14
- * Deploys key sandboxes per scope (thread/tenant/actor) for isolation. Dev is a
15
- * single developer iterating locally, so it shares one sandbox across every
16
- * thread: that lets `announceSandboxPlan` create it eagerly at startup (to
17
- * report local-vs-remote and the temp dir up front) and have the first real run
18
- * reuse it instead of provisioning a second one.
19
- */
20
- const DEV_SANDBOX_SCOPE_KEY = "__mda_dev__";
21
8
  const defaultLangSmithSandboxClientLoader = async () => {
22
9
  const dynamicImport = new Function("specifier", "return import(specifier)");
23
10
  return (await dynamicImport("langsmith/sandbox"));
24
11
  };
25
12
  let langSmithSandboxClientLoader = defaultLangSmithSandboxClientLoader;
26
13
  /**
27
- * Resolve (and cache) the scoped sandbox backend for this run, provisioning it
28
- * with `setup.sh` the first time it is created.
14
+ * Resolve (and cache) the scoped LangSmith sandbox backend for this run,
15
+ * provisioning it with `setup.sh` the first time it is created.
29
16
  */
30
17
  export function resolveManagedSandbox(sandbox, setupScript, config) {
31
- const key = isDevMode()
32
- ? DEV_SANDBOX_SCOPE_KEY
33
- : sandboxScopeKey(sandbox, config);
18
+ const key = sandboxScopeKey(sandbox, config);
34
19
  let pending = managedSandboxes.get(key);
35
20
  if (!pending) {
36
- pending = createManagedSandbox(sandbox, setupScript).catch((error) => {
37
- // Don't cache a failed provisioning attempt let the next run retry.
21
+ pending = createLangSmithSandbox(sandbox, setupScript).catch((error) => {
22
+ // Don't cache a failed provisioning attempt. Let the next run retry.
38
23
  managedSandboxes.delete(key);
39
24
  throw error;
40
25
  });
@@ -42,26 +27,13 @@ export function resolveManagedSandbox(sandbox, setupScript, config) {
42
27
  }
43
28
  return pending;
44
29
  }
45
- /**
46
- * Derive the reuse key from the run. Without runtime identity, sandboxes are
47
- * keyed by thread; with identity, by the configured tenant/actor scope.
48
- */
30
+ /** Derive the process-level reuse key from the configured sandbox scope. */
49
31
  export function sandboxScopeKey(sandbox, config) {
50
- const configurable = (config?.configurable ?? {});
51
- const identity = configurable.identity;
52
32
  const scope = sandbox.options?.scope ?? "thread";
53
- let key;
54
- if (scope === "tenant")
55
- key = identity?.tenant?.id;
56
- else if (scope === "actor")
57
- key = identity?.actor?.id;
58
- else
59
- key = configurable.thread_id;
60
- return (key ??
61
- identity?.tenant?.id ??
62
- identity?.actor?.id ??
63
- configurable.thread_id ??
64
- "default");
33
+ if (scope === "agent") {
34
+ return `agent:${assistantIdFromConfig(config)}`;
35
+ }
36
+ return `thread:${threadIdFromConfig(config)}`;
65
37
  }
66
38
  /** Clear the process-level sandbox cache. Test-only. */
67
39
  export function clearManagedSandboxCacheForTests() {
@@ -71,93 +43,16 @@ export function clearManagedSandboxCacheForTests() {
71
43
  export function setLangSmithSandboxClientLoaderForTests(loader) {
72
44
  langSmithSandboxClientLoader = loader ?? defaultLangSmithSandboxClientLoader;
73
45
  }
74
- /**
75
- * Eagerly resolve the `mda dev` sandbox at startup so the developer sees the
76
- * definitive decision local vs. the configured provider, and the temp dir
77
- * path when local — right when the dev server boots, not on the first run.
78
- *
79
- * Sandboxes are otherwise created lazily (on first run), so with `--browser`
80
- * off nothing would print until the agent is invoked. The generated entry
81
- * calls this at module load (graph registration); because dev shares one
82
- * sandbox ({@link DEV_SANDBOX_SCOPE_KEY}), the first real run reuses what is
83
- * created here rather than provisioning a second sandbox. The authoritative
84
- * "created" log (with the temp dir) is emitted by {@link createDevSandbox}.
85
- *
86
- * No-op outside `mda dev`, so the generated entry can always call it.
87
- */
88
- export async function announceSandboxPlan(sandbox, setupScript) {
89
- if (!isDevMode())
90
- return;
91
- await resolveManagedSandbox(sandbox, setupScript, undefined);
92
- }
93
- function createManagedSandbox(sandbox, setupScript) {
94
- // `mda dev` never provisions a real provider sandbox the same way a deploy
95
- // does (it builds no snapshot/image), so it gets its own resolution path with
96
- // a local fallback. The flag gating ensures a real deployment can never be
97
- // silently downgraded to local shell execution.
98
- return isDevMode()
99
- ? createDevSandbox(sandbox, setupScript)
100
- : createProviderSandbox(sandbox, setupScript, {
101
- useDefaultLangSmithRuntime: true,
102
- });
103
- }
104
- /**
105
- * Production path: construct the configured provider's sandbox and provision it.
106
- * Any failure propagates — a misconfigured deployment must surface, not degrade.
107
- */
108
- async function createProviderSandbox(sandbox, setupScript, options) {
109
- const backend = await createProviderBackend(sandbox, options);
110
- if (setupScript && setupScript.trim().length > 0) {
111
- await runSetupScript(backend, setupScript);
112
- }
113
- return backend;
114
- }
115
- /**
116
- * Dev path: prefer the configured provider when its credentials are present,
117
- * but fall back to a local temp-directory sandbox when credentials are missing
118
- * *or* the provider cannot be created (e.g. `LangSmithSandbox`, which needs a
119
- * snapshot that only `mda deploy` builds). This keeps `mda dev` working offline
120
- * and resilient to provider/config gaps while still exercising real providers
121
- * that can spin up from an API key alone.
122
- */
123
- async function createDevSandbox(sandbox, setupScript) {
124
- const cred = providerCredentialStatus(sandbox.provider);
125
- if (cred.status !== "missing") {
126
- try {
127
- const backend = await createProviderSandbox(sandbox, setupScript, {
128
- useDefaultLangSmithRuntime: false,
129
- });
130
- logDevSandboxNoticeOnce(cred.status === "available"
131
- ? `[mda dev] using the configured ${cred.provider} sandbox.`
132
- : `[mda dev] using the configured sandbox provider (${cred.provider}).`);
133
- return backend;
134
- }
135
- catch (error) {
136
- return createLocalSandbox(setupScript, `the configured ${cred.provider} sandbox could not be created ` +
137
- `(${errorMessage(error)}); using a local temporary directory instead`);
138
- }
46
+ async function createLangSmithSandbox(sandbox, setupScript) {
47
+ if (providerKey(sandbox.provider) !== "LangSmithSandbox") {
48
+ throw new Error("MDA only supports deepagents' LangSmithSandbox provider");
139
49
  }
140
- const missing = cred.missing.join(", ") || "the provider credentials";
141
- return createLocalSandbox(setupScript, `no credentials found for the configured sandbox provider (${cred.provider}); ` +
142
- `using a local temporary directory instead — set ${missing} to use it`);
143
- }
144
- /** Provision the local dev sandbox and run `setup.sh` inline inside it. */
145
- async function createLocalSandbox(setupScript, reason) {
146
- const backend = await createLocalDevSandbox(reason);
50
+ const backend = await createLangSmithSandboxBackend(sandbox);
147
51
  if (setupScript && setupScript.trim().length > 0) {
148
- await runSetupScriptInline(backend, setupScript);
52
+ await runSetupScript(backend, setupScript);
149
53
  }
150
54
  return backend;
151
55
  }
152
- /** Construct the configured provider's backend, stripping MDA-managed knobs. */
153
- async function createProviderBackend(sandbox, options) {
154
- if (options.useDefaultLangSmithRuntime &&
155
- providerKey(sandbox.provider) === "LangSmithSandbox") {
156
- return createLangSmithSandboxBackend(sandbox);
157
- }
158
- const { scope: _scope, idleTtlSeconds: _idleTtlSeconds, ...providerOptions } = sandbox.options ?? {};
159
- return (await sandbox.provider.create(providerOptions));
160
- }
161
56
  async function createLangSmithSandboxBackend(sandbox) {
162
57
  const { scope: _scope, apiKey = process.env.LANGSMITH_API_KEY, defaultTimeout, templateName, snapshotId, ...createSandboxOptions } = sandbox.options ?? {};
163
58
  if (snapshotId && templateName) {
@@ -166,20 +61,41 @@ async function createLangSmithSandboxBackend(sandbox) {
166
61
  if (templateName) {
167
62
  createSandboxOptions.snapshotName = templateName;
168
63
  }
169
- const { SandboxClient } = await langSmithSandboxClientLoader();
170
64
  if (snapshotId) {
171
65
  createSandboxOptions.snapshotId = snapshotId;
172
66
  }
67
+ const { SandboxClient } = await langSmithSandboxClientLoader();
173
68
  const sdkOptions = stringOption(apiKey);
174
69
  const client = new SandboxClient(sdkOptions ? { apiKey: sdkOptions } : undefined);
175
70
  const langSmithSandbox = await client.createSandbox(createSandboxOptions);
176
71
  const Backend = sandbox.provider;
177
72
  return new Backend({ sandbox: langSmithSandbox, defaultTimeout });
178
73
  }
74
+ function providerKey(provider) {
75
+ const providerId = provider.providerId;
76
+ if (typeof providerId === "string" && providerId.trim()) {
77
+ return providerId.trim();
78
+ }
79
+ return typeof provider.name === "string" ? provider.name.trim() : "";
80
+ }
81
+ function threadIdFromConfig(config) {
82
+ const threadId = configValue(config, "thread_id");
83
+ if (threadId === undefined) {
84
+ throw new Error('sandbox scope "thread" requires configurable.thread_id');
85
+ }
86
+ return threadId;
87
+ }
88
+ function assistantIdFromConfig(config) {
89
+ return configValue(config, "assistant_id") ?? "agent";
90
+ }
179
91
  function stringOption(value) {
180
- return typeof value === "string" && value.length > 0 ? value : undefined;
92
+ if (typeof value !== "string")
93
+ return undefined;
94
+ const trimmed = value.trim();
95
+ return trimmed.length > 0 ? trimmed : undefined;
181
96
  }
182
- function errorMessage(error) {
183
- return error instanceof Error ? error.message : String(error);
97
+ function configValue(config, key) {
98
+ return (stringOption(config?.metadata?.[key]) ??
99
+ stringOption(config?.configurable?.[key]));
184
100
  }
185
101
  //# sourceMappingURL=sandbox-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox-manager.js","sourceRoot":"","sources":["../../src/runtime/sandbox-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sandbox-manager.js","sourceRoot":"","sources":["../../src/runtime/sandbox-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGnD;;;;GAIG;AACH,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAA0C,CAAC;AAQ3E,MAAM,mCAAmC,GACvC,KAAK,IAAI,EAAE;IACT,MAAM,aAAa,GAAG,IAAI,QAAQ,CAChC,WAAW,EACX,0BAA0B,CACgB,CAAC;IAC7C,OAAO,CAAC,MAAM,aAAa,CAAC,mBAAmB,CAAC,CAE/C,CAAC;AACJ,CAAC,CAAC;AAEJ,IAAI,4BAA4B,GAAG,mCAAmC,CAAC;AAEvE;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAA0B,EAC1B,WAA+B,EAC/B,MAAoC;IAEpC,MAAM,GAAG,GAAG,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC7C,IAAI,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,GAAG,sBAAsB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACrE,qEAAqE;YACrE,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7B,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;QACH,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,eAAe,CAC7B,OAA0B,EAC1B,MAAoC;IAEpC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,IAAI,QAAQ,CAAC;IACjD,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QACtB,OAAO,SAAS,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;IAClD,CAAC;IACD,OAAO,UAAU,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;AAChD,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,gCAAgC;IAC9C,gBAAgB,CAAC,KAAK,EAAE,CAAC;AAC3B,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,uCAAuC,CACrD,MAAqC;IAErC,4BAA4B,GAAG,MAAM,IAAI,mCAAmC,CAAC;AAC/E,CAAC;AAED,KAAK,UAAU,sBAAsB,CACnC,OAA0B,EAC1B,WAA+B;IAE/B,IAAI,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,kBAAkB,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,6BAA6B,CAAC,OAAO,CAAC,CAAC;IAC7D,IAAI,WAAW,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,MAAM,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,6BAA6B,CAC1C,OAA0B;IAE1B,MAAM,EACJ,KAAK,EAAE,MAAM,EACb,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,EACtC,cAAc,EACd,YAAY,EACZ,UAAU,EACV,GAAG,oBAAoB,EACxB,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;IAE1B,IAAI,UAAU,IAAI,YAAY,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,oFAAoF,CACrF,CAAC;IACJ,CAAC;IACD,IAAI,YAAY,EAAE,CAAC;QACjB,oBAAoB,CAAC,YAAY,GAAG,YAAY,CAAC;IACnD,CAAC;IACD,IAAI,UAAU,EAAE,CAAC;QACf,oBAAoB,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/C,CAAC;IAED,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,4BAA4B,EAAE,CAAC;IAC/D,MAAM,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,aAAa,CAC9B,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAChD,CAAC;IACF,MAAM,gBAAgB,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;IAC1E,MAAM,OAAO,GAAG,OAAO,CAAC,QAGG,CAAC;IAC5B,OAAO,IAAI,OAAO,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,WAAW,CAClB,QAA2D;IAE3D,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;IACvC,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;QACxD,OAAO,UAAU,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IACD,OAAO,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACvE,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAoC;IAC9D,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAClD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAoC;IACjE,OAAO,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,IAAI,OAAO,CAAC;AACxD,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC;AAED,SAAS,WAAW,CAClB,MAAoC,EACpC,GAAW;IAEX,OAAO,CACL,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;QACrC,YAAY,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,CAC1C,CAAC;AACJ,CAAC"}
@@ -10,10 +10,8 @@ export declare function runSetupScript(backend: ManagedSandboxBackend, script: s
10
10
  /**
11
11
  * Run `setup.sh` by piping its contents straight to the backend's shell.
12
12
  *
13
- * Used for the local dev sandbox: that backend virtualizes file paths (uploads
14
- * land under the temp root) but executes shell commands against the real
15
- * filesystem, so an uploaded `/tmp/mda-setup.sh` would not be found by `bash`.
16
- * Executed inline, the script runs with the temp root as its working directory.
13
+ * Kept as a compatibility fallback for sandbox backend implementations that
14
+ * conform to the execute surface but do not expose upload support.
17
15
  */
18
16
  export declare function runSetupScriptInline(backend: ManagedSandboxBackend, script: string): Promise<void>;
19
17
  export declare function assertSetupSucceeded(result: {
@@ -1 +1 @@
1
- {"version":3,"file":"setup-script.d.ts","sourceRoot":"","sources":["../../src/runtime/setup-script.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAKxD;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,qBAAqB,EAC9B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CASf;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,qBAAqB,EAC9B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,GAAG,IAAI,CAOP"}
1
+ {"version":3,"file":"setup-script.d.ts","sourceRoot":"","sources":["../../src/runtime/setup-script.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAKxD;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,qBAAqB,EAC9B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CASf;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,qBAAqB,EAC9B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,GAAG,IAAI,CAOP"}
@@ -20,10 +20,8 @@ export async function runSetupScript(backend, script) {
20
20
  /**
21
21
  * Run `setup.sh` by piping its contents straight to the backend's shell.
22
22
  *
23
- * Used for the local dev sandbox: that backend virtualizes file paths (uploads
24
- * land under the temp root) but executes shell commands against the real
25
- * filesystem, so an uploaded `/tmp/mda-setup.sh` would not be found by `bash`.
26
- * Executed inline, the script runs with the temp root as its working directory.
23
+ * Kept as a compatibility fallback for sandbox backend implementations that
24
+ * conform to the execute surface but do not expose upload support.
27
25
  */
28
26
  export async function runSetupScriptInline(backend, script) {
29
27
  assertSetupSucceeded(await backend.execute(script));
@@ -1 +1 @@
1
- {"version":3,"file":"setup-script.js","sourceRoot":"","sources":["../../src/runtime/setup-script.ts"],"names":[],"mappings":"AAEA,+EAA+E;AAC/E,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAE9C;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAA8B,EAC9B,MAAc;IAEd,IAAI,OAAO,OAAO,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;QAC9C,MAAM,OAAO,CAAC,WAAW,CAAC;YACxB,CAAC,iBAAiB,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SACtD,CAAC,CAAC;QACH,oBAAoB,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,iBAAiB,EAAE,CAAC,CAAC,CAAC;QACzE,OAAO;IACT,CAAC;IACD,MAAM,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAA8B,EAC9B,MAAc;IAEd,oBAAoB,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAGpC;IACC,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QACjE,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CACb,0CAA0C,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1F,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"setup-script.js","sourceRoot":"","sources":["../../src/runtime/setup-script.ts"],"names":[],"mappings":"AAEA,+EAA+E;AAC/E,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAE9C;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAA8B,EAC9B,MAAc;IAEd,IAAI,OAAO,OAAO,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;QAC9C,MAAM,OAAO,CAAC,WAAW,CAAC;YACxB,CAAC,iBAAiB,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SACtD,CAAC,CAAC;QACH,oBAAoB,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,iBAAiB,EAAE,CAAC,CAAC,CAAC;QACzE,OAAO;IACT,CAAC;IACD,MAAM,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAA8B,EAC9B,MAAc;IAEd,oBAAoB,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAGpC;IACC,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QACjE,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CACb,0CAA0C,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1F,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1,15 +1,24 @@
1
1
  import type { McpServersDefinition } from "../connectors.js";
2
+ import type { IdentityDefinition } from "../identity.js";
2
3
  import type { SandboxDefinition } from "../sandbox.js";
3
4
  /**
4
- * The LangGraph runnable config passed to a graph factory at invocation time.
5
- *
6
- * Kept loose for v0; the managed runtime reads identity and thread metadata
7
- * from here to scope the store/sandbox.
5
+ * Any object that carries a per-run LangGraph `configurable` map. The shared base
6
+ * for the run config and the runtime the seam augments, so the `configurable`
7
+ * carrier shape is declared once.
8
8
  */
9
- export interface ManagedRunConfig {
9
+ export interface ConfigurableCarrier {
10
10
  configurable?: Record<string, unknown>;
11
11
  [key: string]: unknown;
12
12
  }
13
+ /**
14
+ * The LangGraph runnable config passed to a graph factory at invocation time.
15
+ *
16
+ * Kept loose for v0; the managed runtime reads LangGraph metadata/configurable
17
+ * values from here to scope the managed sandbox.
18
+ */
19
+ export interface ManagedRunConfig extends ConfigurableCarrier {
20
+ metadata?: Record<string, unknown>;
21
+ }
13
22
  /**
14
23
  * Managed values the CLI injects into the generated entry module.
15
24
  *
@@ -37,6 +46,13 @@ export interface ManagedAgentOptions {
37
46
  * The runtime loads their tools and appends them to the agent's tools.
38
47
  */
39
48
  connectors?: McpServersDefinition;
49
+ /**
50
+ * The root `identity.ts` declaration, if the project opts into managed
51
+ * identity. Resolution + thread scoping run in the generated custom-auth
52
+ * handler (`buildManagedAuth`); this seam reserves the declaration for the
53
+ * frozen `runtime.identity` envelope and memory namespacing.
54
+ */
55
+ identity?: IdentityDefinition;
40
56
  }
41
57
  /**
42
58
  * The subset of a created sandbox backend the managed runtime relies on to run
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runtime/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wEAAwE;IACxE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,oBAAoB,CAAC;CACnC;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CACL,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7B,OAAO,CAAC;QACT,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B,CAAC,CAAC;IACH,WAAW,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACpE"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runtime/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAiB,SAAQ,mBAAmB;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,wEAAwE;IACxE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CACL,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7B,OAAO,CAAC;QACT,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B,CAAC,CAAC;IACH,WAAW,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACpE"}
@@ -0,0 +1,25 @@
1
+ import { type JWTPayload } from "jose";
2
+ import type { IdentityConfig, ValidatedTokenIngress, ValidatedTokenProvider } from "../identity.js";
3
+ import type { ManagedUser } from "./auth.js";
4
+ /**
5
+ * Resolve the caller identity for the `validated_token` ingress mode (§6.2): pick
6
+ * the provider by token issuer, verify the token (JWKS / introspection / guest),
7
+ * then map its claims into the identity envelope. Fail-closed (401) throughout.
8
+ */
9
+ export declare function resolveValidatedTokenUser(cfg: IdentityConfig, ingress: ValidatedTokenIngress, request: Request): Promise<ManagedUser>;
10
+ /** Extract the bearer token from the `Authorization` header, or 401. */
11
+ export declare function bearerToken(request: Request): string;
12
+ /**
13
+ * Select the provider that should verify `token`. A single-provider deployment
14
+ * always uses its one entry; otherwise selection is by the token's `iss` claim
15
+ * (guest tokens carry MDA's own issuer). Fail-closed on no match (401).
16
+ */
17
+ export declare function selectProvider(providers: ValidatedTokenProvider[], token: string): ValidatedTokenProvider;
18
+ /** Map verified token claims into the managed user envelope, per `provider.claims`. */
19
+ export declare function claimsToUser(provider: ValidatedTokenProvider, claims: JWTPayload): ManagedUser;
20
+ /**
21
+ * Mint a short-lived guest token for an anonymous caller. Exposed for the guest
22
+ * issue/reissue route; the same deployment key verifies it on later calls.
23
+ */
24
+ export declare function issueGuestToken(provider: ValidatedTokenProvider, subject?: string): Promise<string>;
25
+ //# sourceMappingURL=validated-token.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validated-token.d.ts","sourceRoot":"","sources":["../../src/runtime/validated-token.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,UAAU,EAGhB,MAAM,MAAM,CAAC;AAEd,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAc7C;;;;GAIG;AACH,wBAAsB,yBAAyB,CAC7C,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,qBAAqB,EAC9B,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,WAAW,CAAC,CAWtB;AAED,wEAAwE;AACxE,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAQpD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,sBAAsB,EAAE,EACnC,KAAK,EAAE,MAAM,GACZ,sBAAsB,CAsBxB;AAED,uFAAuF;AACvF,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,sBAAsB,EAChC,MAAM,EAAE,UAAU,GACjB,WAAW,CA0Bb;AA0JD;;;GAGG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,sBAAsB,EAChC,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAejB"}