managed-deepagents 0.5.4-dev.2 → 0.5.4-dev.4

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.
@@ -1,17 +1,36 @@
1
1
  import { createHash, randomBytes } from "node:crypto";
2
+ import { LangSmithSandbox } from "deepagents";
3
+ import { Sandbox, SandboxClient } from "langsmith/sandbox";
2
4
  import { hasSandboxConnectors, runConnectorSandboxHooks, } from "./connector.js";
3
- import { runSetupScript } from "./setup-script.js";
4
- import { isSandboxStreamError } from "./sandbox-stream-retry.js";
5
+ /** Deployment secret naming the recipe snapshot baked at `mda deploy`. */
6
+ export const RECIPE_SNAPSHOT_ENV = "MDA_SANDBOX_RECIPE_SNAPSHOT";
5
7
  /**
6
- * Created sandboxes, keyed by scope, reused for the lifetime of this runtime
7
- * process. Storing the in-flight promise dedupes concurrent runs and guarantees
8
- * `setup.sh` is executed only once per newly created sandbox.
8
+ * Env var naming the workspace the CLI baked the recipe snapshot into.
9
+ *
10
+ * `mda deploy` sets it on the deployment and `mda dev` stages it into the local
11
+ * `.env`. Sandboxes and snapshots are workspace-scoped, so the runtime must
12
+ * send it too — an API key whose default workspace differs from this one
13
+ * resolves `snapshotName` in the wrong workspace and 404s on the recipe.
14
+ */
15
+ export const WORKSPACE_ID_ENV = "LANGSMITH_WORKSPACE_ID";
16
+ /** Header the LangSmith APIs use to scope a request to one workspace. */
17
+ const TENANT_HEADER = "X-Tenant-Id";
18
+ /**
19
+ * Created sandboxes, keyed by thread, reused for the lifetime of this runtime
20
+ * process. Storing the in-flight promise dedupes concurrent runs. Provisioning
21
+ * (`setup.sh`) happens at deploy bake, not on thread create.
9
22
  */
10
23
  const managedSandboxes = new Map();
11
24
  /** Host box names that must not be re-adopted after invalidate until recreate. */
12
25
  const invalidatedSandboxNames = new Set();
13
26
  /** Host box name for a resolved backend instance (survives cache replacement). */
14
27
  const backendHostNames = new WeakMap();
