deepline 0.3.470 → 0.3.472

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 (157) hide show
  1. package/dist/bundling-sources/sdk/src/client-core.ts +14 -0
  2. package/dist/bundling-sources/sdk/src/index.ts +2 -0
  3. package/dist/bundling-sources/sdk/src/plays/run-request.ts +1 -0
  4. package/dist/bundling-sources/sdk/src/release.ts +1 -1
  5. package/dist/bundling-sources/sdk/src/types.ts +29 -0
  6. package/dist/bundling-sources/shared_libs/play-runtime/context.ts +3 -1
  7. package/dist/bundling-sources/shared_libs/play-runtime/play-admission-outcome.ts +34 -8
  8. package/dist/bundling-sources/shared_libs/play-runtime/scheduler-backends/postgres.ts +131 -22
  9. package/dist/bundling-sources/shared_libs/plays/authoring-contract.ts +36 -1
  10. package/dist/cli/{auth-7J52UEWO.mjs → auth-35DAEPHC.mjs} +5 -5
  11. package/dist/cli/auth-Q5TM66UI.js +41 -0
  12. package/dist/cli/{billing-ASNWVDQG.js → billing-5ED5X2IO.js} +82 -81
  13. package/dist/cli/{billing-ORB3UZ73.mjs → billing-CXVBJEC4.mjs} +9 -8
  14. package/dist/cli/{chunk-4BQQ3Q3J.js → chunk-2DND7LLL.js} +8 -8
  15. package/dist/cli/{chunk-GDFO3ERN.js → chunk-2G4R4APL.js} +2 -2
  16. package/dist/cli/{chunk-RVQ333NB.mjs → chunk-2S36YV2K.mjs} +1 -1
  17. package/dist/cli/{chunk-EM2E7YIS.js → chunk-3L76SFGN.js} +53 -53
  18. package/dist/cli/{chunk-QG7UPPOK.mjs → chunk-4NFBYW7X.mjs} +3 -3
  19. package/dist/cli/{chunk-7WILY2XM.mjs → chunk-52VOORHM.mjs} +2 -2
  20. package/dist/cli/{chunk-CNQBCLQP.js → chunk-5FHU67AT.js} +3 -3
  21. package/dist/cli/{chunk-6B7XLHIE.mjs → chunk-6PKONIIP.mjs} +4 -4
  22. package/dist/cli/{chunk-HNP5V5BN.js → chunk-6ZTSHKJF.js} +25 -7
  23. package/dist/cli/{chunk-Y4OE46HH.js → chunk-7KAS4QOW.js} +112 -107
  24. package/dist/cli/{chunk-SHB7BUNQ.mjs → chunk-C5PY2PP6.mjs} +3 -3
  25. package/dist/cli/{chunk-CTDWQYBW.mjs → chunk-CFDQZQE2.mjs} +2 -2
  26. package/dist/cli/{chunk-262PYO4I.mjs → chunk-FHIO7WI2.mjs} +3 -3
  27. package/dist/cli/{chunk-6R5UKWRW.js → chunk-GJPRBELO.js} +16 -16
  28. package/dist/cli/{chunk-57F5VKHV.js → chunk-H7YFUC3J.js} +8 -8
  29. package/dist/cli/{chunk-F6OB5L74.js → chunk-HBVT4FW5.js} +6 -6
  30. package/dist/cli/{chunk-C7EA2VNR.js → chunk-IIQ6O5F3.js} +5 -5
  31. package/dist/cli/{chunk-3P4WOCRB.mjs → chunk-IPJ27SD2.mjs} +5 -5
  32. package/dist/cli/{chunk-JKVRBCZL.js → chunk-JDMR33HS.js} +1 -0
  33. package/dist/cli/{chunk-DSOTGAXS.mjs → chunk-JRZW4LWK.mjs} +1 -1
  34. package/dist/cli/{chunk-VL7OL7YR.mjs → chunk-KQJHIVCE.mjs} +1 -1
  35. package/dist/cli/{chunk-PWXHZPHK.js → chunk-L3AXQXNT.js} +10 -10
  36. package/dist/cli/{chunk-A7THVTRN.js → chunk-LQUOZGM6.js} +51 -51
  37. package/dist/cli/{chunk-YTFCKCII.js → chunk-M475BQ77.js} +3 -3
  38. package/dist/cli/{chunk-YBDQUVDE.mjs → chunk-MRZ7AO72.mjs} +10 -10
  39. package/dist/cli/{chunk-FAG4DFUC.mjs → chunk-NELMCOWK.mjs} +1 -0
  40. package/dist/cli/{chunk-SOME764Z.mjs → chunk-NZBZFEVA.mjs} +4 -4
  41. package/dist/cli/{chunk-ETTUFFBS.js → chunk-ODAARZSK.js} +36 -36
  42. package/dist/cli/{chunk-SETIOXN4.mjs → chunk-OMPW5ELS.mjs} +1 -1
  43. package/dist/cli/{chunk-NNCDHMCT.js → chunk-QLVYYDUI.js} +26 -26
  44. package/dist/cli/{chunk-SXQZYTUW.mjs → chunk-QSCLOPWR.mjs} +1 -1
  45. package/dist/cli/{chunk-PJX7BA7T.mjs → chunk-R6L6JRDR.mjs} +2 -2
  46. package/dist/cli/{chunk-3XLJPLXZ.mjs → chunk-R73LE2IM.mjs} +1 -1
  47. package/dist/cli/{chunk-F2XK4UN6.js → chunk-RDOPZK7A.js} +3 -3
  48. package/dist/cli/{chunk-44UR3BU2.js → chunk-RMQB72WW.js} +14 -14
  49. package/dist/cli/{chunk-D464JW3N.mjs → chunk-RZHUHL53.mjs} +19 -1
  50. package/dist/cli/{chunk-VBKN6ISP.js → chunk-SBPI7AEB.js} +93 -93
  51. package/dist/cli/{chunk-ORO2GFH4.js → chunk-SKVMC6K6.js} +5 -5
  52. package/dist/cli/{chunk-AGIEKE3L.js → chunk-SYWOSAW7.js} +4 -4
  53. package/dist/cli/{chunk-YFKOA4HW.mjs → chunk-T5H7ETIM.mjs} +4 -4
  54. package/dist/cli/{chunk-5ADROBCY.mjs → chunk-TMMODGPV.mjs} +2 -2
  55. package/dist/cli/{chunk-NSAKJQLX.js → chunk-UKKCS6Z4.js} +1 -1
  56. package/dist/cli/{chunk-KBNAI5BY.js → chunk-UPXGN62E.js} +21 -21
  57. package/dist/cli/{chunk-SV3B6KW4.mjs → chunk-UXFUD2MB.mjs} +5 -5
  58. package/dist/cli/{chunk-N72VIY7R.js → chunk-VDHDTXCK.js} +2 -2
  59. package/dist/cli/{chunk-MXAB4W6E.js → chunk-XSSIBO74.js} +8 -8
  60. package/dist/cli/{chunk-QW6HNDS7.mjs → chunk-YK64LQPQ.mjs} +7 -2
  61. package/dist/cli/{chunk-GLSFZYZB.mjs → chunk-YMB2CD55.mjs} +1 -1
  62. package/dist/cli/{chunk-F4L7WMLK.mjs → chunk-YNW47NOJ.mjs} +2 -2
  63. package/dist/cli/{chunk-FVYAEBGO.mjs → chunk-YUNPYX5T.mjs} +25 -7
  64. package/dist/cli/{chunk-WG3KGAII.js → chunk-Z52WEIBR.js} +19 -1
  65. package/dist/cli/{chunk-BWLXHUKH.mjs → chunk-ZZQIS3TH.mjs} +3 -3
  66. package/dist/cli/command-docs.js +2 -2
  67. package/dist/cli/command-docs.mjs +1 -1
  68. package/dist/cli/{csv-D3JPZVUN.mjs → csv-OSDYY3QW.mjs} +4 -4
  69. package/dist/cli/{csv-FSXDIWBP.js → csv-SQJQM3B2.js} +13 -13
  70. package/dist/cli/{db-3UWDQXLF.mjs → db-2M6BU6G5.mjs} +7 -7
  71. package/dist/cli/{db-DZQUPWI3.js → db-ATDYXAD5.js} +28 -28
  72. package/dist/cli/describe-37QXXDCF.js +48 -0
  73. package/dist/cli/{describe-APG2GVFG.mjs → describe-WIAJCWF3.mjs} +18 -18
  74. package/dist/cli/describe-core.d.mts +3 -3
  75. package/dist/cli/describe-core.d.ts +3 -3
  76. package/dist/cli/{executions-TDUX3575.mjs → executions-2J6CCJL2.mjs} +7 -7
  77. package/dist/cli/{executions-BFAPMPG2.js → executions-Y32LMYH6.js} +9 -9
  78. package/dist/cli/{feedback-BMV7PUDL.mjs → feedback-L4AVIMGI.mjs} +4 -4
  79. package/dist/cli/{feedback-2KNPCYTH.js → feedback-RXQLS6QU.js} +8 -8
  80. package/dist/cli/git-JGUR335T.js +25 -0
  81. package/dist/cli/{git-KBVONNE5.mjs → git-V3K77AWH.mjs} +5 -5
  82. package/dist/cli/index.js +139 -139
  83. package/dist/cli/index.mjs +41 -41
  84. package/dist/cli/{legacy-noops-LE6LJO7F.js → legacy-noops-B2KJT4CZ.js} +8 -8
  85. package/dist/cli/{legacy-noops-GZDRRUFE.mjs → legacy-noops-LOGMYOY5.mjs} +5 -5
  86. package/dist/cli/{monitors-CW22L3VL.mjs → monitors-5ETSB7S7.mjs} +8 -8
  87. package/dist/cli/{monitors-PGBHMKOU.js → monitors-A5WYUCGD.js} +92 -92
  88. package/dist/cli/{org-3V2VAH5D.js → org-7EZDWYKK.js} +73 -73
  89. package/dist/cli/{org-K5C23LAV.mjs → org-BJOAUSXL.mjs} +7 -7
  90. package/dist/cli/{pages-7V2C7GWU.mjs → pages-3BYGBTVK.mjs} +7 -7
  91. package/dist/cli/{pages-2F73VVWC.js → pages-45VNTEQU.js} +18 -18
  92. package/dist/cli/{play-62KSZGJQ.js → play-5KER3JFU.js} +586 -518
  93. package/dist/cli/{play-VT7TPJUH.mjs → play-R7JQV533.mjs} +93 -25
  94. package/dist/cli/{providers-3SI3QBT3.js → providers-OHMZ6QIF.js} +10 -10
  95. package/dist/cli/{providers-LX562YG7.mjs → providers-RMFCE6MM.mjs} +7 -7
  96. package/dist/cli/{quickstart-5HA5IFTB.js → quickstart-GNRE4SAT.js} +6 -6
  97. package/dist/cli/{quickstart-ADE7FV26.mjs → quickstart-IHR4VC5K.mjs} +4 -4
  98. package/dist/cli/{run-4ZV4UDKP.js → run-77QIMUUV.js} +37 -37
  99. package/dist/cli/{run-OITZJ6QZ.mjs → run-Y4MIRFJY.mjs} +23 -23
  100. package/dist/cli/{search-BI5VZQMD.mjs → search-24YKTHMK.mjs} +8 -8
  101. package/dist/cli/search-S3VO2UKV.js +32 -0
  102. package/dist/cli/{secrets-A2R36AZ6.mjs → secrets-KHX62AWC.mjs} +7 -7
  103. package/dist/cli/{secrets-UAKNTMYB.js → secrets-SSEBT3IS.js} +16 -16
  104. package/dist/cli/{sessions-3JM3OXME.js → sessions-E6KNWYEH.js} +6 -6
  105. package/dist/cli/{sessions-PPOFUFBW.mjs → sessions-H7T25HGE.mjs} +5 -5
  106. package/dist/cli/{settings-C4M5HOD4.js → settings-GXUYF5G7.js} +79 -79
  107. package/dist/cli/{settings-PZA6TBOL.mjs → settings-XSJG6M32.mjs} +12 -12
  108. package/dist/cli/{setup-245XVTBR.mjs → setup-GD7IOD4U.mjs} +9 -9
  109. package/dist/cli/{setup-TY2OSI6D.js → setup-JP5YPIA4.js} +44 -44
  110. package/dist/cli/skills-C4KTW3US.js +31 -0
  111. package/dist/cli/{skills-ZAN23KLR.mjs → skills-HLHE3ENN.mjs} +7 -7
  112. package/dist/cli/tools-KS7JMRK6.js +55 -0
  113. package/dist/cli/{tools-GG4KDQBM.mjs → tools-Q4XIQX7W.mjs} +17 -17
  114. package/dist/cli/{update-XKXIL6DU.mjs → update-3KRMR2QJ.mjs} +9 -9
  115. package/dist/cli/update-GYTQYK2W.js +33 -0
  116. package/dist/cli/{workflow-VN7M3D2U.js → workflow-NMUESL3O.js} +18 -18
  117. package/dist/cli/{workflow-LVQVTFUJ.mjs → workflow-NOZ7WFEY.mjs} +8 -8
  118. package/dist/{client-CdJR18SJ.d.mts → client-C9bJ0QXu.d.mts} +1 -1
  119. package/dist/{client-B3tlWsw7.d.ts → client-CuNH54w3.d.ts} +1 -1
  120. package/dist/{client-core-CxHBKfE5.d.ts → client-core-C8Q6DKga.d.ts} +38 -2
  121. package/dist/{client-core-ByJD7QXj.d.mts → client-core-CSiXbe2n.d.mts} +38 -2
  122. package/dist/{compiler-manifest-D5dARg3M.d.ts → compiler-manifest-Zwm9yqOA.d.mts} +39 -0
  123. package/dist/{compiler-manifest-D5dARg3M.d.mts → compiler-manifest-Zwm9yqOA.d.ts} +39 -0
  124. package/dist/{errors-BtHHzWL8.d.ts → errors-CsYwlpn4.d.ts} +1 -1
  125. package/dist/{errors-BveMVPwA.d.mts → errors-nEsqNLL8.d.mts} +1 -1
  126. package/dist/{index-C6sovoYP.d.ts → index-9pUZqkPH.d.ts} +1 -1
  127. package/dist/{index-BboApDGD.d.mts → index-CXF2jtza.d.mts} +1 -1
  128. package/dist/index.d.mts +7 -7
  129. package/dist/index.d.ts +7 -7
  130. package/dist/index.js +10 -10
  131. package/dist/index.mjs +7 -7
  132. package/dist/install-integrity.json +112 -112
  133. package/dist/plays/bundle-play-file.d.mts +3 -3
  134. package/dist/plays/bundle-play-file.d.ts +3 -3
  135. package/dist/plays/bundle-play-file.mjs +1 -1
  136. package/dist/plays/play-description.d.mts +2 -2
  137. package/dist/plays/play-description.d.ts +2 -2
  138. package/dist/plays/run-request.d.mts +2 -2
  139. package/dist/plays/run-request.d.ts +2 -2
  140. package/dist/plays/run-request.js +2 -2
  141. package/dist/plays/run-request.mjs +1 -1
  142. package/dist/release.d.mts +1 -1
  143. package/dist/release.d.ts +1 -1
  144. package/dist/release.js +2 -2
  145. package/dist/release.mjs +1 -1
  146. package/dist/server.d.mts +4 -4
  147. package/dist/server.d.ts +4 -4
  148. package/dist/server.js +6 -6
  149. package/dist/server.mjs +4 -4
  150. package/package.json +1 -1
  151. package/dist/cli/auth-4DBOZZDX.js +0 -41
  152. package/dist/cli/describe-2ENX4O3U.js +0 -48
  153. package/dist/cli/git-LUW3GBSD.js +0 -25
  154. package/dist/cli/search-PXFM3MGW.js +0 -32
  155. package/dist/cli/skills-UYNRYDDI.js +0 -31
  156. package/dist/cli/tools-OBESOBG7.js +0 -55
  157. package/dist/cli/update-2VMXTKBN.js +0 -33
