deepline 0.3.128 → 0.3.130

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 (130) hide show
  1. package/dist/bundling-sources/sdk/src/client.ts +34 -9
  2. package/dist/bundling-sources/sdk/src/http.ts +22 -0
  3. package/dist/bundling-sources/sdk/src/release.ts +1 -1
  4. package/dist/bundling-sources/shared_libs/play-data-plane/r2.ts +22 -0
  5. package/dist/bundling-sources/shared_libs/play-runtime/app-runtime-api.ts +265 -2
  6. package/dist/bundling-sources/shared_libs/play-runtime/bounded-batch-function.ts +682 -0
  7. package/dist/bundling-sources/shared_libs/play-runtime/child-execution-strategy.ts +21 -5
  8. package/dist/bundling-sources/shared_libs/play-runtime/context.ts +5390 -1732
  9. package/dist/bundling-sources/shared_libs/play-runtime/ctx-types.ts +107 -1
  10. package/dist/bundling-sources/shared_libs/play-runtime/daytona-sandbox-janitor.ts +4 -1
  11. package/dist/bundling-sources/shared_libs/play-runtime/deployment/commands/roll-execution-relay.ts +7 -0
  12. package/dist/bundling-sources/shared_libs/play-runtime/deployment/fly-machines.ts +229 -7
  13. package/dist/bundling-sources/shared_libs/play-runtime/deployment/fly-registry.ts +25 -4
  14. package/dist/bundling-sources/shared_libs/play-runtime/deployment/runtime-gateway-capacity.ts +71 -0
  15. package/dist/bundling-sources/shared_libs/play-runtime/deployment/runtime-gateway-drain.ts +1 -1
  16. package/dist/bundling-sources/shared_libs/play-runtime/deployment/runtime-topology.ts +4 -1
  17. package/dist/bundling-sources/shared_libs/play-runtime/durable-receipt-execution.ts +694 -28
  18. package/dist/bundling-sources/shared_libs/play-runtime/egress-bandwidth-probe.ts +167 -0
  19. package/dist/bundling-sources/shared_libs/play-runtime/execute-server-timing.ts +103 -0
  20. package/dist/bundling-sources/shared_libs/play-runtime/execution-gateway-receipt-output-reference.ts +34 -0
  21. package/dist/bundling-sources/shared_libs/play-runtime/execution-gateway-response-size.ts +27 -0
  22. package/dist/bundling-sources/shared_libs/play-runtime/gateway-postgres-admission.ts +66 -1
  23. package/dist/bundling-sources/shared_libs/play-runtime/governor/app-runtime-rate-state-backend.ts +425 -71
  24. package/dist/bundling-sources/shared_libs/play-runtime/governor/governor.ts +210 -32
  25. package/dist/bundling-sources/shared_libs/play-runtime/governor/in-memory-rate-state-backend.ts +27 -13
  26. package/dist/bundling-sources/shared_libs/play-runtime/governor/policy.ts +19 -6
  27. package/dist/bundling-sources/shared_libs/play-runtime/governor/rate-state-backend.ts +61 -2
  28. package/dist/bundling-sources/shared_libs/play-runtime/integration-operation-reader-fence/contracts.ts +33 -1
  29. package/dist/bundling-sources/shared_libs/play-runtime/integration-operation-reader-fence/job.ts +42 -1
  30. package/dist/bundling-sources/shared_libs/play-runtime/launch-source-policy.ts +11 -11
  31. package/dist/bundling-sources/shared_libs/play-runtime/ledger-safe-payload.ts +49 -16
  32. package/dist/bundling-sources/shared_libs/play-runtime/map-memory-limits.ts +1653 -98
  33. package/dist/bundling-sources/shared_libs/play-runtime/memory-ledger.ts +807 -0
  34. package/dist/bundling-sources/shared_libs/play-runtime/memory-pressure-signal.ts +138 -0
  35. package/dist/bundling-sources/shared_libs/play-runtime/output-size-limits.ts +85 -3
  36. package/dist/bundling-sources/shared_libs/play-runtime/persistence-latch.ts +60 -2
  37. package/dist/bundling-sources/shared_libs/play-runtime/play-run-recovery-policy.ts +46 -1
  38. package/dist/bundling-sources/shared_libs/play-runtime/play-runs/terminal/contracts.ts +2 -0
  39. package/dist/bundling-sources/shared_libs/play-runtime/play-runs/terminal/job.ts +1 -0
  40. package/dist/bundling-sources/shared_libs/play-runtime/play-runs/terminal/ports.ts +1 -0
  41. package/dist/bundling-sources/shared_libs/play-runtime/play-runs/terminal/postgres-adapter.ts +1 -0
  42. package/dist/bundling-sources/shared_libs/play-runtime/play-runtime-semantics.ts +70 -27
  43. package/dist/bundling-sources/shared_libs/play-runtime/protocol.ts +56 -0
  44. package/dist/bundling-sources/shared_libs/play-runtime/provider-capacity/adaptive-provider-capacity-controller.ts +192 -0
  45. package/dist/bundling-sources/shared_libs/play-runtime/provider-capacity/epoch-aimd-rate-controller.ts +194 -0
  46. package/dist/bundling-sources/shared_libs/play-runtime/provider-capacity/fixture-capacity-simulator.ts +220 -0
  47. package/dist/bundling-sources/shared_libs/play-runtime/provider-capacity/gradient2-concurrency-controller.ts +214 -0
  48. package/dist/bundling-sources/shared_libs/play-runtime/provider-capacity/provider-capacity-policy.ts +43 -0
  49. package/dist/bundling-sources/shared_libs/play-runtime/provider-capacity/provider-concurrency-policy.ts +30 -0
  50. package/dist/bundling-sources/shared_libs/play-runtime/provider-capacity/provider-rate-policy.ts +95 -0
  51. package/dist/bundling-sources/shared_libs/play-runtime/provider-capacity/provider-throttle-classifier.ts +40 -0
  52. package/dist/bundling-sources/shared_libs/play-runtime/resource-governor.ts +1535 -11
  53. package/dist/bundling-sources/shared_libs/play-runtime/run-failure.ts +49 -2
  54. package/dist/bundling-sources/shared_libs/play-runtime/run-ledger.ts +6 -1
  55. package/dist/bundling-sources/shared_libs/play-runtime/run-log-buffer.ts +55 -0
  56. package/dist/bundling-sources/shared_libs/play-runtime/runner-app/egress-probe.ts +221 -0
  57. package/dist/bundling-sources/shared_libs/play-runtime/runner-app/index.ts +339 -29
  58. package/dist/bundling-sources/shared_libs/play-runtime/runner-app/runtime-deadline.ts +28 -1
  59. package/dist/bundling-sources/shared_libs/play-runtime/runner-app/runtime-progress-push.ts +192 -165
  60. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-lifecycle.ts +6 -0
  61. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-payload-transport.ts +90 -5
  62. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-runtime-watchdog.ts +281 -6
  63. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona.ts +27 -1
  64. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/local-process.ts +19 -0
  65. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/modal.ts +108 -0
  66. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/runtime-sandbox-reconciliation.ts +40 -0
  67. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/types.ts +11 -5
  68. package/dist/bundling-sources/shared_libs/play-runtime/runtime-actions.ts +30 -0
  69. package/dist/bundling-sources/shared_libs/play-runtime/runtime-api-compression.ts +276 -0
  70. package/dist/bundling-sources/shared_libs/play-runtime/runtime-api.ts +723 -115
  71. package/dist/bundling-sources/shared_libs/play-runtime/runtime-capacity-policy.ts +114 -4
  72. package/dist/bundling-sources/shared_libs/play-runtime/runtime-contract.ts +3 -2
  73. package/dist/bundling-sources/shared_libs/play-runtime/runtime-environment.ts +41 -4
  74. package/dist/bundling-sources/shared_libs/play-runtime/runtime-flow.ts +448 -0
  75. package/dist/bundling-sources/shared_libs/play-runtime/runtime-map-row-feed.ts +215 -0
  76. package/dist/bundling-sources/shared_libs/play-runtime/runtime-operation-contract.ts +11 -0
  77. package/dist/bundling-sources/shared_libs/play-runtime/runtime-receipt-store-adapter.ts +161 -14
  78. package/dist/bundling-sources/shared_libs/play-runtime/runtime-receipt-value.ts +184 -0
  79. package/dist/bundling-sources/shared_libs/play-runtime/runtime-receipt-writer.ts +607 -121
  80. package/dist/bundling-sources/shared_libs/play-runtime/runtime-sandbox-placement-policy.ts +4 -0
  81. package/dist/bundling-sources/shared_libs/play-runtime/runtime-sheet-row-writer.ts +21 -0
  82. package/dist/bundling-sources/shared_libs/play-runtime/sandbox-runs/contract.ts +15 -2
  83. package/dist/bundling-sources/shared_libs/play-runtime/sandbox-runs/runner-backend-adapter.ts +71 -14
  84. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-play-deploy-task.ts +2 -2
  85. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-runtime-worker.ts +288 -119
  86. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-shared.ts +8 -6
  87. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-worker-required-env.ts +28 -3
  88. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd.ts +28 -8
  89. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/canonical-integration-operation-store.ts +179 -0
  90. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/gateway-heavy-request-admission.ts +80 -2
  91. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/gateway-progress-registry.ts +31 -2
  92. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/integration-operation-store-contract.ts +104 -0
  93. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/integration-operation-value-reference.ts +47 -0
  94. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/integration-operation-value-retirement.ts +193 -0
  95. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/integration-operation-value-storage.ts +420 -0
  96. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres-pool.ts +146 -15
  97. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres-progress.ts +134 -3
  98. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres-rate-state.ts +1657 -95
  99. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres.ts +904 -77
  100. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/receipt-completion-coalescer.ts +452 -0
  101. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/receipt-gateway.ts +601 -42
  102. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/run-terminal-transition.ts +1 -0
  103. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-receipt-value-storage.ts +371 -0
  104. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/worker-resource-metrics.ts +86 -7
  105. package/dist/bundling-sources/shared_libs/play-runtime/secret-redaction.ts +153 -22
  106. package/dist/bundling-sources/shared_libs/play-runtime/tool-call/index.ts +1 -0
  107. package/dist/bundling-sources/shared_libs/play-runtime/tool-call/receipt-cohort.ts +188 -38
  108. package/dist/bundling-sources/shared_libs/play-runtime/tool-call/runtime-step-receipts-adapter.ts +28 -13
  109. package/dist/bundling-sources/shared_libs/play-runtime/tool-execute-retry-policy.ts +44 -1
  110. package/dist/bundling-sources/shared_libs/play-runtime/tool-result.ts +56 -4
  111. package/dist/bundling-sources/shared_libs/play-runtime/work-receipts.ts +2 -0
  112. package/dist/bundling-sources/shared_libs/plays/authoring-contract.ts +16 -10
  113. package/dist/bundling-sources/shared_libs/plays/dataset.ts +4 -1
  114. package/dist/cli/index.js +250 -38
  115. package/dist/cli/index.mjs +250 -38
  116. package/dist/{compiler-manifest-DfSnbCTW.d.mts → compiler-manifest-BIqRyj5m.d.mts} +1 -1
  117. package/dist/{compiler-manifest-DfSnbCTW.d.ts → compiler-manifest-BIqRyj5m.d.ts} +1 -1
  118. package/dist/index.d.mts +4 -2
  119. package/dist/index.d.ts +4 -2
  120. package/dist/index.js +231 -35
  121. package/dist/index.mjs +231 -35
  122. package/dist/install-integrity.json +31 -2
  123. package/dist/plays/bundle-play-file.d.mts +2 -2
  124. package/dist/plays/bundle-play-file.d.ts +2 -2
  125. package/dist/plays/bundle-play-file.mjs +65 -1
  126. package/dist/release.d.mts +1 -1
  127. package/dist/release.d.ts +1 -1
  128. package/dist/release.js +1 -1
  129. package/dist/release.mjs +1 -1
  130. package/package.json +1 -1
