deepline 0.3.370 → 0.3.372

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 (120) hide show
  1. package/README.md +1 -1
  2. package/dist/bundling-sources/sdk/src/client.ts +8 -8
  3. package/dist/bundling-sources/sdk/src/release.ts +1 -7
  4. package/dist/bundling-sources/sdk/src/runs/overview.ts +7 -7
  5. package/dist/bundling-sources/sdk/src/tool-output.ts +5 -1
  6. package/dist/bundling-sources/sdk/src/types.ts +2 -2
  7. package/dist/bundling-sources/shared_libs/monitors/fleets/errors.ts +5 -5
  8. package/dist/bundling-sources/shared_libs/monitors/http-error-response.ts +18 -18
  9. package/dist/bundling-sources/shared_libs/monitors/provider-monitor-capability.ts +1 -1
  10. package/dist/bundling-sources/shared_libs/play-runtime/context.ts +2 -2
  11. package/dist/bundling-sources/shared_libs/play-runtime/dataset-lifecycle-log.ts +1 -1
  12. package/dist/bundling-sources/shared_libs/play-runtime/runner-app/index.ts +1 -1
  13. package/dist/bundling-sources/shared_libs/plays/launch/input-contract.ts +34 -9
  14. package/dist/bundling-sources/shared_libs/product-notifications/catalog.ts +15 -3
  15. package/dist/cli/auth-4SXMV3CD.js +33 -0
  16. package/dist/cli/{auth-RIH4S7NC.mjs → auth-ODSACXLF.mjs} +4 -4
  17. package/dist/cli/{billing-Q65H5GJM.js → billing-4ERXY2DZ.js} +148 -148
  18. package/dist/cli/{billing-ERNGN6WK.mjs → billing-OPIOZLAN.mjs} +79 -79
  19. package/dist/cli/{chunk-MX53GIOB.js → chunk-2JRRXXTA.js} +2 -2
  20. package/dist/cli/{chunk-H4IQJRFC.mjs → chunk-2RC5JQ3C.mjs} +9 -9
  21. package/dist/cli/{chunk-IDBLJSLL.mjs → chunk-3CTB7V5F.mjs} +5 -5
  22. package/dist/cli/{chunk-Z6B4UPM4.mjs → chunk-3GK3SH3G.mjs} +2 -2
  23. package/dist/cli/{chunk-RLXMRC6P.mjs → chunk-46JCJ7FT.mjs} +49 -96
  24. package/dist/cli/{chunk-YQMUTC2H.mjs → chunk-4LIUZ4QR.mjs} +11 -11
  25. package/dist/cli/{chunk-BGXG3GEI.mjs → chunk-5HYD3GMS.mjs} +5 -5
  26. package/dist/cli/{chunk-DFJDVQMH.js → chunk-6MDAGRZP.js} +2 -2
  27. package/dist/cli/{chunk-NHB3UWTZ.js → chunk-AQFA7HMN.js} +17 -17
  28. package/dist/cli/{chunk-LNEBKWXM.mjs → chunk-BFLPCGOR.mjs} +1 -1
  29. package/dist/cli/{chunk-5DUTNG37.mjs → chunk-BVUGPOU3.mjs} +10 -10
  30. package/dist/cli/{chunk-A6DJC2RC.js → chunk-D6O3NJHX.js} +68 -68
  31. package/dist/cli/{chunk-666HPUIZ.js → chunk-DM5QUZJR.js} +1 -6
  32. package/dist/cli/{chunk-HHH4MPFY.mjs → chunk-DONL233W.mjs} +6 -6
  33. package/dist/cli/{chunk-NXDRDJ4K.js → chunk-E5UD3JDQ.js} +3 -1
  34. package/dist/cli/{chunk-XTKVXHGD.js → chunk-EFJL5FCU.js} +17 -17
  35. package/dist/cli/{chunk-LJWOPNJJ.mjs → chunk-FGHRRJ3D.mjs} +1 -1
  36. package/dist/cli/{chunk-WQZ22EQU.js → chunk-GZQKUFM5.js} +26 -26
  37. package/dist/cli/{chunk-Y2B56VN7.js → chunk-IUWPC5K6.js} +53 -53
  38. package/dist/cli/{chunk-NEY2M4EZ.mjs → chunk-JAERLCMH.mjs} +1 -6
  39. package/dist/cli/{chunk-MIMASXO4.mjs → chunk-JB6ERQUV.mjs} +3 -1
  40. package/dist/cli/{chunk-CTMA3C3N.js → chunk-JSK6GUY6.js} +49 -96
  41. package/dist/cli/{chunk-T64NZ2A7.mjs → chunk-KC2YOJTU.mjs} +46 -47
  42. package/dist/cli/{chunk-GGRVNAOH.mjs → chunk-MIMV5LTU.mjs} +3 -3
  43. package/dist/cli/{chunk-SFI7U6CA.js → chunk-ML2ZY7YD.js} +4 -4
  44. package/dist/cli/{chunk-A4OX52RV.js → chunk-N5TPMNTT.js} +10 -10
  45. package/dist/cli/{chunk-YEEESF2T.js → chunk-RJ7JJMQO.js} +419 -413
  46. package/dist/cli/{chunk-4Y5UDYQK.js → chunk-RUYZAREB.js} +17 -17
  47. package/dist/cli/{chunk-BKHNCIQD.mjs → chunk-U3W7E5WT.mjs} +193 -187
  48. package/dist/cli/{chunk-MKFHZDBO.js → chunk-VVFH745L.js} +8 -8
  49. package/dist/cli/{chunk-R7AAYFDQ.js → chunk-WJWO74MM.js} +102 -103
  50. package/dist/cli/{chunk-A5RFERJQ.mjs → chunk-XSPAI6MF.mjs} +2 -2
  51. package/dist/cli/{client-QXOERIFI.mjs → client-KF2J754U.mjs} +3 -3
  52. package/dist/cli/client-UUNLXOHF.js +20 -0
  53. package/dist/cli/command-docs.js +2 -2
  54. package/dist/cli/command-docs.mjs +1 -1
  55. package/dist/cli/{csv-ZKIUSDIV.js → csv-UJ3M7NFP.js} +12 -12
  56. package/dist/cli/{csv-V7UKQ7AC.mjs → csv-UL3MCD5D.mjs} +3 -3
  57. package/dist/cli/{db-GWKRVHKS.js → db-444XYOTV.js} +42 -43
  58. package/dist/cli/{db-QQ4BYMPY.mjs → db-SIOWA63T.mjs} +17 -18
  59. package/dist/cli/{describe-XMWXEFMS.mjs → describe-GI5GHAKO.mjs} +12 -12
  60. package/dist/cli/{describe-3AJI2BOS.js → describe-RRBESS3S.js} +28 -28
  61. package/dist/cli/{executions-QV7UE5YG.mjs → executions-4YDP6BXI.mjs} +4 -4
  62. package/dist/cli/{executions-2IMCCV34.js → executions-ERXZUOL5.js} +6 -6
  63. package/dist/cli/{feedback-7SSJ7VPF.js → feedback-3M7D7DZQ.js} +12 -12
  64. package/dist/cli/{feedback-K6WNXZDB.mjs → feedback-CPWQL5LU.mjs} +8 -8
  65. package/dist/cli/git-ITSCNUVB.js +23 -0
  66. package/dist/cli/{git-UOE2K2XQ.mjs → git-XN6C3TJZ.mjs} +4 -4
  67. package/dist/cli/index.js +98 -109
  68. package/dist/cli/index.mjs +46 -57
  69. package/dist/cli/{legacy-noops-GC43OSXL.js → legacy-noops-5XDGOFWH.js} +9 -9
  70. package/dist/cli/{legacy-noops-SOYPIA2X.mjs → legacy-noops-KXQ6TFFL.mjs} +6 -6
  71. package/dist/cli/{monitors-FLCGMXVH.mjs → monitors-33IU5JR6.mjs} +59 -59
  72. package/dist/cli/{monitors-AXANB6WK.js → monitors-KH22PDOC.js} +140 -140
  73. package/dist/cli/{org-Q7EDNZMN.mjs → org-MHYMWUEP.mjs} +28 -27
  74. package/dist/cli/{org-MXD4BTQI.js → org-X4NSLQG5.js} +88 -87
  75. package/dist/cli/play-4QRPOBWW.js +155 -0
  76. package/dist/cli/{play-TZROCF7E.mjs → play-LCZKHKW2.mjs} +10 -8
  77. package/dist/cli/{providers-LOS4MHAG.js → providers-J6LWCF5R.js} +10 -10
  78. package/dist/cli/{providers-JEY4FTWG.mjs → providers-L5FJTSEA.mjs} +7 -7
  79. package/dist/cli/{quickstart-WO5KVVER.mjs → quickstart-NE3BTWGL.mjs} +4 -4
  80. package/dist/cli/{quickstart-27UQGHEH.js → quickstart-OOPFA4MX.js} +6 -6
  81. package/dist/cli/{search-LZHWXC2C.mjs → search-DBXOEOIE.mjs} +5 -5
  82. package/dist/cli/search-UGQDBP76.js +26 -0
  83. package/dist/cli/{secrets-AVJGZABR.mjs → secrets-U2MLWZH2.mjs} +5 -5
  84. package/dist/cli/{secrets-PE7P4L7N.js → secrets-WPMU7UBD.js} +14 -14
  85. package/dist/cli/{sessions-ZDSZTYZV.mjs → sessions-WYNC4AUE.mjs} +4 -4
  86. package/dist/cli/{sessions-I6UDBN7M.js → sessions-YYZ3UJDS.js} +5 -5
  87. package/dist/cli/{settings-SPWH3FET.mjs → settings-FQZSHFC6.mjs} +10 -10
  88. package/dist/cli/{settings-3SLMJHJ2.js → settings-WQDFX3X6.js} +77 -77
  89. package/dist/cli/{setup-R4LUWQE4.js → setup-DKYVNDTM.js} +50 -50
  90. package/dist/cli/{setup-Q3CJ4T2Q.mjs → setup-JKYJT35S.mjs} +15 -15
  91. package/dist/cli/skills-VBQMXDAX.js +28 -0
  92. package/dist/cli/{skills-FGXH432G.mjs → skills-VHVCJJJY.mjs} +4 -4
  93. package/dist/cli/tools-ACEJZMJD.js +40 -0
  94. package/dist/cli/{tools-O7C6PFF2.mjs → tools-E23PU7KM.mjs} +8 -8
  95. package/dist/cli/{update-PPCQV3CD.mjs → update-4A4VU6CW.mjs} +6 -6
  96. package/dist/cli/update-V5KMYHVE.js +28 -0
  97. package/dist/cli/{workflow-Z2KYQ2JE.mjs → workflow-2ZR2ECTG.mjs} +7 -7
  98. package/dist/cli/{workflow-ALKU4ZFD.js → workflow-WB2USWAA.js} +17 -17
  99. package/dist/{client-CjHv4K6D.d.mts → client-Cw0e2Uec.d.mts} +8 -7
  100. package/dist/{client-rTuhNN-x.d.ts → client-CwdiawoG.d.ts} +8 -7
  101. package/dist/index.d.mts +2 -2
  102. package/dist/index.d.ts +2 -2
  103. package/dist/index.js +15 -15
  104. package/dist/index.mjs +4 -4
  105. package/dist/install-integrity.json +82 -82
  106. package/dist/plays/run-request.d.mts +1 -1
  107. package/dist/plays/run-request.d.ts +1 -1
  108. package/dist/release.d.mts +1 -5
  109. package/dist/release.d.ts +1 -5
  110. package/dist/release.js +2 -2
  111. package/dist/release.mjs +1 -1
  112. package/package.json +1 -1
  113. package/dist/cli/auth-DD3PVIRQ.js +0 -33
  114. package/dist/cli/client-DNAFHKWV.js +0 -20
  115. package/dist/cli/git-EBSF3254.js +0 -23
  116. package/dist/cli/play-YWQXVOBT.js +0 -153
  117. package/dist/cli/search-OQ3OEFUA.js +0 -26
  118. package/dist/cli/skills-IDXBBOUW.js +0 -28
  119. package/dist/cli/tools-WHLD4Y4O.js +0 -40
  120. package/dist/cli/update-K6HE3XKO.js +0 -28
