deepline 0.3.98 → 0.3.100

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.
@@ -1554,7 +1554,9 @@ export type TargetAutoRechargeResult = {
1554
1554
  refill_to_credits: number | null;
1555
1555
  rolling_limit_cents: null;
1556
1556
  purchase_limit_cents?: number | null;
1557
+ purchase_limit_credits?: number | null;
1557
1558
  rolling_committed_cents?: number;
1559
+ rolling_committed_credits?: number;
1558
1560
  };
1559
1561
 
1560
1562
  export type TargetAutoRechargeUpdateOptions =
@@ -1566,8 +1568,10 @@ export type TargetAutoRechargeUpdateOptions =
1566
1568
  enabled: true;
1567
1569
  thresholdCredits: number;
1568
1570
  refillToCredits: number;
1569
- /** Maximum automatic purchases in a rolling 30-day window, in USD cents. */
1571
+ /** @deprecated Converted to credits at the API boundary. Use purchaseLimitCredits. */
1570
1572
  purchaseLimitCents?: number | null;
1573
+ /** Maximum credits purchased automatically over rolling 30 days; zero stops purchases. */
1574
+ purchaseLimitCredits?: number | null;
1571
1575
  idempotencyKey: string;
1572
1576
  };
1573
1577
 
@@ -5528,6 +5532,9 @@ export class DeeplineClient {
5528
5532
  ...(options.purchaseLimitCents !== undefined
5529
5533
  ? { purchase_limit_cents: options.purchaseLimitCents }
5530
5534
  : {}),
5535
+ ...(options.purchaseLimitCredits !== undefined
5536
+ ? { purchase_limit_credits: options.purchaseLimitCredits }
5537
+ : {}),
5531
5538
  }
5532
5539
  : { enabled: false },
5533
5540
  { 'Idempotency-Key': idempotencyKey },