@@ -1,12 +1,12 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } async function _asyncNullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return await rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var _chunkORO2GFH4js = require('./chunk-ORO2GFH4.js');
3
+ var _chunkSKVMC6K6js = require('./chunk-SKVMC6K6.js');
4
4
 
5
5
 
6
6
 
7
- var _chunkY4OE46HHjs = require('./chunk-Y4OE46HH.js');
7
+ var _chunk7KAS4QOWjs = require('./chunk-7KAS4QOW.js');
8
8
  require('./chunk-E4CABWXL.js');
9
- require('./chunk-JKVRBCZL.js');
9
+ require('./chunk-JDMR33HS.js');
10
10
  require('./chunk-NMU3VR5U.js');
11
11
  require('./chunk-XDVT3GOM.js');
12
12
 
@@ -15,9 +15,9 @@ require('./chunk-XDVT3GOM.js');
15
15
 
16
16
 
17
17
 
18
- var _chunk57F5VKHVjs = require('./chunk-57F5VKHV.js');
19
- require('./chunk-CNQBCLQP.js');
20
- require('./chunk-AGIEKE3L.js');
18
+ var _chunkH7YFUC3Jjs = require('./chunk-H7YFUC3J.js');
19
+ require('./chunk-5FHU67AT.js');
20
+ require('./chunk-SYWOSAW7.js');
21
21
 
