deepline 0.3.404 → 0.3.405

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 (89) hide show
  1. package/dist/bundling-sources/sdk/src/client.ts +4 -4
  2. package/dist/bundling-sources/sdk/src/release.ts +1 -1
  3. package/dist/bundling-sources/shared_libs/monitors/http-error-response.ts +1 -1
  4. package/dist/bundling-sources/shared_libs/monitors/provider-monitor-public-aliases.ts +4 -0
  5. package/dist/cli/{auth-DVJWHHC3.mjs → auth-D4GXO4IN.mjs} +4 -4
  6. package/dist/cli/auth-IJKAKAHG.js +40 -0
  7. package/dist/cli/{billing-7UDFOLCT.mjs → billing-NVV5VSUJ.mjs} +4 -4
  8. package/dist/cli/{billing-MHS6WS77.js → billing-TQ4UM4D4.js} +73 -73
  9. package/dist/cli/{chunk-OHGXSFDQ.mjs → chunk-3DWMYKWU.mjs} +1 -1
  10. package/dist/cli/{chunk-EDSBH6W7.mjs → chunk-3FF3SPSE.mjs} +2 -2
  11. package/dist/cli/{chunk-V5DPHNTE.js → chunk-3MVBOBV4.js} +2 -2
  12. package/dist/cli/{chunk-JJZOGHEF.mjs → chunk-4ONG2MWB.mjs} +1 -1
  13. package/dist/cli/{chunk-B2BO6G7L.js → chunk-6HXTHMHZ.js} +26 -26
  14. package/dist/cli/{chunk-L3JGXPGB.js → chunk-AAIV3ACM.js} +50 -50
  15. package/dist/cli/{chunk-ANL3NJV5.mjs → chunk-B6ME2XIO.mjs} +5 -5
  16. package/dist/cli/{chunk-W3SACRLJ.js → chunk-BZBV2GY2.js} +8 -8
  17. package/dist/cli/{chunk-GPWTKORH.js → chunk-CB6AJNHI.js} +4 -4
  18. package/dist/cli/{chunk-NRI4TJVF.mjs → chunk-EKWJXPIX.mjs} +1 -1
  19. package/dist/cli/{chunk-FF2H4YLR.mjs → chunk-EVLCUV64.mjs} +4 -4
  20. package/dist/cli/{chunk-XKVJZ5JC.mjs → chunk-HG5PMETP.mjs} +5 -5
  21. package/dist/cli/{chunk-CBMYUXAT.js → chunk-HYAA3F6U.js} +10 -10
  22. package/dist/cli/{chunk-ODKHUBU3.js → chunk-JPNBAZBR.js} +6 -6
  23. package/dist/cli/{chunk-URQAM7RR.js → chunk-LM2JHRZM.js} +1 -1
  24. package/dist/cli/{chunk-VPCIT5N6.mjs → chunk-MPXPTSGJ.mjs} +3 -3
  25. package/dist/cli/{chunk-Y5QWK7SS.js → chunk-MZ4LBCV7.js} +15 -15
  26. package/dist/cli/{chunk-7CFSSEN3.js → chunk-NAJEB3N4.js} +44 -44
  27. package/dist/cli/{chunk-AYUR2RZ6.js → chunk-NLT6GCWZ.js} +8 -8
  28. package/dist/cli/{chunk-M55M5LDV.mjs → chunk-TECEX3K5.mjs} +3 -3
  29. package/dist/cli/{chunk-DSXMTZ64.mjs → chunk-TPYRDAU7.mjs} +1 -1
  30. package/dist/cli/{chunk-OPGILU75.js → chunk-WGX7SIGL.js} +65 -65
  31. package/dist/cli/{chunk-TFIB4VNU.mjs → chunk-YRZIKG47.mjs} +2 -2
  32. package/dist/cli/{chunk-KTWTQPYM.mjs → chunk-YX7JSSJ2.mjs} +2 -2
  33. package/dist/cli/{csv-7BXOAC3V.js → csv-5AASYDRF.js} +12 -12
  34. package/dist/cli/{csv-TG7SSGXW.mjs → csv-H7LD6IQK.mjs} +3 -3
  35. package/dist/cli/{db-GBVIPT7D.mjs → db-CG3UQUA7.mjs} +4 -4
  36. package/dist/cli/{db-BQCWAL3D.js → db-MJBZBDWZ.js} +25 -25
  37. package/dist/cli/{describe-3ROS6TC6.js → describe-2A7GARI2.js} +10 -10
  38. package/dist/cli/{describe-6LP2CWEF.mjs → describe-INFC5ACQ.mjs} +6 -6
  39. package/dist/cli/{executions-KCKC2KKP.js → executions-AUDQ5HOJ.js} +6 -6
  40. package/dist/cli/{executions-4TJOBZOQ.mjs → executions-DO47P6MX.mjs} +4 -4
  41. package/dist/cli/{feedback-7T77UCIV.js → feedback-MNWNDZVU.js} +7 -7
  42. package/dist/cli/{feedback-CGJNFV3G.mjs → feedback-XGZSJM2N.mjs} +3 -3
  43. package/dist/cli/{git-5E3HETBN.mjs → git-2ECFQKAA.mjs} +4 -4
  44. package/dist/cli/git-6S64UBWC.js +24 -0
  45. package/dist/cli/index.js +89 -89
  46. package/dist/cli/index.mjs +32 -32
  47. package/dist/cli/{legacy-noops-X5MCVE34.js → legacy-noops-3UZTD4DS.js} +7 -7
  48. package/dist/cli/{legacy-noops-4FGVQLLD.mjs → legacy-noops-534TKEMO.mjs} +4 -4
  49. package/dist/cli/{monitors-QRZEIITA.mjs → monitors-5ARELE2S.mjs} +4 -4
  50. package/dist/cli/{monitors-OTAQWJH5.js → monitors-G4S54JSX.js} +84 -84
  51. package/dist/cli/{org-A6KANSFR.mjs → org-BAMOOXQW.mjs} +4 -4
  52. package/dist/cli/{org-B3JK2BND.js → org-RIWF2TLI.js} +64 -64
  53. package/dist/cli/{play-HLDZVD47.js → play-32XSQMFK.js} +231 -231
  54. package/dist/cli/{play-CN6DOFMT.mjs → play-WV4UNGPR.mjs} +7 -7
  55. package/dist/cli/{providers-EVPLX6BG.mjs → providers-SMSRO23R.mjs} +4 -4
  56. package/dist/cli/{providers-XGCTTZ7T.js → providers-XKY2CNKH.js} +7 -7
  57. package/dist/cli/{quickstart-HXORYMNO.mjs → quickstart-BFYYEVSS.mjs} +3 -3
  58. package/dist/cli/{quickstart-LTH2MZNQ.js → quickstart-Q2TA72HD.js} +5 -5
  59. package/dist/cli/search-GK7P3AZY.js +30 -0
  60. package/dist/cli/{search-S4JOGJMH.mjs → search-I2TVB2P5.mjs} +5 -5
  61. package/dist/cli/{secrets-JV3TPKE6.js → secrets-B4NYTSL7.js} +13 -13
  62. package/dist/cli/{secrets-VNHUBHLN.mjs → secrets-BHKICIE3.mjs} +4 -4
  63. package/dist/cli/{sessions-CDBTN53U.mjs → sessions-IOR2ZNNH.mjs} +4 -4
  64. package/dist/cli/{sessions-QYYFCXGY.js → sessions-XY2UREJ7.js} +5 -5
  65. package/dist/cli/{settings-YYZ2IHFU.js → settings-ASGROQDE.js} +74 -74
  66. package/dist/cli/{settings-I6LQQCMK.mjs → settings-W6S7B4NH.mjs} +7 -7
  67. package/dist/cli/{setup-X24RP6O7.mjs → setup-UUWGI3IN.mjs} +6 -6
  68. package/dist/cli/{setup-IZQI5RZA.js → setup-YIYQ73OV.js} +41 -41
  69. package/dist/cli/{skills-UYIFSY2Y.mjs → skills-CHA4QCGI.mjs} +4 -4
  70. package/dist/cli/skills-LKNKHB2I.js +29 -0
  71. package/dist/cli/{tools-BLP2VRAN.js → tools-43ZFJWAQ.js} +7 -7
  72. package/dist/cli/{tools-IR5JEQF6.mjs → tools-PMZDYKTT.mjs} +6 -6
  73. package/dist/cli/{update-MXFLD3ZQ.mjs → update-6VSEGTSG.mjs} +6 -6
  74. package/dist/cli/update-R7FODDIW.js +29 -0
  75. package/dist/cli/{workflow-CZ6CXXOL.js → workflow-26EOXZ7M.js} +15 -15
  76. package/dist/cli/{workflow-QGY342J5.mjs → workflow-SVMVLQOF.mjs} +5 -5
  77. package/dist/index.js +6 -6
  78. package/dist/index.mjs +3 -3
  79. package/dist/install-integrity.json +70 -70
  80. package/dist/release.d.mts +1 -1
  81. package/dist/release.d.ts +1 -1
  82. package/dist/release.js +2 -2
  83. package/dist/release.mjs +1 -1
  84. package/package.json +1 -1
  85. package/dist/cli/auth-UIC53AE2.js +0 -40
  86. package/dist/cli/git-DRUSBG74.js +0 -24
  87. package/dist/cli/search-MH6VAITK.js +0 -30
  88. package/dist/cli/skills-U4MIVNPW.js +0 -29
  89. package/dist/cli/update-EIYE45GT.js +0 -29