@@ -200,7 +200,7 @@ export const SDK_RELEASE = {
200
200
  // getters keep their established compatibility behavior.
201
201
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
202
202
  // 0.3.90 is the first deliberately versioned SDK release for API v3.
203
- version: '0.3.98',
203
+ version: '0.3.100',
204
204
  updateSummary:
205
205
  'Play grep now returns concise results with the matched fields and terms. Automatic CLI updates are enabled by default; use `deepline settings autoupdate off` to opt out, `deepline settings autoupdate on` to re-enable updates, or `deepline settings autoupdate pin <version>` to hold an exact release.',
206
206
  packageCapabilities: {
package/dist/cli/index.js CHANGED
@@ -1298,7 +1298,7 @@ var SDK_RELEASE = {
1298
1298
  // getters keep their established compatibility behavior.
1299
1299
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
1300
1300
  // 0.3.90 is the first deliberately versioned SDK release for API v3.
1301
- version: "0.3.98",
1301
+ version: "0.3.100",
1302
1302
  updateSummary: "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.",
1303
1303
  packageCapabilities: {
1304
1304
  updatePreferences: 1
@@ -7575,7 +7575,8 @@ var DeeplineClient = class {
7575
7575
  enabled: true,
7576
7576
  threshold_credits: options.thresholdCredits,
7577
7577
  refill_to_credits: options.refillToCredits,
7578
- ...options.purchaseLimitCents !== void 0 ? { purchase_limit_cents: options.purchaseLimitCents } : {}
7578
+ ...options.purchaseLimitCents !== void 0 ? { purchase_limit_cents: options.purchaseLimitCents } : {},
7579
+ ...options.purchaseLimitCredits !== void 0 ? { purchase_limit_credits: options.purchaseLimitCredits } : {}
7579
7580
  } : { enabled: false },
7580
7581
  { "Idempotency-Key": idempotencyKey }
7581
7582
  );
@@ -10179,7 +10180,7 @@ async function handleUsage(options) {
10179
10180
  `Balance: ${payload.balance ?? "(unknown)"}`,
10180
10181
  `Last 30 days usage: ${last30Usage ?? "(unknown)"}`,
10181
10182
  ...Number.isFinite(temporaryHolds) && temporaryHolds > 0 ? [`Temporary holds: ${temporaryHolds}`] : [],
10182
- `Monthly spend guidance: ${quota.enabled ? quota.monthly_credits_limit ?? "(unknown)" : "off"}`,
10183
+ `Monthly usage cap: ${quota.enabled ? quota.monthly_credits_limit ?? "(unknown)" : "off"}`,
10183
10184
  ...options.runId && recent.run_id ? [
10184
10185
  `Run spend: ${(payload.run ?? {}).spent_credits ?? "(unknown)"} Deepline Credits`
10185
10186
  ] : [],
@@ -10211,9 +10212,9 @@ async function handleLimit(options) {
10211
10212
  "/api/v2/billing/limit"
10212
10213
  );
10213
10214
  const lines = payload.enabled ? [
10214
- `Monthly spend guidance: ${payload.monthly_credits_limit ?? "(unknown)"}`,
10215
- "Enforcement: advisory; available balance remains the exact admission control."
10216
- ] : ["Monthly spend guidance: off"];
10215
+ `Monthly usage cap: ${payload.monthly_credits_limit ?? "(unknown)"}`,
10216
+ "Enforcement: checked before new calls; in-flight work can exceed the cap."
10217
+ ] : ["Monthly usage cap: off"];
10217
10218
  printCommandEnvelope(
10218
10219
  {
10219
10220
  ...payload,
@@ -10235,7 +10236,7 @@ async function handleSetLimit(credits, options) {
10235
10236
  sections: [
10236
10237
  {
10237
10238
  title: "billing limit",
10238
- lines: [`Monthly spend guidance set to ${credits} credits.`]
10239
+ lines: [`Monthly usage cap set to ${credits} credits.`]
10239
10240
  }
10240
10241
  ]
10241
10242
  }
@@ -10255,7 +10256,7 @@ async function handleLimitOff(options) {
10255
10256
  sections: [
10256
10257
  {
10257
10258
  title: "billing limit",
10258
- lines: ["Monthly spend guidance is now off."]
10259
+ lines: ["Monthly usage cap is now off."]
10259
10260
  }
10260
10261
  ]
10261
10262
  }
@@ -10788,8 +10789,8 @@ async function handleAutoRechargeStatus(options) {
10788
10789
  `State: ${state}`,
10789
10790
  ...payload.threshold_credits !== null ? [`Threshold: ${payload.threshold_credits} credits`] : [],
10790
10791
  ...payload.refill_to_credits !== null ? [`Refill balance to: ${payload.refill_to_credits} credits`] : [],
10791
- ...payload.purchase_limit_cents !== void 0 ? [
10792
- payload.purchase_limit_cents === null ? "Automatic purchase cap: none" : `Automatic purchase cap: $${(payload.purchase_limit_cents / 100).toFixed(2)} per rolling 30 days`
10792
+ ...payload.purchase_limit_credits != null ? [
10793
+ `Automatic credit purchase cap: ${payload.purchase_limit_credits} credits per rolling 30 days`
10793
10794
  ] : []
10794
10795
  ];
10795
10796
  printCommandEnvelope(
@@ -10805,6 +10806,18 @@ async function handleAutoRechargeSet(options) {
10805
10806
  const thresholdCredits = parseTopUpCredits(options.thresholdCredits);
10806
10807
  const refillToCredits = parseTopUpCredits(options.refillToCredits);
10807
10808
  const rollingLimitCents = options.purchaseLimitCents === void 0 ? void 0 : options.purchaseLimitCents === "none" ? null : Number(options.purchaseLimitCents);
10809
+ const rollingLimitCredits = options.purchaseLimitCredits === void 0 ? void 0 : options.purchaseLimitCredits === "none" ? null : Number(options.purchaseLimitCredits);
10810
+ if (rollingLimitCredits != null && (!Number.isSafeInteger(rollingLimitCredits) || rollingLimitCredits < 0)) {
10811
+ reportBillingFailure(
10812
+ {
10813
+ exitCode: 2,
10814
+ code: "INVALID_AUTO_RECHARGE_CONFIGURATION",
10815
+ message: "--purchase-limit-credits must be a nonnegative whole number of credits or none."
10816
+ },
10817
+ options
10818
+ );
10819
+ return;
10820
+ }
10808
10821
  if (rollingLimitCents !== void 0 && rollingLimitCents !== null && (!Number.isSafeInteger(rollingLimitCents) || rollingLimitCents <= 0)) {
10809
10822
  reportBillingFailure(
10810
10823
  {
@@ -10841,7 +10854,8 @@ async function handleAutoRechargeSet(options) {
10841
10854
  enabled: true,
10842
10855
  threshold_credits: thresholdCredits,
10843
10856
  refill_to_credits: refillToCredits,
10844
- ...rollingLimitCents !== void 0 ? { purchase_limit_cents: rollingLimitCents } : {}
10857
+ ...rollingLimitCents !== void 0 ? { purchase_limit_cents: rollingLimitCents } : {},
10858
+ ...rollingLimitCredits !== void 0 ? { purchase_limit_credits: rollingLimitCredits } : {}
10845
10859
  }
10846
10860
  }
10847
10861
  },
@@ -10854,6 +10868,7 @@ async function handleAutoRechargeSet(options) {
10854
10868
  thresholdCredits,
10855
10869
  refillToCredits,
10856
10870
  ...rollingLimitCents !== void 0 ? { purchaseLimitCents: rollingLimitCents } : {},
10871
+ ...rollingLimitCredits !== void 0 ? { purchaseLimitCredits: rollingLimitCredits } : {},
10857
10872
  idempotencyKey
10858
10873
  });
10859
10874
  printCommandEnvelope(
@@ -11082,36 +11097,36 @@ Examples:
11082
11097
  "--cursor <cursor>",
11083
11098
  "Recent-call cursor from the previous response"
11084
11099
  ).option("--run-id <run_id>", "Show recent usage for one play run").option("--json", "Emit JSON output. Also automatic when stdout is piped").action(handleUsage);
11085
- billing.command("limit").description("Show configured monthly spend guidance.").addHelpText(
11100
+ billing.command("limit").description("Show configured monthly usage cap.").addHelpText(
11086
11101
  "after",
11087
11102
  `
11088
11103
  Notes:
11089
- Read-only. Shows whether monthly workspace spend guidance is enabled.
11090
- Guidance does not reject funded work; available balance remains exact.
11104
+ Read-only. Shows whether monthly workspace usage cap is enabled.
11105
+ New calls are checked against this usage cap, separately from wallet funding.
11091
11106
 
11092
11107
  Examples:
11093
11108
  deepline billing limit
11094
11109
  deepline billing limit --json
11095
11110
  `
11096
11111
  ).option("--json", "Emit JSON output. Also automatic when stdout is piped").action(handleLimit);
11097
- billing.command("set-limit").description("Set monthly spend guidance.").addHelpText(
11112
+ billing.command("set-limit").description("Set monthly usage cap.").addHelpText(
11098
11113
  "after",
11099
11114
  `
11100
11115
  Notes:
11101
11116
  Mutates workspace billing settings. The argument is a Deepline credit amount,
11102
- not dollars and not provider credits. Guidance is advisory; it does not
11103
- replace the exact available-balance admission check.
11117
+ not dollars and not provider credits. New calls are checked against the cap;
11118
+ in-flight work can still finish and exceed it. Buying credits does not reset it.
11104
11119
 
11105
11120
  Examples:
11106
11121
  deepline billing set-limit 500
11107
11122
  deepline billing set-limit 500 --json
11108
11123
  `
11109
11124
  ).argument("<credits>", "Monthly credits limit").option("--json", "Emit JSON output. Also automatic when stdout is piped").action(handleSetLimit);
11110
- billing.command("off").description("Disable monthly spend guidance.").addHelpText(
11125
+ billing.command("off").description("Disable monthly usage cap.").addHelpText(
11111
11126
  "after",
11112
11127
  `
11113
11128
  Notes:
11114
- Mutates workspace billing settings by removing monthly Deepline spend guidance.
11129
+ Mutates workspace billing settings by removing monthly Deepline usage cap.
11115
11130
 
11116
11131
  Examples:
11117
11132
  deepline billing off
@@ -11241,9 +11256,14 @@ Examples:
11241
11256
  ).requiredOption(
11242
11257
  "--refill-to-credits <credits>",
11243
11258
  "Recharge the balance to this amount"
11259
+ ).addOption(
11260
+ new import_commander.Option(
11261
+ "--purchase-limit-cents <cents>",
11262
+ "Deprecated: converted to credits"
11263
+ ).hideHelp()
11244
11264
  ).option(
11245
- "--purchase-limit-cents <cents>",
11246
- "Limit automatic purchases over rolling 30 days (USD cents)"
11265
+ "--purchase-limit-credits <credits>",
11266
+ "Limit automatic credit purchases over rolling 30 days (or none to remove)"
11247
11267
  ).option("--idempotency-key <key>", "Stable retry key").option("--dry-run", "Print the planned update without applying it").option("--json", "Emit JSON output").action(handleAutoRechargeSet)
11248
11268
  ).addCommand(
11249
11269
  new import_commander.Command("off").description(
@@ -1271,7 +1271,7 @@ var SDK_RELEASE = {
1271
1271
  // getters keep their established compatibility behavior.
1272
1272
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
1273
1273
  // 0.3.90 is the first deliberately versioned SDK release for API v3.
1274
- version: "0.3.98",
1274
+ version: "0.3.100",
1275
1275
  updateSummary: "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.",
1276
1276
  packageCapabilities: {
1277
1277
  updatePreferences: 1
@@ -7548,7 +7548,8 @@ var DeeplineClient = class {
7548
7548
  enabled: true,
7549
7549
  threshold_credits: options.thresholdCredits,
7550
7550
  refill_to_credits: options.refillToCredits,
7551
- ...options.purchaseLimitCents !== void 0 ? { purchase_limit_cents: options.purchaseLimitCents } : {}
7551
+ ...options.purchaseLimitCents !== void 0 ? { purchase_limit_cents: options.purchaseLimitCents } : {},
7552
+ ...options.purchaseLimitCredits !== void 0 ? { purchase_limit_credits: options.purchaseLimitCredits } : {}
7552
7553
  } : { enabled: false },
7553
7554
  { "Idempotency-Key": idempotencyKey }
7554
7555
  );
@@ -9830,7 +9831,7 @@ Examples:
9830
9831
  }
9831
9832
 
9832
9833
  // src/cli/commands/billing.ts
9833
- import { Command } from "commander";
9834
+ import { Command, Option } from "commander";
9834
9835
  import { randomUUID } from "crypto";
9835
9836
  import { appendFile, mkdir as mkdir2, writeFile as writeFile2 } from "fs/promises";
9836
9837
  import { dirname as dirname6, resolve as resolve3 } from "path";
@@ -10164,7 +10165,7 @@ async function handleUsage(options) {
10164
10165
  `Balance: ${payload.balance ?? "(unknown)"}`,
10165
10166
  `Last 30 days usage: ${last30Usage ?? "(unknown)"}`,
10166
10167
  ...Number.isFinite(temporaryHolds) && temporaryHolds > 0 ? [`Temporary holds: ${temporaryHolds}`] : [],
10167
- `Monthly spend guidance: ${quota.enabled ? quota.monthly_credits_limit ?? "(unknown)" : "off"}`,
10168
+ `Monthly usage cap: ${quota.enabled ? quota.monthly_credits_limit ?? "(unknown)" : "off"}`,
10168
10169
  ...options.runId && recent.run_id ? [
10169
10170
  `Run spend: ${(payload.run ?? {}).spent_credits ?? "(unknown)"} Deepline Credits`
10170
10171
  ] : [],
@@ -10196,9 +10197,9 @@ async function handleLimit(options) {
10196
10197
  "/api/v2/billing/limit"
10197
10198
  );
10198
10199
  const lines = payload.enabled ? [
10199
- `Monthly spend guidance: ${payload.monthly_credits_limit ?? "(unknown)"}`,
10200
- "Enforcement: advisory; available balance remains the exact admission control."
10201
- ] : ["Monthly spend guidance: off"];
10200
+ `Monthly usage cap: ${payload.monthly_credits_limit ?? "(unknown)"}`,
10201
+ "Enforcement: checked before new calls; in-flight work can exceed the cap."
10202
+ ] : ["Monthly usage cap: off"];
10202
10203
  printCommandEnvelope(
10203
10204
  {
10204
10205
  ...payload,
@@ -10220,7 +10221,7 @@ async function handleSetLimit(credits, options) {
10220
10221
  sections: [
10221
10222
  {
10222
10223
  title: "billing limit",
10223
- lines: [`Monthly spend guidance set to ${credits} credits.`]
10224
+ lines: [`Monthly usage cap set to ${credits} credits.`]
10224
10225
  }
10225
10226
  ]
10226
10227
  }
@@ -10240,7 +10241,7 @@ async function handleLimitOff(options) {
10240
10241
  sections: [
10241
10242
  {
10242
10243
  title: "billing limit",
10243
- lines: ["Monthly spend guidance is now off."]
10244
+ lines: ["Monthly usage cap is now off."]
10244
10245
  }
10245
10246
  ]
10246
10247
  }
@@ -10773,8 +10774,8 @@ async function handleAutoRechargeStatus(options) {
10773
10774
  `State: ${state}`,
10774
10775
  ...payload.threshold_credits !== null ? [`Threshold: ${payload.threshold_credits} credits`] : [],
10775
10776
  ...payload.refill_to_credits !== null ? [`Refill balance to: ${payload.refill_to_credits} credits`] : [],
10776
- ...payload.purchase_limit_cents !== void 0 ? [
10777
- payload.purchase_limit_cents === null ? "Automatic purchase cap: none" : `Automatic purchase cap: $${(payload.purchase_limit_cents / 100).toFixed(2)} per rolling 30 days`
10777
+ ...payload.purchase_limit_credits != null ? [
10778
+ `Automatic credit purchase cap: ${payload.purchase_limit_credits} credits per rolling 30 days`
10778
10779
  ] : []
10779
10780
  ];
10780
10781
  printCommandEnvelope(
@@ -10790,6 +10791,18 @@ async function handleAutoRechargeSet(options) {
10790
10791
  const thresholdCredits = parseTopUpCredits(options.thresholdCredits);
10791
10792
  const refillToCredits = parseTopUpCredits(options.refillToCredits);
10792
10793
  const rollingLimitCents = options.purchaseLimitCents === void 0 ? void 0 : options.purchaseLimitCents === "none" ? null : Number(options.purchaseLimitCents);
10794
+ const rollingLimitCredits = options.purchaseLimitCredits === void 0 ? void 0 : options.purchaseLimitCredits === "none" ? null : Number(options.purchaseLimitCredits);
10795
+ if (rollingLimitCredits != null && (!Number.isSafeInteger(rollingLimitCredits) || rollingLimitCredits < 0)) {
10796
+ reportBillingFailure(
10797
+ {
10798
+ exitCode: 2,
10799
+ code: "INVALID_AUTO_RECHARGE_CONFIGURATION",
10800
+ message: "--purchase-limit-credits must be a nonnegative whole number of credits or none."
10801
+ },
10802
+ options
10803
+ );
10804
+ return;
10805
+ }
10793
10806
  if (rollingLimitCents !== void 0 && rollingLimitCents !== null && (!Number.isSafeInteger(rollingLimitCents) || rollingLimitCents <= 0)) {
10794
10807
  reportBillingFailure(
10795
10808
  {
@@ -10826,7 +10839,8 @@ async function handleAutoRechargeSet(options) {
10826
10839
  enabled: true,
10827
10840
  threshold_credits: thresholdCredits,
10828
10841
  refill_to_credits: refillToCredits,
10829
- ...rollingLimitCents !== void 0 ? { purchase_limit_cents: rollingLimitCents } : {}
10842
+ ...rollingLimitCents !== void 0 ? { purchase_limit_cents: rollingLimitCents } : {},
10843
+ ...rollingLimitCredits !== void 0 ? { purchase_limit_credits: rollingLimitCredits } : {}
10830
10844
  }
10831
10845
  }
10832
10846
  },
@@ -10839,6 +10853,7 @@ async function handleAutoRechargeSet(options) {
10839
10853
  thresholdCredits,
10840
10854
  refillToCredits,
10841
10855
  ...rollingLimitCents !== void 0 ? { purchaseLimitCents: rollingLimitCents } : {},
10856
+ ...rollingLimitCredits !== void 0 ? { purchaseLimitCredits: rollingLimitCredits } : {},
10842
10857
  idempotencyKey
10843
10858
  });
10844
10859
  printCommandEnvelope(
@@ -11067,36 +11082,36 @@ Examples:
11067
11082
  "--cursor <cursor>",
11068
11083
  "Recent-call cursor from the previous response"
11069
11084
  ).option("--run-id <run_id>", "Show recent usage for one play run").option("--json", "Emit JSON output. Also automatic when stdout is piped").action(handleUsage);
11070
- billing.command("limit").description("Show configured monthly spend guidance.").addHelpText(
11085
+ billing.command("limit").description("Show configured monthly usage cap.").addHelpText(
11071
11086
  "after",
11072
11087
  `
11073
11088
  Notes:
11074
- Read-only. Shows whether monthly workspace spend guidance is enabled.
11075
- Guidance does not reject funded work; available balance remains exact.
11089
+ Read-only. Shows whether monthly workspace usage cap is enabled.
11090
+ New calls are checked against this usage cap, separately from wallet funding.
11076
11091
 
11077
11092
  Examples:
11078
11093
  deepline billing limit
11079
11094
  deepline billing limit --json
11080
11095
  `
11081
11096
  ).option("--json", "Emit JSON output. Also automatic when stdout is piped").action(handleLimit);
11082
- billing.command("set-limit").description("Set monthly spend guidance.").addHelpText(
11097
+ billing.command("set-limit").description("Set monthly usage cap.").addHelpText(
11083
11098
  "after",
11084
11099
  `
11085
11100
  Notes:
11086
11101
  Mutates workspace billing settings. The argument is a Deepline credit amount,
11087
- not dollars and not provider credits. Guidance is advisory; it does not
11088
- replace the exact available-balance admission check.
11102
+ not dollars and not provider credits. New calls are checked against the cap;
11103
+ in-flight work can still finish and exceed it. Buying credits does not reset it.
11089
11104
 
11090
11105
  Examples:
11091
11106
  deepline billing set-limit 500
11092
11107
  deepline billing set-limit 500 --json
11093
11108
  `
11094
11109
  ).argument("<credits>", "Monthly credits limit").option("--json", "Emit JSON output. Also automatic when stdout is piped").action(handleSetLimit);
11095
- billing.command("off").description("Disable monthly spend guidance.").addHelpText(
11110
+ billing.command("off").description("Disable monthly usage cap.").addHelpText(
11096
11111
  "after",
11097
11112
  `
11098
11113
  Notes:
11099
- Mutates workspace billing settings by removing monthly Deepline spend guidance.
11114
+ Mutates workspace billing settings by removing monthly Deepline usage cap.
11100
11115
 
11101
11116
  Examples:
11102
11117
  deepline billing off
@@ -11226,9 +11241,14 @@ Examples:
11226
11241
  ).requiredOption(
11227
11242
  "--refill-to-credits <credits>",
11228
11243
  "Recharge the balance to this amount"
11244
+ ).addOption(
11245
+ new Option(
11246
+ "--purchase-limit-cents <cents>",
11247
+ "Deprecated: converted to credits"
11248
+ ).hideHelp()
11229
11249
  ).option(
11230
- "--purchase-limit-cents <cents>",
11231
- "Limit automatic purchases over rolling 30 days (USD cents)"
11250
+ "--purchase-limit-credits <credits>",
11251
+ "Limit automatic credit purchases over rolling 30 days (or none to remove)"
11232
11252
  ).option("--idempotency-key <key>", "Stable retry key").option("--dry-run", "Print the planned update without applying it").option("--json", "Emit JSON output").action(handleAutoRechargeSet)
11233
11253
  ).addCommand(
11234
11254
  new Command("off").description(
@@ -13058,7 +13078,7 @@ import {
13058
13078
  } from "fs/promises";
13059
13079
  import { homedir as homedir6, tmpdir as tmpdir4 } from "os";
13060
13080
  import { basename as basename4, dirname as dirname11, extname as extname3, join as join11, resolve as resolve12 } from "path";
13061
- import { Option } from "commander";
13081
+ import { Option as Option2 } from "commander";
13062
13082
 
13063
13083
  // src/cli/commands/play.ts
13064
13084
  import { createHash as createHash4, randomUUID as randomUUID3 } from "crypto";
@@ -31306,7 +31326,7 @@ function registerEnrichCommand(program) {
31306
31326
  "--open",
31307
31327
  "Open the generated play page in a browser after the run starts."
31308
31328
  ).addOption(
31309
- new Option(
31329
+ new Option2(
31310
31330
  "--no-open [legacy-value]",
31311
31331
  "Removed legacy option"
31312
31332
  ).hideHelp()
@@ -31682,7 +31702,7 @@ function registerEnrichCommand(program) {
31682
31702
  }
31683
31703
 
31684
31704
  // src/cli/commands/feedback.ts
31685
- import { Option as Option2 } from "commander";
31705
+ import { Option as Option3 } from "commander";
31686
31706
  import { readFileSync as readFileSync9 } from "fs";
31687
31707
  async function handleFeedback(text, options) {
31688
31708
  const message = resolveFeedbackText(text, options.file);
@@ -31763,7 +31783,7 @@ Examples:
31763
31783
  deepline feedback send "plays run failed after upload" --command "deepline plays run my.play.ts --watch" --error-outcome terminal
31764
31784
  `
31765
31785
  ).argument("[text]", "Feedback text").option("--file <path>", "Read feedback text from a file, or - for stdin").option("--command <command>", "Command that reproduced the issue").option("--payload <payload>", "JSON or plain-text payload for the repro").addOption(
31766
- new Option2(
31786
+ new Option3(
31767
31787
  "--error-outcome <outcome>",
31768
31788
  "Error impact on the task: terminal or continued"
31769
31789
  ).choices(["terminal", "continued"])
@@ -42333,7 +42353,7 @@ Examples:
42333
42353
  }
42334
42354
 
42335
42355
  // src/cli/commands/tools.ts
42336
- import { Option as Option3 } from "commander";
42356
+ import { Option as Option4 } from "commander";
42337
42357
  import {
42338
42358
  chmodSync,
42339
42359
  existsSync as existsSync19,
@@ -43405,12 +43425,12 @@ Examples:
43405
43425
  "--examples-only",
43406
43426
  "Only print runnable examples and sample payloads"
43407
43427
  ).option("--getters-only", "Only print extracted list/value getters").addOption(
43408
- new Option3(
43428
+ new Option4(
43409
43429
  "--compact",
43410
43430
  "Compatibility alias for the default compact view"
43411
43431
  ).hideHelp()
43412
43432
  ).addOption(
43413
- new Option3(
43433
+ new Option4(
43414
43434
  "--contract-json",
43415
43435
  "Compatibility alias for compact contract JSON"
43416
43436
  ).hideHelp()
package/dist/index.d.mts CHANGED
@@ -3667,7 +3667,9 @@ type TargetAutoRechargeResult = {
3667
3667
  refill_to_credits: number | null;
3668
3668
  rolling_limit_cents: null;
3669
3669
  purchase_limit_cents?: number | null;
3670
+ purchase_limit_credits?: number | null;
3670
3671
  rolling_committed_cents?: number;
3672
+ rolling_committed_credits?: number;
3671
3673
  };
3672
3674
  type TargetAutoRechargeUpdateOptions = {
3673
3675
  enabled: false;
@@ -3676,8 +3678,10 @@ type TargetAutoRechargeUpdateOptions = {
3676
3678
  enabled: true;
3677
3679
  thresholdCredits: number;
3678
3680
  refillToCredits: number;
3679
- /** Maximum automatic purchases in a rolling 30-day window, in USD cents. */
3681
+ /** @deprecated Converted to credits at the API boundary. Use purchaseLimitCredits. */
3680
3682
  purchaseLimitCents?: number | null;
3683
+ /** Maximum credits purchased automatically over rolling 30 days; zero stops purchases. */
3684
+ purchaseLimitCredits?: number | null;
3681
3685
  idempotencyKey: string;
3682
3686
  };
3683
3687
  type TargetBillingMutationResult = {
package/dist/index.d.ts CHANGED
@@ -3667,7 +3667,9 @@ type TargetAutoRechargeResult = {
3667
3667
  refill_to_credits: number | null;
3668
3668
  rolling_limit_cents: null;
3669
3669
  purchase_limit_cents?: number | null;
3670
+ purchase_limit_credits?: number | null;
3670
3671
  rolling_committed_cents?: number;
3672
+ rolling_committed_credits?: number;
3671
3673
  };
3672
3674
  type TargetAutoRechargeUpdateOptions = {
3673
3675
  enabled: false;
@@ -3676,8 +3678,10 @@ type TargetAutoRechargeUpdateOptions = {
3676
3678
  enabled: true;
3677
3679
  thresholdCredits: number;
3678
3680
  refillToCredits: number;
3679
- /** Maximum automatic purchases in a rolling 30-day window, in USD cents. */
3681
+ /** @deprecated Converted to credits at the API boundary. Use purchaseLimitCredits. */
3680
3682
  purchaseLimitCents?: number | null;
3683
+ /** Maximum credits purchased automatically over rolling 30 days; zero stops purchases. */
3684
+ purchaseLimitCredits?: number | null;
3681
3685
  idempotencyKey: string;
3682
3686
  };
3683
3687
  type TargetBillingMutationResult = {
package/dist/index.js CHANGED
@@ -860,7 +860,7 @@ var SDK_RELEASE = {
860
860
  // getters keep their established compatibility behavior.
861
861
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
862
862
  // 0.3.90 is the first deliberately versioned SDK release for API v3.
863
- version: "0.3.98",
863
+ version: "0.3.100",
864
864
  updateSummary: "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.",
865
865
  packageCapabilities: {
866
866
  updatePreferences: 1
@@ -7003,7 +7003,8 @@ var DeeplineClient = class {
7003
7003
  enabled: true,
7004
7004
  threshold_credits: options.thresholdCredits,
7005
7005
  refill_to_credits: options.refillToCredits,
7006
- ...options.purchaseLimitCents !== void 0 ? { purchase_limit_cents: options.purchaseLimitCents } : {}
7006
+ ...options.purchaseLimitCents !== void 0 ? { purchase_limit_cents: options.purchaseLimitCents } : {},
7007
+ ...options.purchaseLimitCredits !== void 0 ? { purchase_limit_credits: options.purchaseLimitCredits } : {}
7007
7008
  } : { enabled: false },
7008
7009
  { "Idempotency-Key": idempotencyKey }
7009
7010
  );
package/dist/index.mjs CHANGED
@@ -768,7 +768,7 @@ var SDK_RELEASE = {
768
768
  // getters keep their established compatibility behavior.
769
769
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
770
770
  // 0.3.90 is the first deliberately versioned SDK release for API v3.
771
- version: "0.3.98",
771
+ version: "0.3.100",
772
772
  updateSummary: "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.",
773
773
  packageCapabilities: {
774
774
  updatePreferences: 1
@@ -6911,7 +6911,8 @@ var DeeplineClient = class {
6911
6911
  enabled: true,
6912
6912
  threshold_credits: options.thresholdCredits,
6913
6913
  refill_to_credits: options.refillToCredits,
6914
- ...options.purchaseLimitCents !== void 0 ? { purchase_limit_cents: options.purchaseLimitCents } : {}
6914
+ ...options.purchaseLimitCents !== void 0 ? { purchase_limit_cents: options.purchaseLimitCents } : {},
6915
+ ...options.purchaseLimitCredits !== void 0 ? { purchase_limit_credits: options.purchaseLimitCredits } : {}
6915
6916
  } : { enabled: false },
6916
6917
  { "Idempotency-Key": idempotencyKey }
6917
6918
  );
@@ -149,7 +149,7 @@ type SdkRelease = {
149
149
  supportPolicy: SdkSupportPolicy;
150
150
  };
151
151
  declare const SDK_RELEASE: {
152
- readonly version: "0.3.98";
152
+ readonly version: "0.3.100";
153
153
  readonly updateSummary: "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.";
154
154
  readonly packageCapabilities: {
155
155
  readonly updatePreferences: 1;
package/dist/release.d.ts CHANGED
@@ -149,7 +149,7 @@ type SdkRelease = {
149
149
  supportPolicy: SdkSupportPolicy;
150
150
  };
151
151
  declare const SDK_RELEASE: {
152
- readonly version: "0.3.98";
152
+ readonly version: "0.3.100";
153
153
  readonly updateSummary: "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.";
154
154
  readonly packageCapabilities: {
155
155
  readonly updatePreferences: 1;
package/dist/release.js CHANGED
@@ -74,7 +74,7 @@ var SDK_RELEASE = {
74
74
  // getters keep their established compatibility behavior.
75
75
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
76
76
  // 0.3.90 is the first deliberately versioned SDK release for API v3.
77
- version: "0.3.98",
77
+ version: "0.3.100",
78
78
  updateSummary: "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.",
79
79
  packageCapabilities: {
80
80
  updatePreferences: 1
package/dist/release.mjs CHANGED
@@ -48,7 +48,7 @@ var SDK_RELEASE = {
48
48
  // getters keep their established compatibility behavior.
49
49
  // 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
50
50
  // 0.3.90 is the first deliberately versioned SDK release for API v3.
51
- version: "0.3.98",
51
+ version: "0.3.100",
52
52
  updateSummary: "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.",
53
53
  packageCapabilities: {
54
54
  updatePreferences: 1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "deepline",
3
- "version": "0.3.98",
3
+ "version": "0.3.100",
4
4
  "description": "GTM data CLI and TypeScript SDK for coding agents",
5
5
  "license": "MIT",
6
6
  "homepage": "https://code.deepline.com",