deepline 0.3.392 → 0.3.394

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 (153) hide show
  1. package/dist/bundling-sources/sdk/src/client.ts +156 -24
  2. package/dist/bundling-sources/sdk/src/compat.ts +9 -0
  3. package/dist/bundling-sources/sdk/src/http.ts +5 -1
  4. package/dist/bundling-sources/sdk/src/index.ts +5 -0
  5. package/dist/bundling-sources/sdk/src/plays/run-request.ts +182 -6
  6. package/dist/bundling-sources/sdk/src/release.ts +4 -1
  7. package/dist/bundling-sources/sdk/src/types.ts +13 -0
  8. package/dist/bundling-sources/shared_libs/integration-contracts/request-warnings.ts +64 -0
  9. package/dist/bundling-sources/shared_libs/play-data-plane/runtime-sheet-storage-contract.ts +315 -0
  10. package/dist/bundling-sources/shared_libs/play-runtime/async-operation.ts +41 -8
  11. package/dist/bundling-sources/shared_libs/play-runtime/context.ts +895 -54
  12. package/dist/bundling-sources/shared_libs/play-runtime/ctx-types.ts +41 -4
  13. package/dist/bundling-sources/shared_libs/play-runtime/durable-call-policy.ts +28 -0
  14. package/dist/bundling-sources/shared_libs/play-runtime/durable-invocation-fence.ts +36 -0
  15. package/dist/bundling-sources/shared_libs/play-runtime/freshness-receipt-execution.ts +251 -0
  16. package/dist/bundling-sources/shared_libs/play-runtime/map-execution-frame.ts +11 -3
  17. package/dist/bundling-sources/shared_libs/play-runtime/play-runs/projection/gateway-adapter.ts +1 -0
  18. package/dist/bundling-sources/shared_libs/play-runtime/play-runtime-semantics.ts +30 -1
  19. package/dist/bundling-sources/shared_libs/play-runtime/run-identity.ts +26 -0
  20. package/dist/bundling-sources/shared_libs/play-runtime/runner-app/index.ts +168 -10
  21. package/dist/bundling-sources/shared_libs/play-runtime/runtime-api.ts +252 -10
  22. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-runtime-worker.ts +92 -58
  23. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres-pool.ts +7 -1
  24. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres-progress.ts +30 -7
  25. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres.ts +1161 -316
  26. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-event-search.ts +28 -15
  27. package/dist/bundling-sources/shared_libs/play-runtime/tool-execute-retry-policy.ts +24 -3
  28. package/dist/bundling-sources/shared_libs/play-runtime/tool-result.ts +32 -0
  29. package/dist/bundling-sources/shared_libs/plays/authoring-contract.ts +103 -23
  30. package/dist/bundling-sources/shared_libs/plays/core.ts +1 -1
  31. package/dist/bundling-sources/shared_libs/plays/dataset.ts +172 -79
  32. package/dist/bundling-sources/shared_libs/plays/static-pipeline.ts +173 -1
  33. package/dist/bundling-sources/shared_libs/plays/tool-result-types.ts +18 -0
  34. package/dist/cli/auth-IHKISLJQ.js +39 -0
  35. package/dist/cli/{auth-6JSA2ZCW.mjs → auth-OSXDAVCF.mjs} +4 -4
  36. package/dist/cli/{billing-Q5BLQHIU.js → billing-EKLYOXUY.js} +101 -74
  37. package/dist/cli/{billing-MRRO643H.mjs → billing-ZNNKX3UR.mjs} +32 -5
  38. package/dist/cli/{chunk-4SFPVW7A.js → chunk-2MDDA7A4.js} +26 -26
  39. package/dist/cli/{chunk-JOFPQGXW.js → chunk-354JCXA2.js} +50 -50
  40. package/dist/cli/{chunk-7E66A24V.mjs → chunk-3HU47EGZ.mjs} +71 -9
  41. package/dist/cli/{chunk-DSWSEHRX.mjs → chunk-3HWALOL2.mjs} +1 -1
  42. package/dist/cli/{chunk-T7OKJ2T6.js → chunk-4P27AXEA.js} +73 -63
  43. package/dist/cli/{chunk-24VEN5PQ.mjs → chunk-5BB2RGAX.mjs} +190 -18
  44. package/dist/cli/{chunk-JSLPHFP7.js → chunk-6YAUMG27.js} +3 -2
  45. package/dist/cli/{chunk-MU6M3URX.mjs → chunk-BP33SIZF.mjs} +1 -1
  46. package/dist/cli/{chunk-WMS5U6YB.js → chunk-CS6RAIVY.js} +20 -19
  47. package/dist/cli/{chunk-CVLM3WMJ.js → chunk-E23BQ5SC.js} +242 -183
  48. package/dist/cli/{chunk-2GAHHSLB.mjs → chunk-FJGW5GXU.mjs} +3 -2
  49. package/dist/cli/{chunk-YN6YA7ZZ.mjs → chunk-JHIJIHFB.mjs} +79 -20
  50. package/dist/cli/{chunk-Q6EOHNRH.mjs → chunk-JI2B4RZP.mjs} +119 -6
  51. package/dist/cli/{chunk-5O4B6AUN.js → chunk-KB4SDX5S.js} +71 -9
  52. package/dist/cli/{chunk-RV6ALZIX.js → chunk-KGNTKMRG.js} +32 -7
  53. package/dist/cli/{chunk-6DBOU7UH.js → chunk-KI635JN4.js} +176 -87
  54. package/dist/cli/{chunk-2FQG2HU4.js → chunk-KIUMEOM5.js} +8 -8
  55. package/dist/cli/{chunk-Y6VOGHF2.mjs → chunk-KZZC33PY.mjs} +0 -181
  56. package/dist/cli/{chunk-2Q3GEFL4.mjs → chunk-M57J2SK4.mjs} +2 -2
  57. package/dist/cli/{chunk-R3O2CZ4H.mjs → chunk-MFB2VKBO.mjs} +2 -2
  58. package/dist/cli/{chunk-QGKPTBRR.js → chunk-MH73HMPV.js} +3 -3
  59. package/dist/cli/{chunk-BB3FNYFY.js → chunk-MLPU5SMZ.js} +2 -2
  60. package/dist/cli/{chunk-2G7DXFHI.mjs → chunk-NR3DFKNF.mjs} +27 -2
  61. package/dist/cli/{chunk-EY7RFC6A.js → chunk-QIQBYKLB.js} +15 -15
  62. package/dist/cli/{chunk-RIV2GS5E.js → chunk-RBJYWRCF.js} +638 -466
  63. package/dist/cli/{chunk-3VN4FTE3.js → chunk-RDXFGPJU.js} +1 -182
  64. package/dist/cli/{chunk-YAZCDBXX.mjs → chunk-TJI2EN6K.mjs} +3 -2
  65. package/dist/cli/chunk-UBKA33KY.mjs +310 -0
  66. package/dist/cli/{chunk-PAIMOGCM.js → chunk-UHNDVD3P.js} +125 -12
  67. package/dist/cli/{chunk-4TCT77UF.js → chunk-URWF7NGQ.js} +6 -1
  68. package/dist/cli/{chunk-2QLML6G4.mjs → chunk-UXFSWG3Q.mjs} +4 -4
  69. package/dist/cli/{chunk-UCKJQG25.js → chunk-VK6FYZLP.js} +8 -8
  70. package/dist/cli/{chunk-ZTACINO5.mjs → chunk-X63FDZJZ.mjs} +13 -3
  71. package/dist/cli/chunk-XDVT3GOM.js +310 -0
  72. package/dist/cli/{chunk-A3APGZFP.mjs → chunk-XRQ2AQL7.mjs} +2 -2
  73. package/dist/cli/{chunk-3FV4GBRK.mjs → chunk-XXUDVEXK.mjs} +97 -8
  74. package/dist/cli/{chunk-PQSA443V.mjs → chunk-ZI2ZNDJK.mjs} +6 -1
  75. package/dist/cli/{chunk-HGYBEAQP.mjs → chunk-ZYBGA4AR.mjs} +3 -3
  76. package/dist/cli/command-docs.js +2 -2
  77. package/dist/cli/command-docs.mjs +1 -1
  78. package/dist/cli/{csv-E4QGUIGI.mjs → csv-5AXRB35H.mjs} +3 -3
  79. package/dist/cli/{csv-26U5T24Z.js → csv-LU7O75WE.js} +12 -12
  80. package/dist/cli/{db-JTRJIAQW.mjs → db-7XP5UWEW.mjs} +6 -5
  81. package/dist/cli/{db-QHBFLMVL.js → db-F7YTFKVM.js} +31 -30
  82. package/dist/cli/{describe-FDV2V74F.js → describe-FRH32RDV.js} +24 -23
  83. package/dist/cli/{describe-E3DE3ZK3.mjs → describe-K4ES5LIL.mjs} +17 -16
  84. package/dist/cli/{executions-B3GTNPRE.mjs → executions-IEHEHJUO.mjs} +6 -5
  85. package/dist/cli/{executions-VZYOGVQY.js → executions-RZV5XPT2.js} +8 -7
  86. package/dist/cli/{feedback-CR55FJA2.js → feedback-3P65QTX3.js} +7 -7
  87. package/dist/cli/{feedback-4CEBR3OV.mjs → feedback-FPUVZBAN.mjs} +3 -3
  88. package/dist/cli/{git-NM2PHHZ4.mjs → git-GLVVP7TY.mjs} +4 -4
  89. package/dist/cli/git-MFFAWVVX.js +23 -0
  90. package/dist/cli/index.js +100 -96
  91. package/dist/cli/index.mjs +47 -43
  92. package/dist/cli/{legacy-noops-A7MSW5ND.mjs → legacy-noops-3MOI6NBM.mjs} +4 -4
  93. package/dist/cli/{legacy-noops-ZUA4YFIH.js → legacy-noops-XKSGZR7Q.js} +7 -7
  94. package/dist/cli/{monitors-NVPRQYP3.mjs → monitors-FTBGNEFG.mjs} +6 -5
  95. package/dist/cli/{monitors-ZE3TLZ4H.js → monitors-NZ2DYNST.js} +87 -86
  96. package/dist/cli/{org-U7A6DV5D.js → org-MCKDQXIV.js} +66 -65
  97. package/dist/cli/{org-KUBILNQV.mjs → org-V2J5RBCN.mjs} +6 -5
  98. package/dist/cli/{play-HRDXQ4QE.mjs → play-AJFGME3B.mjs} +11 -10
  99. package/dist/cli/play-WLSN2EO2.js +158 -0
  100. package/dist/cli/{providers-VD6YTVQZ.js → providers-2JEZ2264.js} +9 -8
  101. package/dist/cli/{providers-OHIWI453.mjs → providers-I6RQJZFZ.mjs} +6 -5
  102. package/dist/cli/{quickstart-UBV2FONF.mjs → quickstart-BIDQDMO4.mjs} +3 -3
  103. package/dist/cli/{quickstart-ETTCWPA4.js → quickstart-GJ2RPDU3.js} +5 -5
  104. package/dist/cli/run-identity-G257GQED.js +25 -0
  105. package/dist/cli/run-identity-MRNCEGV2.mjs +25 -0
  106. package/dist/cli/search-5VN4YD4I.js +27 -0
  107. package/dist/cli/{search-F44IZRT7.mjs → search-ELRXFWG5.mjs} +7 -6
  108. package/dist/cli/{secrets-CAEMRORF.js → secrets-53IT6VXD.js} +15 -14
  109. package/dist/cli/{secrets-R6XOJZKU.mjs → secrets-SQXGZXIC.mjs} +6 -5
  110. package/dist/cli/{sessions-RLN6UQS3.mjs → sessions-2X5QF7SL.mjs} +4 -4
  111. package/dist/cli/{sessions-6GC7OFTT.js → sessions-CAV5M77Y.js} +5 -5
  112. package/dist/cli/{settings-DPNVUAV2.js → settings-532WNAZO.js} +76 -75
  113. package/dist/cli/{settings-KIPAMRPP.mjs → settings-7P67VGCJ.mjs} +9 -8
  114. package/dist/cli/{setup-DTL3L5SG.js → setup-6L2VSUWJ.js} +41 -41
  115. package/dist/cli/{setup-TU2F7PU5.mjs → setup-QGGBV2LE.mjs} +6 -6
  116. package/dist/cli/{skills-UV5MYJ46.mjs → skills-3FE62WBG.mjs} +4 -4
  117. package/dist/cli/skills-S6NPZAN7.js +28 -0
  118. package/dist/cli/tools-647RLXQS.js +41 -0
  119. package/dist/cli/{tools-QRRNDCQ7.mjs → tools-DMR25DEF.mjs} +10 -9
  120. package/dist/cli/{update-4426TF35.mjs → update-6RZMHJZP.mjs} +6 -6
  121. package/dist/cli/update-WVTSC3EM.js +28 -0
  122. package/dist/cli/{workflow-N4U5VLZ3.mjs → workflow-L2DQRE6R.mjs} +7 -6
  123. package/dist/cli/{workflow-HNLOVISB.js → workflow-TX4F2PIX.js} +17 -16
  124. package/dist/{client-e6Qh5ZIg.d.mts → client-BktIPdIj.d.mts} +153 -4
  125. package/dist/{client-Uxuy-xQ2.d.ts → client-C3O1Ipf3.d.ts} +153 -4
  126. package/dist/{compiler-manifest-CY2v8ab0.d.ts → compiler-manifest-DLxUY5kI.d.mts} +124 -10
  127. package/dist/{compiler-manifest-CY2v8ab0.d.mts → compiler-manifest-DLxUY5kI.d.ts} +124 -10
  128. package/dist/{index-BZ6uzZJl.d.ts → index-B_GM9E3q.d.ts} +1 -1
  129. package/dist/{index-B9fBZH1g.d.mts → index-SCb0NvDb.d.mts} +1 -1
  130. package/dist/index.d.mts +5 -5
  131. package/dist/index.d.ts +5 -5
  132. package/dist/index.js +120 -29
  133. package/dist/index.mjs +111 -20
  134. package/dist/install-integrity.json +94 -88
  135. package/dist/plays/bundle-play-file.d.mts +3 -3
  136. package/dist/plays/bundle-play-file.d.ts +3 -3
  137. package/dist/plays/bundle-play-file.mjs +2 -2
  138. package/dist/plays/run-request.d.mts +2 -2
  139. package/dist/plays/run-request.d.ts +2 -2
  140. package/dist/plays/run-request.js +5 -2
  141. package/dist/plays/run-request.mjs +4 -1
  142. package/dist/release.d.mts +4 -1
  143. package/dist/release.d.ts +4 -1
  144. package/dist/release.js +2 -2
  145. package/dist/release.mjs +1 -1
  146. package/package.json +1 -1
  147. package/dist/cli/auth-67TAELQL.js +0 -39
  148. package/dist/cli/git-I5JTK6YU.js +0 -23
  149. package/dist/cli/play-A2V7YDU7.js +0 -157
  150. package/dist/cli/search-WWXMBVPH.js +0 -26
  151. package/dist/cli/skills-SWOSEZLB.js +0 -28
  152. package/dist/cli/tools-IL2YCDQ6.js +0 -40
  153. package/dist/cli/update-BERDPEYR.js +0 -28
