deepline 0.3.383 → 0.3.385

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 (90) hide show
  1. package/dist/bundling-sources/sdk/src/release.ts +1 -1
  2. package/dist/cli/{auth-DHCQUXEG.mjs → auth-4D4IBZZN.mjs} +4 -4
  3. package/dist/cli/auth-A4UKONKC.js +39 -0
  4. package/dist/cli/{billing-LRF2NACZ.mjs → billing-4RSI4634.mjs} +4 -4
  5. package/dist/cli/{billing-44WIXRTK.js → billing-6LXNCN5G.js} +73 -73
  6. package/dist/cli/{chunk-LOWL2IEA.js → chunk-2IXAMP5J.js} +2 -2
  7. package/dist/cli/{chunk-3Z4P6FTT.js → chunk-3PGTFASB.js} +4 -4
  8. package/dist/cli/{chunk-A7HIN77W.js → chunk-CJVB4RVY.js} +64 -61
  9. package/dist/cli/{chunk-AFCHR4YF.js → chunk-CMIRZZT4.js} +6 -6
  10. package/dist/cli/{chunk-PLOQ3BBM.mjs → chunk-DIZYEI6O.mjs} +5 -5
  11. package/dist/cli/{chunk-ZAF746ZB.mjs → chunk-EGMLX2NR.mjs} +2 -2
  12. package/dist/cli/{chunk-26QUYLQT.mjs → chunk-F44OPZOG.mjs} +2 -2
  13. package/dist/cli/{chunk-MCRIYPOO.js → chunk-IFKSXI4W.js} +1 -1
  14. package/dist/cli/{chunk-SWYXUHCV.js → chunk-JFYOV3HL.js} +15 -15
  15. package/dist/cli/{chunk-YK6RRPOH.mjs → chunk-K5JZ3JMP.mjs} +4 -4
  16. package/dist/cli/{chunk-KB455XET.mjs → chunk-KIZ7QHY5.mjs} +1 -1
  17. package/dist/cli/{chunk-6BGD3GOJ.mjs → chunk-KKKKBDVM.mjs} +6 -6
  18. package/dist/cli/{chunk-BICTEMZN.js → chunk-LEDRQPBQ.js} +50 -50
  19. package/dist/cli/{chunk-GMVSUWPP.js → chunk-MW6IPE3M.js} +9 -9
  20. package/dist/cli/{chunk-4LE4OXXN.mjs → chunk-NV5VCWNJ.mjs} +1 -1
  21. package/dist/cli/{chunk-P2W372EW.js → chunk-POQ7QWVA.js} +48 -48
  22. package/dist/cli/{chunk-NTBOTP6U.mjs → chunk-Q2NRMSOJ.mjs} +1 -1
  23. package/dist/cli/{chunk-JF3R6BNL.mjs → chunk-RST4XEI7.mjs} +3 -3
  24. package/dist/cli/{chunk-TG6SWI26.mjs → chunk-SC2MM6IY.mjs} +2 -2
  25. package/dist/cli/{chunk-NGDV6VG6.mjs → chunk-TIBMH2VI.mjs} +1 -1
  26. package/dist/cli/{chunk-C4Q5JWU3.mjs → chunk-TTIISDJB.mjs} +1 -1
  27. package/dist/cli/{chunk-LRIXR5QU.js → chunk-VCW425WW.js} +26 -26
  28. package/dist/cli/{chunk-NGHN37LZ.mjs → chunk-VUEQBNG7.mjs} +5 -2
  29. package/dist/cli/{chunk-5UFGNQPB.js → chunk-WGPPCGGS.js} +8 -8
  30. package/dist/cli/{chunk-USVQU4FG.js → chunk-XFS5MNSM.js} +226 -226
  31. package/dist/cli/{chunk-XHP2OVMG.js → chunk-YHSAUVJ3.js} +8 -8
  32. package/dist/cli/{csv-JCT62ZYQ.js → csv-DZY7OAFK.js} +12 -12
  33. package/dist/cli/{csv-VRCG5NTO.mjs → csv-Q7XLUTXX.mjs} +3 -3
  34. package/dist/cli/{db-TXPBHVLO.mjs → db-5CLCESHQ.mjs} +4 -4
  35. package/dist/cli/{db-C2FWHDSR.js → db-FRJFSTIF.js} +29 -29
  36. package/dist/cli/{describe-BTXARLAZ.mjs → describe-QDIM53RP.mjs} +8 -8
  37. package/dist/cli/{describe-R5MCMIU3.js → describe-Y7E6FPUC.js} +18 -18
  38. package/dist/cli/{executions-OJYCYPK2.mjs → executions-M2QRHUDM.mjs} +4 -4
  39. package/dist/cli/{executions-Q5ZK7H6L.js → executions-YISFXRPZ.js} +6 -6
  40. package/dist/cli/{feedback-XIWI37PD.mjs → feedback-FICCIDJQ.mjs} +3 -3
  41. package/dist/cli/{feedback-X6Q3ABCY.js → feedback-HNJVF6AQ.js} +7 -7
  42. package/dist/cli/git-RBHELB5Y.js +23 -0
  43. package/dist/cli/{git-HW5SQRNJ.mjs → git-WRTQIX6R.mjs} +4 -4
  44. package/dist/cli/index.js +172 -153
  45. package/dist/cli/index.mjs +121 -102
  46. package/dist/cli/{legacy-noops-EBRICEDC.mjs → legacy-noops-6HJZDXLH.mjs} +4 -4
  47. package/dist/cli/{legacy-noops-2WHVV6XA.js → legacy-noops-E2R3P424.js} +7 -7
  48. package/dist/cli/{monitors-VNDYLLIX.js → monitors-DRWEUXDG.js} +85 -85
  49. package/dist/cli/{monitors-5CYSLU3P.mjs → monitors-HGIB7TPZ.mjs} +4 -4
  50. package/dist/cli/{org-3ESTK25P.js → org-467XUTRD.js} +64 -64
  51. package/dist/cli/{org-WV6GOBNV.mjs → org-NHILTL3P.mjs} +4 -4
  52. package/dist/cli/{play-AA2FORIH.mjs → play-JEI3F2M4.mjs} +7 -7
  53. package/dist/cli/play-Y66Z4I7K.js +157 -0
  54. package/dist/cli/{providers-H47XKFEX.mjs → providers-6INAFXGV.mjs} +4 -4
  55. package/dist/cli/{providers-F2V2QI5Z.js → providers-KOKGN5YP.js} +7 -7
  56. package/dist/cli/{quickstart-E3VQKDMU.js → quickstart-ELSP2FZI.js} +5 -5
  57. package/dist/cli/{quickstart-YIIXVX6Z.mjs → quickstart-QMRYNXDM.mjs} +3 -3
  58. package/dist/cli/{search-MI7OUPQS.mjs → search-HFUSEL3S.mjs} +5 -5
  59. package/dist/cli/search-P5HU6U6X.js +26 -0
  60. package/dist/cli/{secrets-HBNK3VCN.js → secrets-6OUGIWPM.js} +13 -13
  61. package/dist/cli/{secrets-B4A5SZR7.mjs → secrets-TSFBMX65.mjs} +4 -4
  62. package/dist/cli/{sessions-7L56I743.js → sessions-6VJUWBCJ.js} +5 -5
  63. package/dist/cli/{sessions-6CPUREXX.mjs → sessions-GE3GEQY3.mjs} +4 -4
  64. package/dist/cli/{settings-LVW2YBSI.js → settings-633RRITH.js} +74 -74
  65. package/dist/cli/{settings-GTABNW5O.mjs → settings-G5FDUOZJ.mjs} +7 -7
  66. package/dist/cli/{setup-WBWOV3LQ.mjs → setup-WOMOSJWB.mjs} +6 -6
  67. package/dist/cli/{setup-7I5ROB6J.js → setup-X2U5RX5R.js} +41 -41
  68. package/dist/cli/skills-BZCMRUZZ.js +28 -0
  69. package/dist/cli/{skills-HTJERGGP.mjs → skills-NDHK6HRC.mjs} +4 -4
  70. package/dist/cli/{tools-EHPNO6JC.mjs → tools-GILOEDEQ.mjs} +6 -6
  71. package/dist/cli/tools-Y6BDEUS3.js +40 -0
  72. package/dist/cli/{update-EEXWKAD2.mjs → update-H6APTLX7.mjs} +6 -6
  73. package/dist/cli/update-RQWIZOBF.js +28 -0
  74. package/dist/cli/{workflow-FWYWFUCN.mjs → workflow-MLYJQCP3.mjs} +5 -5
  75. package/dist/cli/{workflow-UBZDFKTY.js → workflow-TC72DBUF.js} +15 -15
  76. package/dist/index.js +6 -6
  77. package/dist/index.mjs +3 -3
  78. package/dist/install-integrity.json +72 -72
  79. package/dist/release.d.mts +1 -1
  80. package/dist/release.d.ts +1 -1
  81. package/dist/release.js +2 -2
  82. package/dist/release.mjs +1 -1
  83. package/package.json +1 -1
  84. package/dist/cli/auth-2JOTPVMO.js +0 -39
  85. package/dist/cli/git-HFO5FYKX.js +0 -23
  86. package/dist/cli/play-NT6RJ6QD.js +0 -157
  87. package/dist/cli/search-EDN57JRG.js +0 -26
  88. package/dist/cli/skills-NFWV6IDQ.js +0 -28
  89. package/dist/cli/tools-SUWHHSVG.js +0 -40
  90. package/dist/cli/update-7OBAHXYB.js +0 -28