package/dist/index.mjs CHANGED
@@ -768,7 +768,7 @@ var SDK_RELEASE = {
768
768
  // getters keep their established compatibility behavior.
769
769
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
770
770
  // 0.3.90 is the first deliberately versioned SDK release for API v3.
771
- version: "0.3.128",
771
+ version: "0.3.130",
772
772
  updateSummary: "Play grep now returns concise results with the matched fields and terms. Automatic CLI updates are enabled by default; use `deepline settings autoupdate off` to opt out, `deepline settings autoupdate on` to re-enable updates, or `deepline settings autoupdate pin <version>` to hold an exact release.",
773
773
  packageCapabilities: {
774
774
  updatePreferences: 1
@@ -1588,6 +1588,20 @@ var HttpClient = class {
1588
1588
  }
1589
1589
  throw lastError;
1590
1590
  }
1591
+ if (typeof parsed === "string") {
1592
+ const interstitial = detectHtmlErrorBody(
1593
+ body,
1594
+ response.headers.get("content-type")
1595
+ );
1596
+ if (interstitial) {
1597
+ throw new DeeplineError(
1598
+ `${this.config.baseUrl} returned a deployment-protection page instead of JSON. Set VERCEL_PROTECTION_BYPASS_TOKEN, or run \`vercel login\` if the CLI session expired.`,
1599
+ response.status,
1600
+ "DEPLOYMENT_PROTECTED",
1601
+ { htmlErrorPage: true }
1602
+ );
1603
+ }
1604
+ }
1591
1605
  return parsed;
1592
1606
  } catch (error) {
1593
1607
  clearTimeout(timeoutId);
@@ -2059,6 +2073,11 @@ function normalizePlayRunLedgerTerminalSource(value) {
2059
2073
  ) ? value : null;
2060
2074
  }
2061
2075
 
2076
+ // ../play-runtime/run-log-buffer.ts
2077
+ var RUNNER_LOG_MAX_BYTES = 5 * 1024 * 1024;
2078
+ var TERMINAL_RESERVE_BYTES = 64 * 1024;
2079
+ var encoder = new TextEncoder();
2080
+
2062
2081
  // ../play-runtime/secret-redaction.ts
