@skrr-ai/cli 0.1.47 → 0.1.48
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/README.md +1 -1
- package/dist/base-command.d.ts +18 -0
- package/dist/base-command.js +61 -1
- package/dist/commands/agents/chat.d.ts +21 -0
- package/dist/commands/agents/chat.js +26 -9
- package/dist/commands/balance/usage/breakdown.d.ts +14 -0
- package/dist/commands/balance/usage/breakdown.js +68 -0
- package/dist/commands/balance/usage.js +24 -0
- package/dist/commands/commerce/entitlements/explain.d.ts +22 -0
- package/dist/commands/commerce/entitlements/explain.js +40 -0
- package/dist/commands/commerce/incidents/audit.d.ts +20 -0
- package/dist/commands/commerce/incidents/audit.js +37 -0
- package/dist/commands/commerce/incidents/list.d.ts +22 -0
- package/dist/commands/commerce/incidents/list.js +49 -0
- package/dist/commands/commerce/incidents/resolve.d.ts +23 -0
- package/dist/commands/commerce/incidents/resolve.js +45 -0
- package/dist/commands/commerce/incidents/retry.d.ts +22 -0
- package/dist/commands/commerce/incidents/retry.js +45 -0
- package/dist/commands/commerce/incidents/show.d.ts +13 -0
- package/dist/commands/commerce/incidents/show.js +30 -0
- package/dist/commands/commerce/offers/approve.d.ts +17 -0
- package/dist/commands/commerce/offers/approve.js +33 -0
- package/dist/commands/commerce/offers/create.d.ts +18 -0
- package/dist/commands/commerce/offers/create.js +34 -0
- package/dist/commands/commerce/offers/publish.d.ts +13 -0
- package/dist/commands/commerce/offers/publish.js +28 -0
- package/dist/commands/commerce/offers/retire.d.ts +17 -0
- package/dist/commands/commerce/offers/retire.js +32 -0
- package/dist/commands/commerce/offers/validate.d.ts +18 -0
- package/dist/commands/commerce/offers/validate.js +33 -0
- package/dist/commands/commerce/products/create.d.ts +10 -0
- package/dist/commands/commerce/products/create.js +25 -0
- package/dist/commands/commerce/promotions/redeem.d.ts +13 -0
- package/dist/commands/commerce/promotions/redeem.js +32 -0
- package/dist/commands/commerce/terms/accept.d.ts +18 -0
- package/dist/commands/commerce/terms/accept.js +39 -0
- package/dist/commands/commerce/terms/show.d.ts +10 -0
- package/dist/commands/commerce/terms/show.js +34 -0
- package/dist/commands/commerce/trials/conversion-preview.d.ts +18 -0
- package/dist/commands/commerce/trials/conversion-preview.js +39 -0
- package/dist/commands/commerce/trials/start.d.ts +23 -0
- package/dist/commands/commerce/trials/start.js +58 -0
- package/dist/commands/commitments/accounting.d.ts +39 -0
- package/dist/commands/commitments/accounting.js +116 -0
- package/dist/commands/commitments/action-history.d.ts +1 -0
- package/dist/commands/commitments/action-history.js +8 -1
- package/dist/commands/commitments/case.d.ts +1 -0
- package/dist/commands/commitments/case.js +19 -3
- package/dist/commands/commitments/cases.d.ts +1 -0
- package/dist/commands/commitments/cases.js +11 -1
- package/dist/commands/commitments/checks.d.ts +1 -0
- package/dist/commands/commitments/checks.js +5 -1
- package/dist/commands/commitments/cost.d.ts +62 -0
- package/dist/commands/commitments/cost.js +130 -0
- package/dist/commands/commitments/create.js +1 -1
- package/dist/commands/commitments/delete.d.ts +1 -0
- package/dist/commands/commitments/delete.js +56 -6
- package/dist/commands/commitments/feedback.js +9 -1
- package/dist/commands/commitments/handover.js +16 -0
- package/dist/commands/commitments/hypotheses.d.ts +1 -0
- package/dist/commands/commitments/hypotheses.js +17 -2
- package/dist/commands/commitments/links/list.js +4 -1
- package/dist/commands/commitments/liveness.d.ts +18 -0
- package/dist/commands/commitments/liveness.js +80 -0
- package/dist/commands/commitments/metrics.d.ts +1 -0
- package/dist/commands/commitments/metrics.js +8 -1
- package/dist/commands/commitments/next-tick.d.ts +39 -0
- package/dist/commands/commitments/next-tick.js +122 -0
- package/dist/commands/commitments/observations.d.ts +1 -0
- package/dist/commands/commitments/observations.js +19 -2
- package/dist/commands/commitments/pause.js +12 -0
- package/dist/commands/commitments/receipt.d.ts +2 -0
- package/dist/commands/commitments/receipt.js +16 -2
- package/dist/commands/commitments/remediation-proposal.js +6 -2
- package/dist/commands/commitments/remediation-proposals.js +5 -1
- package/dist/commands/commitments/restore.d.ts +25 -0
- package/dist/commands/commitments/restore.js +46 -0
- package/dist/commands/commitments/show.js +32 -0
- package/dist/commands/commitments/trigger-status.js +33 -0
- package/dist/commands/commitments/update.d.ts +1 -0
- package/dist/commands/commitments/update.js +31 -5
- package/dist/commands/commitments/wake-capabilities.d.ts +0 -1
- package/dist/commands/commitments/wake-capabilities.js +8 -4
- package/dist/commands/enterprise/budgets/create.d.ts +11 -0
- package/dist/commands/enterprise/budgets/create.js +27 -0
- package/dist/commands/enterprise/budgets/evaluate.d.ts +17 -0
- package/dist/commands/enterprise/budgets/evaluate.js +32 -0
- package/dist/commands/enterprise/budgets/publish.d.ts +14 -0
- package/dist/commands/enterprise/budgets/publish.js +30 -0
- package/dist/commands/enterprise/contracts/activate.d.ts +14 -0
- package/dist/commands/enterprise/contracts/activate.js +30 -0
- package/dist/commands/enterprise/contracts/create.d.ts +14 -0
- package/dist/commands/enterprise/contracts/create.js +32 -0
- package/dist/commands/enterprise/contracts/issue.d.ts +18 -0
- package/dist/commands/enterprise/contracts/issue.js +34 -0
- package/dist/commands/enterprise/domains/begin.d.ts +20 -0
- package/dist/commands/enterprise/domains/begin.js +39 -0
- package/dist/commands/enterprise/domains/verify.d.ts +14 -0
- package/dist/commands/enterprise/domains/verify.js +32 -0
- package/dist/commands/enterprise/external-config/activate.d.ts +22 -0
- package/dist/commands/enterprise/external-config/activate.js +49 -0
- package/dist/commands/enterprise/external-config/set.d.ts +25 -0
- package/dist/commands/enterprise/external-config/set.js +123 -0
- package/dist/commands/enterprise/external-config/show.d.ts +12 -0
- package/dist/commands/enterprise/external-config/show.js +39 -0
- package/dist/commands/enterprise/external-config/suspend.d.ts +13 -0
- package/dist/commands/enterprise/external-config/suspend.js +41 -0
- package/dist/commands/enterprise/finance/close-snapshot.d.ts +11 -0
- package/dist/commands/enterprise/finance/close-snapshot.js +28 -0
- package/dist/commands/enterprise/finance/record-document.d.ts +18 -0
- package/dist/commands/enterprise/finance/record-document.js +35 -0
- package/dist/commands/enterprise/profile.d.ts +20 -0
- package/dist/commands/enterprise/profile.js +38 -0
- package/dist/commands/login.d.ts +13 -0
- package/dist/commands/login.js +77 -0
- package/dist/commands/machines/dedicated/index.js +3 -0
- package/dist/commands/machines/dedicated/service/apply.d.ts +23 -0
- package/dist/commands/machines/dedicated/service/apply.js +99 -0
- package/dist/commands/machines/dedicated/service/approve.d.ts +23 -0
- package/dist/commands/machines/dedicated/service/approve.js +52 -0
- package/dist/commands/machines/dedicated/service/create.d.ts +55 -0
- package/dist/commands/machines/dedicated/service/create.js +222 -0
- package/dist/commands/machines/dedicated/service/edit.d.ts +30 -0
- package/dist/commands/machines/dedicated/service/edit.js +146 -0
- package/dist/commands/machines/dedicated/service/exec.d.ts +26 -0
- package/dist/commands/machines/dedicated/service/exec.js +92 -0
- package/dist/commands/machines/dedicated/service/export.d.ts +29 -0
- package/dist/commands/machines/dedicated/service/export.js +106 -0
- package/dist/commands/machines/dedicated/service/index.d.ts +14 -0
- package/dist/commands/machines/dedicated/service/index.js +49 -0
- package/dist/commands/machines/dedicated/service/logs.d.ts +33 -0
- package/dist/commands/machines/dedicated/service/logs.js +148 -0
- package/dist/commands/machines/dedicated/service/ls.d.ts +20 -0
- package/dist/commands/machines/dedicated/service/ls.js +80 -0
- package/dist/commands/machines/dedicated/service/restart.d.ts +14 -0
- package/dist/commands/machines/dedicated/service/restart.js +29 -0
- package/dist/commands/machines/dedicated/service/rm.d.ts +20 -0
- package/dist/commands/machines/dedicated/service/rm.js +33 -0
- package/dist/commands/machines/dedicated/service/secret/index.d.ts +14 -0
- package/dist/commands/machines/dedicated/service/secret/index.js +25 -0
- package/dist/commands/machines/dedicated/service/secret/rm.d.ts +22 -0
- package/dist/commands/machines/dedicated/service/secret/rm.js +54 -0
- package/dist/commands/machines/dedicated/service/secret/set.d.ts +22 -0
- package/dist/commands/machines/dedicated/service/secret/set.js +93 -0
- package/dist/commands/machines/dedicated/service/start.d.ts +14 -0
- package/dist/commands/machines/dedicated/service/start.js +29 -0
- package/dist/commands/machines/dedicated/service/status.d.ts +21 -0
- package/dist/commands/machines/dedicated/service/status.js +85 -0
- package/dist/commands/machines/dedicated/service/stop.d.ts +20 -0
- package/dist/commands/machines/dedicated/service/stop.js +35 -0
- package/dist/commands/machines/dedicated/service/top.d.ts +22 -0
- package/dist/commands/machines/dedicated/service/top.js +120 -0
- package/dist/commands/machines/dedicated/sign-in-status.d.ts +22 -0
- package/dist/commands/machines/dedicated/sign-in-status.js +79 -0
- package/dist/commands/machines/dedicated/ssh-config.d.ts +28 -0
- package/dist/commands/machines/dedicated/ssh-config.js +66 -0
- package/dist/commands/machines/dedicated/ssh-proxy.d.ts +22 -0
- package/dist/commands/machines/dedicated/ssh-proxy.js +62 -0
- package/dist/commands/machines/dedicated/ssh.d.ts +29 -0
- package/dist/commands/machines/dedicated/ssh.js +121 -0
- package/dist/commands/native/allow-all.d.ts +14 -0
- package/dist/commands/native/allow-all.js +25 -0
- package/dist/commands/native/allow.d.ts +24 -0
- package/dist/commands/native/allow.js +45 -0
- package/dist/commands/native/deny.d.ts +24 -0
- package/dist/commands/native/deny.js +43 -0
- package/dist/commands/native/disable.d.ts +17 -0
- package/dist/commands/native/disable.js +28 -0
- package/dist/commands/native/enable.d.ts +12 -0
- package/dist/commands/native/enable.js +29 -0
- package/dist/commands/native/list-apps.d.ts +19 -0
- package/dist/commands/native/list-apps.js +30 -0
- package/dist/commands/native/restrict-to.d.ts +22 -0
- package/dist/commands/native/restrict-to.js +41 -0
- package/dist/commands/native/status.d.ts +19 -0
- package/dist/commands/native/status.js +33 -0
- package/dist/commands/native.d.ts +39 -0
- package/dist/commands/native.js +76 -0
- package/dist/commands/service/index.d.ts +14 -0
- package/dist/commands/service/index.js +31 -0
- package/dist/commands/service/logs.d.ts +18 -0
- package/dist/commands/service/logs.js +53 -0
- package/dist/commands/service/ls.d.ts +13 -0
- package/dist/commands/service/ls.js +48 -0
- package/dist/commands/service/propose.d.ts +34 -0
- package/dist/commands/service/propose.js +113 -0
- package/dist/commands/service/status.d.ts +17 -0
- package/dist/commands/service/status.js +56 -0
- package/dist/commands/spaces/auto-executor/runs.d.ts +13 -0
- package/dist/commands/spaces/auto-executor/runs.js +56 -0
- package/dist/commands/store/governance/artifacts.d.ts +25 -0
- package/dist/commands/store/governance/artifacts.js +55 -0
- package/dist/commands/store/governance/assign.d.ts +16 -0
- package/dist/commands/store/governance/assign.js +54 -0
- package/dist/commands/store/governance/create-license.d.ts +18 -0
- package/dist/commands/store/governance/create-license.js +35 -0
- package/dist/commands/store/governance/install-plan.d.ts +25 -0
- package/dist/commands/store/governance/install-plan.js +56 -0
- package/dist/commands/store/governance/license-policy.d.ts +30 -0
- package/dist/commands/store/governance/license-policy.js +69 -0
- package/dist/commands/store/governance/policy.d.ts +25 -0
- package/dist/commands/store/governance/policy.js +65 -0
- package/dist/commands/store/governance/publish-release.d.ts +17 -0
- package/dist/commands/store/governance/publish-release.js +34 -0
- package/dist/commands/tasks/deliverable/add.d.ts +15 -0
- package/dist/commands/tasks/deliverable/add.js +174 -0
- package/dist/commands/tasks/deliverable/archive.d.ts +35 -0
- package/dist/commands/tasks/deliverable/archive.js +205 -0
- package/dist/commands/tasks/labels/detach.js +3 -0
- package/dist/commands/tasks/labels/suggest.d.ts +24 -0
- package/dist/commands/tasks/labels/suggest.js +69 -0
- package/dist/commands/tasks/list.d.ts +16 -2
- package/dist/commands/tasks/list.js +100 -24
- package/dist/commands/tasks/show.d.ts +23 -0
- package/dist/commands/tasks/show.js +51 -1
- package/dist/commands/wiki/rm.d.ts +22 -1
- package/dist/commands/wiki/rm.js +52 -3
- package/dist/lib/agentic-stream.js +10 -2
- package/dist/lib/balance.d.ts +6 -1
- package/dist/lib/balance.js +15 -0
- package/dist/lib/commerce-command.d.ts +48 -0
- package/dist/lib/commerce-command.js +70 -0
- package/dist/lib/commerce.d.ts +93 -0
- package/dist/lib/commerce.js +129 -0
- package/dist/lib/commitment-product.js +1 -1
- package/dist/lib/commitments.d.ts +202 -29
- package/dist/lib/commitments.js +300 -33
- package/dist/lib/dedicated-lease-command.js +10 -0
- package/dist/lib/dedicated-machines.d.ts +37 -0
- package/dist/lib/dedicated-machines.js +47 -0
- package/dist/lib/dedicated-service-command.d.ts +60 -0
- package/dist/lib/dedicated-service-command.js +182 -0
- package/dist/lib/dedicated-service.d.ts +342 -0
- package/dist/lib/dedicated-service.js +741 -0
- package/dist/lib/dedicated-ssh.d.ts +136 -0
- package/dist/lib/dedicated-ssh.js +387 -0
- package/dist/lib/delegated-cli.js +51 -13
- package/dist/lib/enterprise-commerce.d.ts +67 -0
- package/dist/lib/enterprise-commerce.js +112 -0
- package/dist/lib/enterprise-external-configuration.d.ts +60 -0
- package/dist/lib/enterprise-external-configuration.js +58 -0
- package/dist/lib/first-party-harness.js +17 -3
- package/dist/lib/governed-store.d.ts +110 -0
- package/dist/lib/governed-store.js +79 -0
- package/dist/lib/guest-service-command.d.ts +16 -0
- package/dist/lib/guest-service-command.js +32 -0
- package/dist/lib/guest-service.d.ts +67 -0
- package/dist/lib/guest-service.js +112 -0
- package/dist/lib/prompt.d.ts +1 -0
- package/dist/lib/prompt.js +1 -0
- package/dist/lib/task-asset-upload.d.ts +20 -0
- package/dist/lib/task-asset-upload.js +30 -8
- package/dist/lib/task-extras.d.ts +23 -0
- package/dist/lib/task-extras.js +6 -0
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/daemonScopes.d.ts +9 -3
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/daemonScopes.js +10 -3
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/index.d.ts +1 -1
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/index.js +6 -5
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/messages.d.ts +16 -0
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/messages.js +21 -4
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/spawnEnv.d.ts +1 -1
- package/dist/node_modules/@skrr-ai/auth-core/dist/cjs/spawnEnv.js +24 -2
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/daemonScopes.d.ts +9 -3
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/daemonScopes.js +10 -3
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/index.d.ts +1 -1
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/index.js +1 -1
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/messages.d.ts +16 -0
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/messages.js +20 -4
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/spawnEnv.d.ts +1 -1
- package/dist/node_modules/@skrr-ai/auth-core/dist/esm/spawnEnv.js +24 -2
- package/dist/node_modules/@skrr-ai/auth-core/package.json +1 -1
- package/dist/node_modules/@skrr-ai/data-provider/index.js +5060 -4827
- package/oclif.manifest.json +37416 -31416
- package/package.json +43 -1
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The shape every commerce and governed-store write shares.
|
|
3
|
+
*
|
|
4
|
+
* These endpoints validate rich bodies with their own zod schemas, and the CLI
|
|
5
|
+
* deliberately does not restate those shapes as flags. Two reasons, and the
|
|
6
|
+
* second is the one that bites:
|
|
7
|
+
*
|
|
8
|
+
* 1. A vocabulary declared twice drifts. The server owns what a contract, an
|
|
9
|
+
* offer version or a budget policy looks like; a flag table here would be a
|
|
10
|
+
* second declaration that silently falls behind the API that rejects it.
|
|
11
|
+
* 2. These are financial writes. A flag table invites a half-specified body
|
|
12
|
+
* assembled from defaults; a file you wrote and can diff is a document you
|
|
13
|
+
* reviewed. `-` reads stdin, so a pipeline still works.
|
|
14
|
+
*
|
|
15
|
+
* What the CLI DOES own is refusing to send nothing: a mutation whose body is
|
|
16
|
+
* required will not be fired with `{}` just because a path was omitted.
|
|
17
|
+
*/
|
|
18
|
+
export declare const jsonBodyFlags: {
|
|
19
|
+
file: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
20
|
+
json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
21
|
+
};
|
|
22
|
+
export interface JsonBodyOwner {
|
|
23
|
+
error(message: string, options?: {
|
|
24
|
+
exit?: number;
|
|
25
|
+
}): never | void;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Read `--file`, refusing an empty body when the endpoint requires one.
|
|
29
|
+
*
|
|
30
|
+
* `required: false` is for the verbs whose body is genuinely optional — an
|
|
31
|
+
* offer `publish` carries nothing but its id — where `{}` is the honest
|
|
32
|
+
* request rather than a missing argument.
|
|
33
|
+
*/
|
|
34
|
+
export declare function jsonBodyFrom(command: JsonBodyOwner, file: string | undefined, { required }?: {
|
|
35
|
+
required?: boolean;
|
|
36
|
+
}): Promise<Record<string, unknown>>;
|
|
37
|
+
/**
|
|
38
|
+
* Print a result.
|
|
39
|
+
*
|
|
40
|
+
* Deliberately JSON-by-default for these surfaces rather than a summary line.
|
|
41
|
+
* A contract, a budget evaluation or an entitlement explanation is a DOCUMENT
|
|
42
|
+
* whose fields an operator is about to reason about; summarising it would be
|
|
43
|
+
* choosing for them which parts of a financial record matter, and every field
|
|
44
|
+
* this CLI hides is one they would have to open a browser to see.
|
|
45
|
+
*/
|
|
46
|
+
export declare function printResult(command: {
|
|
47
|
+
log(message: string): void;
|
|
48
|
+
}, result: unknown, humanSummary?: string[]): void;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.jsonBodyFlags = void 0;
|
|
4
|
+
exports.jsonBodyFrom = jsonBodyFrom;
|
|
5
|
+
exports.printResult = printResult;
|
|
6
|
+
const core_1 = require("@oclif/core");
|
|
7
|
+
const prompt_1 = require("./prompt");
|
|
8
|
+
/**
|
|
9
|
+
* The shape every commerce and governed-store write shares.
|
|
10
|
+
*
|
|
11
|
+
* These endpoints validate rich bodies with their own zod schemas, and the CLI
|
|
12
|
+
* deliberately does not restate those shapes as flags. Two reasons, and the
|
|
13
|
+
* second is the one that bites:
|
|
14
|
+
*
|
|
15
|
+
* 1. A vocabulary declared twice drifts. The server owns what a contract, an
|
|
16
|
+
* offer version or a budget policy looks like; a flag table here would be a
|
|
17
|
+
* second declaration that silently falls behind the API that rejects it.
|
|
18
|
+
* 2. These are financial writes. A flag table invites a half-specified body
|
|
19
|
+
* assembled from defaults; a file you wrote and can diff is a document you
|
|
20
|
+
* reviewed. `-` reads stdin, so a pipeline still works.
|
|
21
|
+
*
|
|
22
|
+
* What the CLI DOES own is refusing to send nothing: a mutation whose body is
|
|
23
|
+
* required will not be fired with `{}` just because a path was omitted.
|
|
24
|
+
*/
|
|
25
|
+
exports.jsonBodyFlags = {
|
|
26
|
+
file: core_1.Flags.string({
|
|
27
|
+
description: 'Path to the JSON body, or - to read stdin',
|
|
28
|
+
}),
|
|
29
|
+
json: core_1.Flags.boolean({ description: 'Output as JSON' }),
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Read `--file`, refusing an empty body when the endpoint requires one.
|
|
33
|
+
*
|
|
34
|
+
* `required: false` is for the verbs whose body is genuinely optional — an
|
|
35
|
+
* offer `publish` carries nothing but its id — where `{}` is the honest
|
|
36
|
+
* request rather than a missing argument.
|
|
37
|
+
*/
|
|
38
|
+
async function jsonBodyFrom(command, file, { required = true } = {}) {
|
|
39
|
+
if (!file) {
|
|
40
|
+
if (!required)
|
|
41
|
+
return {};
|
|
42
|
+
command.error('This write needs a body: pass --file <path> (or --file - to read stdin). The body is ' +
|
|
43
|
+
'validated by the server, which owns its shape — see the command help for what it expects.', { exit: 2 });
|
|
44
|
+
return {};
|
|
45
|
+
}
|
|
46
|
+
try {
|
|
47
|
+
return await (0, prompt_1.readJsonBody)(file);
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
command.error(error instanceof Error ? error.message : String(error), { exit: 1 });
|
|
51
|
+
return {};
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Print a result.
|
|
56
|
+
*
|
|
57
|
+
* Deliberately JSON-by-default for these surfaces rather than a summary line.
|
|
58
|
+
* A contract, a budget evaluation or an entitlement explanation is a DOCUMENT
|
|
59
|
+
* whose fields an operator is about to reason about; summarising it would be
|
|
60
|
+
* choosing for them which parts of a financial record matter, and every field
|
|
61
|
+
* this CLI hides is one they would have to open a browser to see.
|
|
62
|
+
*/
|
|
63
|
+
function printResult(command, result, humanSummary) {
|
|
64
|
+
if (humanSummary?.length) {
|
|
65
|
+
for (const line of humanSummary)
|
|
66
|
+
command.log(line);
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
command.log(JSON.stringify(result, null, 2));
|
|
70
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `/api/commerce` — marketplace terms, the offer governance pipeline, trials,
|
|
3
|
+
* promotions, and the incident queue behind fulfillment and integrity.
|
|
4
|
+
*
|
|
5
|
+
* Most of it is `checkAdmin` on the server, which is not a reason to leave it
|
|
6
|
+
* in a browser: the API enforces that either way, so a CLI grants nothing and
|
|
7
|
+
* only gives an operator a path that is not a page. The incident queue and the
|
|
8
|
+
* offer pipeline are the two most CLI-shaped things in the file — a queue you
|
|
9
|
+
* triage and a lifecycle you advance are exactly what a headless operator does
|
|
10
|
+
* at 2am, which is the case the parity doctrine names.
|
|
11
|
+
*
|
|
12
|
+
* Every route is written out at its own call site rather than composed from a
|
|
13
|
+
* builder: the parity checker reads a LITERAL there and deliberately refuses a
|
|
14
|
+
* composed path.
|
|
15
|
+
*
|
|
16
|
+
* **Bodies are passed through, not re-declared.** The complex writes (a
|
|
17
|
+
* product, an offer version, an entitlement question) take JSON the server
|
|
18
|
+
* validates with its own zod schema. Restating those shapes here would be a
|
|
19
|
+
* second declaration of a vocabulary the server owns — the way a surface
|
|
20
|
+
* silently drifts from the API that rejects it.
|
|
21
|
+
*/
|
|
22
|
+
export type MarketplaceTermsScope = 'buyer' | 'publisher';
|
|
23
|
+
/**
|
|
24
|
+
* `GET /marketplace/terms/current` — the terms in force for one side of a deal.
|
|
25
|
+
*
|
|
26
|
+
* The query rides in `withQuery` rather than being interpolated into the
|
|
27
|
+
* literal. That is not style: the parity checker reads the LITERAL at the call
|
|
28
|
+
* site, and a `?scope=${…}` baked into it resolves to a path with a query
|
|
29
|
+
* attached, which matches no route — so a covered endpoint reports as
|
|
30
|
+
* unreachable. `withQuery` is the wrapper the checker already understands, and
|
|
31
|
+
* it is the one the other libs use.
|
|
32
|
+
*/
|
|
33
|
+
export declare function getMarketplaceTerms(scope: MarketplaceTermsScope): Promise<unknown>;
|
|
34
|
+
/**
|
|
35
|
+
* `POST /marketplace/terms/accept` — record that you accept them.
|
|
36
|
+
*
|
|
37
|
+
* `accepted: true` is a literal the server requires; it is not a flag the CLI
|
|
38
|
+
* may default, because the whole value of the receipt is that somebody said so.
|
|
39
|
+
*/
|
|
40
|
+
export declare function acceptMarketplaceTerms(scope: MarketplaceTermsScope): Promise<unknown>;
|
|
41
|
+
/** `GET /admin/marketplace/incidents/:kind` — the queue. */
|
|
42
|
+
export declare function listMarketplaceIncidents(kind: string, params?: {
|
|
43
|
+
status?: string;
|
|
44
|
+
limit?: number;
|
|
45
|
+
}): Promise<unknown>;
|
|
46
|
+
/** `GET /admin/marketplace/incidents/:kind/:incidentId` — one incident. */
|
|
47
|
+
export declare function getMarketplaceIncident(kind: string, incidentId: string): Promise<unknown>;
|
|
48
|
+
/** `GET /admin/marketplace/incidents/:kind/:incidentId/audit` — what was done to it. */
|
|
49
|
+
export declare function listMarketplaceIncidentAudit(kind: string, incidentId: string): Promise<unknown>;
|
|
50
|
+
/**
|
|
51
|
+
* `POST /admin/marketplace/incidents/integrity/:incidentId/resolve` — close an
|
|
52
|
+
* integrity incident with a stated resolution.
|
|
53
|
+
*
|
|
54
|
+
* Integrity only. A fulfillment incident is retried, not resolved, and the two
|
|
55
|
+
* are different acts: one says the work can run again, the other says a human
|
|
56
|
+
* looked and decided. The CLI keeps them as separate verbs for that reason.
|
|
57
|
+
*/
|
|
58
|
+
export declare function resolveIntegrityIncident(incidentId: string, body: Record<string, unknown>): Promise<unknown>;
|
|
59
|
+
/** `POST /admin/marketplace/fulfillment-reconciliations/:id/retry` — run it again. */
|
|
60
|
+
export declare function retryFulfillmentReconciliation(reconciliationId: string, body?: Record<string, unknown>): Promise<unknown>;
|
|
61
|
+
/** `POST /admin/products` — create a product. Body is the server's schema. */
|
|
62
|
+
export declare function createCommerceProduct(body: Record<string, unknown>): Promise<unknown>;
|
|
63
|
+
/** `POST /admin/offers` — create an offer VERSION. Body is the server's schema. */
|
|
64
|
+
export declare function createCommerceOfferVersion(body: Record<string, unknown>): Promise<unknown>;
|
|
65
|
+
/**
|
|
66
|
+
* The offer pipeline, in the order it is meant to run: validate → approve →
|
|
67
|
+
* publish, with retire as the exit. Four doors rather than one `--state` flag,
|
|
68
|
+
* because each is a distinct act with a distinct authority behind it, and a
|
|
69
|
+
* single mutate-the-state verb is how a governance pipeline becomes a field.
|
|
70
|
+
*/
|
|
71
|
+
/** `POST /admin/offers/:offerVersionId/validate` — is it ready to be approved? */
|
|
72
|
+
export declare function validateCommerceOffer(offerVersionId: string): Promise<unknown>;
|
|
73
|
+
/** `POST /admin/offers/:offerVersionId/approve` — somebody signs off. */
|
|
74
|
+
export declare function approveCommerceOffer(offerVersionId: string): Promise<unknown>;
|
|
75
|
+
/** `POST /admin/offers/:offerVersionId/publish` — it becomes buyable. */
|
|
76
|
+
export declare function publishCommerceOffer(offerVersionId: string): Promise<unknown>;
|
|
77
|
+
/** `POST /admin/offers/:offerVersionId/retire` — it stops being buyable. */
|
|
78
|
+
export declare function retireCommerceOffer(offerVersionId: string): Promise<unknown>;
|
|
79
|
+
/** `POST /trials` — enrol the calling user. The subject is the credential, never a field. */
|
|
80
|
+
export declare function startCommerceTrial(body: Record<string, unknown>): Promise<unknown>;
|
|
81
|
+
/** `GET /trials/:enrollmentId/conversion-preview` — what converting would cost. */
|
|
82
|
+
export declare function previewCommerceTrialConversion(enrollmentId: string): Promise<unknown>;
|
|
83
|
+
/** `POST /promotions/redeem` — redeem a promotional offer version. */
|
|
84
|
+
export declare function redeemCommercePromotion(offerVersionId: string): Promise<unknown>;
|
|
85
|
+
/**
|
|
86
|
+
* `POST /admin/entitlements/explain` — WHY a subject does or does not have a
|
|
87
|
+
* capability.
|
|
88
|
+
*
|
|
89
|
+
* The most useful read on this mount and the reason a CLI is worth having:
|
|
90
|
+
* "this account cannot do X" is a support question answered by tracing an
|
|
91
|
+
* entitlement, and tracing it from a terminal beats clicking through a console.
|
|
92
|
+
*/
|
|
93
|
+
export declare function explainCommerceEntitlement(body: Record<string, unknown>): Promise<unknown>;
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getMarketplaceTerms = getMarketplaceTerms;
|
|
4
|
+
exports.acceptMarketplaceTerms = acceptMarketplaceTerms;
|
|
5
|
+
exports.listMarketplaceIncidents = listMarketplaceIncidents;
|
|
6
|
+
exports.getMarketplaceIncident = getMarketplaceIncident;
|
|
7
|
+
exports.listMarketplaceIncidentAudit = listMarketplaceIncidentAudit;
|
|
8
|
+
exports.resolveIntegrityIncident = resolveIntegrityIncident;
|
|
9
|
+
exports.retryFulfillmentReconciliation = retryFulfillmentReconciliation;
|
|
10
|
+
exports.createCommerceProduct = createCommerceProduct;
|
|
11
|
+
exports.createCommerceOfferVersion = createCommerceOfferVersion;
|
|
12
|
+
exports.validateCommerceOffer = validateCommerceOffer;
|
|
13
|
+
exports.approveCommerceOffer = approveCommerceOffer;
|
|
14
|
+
exports.publishCommerceOffer = publishCommerceOffer;
|
|
15
|
+
exports.retireCommerceOffer = retireCommerceOffer;
|
|
16
|
+
exports.startCommerceTrial = startCommerceTrial;
|
|
17
|
+
exports.previewCommerceTrialConversion = previewCommerceTrialConversion;
|
|
18
|
+
exports.redeemCommercePromotion = redeemCommercePromotion;
|
|
19
|
+
exports.explainCommerceEntitlement = explainCommerceEntitlement;
|
|
20
|
+
const api_fetch_1 = require("./api-fetch");
|
|
21
|
+
const triggers_1 = require("./triggers");
|
|
22
|
+
/**
|
|
23
|
+
* `GET /marketplace/terms/current` — the terms in force for one side of a deal.
|
|
24
|
+
*
|
|
25
|
+
* The query rides in `withQuery` rather than being interpolated into the
|
|
26
|
+
* literal. That is not style: the parity checker reads the LITERAL at the call
|
|
27
|
+
* site, and a `?scope=${…}` baked into it resolves to a path with a query
|
|
28
|
+
* attached, which matches no route — so a covered endpoint reports as
|
|
29
|
+
* unreachable. `withQuery` is the wrapper the checker already understands, and
|
|
30
|
+
* it is the one the other libs use.
|
|
31
|
+
*/
|
|
32
|
+
async function getMarketplaceTerms(scope) {
|
|
33
|
+
return (0, api_fetch_1.apiFetch)((0, triggers_1.withQuery)('/api/commerce/marketplace/terms/current', { scope }));
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* `POST /marketplace/terms/accept` — record that you accept them.
|
|
37
|
+
*
|
|
38
|
+
* `accepted: true` is a literal the server requires; it is not a flag the CLI
|
|
39
|
+
* may default, because the whole value of the receipt is that somebody said so.
|
|
40
|
+
*/
|
|
41
|
+
async function acceptMarketplaceTerms(scope) {
|
|
42
|
+
return (0, api_fetch_1.apiFetch)('/api/commerce/marketplace/terms/accept', {
|
|
43
|
+
method: 'POST',
|
|
44
|
+
body: { scope, accepted: true },
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
/** `GET /admin/marketplace/incidents/:kind` — the queue. */
|
|
48
|
+
async function listMarketplaceIncidents(kind, params = {}) {
|
|
49
|
+
return (0, api_fetch_1.apiFetch)((0, triggers_1.withQuery)(`/api/commerce/admin/marketplace/incidents/${encodeURIComponent(kind)}`, params));
|
|
50
|
+
}
|
|
51
|
+
/** `GET /admin/marketplace/incidents/:kind/:incidentId` — one incident. */
|
|
52
|
+
async function getMarketplaceIncident(kind, incidentId) {
|
|
53
|
+
return (0, api_fetch_1.apiFetch)(`/api/commerce/admin/marketplace/incidents/${encodeURIComponent(kind)}/${encodeURIComponent(incidentId)}`);
|
|
54
|
+
}
|
|
55
|
+
/** `GET /admin/marketplace/incidents/:kind/:incidentId/audit` — what was done to it. */
|
|
56
|
+
async function listMarketplaceIncidentAudit(kind, incidentId) {
|
|
57
|
+
return (0, api_fetch_1.apiFetch)(`/api/commerce/admin/marketplace/incidents/${encodeURIComponent(kind)}/${encodeURIComponent(incidentId)}/audit`);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* `POST /admin/marketplace/incidents/integrity/:incidentId/resolve` — close an
|
|
61
|
+
* integrity incident with a stated resolution.
|
|
62
|
+
*
|
|
63
|
+
* Integrity only. A fulfillment incident is retried, not resolved, and the two
|
|
64
|
+
* are different acts: one says the work can run again, the other says a human
|
|
65
|
+
* looked and decided. The CLI keeps them as separate verbs for that reason.
|
|
66
|
+
*/
|
|
67
|
+
async function resolveIntegrityIncident(incidentId, body) {
|
|
68
|
+
return (0, api_fetch_1.apiFetch)(`/api/commerce/admin/marketplace/incidents/integrity/${encodeURIComponent(incidentId)}/resolve`, { method: 'POST', body });
|
|
69
|
+
}
|
|
70
|
+
/** `POST /admin/marketplace/fulfillment-reconciliations/:id/retry` — run it again. */
|
|
71
|
+
async function retryFulfillmentReconciliation(reconciliationId, body = {}) {
|
|
72
|
+
return (0, api_fetch_1.apiFetch)(`/api/commerce/admin/marketplace/fulfillment-reconciliations/${encodeURIComponent(reconciliationId)}/retry`, { method: 'POST', body });
|
|
73
|
+
}
|
|
74
|
+
/** `POST /admin/products` — create a product. Body is the server's schema. */
|
|
75
|
+
async function createCommerceProduct(body) {
|
|
76
|
+
return (0, api_fetch_1.apiFetch)('/api/commerce/admin/products', { method: 'POST', body });
|
|
77
|
+
}
|
|
78
|
+
/** `POST /admin/offers` — create an offer VERSION. Body is the server's schema. */
|
|
79
|
+
async function createCommerceOfferVersion(body) {
|
|
80
|
+
return (0, api_fetch_1.apiFetch)('/api/commerce/admin/offers', { method: 'POST', body });
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* The offer pipeline, in the order it is meant to run: validate → approve →
|
|
84
|
+
* publish, with retire as the exit. Four doors rather than one `--state` flag,
|
|
85
|
+
* because each is a distinct act with a distinct authority behind it, and a
|
|
86
|
+
* single mutate-the-state verb is how a governance pipeline becomes a field.
|
|
87
|
+
*/
|
|
88
|
+
/** `POST /admin/offers/:offerVersionId/validate` — is it ready to be approved? */
|
|
89
|
+
async function validateCommerceOffer(offerVersionId) {
|
|
90
|
+
return (0, api_fetch_1.apiFetch)(`/api/commerce/admin/offers/${encodeURIComponent(offerVersionId)}/validate`, { method: 'POST', body: {} });
|
|
91
|
+
}
|
|
92
|
+
/** `POST /admin/offers/:offerVersionId/approve` — somebody signs off. */
|
|
93
|
+
async function approveCommerceOffer(offerVersionId) {
|
|
94
|
+
return (0, api_fetch_1.apiFetch)(`/api/commerce/admin/offers/${encodeURIComponent(offerVersionId)}/approve`, { method: 'POST', body: {} });
|
|
95
|
+
}
|
|
96
|
+
/** `POST /admin/offers/:offerVersionId/publish` — it becomes buyable. */
|
|
97
|
+
async function publishCommerceOffer(offerVersionId) {
|
|
98
|
+
return (0, api_fetch_1.apiFetch)(`/api/commerce/admin/offers/${encodeURIComponent(offerVersionId)}/publish`, { method: 'POST', body: {} });
|
|
99
|
+
}
|
|
100
|
+
/** `POST /admin/offers/:offerVersionId/retire` — it stops being buyable. */
|
|
101
|
+
async function retireCommerceOffer(offerVersionId) {
|
|
102
|
+
return (0, api_fetch_1.apiFetch)(`/api/commerce/admin/offers/${encodeURIComponent(offerVersionId)}/retire`, { method: 'POST', body: {} });
|
|
103
|
+
}
|
|
104
|
+
/** `POST /trials` — enrol the calling user. The subject is the credential, never a field. */
|
|
105
|
+
async function startCommerceTrial(body) {
|
|
106
|
+
return (0, api_fetch_1.apiFetch)('/api/commerce/trials', { method: 'POST', body });
|
|
107
|
+
}
|
|
108
|
+
/** `GET /trials/:enrollmentId/conversion-preview` — what converting would cost. */
|
|
109
|
+
async function previewCommerceTrialConversion(enrollmentId) {
|
|
110
|
+
return (0, api_fetch_1.apiFetch)(`/api/commerce/trials/${encodeURIComponent(enrollmentId)}/conversion-preview`);
|
|
111
|
+
}
|
|
112
|
+
/** `POST /promotions/redeem` — redeem a promotional offer version. */
|
|
113
|
+
async function redeemCommercePromotion(offerVersionId) {
|
|
114
|
+
return (0, api_fetch_1.apiFetch)('/api/commerce/promotions/redeem', {
|
|
115
|
+
method: 'POST',
|
|
116
|
+
body: { offerVersionId },
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* `POST /admin/entitlements/explain` — WHY a subject does or does not have a
|
|
121
|
+
* capability.
|
|
122
|
+
*
|
|
123
|
+
* The most useful read on this mount and the reason a CLI is worth having:
|
|
124
|
+
* "this account cannot do X" is a support question answered by tracing an
|
|
125
|
+
* entitlement, and tracing it from a terminal beats clicking through a console.
|
|
126
|
+
*/
|
|
127
|
+
async function explainCommerceEntitlement(body) {
|
|
128
|
+
return (0, api_fetch_1.apiFetch)('/api/commerce/admin/entitlements/explain', { method: 'POST', body });
|
|
129
|
+
}
|
|
@@ -125,7 +125,7 @@ function renderExecutionReceiptQuarterlyMetrics(response, log, verbose = false)
|
|
|
125
125
|
log(` Execute starts: ${metrics.executeStarts}`);
|
|
126
126
|
log(` Declared deliveries: ${metrics.declaredDeliveries}`);
|
|
127
127
|
log(` Verified outcomes: ${metrics.verifiedOutcomes}`);
|
|
128
|
-
log(` Blocked:
|
|
128
|
+
log(` Blocked / failed: ${metrics.blocked} / ${metrics.failed ?? '—'}`);
|
|
129
129
|
log('');
|
|
130
130
|
log('Rates');
|
|
131
131
|
log(` Verified per eligible wake: ${ratio(metrics.verifiedOutcomesPerEligibleMaterialWake)}`);
|