deepline 0.3.369 → 0.3.371

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/fleets/limits.ts +4 -2
  9. package/dist/bundling-sources/shared_libs/monitors/http-error-response.ts +18 -18
  10. package/dist/bundling-sources/shared_libs/monitors/provider-monitor-capability.ts +1 -1
  11. package/dist/bundling-sources/shared_libs/play-runtime/context.ts +2 -2
  12. package/dist/bundling-sources/shared_libs/play-runtime/dataset-lifecycle-log.ts +1 -1
  13. package/dist/bundling-sources/shared_libs/play-runtime/runner-app/index.ts +1 -1
  14. package/dist/bundling-sources/shared_libs/plays/launch/input-contract.ts +34 -9
  15. package/dist/cli/auth-DQVK3ZI6.js +33 -0
  16. package/dist/cli/{auth-F5YPFL6L.mjs → auth-LCSEXQA2.mjs} +4 -4
  17. package/dist/cli/{billing-3HHLCETY.js → billing-KISDL67A.js} +148 -148
  18. package/dist/cli/{billing-LNO6FPPM.mjs → billing-Z7PLJC5C.mjs} +79 -79
  19. package/dist/cli/{chunk-MX53GIOB.js → chunk-2JRRXXTA.js} +2 -2
  20. package/dist/cli/{chunk-COEBGYBW.mjs → chunk-2L6LBJVC.mjs} +193 -187
  21. package/dist/cli/{chunk-H4N6FMJ5.mjs → chunk-3FTYFVYN.mjs} +5 -5
  22. package/dist/cli/{chunk-Z6B4UPM4.mjs → chunk-3GK3SH3G.mjs} +2 -2
  23. package/dist/cli/{chunk-KGZRUGL7.js → chunk-44SHFHA3.js} +17 -17
  24. package/dist/cli/{chunk-QFBHEQCQ.mjs → chunk-46JCJ7FT.mjs} +56 -97
  25. package/dist/cli/{chunk-6A3GNWSU.js → chunk-5BCVKWLV.js} +17 -17
  26. package/dist/cli/{chunk-TRRFXE4X.mjs → chunk-5S525TQV.mjs} +2 -2
  27. package/dist/cli/{chunk-X6FNDFTD.js → chunk-5Z7JFUNX.js} +26 -26
  28. package/dist/cli/{chunk-JGLIB4JN.mjs → chunk-73NIXYKH.mjs} +90 -50
  29. package/dist/cli/{chunk-2AENFV3B.js → chunk-A7X7KFXX.js} +4 -4
  30. package/dist/cli/{chunk-KU4X5TWN.mjs → chunk-AIZKDTFF.mjs} +11 -11
  31. package/dist/cli/{chunk-ERMXQOIV.js → chunk-BO3ADIBV.js} +8 -8
  32. package/dist/cli/{chunk-FXVRQHJC.js → chunk-C3IPN4E6.js} +17 -17
  33. package/dist/cli/{chunk-LH3BV773.js → chunk-C553OZGG.js} +10 -10
  34. package/dist/cli/{chunk-EJC3INZD.mjs → chunk-DOXAN2I7.mjs} +3 -3
  35. package/dist/cli/{chunk-XH3EIQAZ.js → chunk-DPVBWLBF.js} +419 -413
  36. package/dist/cli/{chunk-PRMAO43X.js → chunk-DQMTJXLK.js} +145 -105
  37. package/dist/cli/{chunk-NXDRDJ4K.js → chunk-E5UD3JDQ.js} +3 -1
  38. package/dist/cli/{chunk-U5VEW7LL.mjs → chunk-IWY7T6MR.mjs} +1 -1
  39. package/dist/cli/{chunk-MIMASXO4.mjs → chunk-JB6ERQUV.mjs} +3 -1
  40. package/dist/cli/{chunk-QILHWZFP.js → chunk-JSK6GUY6.js} +56 -97
  41. package/dist/cli/{chunk-VUYCB2RY.mjs → chunk-KBJO7HIF.mjs} +9 -9
  42. package/dist/cli/{chunk-SDOPEZYS.mjs → chunk-KGRAQ4OR.mjs} +6 -6
  43. package/dist/cli/{chunk-5IXQ6VP4.mjs → chunk-KKRRIFR3.mjs} +1 -1
  44. package/dist/cli/{chunk-74XTRGY5.js → chunk-N34UX4TW.js} +2 -2
  45. package/dist/cli/{chunk-KR5NWPWI.js → chunk-NMDNUOVI.js} +1 -6
  46. package/dist/cli/{chunk-YCLPW7QO.mjs → chunk-SEDS6ZVR.mjs} +10 -10
  47. package/dist/cli/{chunk-RIT4UED6.mjs → chunk-SENW5J4O.mjs} +5 -5
  48. package/dist/cli/{chunk-P7W5OMQ6.js → chunk-TT2YWFYW.js} +53 -53
  49. package/dist/cli/{chunk-OEQC4QLU.js → chunk-YENBXYUH.js} +68 -68
  50. package/dist/cli/{chunk-4RVNJQ7D.mjs → chunk-YYFLULK7.mjs} +1 -6
  51. package/dist/cli/client-JFSRNUVD.js +20 -0
  52. package/dist/cli/{client-HURLYTDV.mjs → client-Z3Z5EDDJ.mjs} +3 -3
  53. package/dist/cli/command-docs.js +2 -2
  54. package/dist/cli/command-docs.mjs +1 -1
  55. package/dist/cli/{csv-ZECPS6DF.mjs → csv-TEVHLGGA.mjs} +3 -3
  56. package/dist/cli/{csv-BZ7QNGLU.js → csv-XGFXV7JE.js} +12 -12
  57. package/dist/cli/{db-JXLCCIML.js → db-LLZJ7UH5.js} +42 -43
  58. package/dist/cli/{db-EUNDS5UG.mjs → db-OB7PMWSZ.mjs} +17 -18
  59. package/dist/cli/{describe-L6LADCXI.mjs → describe-GZIRANUZ.mjs} +12 -12
  60. package/dist/cli/{describe-DNDL3TC6.js → describe-NWU7LI3I.js} +28 -28
  61. package/dist/cli/{executions-GPKPWEHO.js → executions-64YZGSOW.js} +6 -6
  62. package/dist/cli/{executions-GRCD2GHT.mjs → executions-7UZ3ZGJ3.mjs} +4 -4
  63. package/dist/cli/{feedback-5WG2HNZ6.mjs → feedback-2WRQRW3U.mjs} +8 -8
  64. package/dist/cli/{feedback-VJCNBYVQ.js → feedback-MN5CXULH.js} +12 -12
  65. package/dist/cli/{git-3G5Q4TPI.mjs → git-BPYVLLTY.mjs} +4 -4
  66. package/dist/cli/git-TJIPVSAE.js +23 -0
  67. package/dist/cli/index.js +98 -109
  68. package/dist/cli/index.mjs +46 -57
  69. package/dist/cli/{legacy-noops-YAO3LDPI.js → legacy-noops-VMXJPLMW.js} +9 -9
  70. package/dist/cli/{legacy-noops-7WLCNXLD.mjs → legacy-noops-ZRPWEPX6.mjs} +6 -6
  71. package/dist/cli/{monitors-NRQN7M3A.mjs → monitors-5BRTBL7E.mjs} +59 -59
  72. package/dist/cli/{monitors-MQ6KNDOH.js → monitors-OQSI2VOL.js} +140 -140
  73. package/dist/cli/{org-TGKGLAB4.js → org-F5QS3HG4.js} +88 -87
  74. package/dist/cli/{org-X46ICV24.mjs → org-SMZ7AGR3.mjs} +28 -27
  75. package/dist/cli/{play-PCLCMTVK.mjs → play-CJZNLQL7.mjs} +10 -8
  76. package/dist/cli/play-K7HE4LBB.js +155 -0
  77. package/dist/cli/{providers-T2S532QL.mjs → providers-CBWXJRDG.mjs} +7 -7
  78. package/dist/cli/{providers-IPH3TV6J.js → providers-SH2HYOVR.js} +10 -10
  79. package/dist/cli/{quickstart-6CO5FGYE.mjs → quickstart-342ENF6Q.mjs} +4 -4
  80. package/dist/cli/{quickstart-GXFHMZL7.js → quickstart-B6EL7WDG.js} +6 -6
  81. package/dist/cli/{search-6HML4FB2.mjs → search-E7DKH3SI.mjs} +5 -5
  82. package/dist/cli/search-SEEYCQED.js +26 -0
  83. package/dist/cli/{secrets-KCNIINW5.mjs → secrets-FSYIPRVS.mjs} +5 -5
  84. package/dist/cli/{secrets-J6T743DQ.js → secrets-M2AW5RGE.js} +14 -14
  85. package/dist/cli/{sessions-ABXL2OZV.js → sessions-AFE4C3FQ.js} +5 -5
  86. package/dist/cli/{sessions-FQHM34TD.mjs → sessions-DJPGWPNA.mjs} +4 -4
  87. package/dist/cli/{settings-3UXXWUZ3.mjs → settings-KLN2A3PQ.mjs} +10 -10
  88. package/dist/cli/{settings-HB5DSAUW.js → settings-VUWBNATC.js} +77 -77
  89. package/dist/cli/{setup-2MOBCKAB.mjs → setup-BE6N5YV6.mjs} +15 -15
  90. package/dist/cli/{setup-TMJJLEYX.js → setup-I5IMTQCX.js} +50 -50
  91. package/dist/cli/skills-7XH5GMZB.js +28 -0
  92. package/dist/cli/{skills-LWS7PNTF.mjs → skills-GSNPQDUG.mjs} +4 -4
  93. package/dist/cli/tools-JCL4ABAF.js +40 -0
  94. package/dist/cli/{tools-TIUE2AK7.mjs → tools-ORCGHV4P.mjs} +8 -8
  95. package/dist/cli/{update-IYXAP5MI.mjs → update-UXEUWVWS.mjs} +6 -6
  96. package/dist/cli/update-YNZOS77Z.js +28 -0
  97. package/dist/cli/{workflow-3CVYOEKJ.mjs → workflow-JBQY7JJN.mjs} +7 -7
  98. package/dist/cli/{workflow-SGF3DFKJ.js → workflow-R7SDICTU.js} +17 -17
  99. package/dist/{client-CjHv4K6D.d.mts → client-CZFMQEgO.d.mts} +6 -6
  100. package/dist/{client-rTuhNN-x.d.ts → client-CgSwpnb-.d.ts} +6 -6
  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-L3ZF67G5.js +0 -33
  114. package/dist/cli/client-HL2AHZPQ.js +0 -20
  115. package/dist/cli/git-MSJ6SFLT.js +0 -23
  116. package/dist/cli/play-TJBPVFUK.js +0 -153
  117. package/dist/cli/search-34MPYWVW.js +0 -26
  118. package/dist/cli/skills-D3IIQSUK.js +0 -28
  119. package/dist/cli/tools-XWUSCNVK.js +0 -40
  120. package/dist/cli/update-7O5MXP5K.js +0 -28