@@ -10,22 +10,24 @@ import {
10
10
  resolveUpdatePlan,
11
11
  runAutomaticUpdatePlan,
12
12
  shouldRunCliAutoUpdate
13
- } from "./chunk-YK6RRPOH.mjs";
14
- import "./chunk-KB455XET.mjs";
13
+ } from "./chunk-K5JZ3JMP.mjs";
14
+ import "./chunk-KIZ7QHY5.mjs";
15
15
  import {
16
16
  SDK_COMPATIBILITY_FAST_DEADLINE_MS,
17
17
  SKILLS_AUTO_SYNC_COMMAND,
18
18
  checkSdkCompatibility,
19
19
  enforceSdkCompatibilityResponse,
20
+ failureReportHeaders,
20
21
  flushDeferredSkillsSyncNotices,
21
22
  isCiEnvironment,
23
+ isFailureReportingDisabled,
22
24
  maybeReportSdkCliFailure,
23
25
  readFreshCleanCompatibility,
24
26
  readTrustedCleanCompatibility,
25
27
  resolveSdkCliFailureExitCode,
26
28
  sanitizeCommand,
27
29
  syncSdkSkillsIfNeeded
28
- } from "./chunk-NGHN37LZ.mjs";
30
+ } from "./chunk-VUEQBNG7.mjs";
29
31
  import {
30
32
  recordCliTrace,
31
33
  traceCliSpan
@@ -40,22 +42,21 @@ import {
40
42
  printCompactJson,
41
43
  printJson,
42
44
  shouldEmitJson
43
- } from "./chunk-NGDV6VG6.mjs";
45
+ } from "./chunk-TIBMH2VI.mjs";
44
46
  import {
45
47
  AuthError,
46
48
  HttpClient,
47
49
  SDK_VERSION,
48
50
  agentSessionIdFromEnvironment,
49
51
  autoDetectBaseUrl,
50
- detectAgentRuntime,
51
52
  readSdkSkillsLocalVersion,
52
53
  resolveApiKeyForBaseUrl,
53
54
  resolveBaseUrlOnly,
54
55
  resolveConfig
55
- } from "./chunk-4LE4OXXN.mjs";
56
+ } from "./chunk-NV5VCWNJ.mjs";
56
57
  import "./chunk-DLIRSHV6.mjs";
