deepline 0.3.346 → 0.3.348
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.
- package/dist/bundling-sources/sdk/src/client.ts +5 -0
- package/dist/bundling-sources/sdk/src/http.ts +14 -0
- package/dist/bundling-sources/sdk/src/index.ts +1 -0
- package/dist/bundling-sources/sdk/src/release.ts +1 -1
- package/dist/bundling-sources/sdk/src/tool-calls.ts +78 -17
- package/dist/bundling-sources/shared_libs/integration-contracts/billing-entitlements.ts +29 -0
- package/dist/bundling-sources/shared_libs/play-runtime/app-runtime-api.ts +32 -1
- package/dist/bundling-sources/shared_libs/play-runtime/context.ts +17 -1
- package/dist/bundling-sources/shared_libs/play-runtime/execution-capabilities.ts +18 -0
- package/dist/bundling-sources/shared_libs/play-runtime/internal-bootstrap-token.ts +9 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-authority.ts +11 -0
- package/dist/bundling-sources/shared_libs/play-runtime/runtime-operation-contract.ts +6 -0
- package/dist/bundling-sources/shared_libs/play-runtime/workflow-executor-auth.ts +3 -0
- package/dist/bundling-sources/shared_libs/plays/authoring-contract.ts +13 -0
- package/dist/cli/{auth-HTWHQNMY.mjs → auth-ME53BGXD.mjs} +4 -4
- package/dist/cli/auth-YHS2NN4I.js +31 -0
- package/dist/cli/{billing-X56CVZWC.mjs → billing-466LUN65.mjs} +31 -4
- package/dist/cli/{billing-4DCHVGO5.js → billing-EMRJAWNG.js} +99 -72
- package/dist/cli/{chunk-MOVEHSNM.mjs → chunk-2G7KMDDI.mjs} +1 -1
- package/dist/cli/{chunk-T7EVEXHS.js → chunk-2JRKH263.js} +15 -15
- package/dist/cli/{chunk-KQCTQGUU.mjs → chunk-35PLGSH6.mjs} +52 -16
- package/dist/cli/{chunk-EJ2NVO5K.js → chunk-4JJN7BDI.js} +48 -48
- package/dist/cli/{chunk-2GRMXCLZ.mjs → chunk-5AZNXX2S.mjs} +1 -1
- package/dist/cli/{chunk-L2R72RQJ.js → chunk-5HLM2PGK.js} +8 -8
- package/dist/cli/{chunk-5NNSJTJ3.js → chunk-5IYFQJHX.js} +280 -244
- package/dist/cli/{chunk-FKKNYKDY.js → chunk-5O4B6AUN.js} +2 -0
- package/dist/cli/{chunk-XAM3XOUA.mjs → chunk-5UWZ52IW.mjs} +2 -2
- package/dist/cli/{chunk-2RJ7RMRM.js → chunk-6NM2IY4B.js} +8 -8
- package/dist/cli/{chunk-NTVTZAVZ.mjs → chunk-7E66A24V.mjs} +2 -0
- package/dist/cli/{chunk-3GLIYDIF.mjs → chunk-BAJXRIRP.mjs} +2 -2
- package/dist/cli/{chunk-62TKYGY6.mjs → chunk-CA7RR4UD.mjs} +3 -3
- package/dist/cli/{chunk-O4SXVVNQ.mjs → chunk-CEC3BXRV.mjs} +1 -1
- package/dist/cli/{chunk-IIOBMOMH.mjs → chunk-DSWSEHRX.mjs} +1 -1
- package/dist/cli/{chunk-4Q572AVS.js → chunk-EWYHXSV4.js} +6 -6
- package/dist/cli/{chunk-22GXXUTB.js → chunk-GVJPI7MB.js} +33 -27
- package/dist/cli/{chunk-SGBSQHXS.js → chunk-IICCYB57.js} +64 -62
- package/dist/cli/{chunk-5QG2UAYH.js → chunk-KGKPHGDT.js} +2 -2
- package/dist/cli/{chunk-GCBLVWDQ.mjs → chunk-L645OZEB.mjs} +17 -8
- package/dist/cli/{chunk-ZR4EHO62.mjs → chunk-MM6X5ADB.mjs} +2 -2
- package/dist/cli/{chunk-AFNEQ43J.js → chunk-MX53GIOB.js} +40 -1
- package/dist/cli/{chunk-YUKZHAFW.js → chunk-NX4WJO5P.js} +26 -26
- package/dist/cli/{chunk-GGSLHWTB.js → chunk-PQZURAHR.js} +1 -1
- package/dist/cli/{chunk-WKZTHHJI.mjs → chunk-Q37KLZXK.mjs} +10 -8
- package/dist/cli/{chunk-OJVAVQLB.js → chunk-QGKPTBRR.js} +3 -3
- package/dist/cli/{chunk-ZEUFYRUR.js → chunk-SIE7MILM.js} +257 -248
- package/dist/cli/{chunk-YEKAGC52.js → chunk-U5U2DJ3A.js} +60 -60
- package/dist/cli/{chunk-NVNHV73C.mjs → chunk-UCVFMPAO.mjs} +2 -2
- package/dist/cli/{chunk-VC7M2QR7.mjs → chunk-VWSEZMCR.mjs} +7 -1
- package/dist/cli/{chunk-P4IKGWYF.mjs → chunk-XVWOERRO.mjs} +4 -4
- package/dist/cli/{chunk-JOA6IKDE.mjs → chunk-Z6B4UPM4.mjs} +39 -0
- package/dist/cli/client-F47WSZBF.js +20 -0
- package/dist/cli/{client-C2KUT452.mjs → client-K3EFOESB.mjs} +3 -3
- package/dist/cli/{csv-3TAA2MTR.js → csv-4UFHUMIR.js} +12 -12
- package/dist/cli/{csv-SLACAH4F.mjs → csv-ZFH725GM.mjs} +3 -3
- package/dist/cli/{db-BT6Q3FE6.js → db-EJHH7IBM.js} +29 -29
- package/dist/cli/{db-IN4I6KJ5.mjs → db-KTJSJ6LJ.mjs} +4 -4
- package/dist/cli/{describe-EDXTYMOF.mjs → describe-2GXTRRSJ.mjs} +11 -11
- package/dist/cli/{describe-FJZXYKFH.js → describe-ZQXDXWKZ.js} +27 -27
- package/dist/cli/{executions-YYQC2TVR.js → executions-FEBZXTAI.js} +6 -6
- package/dist/cli/{executions-X36QA5NY.mjs → executions-ZFEW2R3V.mjs} +4 -4
- package/dist/cli/{feedback-KTEPHZ4S.mjs → feedback-BYMYIBHU.mjs} +3 -3
- package/dist/cli/{feedback-BS3S46O3.js → feedback-F3LKI327.js} +7 -7
- package/dist/cli/{git-3ZVYB63W.mjs → git-A3V2AKGA.mjs} +4 -4
- package/dist/cli/git-PWHYGNBR.js +23 -0
- package/dist/cli/index.js +79 -79
- package/dist/cli/index.mjs +31 -31
- package/dist/cli/{legacy-noops-VVBJXM2K.mjs → legacy-noops-IMOMP5NH.mjs} +4 -4
- package/dist/cli/{legacy-noops-V5R7ITER.js → legacy-noops-TYXWVLSD.js} +7 -7
- package/dist/cli/{monitors-J6XDE76B.js → monitors-BG2EP4M2.js} +85 -85
- package/dist/cli/{monitors-KYTMBNUQ.mjs → monitors-PJWHKJAG.mjs} +4 -4
- package/dist/cli/{org-RGABGQKP.mjs → org-CVCRHGQF.mjs} +4 -4
- package/dist/cli/{org-MHF2NGDV.js → org-NM7EROYH.js} +60 -60
- package/dist/cli/{play-UII4SSA7.mjs → play-ESB6ZDMP.mjs} +10 -10
- package/dist/cli/play-MYWKV6MH.js +153 -0
- package/dist/cli/{providers-LQOSKPUH.mjs → providers-BPDX7QBF.mjs} +4 -4
- package/dist/cli/{providers-3GDMD7T6.js → providers-EXITLSJG.js} +7 -7
- package/dist/cli/{quickstart-R34Z7EMU.js → quickstart-55MBPFRI.js} +5 -5
- package/dist/cli/{quickstart-GAMYLCLJ.mjs → quickstart-P5HLSTZB.mjs} +3 -3
- package/dist/cli/search-2JFDCWWK.js +26 -0
- package/dist/cli/{search-AOOMDVF5.mjs → search-UJ3KOFZV.mjs} +5 -5
- package/dist/cli/{secrets-T4XXIASK.js → secrets-TLV2Q4Z5.js} +13 -13
- package/dist/cli/{secrets-U7YGLUSX.mjs → secrets-XJCZM2M2.mjs} +4 -4
- package/dist/cli/{sessions-VPXR4DSZ.mjs → sessions-4XMG3DEE.mjs} +4 -4
- package/dist/cli/{sessions-JQGKWKJS.js → sessions-DJWLUVXM.js} +5 -5
- package/dist/cli/{settings-LP55G43L.mjs → settings-3ZGLOANJ.mjs} +7 -7
- package/dist/cli/{settings-LXF45R7X.js → settings-KBNCPN3E.js} +74 -74
- package/dist/cli/{setup-36QA4JI3.mjs → setup-R3UV4ZXN.mjs} +6 -6
- package/dist/cli/{setup-MA2GLU4N.js → setup-WZZXC7H5.js} +41 -41
- package/dist/cli/{skills-HB6PARLZ.mjs → skills-44RXNHZH.mjs} +4 -4
- package/dist/cli/skills-52WTBX7A.js +28 -0
- package/dist/cli/tools-4ESTBMSN.js +40 -0
- package/dist/cli/{tools-E7K7R4AO.mjs → tools-NLUPNYR3.mjs} +8 -8
- package/dist/cli/{update-IT63P3NV.mjs → update-57GQJRXF.mjs} +6 -6
- package/dist/cli/update-V2FZCYNP.js +28 -0
- package/dist/cli/{workflow-UO3PMX7R.mjs → workflow-ARCLSKBC.mjs} +5 -5
- package/dist/cli/{workflow-SJHASZ5C.js → workflow-XI7LZRTQ.js} +15 -15
- package/dist/{client-DW3zASj8.d.ts → client-4DbE-U6e.d.ts} +9 -1
- package/dist/{client-BHReRdWK.d.mts → client-DIJpwhl-.d.mts} +9 -1
- package/dist/{compiler-manifest-CButyeZ8.d.mts → compiler-manifest-DgdW0q0b.d.mts} +42 -1
- package/dist/{compiler-manifest-CButyeZ8.d.ts → compiler-manifest-DgdW0q0b.d.ts} +42 -1
- package/dist/{index-BMsNUoL5.d.mts → index-C3nQQTI-.d.mts} +1 -1
- package/dist/{index-LDRzwo09.d.ts → index-CEYQAfS0.d.ts} +1 -1
- package/dist/index.d.mts +6 -6
- package/dist/index.d.ts +6 -6
- package/dist/index.js +7 -7
- package/dist/index.mjs +4 -4
- package/dist/install-integrity.json +87 -86
- package/dist/plays/bundle-play-file.d.mts +3 -3
- package/dist/plays/bundle-play-file.d.ts +3 -3
- package/dist/plays/bundle-play-file.mjs +2 -2
- package/dist/plays/run-request.d.mts +2 -2
- package/dist/plays/run-request.d.ts +2 -2
- package/dist/release.d.mts +1 -1
- package/dist/release.d.ts +1 -1
- package/dist/release.js +2 -2
- package/dist/release.mjs +1 -1
- package/package.json +1 -1
- package/dist/cli/auth-5YTC2XH2.js +0 -31
- package/dist/cli/client-4RKYHB7Z.js +0 -20
- package/dist/cli/git-ZHAD5TJN.js +0 -23
- package/dist/cli/play-ZWAH3U44.js +0 -153
- package/dist/cli/search-FVB7ZNCO.js +0 -26
- package/dist/cli/skills-GUWC4FV7.js +0 -28
- package/dist/cli/tools-T5WIAD5Z.js +0 -40
- package/dist/cli/update-QY6RY3A6.js +0 -28
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _chunk5IYFQJHXjs = require('./chunk-5IYFQJHX.js');
|
|
6
6
|
require('./chunk-LA46MMTL.js');
|
|
7
7
|
|
|
8
8
|
|
|
@@ -10,13 +10,13 @@ require('./chunk-LA46MMTL.js');
|
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
var
|
|
13
|
+
var _chunkEWYHXSV4js = require('./chunk-EWYHXSV4.js');
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
var
|
|
17
|
+
var _chunkGVJPI7MBjs = require('./chunk-GVJPI7MB.js');
|
|
18
18
|
require('./chunk-XNYIZMNQ.js');
|
|
19
|
-
require('./chunk-
|
|
19
|
+
require('./chunk-PQZURAHR.js');
|
|
20
20
|
require('./chunk-S6R3OX7B.js');
|
|
21
21
|
|
|
22
22
|
|
|
@@ -35,7 +35,7 @@ var SUBSCRIPTION_CANCEL_PATH = "/api/v2/billing/subscription/cancel";
|
|
|
35
35
|
var BILLING_TOP_UP_PATH = "/api/v2/billing/top-up";
|
|
36
36
|
var DEFAULT_BALANCE_RECOVERY_CREDITS = 100;
|
|
37
37
|
function billingFailureFromError(error, options) {
|
|
38
|
-
if (error instanceof
|
|
38
|
+
if (error instanceof _chunkGVJPI7MBjs.AuthError) {
|
|
39
39
|
return {
|
|
40
40
|
exitCode: 3,
|
|
41
41
|
code: "AUTH_ERROR",
|
|
@@ -69,7 +69,7 @@ function reportBillingFailure(failure, options) {
|
|
|
69
69
|
if (failure.next) {
|
|
70
70
|
textLines.push(`Next: ${failure.next}`);
|
|
71
71
|
}
|
|
72
|
-
|
|
72
|
+
_chunkEWYHXSV4js.printCommandEnvelope.call(void 0,
|
|
73
73
|
{
|
|
74
74
|
ok: false,
|
|
75
75
|
exitCode: failure.exitCode,
|
|
@@ -90,7 +90,7 @@ function parseTopUpCredits(raw) {
|
|
|
90
90
|
return parsed;
|
|
91
91
|
}
|
|
92
92
|
function topUpIdempotencyKey(raw) {
|
|
93
|
-
return raw === void 0 ? `cli_topup:${Date.now()}:${_crypto.randomUUID.call(void 0, )}` :
|
|
93
|
+
return raw === void 0 ? `cli_topup:${Date.now()}:${_crypto.randomUUID.call(void 0, )}` : _chunk5IYFQJHXjs.requireBillingIdempotencyKey.call(void 0, raw);
|
|
94
94
|
}
|
|
95
95
|
function targetBillingIdempotencyKey(raw) {
|
|
96
96
|
return typeof raw === "string" ? raw : `cli_target_billing:${Date.now()}:${_crypto.randomUUID.call(void 0, )}`;
|
|
@@ -127,7 +127,7 @@ function apiErrorCode(error) {
|
|
|
127
127
|
return _nullishCoalesce(error.code, () => ( "BILLING_API_ERROR"));
|
|
128
128
|
}
|
|
129
129
|
function billingTopUpFailureFromError(error, input) {
|
|
130
|
-
if (error instanceof
|
|
130
|
+
if (error instanceof _chunkGVJPI7MBjs.AuthError || error instanceof _chunkGVJPI7MBjs.ConfigError) {
|
|
131
131
|
return {
|
|
132
132
|
exitCode: 3,
|
|
133
133
|
code: "AUTH_ERROR",
|
|
@@ -296,7 +296,7 @@ function defaultLedgerExportPath() {
|
|
|
296
296
|
);
|
|
297
297
|
}
|
|
298
298
|
async function handleBalance(options) {
|
|
299
|
-
const { http } =
|
|
299
|
+
const { http } = _chunkEWYHXSV4js.getAuthedHttpClient.call(void 0, );
|
|
300
300
|
const payload = await http.get(
|
|
301
301
|
"/api/v2/billing/balance"
|
|
302
302
|
);
|
|
@@ -364,7 +364,7 @@ async function handleBalance(options) {
|
|
|
364
364
|
...options.verbose ? detail : [],
|
|
365
365
|
...lines.slice(1)
|
|
366
366
|
];
|
|
367
|
-
|
|
367
|
+
_chunkEWYHXSV4js.printCommandEnvelope.call(void 0,
|
|
368
368
|
{
|
|
369
369
|
...payload,
|
|
370
370
|
...recovery ? { recovery } : {},
|
|
@@ -388,7 +388,7 @@ function quoteShellArgument(value) {
|
|
|
388
388
|
return `'${value.replace(/'/g, `'\\''`)}'`;
|
|
389
389
|
}
|
|
390
390
|
async function handleUsage(options) {
|
|
391
|
-
const { http } =
|
|
391
|
+
const { http } = _chunkEWYHXSV4js.getAuthedHttpClient.call(void 0, );
|
|
392
392
|
const params = new URLSearchParams();
|
|
393
393
|
if (options.requestId !== void 0) {
|
|
394
394
|
const requestId = options.requestId.trim();
|
|
@@ -469,7 +469,7 @@ async function handleUsage(options) {
|
|
|
469
469
|
"No continuation is available for this view. Use deepline billing ledger export all --json for the full ledger."
|
|
470
470
|
] : []
|
|
471
471
|
];
|
|
472
|
-
|
|
472
|
+
_chunkEWYHXSV4js.printCommandEnvelope.call(void 0,
|
|
473
473
|
{
|
|
474
474
|
...payload,
|
|
475
475
|
recent: {
|
|
@@ -483,7 +483,7 @@ async function handleUsage(options) {
|
|
|
483
483
|
);
|
|
484
484
|
}
|
|
485
485
|
async function handleLimit(options) {
|
|
486
|
-
const { http } =
|
|
486
|
+
const { http } = _chunkEWYHXSV4js.getAuthedHttpClient.call(void 0, );
|
|
487
487
|
const payload = await http.get(
|
|
488
488
|
"/api/v2/billing/limit"
|
|
489
489
|
);
|
|
@@ -491,7 +491,7 @@ async function handleLimit(options) {
|
|
|
491
491
|
`Monthly usage cap: ${_nullishCoalesce(payload.monthly_credits_limit, () => ( "(unknown)"))}`,
|
|
492
492
|
"Enforcement: checked before new calls; in-flight work can exceed the cap."
|
|
493
493
|
] : ["Monthly usage cap: off"];
|
|
494
|
-
|
|
494
|
+
_chunkEWYHXSV4js.printCommandEnvelope.call(void 0,
|
|
495
495
|
{
|
|
496
496
|
...payload,
|
|
497
497
|
render: { sections: [{ title: "billing limit", lines }] }
|
|
@@ -500,12 +500,12 @@ async function handleLimit(options) {
|
|
|
500
500
|
);
|
|
501
501
|
}
|
|
502
502
|
async function handleSetLimit(credits, options) {
|
|
503
|
-
const { http } =
|
|
503
|
+
const { http } = _chunkEWYHXSV4js.getAuthedHttpClient.call(void 0, );
|
|
504
504
|
const payload = await http.request("/api/v2/billing/limit", {
|
|
505
505
|
method: "PUT",
|
|
506
506
|
body: { monthly_credits_limit: Number.parseInt(credits, 10) }
|
|
507
507
|
});
|
|
508
|
-
|
|
508
|
+
_chunkEWYHXSV4js.printCommandEnvelope.call(void 0,
|
|
509
509
|
{
|
|
510
510
|
...payload,
|
|
511
511
|
render: {
|
|
@@ -521,11 +521,11 @@ async function handleSetLimit(credits, options) {
|
|
|
521
521
|
);
|
|
522
522
|
}
|
|
523
523
|
async function handleLimitOff(options) {
|
|
524
|
-
const { http } =
|
|
524
|
+
const { http } = _chunkEWYHXSV4js.getAuthedHttpClient.call(void 0, );
|
|
525
525
|
const payload = await http.request("/api/v2/billing/limit", {
|
|
526
526
|
method: "DELETE"
|
|
527
527
|
});
|
|
528
|
-
|
|
528
|
+
_chunkEWYHXSV4js.printCommandEnvelope.call(void 0,
|
|
529
529
|
{
|
|
530
530
|
...payload,
|
|
531
531
|
render: {
|
|
@@ -545,7 +545,7 @@ async function exportLedger(http, outputPath, options) {
|
|
|
545
545
|
let initialized = false;
|
|
546
546
|
let pageNumber = 0;
|
|
547
547
|
console.error(`Exporting billing ledger to ${outputPath}`);
|
|
548
|
-
for await (const entries of
|
|
548
|
+
for await (const entries of _chunk5IYFQJHXjs.iterateCursorPages.call(void 0, async (cursor) => {
|
|
549
549
|
pageNumber += 1;
|
|
550
550
|
console.error(
|
|
551
551
|
`Fetching page ${pageNumber}; ${summary.row_count} rows written.`
|
|
@@ -584,7 +584,7 @@ async function exportLedger(http, outputPath, options) {
|
|
|
584
584
|
return summary;
|
|
585
585
|
}
|
|
586
586
|
async function handleHistory(options) {
|
|
587
|
-
const { http } =
|
|
587
|
+
const { http } = _chunkEWYHXSV4js.getAuthedHttpClient.call(void 0, );
|
|
588
588
|
const windows = {
|
|
589
589
|
"1d": 86400,
|
|
590
590
|
"1w": 604800,
|
|
@@ -596,10 +596,10 @@ async function handleHistory(options) {
|
|
|
596
596
|
process.cwd(),
|
|
597
597
|
"deepline",
|
|
598
598
|
"data",
|
|
599
|
-
|
|
599
|
+
_chunkEWYHXSV4js.createTimestampedName.call(void 0, `billing-history-${options.time}`, "csv")
|
|
600
600
|
);
|
|
601
601
|
const summary = await exportLedger(http, outputPath, { sinceAt });
|
|
602
|
-
|
|
602
|
+
_chunkEWYHXSV4js.printCommandEnvelope.call(void 0,
|
|
603
603
|
{
|
|
604
604
|
output_path: outputPath,
|
|
605
605
|
row_count: summary.row_count,
|
|
@@ -636,14 +636,14 @@ async function handleLedgerExportAll(options) {
|
|
|
636
636
|
);
|
|
637
637
|
return;
|
|
638
638
|
}
|
|
639
|
-
const { http } =
|
|
639
|
+
const { http } = _chunkEWYHXSV4js.getAuthedHttpClient.call(void 0, );
|
|
640
640
|
const outputPath = options.output ? _path.resolve.call(void 0, String(options.output)) : defaultLedgerExportPath();
|
|
641
641
|
const summary = await exportLedger(http, outputPath, {
|
|
642
642
|
sinceAt,
|
|
643
643
|
runId: options.runId,
|
|
644
644
|
operation: options.operation
|
|
645
645
|
});
|
|
646
|
-
|
|
646
|
+
_chunkEWYHXSV4js.printCommandEnvelope.call(void 0,
|
|
647
647
|
{
|
|
648
648
|
output_path: outputPath,
|
|
649
649
|
row_count: summary.row_count,
|
|
@@ -682,7 +682,7 @@ function targetPlanLine(plan) {
|
|
|
682
682
|
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"}`;
|
|
683
683
|
}
|
|
684
684
|
async function handlePlans(options) {
|
|
685
|
-
const client = new (0,
|
|
685
|
+
const client = new (0, _chunk5IYFQJHXjs.DeeplineClient)();
|
|
686
686
|
const payload = await client.billing.targetPlans();
|
|
687
687
|
const listedCurrentPlan = payload.plans.find(
|
|
688
688
|
(plan) => plan.sku === payload.current_plan_sku
|
|
@@ -695,8 +695,8 @@ async function handlePlans(options) {
|
|
|
695
695
|
...payload.plans.length === 0 ? ["Plans: none available"] : ["Plans:", ...payload.plans.map(targetPlanLine)],
|
|
696
696
|
"Change plan: deepline billing change-plan <plan_sku> --json"
|
|
697
697
|
];
|
|
698
|
-
const legacyPayload =
|
|
699
|
-
|
|
698
|
+
const legacyPayload = _chunkEWYHXSV4js.shouldEmitJson.call(void 0, options.json) ? await client.billing.plans() : null;
|
|
699
|
+
_chunkEWYHXSV4js.printCommandEnvelope.call(void 0,
|
|
700
700
|
{
|
|
701
701
|
..._nullishCoalesce(legacyPayload, () => ( payload)),
|
|
702
702
|
...legacyPayload ? { target_billing: payload } : {},
|
|
@@ -706,7 +706,7 @@ async function handlePlans(options) {
|
|
|
706
706
|
);
|
|
707
707
|
}
|
|
708
708
|
async function handleSubscribe(planVersionId, options) {
|
|
709
|
-
const { http } =
|
|
709
|
+
const { http } = _chunkEWYHXSV4js.getAuthedHttpClient.call(void 0, );
|
|
710
710
|
const payload = await http.request(
|
|
711
711
|
"/api/v2/billing/subscription/checkout",
|
|
712
712
|
{
|
|
@@ -715,8 +715,8 @@ async function handleSubscribe(planVersionId, options) {
|
|
|
715
715
|
}
|
|
716
716
|
);
|
|
717
717
|
const url = String(payload.checkout_url || "");
|
|
718
|
-
if (!options.json && options.open !== false && url)
|
|
719
|
-
|
|
718
|
+
if (!options.json && options.open !== false && url) _chunkEWYHXSV4js.openInBrowser.call(void 0, url);
|
|
719
|
+
_chunkEWYHXSV4js.printCommandEnvelope.call(void 0,
|
|
720
720
|
{
|
|
721
721
|
...payload,
|
|
722
722
|
render: {
|
|
@@ -732,7 +732,7 @@ async function handleSubscribe(planVersionId, options) {
|
|
|
732
732
|
);
|
|
733
733
|
}
|
|
734
734
|
async function handleSubscriptionStatus(options) {
|
|
735
|
-
const client = new (0,
|
|
735
|
+
const client = new (0, _chunk5IYFQJHXjs.DeeplineClient)();
|
|
736
736
|
const payload = await client.billing.subscription.status();
|
|
737
737
|
const pools = _nullishCoalesce(payload.credit_pools, () => ( []));
|
|
738
738
|
const lines = [
|
|
@@ -752,7 +752,7 @@ async function handleSubscriptionStatus(options) {
|
|
|
752
752
|
],
|
|
753
753
|
`Assigned by: ${_nullishCoalesce(payload.assigned_by, () => ( "default"))}`
|
|
754
754
|
];
|
|
755
|
-
|
|
755
|
+
_chunkEWYHXSV4js.printCommandEnvelope.call(void 0,
|
|
756
756
|
{
|
|
757
757
|
...payload,
|
|
758
758
|
render: { sections: [{ title: "billing subscription", lines }] }
|
|
@@ -761,7 +761,7 @@ async function handleSubscriptionStatus(options) {
|
|
|
761
761
|
);
|
|
762
762
|
}
|
|
763
763
|
async function handleSubscriptionCancel(options) {
|
|
764
|
-
const client = new (0,
|
|
764
|
+
const client = new (0, _chunk5IYFQJHXjs.DeeplineClient)();
|
|
765
765
|
const action = options.undo ? "undo_cancel" : "cancel";
|
|
766
766
|
if (options.dryRun) {
|
|
767
767
|
const status = await client.billing.subscription.status();
|
|
@@ -778,7 +778,7 @@ async function handleSubscriptionCancel(options) {
|
|
|
778
778
|
return;
|
|
779
779
|
}
|
|
780
780
|
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.";
|
|
781
|
-
|
|
781
|
+
_chunkEWYHXSV4js.printCommandEnvelope.call(void 0,
|
|
782
782
|
{
|
|
783
783
|
ok: true,
|
|
784
784
|
dry_run: true,
|
|
@@ -833,7 +833,7 @@ async function handleSubscriptionCancel(options) {
|
|
|
833
833
|
"Remaining credits are yours to keep \u2014 cancellation never removes credits.",
|
|
834
834
|
"Undo with: deepline billing subscription cancel --undo"
|
|
835
835
|
];
|
|
836
|
-
|
|
836
|
+
_chunkEWYHXSV4js.printCommandEnvelope.call(void 0,
|
|
837
837
|
{
|
|
838
838
|
ok: true,
|
|
839
839
|
...result,
|
|
@@ -887,7 +887,7 @@ async function handleInvoices(options) {
|
|
|
887
887
|
return;
|
|
888
888
|
}
|
|
889
889
|
}
|
|
890
|
-
const client = new (0,
|
|
890
|
+
const client = new (0, _chunk5IYFQJHXjs.DeeplineClient)();
|
|
891
891
|
let payload;
|
|
892
892
|
try {
|
|
893
893
|
payload = await client.billing.invoices.list(
|
|
@@ -916,7 +916,7 @@ async function handleInvoices(options) {
|
|
|
916
916
|
url: entry.url
|
|
917
917
|
}))
|
|
918
918
|
} : { ...payload, count: entries.length };
|
|
919
|
-
|
|
919
|
+
_chunkEWYHXSV4js.printCommandEnvelope.call(void 0,
|
|
920
920
|
{
|
|
921
921
|
...envelope,
|
|
922
922
|
render: { sections: [{ title: "billing invoices", lines }] }
|
|
@@ -925,7 +925,7 @@ async function handleInvoices(options) {
|
|
|
925
925
|
);
|
|
926
926
|
}
|
|
927
927
|
async function handleCheckout(options) {
|
|
928
|
-
const { http } =
|
|
928
|
+
const { http } = _chunkEWYHXSV4js.getAuthedHttpClient.call(void 0, );
|
|
929
929
|
const payload = await http.post(
|
|
930
930
|
"/api/v2/billing/checkout",
|
|
931
931
|
{
|
|
@@ -935,8 +935,8 @@ async function handleCheckout(options) {
|
|
|
935
935
|
}
|
|
936
936
|
);
|
|
937
937
|
const url = String(payload.url || payload.checkout_url || "");
|
|
938
|
-
if (!options.json && !options.noOpen && url)
|
|
939
|
-
|
|
938
|
+
if (!options.json && !options.noOpen && url) _chunkEWYHXSV4js.openInBrowser.call(void 0, url);
|
|
939
|
+
_chunkEWYHXSV4js.printCommandEnvelope.call(void 0,
|
|
940
940
|
{
|
|
941
941
|
...payload,
|
|
942
942
|
render: {
|
|
@@ -981,7 +981,7 @@ async function handleTopUp(creditsRaw, options) {
|
|
|
981
981
|
return;
|
|
982
982
|
}
|
|
983
983
|
if (options.dryRun) {
|
|
984
|
-
|
|
984
|
+
_chunkEWYHXSV4js.printCommandEnvelope.call(void 0,
|
|
985
985
|
{
|
|
986
986
|
ok: true,
|
|
987
987
|
dry_run: true,
|
|
@@ -1011,7 +1011,7 @@ async function handleTopUp(creditsRaw, options) {
|
|
|
1011
1011
|
);
|
|
1012
1012
|
return;
|
|
1013
1013
|
}
|
|
1014
|
-
const client = new (0,
|
|
1014
|
+
const client = new (0, _chunk5IYFQJHXjs.DeeplineClient)();
|
|
1015
1015
|
let payload;
|
|
1016
1016
|
try {
|
|
1017
1017
|
payload = await client.billing.topUpWithReceipt({
|
|
@@ -1028,7 +1028,7 @@ async function handleTopUp(creditsRaw, options) {
|
|
|
1028
1028
|
return;
|
|
1029
1029
|
}
|
|
1030
1030
|
if (payload.status === "pending") {
|
|
1031
|
-
|
|
1031
|
+
_chunkEWYHXSV4js.printCommandEnvelope.call(void 0,
|
|
1032
1032
|
{
|
|
1033
1033
|
ok: true,
|
|
1034
1034
|
...payload,
|
|
@@ -1092,17 +1092,17 @@ async function handleTopUp(creditsRaw, options) {
|
|
|
1092
1092
|
]
|
|
1093
1093
|
}
|
|
1094
1094
|
};
|
|
1095
|
-
|
|
1095
|
+
_chunkEWYHXSV4js.printCommandEnvelope.call(void 0, options.compact ? compactEnvelope : fullEnvelope, {
|
|
1096
1096
|
json: options.json
|
|
1097
1097
|
});
|
|
1098
1098
|
}
|
|
1099
1099
|
async function handleTargetStatus(options) {
|
|
1100
|
-
const client = new (0,
|
|
1100
|
+
const client = new (0, _chunk5IYFQJHXjs.DeeplineClient)();
|
|
1101
1101
|
const payload = await client.billing.targetStatus();
|
|
1102
1102
|
const balanceCommand = "deepline billing balance --json";
|
|
1103
1103
|
const recentChargesCommand = "deepline billing usage --limit 5 --json";
|
|
1104
1104
|
const exactChargeCommand = "deepline billing usage --request-id <job_id> --json";
|
|
1105
|
-
|
|
1105
|
+
_chunkEWYHXSV4js.printCommandEnvelope.call(void 0,
|
|
1106
1106
|
{
|
|
1107
1107
|
ok: true,
|
|
1108
1108
|
...payload,
|
|
@@ -1131,8 +1131,34 @@ async function handleTargetStatus(options) {
|
|
|
1131
1131
|
{ json: options.json }
|
|
1132
1132
|
);
|
|
1133
1133
|
}
|
|
1134
|
+
async function handleEntitlements(options) {
|
|
1135
|
+
const payload = await new (0, _chunk5IYFQJHXjs.DeeplineClient)().billing.entitlements();
|
|
1136
|
+
_chunkEWYHXSV4js.printCommandEnvelope.call(void 0,
|
|
1137
|
+
{
|
|
1138
|
+
ok: true,
|
|
1139
|
+
...payload,
|
|
1140
|
+
render: {
|
|
1141
|
+
sections: [
|
|
1142
|
+
{
|
|
1143
|
+
title: "billing entitlements",
|
|
1144
|
+
lines: [
|
|
1145
|
+
`Plan: ${_nullishCoalesce(_optionalChain([payload, 'access', _11 => _11.plan, 'optionalAccess', _12 => _12.name]), () => ( "Legacy billing"))}`,
|
|
1146
|
+
...Object.entries(payload.benefits).map(
|
|
1147
|
+
([key, grant]) => `${key}: ${grant.status}, ${JSON.stringify(grant.value)}${grant.expiresAt === void 0 ? "" : `, expires ${new Date(grant.expiresAt).toISOString()}`}`
|
|
1148
|
+
),
|
|
1149
|
+
...Object.entries(payload.effective_limits).map(
|
|
1150
|
+
([key, limit]) => `${key} rate: ${limit.effective}/minute (${limit.source}; plan baseline ${limit.baseline})`
|
|
1151
|
+
)
|
|
1152
|
+
]
|
|
1153
|
+
}
|
|
1154
|
+
]
|
|
1155
|
+
}
|
|
1156
|
+
},
|
|
1157
|
+
{ json: options.json }
|
|
1158
|
+
);
|
|
1159
|
+
}
|
|
1134
1160
|
async function handleAutoRechargeStatus(options) {
|
|
1135
|
-
const payload = await new (0,
|
|
1161
|
+
const payload = await new (0, _chunk5IYFQJHXjs.DeeplineClient)().billing.autoRecharge.get();
|
|
1136
1162
|
const state = payload.available ? payload.enabled ? "on" : "off" : "unavailable";
|
|
1137
1163
|
const lines = [
|
|
1138
1164
|
`State: ${state}`,
|
|
@@ -1142,7 +1168,7 @@ async function handleAutoRechargeStatus(options) {
|
|
|
1142
1168
|
`Automatic credit purchase cap: ${payload.purchase_limit_credits} credits per rolling 30 days`
|
|
1143
1169
|
] : []
|
|
1144
1170
|
];
|
|
1145
|
-
|
|
1171
|
+
_chunkEWYHXSV4js.printCommandEnvelope.call(void 0,
|
|
1146
1172
|
{
|
|
1147
1173
|
ok: true,
|
|
1148
1174
|
...payload,
|
|
@@ -1191,7 +1217,7 @@ async function handleAutoRechargeSet(options) {
|
|
|
1191
1217
|
}
|
|
1192
1218
|
const idempotencyKey = targetBillingIdempotencyKey(options.idempotencyKey);
|
|
1193
1219
|
if (options.dryRun) {
|
|
1194
|
-
|
|
1220
|
+
_chunkEWYHXSV4js.printCommandEnvelope.call(void 0,
|
|
1195
1221
|
{
|
|
1196
1222
|
ok: true,
|
|
1197
1223
|
dry_run: true,
|
|
@@ -1212,7 +1238,7 @@ async function handleAutoRechargeSet(options) {
|
|
|
1212
1238
|
);
|
|
1213
1239
|
return;
|
|
1214
1240
|
}
|
|
1215
|
-
const payload = await new (0,
|
|
1241
|
+
const payload = await new (0, _chunk5IYFQJHXjs.DeeplineClient)().billing.autoRecharge.update({
|
|
1216
1242
|
enabled: true,
|
|
1217
1243
|
thresholdCredits,
|
|
1218
1244
|
refillToCredits,
|
|
@@ -1220,7 +1246,7 @@ async function handleAutoRechargeSet(options) {
|
|
|
1220
1246
|
...rollingLimitCredits !== void 0 ? { purchaseLimitCredits: rollingLimitCredits } : {},
|
|
1221
1247
|
idempotencyKey
|
|
1222
1248
|
});
|
|
1223
|
-
|
|
1249
|
+
_chunkEWYHXSV4js.printCommandEnvelope.call(void 0,
|
|
1224
1250
|
{ ok: true, idempotency_key: idempotencyKey, ...payload },
|
|
1225
1251
|
{ json: options.json }
|
|
1226
1252
|
);
|
|
@@ -1228,7 +1254,7 @@ async function handleAutoRechargeSet(options) {
|
|
|
1228
1254
|
async function handleAutoRechargeOff(options) {
|
|
1229
1255
|
const idempotencyKey = targetBillingIdempotencyKey(options.idempotencyKey);
|
|
1230
1256
|
if (options.dryRun) {
|
|
1231
|
-
|
|
1257
|
+
_chunkEWYHXSV4js.printCommandEnvelope.call(void 0,
|
|
1232
1258
|
{
|
|
1233
1259
|
ok: true,
|
|
1234
1260
|
dry_run: true,
|
|
@@ -1243,11 +1269,11 @@ async function handleAutoRechargeOff(options) {
|
|
|
1243
1269
|
);
|
|
1244
1270
|
return;
|
|
1245
1271
|
}
|
|
1246
|
-
const payload = await new (0,
|
|
1272
|
+
const payload = await new (0, _chunk5IYFQJHXjs.DeeplineClient)().billing.autoRecharge.update({
|
|
1247
1273
|
enabled: false,
|
|
1248
1274
|
idempotencyKey
|
|
1249
1275
|
});
|
|
1250
|
-
|
|
1276
|
+
_chunkEWYHXSV4js.printCommandEnvelope.call(void 0,
|
|
1251
1277
|
{ ok: true, idempotency_key: idempotencyKey, ...payload },
|
|
1252
1278
|
{ json: options.json }
|
|
1253
1279
|
);
|
|
@@ -1266,11 +1292,11 @@ async function handleBuyCredits(creditsRaw, options) {
|
|
|
1266
1292
|
return;
|
|
1267
1293
|
}
|
|
1268
1294
|
const idempotencyKey = targetBillingIdempotencyKey(options.idempotencyKey);
|
|
1269
|
-
const payload = await new (0,
|
|
1295
|
+
const payload = await new (0, _chunk5IYFQJHXjs.DeeplineClient)().billing.purchaseCredits({
|
|
1270
1296
|
credits,
|
|
1271
1297
|
idempotencyKey
|
|
1272
1298
|
});
|
|
1273
|
-
|
|
1299
|
+
_chunkEWYHXSV4js.printCommandEnvelope.call(void 0,
|
|
1274
1300
|
{ ok: true, idempotency_key: idempotencyKey, ...payload },
|
|
1275
1301
|
{ json: options.json }
|
|
1276
1302
|
);
|
|
@@ -1288,7 +1314,7 @@ async function handleTopUpRecover(creditsRaw, options) {
|
|
|
1288
1314
|
);
|
|
1289
1315
|
return;
|
|
1290
1316
|
}
|
|
1291
|
-
const failure = !_optionalChain([options, 'access',
|
|
1317
|
+
const failure = !_optionalChain([options, 'access', _13 => _13.orgId, 'optionalAccess', _14 => _14.trim, 'call', _15 => _15()]) || options.orgId !== options.orgId.trim() ? {
|
|
1292
1318
|
code: "INVALID_ORG_ID",
|
|
1293
1319
|
message: "--org-id must be the original workspace ID without surrounding whitespace."
|
|
1294
1320
|
} : !options.idempotencyKey || options.idempotencyKey.length > 200 || options.idempotencyKey !== options.idempotencyKey.trim() ? {
|
|
@@ -1306,7 +1332,7 @@ async function handleTopUpRecover(creditsRaw, options) {
|
|
|
1306
1332
|
return;
|
|
1307
1333
|
}
|
|
1308
1334
|
if (options.dryRun) {
|
|
1309
|
-
|
|
1335
|
+
_chunkEWYHXSV4js.printCommandEnvelope.call(void 0,
|
|
1310
1336
|
{
|
|
1311
1337
|
ok: true,
|
|
1312
1338
|
dry_run: true,
|
|
@@ -1319,12 +1345,12 @@ async function handleTopUpRecover(creditsRaw, options) {
|
|
|
1319
1345
|
);
|
|
1320
1346
|
return;
|
|
1321
1347
|
}
|
|
1322
|
-
const payload = await new (0,
|
|
1348
|
+
const payload = await new (0, _chunk5IYFQJHXjs.DeeplineClient)().billing.recoverCreditPurchase({
|
|
1323
1349
|
credits,
|
|
1324
1350
|
orgId: options.orgId,
|
|
1325
1351
|
idempotencyKey: options.idempotencyKey
|
|
1326
1352
|
});
|
|
1327
|
-
|
|
1353
|
+
_chunkEWYHXSV4js.printCommandEnvelope.call(void 0,
|
|
1328
1354
|
{ ok: true, idempotency_key: options.idempotencyKey, ...payload },
|
|
1329
1355
|
{ json: options.json }
|
|
1330
1356
|
);
|
|
@@ -1344,37 +1370,37 @@ async function handleTargetPlan(planSku, options) {
|
|
|
1344
1370
|
return;
|
|
1345
1371
|
}
|
|
1346
1372
|
const idempotencyKey = targetBillingIdempotencyKey(options.idempotencyKey);
|
|
1347
|
-
const payload = await new (0,
|
|
1373
|
+
const payload = await new (0, _chunk5IYFQJHXjs.DeeplineClient)().billing.transitionPlan({
|
|
1348
1374
|
action: "start_or_change",
|
|
1349
1375
|
targetPlanSku: planSku,
|
|
1350
1376
|
...options.billingEmail ? { billingEmail: options.billingEmail } : {},
|
|
1351
1377
|
idempotencyKey
|
|
1352
1378
|
});
|
|
1353
|
-
|
|
1379
|
+
_chunkEWYHXSV4js.printCommandEnvelope.call(void 0,
|
|
1354
1380
|
{ ok: true, idempotency_key: idempotencyKey, ...payload },
|
|
1355
1381
|
{ json: options.json }
|
|
1356
1382
|
);
|
|
1357
1383
|
}
|
|
1358
1384
|
async function handleTargetPlanCancellation(options) {
|
|
1359
1385
|
const idempotencyKey = targetBillingIdempotencyKey(options.idempotencyKey);
|
|
1360
|
-
const payload = await new (0,
|
|
1386
|
+
const payload = await new (0, _chunk5IYFQJHXjs.DeeplineClient)().billing.transitionPlan({
|
|
1361
1387
|
action: options.undo ? "undo_cancel" : "cancel",
|
|
1362
1388
|
idempotencyKey
|
|
1363
1389
|
});
|
|
1364
|
-
|
|
1390
|
+
_chunkEWYHXSV4js.printCommandEnvelope.call(void 0,
|
|
1365
1391
|
{ ok: true, idempotency_key: idempotencyKey, ...payload },
|
|
1366
1392
|
{ json: options.json }
|
|
1367
1393
|
);
|
|
1368
1394
|
}
|
|
1369
1395
|
async function handleTargetPortal(options) {
|
|
1370
|
-
const payload = await new (0,
|
|
1396
|
+
const payload = await new (0, _chunk5IYFQJHXjs.DeeplineClient)().billing.portalSession(
|
|
1371
1397
|
options.billingAddress ? { flow: "customer_update" } : void 0
|
|
1372
1398
|
);
|
|
1373
|
-
if (!options.json && !options.noOpen)
|
|
1374
|
-
|
|
1399
|
+
if (!options.json && !options.noOpen) _chunkEWYHXSV4js.openInBrowser.call(void 0, payload.url);
|
|
1400
|
+
_chunkEWYHXSV4js.printCommandEnvelope.call(void 0, { ok: true, ...payload }, { json: options.json });
|
|
1375
1401
|
}
|
|
1376
1402
|
async function handleRedeemCode(code, options) {
|
|
1377
|
-
const { http } =
|
|
1403
|
+
const { http } = _chunkEWYHXSV4js.getAuthedHttpClient.call(void 0, );
|
|
1378
1404
|
const payload = await http.post(
|
|
1379
1405
|
"/api/v2/billing/checkout",
|
|
1380
1406
|
{
|
|
@@ -1382,8 +1408,8 @@ async function handleRedeemCode(code, options) {
|
|
|
1382
1408
|
}
|
|
1383
1409
|
);
|
|
1384
1410
|
const url = String(payload.url || payload.checkout_url || "");
|
|
1385
|
-
if (!options.json && !options.noOpen && url)
|
|
1386
|
-
|
|
1411
|
+
if (!options.json && !options.noOpen && url) _chunkEWYHXSV4js.openInBrowser.call(void 0, url);
|
|
1412
|
+
_chunkEWYHXSV4js.printCommandEnvelope.call(void 0,
|
|
1387
1413
|
{
|
|
1388
1414
|
...payload,
|
|
1389
1415
|
render: {
|
|
@@ -1616,6 +1642,7 @@ Examples:
|
|
|
1616
1642
|
billing.command("status").description(
|
|
1617
1643
|
"Show plan, payment, and recharge state; use usage for charges."
|
|
1618
1644
|
).option("--json", "Emit JSON output").action(handleTargetStatus);
|
|
1645
|
+
billing.command("entitlements").description("Show current workspace benefits and effective rate limits.").option("--json", "Emit JSON output").action(handleEntitlements);
|
|
1619
1646
|
billing.command("auto-recharge").description("Inspect and manage automatic Deepline credit recharge.").addHelpText(
|
|
1620
1647
|
"after",
|
|
1621
1648
|
`
|
|
@@ -1652,8 +1679,8 @@ Examples:
|
|
|
1652
1679
|
new (0, _commander.Command)("trigger").description(
|
|
1653
1680
|
"Evaluate capped automatic recharge and resume any pending purchase."
|
|
1654
1681
|
).option("--json", "Emit JSON output").action(async (options) => {
|
|
1655
|
-
const result = await new (0,
|
|
1656
|
-
|
|
1682
|
+
const result = await new (0, _chunk5IYFQJHXjs.DeeplineClient)().billing.autoRecharge.trigger();
|
|
1683
|
+
_chunkEWYHXSV4js.printCommandEnvelope.call(void 0, { ok: true, ...result }, { json: options.json });
|
|
1657
1684
|
})
|
|
1658
1685
|
);
|
|
1659
1686
|
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(
|
|
@@ -49,7 +49,7 @@ var SDK_RELEASE = {
|
|
|
49
49
|
// getters keep their established compatibility behavior.
|
|
50
50
|
// 0.3.1 deprecated the legacy `deepline enrich` command in favor of Plays.
|
|
51
51
|
// 0.3.90 is the first deliberately versioned SDK release for API v3.
|
|
52
|
-
version: "0.3.
|
|
52
|
+
version: "0.3.348",
|
|
53
53
|
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.",
|
|
54
54
|
packageCapabilities: {
|
|
55
55
|
updatePreferences: 1
|