2063
2082
  var SECRET_REDACTION_PLACEHOLDER = "[REDACTED_SECRET]";
2064
2083
  var BEARER_TOKEN_RE = /\bBearer\s+[A-Za-z0-9._~+/=-]{12,}\b/g;
@@ -2076,6 +2095,18 @@ var SENSITIVE_FIELD_NAME_RE = new RegExp(
2076
2095
  `(^|[._-])(?:${SENSITIVE_FIELD_NAME})$`,
2077
2096
  "i"
2078
2097
  );
2098
+ var SENSITIVE_FIELD_NAME_CACHE_MAX_ENTRIES = 4096;
2099
+ var sensitiveFieldNameCache = /* @__PURE__ */ new Map();
2100
+ function isSensitiveFieldName(key) {
2101
+ const cached = sensitiveFieldNameCache.get(key);
2102
+ if (cached !== void 0) return cached;
2103
+ const sensitive = SENSITIVE_FIELD_NAME_RE.test(key);
2104
+ if (sensitiveFieldNameCache.size >= SENSITIVE_FIELD_NAME_CACHE_MAX_ENTRIES) {
2105
+ sensitiveFieldNameCache.clear();
2106
+ }
2107
+ sensitiveFieldNameCache.set(key, sensitive);
2108
+ return sensitive;
2109
+ }
2079
2110
  var SERIALIZED_SECRET_FIELD_RE = new RegExp(
2080
2111
  `"(${SENSITIVE_FIELD_NAME})"\\s*:\\s*(?:"[^"\\\\]*"|\\{[^{}]*\\})`,
2081
2112
  "gi"
@@ -2083,7 +2114,45 @@ var SERIALIZED_SECRET_FIELD_RE = new RegExp(
2083
2114
  function escapeRegExp(value) {
2084
2115
  return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
2085
2116
  }
2117
+ var REDACTION_TRIGGER_RE = new RegExp(
2118
+ [
2119
+ // Sensitive field names, in object keys and in `name=`/`"name":` text.
2120
+ "token",
2121
+ "secret",
2122
+ "password",
2123
+ "authorization",
2124
+ "cookie",
2125
+ "credential",
2126
+ // One `key` branch instead of `api[_-]?key`, `private[_-]?key` and `key_`.
2127
+ // A regex alternation costs roughly one substring scan per branch, and a
2128
+ // broader branch can only send more payloads down the exact path.
2129
+ "key",
2130
+ // Self-identifying credential prefixes.
2131
+ "bearer",
2132
+ "basic",
2133
+ "-----BEGIN",
2134
+ "xox[baprs]-",
2135
+ "[prs]k_",
2136
+ "pat_",
2137
+ "ghp_",
2138
+ // URL credentials: `//user:pass@host` userinfo and sensitive query params.
2139
+ // The userinfo class excludes `/` exactly as the rule it guards does.
2140
+ "//[^\\s/]{0,256}@",
2141
+ "[?#&]sig",
2142
+ // JWTs carry no keyword at all, so the shape itself is the marker. Anchor
2143
+ // on the separating dot and drop JWT_RE's leading `{8,}` segment: a dot is
2144
+ // rare enough for the engine to skip between candidates, which makes this
2145
+ // gate roughly ten times cheaper than re-running JWT_RE itself, and
2146
+ // dropping a required segment can only widen what it accepts.
2147
+ "\\.[A-Za-z0-9_-]{1,16384}\\.[A-Za-z0-9_-]{8}"
2148
+ ].join("|"),
2149
+ "i"
2150
+ );
2151
+ function mightContainRedactableSecret(value) {
2152
+ return REDACTION_TRIGGER_RE.test(value);
2153
+ }
2086
2154
  function redactSecretLikeString(value) {
2155
+ if (!mightContainRedactableSecret(value)) return value;
2087
2156
  const serializedRedacted = value.replace(
2088
2157
  SERIALIZED_SECRET_FIELD_RE,
2089
2158
  `"$1":"${SECRET_REDACTION_PLACEHOLDER}"`
@@ -2105,9 +2174,26 @@ function redactSecretLikeString(value) {
2105
2174
  }
2106
2175
  function createSecretRedactionContext(initialValues = []) {
2107
2176
  const exactSecrets = /* @__PURE__ */ new Set();
2177
+ const exactSecretMatchers = /* @__PURE__ */ new Map();
2108
2178
  function register(value) {
2109
2179
  if (value.length > 0) exactSecrets.add(value);
2110
2180
  }
2181
+ function matchersForSecret(secret) {
2182
+ const cached = exactSecretMatchers.get(secret);
2183
+ if (cached) return cached;
2184
+ const literals = [secret];
2185
+ try {
2186
+ const encoded = encodeURIComponent(secret);
2187
+ if (encoded !== secret) literals.push(encoded);
2188
+ } catch {
2189
+ }
2190
+ const built = literals.map((literal) => ({
2191
+ literal,
2192
+ matcher: new RegExp(escapeRegExp(literal), "g")
2193
+ }));
2194
+ exactSecretMatchers.set(secret, built);
2195
+ return built;
2196
+ }
2111
2197
  for (const value of initialValues) register(value);
2112
2198
  function containsRegisteredSecret(value, {
2113
2199
  includeEncoded = false,
@@ -2130,21 +2216,13 @@ function createSecretRedactionContext(initialValues = []) {
2130
2216
  return exactSecrets.has(value);
2131
2217
  }
2132
2218
  function redactRegisteredSecrets(value) {
2219
+ if (exactSecrets.size === 0) return value;
2133
2220
  let output = value;
2134
2221
  for (const secret of exactSecrets) {
2135
- output = output.replace(
2136
- new RegExp(escapeRegExp(secret), "g"),
2137
- SECRET_REDACTION_PLACEHOLDER
2138
- );
2139
- try {
2140
- const encoded = encodeURIComponent(secret);
2141
- if (encoded !== secret) {
2142
- output = output.replace(
2143
- new RegExp(escapeRegExp(encoded), "g"),
2144
- SECRET_REDACTION_PLACEHOLDER
2145
- );
2146
- }
2147
- } catch {
2222
+ for (const { literal, matcher } of matchersForSecret(secret)) {
2223
+ if (!output.includes(literal)) continue;
2224
+ matcher.lastIndex = 0;
2225
+ output = output.replace(matcher, SECRET_REDACTION_PLACEHOLDER);
2148
2226
  }
2149
2227
  }
2150
2228
  return output;
@@ -2155,13 +2233,33 @@ function createSecretRedactionContext(initialValues = []) {
2155
2233
  }
2156
2234
  function redact(value) {
2157
2235
  if (typeof value === "string") return redactString2(value);
2158
- if (Array.isArray(value)) return value.map((entry) => redact(entry));
2236
+ if (Array.isArray(value)) {
2237
+ let changed = false;
2238
+ const next = new Array(value.length);
2239
+ for (let index = 0; index < value.length; index += 1) {
2240
+ const entry = value[index];
2241
+ const redacted = redact(entry);
2242
+ next[index] = redacted;
2243
+ if (redacted !== entry) changed = true;
2244
+ }
2245
+ return changed ? next : value;
2246
+ }
2159
2247
  if (value && typeof value === "object") {
2248
+ const prototype = Object.getPrototypeOf(value);
2249
+ let changed = prototype !== Object.prototype && prototype !== null;
2250
+ const source = value;
2251
+ const keys = Object.keys(source);
2252
+ const redactedValues = new Array(keys.length);
2253
+ for (let index = 0; index < keys.length; index += 1) {
2254
+ const key = keys[index];
2255
+ const entry = source[key];
2256
+ const redacted = isSensitiveFieldName(key) ? SECRET_REDACTION_PLACEHOLDER : redact(entry);
2257
+ redactedValues[index] = redacted;
2258
+ if (redacted !== entry) changed = true;
2259
+ }
2260
+ if (!changed) return value;
2160
2261
  return Object.fromEntries(
2161
- Object.entries(value).map(([key, entry]) => [
2162
- key,
2163
- SENSITIVE_FIELD_NAME_RE.test(key) ? SECRET_REDACTION_PLACEHOLDER : redact(entry)
2164
- ])
2262
+ keys.map((key, index) => [key, redactedValues[index]])
2165
2263
  );
2166
2264
  }
2167
2265
  return value;
@@ -2199,9 +2297,10 @@ var CUSTOMER_OUTPUT_VALUE_MAX_BYTES = 5 * 1024 * 1024;
2199
2297
  var CUSTOMER_OUTPUT_TOTAL_MAX_BYTES = 5 * 1024 * 1024;
2200
2298
  var RUNTIME_RECEIPT_OUTPUT_MAX_BYTES = 10 * 1024 * 1024;
2201
2299
  var RUNTIME_RECEIPT_COMPLETION_BUFFER_MAX_BYTES = 32 * 1024 * 1024;
2300
+ var RUNTIME_RECEIPT_CONTROL_BUFFER_MAX_BYTES = 2 * 1024 * 1024;
2202
2301
  var RUNNER_TERMINAL_PUSH_MAX_BODY_BYTES = 16 * 1024 * 1024;
2203
2302
  var RUNTIME_RECEIPT_GATEWAY_BATCH_MAX_BYTES = 12 * 1024 * 1024;
2204
- var RUNTIME_RECEIPT_WRITER_TARGET_BATCH_BYTES = 4 * 1024 * 1024;
2303
+ var RUNTIME_RECEIPT_WRITER_TARGET_BATCH_BYTES = 8 * 1024 * 1024;
2205
2304
  var RUNNER_POST_TERMINAL_DIAGNOSTIC_MAX_BYTES = 64 * 1024;
2206
2305
  var JSON_SIZE_LIMIT_REACHED = Symbol("JSON_SIZE_LIMIT_REACHED");
2207
2306
 
@@ -3009,7 +3108,11 @@ function normalizePlayRunLedgerSnapshot(value, fallback) {
3009
3108
  finiteNumber(value.totalLogCount) ?? logTail.length,
3010
3109
  logTail.length
3011
3110
  ),
3012
- logsTruncated: value.logsTruncated === true,
3111
+ // A persisted snapshot carrying more lines than the tail keeps is
3112
+ // truncated here, whatever the stored flag says. Reporting `false` while
3113
+ // dropping lines is silent loss: a reader would take the tail for the
3114
+ // whole log.
3115
+ logsTruncated: value.logsTruncated === true || logTail.length > LOG_TAIL_LIMIT,
3013
3116
  activeStepId: optionalNullableString(value.activeStepId),
3014
3117
  activeActivityId: optionalNullableString(value.activeActivityId),
3015
3118
  activeArtifactTableNamespace: optionalNullableString(
@@ -3900,28 +4003,42 @@ var PLAY_BACKEND_DESCRIPTORS = {
3900
4003
  // ../play-runtime/runtime-environment.ts
3901
4004
  var PLAY_RUNTIME_ENVIRONMENTS = ["preview"];
3902
4005
  var PLAY_RUNTIME_NAMESPACE_PATTERN = /^[a-z][a-z0-9-]{0,30}$/;
4006
+ var PLAY_RUNTIME_SANDBOX_PLACEMENT_POLICY_PATTERN = /^[a-z][a-z0-9_]*@[1-9][0-9]*$/;
3903
4007
  function normalizePlayRuntimeNamespace(value) {
3904
4008
  if (typeof value !== "string") return null;
3905
4009
  const normalized = value.trim();
3906
4010
  return PLAY_RUNTIME_NAMESPACE_PATTERN.test(normalized) ? normalized : null;
3907
4011
  }
4012
+ function normalizePlayRuntimeSandboxPlacementPolicy(value) {
4013
+ if (typeof value !== "string") return null;
4014
+ const normalized = value.trim();
4015
+ return PLAY_RUNTIME_SANDBOX_PLACEMENT_POLICY_PATTERN.test(normalized) ? normalized : null;
4016
+ }
3908
4017
  function normalizePlayRuntimeSelection(value) {
3909
4018
  if (!value || typeof value !== "object" || Array.isArray(value)) return null;
3910
4019
  const record3 = value;
3911
4020
  if (Object.keys(record3).some(
3912
- (key) => key !== "environment" && key !== "namespace" && key !== "backend"
4021
+ (key) => key !== "environment" && key !== "namespace" && key !== "backend" && key !== "sandboxPlacementPolicy"
3913
4022
  ) || record3.environment !== "preview") {
3914
4023
  return null;
3915
4024
  }
3916
4025
  const namespace = normalizePlayRuntimeNamespace(record3.namespace);
3917
4026
  if (!namespace) return null;
3918
- if (record3.backend === void 0) {
3919
- return { environment: "preview", namespace };
4027
+ const sandboxPlacementPolicy = record3.sandboxPlacementPolicy === void 0 ? void 0 : normalizePlayRuntimeSandboxPlacementPolicy(
4028
+ record3.sandboxPlacementPolicy
4029
+ );
4030
+ if (record3.sandboxPlacementPolicy !== void 0 && sandboxPlacementPolicy === null) {
4031
+ return null;
3920
4032
  }
3921
- if (record3.backend !== PLAY_RUNTIME_BACKENDS.daytona && record3.backend !== PLAY_RUNTIME_BACKENDS.modal) {
4033
+ if (record3.backend !== void 0 && record3.backend !== PLAY_RUNTIME_BACKENDS.daytona && record3.backend !== PLAY_RUNTIME_BACKENDS.modal) {
3922
4034
  return null;
3923
4035
  }
3924
- return { environment: "preview", namespace, backend: record3.backend };
4036
+ return {
4037
+ environment: "preview",
4038
+ namespace,
4039
+ ...record3.backend === void 0 ? {} : { backend: record3.backend },
4040
+ ...sandboxPlacementPolicy ? { sandboxPlacementPolicy } : {}
4041
+ };
3925
4042
  }
3926
4043
  function normalizePlayRuntimeEnvironment(value) {
3927
4044
  return typeof value === "string" && PLAY_RUNTIME_ENVIRONMENTS.includes(value) ? value : null;
@@ -4015,7 +4132,7 @@ function resolvePlayRunRuntimeSelection(request) {
4015
4132
  const runtime = normalizePlayRuntimeSelection(request.runtime);
4016
4133
  if (!runtime) {
4017
4134
  throw new DeeplineError(
4018
- 'runtime must be { environment: "preview", namespace, backend?: "daytona" | "modal" } with namespace matching ^[a-z][a-z0-9-]{0,30}$.',
4135
+ 'runtime must be { environment: "preview", namespace, backend?: "daytona" | "modal", sandboxPlacementPolicy?: "policy_name@1" } with namespace matching ^[a-z][a-z0-9-]{0,30}$.',
4019
4136
  void 0,
4020
4137
  "INVALID_RUNTIME_SELECTION"
4021
4138
  );
@@ -4025,11 +4142,15 @@ function resolvePlayRunRuntimeSelection(request) {
4025
4142
  const configured = process.env.DEEPLINE_RUNTIME_ENVIRONMENT?.trim();
4026
4143
  const configuredNamespace = process.env.DEEPLINE_RUNTIME_NAMESPACE?.trim();
4027
4144
  const configuredToken = process.env.DEEPLINE_RUNTIME_ENVIRONMENT_TOKEN?.trim();
4145
+ const configuredPlacementPolicy = process.env.DEEPLINE_RUNTIME_SANDBOX_PLACEMENT_POLICY?.trim();
4028
4146
  if (!configured) {
4029
- if (configuredNamespace || configuredToken) {
4147
+ if (configuredNamespace || configuredToken || configuredPlacementPolicy) {
4030
4148
  const present = [];
4031
4149
  if (configuredNamespace) present.push("DEEPLINE_RUNTIME_NAMESPACE");
4032
4150
  if (configuredToken) present.push("DEEPLINE_RUNTIME_ENVIRONMENT_TOKEN");
4151
+ if (configuredPlacementPolicy) {
4152
+ present.push("DEEPLINE_RUNTIME_SANDBOX_PLACEMENT_POLICY");
4153
+ }
4033
4154
  const isPlural = present.length > 1;
4034
4155
  throw new DeeplineError(
4035
4156
  [
@@ -4060,18 +4181,28 @@ function resolvePlayRunRuntimeSelection(request) {
4060
4181
  "INVALID_RUNTIME_NAMESPACE"
4061
4182
  );
4062
4183
  }
4063
- const configuredBackend = process.env.DEEPLINE_PLAY_RUNNER_BACKEND?.trim();
4064
- if (!configuredBackend) {
4065
- return { environment, namespace };
4066
- }
4067
- if (configuredBackend !== "daytona" && configuredBackend !== "modal") {
4184
+ const configuredBackendValue = process.env.DEEPLINE_PLAY_RUNNER_BACKEND?.trim();
4185
+ const configuredBackend = configuredBackendValue === "daytona" || configuredBackendValue === "modal" ? configuredBackendValue : void 0;
4186
+ if (configuredBackendValue && !configuredBackend) {
4068
4187
  throw new DeeplineError(
4069
- `DEEPLINE_PLAY_RUNNER_BACKEND must be daytona or modal for preview runtime selection. Received "${configuredBackend}".`,
4188
+ `DEEPLINE_PLAY_RUNNER_BACKEND must be daytona or modal for preview runtime selection. Received "${configuredBackendValue}".`,
4070
4189
  void 0,
4071
4190
  "INVALID_RUNTIME_BACKEND"
4072
4191
  );
4073
4192
  }
4074
- return { environment, namespace, backend: configuredBackend };
4193
+ if (configuredPlacementPolicy && !normalizePlayRuntimeSandboxPlacementPolicy(configuredPlacementPolicy)) {
4194
+ throw new DeeplineError(
4195
+ `DEEPLINE_RUNTIME_SANDBOX_PLACEMENT_POLICY must be a versioned placement policy id such as daytona_only@1. Received "${configuredPlacementPolicy}".`,
4196
+ void 0,
4197
+ "INVALID_RUNTIME_SANDBOX_PLACEMENT_POLICY"
4198
+ );
4199
+ }
4200
+ return {
4201
+ environment,
4202
+ namespace,
4203
+ ...configuredBackend ? { backend: configuredBackend } : {},
4204
+ ...configuredPlacementPolicy ? { sandboxPlacementPolicy: configuredPlacementPolicy } : {}
4205
+ };
4075
4206
  }
4076
4207
  function runtimeSelectionHeaders(runtime) {
4077
4208
  if (!runtime) return void 0;
@@ -7886,6 +8017,7 @@ var NODE_INSPECT_CUSTOM = Symbol.for("nodejs.util.inspect.custom");
7886
8017
  var residentRowsByDataset = /* @__PURE__ */ new WeakMap();
7887
8018
  var DEFAULT_MATERIALIZE_LIMIT = 1e4;
7888
8019
  var PLAY_DATASET_EXECUTION_PAGE_BYTES = 64 * 1024 * 1024;
8020
+ var DATASET_UTF8_ENCODER = new TextEncoder();
7889
8021
  var PLAY_DATASET_CELL_MAX_BYTES = 5 * 1024 * 1024;
7890
8022
  function resolveMaterializeLimitCap() {
7891
8023
  const raw = process.env.DEEPLINE_PLAY_DATASET_MATERIALIZE_LIMIT;
@@ -9164,6 +9296,70 @@ function replaceAtPath(root, path, replacement) {
9164
9296
  // ../plays/authoring-contract.ts
9165
9297
  import { Type } from "@sinclair/typebox";
9166
9298
  import { Value } from "@sinclair/typebox/value";
9299
+ var SUPPORTED_PLAY_AUTHORING_CONTRACT_EDITIONS = [
9300
+ 1,
9301
+ 2,
9302
+ 3,
9303
+ 4,
9304
+ 5,
9305
+ 6,
9306
+ 7,
9307
+ 8
9308
+ ];
9309
+ var PLAY_AUTHORING_CONTRACT_CHANGELOG_DETAILS = [
9310
+ {
9311
+ changed: "Historical extraction semantics. Invalid or unresolved optional authoring fields may normalize to absence.",
9312
+ compatibilityOwner: "Plays Runtime",
9313
+ newWritesEnd: "2026-11-03",
9314
+ readerRemoval: "After every retained edition 1 artifact has a materialized admitted snapshot."
9315
+ },
9316
+ {
9317
+ changed: "Pins admitted authoring snapshots and rejects ambiguous billing, secret, webhook, fetch, timeout, receipt-wait, and freshness contracts.",
9318
+ compatibilityOwner: "Plays Runtime",
9319
+ newWritesEnd: "2026-08-03",
9320
+ readerRemoval: "After every retained edition 2 artifact has an admitted input schema or has been republished."
9321
+ },
9322
+ {
9323
+ changed: "Materializes the declared input schema in the admitted snapshot so launch never reparses current source.",
9324
+ compatibilityOwner: "Plays Runtime",
9325
+ newWritesEnd: "2026-08-19",
9326
+ readerRemoval: null
9327
+ },
9328
+ {
9329
+ changed: "ctx.secrets.get(name) resolves an allowed secret to a plaintext string for ordinary Play code. Editions 1\u20133 retain opaque secret handles.",
9330
+ compatibilityOwner: "Plays Runtime",
9331
+ newWritesEnd: null,
9332
+ readerRemoval: null
9333
+ },
9334
+ {
9335
+ changed: "ctx.fetch throws a typed, redacted CtxFetchHttpError for non-2xx responses. Editions 1\u20134 continue to return the response record for every HTTP status.",
9336
+ compatibilityOwner: "Plays Runtime",
9337
+ newWritesEnd: null,
9338
+ readerRemoval: null
9339
+ },
9340
+ {
9341
+ changed: "Adds static cron input and rejects unknown definePlay and binding fields during new admission. Editions 1\u20135 retain their admitted binding semantics.",
9342
+ compatibilityOwner: "Plays Runtime",
9343
+ newWritesEnd: null,
9344
+ readerRemoval: null
9345
+ },
9346
+ {
9347
+ changed: "Slack HITL calls that omit timeout wait one week. Editions 1\u20136 retain the historical 24-hour default.",
9348
+ compatibilityOwner: "Plays Runtime",
9349
+ newWritesEnd: null,
9350
+ readerRemoval: null
9351
+ },
9352
+ {
9353
+ changed: "Lets an inline scalar child execute without a stored static pipeline. Dataset creation and suspension remain rejected by the authoritative runtime capability boundary; editions 1\u20137 retain static-contract preflight rejection.",
9354
+ compatibilityOwner: "Plays Runtime",
9355
+ newWritesEnd: null,
9356
+ readerRemoval: null
9357
+ }
9358
+ ];
9359
+ var PLAY_AUTHORING_CONTRACT_CHANGELOG = SUPPORTED_PLAY_AUTHORING_CONTRACT_EDITIONS.map((edition, index) => ({
9360
+ edition,
9361
+ ...PLAY_AUTHORING_CONTRACT_CHANGELOG_DETAILS[index]
9362
+ }));
9167
9363
  var PLAY_SQL_LISTENER_WHERE_OPERATORS = [
9168
9364
  "eq",
9169
9365
  "neq",
@@ -125,6 +125,7 @@
125
125
  "dist/bundling-sources/shared_libs/play-runtime/batching-types.ts",
126
126
  "dist/bundling-sources/shared_libs/play-runtime/bettercontact-batching.ts",
127
127
  "dist/bundling-sources/shared_libs/play-runtime/bounceban-batching.ts",
128
+ "dist/bundling-sources/shared_libs/play-runtime/bounded-batch-function.ts",
128
129
  "dist/bundling-sources/shared_libs/play-runtime/bounded-dispatch.ts",
129
130
  "dist/bundling-sources/shared_libs/play-runtime/builtin-pacing.ts",
130
131
  "dist/bundling-sources/shared_libs/play-runtime/cell-provenance.ts",
@@ -154,6 +155,7 @@
154
155
  "dist/bundling-sources/shared_libs/play-runtime/deployment/fly-machines.ts",
155
156
  "dist/bundling-sources/shared_libs/play-runtime/deployment/fly-registry.ts",
156
157
  "dist/bundling-sources/shared_libs/play-runtime/deployment/process-tree.ts",
158
+ "dist/bundling-sources/shared_libs/play-runtime/deployment/runtime-gateway-capacity.ts",
157
159
  "dist/bundling-sources/shared_libs/play-runtime/deployment/runtime-gateway-drain.ts",
158
160
  "dist/bundling-sources/shared_libs/play-runtime/deployment/runtime-surface.ts",
159
161
  "dist/bundling-sources/shared_libs/play-runtime/deployment/runtime-topology.ts",
@@ -170,10 +172,14 @@
170
172
  "dist/bundling-sources/shared_libs/play-runtime/durable-invocation-fence.ts",
171
173
  "dist/bundling-sources/shared_libs/play-runtime/durable-receipt-execution.ts",
172
174
  "dist/bundling-sources/shared_libs/play-runtime/dynamic-worker-version.ts",
175
+ "dist/bundling-sources/shared_libs/play-runtime/egress-bandwidth-probe.ts",
173
176
  "dist/bundling-sources/shared_libs/play-runtime/email-status.ts",
174
177
  "dist/bundling-sources/shared_libs/play-runtime/event-wait-tools.ts",
178
+ "dist/bundling-sources/shared_libs/play-runtime/execute-server-timing.ts",
175
179
  "dist/bundling-sources/shared_libs/play-runtime/execution-capabilities.ts",
176
180
  "dist/bundling-sources/shared_libs/play-runtime/execution-gateway-invocation-fence.ts",
181
+ "dist/bundling-sources/shared_libs/play-runtime/execution-gateway-receipt-output-reference.ts",
182
+ "dist/bundling-sources/shared_libs/play-runtime/execution-gateway-response-size.ts",
177
183
  "dist/bundling-sources/shared_libs/play-runtime/execution-ledger-store.ts",
178
184
  "dist/bundling-sources/shared_libs/play-runtime/execution-plan.ts",
179
185
  "dist/bundling-sources/shared_libs/play-runtime/execution-protocol.ts",
@@ -210,6 +216,8 @@
210
216
  "dist/bundling-sources/shared_libs/play-runtime/map-memory-limits.ts",
211
217
  "dist/bundling-sources/shared_libs/play-runtime/map-row-identity.ts",
212
218
  "dist/bundling-sources/shared_libs/play-runtime/map-row-outcome.ts",
219
+ "dist/bundling-sources/shared_libs/play-runtime/memory-ledger.ts",
220
+ "dist/bundling-sources/shared_libs/play-runtime/memory-pressure-signal.ts",
213
221
  "dist/bundling-sources/shared_libs/play-runtime/modal-runtime-config.ts",
214
222
  "dist/bundling-sources/shared_libs/play-runtime/opensosdata-batching.ts",
215
223
  "dist/bundling-sources/shared_libs/play-runtime/output-size-limits.ts",
@@ -258,6 +266,14 @@
258
266
  "dist/bundling-sources/shared_libs/play-runtime/profiles.ts",
259
267
  "dist/bundling-sources/shared_libs/play-runtime/projection.ts",
260
268
  "dist/bundling-sources/shared_libs/play-runtime/protocol.ts",
269
+ "dist/bundling-sources/shared_libs/play-runtime/provider-capacity/adaptive-provider-capacity-controller.ts",
270
+ "dist/bundling-sources/shared_libs/play-runtime/provider-capacity/epoch-aimd-rate-controller.ts",
271
+ "dist/bundling-sources/shared_libs/play-runtime/provider-capacity/fixture-capacity-simulator.ts",
272
+ "dist/bundling-sources/shared_libs/play-runtime/provider-capacity/gradient2-concurrency-controller.ts",
273
+ "dist/bundling-sources/shared_libs/play-runtime/provider-capacity/provider-capacity-policy.ts",
274
+ "dist/bundling-sources/shared_libs/play-runtime/provider-capacity/provider-concurrency-policy.ts",
275
+ "dist/bundling-sources/shared_libs/play-runtime/provider-capacity/provider-rate-policy.ts",
276
+ "dist/bundling-sources/shared_libs/play-runtime/provider-capacity/provider-throttle-classifier.ts",
261
277
  "dist/bundling-sources/shared_libs/play-runtime/providers.ts",
262
278
  "dist/bundling-sources/shared_libs/play-runtime/public-play-contract.ts",
263
279
  "dist/bundling-sources/shared_libs/play-runtime/query-result-dataset.ts",
@@ -273,9 +289,11 @@
273
289
  "dist/bundling-sources/shared_libs/play-runtime/run-ledger-projection-contract.ts",
274
290
  "dist/bundling-sources/shared_libs/play-runtime/run-ledger.ts",
275
291
  "dist/bundling-sources/shared_libs/play-runtime/run-lifecycle-policy.ts",
292
+ "dist/bundling-sources/shared_libs/play-runtime/run-log-buffer.ts",
276
293
  "dist/bundling-sources/shared_libs/play-runtime/run-snapshot-stream.ts",
277
294
  "dist/bundling-sources/shared_libs/play-runtime/run-terminal-source.ts",
278
295
  "dist/bundling-sources/shared_libs/play-runtime/runner-app/child-play-resolver.ts",
296
+ "dist/bundling-sources/shared_libs/play-runtime/runner-app/egress-probe.ts",
279
297
  "dist/bundling-sources/shared_libs/play-runtime/runner-app/index.ts",
280
298
  "dist/bundling-sources/shared_libs/play-runtime/runner-app/progress-sidecar.ts",
281
299
  "dist/bundling-sources/shared_libs/play-runtime/runner-app/runtime-deadline.ts",
@@ -300,6 +318,7 @@
300
318
  "dist/bundling-sources/shared_libs/play-runtime/runner-backends/runtime-sandbox-reconciliation.ts",
301
319
  "dist/bundling-sources/shared_libs/play-runtime/runner-backends/types.ts",
302
320
  "dist/bundling-sources/shared_libs/play-runtime/runtime-actions.ts",
321
+ "dist/bundling-sources/shared_libs/play-runtime/runtime-api-compression.ts",
303
322
  "dist/bundling-sources/shared_libs/play-runtime/runtime-api-paths.ts",
304
323
  "dist/bundling-sources/shared_libs/play-runtime/runtime-api.ts",
305
324
  "dist/bundling-sources/shared_libs/play-runtime/runtime-authority.ts",
@@ -309,14 +328,17 @@
309
328
  "dist/bundling-sources/shared_libs/play-runtime/runtime-contract.ts",
310
329
  "dist/bundling-sources/shared_libs/play-runtime/runtime-env.ts",
311
330
  "dist/bundling-sources/shared_libs/play-runtime/runtime-environment.ts",
331
+ "dist/bundling-sources/shared_libs/play-runtime/runtime-flow.ts",
312
332
  "dist/bundling-sources/shared_libs/play-runtime/runtime-incident-drills.ts",
313
333
  "dist/bundling-sources/shared_libs/play-runtime/runtime-infra-mode.ts",
334
+ "dist/bundling-sources/shared_libs/play-runtime/runtime-map-row-feed.ts",
314
335
  "dist/bundling-sources/shared_libs/play-runtime/runtime-operation-contract.ts",
315
336
  "dist/bundling-sources/shared_libs/play-runtime/runtime-operation.ts",
316
337
  "dist/bundling-sources/shared_libs/play-runtime/runtime-pg-driver-pg.ts",
317
338
  "dist/bundling-sources/shared_libs/play-runtime/runtime-pg-driver.ts",
318
339
  "dist/bundling-sources/shared_libs/play-runtime/runtime-postgres-admission.ts",
319
340
  "dist/bundling-sources/shared_libs/play-runtime/runtime-receipt-store-adapter.ts",
341
+ "dist/bundling-sources/shared_libs/play-runtime/runtime-receipt-value.ts",
320
342
  "dist/bundling-sources/shared_libs/play-runtime/runtime-receipt-writer.ts",
321
343
  "dist/bundling-sources/shared_libs/play-runtime/runtime-release-environment.ts",
322
344
  "dist/bundling-sources/shared_libs/play-runtime/runtime-reliability-policy.ts",
@@ -349,9 +371,14 @@
349
371
  "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-worker-metrics.ts",
350
372
  "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd-worker-required-env.ts",
351
373
  "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/absurd.ts",
374
+ "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/canonical-integration-operation-store.ts",
352
375
  "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/gateway-heavy-request-admission.ts",
353
376
  "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/gateway-progress-registry.ts",
354
377
  "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/index.ts",
378
+ "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/integration-operation-store-contract.ts",
379
+ "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/integration-operation-value-reference.ts",
380
+ "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/integration-operation-value-retirement.ts",
381
+ "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/integration-operation-value-storage.ts",
355
382
  "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/lazy.ts",
356
383
  "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/play-run-recovery.ts",
357
384
  "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres-budget-state.ts",
@@ -359,6 +386,7 @@
359
386
  "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres-progress.ts",
360
387
  "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres-rate-state.ts",
361
388
  "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres.ts",
389
+ "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/receipt-completion-coalescer.ts",
362
390
  "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/receipt-gateway.ts",
363
391
  "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/run-ledger-outbox-recovery.ts",
364
392
  "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/run-terminal-transition.ts",
@@ -366,6 +394,7 @@
366
394
  "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-api-origin.ts",
367
395
  "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-queue-health.ts",
368
396
  "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-receipt-gateway-health.ts",
397
+ "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-receipt-value-storage.ts",
369
398
  "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-sandbox-capacity.ts",
370
399
  "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-sandbox-ledger-reconciliation.ts",
371
400
  "dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/runtime-sandbox-operation.ts",
@@ -523,8 +552,8 @@
523
552
  "dist/cli/index.js",
524
553
  "dist/cli/index.mjs",
525
554
  "dist/cli/text-imports.d.ts",
526
- "dist/compiler-manifest-DfSnbCTW.d.mts",
527
- "dist/compiler-manifest-DfSnbCTW.d.ts",
555
+ "dist/compiler-manifest-BIqRyj5m.d.mts",
556
+ "dist/compiler-manifest-BIqRyj5m.d.ts",
528
557
  "dist/helpers.d.mts",
529
558
  "dist/helpers.d.ts",
530
559
  "dist/helpers.js",
@@ -1,6 +1,6 @@
1
1
  /// <reference path="./text-imports.d.ts" />
2
- import { P as PlayArtifactKind, a as PlayBundleArtifact, b as PlaySandboxRuntimeDeclaration, c as PlayCompilerManifest } from '../compiler-manifest-DfSnbCTW.mjs';
3
- export { d as PLAY_ARTIFACT_KINDS, e as PlayArtifactCompatibility, f as PlayImportPolicy, g as PlayPackageImport, h as PlayRuntimeFeature } from '../compiler-manifest-DfSnbCTW.mjs';
2
+ import { P as PlayArtifactKind, a as PlayBundleArtifact, b as PlaySandboxRuntimeDeclaration, c as PlayCompilerManifest } from '../compiler-manifest-BIqRyj5m.mjs';
3
+ export { d as PLAY_ARTIFACT_KINDS, e as PlayArtifactCompatibility, f as PlayImportPolicy, g as PlayPackageImport, h as PlayRuntimeFeature } from '../compiler-manifest-BIqRyj5m.mjs';
4
4
  import '@sinclair/typebox';
5
5
 
6
6
  type ImportedPlayDependency = {
@@ -1,6 +1,6 @@
1
1
  /// <reference path="./text-imports.d.ts" />
2
- import { P as PlayArtifactKind, a as PlayBundleArtifact, b as PlaySandboxRuntimeDeclaration, c as PlayCompilerManifest } from '../compiler-manifest-DfSnbCTW.js';
3
- export { d as PLAY_ARTIFACT_KINDS, e as PlayArtifactCompatibility, f as PlayImportPolicy, g as PlayPackageImport, h as PlayRuntimeFeature } from '../compiler-manifest-DfSnbCTW.js';
2
+ import { P as PlayArtifactKind, a as PlayBundleArtifact, b as PlaySandboxRuntimeDeclaration, c as PlayCompilerManifest } from '../compiler-manifest-BIqRyj5m.js';
3
+ export { d as PLAY_ARTIFACT_KINDS, e as PlayArtifactCompatibility, f as PlayImportPolicy, g as PlayPackageImport, h as PlayRuntimeFeature } from '../compiler-manifest-BIqRyj5m.js';
4
4
  import '@sinclair/typebox';
5
5
 
6
6
  type ImportedPlayDependency = {
@@ -48,7 +48,71 @@ var CURRENT_PLAY_ARTIFACT_CONTRACT_VERSION = 2;
48
48
  // ../plays/authoring-contract.ts
49
49
  import { Type } from "@sinclair/typebox";
50
50
  import { Value } from "@sinclair/typebox/value";
51
- var PLAY_AUTHORING_CONTRACT_EDITION = 7;
51
+ var PLAY_AUTHORING_CONTRACT_EDITION = 8;
52
+ var SUPPORTED_PLAY_AUTHORING_CONTRACT_EDITIONS = [
53
+ 1,
54
+ 2,
55
+ 3,
56
+ 4,
57
+ 5,
58
+ 6,
59
+ 7,
60
+ 8
61
+ ];
62
+ var PLAY_AUTHORING_CONTRACT_CHANGELOG_DETAILS = [
63
+ {
64
+ changed: "Historical extraction semantics. Invalid or unresolved optional authoring fields may normalize to absence.",
65
+ compatibilityOwner: "Plays Runtime",
66
+ newWritesEnd: "2026-11-03",
67
+ readerRemoval: "After every retained edition 1 artifact has a materialized admitted snapshot."
68
+ },
69
+ {
70
+ changed: "Pins admitted authoring snapshots and rejects ambiguous billing, secret, webhook, fetch, timeout, receipt-wait, and freshness contracts.",
71
+ compatibilityOwner: "Plays Runtime",
72
+ newWritesEnd: "2026-08-03",
73
+ readerRemoval: "After every retained edition 2 artifact has an admitted input schema or has been republished."
74
+ },
75
+ {
76
+ changed: "Materializes the declared input schema in the admitted snapshot so launch never reparses current source.",
77
+ compatibilityOwner: "Plays Runtime",
78
+ newWritesEnd: "2026-08-19",
79
+ readerRemoval: null
80
+ },
81
+ {
82
+ changed: "ctx.secrets.get(name) resolves an allowed secret to a plaintext string for ordinary Play code. Editions 1\u20133 retain opaque secret handles.",
83
+ compatibilityOwner: "Plays Runtime",
84
+ newWritesEnd: null,
85
+ readerRemoval: null
86
+ },
87
+ {
88
+ changed: "ctx.fetch throws a typed, redacted CtxFetchHttpError for non-2xx responses. Editions 1\u20134 continue to return the response record for every HTTP status.",
89
+ compatibilityOwner: "Plays Runtime",
90
+ newWritesEnd: null,
91
+ readerRemoval: null
92
+ },
93
+ {
94
+ changed: "Adds static cron input and rejects unknown definePlay and binding fields during new admission. Editions 1\u20135 retain their admitted binding semantics.",
95
+ compatibilityOwner: "Plays Runtime",
96
+ newWritesEnd: null,
97
+ readerRemoval: null
98
+ },
99
+ {
100
+ changed: "Slack HITL calls that omit timeout wait one week. Editions 1\u20136 retain the historical 24-hour default.",
101
+ compatibilityOwner: "Plays Runtime",
102
+ newWritesEnd: null,
103
+ readerRemoval: null
104
+ },
105
+ {
106
+ changed: "Lets an inline scalar child execute without a stored static pipeline. Dataset creation and suspension remain rejected by the authoritative runtime capability boundary; editions 1\u20137 retain static-contract preflight rejection.",
107
+ compatibilityOwner: "Plays Runtime",
108
+ newWritesEnd: null,
109
+ readerRemoval: null
110
+ }
111
+ ];
112
+ var PLAY_AUTHORING_CONTRACT_CHANGELOG = SUPPORTED_PLAY_AUTHORING_CONTRACT_EDITIONS.map((edition, index) => ({
113
+ edition,
114
+ ...PLAY_AUTHORING_CONTRACT_CHANGELOG_DETAILS[index]
115
+ }));
52
116
  var PLAY_SQL_LISTENER_WHERE_OPERATORS = [
53
117
  "eq",
54
118
  "neq",
@@ -149,7 +149,7 @@ type SdkRelease = {
149
149
  supportPolicy: SdkSupportPolicy;
150
150
  };
151
151
  declare const SDK_RELEASE: {
152
- readonly version: "0.3.128";
152
+ readonly version: "0.3.130";
153
153
  readonly updateSummary: "Play grep now returns concise results with the matched fields and terms. Automatic CLI updates are enabled by default; use `deepline settings autoupdate off` to opt out, `deepline settings autoupdate on` to re-enable updates, or `deepline settings autoupdate pin <version>` to hold an exact release.";
154
154
  readonly packageCapabilities: {
155
155
  readonly updatePreferences: 1;
package/dist/release.d.ts CHANGED
@@ -149,7 +149,7 @@ type SdkRelease = {
149
149
  supportPolicy: SdkSupportPolicy;
150
150
  };
151
151
  declare const SDK_RELEASE: {
152
- readonly version: "0.3.128";
152
+ readonly version: "0.3.130";
153
153
  readonly updateSummary: "Play grep now returns concise results with the matched fields and terms. Automatic CLI updates are enabled by default; use `deepline settings autoupdate off` to opt out, `deepline settings autoupdate on` to re-enable updates, or `deepline settings autoupdate pin <version>` to hold an exact release.";
154
154
  readonly packageCapabilities: {
155
155
  readonly updatePreferences: 1;