57
58
  import "./chunk-NXGCO4JB.mjs";
58
- import "./chunk-C4Q5JWU3.mjs";
59
+ import "./chunk-TTIISDJB.mjs";
59
60
  import "./chunk-WZYKRD7T.mjs";
60
61
  import {
61
62
  commandDocKey,
@@ -125,48 +126,48 @@ import { Command as Command2 } from "commander";
125
126
  var COMMAND_GROUPS = [
126
127
  {
127
128
  names: ["auth"],
128
- load: async () => (await import("./auth-DHCQUXEG.mjs")).registerAuthCommands
129
+ load: async () => (await import("./auth-4D4IBZZN.mjs")).registerAuthCommands
129
130
  },
130
131
  {
131
132
  names: ["providers"],
132
- load: async () => (await import("./providers-H47XKFEX.mjs")).registerProviderCommands
133
+ load: async () => (await import("./providers-6INAFXGV.mjs")).registerProviderCommands
133
134
  },
134
135
  {
135
136
  names: ["search"],
136
- load: async () => (await import("./search-MI7OUPQS.mjs")).registerSearchCommand
137
+ load: async () => (await import("./search-HFUSEL3S.mjs")).registerSearchCommand
137
138
  },
138
139
  {
139
140
  names: ["describe"],
140
- load: async () => (await import("./describe-BTXARLAZ.mjs")).registerDescribeCommand
141
+ load: async () => (await import("./describe-QDIM53RP.mjs")).registerDescribeCommand
141
142
  },
142
143
  {
143
144
  names: ["tools"],
144
- load: async () => (await import("./tools-EHPNO6JC.mjs")).registerToolsCommands
145
+ load: async () => (await import("./tools-GILOEDEQ.mjs")).registerToolsCommands
145
146
  },
146
147
  {
147
148
  names: ["executions"],
148
- load: async () => (await import("./executions-OJYCYPK2.mjs")).registerExecutionsCommands
149
+ load: async () => (await import("./executions-M2QRHUDM.mjs")).registerExecutionsCommands
149
150
  },
150
151
  {
151
152
  names: ["plays", "runs"],
152
- load: async () => (await import("./play-AA2FORIH.mjs")).registerPlayCommands
153
+ load: async () => (await import("./play-JEI3F2M4.mjs")).registerPlayCommands
153
154
  },
154
155
  {
155
156
  names: ["sessions"],
156
- load: async () => (await import("./sessions-6CPUREXX.mjs")).registerSessionsCommands
157
+ load: async () => (await import("./sessions-GE3GEQY3.mjs")).registerSessionsCommands
157
158
  },
158
159
  {
159
160
  names: ["workflows"],
160
- load: async () => (await import("./workflow-FWYWFUCN.mjs")).registerWorkflowCommands
161
+ load: async () => (await import("./workflow-MLYJQCP3.mjs")).registerWorkflowCommands
161
162
  },
162
163
  {
163
164
  names: ["secrets"],
164
- load: async () => (await import("./secrets-B4A5SZR7.mjs")).registerSecretsCommands
165
+ load: async () => (await import("./secrets-TSFBMX65.mjs")).registerSecretsCommands
165
166
  },
166
167
  {
167
168
  names: ["settings", "notifications"],
168
169
  load: async () => {
169
- const commands = await import("./settings-GTABNW5O.mjs");
170
+ const commands = await import("./settings-G5FDUOZJ.mjs");
170
171
  return (p) => {
171
172
  commands.registerSettingsCommands(p);
172
173
  commands.registerNotificationCommands(p);
@@ -175,51 +176,51 @@ var COMMAND_GROUPS = [
175
176
  },
176
177
  {
177
178
  names: ["billing"],
178
- load: async () => (await import("./billing-LRF2NACZ.mjs")).registerBillingCommands
179
+ load: async () => (await import("./billing-4RSI4634.mjs")).registerBillingCommands
179
180
  },
180
181
  {
181
182
  names: ["monitors"],
182
- load: async () => (await import("./monitors-5CYSLU3P.mjs")).registerMonitorsCommands
183
+ load: async () => (await import("./monitors-HGIB7TPZ.mjs")).registerMonitorsCommands
183
184
  },
184
185
  {
185
186
  names: ["org"],
186
- load: async () => (await import("./org-WV6GOBNV.mjs")).registerOrgCommands
187
+ load: async () => (await import("./org-NHILTL3P.mjs")).registerOrgCommands
187
188
  },
188
189
  {
189
190
  names: ["git", "projects", "deployments"],
190
- load: async () => (await import("./git-HW5SQRNJ.mjs")).registerGitCommands
191
+ load: async () => (await import("./git-WRTQIX6R.mjs")).registerGitCommands
191
192
  },
192
193
  {
193
194
  names: ["csv"],
194
- load: async () => (await import("./csv-VRCG5NTO.mjs")).registerCsvCommands
195
+ load: async () => (await import("./csv-Q7XLUTXX.mjs")).registerCsvCommands
195
196
  },
196
197
  {
197
198
  names: ["db"],
198
- load: async () => (await import("./db-TXPBHVLO.mjs")).registerDbCommands
199
+ load: async () => (await import("./db-5CLCESHQ.mjs")).registerDbCommands
199
200
  },
200
201
  {
201
202
  names: ["feedback"],
202
- load: async () => (await import("./feedback-XIWI37PD.mjs")).registerFeedbackCommands
203
+ load: async () => (await import("./feedback-FICCIDJQ.mjs")).registerFeedbackCommands
203
204
  },
204
205
  {
205
206
  names: ["enrich", "session", "backend"],
206
- load: async () => (await import("./legacy-noops-EBRICEDC.mjs")).registerDeprecatedCommands
207
+ load: async () => (await import("./legacy-noops-6HJZDXLH.mjs")).registerDeprecatedCommands
207
208
  },
208
209
  {
209
210
  names: ["update"],
210
- load: async () => (await import("./update-EEXWKAD2.mjs")).registerUpdateCommand
211
+ load: async () => (await import("./update-H6APTLX7.mjs")).registerUpdateCommand
211
212
  },
212
213
  {
213
214
  names: ["skills", "skills-auto-sync"],
214
- load: async () => (await import("./skills-HTJERGGP.mjs")).registerSkillsCommand
215
+ load: async () => (await import("./skills-NDHK6HRC.mjs")).registerSkillsCommand
215
216
  },
216
217
  {
217
218
  names: ["setup", "doctor"],
218
- load: async () => (await import("./setup-WBWOV3LQ.mjs")).registerSetupCommands
219
+ load: async () => (await import("./setup-WOMOSJWB.mjs")).registerSetupCommands
219
220
  },
220
221
  {
221
222
  names: ["quickstart"],
222
- load: async () => (await import("./quickstart-YIIXVX6Z.mjs")).registerQuickstartCommands
223
+ load: async () => (await import("./quickstart-QMRYNXDM.mjs")).registerQuickstartCommands
223
224
  }
224
225
  ];
225
226
  async function registerDeeplineCommandGroups(program, requestedCommand) {
@@ -538,85 +539,103 @@ function resolveCliMaintenancePolicy(input) {
538
539
  }
539
540
 
540
541
  // src/cli/output-size-reporting.ts
541
- var REPORTING_DISABLE_ENV = "DEEPLINE_DISABLE_FAILURE_REPORTING";
542
- var OUTPUT_SIZE_REPORT_TIMEOUT_MS = 1e3;
543
- var REPORT_MIN_OUTPUT_LINES = 40;
542
+ var REPORT_MIN_LINES = 40;
543
+ var REPORT_TIMEOUT_MS = 1e3;
544
+ var FLUSH_TIMEOUT_MS = 250;
545
+ var EMPTY_TALLY = {
546
+ chars: 0,
547
+ newlines: 0,
548
+ endsMidLine: false,
549
+ epipe: false
550
+ };
551
+ function addText(tally, text) {
552
+ if (!text) return tally;
553
+ return {
554
+ ...tally,
555
+ chars: tally.chars + text.length,
556
+ newlines: tally.newlines + text.split("\n").length - 1,
557
+ endsMidLine: !text.endsWith("\n")
558
+ };
559
+ }
560
+ function streamOutput({
561
+ chars,
562
+ newlines,
563
+ endsMidLine,
564
+ epipe
565
+ }) {
566
+ return { chars, lines: newlines + (endsMidLine ? 1 : 0), epipe };
567
+ }
568
+ function shouldReport(stdout, stderr) {
569
+ return stdout.epipe || stderr.epipe || stdout.lines + stderr.lines > REPORT_MIN_LINES;
570
+ }
544
571
  function chunkText(chunk) {
545
572
  if (typeof chunk === "string") return chunk;
546
573
  if (chunk instanceof Uint8Array) return Buffer.from(chunk).toString();
547
574
  return "";
548
575
  }
549
- function countWrites(stream) {
550
- let chars = 0;
551
- let newlines = 0;
552
- let endsMidLine = false;
576
+ function watch(stream) {
577
+ let tally = EMPTY_TALLY;
578
+ stream.on("error", (error) => {
579
+ if (error.code !== "EPIPE") throw error;
580
+ tally = { ...tally, epipe: true };
581
+ });
553
582
  const write = stream.write.bind(stream);
554
583
  stream.write = ((chunk, ...args) => {
555
- const text = chunkText(chunk);
556
- if (text) {
557
- chars += text.length;
558
- newlines += text.split("\n").length - 1;
559
- endsMidLine = !text.endsWith("\n");
560
- }
584
+ tally = addText(tally, chunkText(chunk));
561
585
  return write(chunk, ...args);
562
586
  });
563
- return () => ({ chars, lines: newlines + (endsMidLine ? 1 : 0) });
587
+ return {
588
+ settled: () => new Promise((resolve) => {
589
+ const done = () => resolve(streamOutput(tally));
590
+ const timeout = setTimeout(done, FLUSH_TIMEOUT_MS);
591
+ stream.write("", () => {
592
+ clearTimeout(timeout);
593
+ setImmediate(done);
594
+ });
595
+ })
596
+ };
564
597
  }
565
- function startOutputSizeReporting(input) {
566
- const stdoutSize = countWrites(process.stdout);
567
- const stderrSize = countWrites(process.stderr);
568
- return async () => {
569
- const disabled = ["1", "true", "yes", "on"].includes(
570
- String(process.env[REPORTING_DISABLE_ENV] ?? "").trim().toLowerCase()
571
- );
572
- if (disabled) return;
573
- const stdout = stdoutSize();
574
- const stderr = stderrSize();
575
- if (stdout.lines + stderr.lines <= REPORT_MIN_OUTPUT_LINES) return;
576
- let baseUrl = "";
577
- let apiKey = "";
578
- try {
579
- baseUrl = autoDetectBaseUrl().replace(/\/$/, "");
580
- apiKey = resolveApiKeyForBaseUrl(baseUrl);
581
- } catch {
582
- return;
583
- }
598
+ async function postCommandOutput(body) {
599
+ try {
600
+ const baseUrl = autoDetectBaseUrl().replace(/\/$/, "");
601
+ const apiKey = resolveApiKeyForBaseUrl(baseUrl);
584
602
  if (!apiKey) return;
585
- const controller = new AbortController();
586
- const timeout = setTimeout(
587
- () => controller.abort(),
588
- OUTPUT_SIZE_REPORT_TIMEOUT_MS
589
- );
590
- try {
591
- const agentSessionId = agentSessionIdFromEnvironment();
592
- await fetch(new URL("/api/v2/telemetry/command-output", baseUrl), {
593
- method: "POST",
594
- headers: {
595
- ...agentSessionId ? { "X-Deepline-Agent-Session-Id": agentSessionId } : {},
596
- Authorization: `Bearer ${apiKey}`,
597
- "Content-Type": "application/json",
598
- "User-Agent": `deepline-ts-sdk/${SDK_VERSION}`,
599
- "X-Deepline-Client-Family": "sdk",
600
- "X-Deepline-CLI-Family": "sdk",
601
- "X-Deepline-Agent-Runtime": detectAgentRuntime(),
602
- "X-Deepline-CLI-Version": SDK_VERSION,
603
- "X-Deepline-SDK-Version": SDK_VERSION
604
- },
605
- body: JSON.stringify({
606
- command: sanitizeCommand(input.argv),
607
- exit_code: typeof process.exitCode === "number" ? process.exitCode : null,
608
- duration_ms: Math.max(0, Date.now() - input.startedAtMs),
609
- stdout_chars: stdout.chars,
610
- stderr_chars: stderr.chars,
611
- stdout_lines: stdout.lines,
612
- stderr_lines: stderr.lines
613
- }),
614
- signal: controller.signal
615
- });
616
- } catch {
617
- } finally {
618
- clearTimeout(timeout);
619
- }
603
+ const agentSessionId = agentSessionIdFromEnvironment();
604
+ await fetch(new URL("/api/v2/telemetry/command-output", baseUrl), {
605
+ method: "POST",
606
+ headers: {
607
+ ...failureReportHeaders(apiKey),
608
+ ...agentSessionId ? { "X-Deepline-Agent-Session-Id": agentSessionId } : {}
609
+ },
610
+ body: JSON.stringify(body),
611
+ signal: AbortSignal.timeout(REPORT_TIMEOUT_MS)
612
+ });
613
+ } catch {
614
+ }
615
+ }
616
+ function startOutputSizeReporting(command, streams = {
617
+ stdout: process.stdout,
618
+ stderr: process.stderr
619
+ }) {
620
+ const stdoutWatch = watch(streams.stdout);
621
+ const stderrWatch = watch(streams.stderr);
622
+ return async (exitCode) => {
623
+ if (isFailureReportingDisabled()) return;
624
+ const [stdout, stderr] = await Promise.all([
625
+ stdoutWatch.settled(),
626
+ stderrWatch.settled()
627
+ ]);
628
+ if (!shouldReport(stdout, stderr)) return;
629
+ await postCommandOutput({
630
+ command: sanitizeCommand(command.argv),
631
+ exit_code: typeof exitCode === "number" ? exitCode : null,
632
+ duration_ms: Math.max(0, Date.now() - command.startedAtMs),
633
+ stdout_chars: stdout.chars,
634
+ stderr_chars: stderr.chars,
635
+ stdout_lines: stdout.lines,
636
+ stderr_lines: stderr.lines,
637
+ epipe: stdout.epipe || stderr.epipe
638
+ });
620
639
  };
621
640
  }
622
641
 
@@ -711,7 +730,7 @@ async function runPlayRunnerHealthCheck() {
711
730
  });
712
731
  let exitCode = 1;
713
732
  try {
714
- const { handlePlayRun } = await import("./play-AA2FORIH.mjs");
733
+ const { handlePlayRun } = await import("./play-JEI3F2M4.mjs");
715
734
  exitCode = await handlePlayRun([
716
735
  file,
717
736
  "--input",
@@ -1108,7 +1127,7 @@ Examples:
1108
1127
  return;
1109
1128
  }
1110
1129
  try {
1111
- const { httpJson, readStatusBanner, statusBannerLine } = await import("./auth-DHCQUXEG.mjs");
1130
+ const { httpJson, readStatusBanner, statusBannerLine } = await import("./auth-4D4IBZZN.mjs");
1112
1131
  const baseUrl = resolveBaseUrlOnly();
1113
1132
  const [{ status, data }, banner] = await Promise.all([
1114
1133
  httpJson("GET", `${baseUrl}/api/v2/health`, null),
@@ -1183,7 +1202,7 @@ Examples:
1183
1202
  const helpArgs = process.argv.slice(2);
1184
1203
  const helpPositionals = helpArgs.filter((arg) => !arg.startsWith("-"));
1185
1204
  if (helpPositionals.length === 0 ? helpArgs.includes("--help") || helpArgs.includes("-h") : helpPositionals.length === 1 && helpPositionals[0] === "help") {
1186
- const { authStatusLine } = await import("./auth-DHCQUXEG.mjs");
1205
+ const { authStatusLine } = await import("./auth-4D4IBZZN.mjs");
1187
1206
  rootHelpStatus = `Version: ${SDK_VERSION}
1188
1207
  ${await authStatusLine()}
1189
1208
  `;
@@ -1280,7 +1299,7 @@ async function main() {
1280
1299
  try {
1281
1300
  await runMain(ensureTransport);
1282
1301
  await ensureTransport();
1283
- await reportOutputSize();
1302
+ await reportOutputSize(process.exitCode);
1284
1303
  } finally {
1285
1304
  await disposeTransport?.();
1286
1305
  }
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  registerSessionSendRenderCommands
3
- } from "./chunk-26QUYLQT.mjs";
3
+ } from "./chunk-F44OPZOG.mjs";
4
4
  import {
5
5
  ENRICH_COMMAND_DEPRECATION_MESSAGE
6
6
  } from "./chunk-ITOFSXIU.mjs";
7
7
  import {
8
8
  printCommandEnvelope
9
- } from "./chunk-NGDV6VG6.mjs";
10
- import "./chunk-4LE4OXXN.mjs";
9
+ } from "./chunk-TIBMH2VI.mjs";
10
+ import "./chunk-NV5VCWNJ.mjs";
11
11
  import "./chunk-DLIRSHV6.mjs";
12
12
  import "./chunk-NXGCO4JB.mjs";
13
- import "./chunk-C4Q5JWU3.mjs";
13
+ import "./chunk-TTIISDJB.mjs";
14
14
  import "./chunk-WZYKRD7T.mjs";
15
15
  import "./chunk-KRD6H754.mjs";
16
16
 
@@ -1,16 +1,16 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkXHP2OVMGjs = require('./chunk-XHP2OVMG.js');
3
+ var _chunkYHSAUVJ3js = require('./chunk-YHSAUVJ3.js');
4
4
 
5
5
 
6
6
  var _chunk3XX5TEA4js = require('./chunk-3XX5TEA4.js');
7
7
 
8
8
 
9
- var _chunkAFCHR4YFjs = require('./chunk-AFCHR4YF.js');
10
- require('./chunk-3Z4P6FTT.js');
9
+ var _chunkCMIRZZT4js = require('./chunk-CMIRZZT4.js');
10
+ require('./chunk-3PGTFASB.js');
11
11
  require('./chunk-XNYIZMNQ.js');
12
12
  require('./chunk-7P5AA3SN.js');
13
- require('./chunk-MCRIYPOO.js');
13
+ require('./chunk-IFKSXI4W.js');
14
14
  require('./chunk-OG64RBAC.js');
15
15
  require('./chunk-COGTRVWW.js');
16
16
 
@@ -51,7 +51,7 @@ function deprecatedCommandEnvelope(input) {
51
51
  };
52
52
  }
53
53
  function printDeprecatedCommand(input) {
54
- _chunkAFCHR4YFjs.printCommandEnvelope.call(void 0, deprecatedCommandEnvelope(input), {
54
+ _chunkCMIRZZT4js.printCommandEnvelope.call(void 0, deprecatedCommandEnvelope(input), {
55
55
  json: input.options.json
56
56
  });
57
57
  process.exitCode = 2;
@@ -71,7 +71,7 @@ function registerDeprecatedCommands(program) {
71
71
  program.command("enrich", { hidden: true }).description("Deprecated CSV enrichment command.").allowUnknownOption(true).allowExcessArguments(true).option("--json", "Emit JSON output").argument("[args...]").addHelpText("after", `
72
72
  ${_chunk3XX5TEA4js.ENRICH_COMMAND_DEPRECATION_MESSAGE}
73
73
  `).action((_args, options) => {
74
- _chunkAFCHR4YFjs.printCommandEnvelope.call(void 0,
74
+ _chunkCMIRZZT4js.printCommandEnvelope.call(void 0,
75
75
  {
76
76
  ok: false,
77
77
  command: "deepline enrich",
@@ -114,7 +114,7 @@ Examples:
114
114
  options
115
115
  });
116
116
  });
117
- _chunkXHP2OVMGjs.registerSessionSendRenderCommands.call(void 0, session, "session");
117
+ _chunkYHSAUVJ3js.registerSessionSendRenderCommands.call(void 0, session, "session");
118
118
  for (const subcommand of SESSION_SUBCOMMANDS) {
119
119
  addDeprecatedSubcommand(
120
120
  session,