deepline 0.3.478 → 0.3.480

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 (142) hide show
  1. package/dist/bundling-sources/sdk/src/release.ts +1 -1
  2. package/dist/bundling-sources/shared_libs/integration-contracts/billing-entitlements.ts +11 -0
  3. package/dist/bundling-sources/shared_libs/product-notifications/billing-sales.ts +2 -1
  4. package/dist/bundling-sources/shared_libs/product-notifications/slack-delivery.ts +57 -5
  5. package/dist/bundling-sources/shared_libs/product-notifications/slack-transport.ts +19 -0
  6. package/dist/cli/auth-7FOB243B.js +43 -0
  7. package/dist/cli/{auth-SA4DJCSO.mjs → auth-KMKFQX7X.mjs} +7 -5
  8. package/dist/cli/{billing-Z4D35MV5.mjs → billing-G3Y5FTQM.mjs} +6 -6
  9. package/dist/cli/{billing-462SAHWX.js → billing-R5RCTEW6.js} +79 -79
  10. package/dist/cli/{chunk-2FTUPGTN.mjs → chunk-2AYWC63S.mjs} +2 -2
  11. package/dist/cli/{chunk-PHBOI24Y.mjs → chunk-44TVNYYV.mjs} +10 -10
  12. package/dist/cli/{chunk-S3BKOCVB.js → chunk-4V6KEXCM.js} +1 -1
  13. package/dist/cli/{chunk-7HTWT3Z4.mjs → chunk-53LLOGNV.mjs} +2 -2
  14. package/dist/cli/{chunk-4C3TMIF3.mjs → chunk-57MJL2HU.mjs} +4 -4
  15. package/dist/cli/{chunk-D2LKEQKI.js → chunk-5IVGZCKY.js} +5 -5
  16. package/dist/cli/{chunk-N573OK4W.mjs → chunk-63QH6FL3.mjs} +4 -4
  17. package/dist/cli/{chunk-2MSKG4ER.js → chunk-6AYQK7Z6.js} +6 -6
  18. package/dist/cli/{chunk-2JS5DNVX.mjs → chunk-7LMLHUCP.mjs} +5 -5
  19. package/dist/cli/{chunk-PZHRNSMU.js → chunk-A3PZKD47.js} +21 -21
  20. package/dist/cli/{chunk-PPHHPAQV.mjs → chunk-AKCYZDBO.mjs} +1 -1
  21. package/dist/cli/{chunk-6EEMW7YP.js → chunk-APFFHSPL.js} +8 -8
  22. package/dist/cli/{chunk-TLF3KGWG.mjs → chunk-ASARTL6E.mjs} +2 -2
  23. package/dist/cli/{chunk-S7UEKKOX.mjs → chunk-DIDWIPMA.mjs} +1 -1
  24. package/dist/cli/{chunk-KBBZXWXF.js → chunk-DQYJXVAF.js} +4 -4
  25. package/dist/cli/{chunk-AQYSZYNE.js → chunk-FFSOXQEM.js} +8 -8
  26. package/dist/cli/{chunk-645RNF2Y.mjs → chunk-FZ42SO3Q.mjs} +1 -1
  27. package/dist/cli/{chunk-AYW242XF.js → chunk-FZX2DGQZ.js} +37 -37
  28. package/dist/cli/{chunk-JH775FF6.mjs → chunk-IQ6WL36K.mjs} +1 -1
  29. package/dist/cli/{chunk-F2SJYUBW.mjs → chunk-JBQKBDDN.mjs} +5 -5
  30. package/dist/cli/{chunk-V7I65ME7.js → chunk-JH77OHD5.js} +2 -2
  31. package/dist/cli/{chunk-VE25VUTE.js → chunk-K7E2DO5P.js} +96 -65
  32. package/dist/cli/{chunk-3V7INABZ.mjs → chunk-KQNQCZLB.mjs} +2 -2
  33. package/dist/cli/{chunk-XFY3JOP2.js → chunk-LBZLV6QF.js} +9 -9
  34. package/dist/cli/{chunk-SCHE5QRN.js → chunk-LHU6BMDV.js} +3 -3
  35. package/dist/cli/{chunk-3LTLQAU4.mjs → chunk-LLEBPM3N.mjs} +4 -4
  36. package/dist/cli/{chunk-QVZNUQAP.js → chunk-MEJJD7PA.js} +2 -2
  37. package/dist/cli/{chunk-F44O4PEP.mjs → chunk-MTMOYZMK.mjs} +1 -1
  38. package/dist/cli/{chunk-IWYWZXCA.js → chunk-NBXG4S2X.js} +53 -53
  39. package/dist/cli/{chunk-A5LPDB6N.js → chunk-NVTVS4AV.js} +6 -6
  40. package/dist/cli/{chunk-XOORR6P3.js → chunk-OGXG46LY.js} +93 -93
  41. package/dist/cli/{chunk-TQWI7LJX.js → chunk-OQOXR6JL.js} +26 -26
  42. package/dist/cli/{chunk-ABBP5ZCI.mjs → chunk-PC42DFZC.mjs} +3 -3
  43. package/dist/cli/{chunk-HMUBLAT4.js → chunk-PDDUX5UY.js} +5 -5
  44. package/dist/cli/{chunk-BLAZVZVD.mjs → chunk-PM2CT7HZ.mjs} +41 -10
  45. package/dist/cli/{chunk-4RJRGQ5Y.mjs → chunk-PYIWO4GS.mjs} +2 -2
  46. package/dist/cli/{chunk-UXQVSDFP.js → chunk-QEV3GFDS.js} +3 -3
  47. package/dist/cli/{chunk-SXY4DOVA.js → chunk-RPJSVGSC.js} +16 -16
  48. package/dist/cli/{chunk-ZSU3C4ST.mjs → chunk-SUTQCM7U.mjs} +2 -2
  49. package/dist/cli/{chunk-M5USVQ33.mjs → chunk-T7EWDIVM.mjs} +1 -1
  50. package/dist/cli/{chunk-TW3TTKW5.js → chunk-TBJ23WKT.js} +3 -3
  51. package/dist/cli/{chunk-75DAGCEX.mjs → chunk-TXFURKHD.mjs} +1 -1
  52. package/dist/cli/{chunk-J3ZYRN5L.js → chunk-VPO2D7WV.js} +10 -10
  53. package/dist/cli/{chunk-4RV7U3RP.js → chunk-WQBJHB63.js} +7 -7
  54. package/dist/cli/{chunk-QB3Q73LP.mjs → chunk-XNXE7YWI.mjs} +2 -2
  55. package/dist/cli/{chunk-PLJV6SX4.mjs → chunk-ZSWY5E3W.mjs} +1 -1
  56. package/dist/cli/{csv-LAYTDYIF.js → csv-57D62T7L.js} +13 -13
  57. package/dist/cli/{csv-3SNWBO5F.mjs → csv-P3AEI4G4.mjs} +4 -4
  58. package/dist/cli/{db-OOUOSURL.js → db-FWFYU34R.js} +27 -27
  59. package/dist/cli/{db-72JKGQSK.mjs → db-PJQMPZJP.mjs} +6 -6
  60. package/dist/cli/{describe-KDPNOEUJ.mjs → describe-F57VZZML.mjs} +17 -17
  61. package/dist/cli/describe-ZAYUBNUQ.js +48 -0
  62. package/dist/cli/describe-core.d.mts +3 -3
  63. package/dist/cli/describe-core.d.ts +3 -3
  64. package/dist/cli/{executions-RJNMGJEE.js → executions-YBT7NTY5.js} +8 -8
  65. package/dist/cli/{executions-O6JS3UKX.mjs → executions-ZAJGMAAT.mjs} +6 -6
  66. package/dist/cli/{feedback-T3JH3CWC.mjs → feedback-L3ZQCSY6.mjs} +4 -4
  67. package/dist/cli/{feedback-FXB6NV3Y.js → feedback-YLYY2EG4.js} +8 -8
  68. package/dist/cli/git-A3433UTN.js +25 -0
  69. package/dist/cli/{git-6KAQSH5J.mjs → git-M7735NWJ.mjs} +5 -5
  70. package/dist/cli/index.js +137 -137
  71. package/dist/cli/index.mjs +40 -40
  72. package/dist/cli/{legacy-noops-7HDGEGTK.mjs → legacy-noops-PKNMQMGY.mjs} +5 -5
  73. package/dist/cli/{legacy-noops-PAOGRKUK.js → legacy-noops-TX37UP3U.js} +8 -8
  74. package/dist/cli/{monitors-KQFI7TVJ.js → monitors-5YTGQSGD.js} +91 -91
  75. package/dist/cli/{monitors-LE2AYK3Z.mjs → monitors-U7AUIOFZ.mjs} +7 -7
  76. package/dist/cli/{org-J6XFHDJE.js → org-N6DSSLLD.js} +72 -72
  77. package/dist/cli/{org-Z4DMJ72I.mjs → org-SRKZRVVH.mjs} +6 -6
  78. package/dist/cli/{pages-5LYS6Y4I.mjs → pages-UOPJUFCF.mjs} +6 -6
  79. package/dist/cli/{pages-FIXBZQJG.js → pages-YPN54RCC.js} +17 -17
  80. package/dist/cli/{play-GILXXIN7.mjs → play-4IK4WXWU.mjs} +17 -17
  81. package/dist/cli/{play-D7WPXADH.js → play-MEYZEYOV.js} +306 -306
  82. package/dist/cli/{providers-OQWL4Q4W.mjs → providers-UGHUYP4C.mjs} +6 -6
  83. package/dist/cli/{providers-KN7YACT6.js → providers-VS5MK4ZH.js} +9 -9
  84. package/dist/cli/{quickstart-M2OBP3W3.js → quickstart-GW2ERQ2A.js} +6 -6
  85. package/dist/cli/{quickstart-2LRIORFM.mjs → quickstart-YBOQSLFV.mjs} +4 -4
  86. package/dist/cli/{run-GYRBKQZT.mjs → run-44JT5GJM.mjs} +22 -22
  87. package/dist/cli/{run-6YZZO7VM.js → run-IVGMLY3J.js} +36 -36
  88. package/dist/cli/search-2XTYY7BF.js +32 -0
  89. package/dist/cli/{search-VUPK6BNU.mjs → search-43NY73VR.mjs} +7 -7
  90. package/dist/cli/{secrets-RE3UMZB7.js → secrets-DABUD3B7.js} +15 -15
  91. package/dist/cli/{secrets-ULRGU7NM.mjs → secrets-ONDQGW3B.mjs} +6 -6
  92. package/dist/cli/{sessions-T4UMHNDW.js → sessions-4ILQMBKR.js} +6 -6
  93. package/dist/cli/{sessions-2ZZVJ3P2.mjs → sessions-AIAKKLSR.mjs} +5 -5
  94. package/dist/cli/{settings-BRV6AYFM.js → settings-BWNLL7TP.js} +78 -78
  95. package/dist/cli/{settings-PDY4TJU6.mjs → settings-HSGKYOJT.mjs} +11 -11
  96. package/dist/cli/{setup-JONYJYBK.js → setup-37QOD4UT.js} +67 -52
  97. package/dist/cli/{setup-CXL6C5Z5.mjs → setup-LE4OVH4M.mjs} +33 -18
  98. package/dist/cli/{skills-TOMVQD5O.mjs → skills-A3ZVR2YX.mjs} +7 -7
  99. package/dist/cli/skills-TULQXRQJ.js +33 -0
  100. package/dist/cli/{tools-B2LJK4MM.mjs → tools-ITKPPUDT.mjs} +16 -16
  101. package/dist/cli/tools-QYYBWDXU.js +55 -0
  102. package/dist/cli/{update-CD6T2REC.mjs → update-XJOSCOK5.mjs} +9 -9
  103. package/dist/cli/update-XSMY7KWH.js +33 -0
  104. package/dist/cli/{workflow-ZAOBP6I7.mjs → workflow-KYQYFSND.mjs} +7 -7
  105. package/dist/cli/{workflow-PZML43E2.js → workflow-LERZ3TYV.js} +17 -17
  106. package/dist/{client-B1s1yJdT.d.mts → client-B9N1bcGc.d.mts} +1 -1
  107. package/dist/{client-DqUseRzd.d.ts → client-Btw075Hq.d.ts} +1 -1
  108. package/dist/{client-core-Bd7tP9Uz.d.ts → client-core-DvGWlwtX.d.ts} +1 -1
  109. package/dist/{client-core-BijQEQ70.d.mts → client-core-TulbIeRB.d.mts} +1 -1
  110. package/dist/{compiler-manifest-B1m5tRzz.d.ts → compiler-manifest-gkO9ZkVg.d.mts} +14 -0
  111. package/dist/{compiler-manifest-B1m5tRzz.d.mts → compiler-manifest-gkO9ZkVg.d.ts} +14 -0
  112. package/dist/{errors-3g71OMXy.d.ts → errors-Cc92LKH-.d.ts} +1 -1
  113. package/dist/{errors-QiC6am-q.d.mts → errors-CeCCOKSA.d.mts} +1 -1
  114. package/dist/{index-CIBiwzhK.d.ts → index-DJQKdV76.d.ts} +1 -1
  115. package/dist/{index-Biz5toO4.d.mts → index-DsqWJL3Q.d.mts} +1 -1
  116. package/dist/index.d.mts +7 -7
  117. package/dist/index.d.ts +7 -7
  118. package/dist/index.js +9 -9
  119. package/dist/index.mjs +6 -6
  120. package/dist/install-integrity.json +106 -106
  121. package/dist/plays/bundle-play-file.d.mts +3 -3
  122. package/dist/plays/bundle-play-file.d.ts +3 -3
  123. package/dist/plays/play-description.d.mts +2 -2
  124. package/dist/plays/play-description.d.ts +2 -2
  125. package/dist/plays/run-request.d.mts +2 -2
  126. package/dist/plays/run-request.d.ts +2 -2
  127. package/dist/release.d.mts +1 -1
  128. package/dist/release.d.ts +1 -1
  129. package/dist/release.js +2 -2
  130. package/dist/release.mjs +1 -1
  131. package/dist/server.d.mts +4 -4
  132. package/dist/server.d.ts +4 -4
  133. package/dist/server.js +5 -5
  134. package/dist/server.mjs +3 -3
  135. package/package.json +1 -1
  136. package/dist/cli/auth-U5SNVC5F.js +0 -41
  137. package/dist/cli/describe-7HYV44MO.js +0 -48
  138. package/dist/cli/git-5LTKPXGN.js +0 -25
  139. package/dist/cli/search-OVKWA4AV.js +0 -32
  140. package/dist/cli/skills-UK5AK35I.js +0 -33
  141. package/dist/cli/tools-HH6E5G7J.js +0 -55
  142. package/dist/cli/update-EGXT3EIJ.js +0 -33