@@ -2,7 +2,7 @@ import {
2
2
  addDescribeOptions,
3
3
  recordPlayTermination,
4
4
  schemaFields
5
- } from "./chunk-Z6B4UPM4.mjs";
5
+ } from "./chunk-3GK3SH3G.mjs";
6
6
  import {
7
7
  shellQuote
8
8
  } from "./chunk-OVDNJAJN.mjs";
@@ -19,11 +19,11 @@ import {
19
19
  } from "./chunk-EDWJY6T4.mjs";
20
20
  import {
21
21
  registerDeprecatedSearchCommand
22
- } from "./chunk-BGXG3GEI.mjs";
22
+ } from "./chunk-5HYD3GMS.mjs";
23
23
  import {
24
24
  handleDeploymentGet,
25
25
  handleDeploymentsList
26
- } from "./chunk-A5RFERJQ.mjs";
26
+ } from "./chunk-XSPAI6MF.mjs";
27
27
  import {
28
28
  pinLocalPlayImports,
29
29
  planLocalPlayExecution
@@ -42,7 +42,7 @@ import {
42
42
  normalizeRunEventOperationRequest,
43
43
  parseLogLevel,
44
44
  playInputExampleArgs
45
- } from "./chunk-H4IQJRFC.mjs";
45
+ } from "./chunk-2RC5JQ3C.mjs";
46
46
  import {
47
47
  CSV_DATA_INPUT_KEY,
48
48
  buildNamedPlayRunRequest,
@@ -75,10 +75,10 @@ import {
75
75
  printJsonError,
76
76
  renderCommandEnvelopeText,
77
77
  shouldEmitJson
78
- } from "./chunk-GGRVNAOH.mjs";
78
+ } from "./chunk-MIMV5LTU.mjs";
79
79
  import {
80
80
  fetchWithDeploymentProtection
81
- } from "./chunk-LJWOPNJJ.mjs";
81
+ } from "./chunk-FGHRRJ3D.mjs";
82
82
  import {
83
83
  DeeplineError
84
84
  } from "./chunk-NXGCO4JB.mjs";
@@ -2038,13 +2038,13 @@ Roots:
2038
2038
  ${PLAY_LOCATION_ROOTS.map((root) => ` ${root.value}: ${root.description}`).join("\n")}
2039
2039
 
2040
2040
  Examples:
2041
- deepline plays settings describe --name path --json
2042
- deepline plays settings get --play company-research --json
2041
+ deepline plays settings describe --name path
2042
+ deepline plays settings get --play company-research
2043
2043
  deepline plays settings get --play company-research --name path
2044
2044
  deepline plays settings set --play company-research --name path --value person/Research/ICP
2045
2045
  deepline plays settings set --play company-research --name path --value team/Research
2046
2046
  deepline plays settings reset --play company-research --name path
2047
- deepline plays settings paths --root team --json
2047
+ deepline plays settings paths --root team
2048
2048
  deepline plays settings move-folder --from team/Research --to team/Archive/Research
2049
2049
  deepline plays settings move-folder --from person/ICP --to person/Accounts --dry-run
2050
2050
 