package/README.md CHANGED
@@ -64,7 +64,7 @@ Once setup is complete, tell your agent what you want to do:
64
64
  ## Check your setup
65
65
 
66
66
  ```bash
67
- deepline doctor --json
67
+ deepline doctor
68
68
  ```
69
69
 
70
70
  ## Operate runs safely
@@ -3140,7 +3140,7 @@ export class DeeplineClient {
3140
3140
  const cloneEditStarter = this.playCloneEditStarter(play);
3141
3141
  return {
3142
3142
  name: play.name,
3143
- // playKey and triggerStatus were projected away here, so `plays describe`
3143
+ // playKey and triggerStatus were projected away here, so `describe`
3144
3144
  // was strictly less informative than `plays list` for the same play — no
3145
3145
  // stable key, and no way to see that a cron was armed.
3146
3146
  ...(play.playKey ? { playKey: play.playKey } : {}),
@@ -4412,7 +4412,7 @@ export class DeeplineClient {
4412
4412
  * This is the SDK equivalent of:
4413
4413
  *
4414
4414
  * ```bash
4415
- * deepline runs get <run-id> --json
4415
+ * deepline runs get <run-id>
4416
4416
  * ```
4417
4417
  */
4418
4418
  async getRunStatus(
@@ -4459,7 +4459,7 @@ export class DeeplineClient {
4459
4459
  });
4460
4460
  } catch (error) {
4461
4461
  failedLogsLoaded = false;
4462
- const retryCommand = `deepline runs logs ${runId} --failed --json`;
4462
+ const retryCommand = `deepline runs logs ${runId} --failed`;
4463
4463
  const reason =
4464
4464
  error instanceof Error && error.message.trim()
4465
4465
  ? ` (${error.message.trim().slice(0, 500)})`
@@ -4542,7 +4542,7 @@ export class DeeplineClient {
4542
4542
  * This is the SDK equivalent of:
4543
4543
  *
4544
4544
  * ```bash
4545
- * deepline runs list --play <play-name> --status failed --json
4545
+ * deepline runs list --play <play-name> --status failed
4546
4546
  * ```
4547
4547
  */
4548
4548
  async listRuns(options: RunsListOptions): Promise<PlayRunListItem[]> {
@@ -4717,7 +4717,7 @@ export class DeeplineClient {
4717
4717
  * This is the SDK equivalent of:
4718
4718
  *
4719
4719
  * ```bash
4720
- * deepline runs logs <run-id> --limit 200 --json
4720
+ * deepline runs logs <run-id> --limit 200
4721
4721
  * ```
4722
4722
  */
4723
4723
  async getRunLogs(
@@ -5097,7 +5097,7 @@ export class DeeplineClient {
5097
5097
  * This is the SDK equivalent of:
5098
5098
  *
5099
5099
  * ```bash
5100
- * deepline runs stop <run-id> --reason "stale lock" --json
5100
+ * deepline runs stop <run-id> --reason "stale lock"
5101
5101
  * ```
5102
5102
  */
5103
5103
  async stopRun(
@@ -5129,8 +5129,8 @@ export class DeeplineClient {
5129
5129
  * This is the SDK equivalent of:
5130
5130
  *
5131
5131
  * ```bash
5132
- * deepline runs stop-all --dry-run --json
5133
- * deepline runs stop-all --reason "stale lock" --json
5132
+ * deepline runs stop-all --dry-run
5133
+ * deepline runs stop-all --reason "stale lock"
5134
5134
  * ```
5135
5135
  *
5136
5136
  * Use this when a failed parent run left child or waiting runs active and you
@@ -200,7 +200,7 @@ export const SDK_RELEASE = {
200
200
  // getters keep their established compatibility behavior.
201
201
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
202
202
  // 0.3.90 is the first deliberately versioned SDK release for API v3.
203
- version: '0.3.369',
203
+ version: '0.3.371',
204
204
  updateSummary:
205
205
  'Play grep now returns concise results with the matched fields and terms. Automatic CLI updates are enabled by default; use `deepline settings autoupdate off` to opt out, `deepline settings autoupdate on` to re-enable updates, or `deepline settings autoupdate pin <version>` to hold an exact release.',
206
206
  packageCapabilities: {
@@ -247,12 +247,6 @@ export const SDK_RELEASE = {
247
247
  reason:
248
248
  'deepline search was added in SDK CLI 0.3.91 as the one search across tools, monitors, and plays. On an older version run deepline tools search or deepline plays search, or update.',
249
249
  },
250
- {
251
- command: 'describe',
252
- introducedIn: '0.3.312',
253
- reason:
254
- 'deepline describe was added in SDK CLI 0.3.312 as the one describe for tools, monitor types, and plays. On an older version run deepline tools describe or deepline plays describe, or update.',
255
- },
256
250
  {
257
251
  command: 'notifications',
258
252
  introducedIn: '0.2.40',
@@ -31,11 +31,11 @@ function excludePreviewMetadata(value: unknown): unknown {
31
31
  function lifecycleActions(status: PlayStatus, id: string, state?: string) {
32
32
  return {
33
33
  ...(['started', 'queued', 'running', 'waiting'].includes(state ?? '')
34
- ? { stopRunCmd: `deepline runs stop ${id} --json` }
34
+ ? { stopRunCmd: `deepline runs stop ${id}` }
35
35
  : {}),
36
36
  ...(state === 'failed'
37
37
  ? {
38
- getFailedLogsCmd: `deepline runs logs ${id} --failed --json`,
38
+ getFailedLogsCmd: `deepline runs logs ${id} --failed`,
39
39
  ...(status.rerunCommand ? { rerunCmd: status.rerunCommand } : {}),
40
40
  }
41
41
  : {}),
@@ -216,7 +216,7 @@ export function buildRunOverview(status: PlayStatus, fullStatus?: PlayStatus) {
216
216
  const pkg = inspectedStatus.package;
217
217
  if (!pkg) {
218
218
  throw new Error(
219
- 'This server did not return a run package; use runs get --full --json.',
219
+ 'This server did not return a run package; use runs get --full.',
220
220
  );
221
221
  }
222
222
  const outputs = Object.entries(pkg.outputs);
@@ -473,7 +473,7 @@ export function buildRunOverview(status: PlayStatus, fullStatus?: PlayStatus) {
473
473
  function receiptAction(id: string) {
474
474
  const quotedId = `'${id.replace(/'/g, "'\\''")}'`;
475
475
  return {
476
- getReceiptCmd: `deepline runs logs ${quotedId} --kind receipt.completed --payloads --json`,
476
+ getReceiptCmd: `deepline runs logs ${quotedId} --kind receipt.completed --payloads`,
477
477
  };
478
478
  }
479
479
 
@@ -494,9 +494,9 @@ export function buildRunNavigation(status: PlayStatus) {
494
494
  datasets: [],
495
495
  actions: {
496
496
  ...lifecycleActions(status, id, status.status),
497
- getRunCmd: `deepline runs get ${id} --json`,
498
- getFullRunCmd: `deepline runs get ${id} --full --json`,
499
- getLogsCmd: `deepline runs logs ${id} --limit 100 --json`,
497
+ getRunCmd: `deepline runs get ${id}`,
498
+ getFullRunCmd: `deepline runs get ${id} --full`,
499
+ getLogsCmd: `deepline runs logs ${id} --limit 100`,
500
500
  ...receiptAction(id),
501
501
  },
502
502
  };
@@ -294,7 +294,11 @@ export function tryConvertToList(
294
294
  }
295
295
  }
296
296
 
297
- for (const root of candidateRoots(payload)) {
297
+ // A V2 envelope's rows are provider output. Searching the whole envelope
298
+ // would let metadata arrays (toolResponse.meta.warnings) pose as results.
299
+ const roots = candidateRoots(payload);
300
+ const v2Raw = roots.find((root) => root.path === 'toolResponse.raw');
301
+ for (const root of v2Raw ? [v2Raw] : roots) {
298
302
  const candidate = findBestArrayCandidate(root.value, root.path ?? '');
299
303
  if (!candidate || candidate.rows.length === 0) continue;
300
304
  return {
@@ -233,9 +233,9 @@ export interface ToolDefinition extends ToolExecutionMetadataFields {
233
233
  operationAliases?: string[];
234
234
  /** Explicit globally runnable play reference for play-backed catalog entries. */
235
235
  playReference?: `prebuilt/${string}`;
236
- /** Whether detailed input schema is available from `tools describe`. */
236
+ /** Whether detailed input schema is available from `describe`. */
237
237
  hasInputSchema?: boolean;
238
- /** Whether detailed output schema is available from `tools describe`. */
238
+ /** Whether detailed output schema is available from `describe`. */
239
239
  hasOutputSchema?: boolean;
240
240
  /** JSON Schema describing the tool's input parameters. */
241
241
  inputSchema?: Record<string, unknown>;
@@ -19,21 +19,21 @@ export const MONITOR_FLEET_RETRY_NOTE =
19
19
  'Safe to retry — every fleet command is idempotent.';
20
20
 
21
21
  export function fleetGetCommand(fleetId: string): string {
22
- return `deepline monitors fleets get ${fleetId} --json`;
22
+ return `deepline monitors fleets get ${fleetId}`;
23
23
  }
24
24
 
25
25
  export function fleetDriftCommand(fleetId: string): string {
26
- return `deepline monitors fleets get ${fleetId} --drift --json`;
26
+ return `deepline monitors fleets get ${fleetId} --drift`;
27
27
  }
28
28
 
29
29
  /** There is no `fleets list` verb: `get` with no id is the list. */
30
30
  export function fleetListCommand(): string {
31
- return 'deepline monitors fleets get --json';
31
+ return 'deepline monitors fleets get';
32
32
  }
33
33
 
34
34
  /** Re-plans the stored definition. `--file` would apply a new one instead. */
35
35
  export function fleetSyncCommand(fleetId: string): string {
36
- return `deepline monitors fleets sync ${fleetId} --json`;
36
+ return `deepline monitors fleets sync ${fleetId}`;
37
37
  }
38
38
 
39
39
  export class MonitorFleetError extends Error {
@@ -58,7 +58,7 @@ export function invalidFleetDefinition(
58
58
  MONITOR_FLEET_ERROR_CODE.invalidDefinition,
59
59
  message,
60
60
  400,
61
- 'Fix the fleet file, then run `deepline monitors fleets sync --file <fleet-file> --dry-run --json`.',
61
+ 'Fix the fleet file, then run `deepline monitors fleets sync --file <fleet-file> --dry-run`.',
62
62
  details,
63
63
  );
64
64
  }
@@ -1,7 +1,9 @@
1
+ import { OrgLimit } from '@deepline/billing/org-limits/registry';
2
+
1
3
  /** One wire vocabulary and transaction-size contract for Fleet writers. */
2
4
  export const FLEET_BLOCKED_BY = {
3
- watchedEntities: 'monitor.watched_entities',
4
- monitorsPerEntity: 'monitor.monitors_per_entity',
5
+ watchedEntities: OrgLimit.MonitorWatchedEntities,
6
+ monitorsPerEntity: OrgLimit.MonitorsPerEntity,
5
7
  rolloutAccess: 'monitor.rollout_access',
6
8
  } as const;
7
9
  export const MAX_MEMBER_DEFINITION_BYTES = 2_048;
@@ -124,16 +124,16 @@ export function monitorErrorNextAction(payload: MonitorErrorPayload): string {
124
124
  nestedError(payload)?.retry_after_seconds ?? payload.retry_after_seconds;
125
125
 
126
126
  if (code === 'monitor_access_required') {
127
- return 'Stop monitor work and contact the Deepline team to request access; then rerun `deepline monitors status --json`.';
127
+ return 'Stop monitor work and contact the Deepline team to request access; then rerun `deepline monitors status`.';
128
128
  }
129
129
  if (code === 'monitor_tool_not_found' || code === 'unknown_monitor_tool') {
130
- return 'Run `deepline monitors available --json`, choose a returned tool id, then retry with that exact id.';
130
+ return 'Run `deepline monitors available`, choose a returned tool id, then retry with that exact id.';
131
131
  }
132
132
  if (code === 'monitor_provider_not_offered') {
133
- return 'This provider monitor is retired for new deployments. Run `deepline monitors available --json` to choose a supported Deepline Native radar. Existing retired-provider monitors can still be inspected and deleted.';
133
+ return 'This provider monitor is retired for new deployments. Run `deepline monitors available` to choose a supported Deepline Native radar. Existing retired-provider monitors can still be inspected and deleted.';
134
134
  }
135
135
  if (code === 'deployed_monitor_not_found' || code === 'monitor_not_found') {
136
- return 'Run `deepline monitors list --status all --json`, choose a returned public monitor key, then retry with that key.';
136
+ return 'Run `deepline monitors list --status all`, choose a returned public monitor key, then retry with that key.';
137
137
  }
138
138
  if (code === 'ingestion_plane_not_ready') {
139
139
  return typeof retryAfterMs === 'number'
@@ -154,7 +154,7 @@ export function monitorErrorNextAction(payload: MonitorErrorPayload): string {
154
154
  : 'Wait briefly, then retry the same monitor create once. No upstream monitor was created.';
155
155
  }
156
156
  if (code === 'ORG_MONITOR_LIMIT_EXCEEDED') {
157
- return 'Run `deepline monitors list --status all --json`; stop watching an account you no longer need, or contact Deepline for a higher account limit.';
157
+ return 'Run `deepline monitors list --status all`; stop watching an account you no longer need, or contact Deepline for a higher account limit.';
158
158
  }
159
159
  if (code === 'MONITOR_ENTITY_LIMIT_EXCEEDED') {
160
160
  return 'This account already carries the maximum number of monitors. Delete one of its monitors, or watch the signal on a different account.';
@@ -183,10 +183,10 @@ export function monitorErrorNextAction(payload: MonitorErrorPayload): string {
183
183
  return 'Fix every returned issue using its path and suggestion. Rerun `deepline monitors check` for definitions or the relevant dry-run for delete/reactivate; do not mutate until validation passes.';
184
184
  }
185
185
  if (code === 'monitor_tool_unavailable') {
186
- return 'Run `deepline monitors available --json`; choose a tool returned for this workspace, or stop and request access to the unavailable capability.';
186
+ return 'Run `deepline monitors available`; choose a tool returned for this workspace, or stop and request access to the unavailable capability.';
187
187
  }
188
188
  if (code === 'monitor_entitlement_limit_exceeded') {
189
- return 'Run `deepline monitors list --status all --json`; reuse or disable an existing monitor, or ask the user to change entitlement before retrying.';
189
+ return 'Run `deepline monitors list --status all`; reuse or disable an existing monitor, or ask the user to change entitlement before retrying.';
190
190
  }
191
191
  if (code === 'priority_monitor_limit_exceeded') {
192
192
  return `This workspace already has ${MAX_PRIORITY_MONITORS_PER_ORG} priority radars. Delete or update an existing priority radar only after confirming it is no longer needed, then retry the urgent preview.`;
@@ -199,32 +199,32 @@ export function monitorErrorNextAction(payload: MonitorErrorPayload): string {
199
199
  return 'An in-progress provider operation owns this identity. Do not deploy another key or delete and redeploy. Wait for it to finish, then rerun this check; if the conflict remains, contact Deepline support with the returned tool and identity.';
200
200
  }
201
201
  if (typeof existing === 'string' && typeof fleetId === 'string') {
202
- return `Run \`deepline monitors fleets get ${fleetId} --json\` to inspect the Fleet that owns this identity, then \`deepline monitors get ${existing} --json\` to inspect its monitor state. Change or reuse the owning Fleet member instead of deploying a second key.`;
202
+ return `Run \`deepline monitors fleets get ${fleetId}\` to inspect the Fleet that owns this identity, then \`deepline monitors get ${existing}\` to inspect its monitor state. Change or reuse the owning Fleet member instead of deploying a second key.`;
203
203
  }
204
204
  return typeof existing === 'string'
205
- ? `Run \`deepline monitors get ${existing} --json\` to inspect the monitor that owns this identity. Reuse it or contact Deepline support before replacing it; do not delete and redeploy blindly.`
206
- : 'Inspect the returned existing_monitor.key with `deepline monitors get <key> --json`. Reuse that monitor or contact Deepline support before replacing it; do not delete and redeploy blindly.';
205
+ ? `Run \`deepline monitors get ${existing}\` to inspect the monitor that owns this identity. Reuse it or contact Deepline support before replacing it; do not delete and redeploy blindly.`
206
+ : 'Inspect the returned existing_monitor.key with `deepline monitors get <key>`. Reuse that monitor or contact Deepline support before replacing it; do not delete and redeploy blindly.';
207
207
  }
208
208
  if (code === 'upstream_monitor_conflict_unresolved') {
209
209
  const existingMonitor = asRecord(nestedError(payload)?.existing_monitor);
210
210
  const existing = existingMonitor?.key;
211
211
  const fleetId = existingMonitor?.fleet_id;
212
212
  if (typeof existing === 'string' && typeof fleetId === 'string') {
213
- return `Run \`deepline monitors fleets get ${fleetId} --json\` to inspect the Fleet that owns this identity, then report the upstream 409 with the returned monitor key and identity. Do not retry blindly.`;
213
+ return `Run \`deepline monitors fleets get ${fleetId}\` to inspect the Fleet that owns this identity, then report the upstream 409 with the returned monitor key and identity. Do not retry blindly.`;
214
214
  }
215
215
  return typeof existing === 'string'
216
- ? `Run \`deepline monitors get ${existing} --json\` to inspect the matching managed monitor, then report this upstream 409 to Deepline support. Do not retry blindly.`
216
+ ? `Run \`deepline monitors get ${existing}\` to inspect the matching managed monitor, then report this upstream 409 to Deepline support. Do not retry blindly.`
217
217
  : 'Report this upstream 409 to Deepline support with the returned tool and identity. Do not retry blindly.';
218
218
  }
219
219
  if (code === 'monitor_upstream_rate_limited') {
220
220
  return typeof retryAfterSeconds === 'number'
221
- ? `Wait ${retryAfterSeconds} seconds, then run \`deepline monitors get <key> --json\` to inspect the stored state. Do not retry or create another monitor unless that state confirms the prior lifecycle action was not applied; if it is missing or unclear, contact Deepline support with the returned upstream_status.`
222
- : 'Wait briefly, then run `deepline monitors get <key> --json` to inspect the stored state. Do not retry or create another monitor unless that state confirms the prior lifecycle action was not applied; if it is missing or unclear, contact Deepline support with the returned upstream_status.';
221
+ ? `Wait ${retryAfterSeconds} seconds, then run \`deepline monitors get <key>\` to inspect the stored state. Do not retry or create another monitor unless that state confirms the prior lifecycle action was not applied; if it is missing or unclear, contact Deepline support with the returned upstream_status.`
222
+ : 'Wait briefly, then run `deepline monitors get <key>` to inspect the stored state. Do not retry or create another monitor unless that state confirms the prior lifecycle action was not applied; if it is missing or unclear, contact Deepline support with the returned upstream_status.';
223
223
  }
224
224
  if (code === 'monitor_upstream_unavailable') {
225
225
  return typeof retryAfterSeconds === 'number'
226
- ? `Wait ${retryAfterSeconds} seconds, then run \`deepline monitors get <key> --json\` to inspect the stored state. Do not retry or create another monitor unless that state confirms the prior lifecycle action was not applied; if it is missing or unclear, contact Deepline support with the returned upstream_status.`
227
- : 'Wait briefly, then run `deepline monitors get <key> --json` to inspect the stored state. Do not retry or create another monitor unless that state confirms the prior lifecycle action was not applied; if it is missing or unclear, contact Deepline support with the returned upstream_status.';
226
+ ? `Wait ${retryAfterSeconds} seconds, then run \`deepline monitors get <key>\` to inspect the stored state. Do not retry or create another monitor unless that state confirms the prior lifecycle action was not applied; if it is missing or unclear, contact Deepline support with the returned upstream_status.`
227
+ : 'Wait briefly, then run `deepline monitors get <key>` to inspect the stored state. Do not retry or create another monitor unless that state confirms the prior lifecycle action was not applied; if it is missing or unclear, contact Deepline support with the returned upstream_status.';
228
228
  }
229
229
  if (
230
230
  code === 'monitor_entitlement_required' ||
@@ -243,10 +243,10 @@ export function monitorErrorNextAction(payload: MonitorErrorPayload): string {
243
243
  code.includes('cleanup_required') ||
244
244
  code.includes('cleanup_failed')
245
245
  ) {
246
- return 'Run `deepline monitors get <key> --json`, report the disabled or repair-required state, and do not repeat the mutation blindly.';
246
+ return 'Run `deepline monitors get <key>`, report the disabled or repair-required state, and do not repeat the mutation blindly.';
247
247
  }
248
248
  if (code === 'no_active_org') {
249
- return 'Select an active organization, verify it with `deepline auth status --json`, then retry.';
249
+ return 'Select an active organization, verify it with `deepline auth status`, then retry.';
250
250
  }
251
251
 
252
252
  return MONITOR_ERROR_FALLBACK_NEXT_ACTION;
@@ -447,7 +447,7 @@ export function defineProviderMonitorCapability(input: {
447
447
  fields,
448
448
  pricing: {
449
449
  presentation:
450
- 'Use the Deepline pricing returned by tools get, monitors available, check, or deploy --dry-run. Provider spend is not exposed.',
450
+ 'Use the Deepline pricing returned by describe, monitors available, check, or deploy --dry-run. Provider spend is not exposed.',
451
451
  },
452
452
  identity: {
453
453
  semantics: input.upstreamCollision
@@ -17554,7 +17554,7 @@ export class PlayContextImpl implements ScalarPlayAuthoringRuntimeContext {
17554
17554
  const statusCommand =
17555
17555
  jobId && statusAction
17556
17556
  ? ` Check its status with: deepline tools execute ${shellQuoteProviderJobCommandValue(statusAction.action)}` +
17557
- ` --input ${shellQuoteProviderJobCommandValue(JSON.stringify(buildAsyncOperationActionInput({ mapping: statusAction.input, jobId, startInput: input.startInput, startResult })))} --json`
17557
+ ` --input ${shellQuoteProviderJobCommandValue(JSON.stringify(buildAsyncOperationActionInput({ mapping: statusAction.input, jobId, startInput: input.startInput, startResult })))}`
17558
17558
  : '';
17559
17559
  throw new Error(
17560
17560
  `${startClassification.message ?? `Provider task ${jobId ?? input.toolId} ended ${startClassification.outcome}.`}${statusCommand}`,
@@ -17590,7 +17590,7 @@ export class PlayContextImpl implements ScalarPlayAuthoringRuntimeContext {
17590
17590
  });
17591
17591
  const statusCommand =
17592
17592
  `deepline tools execute ${shellQuoteProviderJobCommandValue(statusAction.action)}` +
17593
- ` --input ${shellQuoteProviderJobCommandValue(JSON.stringify(statusInput))} --json`;
17593
+ ` --input ${shellQuoteProviderJobCommandValue(JSON.stringify(statusInput))}`;
17594
17594
  let lastProgressLogAtMs = 0;
17595
17595
  const lifecycle = await executeAsyncOperationLifecycle({
17596
17596
  contract: input.contract,
@@ -26,5 +26,5 @@ export function formatDatasetAvailabilityLog(input: {
26
26
  if (input.persistedRows === 0) {
27
27
  return `Dataset ${input.dataset.path} available: 0 persisted rows; export unavailable: empty dataset`;
28
28
  }
29
- return `Dataset ${input.dataset.path} available: ${input.persistedRows} persisted rows; inspect deepline runs get ${input.runId} --full --json for the verified export action`;
29
+ return `Dataset ${input.dataset.path} available: ${input.persistedRows} persisted rows; inspect deepline runs get ${input.runId} --full for the verified export action`;
30
30
  }
@@ -3246,7 +3246,7 @@ async function run(
3246
3246
  }
3247
3247
  if (runId) {
3248
3248
  ctx.logRunnerDiagnostic(
3249
- `Run stopped before returning. Inspect saved datasets: deepline runs get ${runId} --json. Export saved data before rerunning unfinished work.`,
3249
+ `Run stopped before returning. Inspect saved datasets: deepline runs get ${runId}. Export saved data before rerunning unfinished work.`,
3250
3250
  );
3251
3251
  }
3252
3252
  };
@@ -74,6 +74,36 @@ function csvControlKeys(schema: Record<string, unknown>): Set<string> {
74
74
  return keys;
75
75
  }
76
76
 
77
+ /**
78
+ * The declared inputs a CSV play reads from each row rather than from the run.
79
+ *
80
+ * Row data is what `csvInput.rowInputSchema` declares, less the run-level
81
+ * controls. Everything else declared beside the CSV path applies to the whole
82
+ * run (`require_mobile`, `audience_name`, `columns`). A play whose row schema
83
+ * declares no fields leaves the row contract unknown, so every declared input
84
+ * other than the CSV path and the controls counts as row data.
85
+ */
86
+ function csvRowDataKeys(
87
+ schema: Record<string, unknown>,
88
+ properties: Record<string, unknown>,
89
+ csvKey: string,
90
+ ): Set<string> {
91
+ const controls = csvControlKeys(schema);
92
+ const csvInput = isPlainObject(schema.csvInput) ? schema.csvInput : {};
93
+ const rowSchema = isPlainObject(csvInput.rowInputSchema)
94
+ ? csvInput.rowInputSchema
95
+ : {};
96
+ const rowFields = isPlainObject(rowSchema.properties)
97
+ ? Object.keys(rowSchema.properties)
98
+ : [];
99
+ const candidates = rowFields.length > 0 ? rowFields : Object.keys(properties);
100
+ return new Set(
101
+ candidates.filter(
102
+ (key) => key in properties && key !== csvKey && !controls.has(key),
103
+ ),
104
+ );
105
+ }
106
+
77
107
  /**
78
108
  * Resolve which declared scalar property is the CSV-path input for this schema.
79
109
  * Driven by `csvInput.inputField`; absent that descriptor the schema is not a
@@ -202,12 +232,11 @@ export function validateScalarInputAgainstSchema(input: {
202
232
  // envelope either supplies a CSV path (`csv`) OR per-row scalar data fields
203
233
  // — never both. Production run 20260611t145724-650 sent a non-empty `csv`
204
234
  // AND scalar data fields (linkedin_url, current_domain, contact_full_name)
205
- // and the run silently used only the CSV. The csv key and the control keys
206
- // (e.g. `columns`, the header-alias map) may coexist; any OTHER declared
207
- // property supplied alongside a non-empty csv is a conflicting data field.
235
+ // and the run silently used only the CSV. Inputs that apply to the whole
236
+ // run may sit beside the CSV; see `csvRowDataKeys`.
208
237
  const csvKey = csvInputFieldName(schema);
209
238
  if (csvKey && csvKey in properties) {
210
- const csvControls = csvControlKeys(schema);
239
+ const rowDataKeys = csvRowDataKeys(schema, properties, csvKey);
211
240
  const csvValue = scalarInput[csvKey];
212
241
  const csvSupplied =
213
242
  typeof csvValue === 'string'
@@ -215,11 +244,7 @@ export function validateScalarInputAgainstSchema(input: {
215
244
  : csvValue !== undefined && csvValue !== null;
216
245
  if (csvSupplied) {
217
246
  const conflictingKeys = inputKeys.filter(
218
- (key) =>
219
- key !== csvKey &&
220
- !csvControls.has(key) &&
221
- key in properties &&
222
- scalarInput[key] !== undefined,
247
+ (key) => rowDataKeys.has(key) && scalarInput[key] !== undefined,
223
248
  );
224
249
  if (conflictingKeys.length > 0) {
225
250
  const playLabel = input.playName ? ` for play "${input.playName}"` : '';
@@ -0,0 +1,33 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+ var _chunkTT2YWFYWjs = require('./chunk-TT2YWFYW.js');
14
+ require('./chunk-BO3ADIBV.js');
15
+ require('./chunk-A7X7KFXX.js');
16
+ require('./chunk-XNYIZMNQ.js');
17
+ require('./chunk-7P5AA3SN.js');
18
+ require('./chunk-NMDNUOVI.js');
19
+ require('./chunk-OG64RBAC.js');
20
+ require('./chunk-COGTRVWW.js');
21
+
22
+
23
+
24
+
25
+
26
+
27
+
28
+
29
+
30
+
31
+
32
+
33
+ exports.EXIT_WORKSPACE_MISMATCH = _chunkTT2YWFYWjs.EXIT_WORKSPACE_MISMATCH; exports.authStatusLine = _chunkTT2YWFYWjs.authStatusLine; exports.clearPendingClaim = _chunkTT2YWFYWjs.clearPendingClaim; exports.clearSatisfiedPendingClaim = _chunkTT2YWFYWjs.clearSatisfiedPendingClaim; exports.handleRegister = _chunkTT2YWFYWjs.handleRegister; exports.handleStatus = _chunkTT2YWFYWjs.handleStatus; exports.handleWait = _chunkTT2YWFYWjs.handleWait; exports.readPendingAuthClaim = _chunkTT2YWFYWjs.readPendingAuthClaim; exports.registerAuthCommands = _chunkTT2YWFYWjs.registerAuthCommands; exports.reportSetupCompleted = _chunkTT2YWFYWjs.reportSetupCompleted; exports.resolvePendingAuthClaimForResume = _chunkTT2YWFYWjs.resolvePendingAuthClaimForResume;
@@ -10,12 +10,12 @@ import {
10
10
  registerAuthCommands,
11
11
  reportSetupCompleted,
12
12
  resolvePendingAuthClaimForResume
13
- } from "./chunk-H4N6FMJ5.mjs";
14
- import "./chunk-EJC3INZD.mjs";
15
- import "./chunk-5IXQ6VP4.mjs";
13
+ } from "./chunk-3FTYFVYN.mjs";
14
+ import "./chunk-DOXAN2I7.mjs";
15
+ import "./chunk-KKRRIFR3.mjs";
16
16
  import "./chunk-DLIRSHV6.mjs";
17
17
  import "./chunk-NXGCO4JB.mjs";
18
- import "./chunk-4RVNJQ7D.mjs";
18
+ import "./chunk-YYFLULK7.mjs";
19
19
  import "./chunk-WZYKRD7T.mjs";
20
20
  import "./chunk-KRD6H754.mjs";
21
21
  export {