@@ -205,7 +205,7 @@ export const SDK_RELEASE = {
205
205
  // getters keep their established compatibility behavior.
206
206
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
207
207
  // 0.3.90 is the first deliberately versioned SDK release for API v3.
208
- version: '0.3.478',
208
+ version: '0.3.480',
209
209
  updateSummary: {
210
210
  introducedIn: '0.3.90',
211
211
  summary:
@@ -87,4 +87,15 @@ export type IncludedCompute = {
87
87
  included_credits_used?: number;
88
88
  minutes_used: number;
89
89
  days: Array<{ day: string; minutes: number }>;
90
+ /** Same settled sessions and allowance period for every value. */
91
+ opt_in_comparison?: {
92
+ minutes_used: number;
93
+ /** Standard-equivalent usage at the opt-in rate, before the allowance. */
94
+ allowance_minutes_used: number;
95
+ paid_credits: number;
96
+ opt_in_credits: number;
97
+ has_plan_rate_charges: boolean;
98
+ };
99
+ /** Play compute charges for the same period on Growth and Team, for Pay As You Go workspaces. */
100
+ plan_cost_comparison?: { growth_credits: number; team_credits: number };
90
101
  };
@@ -3,7 +3,8 @@ export const BILLING_CREDIT_PURCHASE_GROUP_KEY =
3
3
  export const BILLING_CREDIT_PURCHASE_DESTINATION_KEY =
4
4
  'shadow.billing-sales.credit-purchases.slack';
5
5
  export const BILLING_CREDIT_PURCHASE_IMMEDIATE_LIMIT = 2;
6
- export const BILLING_CREDIT_PURCHASE_CHANNEL_IMMEDIATE_LIMIT = 14;
6
+ export const BILLING_CREDIT_PURCHASE_CHANNEL_IMMEDIATE_LIMIT = 4;
7
+ export const BILLING_CREDIT_PURCHASE_CHANNEL_WINDOW_MS = 2 * 60 * 60_000;
7
8
  // Internal notification namespace, never a customer workspace.
8
9
  export const BILLING_CREDIT_PURCHASE_CHANNEL_SCOPE =
9
10
  'platform:credit-purchase-alerts';
@@ -6,6 +6,7 @@ import { removeHttpHeadersFromSlackPayload } from '../security/slack-sanitize';
6
6
  import { buildSlackActivityPayload, type SlackPayload } from './slack-payload';
7
7
  import {
8
8
  postMessageToSlack,
9
+ SlackRateLimitedError,
9
10
  type SlackMessageOptions,
10
11
  } from './slack-transport';
11
12
 
@@ -109,6 +110,13 @@ const BLOCKED_SLACK_EMAIL_DOMAINS = [
109
110
  ];
110
111
  const BLOCKED_SLACK_ACTOR_EMAILS = ['ci-auth@example.com'];
111
112
  const DEFAULT_TIMEOUT_MS = 2500;
113
+ // A bulk monitor deploy posts once per monitor and outruns Slack's per-channel
114
+ // limit (2026-11-06: 34 of 412 posts refused). Bounded posts retry what Slack
115
+ // asks for within their deadline; a longer Retry-After fails at once.
116
+ // Unbounded channels never retry: sdk_cli_errors is rate-limited all day
117
+ // (KAR-70), and waiting would only slow its callers.
118
+ const SLACK_RATE_LIMIT_MAX_RETRIES = 2;
119
+ const SLACK_RATE_LIMIT_MAX_WAIT_MS = 3000;
112
120
  const VERCEL_LOGS_BASE_URL =
113
121
  'https://vercel.com/aero-team-0f650658/deepline-api/logs';
114
122
  const CHANNEL_ALERT_LEVEL: Record<
@@ -313,6 +321,44 @@ function isSlackChannelUnavailableError(error: unknown): boolean {
313
321
  );
314
322
  }
315
323
 
324
+ /** Resolves true after `ms`, or false as soon as `signal` aborts. */
325
+ function waitUnlessAborted(ms: number, signal: AbortSignal): Promise<boolean> {
326
+ if (signal.aborted) return Promise.resolve(false);
327
+ return new Promise((resolve) => {
328
+ const onAbort = () => {
329
+ clearTimeout(timer);
330
+ resolve(false);
331
+ };
332
+ const timer = setTimeout(() => {
333
+ signal.removeEventListener('abort', onAbort);
334
+ resolve(true);
335
+ }, ms);
336
+ signal.addEventListener('abort', onAbort, { once: true });
337
+ });
338
+ }
339
+
340
+ async function postRetryingRateLimits(
341
+ post: () => Promise<void>,
342
+ deadline: AbortSignal | undefined,
343
+ ): Promise<void> {
344
+ for (let retries = 0; ; retries += 1) {
345
+ try {
346
+ await post();
347
+ return;
348
+ } catch (error) {
349
+ if (
350
+ !deadline ||
351
+ !(error instanceof SlackRateLimitedError) ||
352
+ retries >= SLACK_RATE_LIMIT_MAX_RETRIES ||
353
+ error.retryAfterMs > SLACK_RATE_LIMIT_MAX_WAIT_MS ||
354
+ !(await waitUnlessAborted(error.retryAfterMs, deadline))
355
+ ) {
356
+ throw error;
357
+ }
358
+ }
359
+ }
360
+ }
361
+
316
362
  async function postSlackWebhook(
317
363
  url: string,
318
364
  payload: SlackPayload,
@@ -627,11 +673,17 @@ export async function sendSlackEvent(
627
673
  : null;
628
674
  try {
629
675
  const botOptions = messageOptions(sanitizedNormalized);
630
- await postMessage(
631
- botChannel.token,
632
- botChannel.channelId,
633
- sanitizedNormalized.text,
634
- controller ? { ...botOptions, signal: controller.signal } : botOptions,
676
+ await postRetryingRateLimits(
677
+ () =>
678
+ postMessage(
679
+ botChannel.token,
680
+ botChannel.channelId,
681
+ sanitizedNormalized.text,
682
+ controller
683
+ ? { ...botOptions, signal: controller.signal }
684
+ : botOptions,
685
+ ),
686
+ controller?.signal,
635
687
  );
636
688
  logSlackEventDispatch(channel, sanitizedNormalized, 'bot');
637
689
  return;
@@ -16,6 +16,20 @@ export type SlackMessageOptions = {
16
16
  signal?: AbortSignal;
17
17
  };
18
18
 
19
+ /** Slack refused a post for this channel's rate limit (HTTP 429). */
20
+ export class SlackRateLimitedError extends Error {
21
+ constructor(readonly retryAfterMs: number) {
22
+ super('Slack chat.postMessage failed: ratelimited');
23
+ this.name = 'SlackRateLimitedError';
24
+ }
25
+ }
26
+
27
+ /** Slack sends Retry-After in whole seconds; assume one second without it. */
28
+ function parseRetryAfterMs(header: string | null): number {
29
+ const seconds = Number(header);
30
+ return Number.isFinite(seconds) && seconds > 0 ? seconds * 1000 : 1000;
31
+ }
32
+
19
33
  async function postSlackMessage(
20
34
  token: string,
21
35
  channelId: string,
@@ -46,6 +60,11 @@ async function postSlackMessage(
46
60
  }),
47
61
  });
48
62
  const data = (await res.json()) as SlackChatResponse;
63
+ if (data.error === 'ratelimited') {
64
+ throw new SlackRateLimitedError(
65
+ parseRetryAfterMs(res.headers.get('retry-after')),
66
+ );
67
+ }
49
68
  if (!data.ok) {
50
69
  throw new Error(
51
70
  `Slack chat.postMessage failed: ${data.error ?? 'unknown'}`,
@@ -0,0 +1,43 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+ var _chunkK7E2DO5Pjs = require('./chunk-K7E2DO5P.js');
18
+ require('./chunk-WQBJHB63.js');
19
+ require('./chunk-TBJ23WKT.js');
20
+ require('./chunk-DQYJXVAF.js');
21
+ require('./chunk-ALJJRZNJ.js');
22
+ require('./chunk-XNYIZMNQ.js');
23
+ require('./chunk-DIAWYWT5.js');
24
+ require('./chunk-4V6KEXCM.js');
25
+ require('./chunk-OG64RBAC.js');
26
+ require('./chunk-COGTRVWW.js');
27
+
28
+
29
+
30
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+
42
+
43
+ exports.EXIT_WORKSPACE_MISMATCH = _chunkK7E2DO5Pjs.EXIT_WORKSPACE_MISMATCH; exports.authStatusLine = _chunkK7E2DO5Pjs.authStatusLine; exports.clearPendingClaim = _chunkK7E2DO5Pjs.clearPendingClaim; exports.clearSatisfiedPendingClaim = _chunkK7E2DO5Pjs.clearSatisfiedPendingClaim; exports.handleRegister = _chunkK7E2DO5Pjs.handleRegister; exports.handleStatus = _chunkK7E2DO5Pjs.handleStatus; exports.handleWait = _chunkK7E2DO5Pjs.handleWait; exports.httpJson = _chunkK7E2DO5Pjs.httpJson; exports.readPendingAuthClaim = _chunkK7E2DO5Pjs.readPendingAuthClaim; exports.readStatusBanner = _chunkK7E2DO5Pjs.readStatusBanner; exports.registerAuthCommands = _chunkK7E2DO5Pjs.registerAuthCommands; exports.reportApprovalLinkShown = _chunkK7E2DO5Pjs.reportApprovalLinkShown; exports.reportSetupCompleted = _chunkK7E2DO5Pjs.reportSetupCompleted; exports.resolvePendingAuthClaimForResume = _chunkK7E2DO5Pjs.resolvePendingAuthClaimForResume; exports.statusBannerLine = _chunkK7E2DO5Pjs.statusBannerLine;
@@ -10,17 +10,18 @@ import {
10
10
  readPendingAuthClaim,
11
11
  readStatusBanner,
12
12
  registerAuthCommands,
13
+ reportApprovalLinkShown,
13
14
  reportSetupCompleted,
14
15
  resolvePendingAuthClaimForResume,
15
16
  statusBannerLine
16
- } from "./chunk-BLAZVZVD.mjs";
17
- import "./chunk-7HTWT3Z4.mjs";
18
- import "./chunk-75DAGCEX.mjs";
19
- import "./chunk-M5USVQ33.mjs";
17
+ } from "./chunk-PM2CT7HZ.mjs";
18
+ import "./chunk-53LLOGNV.mjs";
19
+ import "./chunk-TXFURKHD.mjs";
20
+ import "./chunk-T7EWDIVM.mjs";
20
21
  import "./chunk-4QF2K7TM.mjs";
21
22
  import "./chunk-DLIRSHV6.mjs";
22
23
  import "./chunk-HBL4PM5Q.mjs";
23
- import "./chunk-645RNF2Y.mjs";
24
+ import "./chunk-FZ42SO3Q.mjs";
24
25
  import "./chunk-WZYKRD7T.mjs";
25
26
  import "./chunk-KRD6H754.mjs";
26
27
  export {
@@ -35,6 +36,7 @@ export {
35
36
  readPendingAuthClaim,
36
37
  readStatusBanner,
37
38
  registerAuthCommands,
39
+ reportApprovalLinkShown,
38
40
  reportSetupCompleted,
39
41
  resolvePendingAuthClaimForResume,
40
42
  statusBannerLine
@@ -3,11 +3,11 @@ import {
3
3
  } from "./chunk-7I4B6V2S.mjs";
4
4
  import {
5
5
  DeeplineClient
6
- } from "./chunk-2FTUPGTN.mjs";
6
+ } from "./chunk-2AYWC63S.mjs";
7
7
  import {
8
8
  iterateCursorPages,
9
9
  requireBillingIdempotencyKey
10
- } from "./chunk-S7UEKKOX.mjs";
10
+ } from "./chunk-DIDWIPMA.mjs";
11
11
  import "./chunk-L2VKAASU.mjs";
12
12
  import "./chunk-NELMCOWK.mjs";
13
13
  import "./chunk-S3A4IXBQ.mjs";
@@ -18,9 +18,9 @@ import {
18
18
  openInBrowser,
19
19
  printCommandEnvelope,
20
20
  shouldEmitJson
21
- } from "./chunk-7HTWT3Z4.mjs";
22
- import "./chunk-75DAGCEX.mjs";
23
- import "./chunk-M5USVQ33.mjs";
21
+ } from "./chunk-53LLOGNV.mjs";
22
+ import "./chunk-TXFURKHD.mjs";
23
+ import "./chunk-T7EWDIVM.mjs";
24
24
  import {
25
25
  AuthError,
26
26
  ConfigError
@@ -29,7 +29,7 @@ import "./chunk-DLIRSHV6.mjs";
29
29
  import {
30
30
  DeeplineError
31
31
  } from "./chunk-HBL4PM5Q.mjs";
32
- import "./chunk-645RNF2Y.mjs";
32
+ import "./chunk-FZ42SO3Q.mjs";
33
33
  import "./chunk-WZYKRD7T.mjs";
34
34
  import "./chunk-KRD6H754.mjs";
35
35