deepline 0.1.252 → 0.1.254

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 (25) hide show
  1. package/dist/bundling-sources/sdk/src/release.ts +8 -7
  2. package/dist/bundling-sources/sdk/src/types.ts +2 -0
  3. package/dist/bundling-sources/shared_libs/play-runtime/context.ts +261 -162
  4. package/dist/bundling-sources/shared_libs/play-runtime/governor/governor.ts +37 -35
  5. package/dist/bundling-sources/shared_libs/play-runtime/ledger-safe-payload.ts +20 -5
  6. package/dist/bundling-sources/shared_libs/play-runtime/output-size-limits.ts +462 -29
  7. package/dist/bundling-sources/shared_libs/play-runtime/protocol.ts +16 -0
  8. package/dist/bundling-sources/shared_libs/play-runtime/resource-governor.ts +11 -0
  9. package/dist/bundling-sources/shared_libs/play-runtime/run-failure.ts +44 -1
  10. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-lifecycle.ts +7 -4
  11. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-payload-transport.ts +98 -13
  12. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona-runtime-watchdog.ts +117 -0
  13. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/backends/daytona.ts +19 -3
  14. package/dist/bundling-sources/shared_libs/play-runtime/runner-backends/types.ts +1 -0
  15. package/dist/bundling-sources/shared_libs/play-runtime/runtime-api-paths.ts +4 -0
  16. package/dist/bundling-sources/shared_libs/play-runtime/runtime-constants.ts +13 -0
  17. package/dist/bundling-sources/shared_libs/play-runtime/runtime-contract.ts +22 -0
  18. package/dist/bundling-sources/shared_libs/play-runtime/secret-resolution-retry-policy.ts +80 -0
  19. package/dist/cli/index.js +80 -51
  20. package/dist/cli/index.mjs +80 -51
  21. package/dist/index.d.mts +2 -0
  22. package/dist/index.d.ts +2 -0
  23. package/dist/index.js +13 -10
  24. package/dist/index.mjs +13 -10
  25. package/package.json +1 -1
@@ -161,7 +161,7 @@ configureProxyFromEnv();
161
161
  import { mkdtemp as mkdtemp2, rm as rm2, writeFile as writeFile5 } from "fs/promises";
162
162
  import { join as join15 } from "path";
163
163
  import { tmpdir as tmpdir4 } from "os";
164
- import { Command as Command3 } from "commander";
164
+ import { Command as Command4 } from "commander";
165
165
 
166
166
  // src/config.ts