@@ -6815,10 +6815,10 @@ export class DeeplineClient {
6815
6815
  // post-deploy work creates/reuses the tracker and returns the artifact a
6816
6816
  // caller needs to install it; there is intentionally no separate setup
6817
6817
  // command in the public monitor lifecycle.
6818
- const setup = await this.setupMonitor(
6819
- definition.tool,
6820
- definition.payload ?? {},
6821
- );
6818
+ const setup = await this.setupMonitor(definition.tool, {
6819
+ ...definition.payload,
6820
+ monitor_key: definition.key,
6821
+ });
6822
6822
  return {
6823
6823
  ...deployed,
6824
6824
  monitor: {
@@ -202,7 +202,7 @@ export const SDK_RELEASE = {
202
202
  // getters keep their established compatibility behavior.
203
203
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
204
204
  // 0.3.90 is the first deliberately versioned SDK release for API v3.
205
- version: '0.3.404',
205
+ version: '0.3.405',
206
206
  updateSummary:
207
207
  '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.',
208
208
  packageCapabilities: {
@@ -130,7 +130,7 @@ export function monitorErrorNextAction(payload: MonitorErrorPayload): string {
130
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` 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 monitor. 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
136
  return 'Run `deepline monitors list --status all`, choose a returned public monitor key, then retry with that key.';
@@ -12,6 +12,10 @@ export function canonicalProviderMonitorKey(key: string) {
12
12
  return key === ANALYTICS_MONITOR_KEY ? ANALYTICS_INTERNAL_MONITOR_KEY : key;
13
13
  }
14
14
 
15
+ export function publicProviderMonitorKey(key: string) {
16
+ return key === ANALYTICS_INTERNAL_MONITOR_KEY ? ANALYTICS_MONITOR_KEY : key;
17
+ }
18
+
15
19
  /** Convert a customer-facing monitor tool id to its internal registry id. */
16
20
  export function canonicalProviderMonitorTool(tool: string) {
17
21
  return tool === ANALYTICS_PUBLIC_TOOL ? ANALYTICS_INTERNAL_TOOL : tool;
@@ -13,13 +13,13 @@ import {
13
13
  reportSetupCompleted,
14
14
  resolvePendingAuthClaimForResume,
15
15
  statusBannerLine
16
- } from "./chunk-EDSBH6W7.mjs";
17
- import "./chunk-OHGXSFDQ.mjs";
18
- import "./chunk-DSXMTZ64.mjs";
16
+ } from "./chunk-3FF3SPSE.mjs";
17
+ import "./chunk-3DWMYKWU.mjs";
18
+ import "./chunk-TPYRDAU7.mjs";
19
19
  import "./chunk-YHPYUZZX.mjs";
20
20
  import "./chunk-DLIRSHV6.mjs";
21
21
  import "./chunk-NXGCO4JB.mjs";
22
- import "./chunk-NRI4TJVF.mjs";
22
+ import "./chunk-EKWJXPIX.mjs";
23
23
  import "./chunk-WZYKRD7T.mjs";
24
24
  import "./chunk-KRD6H754.mjs";
25
25
  export {
@@ -0,0 +1,40 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+ var _chunkAAIV3ACMjs = require('./chunk-AAIV3ACM.js');
17
+ require('./chunk-JPNBAZBR.js');
18
+ require('./chunk-CB6AJNHI.js');
19
+ require('./chunk-Q2E4E4FJ.js');
20
+ require('./chunk-XNYIZMNQ.js');
21
+ require('./chunk-7P5AA3SN.js');
22
+ require('./chunk-LM2JHRZM.js');
23
+ require('./chunk-OG64RBAC.js');
24
+ require('./chunk-COGTRVWW.js');
25
+
26
+
27
+
28
+
29
+
30
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+ exports.EXIT_WORKSPACE_MISMATCH = _chunkAAIV3ACMjs.EXIT_WORKSPACE_MISMATCH; exports.authStatusLine = _chunkAAIV3ACMjs.authStatusLine; exports.clearPendingClaim = _chunkAAIV3ACMjs.clearPendingClaim; exports.clearSatisfiedPendingClaim = _chunkAAIV3ACMjs.clearSatisfiedPendingClaim; exports.handleRegister = _chunkAAIV3ACMjs.handleRegister; exports.handleStatus = _chunkAAIV3ACMjs.handleStatus; exports.handleWait = _chunkAAIV3ACMjs.handleWait; exports.httpJson = _chunkAAIV3ACMjs.httpJson; exports.readPendingAuthClaim = _chunkAAIV3ACMjs.readPendingAuthClaim; exports.readStatusBanner = _chunkAAIV3ACMjs.readStatusBanner; exports.registerAuthCommands = _chunkAAIV3ACMjs.registerAuthCommands; exports.reportSetupCompleted = _chunkAAIV3ACMjs.reportSetupCompleted; exports.resolvePendingAuthClaimForResume = _chunkAAIV3ACMjs.resolvePendingAuthClaimForResume; exports.statusBannerLine = _chunkAAIV3ACMjs.statusBannerLine;
@@ -2,7 +2,7 @@ import {
2
2
  DeeplineClient,
3
3
  iterateCursorPages,
4
4
  requireBillingIdempotencyKey
5
- } from "./chunk-XKVJZ5JC.mjs";
5
+ } from "./chunk-HG5PMETP.mjs";
6
6
  import "./chunk-6IKARAYD.mjs";
7
7
  import "./chunk-JI2B4RZP.mjs";
8
8
  import "./chunk-EIMG75BT.mjs";
@@ -13,8 +13,8 @@ import {
13
13
  openInBrowser,
14
14
  printCommandEnvelope,
15
15
  shouldEmitJson
16
- } from "./chunk-OHGXSFDQ.mjs";
17
- import "./chunk-DSXMTZ64.mjs";
16
+ } from "./chunk-3DWMYKWU.mjs";
17
+ import "./chunk-TPYRDAU7.mjs";
18
18
  import {
19
19
  AuthError,
20
20
  ConfigError
@@ -23,7 +23,7 @@ import "./chunk-DLIRSHV6.mjs";
23
23
  import {
24
24
  DeeplineError
25
25
  } from "./chunk-NXGCO4JB.mjs";
26
- import "./chunk-NRI4TJVF.mjs";
26
+ import "./chunk-EKWJXPIX.mjs";
27
27
  import "./chunk-WZYKRD7T.mjs";
28
28
  import "./chunk-KRD6H754.mjs";
29
29
 
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkCBMYUXATjs = require('./chunk-CBMYUXAT.js');
5
+ var _chunkHYAA3F6Ujs = require('./chunk-HYAA3F6U.js');
6
6
  require('./chunk-S6R3OX7B.js');
7
7
  require('./chunk-UHNDVD3P.js');
8
8
  require('./chunk-KXMNM4AQ.js');
@@ -13,8 +13,8 @@ require('./chunk-XDVT3GOM.js');
13
13
 
14
14
 
15
15
 
16
- var _chunkODKHUBU3js = require('./chunk-ODKHUBU3.js');
17
- require('./chunk-GPWTKORH.js');
16
+ var _chunkJPNBAZBRjs = require('./chunk-JPNBAZBR.js');
17
+ require('./chunk-CB6AJNHI.js');
18
18
 
19
19
 
20
20
 
@@ -23,7 +23,7 @@ require('./chunk-XNYIZMNQ.js');
23
23
 
24
24
 
25
25
  var _chunk7P5AA3SNjs = require('./chunk-7P5AA3SN.js');
26
- require('./chunk-URQAM7RR.js');
26
+ require('./chunk-LM2JHRZM.js');
27
27
  require('./chunk-OG64RBAC.js');
28
28
  require('./chunk-COGTRVWW.js');
29
29
 
@@ -72,7 +72,7 @@ function reportBillingFailure(failure, options) {
72
72
  if (failure.next) {
73
73
  textLines.push(`Next: ${failure.next}`);
74
74
  }
75
- _chunkODKHUBU3js.printCommandEnvelope.call(void 0,
75
+ _chunkJPNBAZBRjs.printCommandEnvelope.call(void 0,
76
76
  {
77
77
  ok: false,
78
78
  exitCode: failure.exitCode,
@@ -93,7 +93,7 @@ function parseTopUpCredits(raw) {
93
93
  return parsed;
94
94
  }
95
95
  function topUpIdempotencyKey(raw) {
96
- return raw === void 0 ? `cli_topup:${Date.now()}:${_crypto.randomUUID.call(void 0, )}` : _chunkCBMYUXATjs.requireBillingIdempotencyKey.call(void 0, raw);
96
+ return raw === void 0 ? `cli_topup:${Date.now()}:${_crypto.randomUUID.call(void 0, )}` : _chunkHYAA3F6Ujs.requireBillingIdempotencyKey.call(void 0, raw);
97
97
  }
98
98
  function targetBillingIdempotencyKey(raw) {
99
99
  return typeof raw === "string" ? raw : `cli_target_billing:${Date.now()}:${_crypto.randomUUID.call(void 0, )}`;
@@ -299,7 +299,7 @@ function defaultLedgerExportPath() {
299
299
  );
300
300
  }
301
301
  async function handleBalance(options) {
302
- const { http } = _chunkODKHUBU3js.getAuthedHttpClient.call(void 0, );
302
+ const { http } = _chunkJPNBAZBRjs.getAuthedHttpClient.call(void 0, );
303
303
  const payload = await http.get(
304
304
  "/api/v2/billing/balance"
305
305
  );
@@ -367,7 +367,7 @@ async function handleBalance(options) {
367
367
  ...options.verbose ? detail : [],
368
368
  ...lines.slice(1)
369
369
  ];
370
- _chunkODKHUBU3js.printCommandEnvelope.call(void 0,
370
+ _chunkJPNBAZBRjs.printCommandEnvelope.call(void 0,
371
371
  {
372
372
  ...payload,
373
373
  ...recovery ? { recovery } : {},
@@ -391,7 +391,7 @@ function quoteShellArgument(value) {
391
391
  return `'${value.replace(/'/g, `'\\''`)}'`;
392
392
  }
393
393
  async function handleUsage(options) {
394
- const { http } = _chunkODKHUBU3js.getAuthedHttpClient.call(void 0, );
394
+ const { http } = _chunkJPNBAZBRjs.getAuthedHttpClient.call(void 0, );
395
395
  const params = new URLSearchParams();
396
396
  if (options.requestId !== void 0) {
397
397
  const requestId = options.requestId.trim();
@@ -472,7 +472,7 @@ async function handleUsage(options) {
472
472
  "No continuation is available for this view. Use deepline billing ledger export all for the full ledger."
473
473
  ] : []
474
474
  ];
475
- _chunkODKHUBU3js.printCommandEnvelope.call(void 0,
475
+ _chunkJPNBAZBRjs.printCommandEnvelope.call(void 0,
476
476
  {
477
477
  ...payload,
478
478
  recent: {
@@ -486,7 +486,7 @@ async function handleUsage(options) {
486
486
  );
487
487
  }
488
488
  async function handleLimit(options) {
489
- const { http } = _chunkODKHUBU3js.getAuthedHttpClient.call(void 0, );
489
+ const { http } = _chunkJPNBAZBRjs.getAuthedHttpClient.call(void 0, );
490
490
  const payload = await http.get(
491
491
  "/api/v2/billing/limit"
492
492
  );
@@ -494,7 +494,7 @@ async function handleLimit(options) {
494
494
  `Monthly usage cap: ${_nullishCoalesce(payload.monthly_credits_limit, () => ( "(unknown)"))}`,
495
495
  "Enforcement: checked before new calls; in-flight work can exceed the cap."
496
496
  ] : ["Monthly usage cap: off"];
497
- _chunkODKHUBU3js.printCommandEnvelope.call(void 0,
497
+ _chunkJPNBAZBRjs.printCommandEnvelope.call(void 0,
498
498
  {
499
499
  ...payload,
500
500
  render: { sections: [{ title: "billing limit", lines }] }
@@ -503,12 +503,12 @@ async function handleLimit(options) {
503
503
  );
504
504
  }
505
505
  async function handleSetLimit(credits, options) {
506
- const { http } = _chunkODKHUBU3js.getAuthedHttpClient.call(void 0, );
506
+ const { http } = _chunkJPNBAZBRjs.getAuthedHttpClient.call(void 0, );
507
507
  const payload = await http.request("/api/v2/billing/limit", {
508
508
  method: "PUT",
509
509
  body: { monthly_credits_limit: Number.parseInt(credits, 10) }
510
510
  });
511
- _chunkODKHUBU3js.printCommandEnvelope.call(void 0,
511
+ _chunkJPNBAZBRjs.printCommandEnvelope.call(void 0,
512
512
  {
513
513
  ...payload,
514
514
  render: {
@@ -524,11 +524,11 @@ async function handleSetLimit(credits, options) {
524
524
  );
525
525
  }
526
526
  async function handleLimitOff(options) {
527
- const { http } = _chunkODKHUBU3js.getAuthedHttpClient.call(void 0, );
527
+ const { http } = _chunkJPNBAZBRjs.getAuthedHttpClient.call(void 0, );
528
528
  const payload = await http.request("/api/v2/billing/limit", {
529
529
  method: "DELETE"
530
530
  });
531
- _chunkODKHUBU3js.printCommandEnvelope.call(void 0,
531
+ _chunkJPNBAZBRjs.printCommandEnvelope.call(void 0,
532
532
  {
533
533
  ...payload,
534
534
  render: {
@@ -548,7 +548,7 @@ async function exportLedger(http, outputPath, options) {
548
548
  let initialized = false;
549
549
  let pageNumber = 0;
550
550
  console.error(`Exporting billing ledger to ${outputPath}`);
551
- for await (const entries of _chunkCBMYUXATjs.iterateCursorPages.call(void 0, async (cursor) => {
551
+ for await (const entries of _chunkHYAA3F6Ujs.iterateCursorPages.call(void 0, async (cursor) => {
552
552
  pageNumber += 1;
553
553
  console.error(
554
554
  `Fetching page ${pageNumber}; ${summary.row_count} rows written.`
@@ -587,7 +587,7 @@ async function exportLedger(http, outputPath, options) {
587
587
  return summary;
588
588
  }
589
589
  async function handleHistory(options) {
590
- const { http } = _chunkODKHUBU3js.getAuthedHttpClient.call(void 0, );
590
+ const { http } = _chunkJPNBAZBRjs.getAuthedHttpClient.call(void 0, );
591
591
  const windows = {
592
592
  "1d": 86400,
593
593
  "1w": 604800,
@@ -599,10 +599,10 @@ async function handleHistory(options) {
599
599
  process.cwd(),
600
600
  "deepline",
601
601
  "data",
602
- _chunkODKHUBU3js.createTimestampedName.call(void 0, `billing-history-${options.time}`, "csv")
602
+ _chunkJPNBAZBRjs.createTimestampedName.call(void 0, `billing-history-${options.time}`, "csv")
603
603
  );
604
604
  const summary = await exportLedger(http, outputPath, { sinceAt });
605
- _chunkODKHUBU3js.printCommandEnvelope.call(void 0,
605
+ _chunkJPNBAZBRjs.printCommandEnvelope.call(void 0,
606
606
  {
607
607
  output_path: outputPath,
608
608
  row_count: summary.row_count,
@@ -639,14 +639,14 @@ async function handleLedgerExportAll(options) {
639
639
  );
640
640
  return;
641
641
  }
642
- const { http } = _chunkODKHUBU3js.getAuthedHttpClient.call(void 0, );
642
+ const { http } = _chunkJPNBAZBRjs.getAuthedHttpClient.call(void 0, );
643
643
  const outputPath = options.output ? _path.resolve.call(void 0, String(options.output)) : defaultLedgerExportPath();
644
644
  const summary = await exportLedger(http, outputPath, {
645
645
  sinceAt,
646
646
  runId: options.runId,
647
647
  operation: options.operation
648
648
  });
649
- _chunkODKHUBU3js.printCommandEnvelope.call(void 0,
649
+ _chunkJPNBAZBRjs.printCommandEnvelope.call(void 0,
650
650
  {
651
651
  output_path: outputPath,
652
652
  row_count: summary.row_count,
@@ -685,7 +685,7 @@ function targetPlanLine(plan) {
685
685
  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"}`;
686
686
  }
687
687
  async function handlePlans(options) {
688
- const client = new (0, _chunkCBMYUXATjs.DeeplineClient)();
688
+ const client = new (0, _chunkHYAA3F6Ujs.DeeplineClient)();
689
689
  const payload = await client.billing.targetPlans();
690
690
  const listedCurrentPlan = payload.plans.find(
691
691
  (plan) => plan.sku === payload.current_plan_sku
@@ -698,8 +698,8 @@ async function handlePlans(options) {
698
698
  ...payload.plans.length === 0 ? ["Plans: none available"] : ["Plans:", ...payload.plans.map(targetPlanLine)],
699
699
  "Change plan: deepline billing change-plan <plan_sku>"
700
700
  ];
701
- const legacyPayload = _chunkODKHUBU3js.shouldEmitJson.call(void 0, options.json) ? await client.billing.plans() : null;
702
- _chunkODKHUBU3js.printCommandEnvelope.call(void 0,
701
+ const legacyPayload = _chunkJPNBAZBRjs.shouldEmitJson.call(void 0, options.json) ? await client.billing.plans() : null;
702
+ _chunkJPNBAZBRjs.printCommandEnvelope.call(void 0,
703
703
  {
704
704
  ..._nullishCoalesce(legacyPayload, () => ( payload)),
705
705
  ...legacyPayload ? { target_billing: payload } : {},
@@ -709,7 +709,7 @@ async function handlePlans(options) {
709
709
  );
710
710
  }
711
711
  async function handleSubscribe(planVersionId, options) {
712
- const { http } = _chunkODKHUBU3js.getAuthedHttpClient.call(void 0, );
712
+ const { http } = _chunkJPNBAZBRjs.getAuthedHttpClient.call(void 0, );
713
713
  const payload = await http.request(
714
714
  "/api/v2/billing/subscription/checkout",
715
715
  {
@@ -718,8 +718,8 @@ async function handleSubscribe(planVersionId, options) {
718
718
  }
719
719
  );
720
720
  const url = String(payload.checkout_url || "");
721
- if (!options.json && options.open !== false && url) _chunkODKHUBU3js.openInBrowser.call(void 0, url);
722
- _chunkODKHUBU3js.printCommandEnvelope.call(void 0,
721
+ if (!options.json && options.open !== false && url) _chunkJPNBAZBRjs.openInBrowser.call(void 0, url);
722
+ _chunkJPNBAZBRjs.printCommandEnvelope.call(void 0,
723
723
  {
724
724
  ...payload,
725
725
  render: {
@@ -735,7 +735,7 @@ async function handleSubscribe(planVersionId, options) {
735
735
  );
736
736
  }
737
737
  async function handleSubscriptionStatus(options) {
738
- const client = new (0, _chunkCBMYUXATjs.DeeplineClient)();
738
+ const client = new (0, _chunkHYAA3F6Ujs.DeeplineClient)();
739
739
  const payload = await client.billing.subscription.status();
740
740
  const pools = _nullishCoalesce(payload.credit_pools, () => ( []));
741
741
  const lines = [
@@ -755,7 +755,7 @@ async function handleSubscriptionStatus(options) {
755
755
  ],
756
756
  `Assigned by: ${_nullishCoalesce(payload.assigned_by, () => ( "default"))}`
757
757
  ];
758
- _chunkODKHUBU3js.printCommandEnvelope.call(void 0,
758
+ _chunkJPNBAZBRjs.printCommandEnvelope.call(void 0,
759
759
  {
760
760
  ...payload,
761
761
  render: { sections: [{ title: "billing subscription", lines }] }
@@ -764,7 +764,7 @@ async function handleSubscriptionStatus(options) {
764
764
  );
765
765
  }
766
766
  async function handleSubscriptionCancel(options) {
767
- const client = new (0, _chunkCBMYUXATjs.DeeplineClient)();
767
+ const client = new (0, _chunkHYAA3F6Ujs.DeeplineClient)();
768
768
  const action = options.undo ? "undo_cancel" : "cancel";
769
769
  if (options.dryRun) {
770
770
  const status = await client.billing.subscription.status();
@@ -781,7 +781,7 @@ async function handleSubscriptionCancel(options) {
781
781
  return;
782
782
  }
783
783
  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.";
784
- _chunkODKHUBU3js.printCommandEnvelope.call(void 0,
784
+ _chunkJPNBAZBRjs.printCommandEnvelope.call(void 0,
785
785
  {
786
786
  ok: true,
787
787
  dry_run: true,
@@ -836,7 +836,7 @@ async function handleSubscriptionCancel(options) {
836
836
  "Remaining credits are yours to keep \u2014 cancellation never removes credits.",
837
837
  "Undo with: deepline billing subscription cancel --undo"
838
838
  ];
839
- _chunkODKHUBU3js.printCommandEnvelope.call(void 0,
839
+ _chunkJPNBAZBRjs.printCommandEnvelope.call(void 0,
840
840
  {
841
841
  ok: true,
842
842
  ...result,
@@ -890,7 +890,7 @@ async function handleInvoices(options) {
890
890
  return;
891
891
  }
892
892
  }
893
- const client = new (0, _chunkCBMYUXATjs.DeeplineClient)();
893
+ const client = new (0, _chunkHYAA3F6Ujs.DeeplineClient)();
894
894
  let payload;
895
895
  try {
896
896
  payload = await client.billing.invoices.list(
@@ -919,7 +919,7 @@ async function handleInvoices(options) {
919
919
  url: entry.url
920
920
  }))
921
921
  } : { ...payload, count: entries.length };
922
- _chunkODKHUBU3js.printCommandEnvelope.call(void 0,
922
+ _chunkJPNBAZBRjs.printCommandEnvelope.call(void 0,
923
923
  {
924
924
  ...envelope,
925
925
  render: { sections: [{ title: "billing invoices", lines }] }
@@ -928,7 +928,7 @@ async function handleInvoices(options) {
928
928
  );
929
929
  }
930
930
  async function handleCheckout(options) {
931
- const { http } = _chunkODKHUBU3js.getAuthedHttpClient.call(void 0, );
931
+ const { http } = _chunkJPNBAZBRjs.getAuthedHttpClient.call(void 0, );
932
932
  const payload = await http.post(
933
933
  "/api/v2/billing/checkout",
934
934
  {
@@ -938,8 +938,8 @@ async function handleCheckout(options) {
938
938
  }
939
939
  );
940
940
  const url = String(payload.url || payload.checkout_url || "");
941
- if (!options.json && !options.noOpen && url) _chunkODKHUBU3js.openInBrowser.call(void 0, url);
942
- _chunkODKHUBU3js.printCommandEnvelope.call(void 0,
941
+ if (!options.json && !options.noOpen && url) _chunkJPNBAZBRjs.openInBrowser.call(void 0, url);
942
+ _chunkJPNBAZBRjs.printCommandEnvelope.call(void 0,
943
943
  {
944
944
  ...payload,
945
945
  render: {
@@ -984,7 +984,7 @@ async function handleTopUp(creditsRaw, options) {
984
984
  return;
985
985
  }
986
986
  if (options.dryRun) {
987
- _chunkODKHUBU3js.printCommandEnvelope.call(void 0,
987
+ _chunkJPNBAZBRjs.printCommandEnvelope.call(void 0,
988
988
  {
989
989
  ok: true,
990
990
  dry_run: true,
@@ -1014,7 +1014,7 @@ async function handleTopUp(creditsRaw, options) {
1014
1014
  );
1015
1015
  return;
1016
1016
  }
1017
- const client = new (0, _chunkCBMYUXATjs.DeeplineClient)();
1017
+ const client = new (0, _chunkHYAA3F6Ujs.DeeplineClient)();
1018
1018
  let payload;
1019
1019
  try {
1020
1020
  payload = await client.billing.topUpWithReceipt({
@@ -1031,7 +1031,7 @@ async function handleTopUp(creditsRaw, options) {
1031
1031
  return;
1032
1032
  }
1033
1033
  if (payload.status === "pending") {
1034
- _chunkODKHUBU3js.printCommandEnvelope.call(void 0,
1034
+ _chunkJPNBAZBRjs.printCommandEnvelope.call(void 0,
1035
1035
  {
1036
1036
  ok: true,
1037
1037
  ...payload,
@@ -1095,17 +1095,17 @@ async function handleTopUp(creditsRaw, options) {
1095
1095
  ]
1096
1096
  }
1097
1097
  };
1098
- _chunkODKHUBU3js.printCommandEnvelope.call(void 0, options.compact ? compactEnvelope : fullEnvelope, {
1098
+ _chunkJPNBAZBRjs.printCommandEnvelope.call(void 0, options.compact ? compactEnvelope : fullEnvelope, {
1099
1099
  json: options.json
1100
1100
  });
1101
1101
  }
1102
1102
  async function handleTargetStatus(options) {
1103
- const client = new (0, _chunkCBMYUXATjs.DeeplineClient)();
1103
+ const client = new (0, _chunkHYAA3F6Ujs.DeeplineClient)();
1104
1104
  const payload = await client.billing.targetStatus();
1105
1105
  const balanceCommand = "deepline billing balance";
1106
1106
  const recentChargesCommand = "deepline billing usage --limit 5";
1107
1107
  const exactChargeCommand = "deepline billing usage --request-id <job_id>";
1108
- _chunkODKHUBU3js.printCommandEnvelope.call(void 0,
1108
+ _chunkJPNBAZBRjs.printCommandEnvelope.call(void 0,
1109
1109
  {
1110
1110
  ok: true,
1111
1111
  ...payload,
@@ -1135,8 +1135,8 @@ async function handleTargetStatus(options) {
1135
1135
  );
1136
1136
  }
1137
1137
  async function handleEntitlements(options) {
1138
- const payload = await new (0, _chunkCBMYUXATjs.DeeplineClient)().billing.entitlements();
1139
- _chunkODKHUBU3js.printCommandEnvelope.call(void 0,
1138
+ const payload = await new (0, _chunkHYAA3F6Ujs.DeeplineClient)().billing.entitlements();
1139
+ _chunkJPNBAZBRjs.printCommandEnvelope.call(void 0,
1140
1140
  {
1141
1141
  ok: true,
1142
1142
  ...payload,
@@ -1161,7 +1161,7 @@ async function handleEntitlements(options) {
1161
1161
  );
1162
1162
  }
1163
1163
  async function handleAutoRechargeStatus(options) {
1164
- const payload = await new (0, _chunkCBMYUXATjs.DeeplineClient)().billing.autoRecharge.get();
1164
+ const payload = await new (0, _chunkHYAA3F6Ujs.DeeplineClient)().billing.autoRecharge.get();
1165
1165
  const state = payload.available ? payload.enabled ? "on" : "off" : "unavailable";
1166
1166
  const lines = [
1167
1167
  `State: ${state}`,
@@ -1171,7 +1171,7 @@ async function handleAutoRechargeStatus(options) {
1171
1171
  `Automatic credit purchase cap: ${payload.purchase_limit_credits} credits per rolling 30 days`
1172
1172
  ] : []
1173
1173
  ];
1174
- _chunkODKHUBU3js.printCommandEnvelope.call(void 0,
1174
+ _chunkJPNBAZBRjs.printCommandEnvelope.call(void 0,
1175
1175
  {
1176
1176
  ok: true,
1177
1177
  ...payload,
@@ -1220,7 +1220,7 @@ async function handleAutoRechargeSet(options) {
1220
1220
  }
1221
1221
  const idempotencyKey = targetBillingIdempotencyKey(options.idempotencyKey);
1222
1222
  if (options.dryRun) {
1223
- _chunkODKHUBU3js.printCommandEnvelope.call(void 0,
1223
+ _chunkJPNBAZBRjs.printCommandEnvelope.call(void 0,
1224
1224
  {
1225
1225
  ok: true,
1226
1226
  dry_run: true,
@@ -1241,7 +1241,7 @@ async function handleAutoRechargeSet(options) {
1241
1241
  );
1242
1242
  return;
1243
1243
  }
1244
- const payload = await new (0, _chunkCBMYUXATjs.DeeplineClient)().billing.autoRecharge.update({
1244
+ const payload = await new (0, _chunkHYAA3F6Ujs.DeeplineClient)().billing.autoRecharge.update({
1245
1245
  enabled: true,
1246
1246
  thresholdCredits,
1247
1247
  refillToCredits,
@@ -1249,7 +1249,7 @@ async function handleAutoRechargeSet(options) {
1249
1249
  ...rollingLimitCredits !== void 0 ? { purchaseLimitCredits: rollingLimitCredits } : {},
1250
1250
  idempotencyKey
1251
1251
  });
1252
- _chunkODKHUBU3js.printCommandEnvelope.call(void 0,
1252
+ _chunkJPNBAZBRjs.printCommandEnvelope.call(void 0,
1253
1253
  { ok: true, idempotency_key: idempotencyKey, ...payload },
1254
1254
  { json: options.json }
1255
1255
  );
@@ -1257,7 +1257,7 @@ async function handleAutoRechargeSet(options) {
1257
1257
  async function handleAutoRechargeOff(options) {
1258
1258
  const idempotencyKey = targetBillingIdempotencyKey(options.idempotencyKey);
1259
1259
  if (options.dryRun) {
1260
- _chunkODKHUBU3js.printCommandEnvelope.call(void 0,
1260
+ _chunkJPNBAZBRjs.printCommandEnvelope.call(void 0,
1261
1261
  {
1262
1262
  ok: true,
1263
1263
  dry_run: true,
@@ -1272,11 +1272,11 @@ async function handleAutoRechargeOff(options) {
1272
1272
  );
1273
1273
  return;
1274
1274
  }
1275
- const payload = await new (0, _chunkCBMYUXATjs.DeeplineClient)().billing.autoRecharge.update({
1275
+ const payload = await new (0, _chunkHYAA3F6Ujs.DeeplineClient)().billing.autoRecharge.update({
1276
1276
  enabled: false,
1277
1277
  idempotencyKey
1278
1278
  });
1279
- _chunkODKHUBU3js.printCommandEnvelope.call(void 0,
1279
+ _chunkJPNBAZBRjs.printCommandEnvelope.call(void 0,
1280
1280
  { ok: true, idempotency_key: idempotencyKey, ...payload },
1281
1281
  { json: options.json }
1282
1282
  );
@@ -1295,11 +1295,11 @@ async function handleBuyCredits(creditsRaw, options) {
1295
1295
  return;
1296
1296
  }
1297
1297
  const idempotencyKey = targetBillingIdempotencyKey(options.idempotencyKey);
1298
- const payload = await new (0, _chunkCBMYUXATjs.DeeplineClient)().billing.purchaseCredits({
1298
+ const payload = await new (0, _chunkHYAA3F6Ujs.DeeplineClient)().billing.purchaseCredits({
1299
1299
  credits,
1300
1300
  idempotencyKey
1301
1301
  });
1302
- _chunkODKHUBU3js.printCommandEnvelope.call(void 0,
1302
+ _chunkJPNBAZBRjs.printCommandEnvelope.call(void 0,
1303
1303
  { ok: true, idempotency_key: idempotencyKey, ...payload },
1304
1304
  { json: options.json }
1305
1305
  );
@@ -1335,7 +1335,7 @@ async function handleTopUpRecover(creditsRaw, options) {
1335
1335
  return;
1336
1336
  }
1337
1337
  if (options.dryRun) {
1338
- _chunkODKHUBU3js.printCommandEnvelope.call(void 0,
1338
+ _chunkJPNBAZBRjs.printCommandEnvelope.call(void 0,
1339
1339
  {
1340
1340
  ok: true,
1341
1341
  dry_run: true,
@@ -1348,12 +1348,12 @@ async function handleTopUpRecover(creditsRaw, options) {
1348
1348
  );
1349
1349
  return;
1350
1350
  }
1351
- const payload = await new (0, _chunkCBMYUXATjs.DeeplineClient)().billing.recoverCreditPurchase({
1351
+ const payload = await new (0, _chunkHYAA3F6Ujs.DeeplineClient)().billing.recoverCreditPurchase({
1352
1352
  credits,
1353
1353
  orgId: options.orgId,
1354
1354
  idempotencyKey: options.idempotencyKey
1355
1355
  });
1356
- _chunkODKHUBU3js.printCommandEnvelope.call(void 0,
1356
+ _chunkJPNBAZBRjs.printCommandEnvelope.call(void 0,
1357
1357
  { ok: true, idempotency_key: options.idempotencyKey, ...payload },
1358
1358
  { json: options.json }
1359
1359
  );
@@ -1373,37 +1373,37 @@ async function handleTargetPlan(planSku, options) {
1373
1373
  return;
1374
1374
  }
1375
1375
  const idempotencyKey = targetBillingIdempotencyKey(options.idempotencyKey);
1376
- const payload = await new (0, _chunkCBMYUXATjs.DeeplineClient)().billing.transitionPlan({
1376
+ const payload = await new (0, _chunkHYAA3F6Ujs.DeeplineClient)().billing.transitionPlan({
1377
1377
  action: "start_or_change",
1378
1378
  targetPlanSku: planSku,
1379
1379
  ...options.billingEmail ? { billingEmail: options.billingEmail } : {},
1380
1380
  idempotencyKey
1381
1381
  });
1382
- _chunkODKHUBU3js.printCommandEnvelope.call(void 0,
1382
+ _chunkJPNBAZBRjs.printCommandEnvelope.call(void 0,
1383
1383
  { ok: true, idempotency_key: idempotencyKey, ...payload },
1384
1384
  { json: options.json }
1385
1385
  );
1386
1386
  }
1387
1387
  async function handleTargetPlanCancellation(options) {
1388
1388
  const idempotencyKey = targetBillingIdempotencyKey(options.idempotencyKey);
1389
- const payload = await new (0, _chunkCBMYUXATjs.DeeplineClient)().billing.transitionPlan({
1389
+ const payload = await new (0, _chunkHYAA3F6Ujs.DeeplineClient)().billing.transitionPlan({
1390
1390
  action: options.undo ? "undo_cancel" : "cancel",
1391
1391
  idempotencyKey
1392
1392
  });
1393
- _chunkODKHUBU3js.printCommandEnvelope.call(void 0,
1393
+ _chunkJPNBAZBRjs.printCommandEnvelope.call(void 0,
1394
1394
  { ok: true, idempotency_key: idempotencyKey, ...payload },
1395
1395
  { json: options.json }
1396
1396
  );
1397
1397
  }
1398
1398
  async function handleTargetPortal(options) {
1399
- const payload = await new (0, _chunkCBMYUXATjs.DeeplineClient)().billing.portalSession(
1399
+ const payload = await new (0, _chunkHYAA3F6Ujs.DeeplineClient)().billing.portalSession(
1400
1400
  options.billingAddress ? { flow: "customer_update" } : void 0
1401
1401
  );
1402
- if (!options.json && !options.noOpen) _chunkODKHUBU3js.openInBrowser.call(void 0, payload.url);
1403
- _chunkODKHUBU3js.printCommandEnvelope.call(void 0, { ok: true, ...payload }, { json: options.json });
1402
+ if (!options.json && !options.noOpen) _chunkJPNBAZBRjs.openInBrowser.call(void 0, payload.url);
1403
+ _chunkJPNBAZBRjs.printCommandEnvelope.call(void 0, { ok: true, ...payload }, { json: options.json });
1404
1404
  }
1405
1405
  async function handleRedeemCode(code, options) {
1406
- const { http } = _chunkODKHUBU3js.getAuthedHttpClient.call(void 0, );
1406
+ const { http } = _chunkJPNBAZBRjs.getAuthedHttpClient.call(void 0, );
1407
1407
  const payload = await http.post(
1408
1408
  "/api/v2/billing/checkout",
1409
1409
  {
@@ -1411,8 +1411,8 @@ async function handleRedeemCode(code, options) {
1411
1411
  }
1412
1412
  );
1413
1413
  const url = String(payload.url || payload.checkout_url || "");
1414
- if (!options.json && !options.noOpen && url) _chunkODKHUBU3js.openInBrowser.call(void 0, url);
1415
- _chunkODKHUBU3js.printCommandEnvelope.call(void 0,
1414
+ if (!options.json && !options.noOpen && url) _chunkJPNBAZBRjs.openInBrowser.call(void 0, url);
1415
+ _chunkJPNBAZBRjs.printCommandEnvelope.call(void 0,
1416
1416
  {
1417
1417
  ...payload,
1418
1418
  render: {
@@ -1470,14 +1470,14 @@ Examples:
1470
1470
  if (!Number.isSafeInteger(quantity) || quantity <= 0) {
1471
1471
  throw new Error("--quantity must be a positive safe integer.");
1472
1472
  }
1473
- const quote = await new (0, _chunkCBMYUXATjs.DeeplineClient)().billing.quote({
1473
+ const quote = await new (0, _chunkHYAA3F6Ujs.DeeplineClient)().billing.quote({
1474
1474
  quantity,
1475
1475
  sandbox_runtime: {
1476
1476
  timeout: options.sandboxTimeout,
1477
1477
  size: "standard"
1478
1478
  }
1479
1479
  });
1480
- _chunkODKHUBU3js.printCommandEnvelope.call(void 0, quote, {
1480
+ _chunkJPNBAZBRjs.printCommandEnvelope.call(void 0, quote, {
1481
1481
  json: options.json,
1482
1482
  text: `Sandbox session ceiling: ${quote.maximum_credits} Deepline credits (${quote.quantity} session${quote.quantity === 1 ? "" : "s"}).
1483
1483
  ${quote.explanation}
@@ -1708,8 +1708,8 @@ Examples:
1708
1708
  new (0, _commander.Command)("trigger").description(
1709
1709
  "Evaluate capped automatic recharge and resume any pending purchase."
1710
1710
  ).option("--json", "Emit JSON output").action(async (options) => {
1711
- const result = await new (0, _chunkCBMYUXATjs.DeeplineClient)().billing.autoRecharge.trigger();
1712
- _chunkODKHUBU3js.printCommandEnvelope.call(void 0, { ok: true, ...result }, { json: options.json });
1711
+ const result = await new (0, _chunkHYAA3F6Ujs.DeeplineClient)().billing.autoRecharge.trigger();
1712
+ _chunkJPNBAZBRjs.printCommandEnvelope.call(void 0, { ok: true, ...result }, { json: options.json });
1713
1713
  })
1714
1714
  );
1715
1715
  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(