@@ -2095,7 +2095,7 @@ function registerPlaySettingsCommands(plays) {
2095
2095
  ).option(
2096
2096
  "--name <setting>",
2097
2097
  `Describe one setting. Available: ${fields.map(([key]) => key).join(", ")}`
2098
- ).option("--json", "Emit JSON; automatic when piped").addHelpText("after", help).action((options, command) => {
2098
+ ).option("--json", "Emit JSON").addHelpText("after", help).action((options, command) => {
2099
2099
  if (options.name !== void 0) resolveField(options.name, command);
2100
2100
  const descriptions = fields.filter(([name]) => !options.name || options.name === name).map(([name, field]) => ({
2101
2101
  key: name,
@@ -2127,7 +2127,7 @@ function registerPlaySettingsCommands(plays) {
2127
2127
  settings.command("get").usage("--play <play> [--name <setting>] [options]").description("Read all settings, or one setting selected with --name.").requiredOption("--play <play>", "Play to read").option(
2128
2128
  "--name <setting>",
2129
2129
  `Read one setting. Available: ${fields.map(([key]) => key).join(", ")}`
2130
- ).option("--json", "Emit JSON; automatic when piped").addHelpText("after", help).action(
2130
+ ).option("--json", "Emit JSON").addHelpText("after", help).action(
2131
2131
  async (options, command) => {
2132
2132
  if (options.name !== void 0) resolveField(options.name, command);
2133
2133
  printSettings(
@@ -2191,7 +2191,7 @@ function registerPlaySettingsCommands(plays) {
2191
2191
  [set, false],
2192
2192
  [reset, true]
2193
2193
  ])
2194
- command.option("--dry-run", "Show the patch without changing settings").option("--json", "Emit JSON; automatic when piped").addHelpText("after", help).action(
2194
+ command.option("--dry-run", "Show the patch without changing settings").option("--json", "Emit JSON").addHelpText("after", help).action(
2195
2195
  (options) => change(
2196
2196
  command,
2197
2197
  options.play,
@@ -2201,7 +2201,7 @@ function registerPlaySettingsCommands(plays) {
2201
2201
  resetting
2202
2202
  )
2203
2203
  );
2204
- settings.command("paths").description("List existing locations (one bounded page).").option("--root <person|team>", "Filter by root").option("--limit <n>", "Plays to inspect, 1\u2013100", "50").option("--cursor <cursor>", "Continue from a previous page").option("--json", "Emit JSON; automatic when piped").addHelpText("after", help).action(
2204
+ settings.command("paths").description("List existing locations (one bounded page).").option("--root <person|team>", "Filter by root").option("--limit <n>", "Plays to inspect, 1\u2013100", "50").option("--cursor <cursor>", "Continue from a previous page").option("--json", "Emit JSON").addHelpText("after", help).action(
2205
2205
  async (options, command) => {
2206
2206
  const limit = Number(options.limit);
2207
2207
  if (options.root !== void 0 && options.root !== "person" && options.root !== "team" || !Number.isInteger(limit) || limit < 1 || limit > 100)
@@ -2214,7 +2214,7 @@ function registerPlaySettingsCommands(plays) {
2214
2214
  limit,
2215
2215
  cursor: options.cursor
2216
2216
  });
2217
- const nextCommand = page.hasMore ? `deepline plays settings paths --cursor '${page.cursor}'${options.root ? ` --root ${options.root}` : ""} --json` : null;
2217
+ const nextCommand = page.hasMore ? `deepline plays settings paths --cursor '${page.cursor}'${options.root ? ` --root ${options.root}` : ""}` : null;
2218
2218
  printCommandEnvelope(
2219
2219
  {
2220
2220
  ...page,
@@ -2245,7 +2245,7 @@ function registerPlaySettingsCommands(plays) {
2245
2245
  ).option(
2246
2246
  "--owner <user-id>",
2247
2247
  "Personal-root owner, when several people have the --from folder or --to is person"
2248
- ).option("--dry-run", "Show the planned moves without changing settings").option("--json", "Emit JSON; automatic when piped").addHelpText("after", help).action(
2248
+ ).option("--dry-run", "Show the planned moves without changing settings").option("--json", "Emit JSON").addHelpText("after", help).action(
2249
2249
  async (options, command) => {
2250
2250
  let fromPath;
2251
2251
  let toPath;
@@ -2427,7 +2427,7 @@ already live does nothing. Git-deployed Plays are read-only here: change the
2427
2427
  trigger in the repository.
2428
2428
 
2429
2429
  Examples:
2430
- deepline plays trigger get --play daily-sync --json
2430
+ deepline plays trigger get --play daily-sync
2431
2431
  deepline plays trigger set-cron --play daily-sync --schedule "0 9 * * 1-5" --timezone America/New_York
2432
2432
  deepline plays trigger set-cron --play daily-sync --schedule "0 * * * *" --input '{"domain":"example.com"}'
2433
2433
  deepline plays trigger clear-cron --play daily-sync
@@ -2526,7 +2526,7 @@ function withMutationOptions(command) {
2526
2526
  return command.requiredOption("--play <play>", "Play to change").option(
2527
2527
  "--expected-revision <id>",
2528
2528
  "Refuse the change if the live revision is no longer this one"
2529
- ).option("--dry-run", "Show the change without publishing").option("--json", "Emit JSON; automatic when piped").addHelpText("after", help2);
2529
+ ).option("--dry-run", "Show the change without publishing").option("--json", "Emit JSON").addHelpText("after", help2);
2530
2530
  }
2531
2531
  function parseInput(command, raw) {
2532
2532
  let parsed;
@@ -2549,7 +2549,7 @@ function registerPlayTriggerConfigCommands(plays) {
2549
2549
  if (error.exitCode !== 0) error.exitCode = 2;
2550
2550
  throw error;
2551
2551
  }).addHelpText("after", help2);
2552
- trigger.command("get").description("Show the cron and webhook triggers of a Play.").requiredOption("--play <play>", "Play to read").option("--json", "Emit JSON; automatic when piped").addHelpText("after", help2).action(async (options) => {
2552
+ trigger.command("get").description("Show the cron and webhook triggers of a Play.").requiredOption("--play <play>", "Play to read").option("--json", "Emit JSON").addHelpText("after", help2).action(async (options) => {
2553
2553
  printView(
2554
2554
  await new DeeplineClient().getPlayTriggerConfig(options.play),
2555
2555
  options.json
@@ -2683,35 +2683,35 @@ var READ_EXAMPLES = [
2683
2683
  var FILTER_EXAMPLES = [
2684
2684
  {
2685
2685
  label: "Failed work with saved details",
2686
- command: `deepline runs logs --kind receipt.failed --where '$.status == "failed"' --payloads --json`
2686
+ command: `deepline runs logs --kind receipt.failed --where '$.status == "failed"' --payloads`
2687
2687
  },
2688
2688
  {
2689
2689
  label: "One failed step",
2690
- command: `deepline runs logs --kind step.failed --where '$.stepId == "company-lookup"' --payloads --json`
2690
+ command: `deepline runs logs --kind step.failed --where '$.stepId == "company-lookup"' --payloads`
2691
2691
  },
2692
2692
  {
2693
2693
  label: "Provider and operation",
2694
- command: `deepline runs logs --kind activity.observed --where '$.provider == "apollo" && $.operation == "company_lookup"' --json`
2694
+ command: `deepline runs logs --kind activity.observed --where '$.provider == "apollo" && $.operation == "company_lookup"'`
2695
2695
  },
2696
2696
  {
2697
2697
  label: "Failed dataset",
2698
- command: `deepline runs logs --kind dataset.lifecycle --where '$.datasetId == "companies" && $.phase == "failed"' --payloads --json`
2698
+ command: `deepline runs logs --kind dataset.lifecycle --where '$.datasetId == "companies" && $.phase == "failed"' --payloads`
2699
2699
  },
2700
2700
  {
2701
2701
  label: "String log context",
2702
- command: `deepline runs logs --kind log.appended --where '$.context.companyId == "acme_123"' --json`
2702
+ command: `deepline runs logs --kind log.appended --where '$.context.companyId == "acme_123"'`
2703
2703
  },
2704
2704
  {
2705
2705
  label: "Number and boolean log context",
2706
- command: "deepline runs logs --kind log.appended --where '$.context.attempt == 2 && $.context.cached == false' --json"
2706
+ command: "deepline runs logs --kind log.appended --where '$.context.attempt == 2 && $.context.cached == false'"
2707
2707
  },
2708
2708
  {
2709
2709
  label: "One run and step",
2710
- command: `deepline runs logs '<run-id>' --where '$.stepId == "company-lookup"' --json`
2710
+ command: `deepline runs logs '<run-id>' --where '$.stepId == "company-lookup"'`
2711
2711
  },
2712
2712
  {
2713
2713
  label: "Error logs for one step",
2714
- command: `deepline runs logs --kind log.appended --where '$.level == "error" && $.stepId == "company-lookup"' --payloads --json`
2714
+ command: `deepline runs logs --kind log.appended --where '$.level == "error" && $.stepId == "company-lookup"' --payloads`
2715
2715
  }
2716
2716
  ];
2717
2717
  function wrapParagraph(text) {
@@ -2733,9 +2733,9 @@ function renderRunLogsHelp() {
2733
2733
  "Examples:",
2734
2734
  ` ${READ_EXAMPLES[0]}`,
2735
2735
  " deepline runs logs '<run-id>' --step company-lookup --level warn --since 1h",
2736
- " deepline runs logs '<run-id>' --query timeout --count --json",
2737
- ` deepline runs logs --where '$.eventId == "receipt:5a32ee1a-46cf-4853-b72b-5f1d782ffab4"' --payloads --json`,
2738
- " deepline runs logs --kind run.failed --json",
2736
+ " deepline runs logs '<run-id>' --query timeout --count",
2737
+ ` deepline runs logs --where '$.eventId == "receipt:5a32ee1a-46cf-4853-b72b-5f1d782ffab4"' --payloads`,
2738
+ " deepline runs logs --kind run.failed",
2739
2739
  ...[
2740
2740
  FILTER_EXAMPLES[1],
2741
2741
  FILTER_EXAMPLES[2],
@@ -3002,8 +3002,7 @@ function continuation(parsed, query, cursor) {
3002
3002
  "--limit",
3003
3003
  String("limit" in request ? request.limit : ""),
3004
3004
  "--cursor",
3005
- shellQuote2(cursor),
3006
- "--json"
3005
+ shellQuote2(cursor)
3007
3006
  ].join(" ");
3008
3007
  }
3009
3008
  async function handleRunEventQuery(args, resource = "logs") {
@@ -3116,7 +3115,7 @@ function registerRunEventsCommand(runs) {
3116
3115
  "Count and sum numeric values; repeatable, optionally grouped",
3117
3116
  (field, previous) => [...previous, field],
3118
3117
  []
3119
- ).option("--fields", "Discover filter fields, types and operators").option("--limit <count>", "Rows or groups per page (maximum 200)").option("--cursor <token>", "Continue the exact preceding query").option("--payloads", "Include saved details: at most 10 events and 16 MiB").option("--json", "JSON output; automatic when piped").addOption(
3118
+ ).option("--fields", "Discover filter fields, types and operators").option("--limit <count>", "Rows or groups per page (maximum 200)").option("--cursor <token>", "Continue the exact preceding query").option("--payloads", "Include saved details: at most 10 events and 16 MiB").option("--json", "JSON output").addOption(
3120
3119
  new Option(
3121
3120
  "--runtime-namespace <name>",
3122
3121
  "Authorized Preview namespace"
@@ -3128,7 +3127,7 @@ function registerRunEventsCommand(runs) {
3128
3127
  ).hideHelp()
3129
3128
  ).addHelpText(
3130
3129
  "after",
3131
- "\nExamples:\n deepline runs events --kind step.failed --since 1h --json\n deepline runs events --group-by kind --since 1h --json\n deepline runs events --fields --json\n"
3130
+ "\nExamples:\n deepline runs events --kind step.failed --since 1h\n deepline runs events --group-by kind --since 1h\n deepline runs events --fields\n"
3132
3131
  ).action(async (runId, options) => {
3133
3132
  const args = runId ? [runId] : [];
3134
3133
  for (const [key, flag] of [
@@ -3505,9 +3504,9 @@ function excludePreviewMetadata(value) {
3505
3504
  }
3506
3505
  function lifecycleActions(status, id, state) {
3507
3506
  return {
3508
- ...["started", "queued", "running", "waiting"].includes(state ?? "") ? { stopRunCmd: `deepline runs stop ${id} --json` } : {},
3507
+ ...["started", "queued", "running", "waiting"].includes(state ?? "") ? { stopRunCmd: `deepline runs stop ${id}` } : {},
3509
3508
  ...state === "failed" ? {
3510
- getFailedLogsCmd: `deepline runs logs ${id} --failed --json`,
3509
+ getFailedLogsCmd: `deepline runs logs ${id} --failed`,
3511
3510
  ...status.rerunCommand ? { rerunCmd: status.rerunCommand } : {}
3512
3511
  } : {}
3513
3512
  };
@@ -3639,7 +3638,7 @@ function buildRunOverview(status, fullStatus) {
3639
3638
  const pkg = inspectedStatus.package;
3640
3639
  if (!pkg) {
3641
3640
  throw new Error(
3642
- "This server did not return a run package; use runs get --full --json."
3641
+ "This server did not return a run package; use runs get --full."
3643
3642
  );
3644
3643
  }
3645
3644
  const outputs = Object.entries(pkg.outputs);
@@ -3806,7 +3805,7 @@ function buildRunOverview(status, fullStatus) {
3806
3805
  function receiptAction(id) {
3807
3806
  const quotedId = `'${id.replace(/'/g, "'\\''")}'`;
3808
3807
  return {
3809
- getReceiptCmd: `deepline runs logs ${quotedId} --kind receipt.completed --payloads --json`
3808
+ getReceiptCmd: `deepline runs logs ${quotedId} --kind receipt.completed --payloads`
3810
3809
  };
3811
3810
  }
3812
3811
  function buildRunNavigation(status) {
@@ -3821,9 +3820,9 @@ function buildRunNavigation(status) {
3821
3820
  datasets: [],
3822
3821
  actions: {
3823
3822
  ...lifecycleActions(status, id, status.status),
3824
- getRunCmd: `deepline runs get ${id} --json`,
3825
- getFullRunCmd: `deepline runs get ${id} --full --json`,
3826
- getLogsCmd: `deepline runs logs ${id} --limit 100 --json`,
3823
+ getRunCmd: `deepline runs get ${id}`,
3824
+ getFullRunCmd: `deepline runs get ${id} --full`,
3825
+ getLogsCmd: `deepline runs logs ${id} --limit 100`,
3827
3826
  ...receiptAction(id)
3828
3827
  }
3829
3828
  };
@@ -3925,8 +3924,8 @@ function checkedRunExample(plays, target) {
3925
3924
  const quote = (value) => `'${value.replace(/'/g, `'\\''`)}'`;
3926
3925
  const base = `deepline plays run --file ${quote(target)}`;
3927
3926
  return {
3928
- command: `${base}${playInputExampleArgs(schema)} --json`,
3929
- note: "Runs the local file without publishing and may spend credits. Supply the indicated file; JSON input must match inputSchema. Keep stderr separate from JSON stdout."
3927
+ command: `${base}${playInputExampleArgs(schema)}`,
3928
+ note: "Runs the local file without publishing and may spend credits. Supply the indicated file; JSON input must match inputSchema."
3930
3929
  };
3931
3930
  }
3932
3931
  function buildPlayCheckOutput(input) {
@@ -4003,7 +4002,7 @@ function registerRunReceiptCommand(runs) {
4003
4002
  "after",
4004
4003
  `
4005
4004
  Examples:
4006
- deepline runs logs <run-id> --kind receipt.completed --payloads --json
4005
+ deepline runs logs <run-id> --kind receipt.completed --payloads
4007
4006
 
4008
4007
  Returns one outcome per key, preserving order and duplicates. A missing or
4009
4008
  unavailable result is explicit; other keys are still returned. Exit 4 means
@@ -4065,12 +4064,12 @@ function registerRunChildrenCommand(runs) {
4065
4064
  ).requiredOption(
4066
4065
  "--launch-key <key>",
4067
4066
  "Authored ctx.runPlayAsync launch key"
4068
- ).option("--cursor <cursor>", "Opaque cursor from the previous page").option("--limit <number>", "Rows to request (1\u201350; default 50)", "50").option("--json", "Emit JSON output; also automatic when stdout is piped").addHelpText(
4067
+ ).option("--cursor <cursor>", "Opaque cursor from the previous page").option("--limit <number>", "Rows to request (1\u201350; default 50)", "50").option("--json", "Emit JSON output").addHelpText(
4069
4068
  "after",
4070
4069
  `
4071
4070
  Examples:
4072
- deepline runs children 'play/demo/run/parent' --launch-key approval --json
4073
- deepline runs children 'play/demo/run/parent' --launch-key approval --cursor '<cursor>' --limit 25 --json
4071
+ deepline runs children 'play/demo/run/parent' --launch-key approval
4072
+ deepline runs children 'play/demo/run/parent' --launch-key approval --cursor '<cursor>' --limit 25
4074
4073
 
4075
4074
  The command is read-only. Each response contains at most 50 child Runs and
4076
4075
  includes nextCommand when another page is available.
@@ -4097,8 +4096,7 @@ includes nextCommand when another page is available.
4097
4096
  "--cursor",
4098
4097
  shellQuote3(page.nextCursor),
4099
4098
  "--limit",
4100
- String(limit),
4101
- "--json"
4099
+ String(limit)
4102
4100
  ].join(" ") : null;
4103
4101
  printCommandEnvelope(
4104
4102
  {
@@ -4170,9 +4168,9 @@ function registerRunHistoryCommand(runs) {
4170
4168
  ).option(
4171
4169
  "--org <id>",
4172
4170
  "Workspace ID (must match the authenticated workspace)"
4173
- ).option("--json", "Emit JSON output. Also automatic when stdout is piped").addHelpText(
4171
+ ).option("--json", "Emit JSON output").addHelpText(
4174
4172
  "after",
4175
- "\nUse the opaque --cursor returned by the previous page to continue.\n\nExample:\n deepline runs history --limit 100 --json\n"
4173
+ "\nUse the opaque --cursor returned by the previous page to continue.\n\nExample:\n deepline runs history --limit 100\n"
4176
4174
  ).action(handleRunsHistory);
4177
4175
  }
4178
4176
 
@@ -4216,7 +4214,7 @@ async function runRunsRerunCommand(runId, options) {
4216
4214
  Rerun already exists for ${runId} (matched by idempotency key): ${result.runId}` : `
4217
4215
  Rerun started from ${runId}${inputOverrides ? " with input overrides" : ""}.`
4218
4216
  );
4219
- console.log(` inspect: deepline runs get ${result.runId} --json`);
4217
+ console.log(` inspect: deepline runs get ${result.runId}`);
4220
4218
  console.log(` original input: deepline runs get ${result.runId} --input`);
4221
4219
  console.log(
4222
4220
  result.deduplicated === true ? " No new run was started. Use a different --idempotency-key to start another rerun." : ` This is a fresh run using the original input${inputOverrides ? " with the supplied field overrides" : ""} and pinned revision. Normal tool receipt reuse still applies.`
@@ -7976,6 +7974,14 @@ async function loadPlayBundler() {
7976
7974
  })();
7977
7975
  return playBundlerPromise;
7978
7976
  }
7977
+ function liveMaxCreditsPerRun(sourceCode) {
7978
+ if (!sourceCode) return "source unavailable";
7979
+ if (!/\bmaxCreditsPerRun\b/.test(sourceCode)) return "not set";
7980
+ const literal = /\bmaxCreditsPerRun\s*:\s*([0-9][0-9_]*(?:\.[0-9]+)?)\b/.exec(
7981
+ sourceCode
7982
+ );
7983
+ return literal ? literal[1].replace(/_/g, "") : "not a literal (read it with plays get --source --live)";
7984
+ }
7979
7985
  function resolveEvalIntegrationMode() {
7980
7986
  const mode = process.env.DEEPLINE_EVAL_INTEGRATION_MODE;
7981
7987
  if (mode === "live" || mode === "eval_stub" || mode === "fixture") {
@@ -8265,12 +8271,12 @@ function buildPlayReferenceNotFoundMessage(input) {
8265
8271
  ` deepline plays run ${suggestion.reference} --input '{...}'`
8266
8272
  );
8267
8273
  } else if (input.command === "get") {
8268
- lines.push(` deepline plays get ${suggestion.reference} --json`);
8274
+ lines.push(` deepline plays get ${suggestion.reference}`);
8269
8275
  } else if (input.command === "check") {
8270
- lines.push(` deepline plays check ${suggestion.reference} --json`);
8276
+ lines.push(` deepline plays check ${suggestion.reference}`);
8271
8277
  } else if (input.command === "versions") {
8272
8278
  lines.push(
8273
- ` deepline plays versions --name ${suggestion.reference} --json`
8279
+ ` deepline plays versions --name ${suggestion.reference}`
8274
8280
  );
8275
8281
  } else {
8276
8282
  lines.push(` deepline describe ${suggestion.reference}`);
@@ -8282,7 +8288,7 @@ function buildPlayReferenceNotFoundMessage(input) {
8282
8288
  lines.push(
8283
8289
  "",
8284
8290
  "Search visible plays:",
8285
- ` deepline search --type plays ${shellQuote(searchQuery)} --json`
8291
+ ` deepline search --type plays ${shellQuote(searchQuery)}`
8286
8292
  );
8287
8293
  }
8288
8294
  return lines.join("\n");
@@ -8496,8 +8502,8 @@ function looksLikeRunId(target) {
8496
8502
  function formatPlayCommandReceivedRunIdError(input) {
8497
8503
  return `\`deepline plays ${input.command} <run-id>\` expects a play name, but this looks like a run id.
8498
8504
  Use:
8499
- deepline runs get ${input.runId} --json
8500
- deepline runs logs ${input.runId} --json
8505
+ deepline runs get ${input.runId}
8506
+ deepline runs logs ${input.runId}
8501
8507
  deepline runs export ${input.runId} --out output.csv`;
8502
8508
  }
8503
8509
  function looksLikeFilePath2(target) {
@@ -9018,7 +9024,7 @@ function getRunLifecycleHint(input) {
9018
9024
  }
9019
9025
  const activity = getLiveRunActivity(input.event);
9020
9026
  const activityConflictsWithDurableWait = status === "waiting" && activity?.observation.state.kind === "active" && activity.observation.target.kind !== "runner";
9021
- const inspect = `'deepline runs get ${runId} --full --json'`;
9027
+ const inspect = `'deepline runs get ${runId} --full'`;
9022
9028
  const sleepState = activity?.observation.state.kind === "scheduled" && activity.observation.state.reason === "sleep" ? activity.observation.state : null;
9023
9029
  if (status === "waiting" && (sleepState !== null || getLiveRunStringField(input.event, "waitKind") === "sleep")) {
9024
9030
  const recordedWake = readLiveRunField(input.event, "waitUntil");
@@ -9124,7 +9130,7 @@ function getLogLinesFromLiveEvent(event) {
9124
9130
  return Array.isArray(lines) ? lines.filter((line) => typeof line === "string") : [];
9125
9131
  }
9126
9132
  function buildRunInspectCommand(runId) {
9127
- return `deepline runs get ${runId} --full --json`;
9133
+ return `deepline runs get ${runId} --full`;
9128
9134
  }
9129
9135
  function extractTableNamespaceFromLiveEvent(event) {
9130
9136
  const payload = getEventPayload(event);
@@ -9449,7 +9455,7 @@ function assertPlayWaitNotTimedOut(input) {
9449
9455
  if (input.waitTimeoutMs !== null && Date.now() - input.startedAt >= input.waitTimeoutMs) {
9450
9456
  const hasRealRunId = input.workflowId.length > 0 && input.workflowId !== "pending";
9451
9457
  const phaseSuffix = input.lastPhase && input.lastPhase.trim() ? ` (last observed phase: ${input.lastPhase.trim()})` : "";
9452
- const tailHint = hasRealRunId ? ` The CLI stopped waiting; it did not cancel the run. Check its current state with 'deepline runs get ${input.workflowId} --json', or reattach with 'deepline runs watch ${input.workflowId} --json'. Do not start another run just to retrieve results.` : ` No run id was received, so acceptance is unknown. Check recent runs with 'deepline runs list --play <play-name> --json' before submitting again.`;
9458
+ const tailHint = hasRealRunId ? ` The CLI stopped waiting; it did not cancel the run. Check its current state with 'deepline runs get ${input.workflowId}', or reattach with 'deepline runs watch ${input.workflowId}'. Do not start another run just to retrieve results.` : ` No run id was received, so acceptance is unknown. Check recent runs with 'deepline runs list --play <play-name>' before submitting again.`;
9453
9459
  throw new DeeplineError(
9454
9460
  `Timed out waiting for play ${hasRealRunId ? input.workflowId : "<no run id>"} after ${Math.ceil(input.waitTimeoutMs / 1e3)}s${phaseSuffix}.${tailHint}`,
9455
9461
  void 0,
@@ -9985,7 +9991,7 @@ async function startAndWaitForPlayCompletionByStreamOnce(input) {
9985
9991
  const phaseSuffix = lastPhase && lastPhase.trim() ? ` (last observed phase: ${lastPhase.trim()})` : "";
9986
9992
  const idSuffix = lastKnownWorkflowId ? ` runId=${lastKnownWorkflowId}` : "";
9987
9993
  throw new DeeplineError(
9988
- `Play start request ended before terminal status was observed${idSuffix}${phaseSuffix}. If a run id was printed, inspect it with 'deepline runs get <run-id> --full --json' or continue watching with 'deepline runs watch <run-id>'.`,
9994
+ `Play start request ended before terminal status was observed${idSuffix}${phaseSuffix}. If a run id was printed, inspect it with 'deepline runs get <run-id> --full' or continue watching with 'deepline runs watch <run-id>'.`,
9989
9995
  void 0,
9990
9996
  "PLAY_START_STREAM_ENDED",
9991
9997
  {
@@ -10290,28 +10296,28 @@ function buildRunNextCommands(status) {
10290
10296
  if (!runId) {
10291
10297
  const playName = extractRunPlayName(status);
10292
10298
  return playName ? {
10293
- list: `deepline runs list --play ${playName} --json`
10299
+ list: `deepline runs list --play ${playName}`
10294
10300
  } : {
10295
- list: "deepline runs list --json"
10301
+ list: "deepline runs list"
10296
10302
  };
10297
10303
  }
10298
10304
  const actions2 = buildRunNavigation(status).actions;
10299
10305
  const exportDatasetCmds = Array.isArray(actions2.exportDatasetCmds) ? actions2.exportDatasetCmds : !status.package && extractCanonicalRowsInfo(status) ? [`deepline runs export ${runId} --out output.csv`] : [];
10300
10306
  const commands = {
10301
- get: String(actions2.getRunCmd ?? `deepline runs get ${runId} --json`),
10307
+ get: String(actions2.getRunCmd ?? `deepline runs get ${runId}`),
10302
10308
  full: String(
10303
- actions2.getFullRunCmd ?? `deepline runs get ${runId} --full --json`
10309
+ actions2.getFullRunCmd ?? `deepline runs get ${runId} --full`
10304
10310
  ),
10305
10311
  ...exportDatasetCmds.length === 1 ? { export: String(exportDatasetCmds[0]) } : {},
10306
10312
  logs: String(
10307
- !status.package ? `deepline runs logs ${runId} --out run.log --json` : actions2.getLogsCmd ?? `deepline runs logs ${runId} --limit 100 --json`
10313
+ !status.package ? `deepline runs logs ${runId} --out run.log` : actions2.getLogsCmd ?? `deepline runs logs ${runId} --limit 100`
10308
10314
  )
10309
10315
  };
10310
10316
  if (["started", "queued", "running", "waiting"].includes(status.status ?? "")) {
10311
- commands.stop = `deepline runs stop ${runId} --json`;
10317
+ commands.stop = `deepline runs stop ${runId}`;
10312
10318
  }
10313
10319
  if (status.status === "failed") {
10314
- commands.failedLogs = `deepline runs logs ${runId} --failed --json`;
10320
+ commands.failedLogs = `deepline runs logs ${runId} --failed`;
10315
10321
  if (status.rerunCommand) commands.run = status.rerunCommand;
10316
10322
  }
10317
10323
  if (status.dashboardUrl) {
@@ -10379,8 +10385,8 @@ function insufficientCreditsRecoveryCommands(billing) {
10379
10385
  billing.recommended_add_credits ?? billing.needed_credits
10380
10386
  );
10381
10387
  return {
10382
- topUp: `deepline billing top-up ${topUpCredits} --json`,
10383
- checkout: `deepline billing checkout --credits ${topUpCredits} --no-open --json`
10388
+ topUp: `deepline billing top-up ${topUpCredits}`,
10389
+ checkout: `deepline billing checkout --credits ${topUpCredits} --no-open`
10384
10390
  };
10385
10391
  }
10386
10392
  function extractJsonObjectFromText(text) {
@@ -10508,7 +10514,7 @@ function buildInsufficientCreditsSummaryLines(input) {
10508
10514
  lines.push(` checkout fallback: ${recovery.checkout}`);
10509
10515
  const runId = input.status.runId?.trim();
10510
10516
  if (runId) {
10511
- lines.push(` inspect: deepline runs get ${runId} --json`);
10517
+ lines.push(` inspect: deepline runs get ${runId}`);
10512
10518
  lines.push(
10513
10519
  ` export partial: deepline runs export ${runId} --out output.csv`
10514
10520
  );
@@ -10744,7 +10750,7 @@ function compactPlayStatus(status) {
10744
10750
  next: {
10745
10751
  ...readRecord(packaged.next) ?? {},
10746
10752
  ...status.failedLogs ? {
10747
- failedLogs: `deepline runs logs ${status.runId} --failed --json`
10753
+ failedLogs: `deepline runs logs ${status.runId} --failed`
10748
10754
  } : {},
10749
10755
  ...status.rerunCommand ? { run: status.rerunCommand } : {}
10750
10756
  }
@@ -10757,14 +10763,14 @@ function compactPlayStatus(status) {
10757
10763
  ...status.failedLogs ? {
10758
10764
  next: {
10759
10765
  ...readRecord(packaged.next) ?? {},
10760
- failedLogs: `deepline runs logs ${status.runId} --failed --json`
10766
+ failedLogs: `deepline runs logs ${status.runId} --failed`
10761
10767
  }
10762
10768
  } : {},
10763
10769
  ...status.rerunCommand ? {
10764
10770
  next: {
10765
10771
  ...readRecord(packaged.next) ?? {},
10766
10772
  ...status.failedLogs ? {
10767
- failedLogs: `deepline runs logs ${status.runId} --failed --json`
10773
+ failedLogs: `deepline runs logs ${status.runId} --failed`
10768
10774
  } : {},
10769
10775
  run: status.rerunCommand
10770
10776
  }
@@ -10925,13 +10931,13 @@ function actionToCommand(action) {
10925
10931
  return record3.command.trim();
10926
10932
  }
10927
10933
  if (record3.kind === "deepline_run_inspect" && typeof record3.runId === "string") {
10928
- return `deepline runs get ${record3.runId} --json`;
10934
+ return `deepline runs get ${record3.runId}`;
10929
10935
  }
10930
10936
  if (record3.kind === "deepline_run_full" && typeof record3.runId === "string") {
10931
- return `deepline runs get ${record3.runId} --full --json`;
10937
+ return `deepline runs get ${record3.runId} --full`;
10932
10938
  }
10933
10939
  if (record3.kind === "deepline_run_billing" && typeof record3.runId === "string") {
10934
- return `deepline billing usage --run-id ${record3.runId} --json`;
10940
+ return `deepline billing usage --run-id ${record3.runId}`;
10935
10941
  }
10936
10942
  if (record3.kind === "deepline_run_export" && typeof record3.runId === "string" && typeof record3.datasetPath === "string") {
10937
10943
  return `deepline runs export ${record3.runId} --dataset ${shellQuote(
@@ -10943,12 +10949,12 @@ function actionToCommand(action) {
10943
10949
  return record3.command;
10944
10950
  }
10945
10951
  if (typeof record3.runId === "string") {
10946
- return record3.view === "failed" ? `deepline runs logs ${record3.runId} --failed --json` : `deepline runs logs ${record3.runId} --json`;
10952
+ return record3.view === "failed" ? `deepline runs logs ${record3.runId} --failed` : `deepline runs logs ${record3.runId}`;
10947
10953
  }
10948
10954
  }
10949
10955
  if (record3.kind === "deepline_db_query" && typeof record3.sql === "string") {
10950
10956
  const maxRows = typeof record3.maxRows === "number" && Number.isFinite(record3.maxRows) ? Math.trunc(record3.maxRows) : 20;
10951
- return `deepline db query --sql ${shellQuote(record3.sql)} --max-rows ${maxRows} --json`;
10957
+ return `deepline db query --sql ${shellQuote(record3.sql)} --max-rows ${maxRows}`;
10952
10958
  }
10953
10959
  return null;
10954
10960
  }
@@ -11690,7 +11696,7 @@ function writePlayResult(status, jsonOutput, options) {
11690
11696
  )
11691
11697
  );
11692
11698
  if (status.status === "failed") {
11693
- lines.push(` failed logs: deepline runs logs ${runId} --failed --json`);
11699
+ lines.push(` failed logs: deepline runs logs ${runId} --failed`);
11694
11700
  if (status.rerunCommand) {
11695
11701
  lines.push(" run again (completed work is reused):");
11696
11702
  lines.push(` ${status.rerunCommand}`);
@@ -12012,7 +12018,7 @@ function assertDatasetHasExportableRows(input) {
12012
12018
  input.rowsInfo.rows.length
12013
12019
  );
12014
12020
  const terminalRunWithMissingAdvertisedRows = advertisedRows > 0 && (runStatus === "completed" || runStatus === "failed" || runStatus === "cancelled");
12015
- const inspectCommand = `deepline runs get ${input.status.runId} --full --json`;
12021
+ const inspectCommand = `deepline runs get ${input.status.runId} --full`;
12016
12022
  const retryCommand = runExportRetryCommand(
12017
12023
  input.status.runId,
12018
12024
  input.outPath ?? "output.csv",
@@ -12290,9 +12296,9 @@ function formatActiveRunConflictError(input) {
12290
12296
  lines.push(
12291
12297
  ` active: ${runId}${status ? ` status=${status}` : ""}${startedAt ? ` startedAt=${startedAt}` : ""}`
12292
12298
  );
12293
- lines.push(` get: deepline runs get ${runId} --json`);
12299
+ lines.push(` get: deepline runs get ${runId}`);
12294
12300
  lines.push(
12295
- ` stop: deepline runs stop ${runId} --reason "stale lock" --json`
12301
+ ` stop: deepline runs stop ${runId} --reason "stale lock"`
12296
12302
  );
12297
12303
  }
12298
12304
  lines.push(
@@ -12528,7 +12534,7 @@ function writeStartedPlayRun(input) {
12528
12534
  `Logs: deepline runs logs ${shellQuote(input.runId)}`,
12529
12535
  ...["started", "queued", "running", "waiting"].includes(
12530
12536
  input.status ?? "started"
12531
- ) ? [`Stop: deepline runs stop ${shellQuote(input.runId)} --json`] : []
12537
+ ) ? [`Stop: deepline runs stop ${shellQuote(input.runId)}`] : []
12532
12538
  ];
12533
12539
  if (input.jsonOutput) {
12534
12540
  printCommandEnvelope(payload, { json: true, fields: input.jsonFields });
@@ -12916,7 +12922,7 @@ async function handlePlayCheck(args) {
12916
12922
  runtimeLimit: play.runtimeLimit ?? null,
12917
12923
  activeScheduledPlays: play.activeScheduledPlays ?? null,
12918
12924
  actions: {
12919
- getFullCheckCmd: `deepline plays check ${shellQuote(options.target)} --full --json`,
12925
+ getFullCheckCmd: `deepline plays check ${shellQuote(options.target)} --full`,
12920
12926
  ...play.runCommand ? { runCmd: play.runCommand } : {}
12921
12927
  },
12922
12928
  ...options.full ? { diagnostics: { staticPipeline: play.staticPipeline ?? null } } : {}
@@ -12970,7 +12976,7 @@ async function handlePlayCheck(args) {
12970
12976
  outcomes,
12971
12977
  target: options.target,
12972
12978
  full: options.full,
12973
- detailsCommand: `deepline plays check ${shellQuote(options.target)} --full --json`,
12979
+ detailsCommand: `deepline plays check ${shellQuote(options.target)} --full`,
12974
12980
  publishCommand: primary?.result.artifactHash ? `deepline plays publish ${shellQuote(options.target)} --expected-artifact ${primary.result.artifactHash}` : void 0
12975
12981
  });
12976
12982
  printCommandEnvelope(output, {
@@ -13487,7 +13493,7 @@ async function handlePlayRun(args, hooks) {
13487
13493
  await writePlayRunIdFile(options.runIdFile, runId);
13488
13494
  } catch (error) {
13489
13495
  throw new Error(
13490
- `Run ${runId} was accepted, but its identity could not be persisted to ${options.runIdFile}: ${error instanceof Error ? error.message : String(error)}. Inspect it with 'deepline runs get ${runId} --full --json'; do not submit a replacement run.`,
13496
+ `Run ${runId} was accepted, but its identity could not be persisted to ${options.runIdFile}: ${error instanceof Error ? error.message : String(error)}. Inspect it with 'deepline runs get ${runId} --full'; do not submit a replacement run.`,
13491
13497
  { cause: error }
13492
13498
  );
13493
13499
  }
@@ -13500,7 +13506,7 @@ async function handlePlayRun(args, hooks) {
13500
13506
  });
13501
13507
  } catch (error) {
13502
13508
  throw new Error(
13503
- `Run ${runId} was admitted, but its confirmation could not be persisted to ${options.runIdFile}: ${error instanceof Error ? error.message : String(error)}. Inspect it with 'deepline runs get ${runId} --json'; do not submit a replacement run.`,
13509
+ `Run ${runId} was admitted, but its confirmation could not be persisted to ${options.runIdFile}: ${error instanceof Error ? error.message : String(error)}. Inspect it with 'deepline runs get ${runId}'; do not submit a replacement run.`,
13504
13510
  { cause: error }
13505
13511
  );
13506
13512
  }
@@ -13967,8 +13973,8 @@ async function handleRunsList(args) {
13967
13973
  if (!playName && !statusFilter) {
13968
13974
  const message = "runs list requires --play or --status.";
13969
13975
  const next = {
13970
- discover: "deepline plays list --json",
13971
- running: "deepline runs list --status running --json"
13976
+ discover: "deepline plays list",
13977
+ running: "deepline runs list --status running"
13972
13978
  };
13973
13979
  console.error(
13974
13980
  `${message}
@@ -14034,7 +14040,7 @@ Active runs: ${next.running}`
14034
14040
  ` started: ${formatTimestamp(run.startedAt)}`,
14035
14041
  ` finished: ${formatTimestamp(run.finishedAt)}`,
14036
14042
  ` credits: ${typeof run.billingTotalCredits === "number" && Number.isFinite(run.billingTotalCredits) ? formatCreditAmount2(run.billingTotalCredits) : "\u2014"}`,
14037
- ` inspect: deepline runs get ${run.id} --json`
14043
+ ` inspect: deepline runs get ${run.id}`
14038
14044
  ];
14039
14045
  if (run.parentRunId) lines2.push(` parent: ${run.parentRunId}`);
14040
14046
  if (run.rootRunId) lines2.push(` root: ${run.rootRunId}`);
@@ -14054,7 +14060,7 @@ Active runs: ${next.running}`
14054
14060
  return lines2.join("\n");
14055
14061
  });
14056
14062
  const nextOffset = (page.offset ?? offset ?? 0) + runs.length;
14057
- const nextPage = page.hasMore && playName ? `deepline runs list --play ${shellQuote(playName)}${statusFilter ? ` --status ${shellQuote(statusFilter)}` : ""} --limit ${page.limit ?? limit ?? 20} --offset ${nextOffset} --json` : null;
14063
+ const nextPage = page.hasMore && playName ? `deepline runs list --play ${shellQuote(playName)}${statusFilter ? ` --status ${shellQuote(statusFilter)}` : ""} --limit ${page.limit ?? limit ?? 20} --offset ${nextOffset}` : null;
14058
14064
  if (page.hasMore) {
14059
14065
  lines.push("List truncated \u2014 more runs match this filter.");
14060
14066
  lines.push(
@@ -14071,7 +14077,7 @@ Active runs: ${next.running}`
14071
14077
  ...page.hasMore !== void 0 ? { has_more: page.hasMore, is_truncated: page.hasMore } : {},
14072
14078
  next: {
14073
14079
  page: nextPage,
14074
- get: runs[0]?.id ? `deepline runs get ${runs[0].id} --json` : null
14080
+ get: runs[0]?.id ? `deepline runs get ${runs[0].id}` : null
14075
14081
  },
14076
14082
  render: { sections: [{ title: "runs", lines }] }
14077
14083
  },
@@ -14352,7 +14358,7 @@ async function handleRunLogs(args) {
14352
14358
  nextCursor: void 0
14353
14359
  } : selectRunLogTailPage(result, logLevel, limit);
14354
14360
  const entries = page.entries;
14355
- const nextPage = page.nextCursor ? `deepline runs logs ${result.runId} --limit ${limit}${logLevel === "debug" ? "" : ` --log-level ${logLevel}`} --cursor ${page.nextCursor} --json` : null;
14361
+ const nextPage = page.nextCursor ? `deepline runs logs ${result.runId} --limit ${limit}${logLevel === "debug" ? "" : ` --log-level ${logLevel}`} --cursor ${page.nextCursor}` : null;
14356
14362
  const filteredResult = {
14357
14363
  ...result,
14358
14364
  entries,
@@ -14362,7 +14368,7 @@ async function handleRunLogs(args) {
14362
14368
  view: failed ? result.view : "tail",
14363
14369
  next: {
14364
14370
  ...result.next ?? {},
14365
- logs: `deepline runs logs ${result.runId} --out run.log --log-level ${logLevel} --json`
14371
+ logs: `deepline runs logs ${result.runId} --out run.log --log-level ${logLevel}`
14366
14372
  }
14367
14373
  };
14368
14374
  const text = buildRunLogsText(filteredResult);
@@ -14385,7 +14391,7 @@ async function handleRunLogs(args) {
14385
14391
  next: {
14386
14392
  ...result.next ?? {},
14387
14393
  ...nextPage ? { page: nextPage } : {},
14388
- export: `deepline runs logs ${result.runId} --out run.log --log-level ${logLevel} --json`
14394
+ export: `deepline runs logs ${result.runId} --out run.log --log-level ${logLevel}`
14389
14395
  },
14390
14396
  render: { sections: [{ title: "run logs", lines: entries }] }
14391
14397
  },
@@ -14561,8 +14567,7 @@ ${renderedDetails}` : ""}`;
14561
14567
  "--cursor",
14562
14568
  shellQuote(result.nextCursor),
14563
14569
  "--limit",
14564
- String(limit),
14565
- "--json"
14570
+ String(limit)
14566
14571
  ].join(" ") : null;
14567
14572
  printCommandEnvelope(
14568
14573
  {
@@ -14587,7 +14592,7 @@ function buildRunLogsText(result) {
14587
14592
  if (lines.length > 0) lines.push("");
14588
14593
  lines.push(`warning: ${result.warning}`);
14589
14594
  lines.push(
14590
- `retained logs: ${result.next?.logs ?? `deepline runs logs ${result.runId} --out run.log --json`}`
14595
+ `retained logs: ${result.next?.logs ?? `deepline runs logs ${result.runId} --out run.log`}`
14591
14596
  );
14592
14597
  }
14593
14598
  return `${lines.join("\n")}${lines.length > 0 ? "\n" : ""}`;
@@ -14629,7 +14634,7 @@ async function handleRunStop(args) {
14629
14634
  const lines2 = [
14630
14635
  `Cancelling run ${result.runId || runId}; sandbox cleanup and the final run update are pending.`,
14631
14636
  ...result.hitlCancelledCount > 0 ? [`cancelled HITL waits: ${result.hitlCancelledCount}`] : [],
14632
- `inspect: deepline runs get ${runId} --full --json`
14637
+ `inspect: deepline runs get ${runId} --full`
14633
14638
  ];
14634
14639
  printCommandEnvelope(
14635
14640
  {
@@ -14659,7 +14664,7 @@ async function handleRunStop(args) {
14659
14664
  "warning: HITL cancellation or same-card Slack refresh is still pending"
14660
14665
  ] : [],
14661
14666
  `retry: deepline runs stop ${runId}`,
14662
- `inspect: deepline runs get ${runId} --full --json`
14667
+ `inspect: deepline runs get ${runId} --full`
14663
14668
  ];
14664
14669
  process.stderr.write(`${lines2.join("\n")}
14665
14670
  `);
@@ -14874,7 +14879,7 @@ async function handleRunExport(args) {
14874
14879
  const currentTableNotice = exportResult?.currentTable ? {
14875
14880
  code: "CURRENT_SHARED_DATASET",
14876
14881
  message: "This export is the current shared dataset and may include writes from another run.",
14877
- full_run_output_command: `deepline runs get ${status.runId} --full --json`
14882
+ full_run_output_command: `deepline runs get ${status.runId} --full`
14878
14883
  } : null;
14879
14884
  const navigation = buildRunNavigation(status);
14880
14885
  const resolved = exportResult?.datasetInfo;
@@ -14893,7 +14898,7 @@ async function handleRunExport(args) {
14893
14898
  const rowFailures = exportedRowOutcomes && exportedRowOutcomes.failed > 0 ? {
14894
14899
  count: exportedRowOutcomes.failed,
14895
14900
  message: "Failed rows can retain values from stages that completed earlier; those values do not prove the row succeeded.",
14896
- inspectCommand: `deepline runs get ${status.runId} --json`
14901
+ inspectCommand: `deepline runs get ${status.runId}`
14897
14902
  } : null;
14898
14903
  const payload = {
14899
14904
  runId: status.runId,
@@ -14924,7 +14929,7 @@ async function handleRunExport(args) {
14924
14929
  `Partial export: run is ${status.status}; more rows may be saved.`,
14925
14930
  `Export after completion: ${exportCommand} --wait`
14926
14931
  ] : status.status === "failed" || status.status === "cancelled" ? [
14927
- `Saved rows from a ${status.status} run. Inspect: deepline runs get ${status.runId} --json`
14932
+ `Saved rows from a ${status.status} run. Inspect: deepline runs get ${status.runId}`
14928
14933
  ] : [],
14929
14934
  ...currentTableNotice ? [
14930
14935
  "Current shared dataset: this export may include writes from another run.",
@@ -15075,6 +15080,11 @@ async function handlePlayGet(args) {
15075
15080
  `Working version: ${detail.play.workingRevision?.version ?? "\u2014"}`
15076
15081
  );
15077
15082
  console.log(`Live version: ${detail.play.liveRevision?.version ?? "\u2014"}`);
15083
+ if (detail.play.liveRevision) {
15084
+ console.log(
15085
+ `Live max credits per run: ${liveMaxCreditsPerRun(detail.play.liveRevision.sourceCode)}`
15086
+ );
15087
+ }
15078
15088
  console.log(`Draft dirty: ${detail.play.isDraftDirty ? "yes" : "no"}`);
15079
15089
  if (detail.play.isDraftDirty && detail.play.liveRevision?.version) {
15080
15090
  console.log(
@@ -15203,7 +15213,7 @@ async function handlePlayList(args) {
15203
15213
  );
15204
15214
  return 1;
15205
15215
  }
15206
- const nextPage = page.hasMore && page.cursor ? `deepline plays list${categories ? ` --categories ${shellQuote(categories)}` : ""}${tags.map((tag) => ` --tag ${shellQuote(tag)}`).join("")}${limit ? ` --limit ${limit}` : ""}${showCost ? " --show-cost" : ""} --cursor ${shellQuote(page.cursor)} --json` : null;
15216
+ const nextPage = page.hasMore && page.cursor ? `deepline plays list${categories ? ` --categories ${shellQuote(categories)}` : ""}${tags.map((tag) => ` --tag ${shellQuote(tag)}`).join("")}${limit ? ` --limit ${limit}` : ""}${showCost ? " --show-cost" : ""} --cursor ${shellQuote(page.cursor)}` : null;
15207
15217
  if (page.hasMore && !nextPage) {
15208
15218
  throw new Error(
15209
15219
  "Play list reported more results without a continuation cursor"
@@ -16024,12 +16034,12 @@ Concepts:
16024
16034
  New Plays start at person; publishing moves them to team, preserving folders.
16025
16035
 
16026
16036
  Run and retrieve results:
16027
- 1. Discover a Play: deepline plays search email --json
16037
+ 1. Discover a Play: deepline plays search email
16028
16038
  Inspect its input contract: deepline describe <play-name>
16029
16039
  2. Start and follow a new run: deepline plays run workflow.play.ts --csv contacts.csv
16030
16040
  This example requires input.csv. Use the selected Play's actual input fields.
16031
16041
  Run waits and shows progress by default; --no-wait returns immediately.
16032
- 3. Read its overview: deepline runs get <run-id> --json
16042
+ 3. Read its overview: deepline runs get <run-id>
16033
16043
  4. Export complete rows: deepline runs export <run-id> --dataset <returned-selector> --out results.csv
16034
16044
  If disconnected, attach to the SAME run with deepline runs tail <run-id>.
16035
16045
  Repeating plays run starts another run; tail does not.
@@ -16059,11 +16069,11 @@ Authoring:
16059
16069
  Play work unless the caller explicitly asks to leave the inferred graph.
16060
16070
 
16061
16071
  Common commands:
16062
- deepline search "name and company domain -> work email" --type prebuilts --json
16072
+ deepline search "name and company domain -> work email" --type prebuilts
16063
16073
  deepline describe prebuilt/person-linkedin-to-email
16064
16074
  deepline plays check prebuilt/name-and-domain-to-email-waterfall-batch
16065
16075
  deepline plays run prebuilt/person-linkedin-to-email --input '{"linkedin_url":"..."}'
16066
- deepline plays get prebuilt/person-linkedin-to-email --json
16076
+ deepline plays get prebuilt/person-linkedin-to-email
16067
16077
  `
16068
16078
  );
16069
16079
  play.command("check <target>").description("Check a local play file or named/prebuilt play contract.").addHelpText(
@@ -16082,10 +16092,9 @@ Notes:
16082
16092
 
16083
16093
  Examples:
16084
16094
  deepline plays check prebuilt/name-and-domain-to-email-waterfall-batch
16085
- deepline plays check my-play --json
16086
- deepline plays check my.play.ts --json
16087
- deepline plays check my.play.ts --json valid,inputSchema,recognized,actions
16088
- deepline plays check my.play.ts --full --json
16095
+ deepline plays check my-play
16096
+ deepline plays check my.play.ts
16097
+ deepline plays check my.play.ts --full
16089
16098
  `
16090
16099
  ).option("--full", "Include compiler diagnostics").option(
16091
16100
  "--json [fields]",
@@ -16178,7 +16187,7 @@ Examples:
16178
16187
  deepline plays run my.play.ts --input '{"domain":"stripe.com"}' --log-level debug
16179
16188
  deepline plays run my.play.ts --profile absurd
16180
16189
  deepline plays run my.play.ts --max-concurrent-external-calls 20
16181
- deepline plays run my.play.ts --input @input.json --json
16190
+ deepline plays run my.play.ts --input @input.json
16182
16191
  deepline plays run cto-search.play.ts --limit 5
16183
16192
  deepline runs export <run-id> --out output.csv
16184
16193
  deepline runs get <run-id>
@@ -16291,12 +16300,11 @@ Notes:
16291
16300
 
16292
16301
  Examples:
16293
16302
  deepline plays get prebuilt/person-linkedin-to-email
16294
- deepline plays get prebuilt/person-linkedin-to-email --json | jq '.play.liveRevision'
16295
16303
  deepline plays get prebuilt/name-and-domain-to-email-waterfall-batch --source > email-waterfall.play.ts
16296
16304
  deepline plays get my-play --source --out ./my-play/ --working
16297
16305
  deepline plays get my-play --source --out ./my-play-v3/ --revision 3
16298
16306
  `
16299
- ).option("--json", "Emit JSON output. Also automatic when stdout is piped").option(
16307
+ ).option("--json", "Emit JSON output").option(
16300
16308
  "--source",
16301
16309
  "Read source; prints single-file Plays or combines with --out to write the full bundle"
16302
16310
  ).option(
@@ -16333,7 +16341,7 @@ Examples:
16333
16341
  });
16334
16342
  printCompactJson({
16335
16343
  ...result,
16336
- next: result.isDone ? null : `deepline plays triggers --cursor ${JSON.stringify(result.continueCursor)} --json`
16344
+ next: result.isDone ? null : `deepline plays triggers --cursor ${JSON.stringify(result.continueCursor)}`
16337
16345
  });
16338
16346
  });
16339
16347
  play.command("list").description("List saved and prebuilt plays.").addHelpText(
@@ -16351,10 +16359,10 @@ Notes:
16351
16359
 
16352
16360
  Examples:
16353
16361
  deepline plays list
16354
- deepline plays list --tag smb --json
16355
- deepline search "name and company domain -> work email" --type prebuilts --json
16362
+ deepline plays list --tag smb
16363
+ deepline search "name and company domain -> work email" --type prebuilts
16356
16364
  `
16357
- ).option("--limit <count>", "Page size").option("--cursor <cursor>", "Continue a previous page").option("--show-cost", "Include the per-row or per-run cost estimate").option("--json", "Emit JSON output. Also automatic when stdout is piped").option(
16365
+ ).option("--limit <count>", "Page size").option("--cursor <cursor>", "Continue a previous page").option("--show-cost", "Include the per-row or per-run cost estimate").option("--json", "Emit JSON output").option(
16358
16366
  "--categories <categories>",
16359
16367
  "Filter by comma-separated canonical tool categories"
16360
16368
  ).option(
@@ -16395,7 +16403,7 @@ Examples:
16395
16403
  printCommandEnvelope(
16396
16404
  { ...result },
16397
16405
  {
16398
- json: options.json || !process.stdout.isTTY,
16406
+ json: Boolean(options.json),
16399
16407
  text: `${lines.join("\n")}
16400
16408
  `
16401
16409
  }
@@ -16435,10 +16443,10 @@ Notes:
16435
16443
  Prebuilt and archived Plays are not part of this index.
16436
16444
 
16437
16445
  Examples:
16438
- deepline plays grep email --json
16446
+ deepline plays grep email
16439
16447
  deepline describe prebuilt/company-to-contact
16440
16448
  `
16441
- ).option("--json", "Emit JSON output. Also automatic when stdout is piped").action(async (query, options) => {
16449
+ ).option("--json", "Emit JSON output").action(async (query, options) => {
16442
16450
  process.exitCode = await handlePlayGrep([
16443
16451
  query,
16444
16452
  ...options.json ? ["--json"] : []
@@ -16454,9 +16462,8 @@ Notes:
16454
16462
  Use \`get\` when you need full metadata, revisions, source fields, or latest runs.
16455
16463
 
16456
16464
  Examples:
16457
- deepline plays describe prebuilt/person-linkedin-to-email
16458
- deepline plays describe prebuilt/person-linkedin-to-email --json
16459
- deepline plays describe prebuilt/person-linkedin-to-email --json inputSchema,runCommand
16465
+ deepline describe prebuilt/person-linkedin-to-email
16466
+ deepline describe prebuilt/person-linkedin-to-email
16460
16467
  deepline plays get prebuilt/person-linkedin-to-email --source --out ./person-linkedin-to-email.play.ts
16461
16468
  `
16462
16469
  ).option("--compact", "Emit compact schemas").option(
@@ -16476,7 +16483,7 @@ Examples:
16476
16483
  process.exitCode = await ownView();
16477
16484
  return;
16478
16485
  }
16479
- const { describeAnything } = await import("./describe-XMWXEFMS.mjs");
16486
+ const { describeAnything } = await import("./describe-GI5GHAKO.mjs");
16480
16487
  process.exitCode = await describeAnything(
16481
16488
  name,
16482
16489
  {
@@ -16498,10 +16505,10 @@ Notes:
16498
16505
 
16499
16506
  Examples:
16500
16507
  deepline plays versions --name my-play
16501
- deepline plays versions --name my-play --json
16508
+ deepline plays versions --name my-play
16502
16509
  deepline plays run my-play --revision-id <revision-id>
16503
16510
  `
16504
- ).option("--name <name>", "Saved play name").option("--json", "Emit JSON output. Also automatic when stdout is piped").action(async (options) => {
16511
+ ).option("--name <name>", "Saved play name").option("--json", "Emit JSON output").action(async (options) => {
16505
16512
  process.exitCode = await handlePlayVersions([
16506
16513
  ...options.name ? ["--name", options.name] : [],
16507
16514
  ...options.json ? ["--json"] : []
@@ -16519,13 +16526,13 @@ Notes:
16519
16526
 
16520
16527
  Examples:
16521
16528
  deepline plays save ./company-research.play.ts
16522
- deepline plays save ./company-research.play.ts --dry-run --json
16529
+ deepline plays save ./company-research.play.ts --dry-run
16523
16530
  deepline plays publish ./company-research.play.ts
16524
16531
  `
16525
16532
  ).option("--expected-artifact <hash>", "Require the checked artifact hash").option(
16526
16533
  "--dry-run",
16527
16534
  "Bundle and show the planned draft save without mutation"
16528
- ).option("--json", "Emit JSON output. Also automatic when stdout is piped").action(async (file, options) => {
16535
+ ).option("--json", "Emit JSON output").action(async (file, options) => {
16529
16536
  process.exitCode = await handlePlaySave([
16530
16537
  file,
16531
16538
  ...options.expectedArtifact ? ["--expected-artifact", options.expectedArtifact] : [],
@@ -16548,13 +16555,13 @@ Notes:
16548
16555
  Change location with: deepline plays settings set --play <play> --name path --value team/Research
16549
16556
 
16550
16557
  Examples:
16551
- deepline plays set-live my-play --latest --json
16552
- deepline plays set-live my-play --revision-id <revision-id> --json
16553
- deepline plays set-live my.play.ts --json
16554
- deepline plays publish my.play.ts --json
16558
+ deepline plays set-live my-play --latest
16559
+ deepline plays set-live my-play --revision-id <revision-id>
16560
+ deepline plays set-live my.play.ts
16561
+ deepline plays publish my.play.ts
16555
16562
  deepline plays check my.play.ts
16556
16563
  deepline plays publish my.play.ts --expected-artifact <artifact-hash>
16557
- deepline plays publish my.play.ts --dry-run --json
16564
+ deepline plays publish my.play.ts --dry-run
16558
16565
  `
16559
16566
  );
16560
16567
  play.command("deploy [directory]").description(
@@ -16576,7 +16583,7 @@ Examples:
16576
16583
  ).option(
16577
16584
  "--manifest <file>",
16578
16585
  "Manifest file name in the directory (default: deepline.json)"
16579
- ).option("--repo <owner/name>", "Repository to record on the deployment").option("--ref <ref>", "Branch or ref to record on the deployment").option("--commit <sha>", "Commit to record on the deployment").option("--json", "Emit JSON output. Also automatic when stdout is piped").action(
16586
+ ).option("--repo <owner/name>", "Repository to record on the deployment").option("--ref <ref>", "Branch or ref to record on the deployment").option("--commit <sha>", "Commit to record on the deployment").option("--json", "Emit JSON output").action(
16580
16587
  async (directory, options) => handlePlaysDeploy(directory, options)
16581
16588
  );
16582
16589
  play.command("deployments [id]").description(
@@ -16592,7 +16599,7 @@ Examples:
16592
16599
  deepline plays deployments
16593
16600
  deepline plays deployments <deployment-id>
16594
16601
  `
16595
- ).option("--limit <n>", "Max rows (default 50)").option("--json", "Emit JSON output. Also automatic when stdout is piped").action(
16602
+ ).option("--limit <n>", "Max rows (default 50)").option("--json", "Emit JSON output").action(
16596
16603
  async (id, options) => id ? handleDeploymentGet(id, options) : handleDeploymentsList(options)
16597
16604
  );
16598
16605
  addPublishHelp(
@@ -16602,7 +16609,7 @@ Examples:
16602
16609
  ).option("--latest", "Promote the newest saved revision").option("--revision-id <id>", "Revision to promote").option(
16603
16610
  "--expected-artifact <hash>",
16604
16611
  "Require the local file to produce this checked artifact hash"
16605
- ).option("--dry-run", "Bundle and show the planned publish without mutation").option("--json", "Emit JSON output. Also automatic when stdout is piped").action(async (target, options) => {
16612
+ ).option("--dry-run", "Bundle and show the planned publish without mutation").option("--json", "Emit JSON output").action(async (target, options) => {
16606
16613
  process.exitCode = await handlePlayPublish([
16607
16614
  target,
16608
16615
  ...options.latest ? ["--latest"] : [],
@@ -16617,7 +16624,7 @@ Examples:
16617
16624
  ).option("--latest", "Promote the newest saved revision").option("--revision-id <id>", "Revision to promote").option(
16618
16625
  "--expected-artifact <hash>",
16619
16626
  "Require the local file to produce this checked artifact hash"
16620
- ).option("--dry-run", "Bundle and show the planned publish without mutation").option("--json", "Emit JSON output. Also automatic when stdout is piped").action(async (target, options) => {
16627
+ ).option("--dry-run", "Bundle and show the planned publish without mutation").option("--json", "Emit JSON output").action(async (target, options) => {
16621
16628
  process.exitCode = await handlePlayPublish([
16622
16629
  target,
16623
16630
  ...options.latest ? ["--latest"] : [],
@@ -16637,10 +16644,10 @@ Notes:
16637
16644
 
16638
16645
  Examples:
16639
16646
  deepline plays delete my-play --yes
16640
- deepline plays delete my-play --yes --json
16641
- deepline plays delete my-play --yes --dry-run --json
16647
+ deepline plays delete my-play --yes
16648
+ deepline plays delete my-play --yes --dry-run
16642
16649
  `
16643
- ).option("-y, --yes", "Confirm deletion").option("--dry-run", "Show the planned archive without mutating the play").option("--json", "Emit JSON output. Also automatic when stdout is piped").action(async (target, options) => {
16650
+ ).option("-y, --yes", "Confirm deletion").option("--dry-run", "Show the planned archive without mutating the play").option("--json", "Emit JSON output").action(async (target, options) => {
16644
16651
  process.exitCode = await handlePlayDelete([
16645
16652
  target,
16646
16653
  ...options.yes ? ["--yes"] : [],
@@ -16656,9 +16663,9 @@ Notes:
16656
16663
 
16657
16664
  Examples:
16658
16665
  deepline plays restore my-play
16659
- deepline plays restore my-play --json
16666
+ deepline plays restore my-play
16660
16667
  `
16661
- ).option("--json", "Emit JSON output. Also automatic when stdout is piped").action(async (target, options) => {
16668
+ ).option("--json", "Emit JSON output").action(async (target, options) => {
16662
16669
  process.exitCode = await handlePlayRestore([
16663
16670
  target,
16664
16671
  ...options.json ? ["--json"] : []
@@ -16677,8 +16684,8 @@ Concepts:
16677
16684
  stop requests cancellation. rerun starts new work and may spend credits.
16678
16685
 
16679
16686
  Retrieve results:
16680
- deepline runs get <run-id> --json
16681
- deepline runs children <parent-run-id> --launch-key approval --json
16687
+ deepline runs get <run-id>
16688
+ deepline runs children <parent-run-id> --launch-key approval
16682
16689
  deepline runs export <run-id> --dataset <returned-selector> --out results.csv
16683
16690
  Choose the selector returned by get, not a guessed internal table name.
16684
16691
  Overview previews are samples, not complete rows. --full adds diagnostics,
@@ -16700,17 +16707,17 @@ More options:
16700
16707
 
16701
16708
  Debug a run:
16702
16709
  Active: deepline runs watch <run-id> --log-level debug
16703
- Historical: deepline runs logs <run-id> --out run.log --log-level debug --json
16704
- Full state: deepline runs get <run-id> --full --json
16710
+ Historical: deepline runs logs <run-id> --out run.log --log-level debug
16711
+ Full state: deepline runs get <run-id> --full
16705
16712
 
16706
16713
  Examples:
16707
- deepline runs get play/my-play/run/20260501t000000-000 --json
16714
+ deepline runs get play/my-play/run/20260501t000000-000
16708
16715
  deepline runs watch play/my-play/run/20260501t000000-000
16709
- deepline runs logs play/my-play/run/20260501t000000-000 --out run.log --log-level debug --json
16710
- deepline runs list --play my-play --status failed --json
16711
- deepline runs list --status running --json
16712
- deepline runs stop play/my-play/run/20260501t000000-000 --reason "stale lock" --json
16713
- deepline runs stop-all --reason "unjam workspace" --json
16716
+ deepline runs logs play/my-play/run/20260501t000000-000 --out run.log --log-level debug
16717
+ deepline runs list --play my-play --status failed
16718
+ deepline runs list --status running
16719
+ deepline runs stop play/my-play/run/20260501t000000-000 --reason "stale lock"
16720
+ deepline runs stop-all --reason "unjam workspace"
16714
16721
  deepline runs export play/my-play/run/20260501t000000-000 --out output.csv
16715
16722
  `
16716
16723
  );
@@ -16720,7 +16727,7 @@ Examples:
16720
16727
  registerRunEventsCommand(runs);
16721
16728
  runs.command("status <runId>").description(
16722
16729
  "Legacy scalar-only read. Use runs get for canonical status, progress, logs, and results."
16723
- ).option("--json", "Emit JSON output. Also automatic when stdout is piped").action(async (runId, options) => {
16730
+ ).option("--json", "Emit JSON output").action(async (runId, options) => {
16724
16731
  process.exitCode = await handleRunLifecycleStatus([
16725
16732
  runId,
16726
16733
  ...options.json ? ["--json"] : []
@@ -16732,7 +16739,7 @@ Examples:
16732
16739
  "after",
16733
16740
  `
16734
16741
  Notes:
16735
- Shows a readable overview in a terminal; --json or piped stdout emits JSON.
16742
+ Shows a readable overview; --json emits JSON.
16736
16743
  Both views use the same overview with one entry per dataset, summaries,
16737
16744
  labeled previews, the retained result, and top-level command hints. If a
16738
16745
  result requires full retrieval, resultState is available_in_full and result
@@ -16749,12 +16756,11 @@ Notes:
16749
16756
 
16750
16757
  Examples:
16751
16758
  deepline runs get play/my-play/run/20260501t000000-000
16752
- deepline runs get play/my-play/run/20260501t000000-000 --json
16753
- deepline runs get play/my-play/run/20260501t000000-000 --json run.status,run.durationMs
16754
- deepline runs logs play/my-play/run/20260501t000000-000 --failed --json
16755
- deepline runs get play/my-play/run/20260501t000000-000 --full --json
16759
+ deepline runs get play/my-play/run/20260501t000000-000
16760
+ deepline runs logs play/my-play/run/20260501t000000-000 --failed
16761
+ deepline runs get play/my-play/run/20260501t000000-000 --full
16756
16762
  deepline runs get play/my-play/run/20260501t000000-000 --input
16757
- deepline runs get play/my-play/run/20260501t000000-000 --config --json
16763
+ deepline runs get play/my-play/run/20260501t000000-000 --config
16758
16764
  `
16759
16765
  ).option(
16760
16766
  "--json [fields]",
@@ -16797,9 +16803,9 @@ Notes:
16797
16803
  started. A different key intentionally starts another rerun.
16798
16804
 
16799
16805
  Examples:
16800
- deepline runs rerun play/my-play/webhook/abc --json
16801
- deepline runs rerun play/my-play/webhook/abc --idempotency-key incident-42 --json
16802
- deepline runs rerun play/my-play/webhook/abc --input-overrides '{"domain":"example.com"}' --json
16806
+ deepline runs rerun play/my-play/webhook/abc
16807
+ deepline runs rerun play/my-play/webhook/abc --idempotency-key incident-42
16808
+ deepline runs rerun play/my-play/webhook/abc --input-overrides '{"domain":"example.com"}'
16803
16809
  `
16804
16810
  ).option(
16805
16811
  "--idempotency-key <key>",
@@ -16807,14 +16813,14 @@ Examples:
16807
16813
  ).option(
16808
16814
  "--input-overrides <json>",
16809
16815
  "Override existing scalar fields in the retained input for this rerun"
16810
- ).option("--json", "Emit JSON output. Also automatic when stdout is piped").action(async (runId, options) => {
16816
+ ).option("--json", "Emit JSON output").action(async (runId, options) => {
16811
16817
  process.exitCode = await runRunsRerunCommand(runId, options);
16812
16818
  });
16813
16819
  runs.command("list").description("List play runs.").addHelpText(
16814
16820
  "after",
16815
16821
  `
16816
16822
  Notes:
16817
- Requires --play or --status. Discover Play references with deepline plays list --json.
16823
+ Requires --play or --status. Discover Play references with deepline plays list.
16818
16824
  Bounded inventory for a play's recent runs. Use --compact for agent loops.
16819
16825
  Use the exact qualified Play reference, such as workspace/my-play or prebuilt/my-play.
16820
16826
  --offset requires --play; narrow status-only lists with a Play reference to paginate.
@@ -16825,11 +16831,11 @@ Notes:
16825
16831
 
16826
16832
  Examples:
16827
16833
  deepline runs list --play my-play
16828
- deepline runs list --play workspace/my-play --json
16829
- deepline runs list --play my-play --status failed --compact --json
16830
- deepline runs list --status running --compact --json
16834
+ deepline runs list --play workspace/my-play
16835
+ deepline runs list --play my-play --status failed --compact
16836
+ deepline runs list --status running --compact
16831
16837
  `
16832
- ).option("--play <name>", "Play name to filter runs").option("--status <status>", "Filter by run status").option("--limit <count>", "Maximum runs to return").option("--offset <count>", "Zero-based page offset (requires --play)").option("--compact", "Drop verbose fields from JSON output").option("--json", "Emit JSON output. Also automatic when stdout is piped").action(async (options) => {
16838
+ ).option("--play <name>", "Play name to filter runs").option("--status <status>", "Filter by run status").option("--limit <count>", "Maximum runs to return").option("--offset <count>", "Zero-based page offset (requires --play)").option("--compact", "Drop verbose fields from JSON output").option("--json", "Emit JSON output").action(async (options) => {
16833
16839
  process.exitCode = await handleRunsList([
16834
16840
  ...options.play ? ["--play", options.play] : [],
16835
16841
  ...options.status ? ["--status", options.status] : [],
@@ -16851,14 +16857,13 @@ Notes:
16851
16857
 
16852
16858
  Examples:
16853
16859
  deepline runs stop-all --dry-run
16854
- deepline runs stop-all --dry-run --json
16855
16860
  deepline runs stop-all --reason "unjam workspace"
16856
- deepline runs stop-all --json
16861
+ deepline runs stop-all
16857
16862
  `
16858
16863
  ).option("--reason <text>", "Reason to include with each stop request").option(
16859
16864
  "--dry-run",
16860
16865
  "List the runs that would be stopped without cancelling anything"
16861
- ).option("--json", "Emit JSON output. Also automatic when stdout is piped").action(async (options) => {
16866
+ ).option("--json", "Emit JSON output").action(async (options) => {
16862
16867
  process.exitCode = await handleRunStopAll([
16863
16868
  ...options.reason ? ["--reason", options.reason] : [],
16864
16869
  ...options.dryRun ? ["--dry-run"] : [],
@@ -16939,7 +16944,7 @@ Examples:
16939
16944
  "--debug",
16940
16945
  "Compatibility alias for --log-level debug"
16941
16946
  ).hideHelp()
16942
- ).option("--json", "JSON output; automatic when piped").option("--since <timestamp>", "Search from this UTC time").option("--until <timestamp>", "Search before this UTC time").option("--play <name>", "Filter by Play").option("--kind <kind>", "Filter by event kind").option("--where <filter>", "Match event fields; examples below").option("--payloads", "Include available details or saved results").option(
16947
+ ).option("--json", "JSON output").option("--since <timestamp>", "Search from this UTC time").option("--until <timestamp>", "Search before this UTC time").option("--play <name>", "Filter by Play").option("--kind <kind>", "Filter by event kind").option("--where <filter>", "Match event fields; examples below").option("--payloads", "Include available details or saved results").option(
16943
16948
  "--cursor <token>",
16944
16949
  "Continue to older logs or the next events page"
16945
16950
  ).addOption(
@@ -16990,9 +16995,9 @@ Notes:
16990
16995
 
16991
16996
  Examples:
16992
16997
  deepline runs stop play/my-play/run/20260501t000000-000 --reason "stale lock"
16993
- deepline runs stop play/my-play/run/20260501t000000-000 --json
16998
+ deepline runs stop play/my-play/run/20260501t000000-000
16994
16999
  `
16995
- ).option("--reason <text>", "Reason to include with the stop request").option("--json", "Emit JSON output. Also automatic when stdout is piped").action(async (runId, options) => {
17000
+ ).option("--reason <text>", "Reason to include with the stop request").option("--json", "Emit JSON output").action(async (runId, options) => {
16996
17001
  process.exitCode = await handleRunStop([
16997
17002
  runId,
16998
17003
  ...options.reason ? ["--reason", options.reason] : [],
@@ -17024,7 +17029,7 @@ Examples:
17024
17029
  deepline runs export play/my-play/run/20260501t000000-000 --out output.csv
17025
17030
  deepline runs export play/my-play/run/20260501t000000-000 --dataset result.rows --out output.csv
17026
17031
  deepline runs export play/my-play/run/20260501t000000-000 --out output.csv --metadata-out output.meta.json
17027
- deepline runs export play/my-play/run/20260501t000000-000 --out output.csv --json
17032
+ deepline runs export play/my-play/run/20260501t000000-000 --out output.csv
17028
17033
  deepline runs export play/my-play/run/20260501t000000-000 --format json --out rows.json
17029
17034
  deepline runs export play/my-play/run/20260501t000000-000 --out rows.csv --wait --timeout-ms 600000
17030
17035
  `
@@ -17077,15 +17082,15 @@ What is exposed:
17077
17082
  --seo noindex to keep the page out of search engines if you must share it.
17078
17083
 
17079
17084
  Examples:
17080
- deepline plays share status company-to-contact --json
17085
+ deepline plays share status company-to-contact
17081
17086
  deepline plays share publish company-to-contact --yes
17082
17087
  deepline plays share publish company-to-contact --version 3 --seo noindex --yes
17083
- deepline plays share update company-to-contact --show-latency --json
17084
- deepline plays share regenerate company-to-contact --json
17088
+ deepline plays share update company-to-contact --show-latency
17089
+ deepline plays share regenerate company-to-contact
17085
17090
  deepline plays share unpublish company-to-contact --yes
17086
17091
  `
17087
17092
  );
17088
- share.command("status <play>").description("Show a play's share-page status and revision picker.").option("--json", "Emit JSON output. Also automatic when stdout is piped").action(async (playName, options) => {
17093
+ share.command("status <play>").description("Show a play's share-page status and revision picker.").option("--json", "Emit JSON output").action(async (playName, options) => {
17089
17094
  process.exitCode = await handlePlayShareStatus([
17090
17095
  playName,
17091
17096
  ...options.json ? ["--json"] : []
@@ -17096,7 +17101,7 @@ Examples:
17096
17101
  ).option("--latest", "Publish the newest revision (default).").option("--version <n>", "Publish a specific version number.").option("--revision-id <id>", "Publish a specific revision id.").option("--seo <mode>", "SEO indexing: index | noindex.").option("--show-cost", "Show average Deepline credit cost on the page.").option("--show-latency", "Show average latency on the page.").option("--no-run-check", 'Skip the "must have a completed run" gate.').option(
17097
17102
  "-y, --yes",
17098
17103
  "Confirm public exposure of the play code/structure (required)."
17099
- ).option("--dry-run", "Show the planned publish without writing.").option("--json", "Emit JSON output. Also automatic when stdout is piped").addHelpText(
17104
+ ).option("--dry-run", "Show the planned publish without writing.").option("--json", "Emit JSON output").addHelpText(
17100
17105
  "after",
17101
17106
  `
17102
17107
  WARNING \u2014 not recommended by default.
@@ -17117,7 +17122,7 @@ Exit codes: 0 ok; 2 usage/missing --yes; 4 play or version not found;
17117
17122
 
17118
17123
  Examples:
17119
17124
  deepline plays share publish company-to-contact --yes
17120
- deepline plays share publish company-to-contact --version 3 --seo noindex --yes --json
17125
+ deepline plays share publish company-to-contact --version 3 --seo noindex --yes
17121
17126
  `
17122
17127
  ).action(async (playName, options) => {
17123
17128
  process.exitCode = await handlePlaySharePublish([
@@ -17134,7 +17139,7 @@ Examples:
17134
17139
  ...options.json ? ["--json"] : []
17135
17140
  ]);
17136
17141
  });
17137
- share.command("update <play>").description("Update share-page settings without moving the pointer.").option("--seo <mode>", "SEO indexing: index | noindex.").option("--show-cost", "Show average Deepline credit cost.").option("--hide-cost", "Hide average Deepline credit cost.").option("--show-latency", "Show average latency.").option("--hide-latency", "Hide average latency.").option("--json", "Emit JSON output. Also automatic when stdout is piped").action(async (playName, options) => {
17142
+ share.command("update <play>").description("Update share-page settings without moving the pointer.").option("--seo <mode>", "SEO indexing: index | noindex.").option("--show-cost", "Show average Deepline credit cost.").option("--hide-cost", "Hide average Deepline credit cost.").option("--show-latency", "Show average latency.").option("--hide-latency", "Hide average latency.").option("--json", "Emit JSON output").action(async (playName, options) => {
17138
17143
  process.exitCode = await handlePlayShareUpdate([
17139
17144
  playName,
17140
17145
  ...options.seo ? ["--seo", options.seo] : [],
@@ -17145,7 +17150,7 @@ Examples:
17145
17150
  ...options.json ? ["--json"] : []
17146
17151
  ]);
17147
17152
  });
17148
- share.command("regenerate <play>").description("Regenerate the public page's LLM copy for a revision.").option("--version <n>", "Regenerate a specific version number.").option("--revision-id <id>", "Regenerate a specific revision id.").option("--json", "Emit JSON output. Also automatic when stdout is piped").action(async (playName, options) => {
17153
+ share.command("regenerate <play>").description("Regenerate the public page's LLM copy for a revision.").option("--version <n>", "Regenerate a specific version number.").option("--revision-id <id>", "Regenerate a specific revision id.").option("--json", "Emit JSON output").action(async (playName, options) => {
17149
17154
  process.exitCode = await handlePlayShareRegenerate([
17150
17155
  playName,
17151
17156
  ...options.version ? ["--version", String(options.version)] : [],
@@ -17155,7 +17160,7 @@ Examples:
17155
17160
  });
17156
17161
  share.command("unpublish <play>").description(
17157
17162
  "Unshare: permanently delete the public page (frees it). Requires --yes."
17158
- ).option("-y, --yes", "Confirm taking the public page down (required).").option("--json", "Emit JSON output. Also automatic when stdout is piped").addHelpText(
17163
+ ).option("-y, --yes", "Confirm taking the public page down (required).").option("--json", "Emit JSON output").addHelpText(
17159
17164
  "after",
17160
17165
  `
17161
17166
  Mutates cloud state. Hard-deletes the page + its generated cards; the URL stops
@@ -17430,6 +17435,7 @@ export {
17430
17435
  parsePlayRunHeaderFlag,
17431
17436
  parsePlayRunOptions,
17432
17437
  loadPlayBundler,
17438
+ liveMaxCreditsPerRun,
17433
17439
  writePlayRunIdFile,
17434
17440
  preflightLocalFileInputs,
17435
17441
  describeSleepUntil,