28
+ /** Cold-box race: command stream died before the sandbox accepted the command. */
29
+ const STREAM_NEVER_STARTED_RE = /Command stream ended before ['"]started['"] message/i;
30
+ const STREAM_NEVER_STARTED_NAMES = new Set([
31
+ "_StreamEndedBeforeStarted",
32
+ "StreamEndedBeforeStarted",
33
+ ]);
15
34
  /**
16
35
  * Separator between the deployment name and the identity digest in a managed
17
36
  * sandbox name.
@@ -28,28 +47,17 @@ const SANDBOX_DIGEST_LENGTH = 12;
28
47
  const ADOPTABLE_STATUS = new Set(["ready", "running"]);
29
48
  /** Sandbox status for one that is stopped but restartable. */
30
49
  const STOPPED_STATUS = "stopped";
31
- const defaultLangSmithSandboxClientLoader = async () => {
32
- const dynamicImport = new Function("specifier", "return import(specifier)");
33
- return (await dynamicImport("langsmith/sandbox"));
34
- };
35
- let langSmithSandboxClientLoader = defaultLangSmithSandboxClientLoader;
36
- const defaultLangSmithSandboxBackendLoader = async () => {
37
- const { LangSmithSandbox } = await import("deepagents");
38
- return LangSmithSandbox;
39
- };
40
- let langSmithSandboxBackendLoader = defaultLangSmithSandboxBackendLoader;
41
50
  /**
42
- * Resolve (and cache) the scoped LangSmith sandbox backend for this run,
43
- * provisioning it with `setup.sh` the first time it is created.
51
+ * Resolve (and cache) the per-thread LangSmith sandbox backend for this run,
52
+ * cloning from the deploy-baked recipe snapshot.
44
53
  *
45
54
  * Connectors that implement {@link Connector.sandbox} run on create, when a
46
55
  * new thread starts against a reused sandbox (mode `"reuse"`), and on later
47
56
  * messages in an already-synced thread (mode `"credentials"`).
48
57
  */
49
- export function resolveManagedSandbox(sandbox, setupScript, config, options) {
50
- const key = sandboxScopeKey(sandbox, config);
58
+ export function resolveManagedSandbox(sandbox, config, options) {
59
+ const key = sandboxScopeKey(config);
51
60
  const hasSandbox = hasSandboxConnectors(options?.connectors);
52
- const threadKey = threadSyncKey(sandbox, config);
53
61
  let entry = managedSandboxes.get(key);
54
62
  if (!entry) {
55
63
  const created = {
@@ -57,7 +65,7 @@ export function resolveManagedSandbox(sandbox, setupScript, config, options) {
57
65
  syncChain: Promise.resolve(),
58
66
  freshlyCreated: true,
59
67
  ready: Promise.resolve().then(async () => {
60
- const { backend, hostName } = await createLangSmithSandbox(sandbox, setupScript, config, options, "create", key);
68
+ const { backend, hostName } = await createLangSmithSandbox(sandbox, config, options, "create", key);
61
69
  created.hostName = hostName;
62
70
  const id = backend.id;
63
71
  created.backendId =
@@ -65,7 +73,7 @@ export function resolveManagedSandbox(sandbox, setupScript, config, options) {
65
73
  if (hostName) {
66
74
  backendHostNames.set(backend, hostName);
67
75
  }
68
- created.syncedThreads.add(threadKey);
76
+ created.syncedThreads.add(key);
69
77
  return backend;
70
78
  }),
71
79
  };
@@ -89,7 +97,7 @@ export function resolveManagedSandbox(sandbox, setupScript, config, options) {
89
97
  cached.freshlyCreated = false;
90
98
  return;
91
99
  }
92
- if (cached.syncedThreads.has(threadKey)) {
100
+ if (cached.syncedThreads.has(key)) {
93
101
  // Same thread: refresh credentials / CLI wiring without re-cloning.
94
102
  // Otherwise redeploys that fix auth (e.g. gh wrapper) never apply mid-thread.
95
103
  await runConnectorSandboxHooks(options?.connectors, {
@@ -107,18 +115,14 @@ export function resolveManagedSandbox(sandbox, setupScript, config, options) {
107
115
  config,
108
116
  identity: options?.identity,
109
117
  });
110
- cached.syncedThreads.add(threadKey);
118
+ cached.syncedThreads.add(key);
111
119
  });
112
120
  await cached.syncChain;
113
121
  return backend;
114
122
  });
115
123
  }
116
- /** Derive the process-level reuse key from the configured sandbox scope. */
117
- export function sandboxScopeKey(sandbox, config) {
118
- const scope = sandbox.options?.scope ?? "thread";
119
- if (scope === "agent") {
120
- return `agent:${assistantIdFromConfig(config)}`;
121
- }
124
+ /** Derive the process-level reuse key (always one sandbox per thread). */
125
+ export function sandboxScopeKey(config) {
122
126
  return `thread:${threadIdFromConfig(config)}`;
123
127
  }
124
128
  /** Clear the process-level sandbox cache. Test-only. */
@@ -130,7 +134,7 @@ export function clearManagedSandboxCacheForTests() {
130
134
  * Drop a cached sandbox and delete its Host box so recreate cannot adopt it.
131
135
  *
132
136
  * Process-cache clear alone is not enough under deploy: names are deterministic
133
- * per scope, so the next resolve would re-adopt the same broken box. Mark the
137
+ * per thread, so the next resolve would re-adopt the same broken box. Mark the
134
138
  * name blocked (delete can lag) and best-effort `deleteSandbox`.
135
139
  *
136
140
  * When `expectedBackendId` / `expectedHostName` are set, only pop the cache
@@ -138,13 +142,9 @@ export function clearManagedSandboxCacheForTests() {
138
142
  * already have replaced it — deleting the replacement would strand the healthy
139
143
  * recreate.
140
144
  */
141
- export async function invalidateManagedSandbox(sandbox, config, setupScriptOrOptions) {
142
- const options = typeof setupScriptOrOptions === "string" ||
143
- setupScriptOrOptions === undefined
144
- ? { setupScript: setupScriptOrOptions }
145
- : setupScriptOrOptions;
146
- const { setupScript, expectedBackendId, expectedHostName } = options;
147
- const key = sandboxScopeKey(sandbox, config);
145
+ export async function invalidateManagedSandbox(sandbox, config, options = {}) {
146
+ const { expectedBackendId, expectedHostName } = options;
147
+ const key = sandboxScopeKey(config);
148
148
  const names = new Set();
149
149
  let popCache = true;
150
150
  let entry = managedSandboxes.get(key);
@@ -180,7 +180,7 @@ export async function invalidateManagedSandbox(sandbox, config, setupScriptOrOpt
180
180
  expectedBackendId === undefined &&
181
181
  expectedHostName === undefined) {
182
182
  try {
183
- const computed = hostSandboxNameFor(sandbox, config, setupScript);
183
+ const computed = hostSandboxNameFor(config);
184
184
  if (computed) {
185
185
  names.add(computed);
186
186
  }
@@ -201,11 +201,33 @@ export async function invalidateManagedSandbox(sandbox, config, setupScriptOrOpt
201
201
  export function managedSandboxHostName(backend) {
202
202
  return backendHostNames.get(backend);
203
203
  }
204
+ /**
205
+ * True when execute failed before the sandbox accepted the command.
206
+ *
207
+ * Matches only the cold-box readiness race (named error or message). Ambiguous
208
+ * stream/transport errors may have already started a command — those belong on
209
+ * other recreate matchers, not this classifier.
210
+ */
211
+ function isSandboxStreamError(error) {
212
+ if (error instanceof Error && STREAM_NEVER_STARTED_NAMES.has(error.name)) {
213
+ return true;
214
+ }
215
+ if (error !== null &&
216
+ typeof error === "object" &&
217
+ STREAM_NEVER_STARTED_NAMES.has(error.constructor?.name ?? "")) {
218
+ return true;
219
+ }
220
+ const message = error instanceof Error
221
+ ? `${error.name}: ${error.message}`
222
+ : typeof error === "string"
223
+ ? error
224
+ : String(error);
225
+ return STREAM_NEVER_STARTED_RE.test(message);
226
+ }
204
227
  /** True when a sandbox API error is worth invalidating + recreating once. */
205
228
  export function isTransientSandboxError(error) {
206
- // Never-started stream race is also recreate-safe (and retried in place first
207
- // by executeWithStreamRetry during provision). Truncated HTTP bodies and
208
- // peer-closed errors are recreate-only — do not replay in place.
229
+ // Never-started stream race is recreate-safe. Truncated HTTP bodies and
230
+ // peer-closed errors are recreate-only as well.
209
231
  if (isSandboxStreamError(error)) {
210
232
  return true;
211
233
  }
@@ -216,16 +238,6 @@ export function isTransientSandboxError(error) {
216
238
  : String(error);
217
239
  return /LangSmithSandboxError|HTTP 502|Bad Gateway|HTTP 503|HTTP 504|ECONNRESET|ETIMEDOUT|peer closed connection without sending complete message body|incomplete chunked read|sandbox.*(not found|gone|unavailable|terminated)/i.test(message);
218
240
  }
219
- /** Override the LangSmith SDK loader. Test-only. */
220
- export function setLangSmithSandboxClientLoaderForTests(loader) {
221
- langSmithSandboxClientLoader = loader ?? defaultLangSmithSandboxClientLoader;
222
- }
223
- /** Override the DeepAgents LangSmith backend wrapper. Test-only. */
224
- export function setLangSmithSandboxBackendForTests(backend) {
225
- langSmithSandboxBackendLoader = backend
226
- ? async () => backend
227
- : defaultLangSmithSandboxBackendLoader;
228
- }
229
241
  /**
230
242
  * Deployment this runtime belongs to, used to name the sandboxes it creates so
231
243
  * `mda delete` can find them again.
@@ -239,35 +251,22 @@ export function managedDeploymentName() {
239
251
  stringOption(process.env.MDA_DEPLOYMENT_NAME));
240
252
  }
241
253
  /**
242
- * Deterministic sandbox name for a deployment, sandbox scope, and provisioning
243
- * recipe.
244
- *
245
- * The inputs are digested rather than embedded because the scope key carries
246
- * thread and assistant UUIDs; a short digest keeps the name clear of any length
247
- * limit while staying stable across container restarts, which is what lets a
248
- * restarted deployment re-adopt its sandbox instead of leaking it.
254
+ * Deterministic sandbox name for a deployment and thread.
249
255
  *
250
- * Provisioning is part of the identity so that editing `setup.sh` or switching
251
- * snapshots produces a different name. An adopted sandbox skips provisioning, so
252
- * without this a redeploy would silently leave existing threads on the old
253
- * environment.
256
+ * The thread key is digested rather than embedded so names stay short and
257
+ * stable across container restarts. Recipe (`setup.sh` / bake base) changes do
258
+ * **not** rename live boxes new threads clone the new recipe; live threads
259
+ * keep `/workspace` until idle reclaim.
254
260
  */
255
- export function managedSandboxName(deployment, scopeKey, provisioning = {}) {
261
+ export function managedSandboxName(deployment, scopeKey) {
256
262
  const digest = createHash("sha256")
257
263
  .update(scopeKey)
258
- .update("\0")
259
- .update(provisioningFingerprint(provisioning))
260
264
  .digest("hex")
261
265
  .slice(0, SANDBOX_DIGEST_LENGTH);
262
266
  return `${deployment}${SANDBOX_NAME_SEPARATOR}${digest}`;
263
267
  }
264
- /** Stable string for a provisioning recipe, insensitive to option ordering. */
265
- function provisioningFingerprint(provisioning) {
266
- const createOptions = Object.entries(provisioning.createOptions ?? {}).sort(([left], [right]) => (left < right ? -1 : left > right ? 1 : 0));
267
- return JSON.stringify([createOptions, provisioning.setupScript ?? ""]);
268
- }
269
- async function createLangSmithSandbox(sandbox, setupScript, config, options, mode, scopeKey) {
270
- const { backend, adopted, hostName } = await createLangSmithSandboxBackend(sandbox, scopeKey, setupScript);
268
+ async function createLangSmithSandbox(sandbox, config, options, mode, scopeKey) {
269
+ const { backend, adopted, hostName } = await createLangSmithSandboxBackend(sandbox, scopeKey);
271
270
  await runConnectorSandboxHooks(options?.connectors, {
272
271
  backend,
273
272
  // An adopted sandbox already ran create-time provisioning in an earlier
@@ -276,46 +275,54 @@ async function createLangSmithSandbox(sandbox, setupScript, config, options, mod
276
275
  config,
277
276
  identity: options?.identity,
278
277
  });
279
- // Only a new sandbox needs `setup.sh`: an adopted one ran this exact script
280
- // already, since a changed script yields a different sandbox name.
281
- if (!adopted && setupScript && setupScript.trim().length > 0) {
282
- await runSetupScript(backend, setupScript);
283
- }
284
278
  return { backend, hostName };
285
279
  }
286
- function sandboxCreateOptions(sandbox) {
287
- const { scope: _scope, apiKey: _apiKey, defaultTimeout: _defaultTimeout, templateName, snapshotId, ...resolvedCreateOptions } = sandbox.options ?? {};
288
- const createSandboxOptions = resolvedCreateOptions;
289
- if (snapshotId && templateName) {
290
- throw new Error("snapshotId and templateName are mutually exclusive. Pass only one creation source.");
291
- }
292
- if (templateName) {
293
- createSandboxOptions.snapshotName = templateName;
294
- }
295
- if (snapshotId) {
296
- createSandboxOptions.snapshotId = snapshotId;
280
+ /**
281
+ * Options for `createSandbox`. Thread boxes always clone the deploy-baked
282
+ * recipe; author `snapshotName` / `snapshotId` / `dockerImage` are bake bases
283
+ * only and are not passed here.
284
+ */
285
+ export function sandboxCreateOptions(sandbox) {
286
+ const { apiKey: _apiKey, defaultTimeout: _defaultTimeout, snapshotName: _snapshotName, snapshotId: _snapshotId, dockerImage: _dockerImage, registry: _registry, ...resolvedCreateOptions } = sandbox.options ?? {};
287
+ const createSandboxOptions = {
288
+ ...resolvedCreateOptions,
289
+ };
290
+ const recipe = stringOption(process.env[RECIPE_SNAPSHOT_ENV]);
291
+ if (!recipe) {
292
+ throw new Error(`${RECIPE_SNAPSHOT_ENV} is not set. Redeploy with \`mda deploy\` so the ` +
293
+ "runtime can clone the baked sandbox recipe snapshot.");
297
294
  }
295
+ createSandboxOptions.snapshotName = recipe;
298
296
  return createSandboxOptions;
299
297
  }
300
- function hostSandboxNameFor(sandbox, config, setupScript) {
298
+ function hostSandboxNameFor(config) {
301
299
  const deployment = managedDeploymentName();
302
300
  if (!deployment) {
303
301
  return undefined;
304
302
  }
305
- return managedSandboxName(deployment, sandboxScopeKey(sandbox, config), {
306
- createOptions: sandboxCreateOptions(sandbox),
307
- setupScript,
308
- });
303
+ return managedSandboxName(deployment, sandboxScopeKey(config));
309
304
  }
310
- async function sandboxClientFor(sandbox) {
311
- const { SandboxClient } = await langSmithSandboxClientLoader();
305
+ /**
306
+ * Constructor options for the LangSmith sandbox client.
307
+ *
308
+ * Both the API key and the workspace scope come from the environment `mda`
309
+ * wrote, so every sandbox call lands in the workspace holding the baked recipe.
310
+ */
311
+ export function sandboxClientOptions(sandbox) {
312
312
  const apiKey = stringOption(sandbox.options?.apiKey) ??
313
313
  stringOption(process.env.LANGSMITH_API_KEY);
314
- return new SandboxClient(apiKey ? { apiKey } : undefined);
314
+ const workspaceId = stringOption(process.env[WORKSPACE_ID_ENV]);
315
+ if (!apiKey && !workspaceId) {
316
+ return undefined;
317
+ }
318
+ return {
319
+ ...(apiKey ? { apiKey } : {}),
320
+ ...(workspaceId ? { headers: { [TENANT_HEADER]: workspaceId } } : {}),
321
+ };
315
322
  }
316
323
  async function deleteHostSandbox(sandbox, name) {
317
324
  try {
318
- const client = await sandboxClientFor(sandbox);
325
+ const client = new SandboxClient(sandboxClientOptions(sandbox));
319
326
  if (typeof client.deleteSandbox !== "function") {
320
327
  return;
321
328
  }
@@ -329,29 +336,22 @@ async function deleteHostSandbox(sandbox, name) {
329
336
  console.warn(`[mda] sandbox invalidate: delete failed name=${JSON.stringify(name)} err=${label}`);
330
337
  }
331
338
  }
332
- async function createLangSmithSandboxBackend(sandbox, scopeKey, setupScript) {
333
- const { apiKey = process.env.LANGSMITH_API_KEY, defaultTimeout } = sandbox.options ?? {};
339
+ async function createLangSmithSandboxBackend(sandbox, scopeKey) {
340
+ const { defaultTimeout } = sandbox.options ?? {};
334
341
  const createSandboxOptions = sandboxCreateOptions(sandbox);
335
- const { SandboxClient } = await langSmithSandboxClientLoader();
336
- const sdkOptions = stringOption(apiKey);
337
- const client = new SandboxClient(sdkOptions ? { apiKey: sdkOptions } : undefined);
342
+ const client = new SandboxClient(sandboxClientOptions(sandbox));
338
343
  const deployment = managedDeploymentName();
339
344
  const sandboxName = deployment
340
- ? managedSandboxName(deployment, scopeKey, {
341
- createOptions: createSandboxOptions,
342
- setupScript,
343
- })
345
+ ? managedSandboxName(deployment, scopeKey)
344
346
  : undefined;
345
347
  const { sandbox: langSmithSandbox, adopted } = await resolveSandboxInstance(client, createSandboxOptions, sandboxName);
346
- const resolved = langSmithSandbox;
347
- const hostName = stringOption(resolved.name) ?? sandboxName;
348
+ const hostName = stringOption(langSmithSandbox.name) ?? sandboxName;
348
349
  console.info(`[mda] sandbox resolve: ${adopted ? "adopted" : "created"} ` +
349
350
  `name=${JSON.stringify(hostName ?? null)} ` +
350
- `id=${JSON.stringify(resolved.id ?? null)} ` +
351
+ `id=${JSON.stringify(langSmithSandbox.id ?? null)} ` +
351
352
  `scope=${JSON.stringify(scopeKey)}`);
352
- const Backend = await langSmithSandboxBackendLoader();
353
353
  return {
354
- backend: new Backend({
354
+ backend: new LangSmithSandbox({
355
355
  sandbox: langSmithSandbox,
356
356
  defaultTimeout,
357
357
  }),
@@ -426,9 +426,6 @@ async function adoptSandbox(client, name) {
426
426
  catch {
427
427
  return undefined;
428
428
  }
429
- if (existing === undefined || existing === null) {
430
- return undefined;
431
- }
432
429
  const status = stringOption(existing.status)?.toLowerCase();
433
430
  // No status reported: assume the SDK handed back a usable sandbox.
434
431
  if (status === undefined || ADOPTABLE_STATUS.has(status)) {
@@ -452,29 +449,13 @@ function isSandboxNameConflict(error) {
452
449
  function sandboxNameSuffix() {
453
450
  return randomBytes(4).toString("hex");
454
451
  }
455
- function threadSyncKey(sandbox, config) {
456
- const scope = sandbox.options?.scope ?? "thread";
457
- if (scope === "agent") {
458
- // Agent-scoped sandboxes are shared; sync once per thread that uses them.
459
- try {
460
- return `thread:${threadIdFromConfig(config)}`;
461
- }
462
- catch {
463
- return "thread:__missing__";
464
- }
465
- }
466
- return sandboxScopeKey(sandbox, config);
467
- }
468
452
  function threadIdFromConfig(config) {
469
453
  const threadId = configValue(config, "thread_id");
470
454
  if (threadId === undefined) {
471
- throw new Error('sandbox scope "thread" requires configurable.thread_id');
455
+ throw new Error("managed sandboxes require configurable.thread_id (one sandbox per thread)");
472
456
  }
473
457
  return threadId;
474
458
  }
475
- function assistantIdFromConfig(config) {
476
- return configValue(config, "assistant_id") ?? "agent";
477
- }
478
459
  function stringOption(value) {
479
460
  if (typeof value !== "string")
480
461
  return undefined;
@@ -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":"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"}
@@ -45,11 +45,6 @@ export interface ManagedAgentOptions {
45
45
  hasSkills?: boolean;
46
46
  /** The `sandbox/index.ts` declaration, if the project configures a sandbox. */
47
47
  sandbox?: SandboxDefinition;
48
- /**
49
- * Contents of `sandbox/setup.sh`, embedded by the CLI. It runs exactly once,
50
- * the first time a sandbox is provisioned for a given scope.
51
- */
52
- setupScript?: string;
53
48
  /**
54
49
  * The connectors discovered under `connectors/`, already validated by
55
50
  * `collectConnectors`. Each connector's `tools` hook (if any) contributes
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runtime/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;;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;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,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;;;;OAIG;IACH,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runtime/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;;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;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B;;;;OAIG;IACH,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
package/dist/sandbox.d.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * A Managed Deep Agent declares its execution environment in `sandbox/index.ts`
5
5
  * with `defineSandbox`. MDA owns how the sandbox is *resolved*: construction,
6
- * scoped reuse across turns, the provisioning `setup.sh`, and lifecycle/TTL.
6
+ * per-thread reuse, deploy-time snapshot bake from `setup.sh`, and lifecycle/TTL.
7
7
  *
8
8
  * @example
9
9
  * ```ts
@@ -14,15 +14,14 @@
14
14
  * ```
15
15
  */
16
16
  import type { LangSmithSandbox } from "deepagents";
17
- /** Reuse boundary for a managed sandbox. Defaults to `"thread"`. */
18
- export type SandboxScope = "thread" | "agent";
19
17
  /**
20
18
  * Provider options MDA owns and developers must not set directly.
21
19
  *
22
20
  * MDA owns sandbox identity and managed runtime safety knobs. Use
23
- * `templateName` or `snapshotId` when an explicit LangSmith source is needed.
21
+ * `snapshotName`, `snapshotId`, or `dockerImage` when an explicit LangSmith
22
+ * bake base is needed.
24
23
  */
25
- type ManagedSandboxOptionKey = "name" | "image" | "snapshot" | "imageName";
24
+ type ManagedSandboxOptionKey = "name" | "image" | "snapshot" | "imageName" | "templateName" | "scope";
26
25
  type LangSmithCreateOptions = typeof LangSmithSandbox extends {
27
26
  create(options: infer TOptions): Promise<unknown>;
28
27
  } ? TOptions extends object ? TOptions : never : never;
@@ -30,29 +29,76 @@ type LangSmithCreateOptions = typeof LangSmithSandbox extends {
30
29
  * Developer-provided options for the managed sandbox.
31
30
  *
32
31
  * Mirrors the supported LangSmith creation options, minus the fields MDA owns,
33
- * plus the managed reuse/lifecycle knobs.
32
+ * plus bake-base and lifecycle knobs. Reuse is always one sandbox per thread.
34
33
  */
35
- export type SandboxOptions = Omit<LangSmithCreateOptions, ManagedSandboxOptionKey> & {
36
- /**
37
- * Sandbox reuse scope. Defaults to `"thread"`.
38
- *
39
- * - `"thread"`: one sandbox per durable thread/conversation.
40
- * - `"agent"`: one sandbox shared by all threads handled by this agent process.
41
- */
42
- scope?: SandboxScope;
34
+ export type SandboxOptions = SandboxSharedOptions & SandboxBakeBase;
35
+ /**
36
+ * Lifecycle and LangSmith create knobs that are always allowed, regardless of
37
+ * which bake base (if any) the author picks.
38
+ */
39
+ type SandboxSharedOptions = Omit<LangSmithCreateOptions, ManagedSandboxOptionKey> & {
43
40
  /**
44
41
  * Idle TTL in seconds. MDA may reclaim the sandbox after this period of
45
42
  * inactivity.
46
43
  */
47
44
  idleTtlSeconds?: number;
48
45
  };
46
+ /** Credentials for a private Docker registry, reconciled by MDA at bake time. */
47
+ export interface SandboxRegistry {
48
+ /** Registry host, for example `ghcr.io`. */
49
+ url: string;
50
+ /** Registry username (for GHCR, the GitHub account or organization user). */
51
+ username: string;
52
+ /**
53
+ * Name of an environment variable containing the registry password/token.
54
+ *
55
+ * MDA reads the value from the project `.env` or process environment. Only
56
+ * this variable name is compiled; the credential value never enters the
57
+ * build or recipe snapshot.
58
+ */
59
+ passwordEnv: string;
60
+ }
61
+ /**
62
+ * Deploy-time bake base. At most one of `snapshotName`, `snapshotId`, or
63
+ * `dockerImage` may be set — combining them is a type error.
64
+ *
65
+ * `registry` is only valid with `dockerImage`. MDA creates or updates a
66
+ * deployment-owned Host registry before pulling the private image.
67
+ */
68
+ export type SandboxBakeBase = {
69
+ snapshotName?: undefined;
70
+ snapshotId?: undefined;
71
+ dockerImage?: undefined;
72
+ registry?: undefined;
73
+ } | {
74
+ /** LangSmith snapshot name used as the bake base (supports tags). */
75
+ snapshotName: string;
76
+ snapshotId?: never;
77
+ dockerImage?: never;
78
+ registry?: never;
79
+ } | {
80
+ /** LangSmith snapshot id used as the bake base. */
81
+ snapshotId: string;
82
+ snapshotName?: never;
83
+ dockerImage?: never;
84
+ registry?: never;
85
+ } | {
86
+ /** Docker image used as the bake base. */
87
+ dockerImage: string;
88
+ snapshotName?: never;
89
+ snapshotId?: never;
90
+ /**
91
+ * Private registry credentials resolved and reconciled by MDA at bake.
92
+ */
93
+ registry?: SandboxRegistry;
94
+ };
49
95
  /** The object exported from `sandbox/index.ts`. */
50
96
  export interface SandboxDefinition {
51
97
  readonly kind: "sandbox";
52
98
  readonly options: SandboxOptions;
53
99
  }
54
100
  /**
55
- * Apply the default scope and reject the provider options MDA owns.
101
+ * Reject provider options MDA owns and enforce bake-base mutual exclusion.
56
102
  *
57
103
  * Used by `defineSandbox`, so runtime-owned keys never enter a definition.
58
104
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,oEAAoE;AACpE,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE9C;;;;;GAKG;AACH,KAAK,uBAAuB,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,WAAW,CAAC;AAE3E,KAAK,sBAAsB,GAAG,OAAO,gBAAgB,SAAS;IAC5D,MAAM,CAAC,OAAO,EAAE,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACnD,GACG,QAAQ,SAAS,MAAM,GACrB,QAAQ,GACR,KAAK,GACP,KAAK,CAAC;AAEV;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,IAAI,CAC/B,sBAAsB,EACtB,uBAAuB,CACxB,GAAG;IACF;;;;;OAKG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,mDAAmD;AACnD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;CAClC;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,CAAC,EAAE,cAAc,GACvB,cAAc,CAchB;AAED,8DAA8D;AAC9D,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,iBAAiB,CAEzE"}
1
+ {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../src/sandbox.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD;;;;;;GAMG;AACH,KAAK,uBAAuB,GACxB,MAAM,GACN,OAAO,GACP,UAAU,GACV,WAAW,GACX,cAAc,GACd,OAAO,CAAC;AAEZ,KAAK,sBAAsB,GAAG,OAAO,gBAAgB,SAAS;IAC5D,MAAM,CAAC,OAAO,EAAE,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACnD,GACG,QAAQ,SAAS,MAAM,GACrB,QAAQ,GACR,KAAK,GACP,KAAK,CAAC;AAEV;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,oBAAoB,GAAG,eAAe,CAAC;AAEpE;;;GAGG;AACH,KAAK,oBAAoB,GAAG,IAAI,CAC9B,sBAAsB,EACtB,uBAAuB,CACxB,GAAG;IACF;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,iFAAiF;AACjF,MAAM,WAAW,eAAe;IAC9B,4CAA4C;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GACvB;IACE,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,GACD;IACE,qEAAqE;IACrE,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB,GACD;IACE,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB,GACD;IACE,0CAA0C;IAC1C,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B,CAAC;AAEN,mDAAmD;AACnD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;CAClC;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,CAAC,EAAE,cAAc,GACvB,cAAc,CA0ChB;AAED,8DAA8D;AAC9D,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,iBAAiB,CAEzE"}