deepline 0.3.30 → 0.3.31

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.
@@ -192,7 +192,7 @@ export const SDK_RELEASE = {
192
192
  // 0.3.0 introduces raw-v2: complete scrubbed provider responses are
193
193
  // available at toolResponse.rawV2 while toolResponse.raw and all declared
194
194
  // getters keep their established compatibility behavior.
195
- version: '0.3.30',
195
+ version: '0.3.31',
196
196
  updateSummary:
197
197
  'New raw-v2 tool responses preserve complete scrubbed provider envelopes at toolResponse.rawV2, including JSON:API included resources, links, cursors, and totals. Existing toolResponse.raw and declared getters keep working unchanged.',
198
198
  contracts: {
@@ -255,6 +255,7 @@ async function createOneShotDaytonaSandbox(input: {
255
255
  orgId: string;
256
256
  context: DaytonaExecutionContext;
257
257
  sandboxName: string;
258
+ providerOperationToken?: string;
258
259
  }): Promise<DaytonaSandbox> {
259
260
  const limits = validatePlaySandboxRuntimeLimits(
260
261
  input.context.sandboxRuntimeLimits ?? {
@@ -271,6 +272,7 @@ async function createOneShotDaytonaSandbox(input: {
271
272
  workflowId?: string;
272
273
  playId?: string;
273
274
  runId?: string;
275
+ operationKey?: string;
274
276
  } = {
275
277
  source: DAYTONA_PLAY_RUNNER_LABEL_SOURCE,
276
278
  };
@@ -278,6 +280,8 @@ async function createOneShotDaytonaSandbox(input: {
278
280
  if (workflowId) labels.workflowId = workflowId;
279
281
  if (playId) labels.playId = playId;
280
282
  if (runId) labels.runId = runId;
283
+ if (input.providerOperationToken)
284
+ labels.operationKey = input.providerOperationToken;
281
285
  const { networkAllowList } = resolveDaytonaSandboxNetworkPolicy({
282
286
  runtimeSchedulerSchema: input.context.runtimeSchedulerSchema ?? null,
283
287
  });
@@ -357,7 +361,9 @@ async function createRetriedOneShotDaytonaSandbox(input: {
357
361
  context: DaytonaExecutionContext;
358
362
  emitStage: DaytonaStageEmitter;
359
363
  observeCreateCall?: DaytonaCreateCallObserver;
360
- reserveSandboxCapacity?: () => Promise<{ leaseId: string }>;
364
+ reserveSandboxCapacity?: (
365
+ providerAttempt: number,
366
+ ) => Promise<{ leaseId: string; providerOperationToken: string | null }>;
361
367
  releaseSandboxCapacity?: (leaseId: string) => Promise<void>;
362
368
  nextProviderAttempt: () => number;
363
369
  startedAt: number;
@@ -381,7 +387,7 @@ async function createRetriedOneShotDaytonaSandbox(input: {
381
387
  occurredAtMs: attemptStartedAt,
382
388
  providerAttempt: attempt,
383
389
  });
384
- const reservation = await input.reserveSandboxCapacity?.();
390
+ const reservation = await input.reserveSandboxCapacity?.(attempt);
385
391
  let sandbox: DaytonaSandbox;
386
392
  try {
387
393
  sandbox = await createOneShotDaytonaSandbox({
@@ -389,6 +395,8 @@ async function createRetriedOneShotDaytonaSandbox(input: {
389
395
  orgId: input.orgId,
390
396
  context: input.context,
391
397
  sandboxName,
398
+ providerOperationToken:
399
+ reservation?.providerOperationToken ?? undefined,
392
400
  });
393
401
  } catch (error) {
394
402
  // A normal rejected create has no durable provider resource. A timeout
@@ -500,7 +508,9 @@ async function acquireOneShotDaytonaSandbox(input: {
500
508
  context: DaytonaExecutionContext;
501
509
  emitStage: DaytonaStageEmitter;
502
510
  observeCreateCall?: DaytonaCreateCallObserver;
503
- reserveSandboxCapacity?: () => Promise<{ leaseId: string }>;
511
+ reserveSandboxCapacity?: (
512
+ providerAttempt: number,
513
+ ) => Promise<{ leaseId: string; providerOperationToken: string | null }>;
504
514
  releaseSandboxCapacity?: (leaseId: string) => Promise<void>;
505
515
  nextProviderAttempt: () => number;
506
516
  startedAt: number;
@@ -607,7 +617,10 @@ export function createOneShotDaytonaSandboxLifecycle(input: {
607
617
  context: DaytonaExecutionContext;
608
618
  emitStage: DaytonaStageEmitter;
609
619
  observeCreateCall?: DaytonaCreateCallObserver;
610
- reserveSandboxCapacity?: () => Promise<{ leaseId: string }>;
620
+ reserveSandboxCapacity?: (providerAttempt: number) => Promise<{
621
+ leaseId: string;
622
+ providerOperationToken: string | null;
623
+ }>;
611
624
  releaseSandboxCapacity?: (leaseId: string) => Promise<void>;
612
625
  startedAt?: number;
613
626
  }): OneShotDaytonaSandboxLifecycle {
@@ -953,7 +953,8 @@ function prepareDaytonaExecution(
953
953
  emitDaytonaStage(callbacks, input.context, stage, extra),
954
954
  observeCreateCall: callbacks?.onRuntimeLifecycleEvent,
955
955
  reserveSandboxCapacity: callbacks?.reserveSandboxCapacity
956
- ? () => callbacks.reserveSandboxCapacity!('daytona')
956
+ ? (providerAttempt) =>
957
+ callbacks.reserveSandboxCapacity!('daytona', providerAttempt)
957
958
  : undefined,
958
959
  releaseSandboxCapacity: callbacks?.releaseSandboxCapacity,
959
960
  });
@@ -131,7 +131,8 @@ export interface PlayRunnerCallbacks {
131
131
  /** Reserve one physical-sandbox slot immediately before a provider create. */
132
132
  reserveSandboxCapacity?: (
133
133
  provider: 'daytona' | 'modal',
134
- ) => Promise<{ leaseId: string }>;
134
+ providerAttempt?: number,
135
+ ) => Promise<{ leaseId: string; providerOperationToken: string | null }>;
135
136
  /** Release an unbound reservation when provider create never produced a resource. */
136
137
  releaseSandboxCapacity?: (leaseId: string) => Promise<void>;
137
138
  /**
package/dist/cli/index.js CHANGED
@@ -1042,7 +1042,7 @@ var SDK_RELEASE = {
1042
1042
  // 0.3.0 introduces raw-v2: complete scrubbed provider responses are
1043
1043
  // available at toolResponse.rawV2 while toolResponse.raw and all declared
1044
1044
  // getters keep their established compatibility behavior.
1045
- version: "0.3.30",
1045
+ version: "0.3.31",
1046
1046
  updateSummary: "New raw-v2 tool responses preserve complete scrubbed provider envelopes at toolResponse.rawV2, including JSON:API included resources, links, cursors, and totals. Existing toolResponse.raw and declared getters keep working unchanged.",
1047
1047
  contracts: {
1048
1048
  api: {
@@ -1028,7 +1028,7 @@ var SDK_RELEASE = {
1028
1028
  // 0.3.0 introduces raw-v2: complete scrubbed provider responses are
1029
1029
  // available at toolResponse.rawV2 while toolResponse.raw and all declared
1030
1030
  // getters keep their established compatibility behavior.
1031
- version: "0.3.30",
1031
+ version: "0.3.31",
1032
1032
  updateSummary: "New raw-v2 tool responses preserve complete scrubbed provider envelopes at toolResponse.rawV2, including JSON:API included resources, links, cursors, and totals. Existing toolResponse.raw and declared getters keep working unchanged.",
1033
1033
  contracts: {
1034
1034
  api: {
package/dist/index.js CHANGED
@@ -778,7 +778,7 @@ var SDK_RELEASE = {
778
778
  // 0.3.0 introduces raw-v2: complete scrubbed provider responses are
779
779
  // available at toolResponse.rawV2 while toolResponse.raw and all declared
780
780
  // getters keep their established compatibility behavior.
781
- version: "0.3.30",
781
+ version: "0.3.31",
782
782
  updateSummary: "New raw-v2 tool responses preserve complete scrubbed provider envelopes at toolResponse.rawV2, including JSON:API included resources, links, cursors, and totals. Existing toolResponse.raw and declared getters keep working unchanged.",
783
783
  contracts: {
784
784
  api: {
package/dist/index.mjs CHANGED
@@ -701,7 +701,7 @@ var SDK_RELEASE = {
701
701
  // 0.3.0 introduces raw-v2: complete scrubbed provider responses are
702
702
  // available at toolResponse.rawV2 while toolResponse.raw and all declared
703
703
  // getters keep their established compatibility behavior.
704
- version: "0.3.30",
704
+ version: "0.3.31",
705
705
  updateSummary: "New raw-v2 tool responses preserve complete scrubbed provider envelopes at toolResponse.rawV2, including JSON:API included resources, links, cursors, and totals. Existing toolResponse.raw and declared getters keep working unchanged.",
706
706
  contracts: {
707
707
  api: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "deepline",
3
- "version": "0.3.30",
3
+ "version": "0.3.31",
4
4
  "description": "GTM data CLI and TypeScript SDK for coding agents",
5
5
  "license": "MIT",
6
6
  "homepage": "https://code.deepline.com",