167
167
  import {
@@ -620,7 +620,8 @@ var SDK_RELEASE = {
620
620
  // 0.1.252 hard-cuts the customer Monitor catalog to the two launched
621
621
  // Deepline-native radars. Older clients must update before discovering,
622
622
  // checking, or deploying an unlaunched monitor integration.
623
- version: "0.1.252",
623
+ // 0.1.253 makes play-page browser opening opt-in and retires --no-open.
624
+ version: "0.1.254",
624
625
  apiContract: "2026-07-native-monitor-launch-hard-cutover",
625
626
  supportPolicy: {
626
627
  minimumSupported: "0.1.53",
@@ -628,8 +629,8 @@ var SDK_RELEASE = {
628
629
  commandMinimumSupported: [
629
630
  {
630
631
  command: "enrich",
631
- minimumSupported: "0.1.238",
632
- reason: 'Older SDK CLI enrich generated stale play source; SDK CLI enrich 0.1.153 generated removed StepOptions fields in play source; SDK CLI enrich before 0.1.175 could silently succeed on the empty-waterfall bug when a requested waterfall returned no values for selected rows; SDK CLI enrich before 0.1.230 could convert extractor failures into successful unmatched results; SDK CLI enrich before 0.1.238 could drop a nested provider email match during generic pick("email") extraction and materialize it as NO_MATCH.'
632
+ minimumSupported: "0.1.253",
633
+ reason: 'Older SDK CLI enrich generated stale play source; SDK CLI enrich 0.1.153 generated removed StepOptions fields in play source; SDK CLI enrich before 0.1.175 could silently succeed on the empty-waterfall bug when a requested waterfall returned no values for selected rows; SDK CLI enrich before 0.1.230 could convert extractor failures into successful unmatched results; SDK CLI enrich before 0.1.238 could drop a nested provider email match during generic pick("email") extraction and materialize it as NO_MATCH; SDK CLI enrich before 0.1.253 opens the generated play page by default and accepts the removed --no-open flag.'
633
634
  },
634
635
  {
635
636
  command: "plays",
@@ -638,14 +639,14 @@ var SDK_RELEASE = {
638
639
  },
639
640
  {
640
641
  command: "plays run",
641
- minimumSupported: "0.1.241",
642
- reason: "Older SDK CLI versions predate dataset-native Play results and can emit the retired esm_workers artifact contract."
642
+ minimumSupported: "0.1.253",
643
+ reason: "Older SDK CLI versions predate dataset-native Play results and can emit the retired esm_workers artifact contract; versions before 0.1.253 open the play page by default and accept the removed --no-open flag."
643
644
  },
644
645
  {
645
646
  command: "run",
646
647
  displayCommand: "plays run",
647
- minimumSupported: "0.1.241",
648
- reason: "Older SDK CLI versions predate dataset-native Play results and can emit the retired esm_workers artifact contract."
648
+ minimumSupported: "0.1.253",
649
+ reason: "Older SDK CLI versions predate dataset-native Play results and can emit the retired esm_workers artifact contract; versions before 0.1.253 open the play page by default and accept the removed --no-open flag."
649
650
  },
650
651
  {
651
652
  command: "plays check",
@@ -1467,12 +1468,14 @@ function createSecretRedactionContext(initialValues = []) {
1467
1468
  }
1468
1469
 
1469
1470
  // ../shared_libs/play-runtime/output-size-limits.ts
1470
- var encoder = typeof TextEncoder === "undefined" ? null : new TextEncoder();
1471
+ var TERMINAL_RUN_RESULT_MAX_BYTES = 6 * 1024 * 1024;
1471
1472
  var LEDGER_TERMINAL_RESULT_MAX_BYTES = 256 * 1024;
1472
- var CUSTOMER_OUTPUT_VALUE_MAX_BYTES = 1 * 1024 * 1024;
1473
- var CUSTOMER_OUTPUT_TOTAL_MAX_BYTES = 2 * 1024 * 1024;
1473
+ var CUSTOMER_OUTPUT_VALUE_MAX_BYTES = 5 * 1024 * 1024;
1474
+ var CUSTOMER_OUTPUT_TOTAL_MAX_BYTES = 5 * 1024 * 1024;
1474
1475
  var RUNTIME_RECEIPT_OUTPUT_MAX_BYTES = 10 * 1024 * 1024;
1475
1476
  var RUNTIME_RECEIPT_COMPLETION_BUFFER_MAX_BYTES = 32 * 1024 * 1024;
1477
+ var RUNNER_TERMINAL_PUSH_MAX_BODY_BYTES = 16 * 1024 * 1024;
1478
+ var RUNNER_POST_TERMINAL_DIAGNOSTIC_MAX_BYTES = 64 * 1024;
1476
1479
 
1477
1480
  // ../shared_libs/play-runtime/ledger-safe-payload.ts
1478
1481
  var ledgerIngressRedactor = createSecretRedactionContext();
@@ -9031,6 +9034,7 @@ import {
9031
9034
  } from "fs/promises";
9032
9035
  import { homedir as homedir7, tmpdir as tmpdir2 } from "os";
9033
9036
  import { basename as basename2, dirname as dirname7, extname, join as join7, resolve as resolve9 } from "path";
9037
+ import { Option } from "commander";
9034
9038
 
9035
9039
  // src/cli/commands/play.ts
9036
9040
  import { createHash as createHash2 } from "crypto";
@@ -11297,7 +11301,7 @@ var PLAY_RUN_RESERVED_BOOLEAN_FLAGS = /* @__PURE__ */ new Set([
11297
11301
  "--logs",
11298
11302
  "--full",
11299
11303
  "--force",
11300
- "--no-open",
11304
+ "--open",
11301
11305
  "--debug-map-latency"
11302
11306
  ]);
11303
11307
  function traceCliSync(phase, fields, run) {
@@ -12584,11 +12588,10 @@ function buildPlayDashboardUrl(baseUrl, playName) {
12584
12588
  const encodedPlayName = encodeURIComponent(playName);
12585
12589
  return `${trimmedBase}/dashboard/plays/${encodedPlayName}`;
12586
12590
  }
12587
- function openPlayDashboard(input2) {
12588
- if (input2.noOpen || !input2.dashboardUrl) {
12589
- return;
12591
+ function openPlayDashboard(dashboardUrl, open) {
12592
+ if (open && dashboardUrl) {
12593
+ openInBrowser(dashboardUrl);
12590
12594
  }
12591
- openInBrowser(input2.dashboardUrl);
12592
12595
  }
12593
12596
  function printPlayLogLines(input2) {
12594
12597
  for (const line of input2.lines) {
@@ -12907,10 +12910,7 @@ async function startAndWaitForPlayCompletionByStreamOnce(input2) {
12907
12910
  progress: input2.progress
12908
12911
  });
12909
12912
  }
12910
- openPlayDashboard({
12911
- dashboardUrl,
12912
- noOpen: input2.noOpen
12913
- });
12913
+ openPlayDashboard(dashboardUrl, input2.open ?? false);
12914
12914
  input2.progress.phase("running");
12915
12915
  emittedDashboardUrl = true;
12916
12916
  }
@@ -13359,15 +13359,24 @@ function collectDatasetHandleLines(value, path = "result") {
13359
13359
  return lines;
13360
13360
  }
13361
13361
  function buildRunWarnings(status, rowsInfo) {
13362
+ const result = readRecord(status.result);
13363
+ const metadata = readRecord(result?._metadata);
13364
+ const outputWarnings = Array.isArray(metadata?.outputWarnings) ? metadata.outputWarnings.map((warning) => readRecord(warning)).filter((warning) => {
13365
+ if (!warning) return false;
13366
+ return !(rowsInfo && !rowsInfo.complete && warning.reason === "array_preview_limit" && warning.originalItems === rowsInfo.totalRows && warning.retainedItems === rowsInfo.rows.length);
13367
+ }).map((warning) => warning?.message).filter(
13368
+ (message) => typeof message === "string" && message.trim().length > 0
13369
+ ).slice(0, 16) : [];
13362
13370
  if (status.status === "completed" && rowsInfo?.totalRows === 0) {
13363
- return ["Run completed with 0 output rows."];
13371
+ return ["Run completed with 0 output rows.", ...outputWarnings];
13364
13372
  }
13365
13373
  if (rowsInfo && !rowsInfo.complete) {
13366
13374
  return [
13367
- `Run output is partial: showing ${rowsInfo.rows.length} preview row(s) of ${rowsInfo.totalRows}.`
13375
+ `Run output is partial: showing ${rowsInfo.rows.length} preview row(s) of ${rowsInfo.totalRows}.`,
13376
+ ...outputWarnings
13368
13377
  ];
13369
13378
  }
13370
- return [];
13379
+ return outputWarnings;
13371
13380
  }
13372
13381
  function buildRunNextCommands(status) {
13373
13382
  const runId = status.runId?.trim();
@@ -14093,6 +14102,14 @@ function buildRunPackageTextLines(packaged) {
14093
14102
  if (failedLogWarning) {
14094
14103
  lines.push(` warning: ${failedLogWarning}`);
14095
14104
  }
14105
+ const packageWarnings = Array.isArray(packaged.warnings) ? Array.from(
14106
+ new Set(
14107
+ packaged.warnings.filter(
14108
+ (warning) => typeof warning === "string" && warning.trim().length > 0
14109
+ )
14110
+ )
14111
+ ).slice(0, 16) : [];
14112
+ lines.push(...packageWarnings.map((warning) => ` warning: ${warning}`));
14096
14113
  const failedLogNext = readRecord(failedLogs?.next);
14097
14114
  if (failedLogWarning && typeof failedLogNext?.logs === "string") {
14098
14115
  lines.push(
@@ -14166,7 +14183,7 @@ function buildOrdinaryPlayRunCommand(options, resolvedRevisionId) {
14166
14183
  if (options.waitTimeoutMs !== null) {
14167
14184
  parts.push("--tail-timeout-ms", String(options.waitTimeoutMs));
14168
14185
  }
14169
- if (options.noOpen) parts.push("--no-open");
14186
+ if (options.open) parts.push("--open");
14170
14187
  if (options.fullJson) parts.push("--full");
14171
14188
  if (options.jsonOutput && options.emitLogs) parts.push("--logs");
14172
14189
  if (options.jsonOutput) parts.push("--json");
@@ -15003,7 +15020,7 @@ function writeStartedPlayRun(input2) {
15003
15020
  );
15004
15021
  }
15005
15022
  function parsePlayRunOptions(args) {
15006
- const usage = "Usage: deepline plays run <play-name> [--input '{...}'] [--no-wait] [--tail-timeout-ms 30000] [--force] [--full] [--<input> value]\n deepline plays run <play-file.ts> [--input '{...}'] [--no-wait] [--tail-timeout-ms 30000] [--force] [--full] [--<input> value]\n deepline plays run --file <play-file.ts> [--input '{...}'] [--profile <id>] [--no-wait] [--tail-timeout-ms 30000] [--force] [--full] [--<input> value]\n deepline plays run --name <name> [--input '{...}'] [--profile <id>] [--live|--latest|--revision-id <id>] [--no-wait] [--tail-timeout-ms 30000] [--force] [--no-open] [--json] [--full] [--<input> value]\n Runs use the Absurd CJS runtime.\n Unknown --<input> value flags, such as --limit 5, are passed into play input.\nRun `deepline plays run --help` for idempotent call caching and ctx.dataset guidance.";
15023
+ const usage = "Usage: deepline plays run <play-name> [--input '{...}'] [--no-wait] [--tail-timeout-ms 30000] [--force] [--open] [--full] [--<input> value]\n deepline plays run <play-file.ts> [--input '{...}'] [--no-wait] [--tail-timeout-ms 30000] [--force] [--open] [--full] [--<input> value]\n deepline plays run --file <play-file.ts> [--input '{...}'] [--profile <id>] [--no-wait] [--tail-timeout-ms 30000] [--force] [--open] [--full] [--<input> value]\n deepline plays run --name <name> [--input '{...}'] [--profile <id>] [--live|--latest|--revision-id <id>] [--no-wait] [--tail-timeout-ms 30000] [--force] [--open] [--json] [--full] [--<input> value]\n Runs use the Absurd CJS runtime.\n Unknown --<input> value flags, such as --limit 5, are passed into play input.\nRun `deepline plays run --help` for idempotent call caching and ctx.dataset guidance.";
15007
15024
  let filePath = null;
15008
15025
  let playName = null;
15009
15026
  let input2 = null;
@@ -15014,7 +15031,7 @@ function parsePlayRunOptions(args) {
15014
15031
  const fullJson = args.includes("--full");
15015
15032
  const emitLogs = !jsonOutput || args.includes("--logs");
15016
15033
  const force = args.includes("--force");
15017
- const noOpen = args.includes("--no-open");
15034
+ const open = args.includes("--open");
15018
15035
  const debugMapLatency = args.includes("--debug-map-latency");
15019
15036
  let waitTimeoutMs = null;
15020
15037
  let profile = null;
@@ -15059,6 +15076,11 @@ function parsePlayRunOptions(args) {
15059
15076
  "--out is not a plays run flag. Run the play first, then export rows with: deepline runs export <run-id> --out output.csv"
15060
15077
  );
15061
15078
  }
15079
+ if (arg === "--no-open" || arg.startsWith("--no-open=")) {
15080
+ throw new Error(
15081
+ "--no-open was removed for `plays run`. Play page URLs are printed by default; pass --open to launch a browser."
15082
+ );
15083
+ }
15062
15084
  if (arg === "--poll-interval-ms" || arg === "--interval-ms") {
15063
15085
  throw new Error(
15064
15086
  `${arg} was removed. --watch uses the canonical run stream directly.`
@@ -15133,7 +15155,7 @@ function parsePlayRunOptions(args) {
15133
15155
  fullJson,
15134
15156
  waitTimeoutMs,
15135
15157
  force,
15136
- noOpen,
15158
+ open,
15137
15159
  profile,
15138
15160
  debugMapLatency
15139
15161
  };
@@ -15715,7 +15737,7 @@ async function handleFileBackedRun(options, hooks) {
15715
15737
  jsonOutput: options.jsonOutput,
15716
15738
  emitLogs: options.emitLogs,
15717
15739
  waitTimeoutMs: options.waitTimeoutMs,
15718
- noOpen: options.noOpen,
15740
+ open: options.open,
15719
15741
  progress,
15720
15742
  onRunStarted: hooks?.onRunStarted
15721
15743
  }).catch(async (error) => {
@@ -15758,10 +15780,7 @@ async function handleFileBackedRun(options, hooks) {
15758
15780
  })
15759
15781
  );
15760
15782
  const resolvedDashboardUrl = buildPlayDashboardUrl(client2.baseUrl, playName);
15761
- openPlayDashboard({
15762
- dashboardUrl: resolvedDashboardUrl,
15763
- noOpen: options.noOpen
15764
- });
15783
+ openPlayDashboard(resolvedDashboardUrl, options.open);
15765
15784
  progress.phase("started run");
15766
15785
  progress.complete();
15767
15786
  writeStartedPlayRun({
@@ -15882,7 +15901,7 @@ async function handleNamedRun(options, hooks) {
15882
15901
  jsonOutput: options.jsonOutput,
15883
15902
  emitLogs: options.emitLogs,
15884
15903
  waitTimeoutMs: options.waitTimeoutMs,
15885
- noOpen: options.noOpen,
15904
+ open: options.open,
15886
15905
  progress,
15887
15906
  onRunStarted: hooks?.onRunStarted
15888
15907
  }).catch(async (error) => {
@@ -15930,10 +15949,7 @@ async function handleNamedRun(options, hooks) {
15930
15949
  })
15931
15950
  );
15932
15951
  const resolvedDashboardUrl = buildPlayDashboardUrl(client2.baseUrl, playName);
15933
- openPlayDashboard({
15934
- dashboardUrl: resolvedDashboardUrl,
15935
- noOpen: options.noOpen
15936
- });
15952
+ openPlayDashboard(resolvedDashboardUrl, options.open);
15937
15953
  progress.phase("started run");
15938
15954
  progress.complete();
15939
15955
  writeStartedPlayRun({
@@ -17231,8 +17247,7 @@ Notes:
17231
17247
  next commands. --watch and --wait are accepted compatibility aliases for the
17232
17248
  default behavior. Use --no-wait only when you intentionally want
17233
17249
  a fire-and-forget run id.
17234
- The play page opens in your browser as soon as the run starts; use --no-open
17235
- to only print the URL.
17250
+ The play page URL is printed when the run starts. Pass --open to open it in a browser.
17236
17251
  Concurrent runs for the same play are allowed.
17237
17252
  --force starts a fresh run graph without refreshing completed provider calls.
17238
17253
  It does not cancel active sibling runs.
@@ -17287,10 +17302,10 @@ Examples:
17287
17302
  ).option("--watch", "Compatibility alias; run waits by default").option("--wait", "Compatibility alias; run waits by default").option("--no-wait", "Start the run and return immediately").option(
17288
17303
  "--logs",
17289
17304
  "When output is non-interactive, stream play logs to stderr while waiting"
17290
- ).option("--tail-timeout-ms <ms>", "Timeout while watching the run stream").option("--force", "Start a fresh run graph").option(
17305
+ ).option("--tail-timeout-ms <ms>", "Timeout while watching the run stream").option("--force", "Start a fresh run graph").option("--open", "Open the play page in a browser after the run starts").option(
17291
17306
  "--debug-map-latency",
17292
17307
  "Internal diagnostics: emit one aggregate latency profile per dataset map"
17293
- ).option("--no-open", "Print the play page URL without opening a browser").option("--json", "Emit JSON output").option("--full", "Debug only: with --json, emit the raw status payload").addHelpText(
17308
+ ).option("--json", "Emit JSON output").option("--full", "Debug only: with --json, emit the raw status payload").addHelpText(
17294
17309
  "afterAll",
17295
17310
  `
17296
17311
  Pass-through input flags:
@@ -17326,8 +17341,8 @@ Pass-through input flags:
17326
17341
  ...options.logs ? ["--logs"] : [],
17327
17342
  ...options.tailTimeoutMs ? ["--tail-timeout-ms", options.tailTimeoutMs] : [],
17328
17343
  ...options.force ? ["--force"] : [],
17344
+ ...options.open ? ["--open"] : [],
17329
17345
  ...options.debugMapLatency ? ["--debug-map-latency"] : [],
17330
- ...options.noOpen || options.open === false ? ["--no-open"] : [],
17331
17346
  ...options.json ? ["--json"] : [],
17332
17347
  ...options.full ? ["--full"] : [],
17333
17348
  ...passthroughArgs
@@ -19913,11 +19928,11 @@ async function buildPlanArgs(args) {
19913
19928
  const localBooleanOptions = /* @__PURE__ */ new Set([
19914
19929
  "--dry-run",
19915
19930
  "--json",
19931
+ "--open",
19916
19932
  "--force",
19917
19933
  "--fail-fast",
19918
19934
  "--all",
19919
19935
  "--in-place",
19920
- "--no-open",
19921
19936
  "--debug-map-latency"
19922
19937
  ]);
19923
19938
  const planArgs = [];
@@ -22909,7 +22924,15 @@ function registerEnrichCommand(program) {
22909
22924
  ).option("--all", "Run all rows.").option(
22910
22925
  "--dry-run",
22911
22926
  "Compile and print the generated plan without starting a run."
22912
- ).option("--json", "Emit JSON.").option("--no-open", "Do not open the play page in a browser.").option("--force", "Force rerun for all enrich aliases.").option(
22927
+ ).option("--json", "Emit JSON.").option(
22928
+ "--open",
22929
+ "Open the generated play page in a browser after the run starts."
22930
+ ).addOption(
22931
+ new Option(
22932
+ "--no-open [legacy-value]",
22933
+ "Removed legacy option"
22934
+ ).hideHelp()
22935
+ ).option("--force", "Force rerun for all enrich aliases.").option(
22913
22936
  "--with-force <aliases>",
22914
22937
  "Force rerun for selected aliases.",
22915
22938
  (value, previous = []) => [...previous, value]
@@ -22926,6 +22949,13 @@ function registerEnrichCommand(program) {
22926
22949
  "--fail-fast",
22927
22950
  "Fail the generated play when any selected row errors, while preserving recovered runtime-sheet rows for export."
22928
22951
  ).action(async (options, _command) => {
22952
+ if (currentEnrichArgs().some(
22953
+ (arg) => arg === "--no-open" || arg.startsWith("--no-open=")
22954
+ )) {
22955
+ throw new Error(
22956
+ "--no-open was removed for `enrich`. Play page URLs are printed by default; pass --open to launch a browser."
22957
+ );
22958
+ }
22929
22959
  if (options.inPlace && options.dryRun) {
22930
22960
  throw new Error("--in-place is not supported with --dry-run.");
22931
22961
  }
@@ -23086,8 +23116,8 @@ function registerEnrichCommand(program) {
23086
23116
  if (options.debugMapLatency) {
23087
23117
  runArgs.push("--debug-map-latency");
23088
23118
  }
23089
- if (options.noOpen || input2.suppressOpen) {
23090
- runArgs.push("--no-open");
23119
+ if (options.open) {
23120
+ runArgs.push("--open");
23091
23121
  }
23092
23122
  if (input2.json) {
23093
23123
  runArgs.push("--json");
@@ -26222,7 +26252,7 @@ Examples:
26222
26252
  }
26223
26253
 
26224
26254
  // src/cli/commands/tools.ts
26225
- import { Option } from "commander";
26255
+ import { Option as Option2 } from "commander";
26226
26256
  import {
26227
26257
  chmodSync,
26228
26258
  existsSync as existsSync10,
@@ -26959,12 +26989,12 @@ Examples:
26959
26989
  "--examples-only",
26960
26990
  "Only print runnable examples and sample payloads"
26961
26991
  ).option("--getters-only", "Only print extracted list/value getters").addOption(
26962
- new Option(
26992
+ new Option2(
26963
26993
  "--compact",
26964
26994
  "Compatibility alias for the default compact view"
26965
26995
  ).hideHelp()
26966
26996
  ).addOption(
26967
- new Option(
26997
+ new Option2(
26968
26998
  "--contract-json",
26969
26999
  "Compatibility alias for compact contract JSON"
26970
27000
  ).hideHelp()
@@ -30223,7 +30253,6 @@ async function runPlayRunnerHealthCheck() {
30223
30253
  "--input",
30224
30254
  "{}",
30225
30255
  "--watch",
30226
- "--no-open",
30227
30256
  "--json"
30228
30257
  ]);
30229
30258
  } finally {
@@ -30372,7 +30401,7 @@ async function main() {
30372
30401
  if (printStartupPhase) {
30373
30402
  progress?.phase("loading deepline cli");
30374
30403
  }
30375
- const program = new Command3();
30404
+ const program = new Command4();
30376
30405
  program.name("deepline").description(
30377
30406
  "Deepline CLI \u2014 GTM enrichment tools, plays, and runs from your terminal."
30378
30407
  ).version(SDK_VERSION, "-v, --version", "Show version").exitOverride().showHelpAfterError().showSuggestionAfterError(true).addHelpText(
package/dist/index.d.mts CHANGED
@@ -546,6 +546,8 @@ interface PlayRunPackage {
546
546
  durationMs?: number | null;
547
547
  error?: string;
548
548
  };
549
+ /** Bounded customer-safe warnings about output projection or availability. */
550
+ warnings?: string[];
549
551
  /** Step-level summaries emitted by the runtime. */
550
552
  steps: Array<Record<string, unknown>>;
551
553
  /** Named output summaries, including dataset handles and scalar outputs. */
package/dist/index.d.ts CHANGED
@@ -546,6 +546,8 @@ interface PlayRunPackage {
546
546
  durationMs?: number | null;
547
547
  error?: string;
548
548
  };
549
+ /** Bounded customer-safe warnings about output projection or availability. */
550
+ warnings?: string[];
549
551
  /** Step-level summaries emitted by the runtime. */
550
552
  steps: Array<Record<string, unknown>>;
551
553
  /** Named output summaries, including dataset handles and scalar outputs. */
package/dist/index.js CHANGED
@@ -434,7 +434,8 @@ var SDK_RELEASE = {
434
434
  // 0.1.252 hard-cuts the customer Monitor catalog to the two launched
435
435
  // Deepline-native radars. Older clients must update before discovering,
436
436
  // checking, or deploying an unlaunched monitor integration.
437
- version: "0.1.252",
437
+ // 0.1.253 makes play-page browser opening opt-in and retires --no-open.
438
+ version: "0.1.254",
438
439
  apiContract: "2026-07-native-monitor-launch-hard-cutover",
439
440
  supportPolicy: {
440
441
  minimumSupported: "0.1.53",
@@ -442,8 +443,8 @@ var SDK_RELEASE = {
442
443
  commandMinimumSupported: [
443
444
  {
444
445
  command: "enrich",
445
- minimumSupported: "0.1.238",
446
- reason: 'Older SDK CLI enrich generated stale play source; SDK CLI enrich 0.1.153 generated removed StepOptions fields in play source; SDK CLI enrich before 0.1.175 could silently succeed on the empty-waterfall bug when a requested waterfall returned no values for selected rows; SDK CLI enrich before 0.1.230 could convert extractor failures into successful unmatched results; SDK CLI enrich before 0.1.238 could drop a nested provider email match during generic pick("email") extraction and materialize it as NO_MATCH.'
446
+ minimumSupported: "0.1.253",
447
+ reason: 'Older SDK CLI enrich generated stale play source; SDK CLI enrich 0.1.153 generated removed StepOptions fields in play source; SDK CLI enrich before 0.1.175 could silently succeed on the empty-waterfall bug when a requested waterfall returned no values for selected rows; SDK CLI enrich before 0.1.230 could convert extractor failures into successful unmatched results; SDK CLI enrich before 0.1.238 could drop a nested provider email match during generic pick("email") extraction and materialize it as NO_MATCH; SDK CLI enrich before 0.1.253 opens the generated play page by default and accepts the removed --no-open flag.'
447
448
  },
448
449
  {
449
450
  command: "plays",
@@ -452,14 +453,14 @@ var SDK_RELEASE = {
452
453
  },
453
454
  {
454
455
  command: "plays run",
455
- minimumSupported: "0.1.241",
456
- reason: "Older SDK CLI versions predate dataset-native Play results and can emit the retired esm_workers artifact contract."
456
+ minimumSupported: "0.1.253",
457
+ reason: "Older SDK CLI versions predate dataset-native Play results and can emit the retired esm_workers artifact contract; versions before 0.1.253 open the play page by default and accept the removed --no-open flag."
457
458
  },
458
459
  {
459
460
  command: "run",
460
461
  displayCommand: "plays run",
461
- minimumSupported: "0.1.241",
462
- reason: "Older SDK CLI versions predate dataset-native Play results and can emit the retired esm_workers artifact contract."
462
+ minimumSupported: "0.1.253",
463
+ reason: "Older SDK CLI versions predate dataset-native Play results and can emit the retired esm_workers artifact contract; versions before 0.1.253 open the play page by default and accept the removed --no-open flag."
463
464
  },
464
465
  {
465
466
  command: "plays check",
@@ -1281,12 +1282,14 @@ function createSecretRedactionContext(initialValues = []) {
1281
1282
  }
1282
1283
 
1283
1284
  // ../shared_libs/play-runtime/output-size-limits.ts
1284
- var encoder = typeof TextEncoder === "undefined" ? null : new TextEncoder();
1285
+ var TERMINAL_RUN_RESULT_MAX_BYTES = 6 * 1024 * 1024;
1285
1286
  var LEDGER_TERMINAL_RESULT_MAX_BYTES = 256 * 1024;
1286
- var CUSTOMER_OUTPUT_VALUE_MAX_BYTES = 1 * 1024 * 1024;
1287
- var CUSTOMER_OUTPUT_TOTAL_MAX_BYTES = 2 * 1024 * 1024;
1287
+ var CUSTOMER_OUTPUT_VALUE_MAX_BYTES = 5 * 1024 * 1024;
1288
+ var CUSTOMER_OUTPUT_TOTAL_MAX_BYTES = 5 * 1024 * 1024;
1288
1289
  var RUNTIME_RECEIPT_OUTPUT_MAX_BYTES = 10 * 1024 * 1024;
1289
1290
  var RUNTIME_RECEIPT_COMPLETION_BUFFER_MAX_BYTES = 32 * 1024 * 1024;
1291
+ var RUNNER_TERMINAL_PUSH_MAX_BODY_BYTES = 16 * 1024 * 1024;
1292
+ var RUNNER_POST_TERMINAL_DIAGNOSTIC_MAX_BYTES = 64 * 1024;
1290
1293
 
1291
1294
  // ../shared_libs/play-runtime/ledger-safe-payload.ts
1292
1295
  var ledgerIngressRedactor = createSecretRedactionContext();
package/dist/index.mjs CHANGED
@@ -364,7 +364,8 @@ var SDK_RELEASE = {
364
364
  // 0.1.252 hard-cuts the customer Monitor catalog to the two launched
365
365
  // Deepline-native radars. Older clients must update before discovering,
366
366
  // checking, or deploying an unlaunched monitor integration.
367
- version: "0.1.252",
367
+ // 0.1.253 makes play-page browser opening opt-in and retires --no-open.
368
+ version: "0.1.254",
368
369
  apiContract: "2026-07-native-monitor-launch-hard-cutover",
369
370
  supportPolicy: {
370
371
  minimumSupported: "0.1.53",
@@ -372,8 +373,8 @@ var SDK_RELEASE = {
372
373
  commandMinimumSupported: [
373
374
  {
374
375
  command: "enrich",
375
- minimumSupported: "0.1.238",
376
- reason: 'Older SDK CLI enrich generated stale play source; SDK CLI enrich 0.1.153 generated removed StepOptions fields in play source; SDK CLI enrich before 0.1.175 could silently succeed on the empty-waterfall bug when a requested waterfall returned no values for selected rows; SDK CLI enrich before 0.1.230 could convert extractor failures into successful unmatched results; SDK CLI enrich before 0.1.238 could drop a nested provider email match during generic pick("email") extraction and materialize it as NO_MATCH.'
376
+ minimumSupported: "0.1.253",
377
+ reason: 'Older SDK CLI enrich generated stale play source; SDK CLI enrich 0.1.153 generated removed StepOptions fields in play source; SDK CLI enrich before 0.1.175 could silently succeed on the empty-waterfall bug when a requested waterfall returned no values for selected rows; SDK CLI enrich before 0.1.230 could convert extractor failures into successful unmatched results; SDK CLI enrich before 0.1.238 could drop a nested provider email match during generic pick("email") extraction and materialize it as NO_MATCH; SDK CLI enrich before 0.1.253 opens the generated play page by default and accepts the removed --no-open flag.'
377
378
  },
378
379
  {
379
380
  command: "plays",
@@ -382,14 +383,14 @@ var SDK_RELEASE = {
382
383
  },
383
384
  {
384
385
  command: "plays run",
385
- minimumSupported: "0.1.241",
386
- reason: "Older SDK CLI versions predate dataset-native Play results and can emit the retired esm_workers artifact contract."
386
+ minimumSupported: "0.1.253",
387
+ reason: "Older SDK CLI versions predate dataset-native Play results and can emit the retired esm_workers artifact contract; versions before 0.1.253 open the play page by default and accept the removed --no-open flag."
387
388
  },
388
389
  {
389
390
  command: "run",
390
391
  displayCommand: "plays run",
391
- minimumSupported: "0.1.241",
392
- reason: "Older SDK CLI versions predate dataset-native Play results and can emit the retired esm_workers artifact contract."
392
+ minimumSupported: "0.1.253",
393
+ reason: "Older SDK CLI versions predate dataset-native Play results and can emit the retired esm_workers artifact contract; versions before 0.1.253 open the play page by default and accept the removed --no-open flag."
393
394
  },
394
395
  {
395
396
  command: "plays check",
@@ -1211,12 +1212,14 @@ function createSecretRedactionContext(initialValues = []) {
1211
1212
  }
1212
1213
 
1213
1214
  // ../shared_libs/play-runtime/output-size-limits.ts
1214
- var encoder = typeof TextEncoder === "undefined" ? null : new TextEncoder();
1215
+ var TERMINAL_RUN_RESULT_MAX_BYTES = 6 * 1024 * 1024;
1215
1216
  var LEDGER_TERMINAL_RESULT_MAX_BYTES = 256 * 1024;
1216
- var CUSTOMER_OUTPUT_VALUE_MAX_BYTES = 1 * 1024 * 1024;
1217
- var CUSTOMER_OUTPUT_TOTAL_MAX_BYTES = 2 * 1024 * 1024;
1217
+ var CUSTOMER_OUTPUT_VALUE_MAX_BYTES = 5 * 1024 * 1024;
1218
+ var CUSTOMER_OUTPUT_TOTAL_MAX_BYTES = 5 * 1024 * 1024;
1218
1219
  var RUNTIME_RECEIPT_OUTPUT_MAX_BYTES = 10 * 1024 * 1024;
1219
1220
  var RUNTIME_RECEIPT_COMPLETION_BUFFER_MAX_BYTES = 32 * 1024 * 1024;
1221
+ var RUNNER_TERMINAL_PUSH_MAX_BODY_BYTES = 16 * 1024 * 1024;
1222
+ var RUNNER_POST_TERMINAL_DIAGNOSTIC_MAX_BYTES = 64 * 1024;
1220
1223
 
1221
1224
  // ../shared_libs/play-runtime/ledger-safe-payload.ts
1222
1225
  var ledgerIngressRedactor = createSecretRedactionContext();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "deepline",
3
- "version": "0.1.252",
3
+ "version": "0.1.254",
4
4
  "description": "Deepline SDK + CLI — B2B data enrichment powered by durable cloud execution",
5
5
  "license": "MIT",
6
6
  "repository": {