22
22
 
23
23
 
@@ -26,7 +26,7 @@ require('./chunk-XNYIZMNQ.js');
26
26
 
27
27
 
28
28
  var _chunkDIAWYWT5js = require('./chunk-DIAWYWT5.js');
29
- require('./chunk-NSAKJQLX.js');
29
+ require('./chunk-UKKCS6Z4.js');
30
30
  require('./chunk-OG64RBAC.js');
31
31
  require('./chunk-COGTRVWW.js');
32
32
 
@@ -75,7 +75,7 @@ function reportBillingFailure(failure, options) {
75
75
  if (failure.next) {
76
76
  textLines.push(`Next: ${failure.next}`);
77
77
  }
78
- _chunk57F5VKHVjs.printCommandEnvelope.call(void 0,
78
+ _chunkH7YFUC3Jjs.printCommandEnvelope.call(void 0,
79
79
  {
80
80
  ok: false,
81
81
  exitCode: failure.exitCode,
@@ -96,7 +96,7 @@ function parseTopUpCredits(raw) {
96
96
  return parsed;
97
97
  }
98
98
  function topUpIdempotencyKey(raw) {
99
- return raw === void 0 ? `cli_topup:${Date.now()}:${_crypto.randomUUID.call(void 0, )}` : _chunkY4OE46HHjs.requireBillingIdempotencyKey.call(void 0, raw);
99
+ return raw === void 0 ? `cli_topup:${Date.now()}:${_crypto.randomUUID.call(void 0, )}` : _chunk7KAS4QOWjs.requireBillingIdempotencyKey.call(void 0, raw);
100
100
  }
101
101
  function targetBillingIdempotencyKey(raw) {
102
102
  return typeof raw === "string" ? raw : `cli_target_billing:${Date.now()}:${_crypto.randomUUID.call(void 0, )}`;
@@ -315,7 +315,7 @@ function defaultLedgerExportPath() {
315
315
  );
316
316
  }
317
317
  async function handleBalance(options) {
318
- const { http } = _chunk57F5VKHVjs.getAuthedHttpClient.call(void 0, );
318
+ const { http } = _chunkH7YFUC3Jjs.getAuthedHttpClient.call(void 0, );
319
319
  const payload = await http.get(
320
320
  "/api/v2/billing/balance"
321
321
  );
@@ -399,7 +399,7 @@ async function handleBalance(options) {
399
399
  ...options.verbose ? detail : [],
400
400
  ...lines.slice(1)
401
401
  ];
402
- _chunk57F5VKHVjs.printCommandEnvelope.call(void 0,
402
+ _chunkH7YFUC3Jjs.printCommandEnvelope.call(void 0,
403
403
  {
404
404
  ...payload,
405
405
  ...recovery ? { recovery } : {},
@@ -435,7 +435,7 @@ async function handleUsageEvents(options) {
435
435
  );
436
436
  return;
437
437
  }
438
- const client = new (0, _chunkORO2GFH4js.DeeplineClient)();
438
+ const client = new (0, _chunkSKVMC6K6js.DeeplineClient)();
439
439
  let payload;
440
440
  try {
441
441
  payload = await client.billing.usageEvents({
@@ -466,7 +466,7 @@ async function handleUsageEvents(options) {
466
466
  ),
467
467
  ...nextPage ? [`Next page: ${nextPage}`] : []
468
468
  ];
469
- _chunk57F5VKHVjs.printCommandEnvelope.call(void 0,
469
+ _chunkH7YFUC3Jjs.printCommandEnvelope.call(void 0,
470
470
  {
471
471
  ...payload,
472
472
  next: { page: nextPage },
@@ -477,7 +477,7 @@ async function handleUsageEvents(options) {
477
477
  }
478
478
  async function handleUsage(options) {
479
479
  if (options.events) return handleUsageEvents(options);
480
- const { http } = _chunk57F5VKHVjs.getAuthedHttpClient.call(void 0, );
480
+ const { http } = _chunkH7YFUC3Jjs.getAuthedHttpClient.call(void 0, );
481
481
  const params = new URLSearchParams();
482
482
  if (options.requestId !== void 0) {
483
483
  const requestId = options.requestId.trim();
@@ -558,7 +558,7 @@ async function handleUsage(options) {
558
558
  "No continuation is available for this view. Use deepline billing ledger export all for the full ledger."
559
559
  ] : []
560
560
  ];
561
- _chunk57F5VKHVjs.printCommandEnvelope.call(void 0,
561
+ _chunkH7YFUC3Jjs.printCommandEnvelope.call(void 0,
562
562
  {
563
563
  ...payload,
564
564
  recent: {
@@ -572,7 +572,7 @@ async function handleUsage(options) {
572
572
  );
573
573
  }
574
574
  async function handleLimit(options) {
575
- const { http } = _chunk57F5VKHVjs.getAuthedHttpClient.call(void 0, );
575
+ const { http } = _chunkH7YFUC3Jjs.getAuthedHttpClient.call(void 0, );
576
576
  const payload = await http.get(
577
577
  "/api/v2/billing/limit"
578
578
  );
@@ -580,7 +580,7 @@ async function handleLimit(options) {
580
580
  `Monthly usage cap: ${_nullishCoalesce(payload.monthly_credits_limit, () => ( "(unknown)"))}`,
581
581
  "Enforcement: checked before new calls; in-flight work can exceed the cap."
582
582
  ] : ["Monthly usage cap: off"];
583
- _chunk57F5VKHVjs.printCommandEnvelope.call(void 0,
583
+ _chunkH7YFUC3Jjs.printCommandEnvelope.call(void 0,
584
584
  {
585
585
  ...payload,
586
586
  render: { sections: [{ title: "billing limit", lines }] }
@@ -589,12 +589,12 @@ async function handleLimit(options) {
589
589
  );
590
590
  }
591
591
  async function handleSetLimit(credits, options) {
592
- const { http } = _chunk57F5VKHVjs.getAuthedHttpClient.call(void 0, );
592
+ const { http } = _chunkH7YFUC3Jjs.getAuthedHttpClient.call(void 0, );
593
593
  const payload = await http.request("/api/v2/billing/limit", {
594
594
  method: "PUT",
595
595
  body: { monthly_credits_limit: Number.parseInt(credits, 10) }
596
596
  });
597
- _chunk57F5VKHVjs.printCommandEnvelope.call(void 0,
597
+ _chunkH7YFUC3Jjs.printCommandEnvelope.call(void 0,
598
598
  {
599
599
  ...payload,
600
600
  render: {
@@ -610,11 +610,11 @@ async function handleSetLimit(credits, options) {
610
610
  );
611
611
  }
612
612
  async function handleLimitOff(options) {
613
- const { http } = _chunk57F5VKHVjs.getAuthedHttpClient.call(void 0, );
613
+ const { http } = _chunkH7YFUC3Jjs.getAuthedHttpClient.call(void 0, );
614
614
  const payload = await http.request("/api/v2/billing/limit", {
615
615
  method: "DELETE"
616
616
  });
617
- _chunk57F5VKHVjs.printCommandEnvelope.call(void 0,
617
+ _chunkH7YFUC3Jjs.printCommandEnvelope.call(void 0,
618
618
  {
619
619
  ...payload,
620
620
  render: {
@@ -634,7 +634,7 @@ async function exportLedger(http, outputPath, options) {
634
634
  let initialized = false;
635
635
  let pageNumber = 0;
636
636
  console.error(`Exporting billing ledger to ${outputPath}`);
637
- for await (const entries of _chunkY4OE46HHjs.iterateCursorPages.call(void 0, async (cursor) => {
637
+ for await (const entries of _chunk7KAS4QOWjs.iterateCursorPages.call(void 0, async (cursor) => {
638
638
  pageNumber += 1;
639
639
  console.error(
640
640
  `Fetching page ${pageNumber}; ${summary.row_count} rows written.`
@@ -673,7 +673,7 @@ async function exportLedger(http, outputPath, options) {
673
673
  return summary;
674
674
  }
675
675
  async function handleHistory(options) {
676
- const { http } = _chunk57F5VKHVjs.getAuthedHttpClient.call(void 0, );
676
+ const { http } = _chunkH7YFUC3Jjs.getAuthedHttpClient.call(void 0, );
677
677
  const windows = {
678
678
  "1d": 86400,
679
679
  "1w": 604800,
@@ -685,10 +685,10 @@ async function handleHistory(options) {
685
685
  process.cwd(),
686
686
  "deepline",
687
687
  "data",
688
- _chunk57F5VKHVjs.createTimestampedName.call(void 0, `billing-history-${options.time}`, "csv")
688
+ _chunkH7YFUC3Jjs.createTimestampedName.call(void 0, `billing-history-${options.time}`, "csv")
689
689
  );
690
690
  const summary = await exportLedger(http, outputPath, { sinceAt });
691
- _chunk57F5VKHVjs.printCommandEnvelope.call(void 0,
691
+ _chunkH7YFUC3Jjs.printCommandEnvelope.call(void 0,
692
692
  {
693
693
  output_path: outputPath,
694
694
  row_count: summary.row_count,
@@ -725,14 +725,14 @@ async function handleLedgerExportAll(options) {
725
725
  );
726
726
  return;
727
727
  }
728
- const { http } = _chunk57F5VKHVjs.getAuthedHttpClient.call(void 0, );
728
+ const { http } = _chunkH7YFUC3Jjs.getAuthedHttpClient.call(void 0, );
729
729
  const outputPath = options.output ? _path.resolve.call(void 0, String(options.output)) : defaultLedgerExportPath();
730
730
  const summary = await exportLedger(http, outputPath, {
731
731
  sinceAt,
732
732
  runId: options.runId,
733
733
  operation: options.operation
734
734
  });
735
- _chunk57F5VKHVjs.printCommandEnvelope.call(void 0,
735
+ _chunkH7YFUC3Jjs.printCommandEnvelope.call(void 0,
736
736
  {
737
737
  output_path: outputPath,
738
738
  row_count: summary.row_count,
@@ -768,10 +768,11 @@ function planPriceText(priceUsd, priceInterval) {
768
768
  return `$${priceUsd}${priceInterval ? `/${priceInterval}` : ""}`;
769
769
  }
770
770
  function targetPlanLine(plan) {
771
- return `${plan.name} (${plan.sku}) | ${planPriceText(plan.recurring_price_usd, plan.interval)} | ${plan.included_credits} included credits/month | $${plan.purchased_credit_price_usd}/purchased credit | ${plan.acquisition_enabled ? "available" : "unavailable"}`;
771
+ const firstMonth = plan.first_month_price_usd != null ? ` (first month $${plan.first_month_price_usd})` : "";
772
+ return `${plan.name} (${plan.sku}) | ${planPriceText(plan.recurring_price_usd, plan.interval)}${firstMonth} | ${plan.included_credits} included credits/month | $${plan.purchased_credit_price_usd}/purchased credit | ${plan.acquisition_enabled ? "available" : "unavailable"}`;
772
773
  }
773
774
  async function handlePlans(options) {
774
- const client = new (0, _chunkORO2GFH4js.DeeplineClient)();
775
+ const client = new (0, _chunkSKVMC6K6js.DeeplineClient)();
775
776
  const payload = await client.billing.targetPlans();
776
777
  const listedCurrentPlan = payload.plans.find(
777
778
  (plan) => plan.sku === payload.current_plan_sku
@@ -784,8 +785,8 @@ async function handlePlans(options) {
784
785
  ...payload.plans.length === 0 ? ["Plans: none available"] : ["Plans:", ...payload.plans.map(targetPlanLine)],
785
786
  "Change plan: deepline billing change-plan <plan_sku>"
786
787
  ];
787
- const legacyPayload = _chunk57F5VKHVjs.shouldEmitJson.call(void 0, options.json) ? await client.billing.plans() : null;
788
- _chunk57F5VKHVjs.printCommandEnvelope.call(void 0,
788
+ const legacyPayload = _chunkH7YFUC3Jjs.shouldEmitJson.call(void 0, options.json) ? await client.billing.plans() : null;
789
+ _chunkH7YFUC3Jjs.printCommandEnvelope.call(void 0,
789
790
  {
790
791
  ..._nullishCoalesce(legacyPayload, () => ( payload)),
791
792
  ...legacyPayload ? { target_billing: payload } : {},
@@ -795,7 +796,7 @@ async function handlePlans(options) {
795
796
  );
796
797
  }
797
798
  async function handleSubscribe(planVersionId, options) {
798
- const { http } = _chunk57F5VKHVjs.getAuthedHttpClient.call(void 0, );
799
+ const { http } = _chunkH7YFUC3Jjs.getAuthedHttpClient.call(void 0, );
799
800
  const payload = await http.request(
800
801
  "/api/v2/billing/subscription/checkout",
801
802
  {
@@ -804,8 +805,8 @@ async function handleSubscribe(planVersionId, options) {
804
805
  }
805
806
  );
806
807
  const url = String(payload.checkout_url || "");
807
- if (!options.json && options.open !== false && url) _chunk57F5VKHVjs.openInBrowser.call(void 0, url);
808
- _chunk57F5VKHVjs.printCommandEnvelope.call(void 0,
808
+ if (!options.json && options.open !== false && url) _chunkH7YFUC3Jjs.openInBrowser.call(void 0, url);
809
+ _chunkH7YFUC3Jjs.printCommandEnvelope.call(void 0,
809
810
  {
810
811
  ...payload,
811
812
  render: {
@@ -821,7 +822,7 @@ async function handleSubscribe(planVersionId, options) {
821
822
  );
822
823
  }
823
824
  async function handleSubscriptionStatus(options) {
824
- const client = new (0, _chunkORO2GFH4js.DeeplineClient)();
825
+ const client = new (0, _chunkSKVMC6K6js.DeeplineClient)();
825
826
  const payload = await client.billing.subscription.status();
826
827
  const pools = _nullishCoalesce(payload.credit_pools, () => ( []));
827
828
  const lines = [
@@ -841,7 +842,7 @@ async function handleSubscriptionStatus(options) {
841
842
  ],
842
843
  `Assigned by: ${_nullishCoalesce(payload.assigned_by, () => ( "default"))}`
843
844
  ];
844
- _chunk57F5VKHVjs.printCommandEnvelope.call(void 0,
845
+ _chunkH7YFUC3Jjs.printCommandEnvelope.call(void 0,
845
846
  {
846
847
  ...payload,
847
848
  render: { sections: [{ title: "billing subscription", lines }] }
@@ -850,7 +851,7 @@ async function handleSubscriptionStatus(options) {
850
851
  );
851
852
  }
852
853
  async function handleSubscriptionCancel(options) {
853
- const client = new (0, _chunkORO2GFH4js.DeeplineClient)();
854
+ const client = new (0, _chunkSKVMC6K6js.DeeplineClient)();
854
855
  const action = options.undo ? "undo_cancel" : "cancel";
855
856
  if (options.dryRun) {
856
857
  const status = await client.billing.subscription.status();
@@ -867,7 +868,7 @@ async function handleSubscriptionCancel(options) {
867
868
  return;
868
869
  }
869
870
  const consequence = action === "cancel" ? `Would schedule cancellation at period end${status.current_period_end ? ` (${status.current_period_end})` : ""}. The subscription stays active until then and remaining credits are kept.` : "Would reverse the pending cancellation; the subscription would renew normally.";
870
- _chunk57F5VKHVjs.printCommandEnvelope.call(void 0,
871
+ _chunkH7YFUC3Jjs.printCommandEnvelope.call(void 0,
871
872
  {
872
873
  ok: true,
873
874
  dry_run: true,
@@ -922,7 +923,7 @@ async function handleSubscriptionCancel(options) {
922
923
  "Remaining credits are yours to keep \u2014 cancellation never removes credits.",
923
924
  "Undo with: deepline billing subscription cancel --undo"
924
925
  ];
925
- _chunk57F5VKHVjs.printCommandEnvelope.call(void 0,
926
+ _chunkH7YFUC3Jjs.printCommandEnvelope.call(void 0,
926
927
  {
927
928
  ok: true,
928
929
  ...result,
@@ -976,7 +977,7 @@ async function handleInvoices(options) {
976
977
  return;
977
978
  }
978
979
  }
979
- const client = new (0, _chunkORO2GFH4js.DeeplineClient)();
980
+ const client = new (0, _chunkSKVMC6K6js.DeeplineClient)();
980
981
  let payload;
981
982
  try {
982
983
  payload = await client.billing.invoices.list(
@@ -1005,7 +1006,7 @@ async function handleInvoices(options) {
1005
1006
  url: entry.url
1006
1007
  }))
1007
1008
  } : { ...payload, count: entries.length };
1008
- _chunk57F5VKHVjs.printCommandEnvelope.call(void 0,
1009
+ _chunkH7YFUC3Jjs.printCommandEnvelope.call(void 0,
1009
1010
  {
1010
1011
  ...envelope,
1011
1012
  render: { sections: [{ title: "billing invoices", lines }] }
@@ -1014,7 +1015,7 @@ async function handleInvoices(options) {
1014
1015
  );
1015
1016
  }
1016
1017
  async function handleCheckout(options) {
1017
- const { http } = _chunk57F5VKHVjs.getAuthedHttpClient.call(void 0, );
1018
+ const { http } = _chunkH7YFUC3Jjs.getAuthedHttpClient.call(void 0, );
1018
1019
  const payload = await http.post(
1019
1020
  "/api/v2/billing/checkout",
1020
1021
  {
@@ -1024,8 +1025,8 @@ async function handleCheckout(options) {
1024
1025
  }
1025
1026
  );
1026
1027
  const url = String(payload.url || payload.checkout_url || "");
1027
- if (!options.json && !options.noOpen && url) _chunk57F5VKHVjs.openInBrowser.call(void 0, url);
1028
- _chunk57F5VKHVjs.printCommandEnvelope.call(void 0,
1028
+ if (!options.json && !options.noOpen && url) _chunkH7YFUC3Jjs.openInBrowser.call(void 0, url);
1029
+ _chunkH7YFUC3Jjs.printCommandEnvelope.call(void 0,
1029
1030
  {
1030
1031
  ...payload,
1031
1032
  render: {
@@ -1070,7 +1071,7 @@ async function handleTopUp(creditsRaw, options) {
1070
1071
  return;
1071
1072
  }
1072
1073
  if (options.dryRun) {
1073
- _chunk57F5VKHVjs.printCommandEnvelope.call(void 0,
1074
+ _chunkH7YFUC3Jjs.printCommandEnvelope.call(void 0,
1074
1075
  {
1075
1076
  ok: true,
1076
1077
  dry_run: true,
@@ -1100,7 +1101,7 @@ async function handleTopUp(creditsRaw, options) {
1100
1101
  );
1101
1102
  return;
1102
1103
  }
1103
- const client = new (0, _chunkORO2GFH4js.DeeplineClient)();
1104
+ const client = new (0, _chunkSKVMC6K6js.DeeplineClient)();
1104
1105
  let payload;
1105
1106
  try {
1106
1107
  payload = await client.billing.topUpWithReceipt({
@@ -1117,7 +1118,7 @@ async function handleTopUp(creditsRaw, options) {
1117
1118
  return;
1118
1119
  }
1119
1120
  if (payload.status === "pending") {
1120
- _chunk57F5VKHVjs.printCommandEnvelope.call(void 0,
1121
+ _chunkH7YFUC3Jjs.printCommandEnvelope.call(void 0,
1121
1122
  {
1122
1123
  ok: true,
1123
1124
  ...payload,
@@ -1181,17 +1182,17 @@ async function handleTopUp(creditsRaw, options) {
1181
1182
  ]
1182
1183
  }
1183
1184
  };
1184
- _chunk57F5VKHVjs.printCommandEnvelope.call(void 0, options.compact ? compactEnvelope : fullEnvelope, {
1185
+ _chunkH7YFUC3Jjs.printCommandEnvelope.call(void 0, options.compact ? compactEnvelope : fullEnvelope, {
1185
1186
  json: options.json
1186
1187
  });
1187
1188
  }
1188
1189
  async function handleTargetStatus(options) {
1189
- const client = new (0, _chunkORO2GFH4js.DeeplineClient)();
1190
+ const client = new (0, _chunkSKVMC6K6js.DeeplineClient)();
1190
1191
  const payload = await client.billing.targetStatus();
1191
1192
  const balanceCommand = "deepline billing balance";
1192
1193
  const recentChargesCommand = "deepline billing usage --limit 5";
1193
1194
  const exactChargeCommand = "deepline billing usage --request-id <job_id>";
1194
- _chunk57F5VKHVjs.printCommandEnvelope.call(void 0,
1195
+ _chunkH7YFUC3Jjs.printCommandEnvelope.call(void 0,
1195
1196
  {
1196
1197
  ok: true,
1197
1198
  ...payload,
@@ -1227,10 +1228,10 @@ function formatComputeMinutes(minutes) {
1227
1228
  return minutes < 120 ? `${Number(minutes.toFixed(1)).toLocaleString("en-US")} minutes` : `${Number((minutes / 60).toFixed(1)).toLocaleString("en-US")} hours`;
1228
1229
  }
1229
1230
  async function handleIncludedCompute(options) {
1230
- const client = new (0, _chunkORO2GFH4js.DeeplineClient)();
1231
+ const client = new (0, _chunkSKVMC6K6js.DeeplineClient)();
1231
1232
  const payload = options.enable ? await client.billing.enableIncludedCompute() : await client.billing.includedCompute();
1232
1233
  const plan = `${formatComputeMinutes(payload.plan.included_minutes)} included per month, then ${Math.round(payload.plan.credits_per_minute * 60)} credits/hour`;
1233
- _chunk57F5VKHVjs.printCommandEnvelope.call(void 0,
1234
+ _chunkH7YFUC3Jjs.printCommandEnvelope.call(void 0,
1234
1235
  {
1235
1236
  ok: true,
1236
1237
  ...payload,
@@ -1256,8 +1257,8 @@ async function handleIncludedCompute(options) {
1256
1257
  );
1257
1258
  }
1258
1259
  async function handleEntitlements(options) {
1259
- const payload = await new (0, _chunkORO2GFH4js.DeeplineClient)().billing.entitlements();
1260
- _chunk57F5VKHVjs.printCommandEnvelope.call(void 0,
1260
+ const payload = await new (0, _chunkSKVMC6K6js.DeeplineClient)().billing.entitlements();
1261
+ _chunkH7YFUC3Jjs.printCommandEnvelope.call(void 0,
1261
1262
  {
1262
1263
  ok: true,
1263
1264
  ...payload,
@@ -1290,7 +1291,7 @@ async function handleEntitlements(options) {
1290
1291
  );
1291
1292
  }
1292
1293
  async function handleAutoRechargeStatus(options) {
1293
- const payload = await new (0, _chunkORO2GFH4js.DeeplineClient)().billing.autoRecharge.get();
1294
+ const payload = await new (0, _chunkSKVMC6K6js.DeeplineClient)().billing.autoRecharge.get();
1294
1295
  const state = payload.available ? payload.enabled ? "on" : "off" : "unavailable";
1295
1296
  const lines = [
1296
1297
  `State: ${state}`,
@@ -1300,7 +1301,7 @@ async function handleAutoRechargeStatus(options) {
1300
1301
  `Automatic credit purchase cap: ${payload.purchase_limit_credits} credits per rolling 30 days`
1301
1302
  ] : []
1302
1303
  ];
1303
- _chunk57F5VKHVjs.printCommandEnvelope.call(void 0,
1304
+ _chunkH7YFUC3Jjs.printCommandEnvelope.call(void 0,
1304
1305
  {
1305
1306
  ok: true,
1306
1307
  ...payload,
@@ -1349,7 +1350,7 @@ async function handleAutoRechargeSet(options) {
1349
1350
  }
1350
1351
  const idempotencyKey = targetBillingIdempotencyKey(options.idempotencyKey);
1351
1352
  if (options.dryRun) {
1352
- _chunk57F5VKHVjs.printCommandEnvelope.call(void 0,
1353
+ _chunkH7YFUC3Jjs.printCommandEnvelope.call(void 0,
1353
1354
  {
1354
1355
  ok: true,
1355
1356
  dry_run: true,
@@ -1370,7 +1371,7 @@ async function handleAutoRechargeSet(options) {
1370
1371
  );
1371
1372
  return;
1372
1373
  }
1373
- const payload = await new (0, _chunkORO2GFH4js.DeeplineClient)().billing.autoRecharge.update({
1374
+ const payload = await new (0, _chunkSKVMC6K6js.DeeplineClient)().billing.autoRecharge.update({
1374
1375
  enabled: true,
1375
1376
  thresholdCredits,
1376
1377
  refillToCredits,
@@ -1378,7 +1379,7 @@ async function handleAutoRechargeSet(options) {
1378
1379
  ...rollingLimitCredits !== void 0 ? { purchaseLimitCredits: rollingLimitCredits } : {},
1379
1380
  idempotencyKey
1380
1381
  });
1381
- _chunk57F5VKHVjs.printCommandEnvelope.call(void 0,
1382
+ _chunkH7YFUC3Jjs.printCommandEnvelope.call(void 0,
1382
1383
  { ok: true, idempotency_key: idempotencyKey, ...payload },
1383
1384
  { json: options.json }
1384
1385
  );
@@ -1386,7 +1387,7 @@ async function handleAutoRechargeSet(options) {
1386
1387
  async function handleAutoRechargeOff(options) {
1387
1388
  const idempotencyKey = targetBillingIdempotencyKey(options.idempotencyKey);
1388
1389
  if (options.dryRun) {
1389
- _chunk57F5VKHVjs.printCommandEnvelope.call(void 0,
1390
+ _chunkH7YFUC3Jjs.printCommandEnvelope.call(void 0,
1390
1391
  {
1391
1392
  ok: true,
1392
1393
  dry_run: true,
@@ -1401,11 +1402,11 @@ async function handleAutoRechargeOff(options) {
1401
1402
  );
1402
1403
  return;
1403
1404
  }
1404
- const payload = await new (0, _chunkORO2GFH4js.DeeplineClient)().billing.autoRecharge.update({
1405
+ const payload = await new (0, _chunkSKVMC6K6js.DeeplineClient)().billing.autoRecharge.update({
1405
1406
  enabled: false,
1406
1407
  idempotencyKey
1407
1408
  });
1408
- _chunk57F5VKHVjs.printCommandEnvelope.call(void 0,
1409
+ _chunkH7YFUC3Jjs.printCommandEnvelope.call(void 0,
1409
1410
  { ok: true, idempotency_key: idempotencyKey, ...payload },
1410
1411
  { json: options.json }
1411
1412
  );
@@ -1424,11 +1425,11 @@ async function handleBuyCredits(creditsRaw, options) {
1424
1425
  return;
1425
1426
  }
1426
1427
  const idempotencyKey = targetBillingIdempotencyKey(options.idempotencyKey);
1427
- const payload = await new (0, _chunkORO2GFH4js.DeeplineClient)().billing.purchaseCredits({
1428
+ const payload = await new (0, _chunkSKVMC6K6js.DeeplineClient)().billing.purchaseCredits({
1428
1429
  credits,
1429
1430
  idempotencyKey
1430
1431
  });
1431
- _chunk57F5VKHVjs.printCommandEnvelope.call(void 0,
1432
+ _chunkH7YFUC3Jjs.printCommandEnvelope.call(void 0,
1432
1433
  { ok: true, idempotency_key: idempotencyKey, ...payload },
1433
1434
  { json: options.json }
1434
1435
  );
@@ -1464,7 +1465,7 @@ async function handleTopUpRecover(creditsRaw, options) {
1464
1465
  return;
1465
1466
  }
1466
1467
  if (options.dryRun) {
1467
- _chunk57F5VKHVjs.printCommandEnvelope.call(void 0,
1468
+ _chunkH7YFUC3Jjs.printCommandEnvelope.call(void 0,
1468
1469
  {
1469
1470
  ok: true,
1470
1471
  dry_run: true,
@@ -1477,12 +1478,12 @@ async function handleTopUpRecover(creditsRaw, options) {
1477
1478
  );
1478
1479
  return;
1479
1480
  }
1480
- const payload = await new (0, _chunkORO2GFH4js.DeeplineClient)().billing.recoverCreditPurchase({
1481
+ const payload = await new (0, _chunkSKVMC6K6js.DeeplineClient)().billing.recoverCreditPurchase({
1481
1482
  credits,
1482
1483
  orgId: options.orgId,
1483
1484
  idempotencyKey: options.idempotencyKey
1484
1485
  });
1485
- _chunk57F5VKHVjs.printCommandEnvelope.call(void 0,
1486
+ _chunkH7YFUC3Jjs.printCommandEnvelope.call(void 0,
1486
1487
  { ok: true, idempotency_key: options.idempotencyKey, ...payload },
1487
1488
  { json: options.json }
1488
1489
  );
@@ -1502,37 +1503,37 @@ async function handleTargetPlan(planSku, options) {
1502
1503
  return;
1503
1504
  }
1504
1505
  const idempotencyKey = targetBillingIdempotencyKey(options.idempotencyKey);
1505
- const payload = await new (0, _chunkORO2GFH4js.DeeplineClient)().billing.transitionPlan({
1506
+ const payload = await new (0, _chunkSKVMC6K6js.DeeplineClient)().billing.transitionPlan({
1506
1507
  action: "start_or_change",
1507
1508
  targetPlanSku: planSku,
1508
1509
  ...options.billingEmail ? { billingEmail: options.billingEmail } : {},
1509
1510
  idempotencyKey
1510
1511
  });
1511
- _chunk57F5VKHVjs.printCommandEnvelope.call(void 0,
1512
+ _chunkH7YFUC3Jjs.printCommandEnvelope.call(void 0,
1512
1513
  { ok: true, idempotency_key: idempotencyKey, ...payload },
1513
1514
  { json: options.json }
1514
1515
  );
1515
1516
  }
1516
1517
  async function handleTargetPlanCancellation(options) {
1517
1518
  const idempotencyKey = targetBillingIdempotencyKey(options.idempotencyKey);
1518
- const payload = await new (0, _chunkORO2GFH4js.DeeplineClient)().billing.transitionPlan({
1519
+ const payload = await new (0, _chunkSKVMC6K6js.DeeplineClient)().billing.transitionPlan({
1519
1520
  action: options.undo ? "undo_cancel" : "cancel",
1520
1521
  idempotencyKey
1521
1522
  });
1522
- _chunk57F5VKHVjs.printCommandEnvelope.call(void 0,
1523
+ _chunkH7YFUC3Jjs.printCommandEnvelope.call(void 0,
1523
1524
  { ok: true, idempotency_key: idempotencyKey, ...payload },
1524
1525
  { json: options.json }
1525
1526
  );
1526
1527
  }
1527
1528
  async function handleTargetPortal(options) {
1528
- const payload = await new (0, _chunkORO2GFH4js.DeeplineClient)().billing.portalSession(
1529
+ const payload = await new (0, _chunkSKVMC6K6js.DeeplineClient)().billing.portalSession(
1529
1530
  options.billingAddress ? { flow: "customer_update" } : void 0
1530
1531
  );
1531
- if (!options.json && !options.noOpen) _chunk57F5VKHVjs.openInBrowser.call(void 0, payload.url);
1532
- _chunk57F5VKHVjs.printCommandEnvelope.call(void 0, { ok: true, ...payload }, { json: options.json });
1532
+ if (!options.json && !options.noOpen) _chunkH7YFUC3Jjs.openInBrowser.call(void 0, payload.url);
1533
+ _chunkH7YFUC3Jjs.printCommandEnvelope.call(void 0, { ok: true, ...payload }, { json: options.json });
1533
1534
  }
1534
1535
  async function handleRedeemCode(code, options) {
1535
- const { http } = _chunk57F5VKHVjs.getAuthedHttpClient.call(void 0, );
1536
+ const { http } = _chunkH7YFUC3Jjs.getAuthedHttpClient.call(void 0, );
1536
1537
  const payload = await http.post(
1537
1538
  "/api/v2/billing/checkout",
1538
1539
  {
@@ -1540,8 +1541,8 @@ async function handleRedeemCode(code, options) {
1540
1541
  }
1541
1542
  );
1542
1543
  const url = String(payload.url || payload.checkout_url || "");
1543
- if (!options.json && !options.noOpen && url) _chunk57F5VKHVjs.openInBrowser.call(void 0, url);
1544
- _chunk57F5VKHVjs.printCommandEnvelope.call(void 0,
1544
+ if (!options.json && !options.noOpen && url) _chunkH7YFUC3Jjs.openInBrowser.call(void 0, url);
1545
+ _chunkH7YFUC3Jjs.printCommandEnvelope.call(void 0,
1545
1546
  {
1546
1547
  ...payload,
1547
1548
  render: {
@@ -1599,14 +1600,14 @@ Examples:
1599
1600
  if (!Number.isSafeInteger(quantity) || quantity <= 0) {
1600
1601
  throw new Error("--quantity must be a positive safe integer.");
1601
1602
  }
1602
- const quote = await new (0, _chunkORO2GFH4js.DeeplineClient)().billing.quote({
1603
+ const quote = await new (0, _chunkSKVMC6K6js.DeeplineClient)().billing.quote({
1603
1604
  quantity,
1604
1605
  sandbox_runtime: {
1605
1606
  timeout: options.sandboxTimeout,
1606
1607
  size: "standard"
1607
1608
  }
1608
1609
  });
1609
- _chunk57F5VKHVjs.printCommandEnvelope.call(void 0, quote, {
1610
+ _chunkH7YFUC3Jjs.printCommandEnvelope.call(void 0, quote, {
1610
1611
  json: options.json,
1611
1612
  text: `Sandbox session ceiling: ${quote.maximum_credits} Deepline credits (${quote.quantity} session${quote.quantity === 1 ? "" : "s"}).
1612
1613
  ${quote.explanation}
@@ -1851,8 +1852,8 @@ Examples:
1851
1852
  new (0, _commander.Command)("trigger").description(
1852
1853
  "Evaluate capped automatic recharge and resume any pending purchase."
1853
1854
  ).option("--json", "Emit JSON output").action(async (options) => {
1854
- const result = await new (0, _chunkORO2GFH4js.DeeplineClient)().billing.autoRecharge.trigger();
1855
- _chunk57F5VKHVjs.printCommandEnvelope.call(void 0, { ok: true, ...result }, { json: options.json });
1855
+ const result = await new (0, _chunkSKVMC6K6js.DeeplineClient)().billing.autoRecharge.trigger();
1856
+ _chunkH7YFUC3Jjs.printCommandEnvelope.call(void 0, { ok: true, ...result }, { json: options.json });
1856
1857
  })
1857
1858
  );
1858
1859
  billing.command("change-plan").description("Start or change the target billing plan.").argument("<plan_sku>", "payg-v1, builder-v1, growth-v1, or team-v1").option(
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  DeeplineClient
3
- } from "./chunk-CTDWQYBW.mjs";
3
+ } from "./chunk-CFDQZQE2.mjs";
4
4
  import {
5
5
  iterateCursorPages,
6
6
  requireBillingIdempotencyKey
7
- } from "./chunk-QW6HNDS7.mjs";
7
+ } from "./chunk-YK64LQPQ.mjs";
8
8
  import "./chunk-L2VKAASU.mjs";
9
- import "./chunk-FAG4DFUC.mjs";
9
+ import "./chunk-NELMCOWK.mjs";
10
10
  import "./chunk-S3A4IXBQ.mjs";
11
11
  import "./chunk-UBKA33KY.mjs";
12
12
  import {
@@ -15,9 +15,9 @@ import {
15
15
  openInBrowser,
16
16
  printCommandEnvelope,
17
17
  shouldEmitJson
18
- } from "./chunk-QG7UPPOK.mjs";
19
- import "./chunk-VL7OL7YR.mjs";
20
- import "./chunk-SETIOXN4.mjs";
18
+ } from "./chunk-4NFBYW7X.mjs";
19
+ import "./chunk-KQJHIVCE.mjs";
20
+ import "./chunk-OMPW5ELS.mjs";
21
21
  import {
22
22
  AuthError,
23
23
  ConfigError
@@ -26,7 +26,7 @@ import "./chunk-DLIRSHV6.mjs";
26
26
  import {
27
27
  DeeplineError
28
28
  } from "./chunk-HBL4PM5Q.mjs";
29
- import "./chunk-DSOTGAXS.mjs";
29
+ import "./chunk-JRZW4LWK.mjs";
30
30
  import "./chunk-WZYKRD7T.mjs";
31
31
  import "./chunk-KRD6H754.mjs";
32
32
 
@@ -768,7 +768,8 @@ function planPriceText(priceUsd, priceInterval) {
768
768
  return `$${priceUsd}${priceInterval ? `/${priceInterval}` : ""}`;
769
769
  }
770
770
  function targetPlanLine(plan) {
771
- return `${plan.name} (${plan.sku}) | ${planPriceText(plan.recurring_price_usd, plan.interval)} | ${plan.included_credits} included credits/month | $${plan.purchased_credit_price_usd}/purchased credit | ${plan.acquisition_enabled ? "available" : "unavailable"}`;
771
+ const firstMonth = plan.first_month_price_usd != null ? ` (first month $${plan.first_month_price_usd})` : "";
772
+ return `${plan.name} (${plan.sku}) | ${planPriceText(plan.recurring_price_usd, plan.interval)}${firstMonth} | ${plan.included_credits} included credits/month | $${plan.purchased_credit_price_usd}/purchased credit | ${plan.acquisition_enabled ? "available" : "unavailable"}`;
772
773
  }
773
774
  async function handlePlans(options) {
774
775
  const client = new DeeplineClient();