@@ -1,5 +1,5 @@
1
1
  /// <reference path="./text-imports.d.ts" />
2
- import { g as PlayCompilerManifest, ak as ToolResultBilling, Y as BillingEntitlements } from './compiler-manifest-CY2v8ab0.js';
2
+ import { g as PlayCompilerManifest, ak as ToolResultBilling, Y as BillingEntitlements } from './compiler-manifest-DLxUY5kI.js';
3
3
  import { z } from 'zod';
4
4
  import { MonitorFleetDefinition } from './monitor-fleet-contract.js';
5
5
 
@@ -308,6 +308,30 @@ type FixtureBehaviorV3 = {
308
308
  };
309
309
  type FixtureBehavior = FixtureBehaviorV1 | FixtureBehaviorV2 | FixtureBehaviorV3;
310
310
 
311
+ /** Declarative request predicates authored by the server, with no provider knowledge in clients. */
312
+ type ToolRequestCondition = {
313
+ field: string;
314
+ operator: 'equals';
315
+ value: string | number | boolean | null;
316
+ } | {
317
+ field: string;
318
+ operator: 'number_equals';
319
+ value: number;
320
+ } | {
321
+ field: string;
322
+ operator: 'present_nonblank';
323
+ } | {
324
+ all: readonly ToolRequestCondition[];
325
+ } | {
326
+ any: readonly ToolRequestCondition[];
327
+ };
328
+ type ToolRequestWarningRule = {
329
+ code: string;
330
+ /** Customer-safe Deepline billing guidance; never upstream spend. */
331
+ message: string;
332
+ when: ToolRequestCondition;
333
+ };
334
+
311
335
  type PlayGrepMatch = {
312
336
  field: 'name' | 'description' | 'provider' | 'source';
313
337
  terms: string[];
@@ -1710,6 +1734,8 @@ interface ToolDefinition extends ToolExecutionMetadataFields {
1710
1734
  message: string;
1711
1735
  execution?: 'terminal' | 'forward';
1712
1736
  };
1737
+ /** Ordered server-authored request warnings. The CLI prints the first match before dispatch. */
1738
+ requestWarnings?: readonly ToolRequestWarningRule[];
1713
1739
  /**
1714
1740
  * Connection status for discovery: `managed` (Deepline-run credentials),
1715
1741
  * `connected` (your own credential is connected), or `requires_connection`
@@ -3344,6 +3370,12 @@ interface PlayCheckToolGetterHint {
3344
3370
  * ```
3345
3371
  */
3346
3372
  interface StartPlayRunRequest {
3373
+ /** Tenant pin supplied by admission capability discovery; recovery must preserve it. */
3374
+ admissionOrgId?: string;
3375
+ /** Caller-owned canonical run ID. Reuse it to reconcile or replay an ambiguous start. */
3376
+ workflowId?: string;
3377
+ /** Strict total Deepline spend ceiling, including compute. Unbounded workloads are refused before admission. */
3378
+ maxTotalCredits?: number;
3347
3379
  /** Play name for registered revisions. */
3348
3380
  name?: string;
3349
3381
  /** Explicit revision ID when the caller wants a specific saved version. */
@@ -3924,6 +3956,34 @@ interface PlayStagedFileRef {
3924
3956
  bytes: number;
3925
3957
  }
3926
3958
 
3959
+ type RuntimeSheetRunRowMembership = {
3960
+ runId: string;
3961
+ datasetId: string;
3962
+ rowKey: string;
3963
+ phase: 'admitted' | 'terminal';
3964
+ /** Durable terminal row version distinguishes repair within an attempt. */
3965
+ generation: string;
3966
+ attemptSeq: number | null;
3967
+ rowVersion: number | null;
3968
+ inputIndex: number | null;
3969
+ inputDigest: string;
3970
+ status: 'pending' | 'enriched' | 'failed' | 'cancelled';
3971
+ data: Record<string, unknown>;
3972
+ source: Record<string, unknown>;
3973
+ recordedAt: string;
3974
+ };
3975
+ type RuntimeSheetRunRowMembershipPage = {
3976
+ entries: RuntimeSheetRunRowMembership[];
3977
+ nextCursor: string | null;
3978
+ coverage: {
3979
+ complete: boolean;
3980
+ expectedRows: number | null;
3981
+ captureStartedAt: string | null;
3982
+ captureCompletedAt: string | null;
3983
+ reason: 'storage_not_expanded' | 'legacy_or_capture_not_enabled' | 'capture_in_progress' | 'complete';
3984
+ };
3985
+ };
3986
+
3927
3987
  /**
3928
3988
  * The one client-side construction of a Play run start.
3929
3989
  *
@@ -3954,6 +4014,7 @@ declare const PLAY_FILES_STAGE_MINT_PATH = "/api/v2/plays/files/stage/mint";
3954
4014
  * responses so the staging fallbacks below classify failures identically.
3955
4015
  */
3956
4016
  interface PlayRunHttp {
4017
+ get?<T = unknown>(path: string): Promise<T>;
3957
4018
  post<T = unknown>(path: string, body: unknown, headers?: Record<string, string>, options?: {
3958
4019
  maxRetries?: number;
3959
4020
  exactUrlOnly?: boolean;
@@ -3976,7 +4037,20 @@ declare function buildPlayRunStartBody(request: ResolvedStartPlayRunRequest): Re
3976
4037
  * or times out, and retrying without an idempotency key can create a second
3977
4038
  * root run, so callers resolve ambiguous failures explicitly.
3978
4039
  */
3979
- declare function startPlayRun(http: PlayRunHttp, request: ResolvedStartPlayRunRequest, headers?: Record<string, string>): Promise<PlayRunStart>;
4040
+ declare function preparePlayRunAdmission(http: PlayRunHttp, request: ResolvedStartPlayRunRequest, onSubmission?: (intent: {
4041
+ workflowId: string;
4042
+ orgId: string;
4043
+ request: Record<string, unknown>;
4044
+ }) => void | Promise<void>): Promise<{
4045
+ body: Record<string, unknown>;
4046
+ workflowId?: string;
4047
+ supportsCallerIntent: boolean;
4048
+ }>;
4049
+ declare function startPlayRun(http: PlayRunHttp, request: ResolvedStartPlayRunRequest, headers?: Record<string, string>, onSubmission?: (intent: {
4050
+ workflowId: string;
4051
+ orgId: string;
4052
+ request: Record<string, unknown>;
4053
+ }) => void | Promise<void>): Promise<PlayRunStart>;
3980
4054
  declare function isPlayRunPackage(value: unknown): value is PlayRunPackage;
3981
4055
  /** Normalize any run-start response shape to `{ workflowId, … }`. */
3982
4056
  declare function normalizePlayRunStart(raw: Record<string, unknown>): PlayRunStart;
@@ -4644,6 +4718,13 @@ type PlaySheetRowsResult = {
4644
4718
  customerDbUrl?: string;
4645
4719
  deltaCursor?: number;
4646
4720
  };
4721
+ type PlayRunRowHistoryOptions = {
4722
+ playName: string;
4723
+ runId: string;
4724
+ tableNamespace: string;
4725
+ limit?: number;
4726
+ cursor?: string;
4727
+ };
4647
4728
  type PlaySecretMetadata = {
4648
4729
  _id: string;
4649
4730
  orgId: string;
@@ -4720,6 +4801,8 @@ type RunsNamespace = {
4720
4801
  /** Cancel the page request, including its response body and retry waits. */
4721
4802
  signal?: AbortSignal;
4722
4803
  }) => Promise<PlaySheetRowsResult>;
4804
+ /** One immutable history page; incomplete legacy coverage stays explicit. */
4805
+ rowHistory: (input: PlayRunRowHistoryOptions) => Promise<RuntimeSheetRunRowMembershipPage>;
4723
4806
  /** Stop a running/waiting run. */
4724
4807
  stop: (runId: string, options?: {
4725
4808
  reason?: string;
@@ -5922,6 +6005,8 @@ type BillingUsageResult = {
5922
6005
  * @sdkReference client 030 client.billing
5923
6006
  */
5924
6007
  type BillingNamespace = {
6008
+ /** Read a bounded sandbox-session estimate; excludes tools and Customer DB. */
6009
+ quote: (input: BillingQuoteRequest) => Promise<BillingQuoteResult>;
5925
6010
  /** Current workspace provider benefits; discovery does not authorize a call. */
5926
6011
  entitlements: () => Promise<BillingEntitlements>;
5927
6012
  /** Charge the saved payment method and add Deepline credits to the active workspace. */
@@ -5994,6 +6079,31 @@ type BillingNamespace = {
5994
6079
  url: string;
5995
6080
  }>;
5996
6081
  };
6082
+ type BillingQuoteRequest = {
6083
+ quantity: number;
6084
+ sandbox_runtime: {
6085
+ timeout?: string;
6086
+ size?: 'standard';
6087
+ };
6088
+ };
6089
+ type BillingQuoteResult = {
6090
+ scope: 'sandbox_session';
6091
+ quantity: number;
6092
+ resources: {
6093
+ timeoutSeconds: number;
6094
+ memoryGiB: number;
6095
+ cpu: number;
6096
+ diskGiB: number;
6097
+ };
6098
+ maximum_credits: number;
6099
+ maximum_billing_seconds: number;
6100
+ total_play_credits: null;
6101
+ total_budget_supported: false;
6102
+ unbounded_components: string[];
6103
+ explanation: string;
6104
+ plan_version_id: string;
6105
+ rate_card_id: string;
6106
+ };
5997
6107
  /**
5998
6108
  * Low-level typed REST client with authentication, retries, and localhost failover.
5999
6109
  *
@@ -6228,7 +6338,31 @@ declare class DeeplineClient {
6228
6338
  * });
6229
6339
  * ```
6230
6340
  */
6231
- startPlayRun(request: StartPlayRunRequest): Promise<PlayRunStart>;
6341
+ startPlayRun(request: StartPlayRunRequest, options?: {
6342
+ onSubmission?: (intent: {
6343
+ workflowId: string;
6344
+ orgId: string;
6345
+ request: Record<string, unknown>;
6346
+ }) => void | Promise<void>;
6347
+ }): Promise<PlayRunStart>;
6348
+ /**
6349
+ * Prepare a tenant-scoped start intent without executing it. Its stream
6350
+ * sender retains the exact body and transport selected during preparation.
6351
+ */
6352
+ preparePlayRunAdmission(request: StartPlayRunRequest, options?: {
6353
+ onSubmission?: (intent: {
6354
+ workflowId: string;
6355
+ orgId: string;
6356
+ request: Record<string, unknown>;
6357
+ }) => void | Promise<void>;
6358
+ }): Promise<{
6359
+ startStream(streamOptions?: {
6360
+ signal?: AbortSignal;
6361
+ }): AsyncGenerator<PlayLiveEvent, void, unknown>;
6362
+ body: Record<string, unknown>;
6363
+ workflowId?: string;
6364
+ supportsCallerIntent: boolean;
6365
+ }>;
6232
6366
  /**
6233
6367
  * Submit a play run through the legacy event response.
6234
6368
  *
@@ -6244,6 +6378,11 @@ declare class DeeplineClient {
6244
6378
  */
6245
6379
  startPlayRunStream(request: StartPlayRunRequest, options?: {
6246
6380
  signal?: AbortSignal;
6381
+ onSubmission?: (intent: {
6382
+ workflowId: string;
6383
+ orgId: string;
6384
+ request: Record<string, unknown>;
6385
+ }) => void | Promise<void>;
6247
6386
  }): AsyncGenerator<PlayLiveEvent>;
6248
6387
  /**
6249
6388
  * Register a bundled play artifact.
@@ -6719,6 +6858,11 @@ declare class DeeplineClient {
6719
6858
  private assertRunLogQueryRunId;
6720
6859
  /** Read structured history across the active organization without requiring a run ID. Defaults to the last hour, newest first; use the returned cursor and exact time bounds to continue. See [run logs and events](run-events.md) for all kinds, indexed fields, payloads and SDK/API response types. */
6721
6860
  searchRunEvents(options?: RunsEventSearchOptions): Promise<RunsEventSearchResult>;
6861
+ /**
6862
+ * Read one page of immutable admitted and terminal rows for a Play Run dataset.
6863
+ * Follow nextCursor; coverage explicitly identifies unavailable or incomplete history.
6864
+ */
6865
+ getPlayRunRowHistory(input: PlayRunRowHistoryOptions): Promise<RuntimeSheetRunRowMembershipPage>;
6722
6866
  /**
6723
6867
  * Export persisted runtime-sheet rows for a play dataset/table namespace.
6724
6868
  *
@@ -6803,6 +6947,11 @@ declare class DeeplineClient {
6803
6947
  }>;
6804
6948
  /** Read product-notification destinations, subscriptions, event catalog, and DLQ health. */
6805
6949
  getNotificationSettings(): Promise<ProductNotificationSettings>;
6950
+ /** Save provider-owned credential fields without starting an OAuth browser flow. */
6951
+ setIntegrationCredentials(provider: string, credentials: Record<string, string>): Promise<{
6952
+ ok: boolean;
6953
+ credential_saved?: boolean;
6954
+ }>;
6806
6955
  /** Start the Slack OAuth flow required by product notifications. */
6807
6956
  connectNotificationSlack(options?: {
6808
6957
  successUrl?: string;
@@ -7348,4 +7497,4 @@ declare class DeeplineClient {
7348
7497
  }>;
7349
7498
  }
7350
7499
 
7351
- export { type MonitorFleetGetOptions as $, type CustomerDbQueryPlan as A, type BillingNamespace as B, type ClearPlayHistoryResult as C, type DeeplineClientOptions as D, type ExecuteToolRawOptions as E, type CustomerDbQueryResult as F, DEEPLINE_TOOL_CATEGORIES as G, type DbNamespace as H, type DeeplineToolCategory as I, type IngestionStorageRepairResult as J, type LiveEventEnvelope as K, type LegacyMonitorStatusFilter as L, MONITOR_JOB_PHASES as M, MONITOR_JOB_RECONCILIATION_STATES as N, MONITOR_JOB_STATES as O, type PlayListItem as P, type MonitorBatchNamespace as Q, type ResolvedConfig as R, type StopPlayRunResult as S, type ToolDefinition as T, type MonitorCheckResult as U, type MonitorDefinition as V, type MonitorDeleteResult as W, type MonitorDependents as X, type MonitorDeployResult as Y, type MonitorDetail as Z, type MonitorFleetDeactivateOptions as _, type ToolMetadata as a, type RunEventFieldOperators as a$, type MonitorFleetReactivateOptions as a0, type MonitorFleetResult as a1, type MonitorFleetStatus as a2, type MonitorFleetSyncOptions as a3, type MonitorFleetWaitOptions as a4, type MonitorFleetsNamespace as a5, type MonitorJobDeployOptions as a6, type MonitorJobLogsOptions as a7, type MonitorJobPhase as a8, type MonitorJobReconciliationState as a9, type PlayRunActionPackage as aA, type PlayRunActivityProjection as aB, type PlayRunDatasetActions as aC, type PlayRunPackage as aD, type PlayRunResult as aE, type PlayRunStart as aF, type PlaySettings as aG, type PlaySettingsPatch as aH, type PlaySettingsPathsPage as aI, type PlaySettingsResult as aJ, type PlaySheetRow as aK, type PlaySheetRowsResult as aL, type PlayTriggerConfigUpdate as aM, type PlayTriggerConfigUpdateResult as aN, type PlayTriggerConfigView as aO, type PlayWebhookAuthConfig as aP, type PlayWebhookTriggerConfig as aQ, type PlaysActivityResponse as aR, type PlaysListOptions as aS, type PlaysListPage as aT, type PublishPlayVersionRequest as aU, type RerunOptions as aV, type RerunPlayRunResult as aW, type RunChildrenPage as aX, type RunEventCountResult as aY, type RunEventField as aZ, type RunEventFieldDescriptor as a_, type MonitorJobResult as aa, type MonitorJobState as ab, type MonitorJobWaitOptions as ac, type MonitorJobsNamespace as ad, type MonitorListEntry as ae, type MonitorPayload as af, type MonitorReactivateResult as ag, type MonitorSpec as ah, type MonitorState as ai, type MonitorStateFilter as aj, type MonitorUpdateChangeSummary as ak, type MonitorUpdateResult as al, type MonitorsAccessStatus as am, type MonitorsAvailableOptions as an, type MonitorsAvailableResult as ao, type MonitorsListOptions as ap, type MonitorsListResult as aq, type MonitorsNamespace as ar, type NormalizedRunEventQuery as as, type PlayActivityObservation as at, type PlayActivityState as au, type PlayActivityTarget as av, type PlayCostEstimate as aw, type PlayCronTriggerConfig as ax, type PlayLiveEvent as ay, type PlayPath as az, type ExecutionRecovery as b, planCustomerDbQuery as b$, type RunEventFieldsResult as b0, type RunEventGroupValue as b1, type RunEventMeasure as b2, type RunEventQueryCriteria as b3, type RunEventQueryEvent as b4, RunEventQueryInputError as b5, type RunEventQueryOptions as b6, type RunEventQueryPage as b7, type RunEventQueryRetention as b8, type RunEventScalar as b9, type RunsLogsNamespace as bA, type RunsLogsOptions as bB, type RunsLogsQueryOptions as bC, type RunsLogsQueryResult as bD, type RunsLogsResult as bE, type RunsLogsSummaryOptions as bF, type RunsLogsSummaryResult as bG, type RunsNamespace as bH, type RunsTailOptions as bI, type RunsWatchOptions as bJ, type SearchOptions as bK, type SearchResult as bL, type SearchResultItem as bM, type SearchType as bN, type StartPlayRunRequest as bO, type StopAllCandidate as bP, type StopAllPlayRunsDryRunResult as bQ, type StopAllPlayRunsResult as bR, type StopAllPlayRunsStopResult as bS, type StopAllRunsOptions as bT, type ToolExecution as bU, type ToolSearchOptions as bV, type ToolSearchResult as bW, type WorkspaceCreateResult as bX, type WorkspacesNamespace as bY, defineMonitor as bZ, isStopAllPlayRunsDryRunResult as b_, type RunEventSummaryOptions as ba, type RunEventSummaryResult as bb, type RunEventWhere as bc, type RunLifecycleStatus as bd, type RunToolReceiptResult as be, type RunToolReceiptsResponse as bf, type RunsChildrenOptions as bg, type RunsEventPayload as bh, type RunsEventSearchEntry as bi, type RunsEventSearchOptions as bj, type RunsEventSearchResult as bk, type RunsEventsCountResult as bl, type RunsEventsCriteria as bm, type RunsEventsFieldsOptions as bn, type RunsEventsListOptions as bo, type RunsEventsListResult as bp, type RunsEventsNamespace as bq, type RunsEventsSummaryOptions as br, type RunsEventsSummaryResult as bs, type RunsHistoryItem as bt, type RunsHistoryOptions as bu, type RunsHistoryPage as bv, type RunsListOptions as bw, type RunsListPage as bx, type RunsLogCriteria as by, type RunsLogsCountResult as bz, type ExecutionByKeyResult as c, CSV_DATA_INPUT_KEY as c0, type FileInputBinding as c1, type LocalFileInput as c2, type MintStagedFileUpload as c3, PLAY_FILES_STAGE_MINT_PATH as c4, PLAY_FILES_STAGE_PATH as c5, PLAY_RUN_START_PATH as c6, PLAY_RUN_START_STREAM_PATH as c7, type PlayRunHttp as c8, type ResolvedStartPlayRunRequest as c9, STAGE_LEGACY_MULTIPART_MAX_BYTES as ca, type StagedFileCodec as cb, type StagedFileInputs as cc, type StagedFileUpload as cd, buildNamedPlayRunRequest as ce, buildPlayRunStartBody as cf, createSessionPlayRunHttp as cg, createStagedFileUpload as ch, fileInputBindingsFromPlaySchema as ci, fileInputBindingsFromStaticPipeline as cj, getDottedInputValue as ck, isPlayRunPackage as cl, mintStagedPlayFileUploads as cm, normalizePlayRunStart as cn, playRunFileInputBindings as co, setDottedInputValue as cp, stageFileInputs as cq, stagePlayFiles as cr, stagedFileContentType as cs, startPlayRun as ct, webStagedFileCodec as cu, type PlayDetail as d, type PlayRunListItem as e, type PlayRevisionSummary as f, type PublishPlayVersionResult as g, type PlayStatus as h, DeeplineClient as i, type BillingCreditPool as j, type BillingInvoiceEntry as k, type BillingInvoicesResult as l, type BillingPaymentMethodSummary as m, type BillingRecentUsageEntry as n, type BillingSubscriptionCancelResult as o, type BillingSubscriptionStatus as p, type BillingTopUpReceipt as q, type BillingTopUpResult as r, type BillingUsageEvent as s, type BillingUsageOptions as t, type BillingUsageResult as u, type ChildRunSummary as v, type ClearPlayHistoryRequest as w, type CreateNotificationGroupInput as x, type CreateNotificationGroupResult as y, type CustomerDbQueryOptions as z };
7500
+ export { type MonitorDetail as $, type CreateNotificationGroupResult as A, type BillingNamespace as B, type ClearPlayHistoryResult as C, type DeeplineClientOptions as D, type ExecuteToolRawOptions as E, type CustomerDbQueryOptions as F, type CustomerDbQueryPlan as G, type CustomerDbQueryResult as H, DEEPLINE_TOOL_CATEGORIES as I, type DbNamespace as J, type DeeplineToolCategory as K, type IngestionStorageRepairResult as L, type LegacyMonitorStatusFilter as M, type LiveEventEnvelope as N, MONITOR_JOB_PHASES as O, type PlayListItem as P, MONITOR_JOB_RECONCILIATION_STATES as Q, type ResolvedConfig as R, type StopPlayRunResult as S, type ToolDefinition as T, MONITOR_JOB_STATES as U, type MonitorBatchNamespace as V, type MonitorCheckResult as W, type MonitorDefinition as X, type MonitorDeleteResult as Y, type MonitorDependents as Z, type MonitorDeployResult as _, type ToolMetadata as a, type RunEventCountResult as a$, type MonitorFleetDeactivateOptions as a0, type MonitorFleetGetOptions as a1, type MonitorFleetReactivateOptions as a2, type MonitorFleetResult as a3, type MonitorFleetStatus as a4, type MonitorFleetSyncOptions as a5, type MonitorFleetWaitOptions as a6, type MonitorFleetsNamespace as a7, type MonitorJobDeployOptions as a8, type MonitorJobLogsOptions as a9, type PlayLiveEvent as aA, type PlayPath as aB, type PlayRunActionPackage as aC, type PlayRunActivityProjection as aD, type PlayRunDatasetActions as aE, type PlayRunPackage as aF, type PlayRunResult as aG, type PlayRunRowHistoryOptions as aH, type PlayRunStart as aI, type PlaySettings as aJ, type PlaySettingsPatch as aK, type PlaySettingsPathsPage as aL, type PlaySettingsResult as aM, type PlaySheetRow as aN, type PlaySheetRowsResult as aO, type PlayTriggerConfigUpdate as aP, type PlayTriggerConfigUpdateResult as aQ, type PlayTriggerConfigView as aR, type PlayWebhookAuthConfig as aS, type PlayWebhookTriggerConfig as aT, type PlaysActivityResponse as aU, type PlaysListOptions as aV, type PlaysListPage as aW, type PublishPlayVersionRequest as aX, type RerunOptions as aY, type RerunPlayRunResult as aZ, type RunChildrenPage as a_, type MonitorJobPhase as aa, type MonitorJobReconciliationState as ab, type MonitorJobResult as ac, type MonitorJobState as ad, type MonitorJobWaitOptions as ae, type MonitorJobsNamespace as af, type MonitorListEntry as ag, type MonitorPayload as ah, type MonitorReactivateResult as ai, type MonitorSpec as aj, type MonitorState as ak, type MonitorStateFilter as al, type MonitorUpdateChangeSummary as am, type MonitorUpdateResult as an, type MonitorsAccessStatus as ao, type MonitorsAvailableOptions as ap, type MonitorsAvailableResult as aq, type MonitorsListOptions as ar, type MonitorsListResult as as, type MonitorsNamespace as at, type NormalizedRunEventQuery as au, type PlayActivityObservation as av, type PlayActivityState as aw, type PlayActivityTarget as ax, type PlayCostEstimate as ay, type PlayCronTriggerConfig as az, type ExecutionRecovery as b, type ToolSearchResult as b$, type RunEventField as b0, type RunEventFieldDescriptor as b1, type RunEventFieldOperators as b2, type RunEventFieldsResult as b3, type RunEventGroupValue as b4, type RunEventMeasure as b5, type RunEventQueryCriteria as b6, type RunEventQueryEvent as b7, RunEventQueryInputError as b8, type RunEventQueryOptions as b9, type RunsListPage as bA, type RunsLogCriteria as bB, type RunsLogsCountResult as bC, type RunsLogsNamespace as bD, type RunsLogsOptions as bE, type RunsLogsQueryOptions as bF, type RunsLogsQueryResult as bG, type RunsLogsResult as bH, type RunsLogsSummaryOptions as bI, type RunsLogsSummaryResult as bJ, type RunsNamespace as bK, type RunsTailOptions as bL, type RunsWatchOptions as bM, type SearchOptions as bN, type SearchResult as bO, type SearchResultItem as bP, type SearchType as bQ, type StartPlayRunRequest as bR, type StopAllCandidate as bS, type StopAllPlayRunsDryRunResult as bT, type StopAllPlayRunsResult as bU, type StopAllPlayRunsStopResult as bV, type StopAllRunsOptions as bW, type ToolExecution as bX, type ToolRequestCondition as bY, type ToolRequestWarningRule as bZ, type ToolSearchOptions as b_, type RunEventQueryPage as ba, type RunEventQueryRetention as bb, type RunEventScalar as bc, type RunEventSummaryOptions as bd, type RunEventSummaryResult as be, type RunEventWhere as bf, type RunLifecycleStatus as bg, type RunToolReceiptResult as bh, type RunToolReceiptsResponse as bi, type RunsChildrenOptions as bj, type RunsEventPayload as bk, type RunsEventSearchEntry as bl, type RunsEventSearchOptions as bm, type RunsEventSearchResult as bn, type RunsEventsCountResult as bo, type RunsEventsCriteria as bp, type RunsEventsFieldsOptions as bq, type RunsEventsListOptions as br, type RunsEventsListResult as bs, type RunsEventsNamespace as bt, type RunsEventsSummaryOptions as bu, type RunsEventsSummaryResult as bv, type RunsHistoryItem as bw, type RunsHistoryOptions as bx, type RunsHistoryPage as by, type RunsListOptions as bz, type ExecutionByKeyResult as c, type WorkspaceCreateResult as c0, type WorkspacesNamespace as c1, defineMonitor as c2, isStopAllPlayRunsDryRunResult as c3, planCustomerDbQuery as c4, CSV_DATA_INPUT_KEY as c5, type FileInputBinding as c6, type LocalFileInput as c7, type MintStagedFileUpload as c8, PLAY_FILES_STAGE_MINT_PATH as c9, webStagedFileCodec as cA, PLAY_FILES_STAGE_PATH as ca, PLAY_RUN_START_PATH as cb, PLAY_RUN_START_STREAM_PATH as cc, type PlayRunHttp as cd, type ResolvedStartPlayRunRequest as ce, STAGE_LEGACY_MULTIPART_MAX_BYTES as cf, type StagedFileCodec as cg, type StagedFileInputs as ch, type StagedFileUpload as ci, buildNamedPlayRunRequest as cj, buildPlayRunStartBody as ck, createSessionPlayRunHttp as cl, createStagedFileUpload as cm, fileInputBindingsFromPlaySchema as cn, fileInputBindingsFromStaticPipeline as co, getDottedInputValue as cp, isPlayRunPackage as cq, mintStagedPlayFileUploads as cr, normalizePlayRunStart as cs, playRunFileInputBindings as ct, preparePlayRunAdmission as cu, setDottedInputValue as cv, stageFileInputs as cw, stagePlayFiles as cx, stagedFileContentType as cy, startPlayRun as cz, type PlayDetail as d, type PlayRunListItem as e, type PlayRevisionSummary as f, type PublishPlayVersionResult as g, type PlayStatus as h, DeeplineClient as i, type BillingCreditPool as j, type BillingInvoiceEntry as k, type BillingInvoicesResult as l, type BillingPaymentMethodSummary as m, type BillingQuoteRequest as n, type BillingQuoteResult as o, type BillingRecentUsageEntry as p, type BillingSubscriptionCancelResult as q, type BillingSubscriptionStatus as r, type BillingTopUpReceipt as s, type BillingTopUpResult as t, type BillingUsageEvent as u, type BillingUsageOptions as v, type BillingUsageResult as w, type ChildRunSummary as x, type ClearPlayHistoryRequest as y, type CreateNotificationGroupInput as z };
@@ -589,6 +589,14 @@ type PlayDatasetWorkProgressSummary = {
589
589
  pending: number;
590
590
  failed: number;
591
591
  degraded?: boolean;
592
+ /** Fixed-shape source/output accounting; does not redefine legacy totals. */
593
+ cardinality?: {
594
+ sourceRows: number;
595
+ uniqueInputRows: number;
596
+ duplicateOccurrences: number;
597
+ outputRows: number;
598
+ rowIdentity: 'source_row' | 'key';
599
+ };
592
600
  duplicates?: {
593
601
  exact?: number;
594
602
  semantic?: number;
@@ -705,6 +713,19 @@ type ToolResultExecutionMetadata = {
705
713
  /** Canonical saved result identity; receiptKey may name a transport alias. */
706
714
  resultReceiptKey?: string;
707
715
  attachedToReceiptKey?: string;
716
+ /** Freshness and operation recovery are independent of provider idempotency. */
717
+ freshness?: CallFreshnessMetadata;
718
+ /** Time the live result completed, retained unchanged through recovery. */
719
+ completedAt?: number;
720
+ };
721
+ type CallFreshnessMetadata = {
722
+ requestedStaleAfterSeconds: number | null;
723
+ effectiveStaleAfterSeconds: number | null;
724
+ source: 'executed' | 'operation_recovery' | 'reusable_result' | 'live_observation';
725
+ resultAgeMs: number;
726
+ completedAt: number;
727
+ operationReceiptKey?: string;
728
+ unavailableReason?: string;
708
729
  };
709
730
  type ToolResultTargetMetadata = {
710
731
  value: unknown;
@@ -824,7 +845,7 @@ type ToolExecuteResultAccessors<TExtracted extends Record<string, unknown> = Par
824
845
  */
825
846
  type ToolExecuteResult<TResult = unknown, TMeta = Record<string, unknown>, TExtracted extends Record<string, unknown> = Partial<DeeplineGetterValueMap>, TLists extends Record<string, Record<string, unknown>> = Record<string, Record<string, unknown>>> = ToolExecuteResultBase<TResult, TMeta> & ToolExecuteResultAccessors<TExtracted, TLists>;
826
847
 
827
- declare const SUPPORTED_PLAY_AUTHORING_CONTRACT_EDITIONS: readonly [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
848
+ declare const SUPPORTED_PLAY_AUTHORING_CONTRACT_EDITIONS: readonly [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
828
849
  type PlayAuthoringContractEdition = (typeof SUPPORTED_PLAY_AUTHORING_CONTRACT_EDITIONS)[number];
829
850
  type PlaySqlListenerOperation = 'INSERT' | 'UPDATE' | 'DELETE';
830
851
  type PlayStandardWebhookHeaderFamily = 'standard' | 'svix';
@@ -1088,7 +1109,7 @@ type PlayAuthoringStepOptions<Row, Value = unknown> = {
1088
1109
  /** Legacy error-recompute flag accepted for older authored Plays. */
1089
1110
  readonly recomputeOnError?: boolean;
1090
1111
  /** Legacy cell staleness metadata accepted for older authored Plays. */
1091
- readonly staleAfterSeconds?: number;
1112
+ readonly staleAfterSeconds?: DurableCallStaleAfterSeconds;
1092
1113
  };
1093
1114
  /** Explicitly mark a step program as a provider fallback waterfall. */
1094
1115
  type PlayAuthoringStepProgramOptions = {
@@ -1115,7 +1136,7 @@ type PlayAuthoringStepProgramStep<TContext> = {
1115
1136
  readonly name: string;
1116
1137
  readonly recompute?: boolean;
1117
1138
  readonly recomputeOnError?: boolean;
1118
- readonly staleAfterSeconds?: number;
1139
+ readonly staleAfterSeconds?: DurableCallStaleAfterSeconds;
1119
1140
  readonly resolver: PlayAuthoringStepResolver<Record<string, unknown>, unknown, TContext> | PlayAuthoringConditionalStepResolver<Record<string, unknown>, unknown, TContext> | PlayAuthoringStepProgramResolver<Record<string, unknown>, unknown, TContext>;
1120
1141
  };
1121
1142
  type PlayAuthoringColumnResolver<Row, Value, TContext> = PlayAuthoringStepResolver<Row, Value, TContext> | PlayAuthoringConditionalStepResolver<Row, Value, TContext> | PlayAuthoringRunnableStepProgram<Value, TContext>;
@@ -1126,6 +1147,8 @@ type PlayAuthoringDatasetDefinitionOptions<InputRow extends object> = {
1126
1147
  type PlayAuthoringDatasetRunOptions<InputRow extends object> = {
1127
1148
  description?: string;
1128
1149
  key?: PlayAuthoringDatasetRowKey<InputRow>;
1150
+ /** Edition 11 CSVs always use source-row identity; key-based deduplication remains for non-CSV inputs and earlier editions. */
1151
+ rowIdentity?: 'source_row' | 'key';
1129
1152
  onRowError?: 'isolate' | 'fail';
1130
1153
  mode?: 'upsert' | 'net_new';
1131
1154
  /**
@@ -1216,8 +1239,10 @@ type PlayAuthoringRuntimeStepOptions = {
1216
1239
  /**
1217
1240
  * Durable freshness for one `ctx.fetch` call. The key identifies the request;
1218
1241
  * `staleAfterSeconds` controls when that completed request may be reused across
1219
- * Play runs. Omit it (or pass `null`) to reuse indefinitely, pass `0` to
1220
- * execute on every new run, or pass a positive number of seconds for a TTL.
1242
+ * Play runs. Edition 11 requires an explicit choice: `null` reuses indefinitely,
1243
+ * `0` executes on every new run, and a positive whole number sets the maximum
1244
+ * result age. Retained results are supported only for read methods (GET, HEAD,
1245
+ * OPTIONS); mutating methods require `0`. Transient calls do not retain results.
1221
1246
  *
1222
1247
  * Use this for polling or periodically refreshing one external resource. It
1223
1248
  * does not change dataset row identity.
@@ -1225,7 +1250,7 @@ type PlayAuthoringRuntimeStepOptions = {
1225
1250
  */
1226
1251
  type PlayAuthoringFetchOptions = {
1227
1252
  staleAfterSeconds?: DurableCallStaleAfterSeconds;
1228
- /** Run through Deepline's guarded outbound path without retaining a response receipt or checkpoint. Use this for short-lived credential exchanges or other response data that should stay in the running Play only. */
1253
+ /** Run through Deepline's guarded outbound path without retaining a response receipt or checkpoint. Edition 11 permits transient fetches only for GET, HEAD, and OPTIONS. */
1229
1254
  transient?: boolean;
1230
1255
  };
1231
1256
  /**
@@ -1281,6 +1306,8 @@ declare class CtxFetchHttpError extends Error {
1281
1306
  constructor(response: PlayAuthoringFetchResponse);
1282
1307
  }
1283
1308
  type PlayAuthoringCustomerDbQueryOptions = {
1309
+ id?: string;
1310
+ staleAfterSeconds?: 0;
1284
1311
  maxRows?: number;
1285
1312
  timeoutMs?: number;
1286
1313
  };
@@ -1336,6 +1363,7 @@ interface PlayAuthoringRuntimeContext<TListGetter extends 'dataset' | 'array' =
1336
1363
  /** Shorthand for one managed tool call. */
1337
1364
  tool<TOutput = PlayLooseObject>(key: string, toolId: string, input: Record<string, unknown>, options?: {
1338
1365
  description?: string;
1366
+ staleAfterSeconds?: DurableCallStaleAfterSeconds;
1339
1367
  }): Promise<TListGetter extends 'array' ? BasicToolExecuteResult<TOutput> : ToolExecuteResult<TOutput>>;
1340
1368
  /**
1341
1369
  * Execute one reusable step program against a scalar input.
@@ -1350,7 +1378,7 @@ interface PlayAuthoringRuntimeContext<TListGetter extends 'dataset' | 'array' =
1350
1378
  */
1351
1379
  step<T>(id: string, run: () => T | Promise<T>, options?: PlayAuthoringRuntimeStepOptions): Promise<T>;
1352
1380
  /**
1353
- * Execute a guarded HTTP request. By default, completed responses are durably reused; `staleAfterSeconds` governs only that completed call receipt, never dataset/request identity. Failed requests do not publish completed cache entries. A headers timeout leaves an upstream write's outcome unknown and does not establish whether its body was sent. The transport does not automatically retry that timed-out write, but a later invocation can execute it again. Mutating requests require provider-supported idempotency with the same key retained across retries and replay. Deadlines are platform-controlled; callers may cancel through `init.signal`. Pass `{ transient: true }` for short-lived credential exchanges or other response data that must not be retained in a receipt or checkpoint. Edition 5+ throws `CtxFetchHttpError` for non-2xx; catch it only when the Play intentionally recovers, otherwise let it fail the Play. Editions 1–4 retain their previous response projections.
1381
+ * Execute a guarded HTTP request. Edition 11 requires an explicit freshness choice; only GET, HEAD, and OPTIONS can retain completed responses. Mutating methods must use `staleAfterSeconds: 0`; the choice governs only the completed call receipt, never dataset/request identity. Failed requests do not publish completed cache entries. A headers timeout leaves an upstream write's outcome unknown and does not establish whether its body was sent. The transport does not automatically retry that timed-out write, but a later invocation can execute it again. Mutating requests require provider-supported idempotency with the same key retained across retries and replay. Deadlines are platform-controlled; callers may cancel through `init.signal`. Pass `{ transient: true }` only on GET, HEAD, and OPTIONS when the response must not be retained in a receipt or checkpoint; edition 11 rejects transient writes. Edition 5+ throws `CtxFetchHttpError` for non-2xx; catch it only when the Play intentionally recovers, otherwise let it fail the Play. Editions 1–4 retain their previous response projections.
1354
1382
  *
1355
1383
  * @sdkReference runtime 170 ctx.fetch(key, url, init)
1356
1384
  */
@@ -2025,7 +2053,7 @@ declare const PLAY_AUTHORING_FIELD_REGISTRY: {
2025
2053
  readonly required: false;
2026
2054
  readonly resolution: "runtime-allowed";
2027
2055
  readonly issueCode: "play_authoring_durable_policy_invalid";
2028
- readonly description: "`0` always executes; `null`/omitted never expires; a positive integer is a TTL in seconds.";
2056
+ readonly description: string;
2029
2057
  readonly errorMessage: "staleAfterSeconds must be null, 0 (always execute), or a positive whole number of seconds.";
2030
2058
  };
2031
2059
  readonly 'ctx.tools.execute.id': {
@@ -2296,6 +2324,24 @@ declare const PLAY_AUTHORING_FIELD_REGISTRY: {
2296
2324
  readonly description: "Stable field or fields used for durable row identity.";
2297
2325
  readonly errorMessage: "ctx.dataset run key must be a non-empty field, field list, or key function.";
2298
2326
  };
2327
+ readonly 'ctx.dataset.run.rowIdentity': {
2328
+ readonly schema: _sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"source_row">, _sinclair_typebox.TLiteral<"key">]>;
2329
+ readonly fixtures: {
2330
+ readonly valid: "source_row";
2331
+ readonly invalid: "dedupe";
2332
+ readonly absent: undefined;
2333
+ readonly unresolved: {
2334
+ readonly expression: "rowIdentity";
2335
+ };
2336
+ readonly edition1: "key";
2337
+ };
2338
+ readonly referenceType: "'source_row' | 'key'";
2339
+ readonly required: false;
2340
+ readonly resolution: "static-when-present";
2341
+ readonly issueCode: "play_authoring_dataset_option_invalid";
2342
+ readonly description: "Edition 11 CSV inputs always use source-row occurrence identity, even with rowIdentity: key; key-based deduplication remains available for non-CSV inputs and editions 1–10.";
2343
+ readonly errorMessage: "ctx.dataset run rowIdentity must be \"source_row\" or \"key\".";
2344
+ };
2299
2345
  readonly 'ctx.dataset.run.onRowError': {
2300
2346
  readonly schema: _sinclair_typebox.TUnion<[_sinclair_typebox.TLiteral<"isolate">, _sinclair_typebox.TLiteral<"fail">]>;
2301
2347
  readonly fixtures: {
@@ -2401,7 +2447,7 @@ declare const PLAY_AUTHORING_FIELD_REGISTRY: {
2401
2447
  readonly required: false;
2402
2448
  readonly resolution: "runtime-dynamic";
2403
2449
  readonly issueCode: "play_authoring_durable_policy_invalid";
2404
- readonly description: "Checkpoint freshness: null/omitted never expires, 0 always executes.";
2450
+ readonly description: string;
2405
2451
  readonly errorMessage: "staleAfterSeconds must be null, 0 (always execute), or a positive whole number of seconds.";
2406
2452
  };
2407
2453
  readonly 'ctx.fetch.key': {
@@ -2438,7 +2484,7 @@ declare const PLAY_AUTHORING_FIELD_REGISTRY: {
2438
2484
  readonly required: false;
2439
2485
  readonly resolution: "runtime-dynamic";
2440
2486
  readonly issueCode: "play_authoring_durable_policy_invalid";
2441
- readonly description: "Fetch freshness: null/omitted never expires, 0 always executes.";
2487
+ readonly description: string;
2442
2488
  readonly errorMessage: "staleAfterSeconds must be null, 0 (always execute), or a positive whole number of seconds.";
2443
2489
  };
2444
2490
  readonly 'ctx.runPlay.key': {
@@ -2697,6 +2743,42 @@ declare const PLAY_AUTHORING_FIELD_REGISTRY: {
2697
2743
  readonly description: "One non-empty Customer DB SQL string; the deprecated SqlQuery object is accepted only without parameter values.";
2698
2744
  readonly errorMessage: "ctx.customerDb.query statement must be a non-empty SQL string. Deprecated SqlQuery objects cannot contain parameter values.";
2699
2745
  };
2746
+ readonly 'ctx.customerDb.query.options.id': {
2747
+ readonly schema: _sinclair_typebox.TString;
2748
+ readonly fixtures: {
2749
+ readonly valid: "customer-report-read";
2750
+ readonly invalid: "";
2751
+ readonly absent: undefined;
2752
+ readonly unresolved: {
2753
+ readonly expression: "operationId";
2754
+ };
2755
+ readonly edition1: "query";
2756
+ };
2757
+ readonly referenceType: "string";
2758
+ readonly required: true;
2759
+ readonly resolution: "runtime-dynamic";
2760
+ readonly issueCode: "play_authoring_tool_request_invalid";
2761
+ readonly description: "Stable operation identity for Customer DB query recovery.";
2762
+ readonly errorMessage: "ctx.customerDb.query options.id must be a non-empty stable string.";
2763
+ };
2764
+ readonly 'ctx.customerDb.query.options.staleAfterSeconds': {
2765
+ readonly schema: _sinclair_typebox.TLiteral<0>;
2766
+ readonly fixtures: {
2767
+ readonly valid: 0;
2768
+ readonly invalid: 1;
2769
+ readonly absent: undefined;
2770
+ readonly unresolved: {
2771
+ readonly expression: "ttl";
2772
+ };
2773
+ readonly edition1: 0;
2774
+ };
2775
+ readonly referenceType: "number | null";
2776
+ readonly required: false;
2777
+ readonly resolution: "runtime-dynamic";
2778
+ readonly issueCode: "play_authoring_durable_policy_invalid";
2779
+ readonly description: "Customer DB queries always execute with freshness 0.";
2780
+ readonly errorMessage: "Customer DB queries must use staleAfterSeconds: 0.";
2781
+ };
2700
2782
  readonly 'ctx.customerDb.query.options.maxRows': {
2701
2783
  readonly schema: _sinclair_typebox.TInteger;
2702
2784
  readonly fixtures: {
@@ -3159,10 +3241,14 @@ interface PlayStaticSourceRange {
3159
3241
  endColumn: number;
3160
3242
  }
3161
3243
  type PlayStaticSubstepMetadata = {
3244
+ /** A source helper received execution context but its work could not be resolved. */
3245
+ unresolvedProviderWork?: boolean;
3162
3246
  /** This call is syntactically inside Promise.all/allSettled/race/any. */
3163
3247
  concurrent?: boolean;
3164
3248
  conditional?: boolean;
3165
3249
  disabled?: boolean;
3250
+ /** Source-bound input-only gate; absent means reachability is unknown. */
3251
+ inputRequirement?: PlayStaticInputCondition;
3166
3252
  /**
3167
3253
  * Where this substep was REACHED FROM, when the extractor resolved it by
3168
3254
  * following a call into another function — the range of the call expression
@@ -3192,9 +3278,37 @@ type PlayStaticControlFlowBranch = {
3192
3278
  label: string;
3193
3279
  /** The arm's condition source text, when it has one (omitted for `else`). */
3194
3280
  condition?: string;
3281
+ inputRequirement?: PlayStaticInputCondition;
3195
3282
  /** Static work in this arm. Empty for log/throw/return-only arms. */
3196
3283
  steps: PlayStaticSubstep[];
3197
3284
  };
3285
+ /** Declarative subset of input conditions; never evaluates authored JavaScript. */
3286
+ type PlayStaticInputValue = {
3287
+ kind: 'input';
3288
+ path: string[];
3289
+ } | {
3290
+ kind: 'literal';
3291
+ value: string | number | boolean | null;
3292
+ };
3293
+ type PlayStaticInputCondition = {
3294
+ kind: 'truthy';
3295
+ value: PlayStaticInputValue;
3296
+ } | {
3297
+ kind: 'not';
3298
+ condition: PlayStaticInputCondition;
3299
+ } | {
3300
+ kind: 'and' | 'or';
3301
+ left: PlayStaticInputCondition;
3302
+ right: PlayStaticInputCondition;
3303
+ } | {
3304
+ kind: 'equals';
3305
+ left: PlayStaticInputValue;
3306
+ right: PlayStaticInputValue;
3307
+ } | {
3308
+ kind: 'includes';
3309
+ value: PlayStaticInputValue;
3310
+ item: PlayStaticInputValue;
3311
+ };
3198
3312
  type PlayStaticSubstep = PlayStaticSubstepMetadata & ({
3199
3313
  type: 'csv';
3200
3314
  field: string;