@skrr-ai/cli 0.1.60 → 0.1.62

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. package/dist/base-command.js +16 -0
  2. package/dist/commands/agents/create.d.ts +1 -0
  3. package/dist/commands/agents/create.js +8 -1
  4. package/dist/commands/agents/delete.d.ts +14 -0
  5. package/dist/commands/agents/delete.js +52 -4
  6. package/dist/commands/agents/eval/index.d.ts +38 -0
  7. package/dist/commands/agents/eval/index.js +157 -0
  8. package/dist/commands/agents/eval/list.d.ts +13 -0
  9. package/dist/commands/agents/eval/list.js +53 -0
  10. package/dist/commands/agents/eval/show.d.ts +13 -0
  11. package/dist/commands/agents/eval/show.js +36 -0
  12. package/dist/commands/agents/import.d.ts +37 -0
  13. package/dist/commands/agents/import.js +233 -0
  14. package/dist/commands/agents/pull.d.ts +27 -0
  15. package/dist/commands/agents/pull.js +82 -0
  16. package/dist/commands/agents/push.d.ts +28 -0
  17. package/dist/commands/agents/push.js +112 -0
  18. package/dist/commands/agents/releases/ci-publish.d.ts +32 -0
  19. package/dist/commands/agents/releases/ci-publish.js +99 -0
  20. package/dist/commands/agents/releases/create.d.ts +3 -0
  21. package/dist/commands/agents/releases/create.js +27 -6
  22. package/dist/commands/agents/releases/known-issues/add.d.ts +19 -0
  23. package/dist/commands/agents/releases/known-issues/add.js +43 -0
  24. package/dist/commands/agents/releases/known-issues/list.d.ts +17 -0
  25. package/dist/commands/agents/releases/known-issues/list.js +55 -0
  26. package/dist/commands/agents/releases/known-issues/update.d.ts +18 -0
  27. package/dist/commands/agents/releases/known-issues/update.js +47 -0
  28. package/dist/commands/agents/releases/list.js +25 -3
  29. package/dist/commands/agents/releases/rollback.js +12 -4
  30. package/dist/commands/agents/releases/test-install.d.ts +22 -0
  31. package/dist/commands/agents/releases/test-install.js +70 -0
  32. package/dist/commands/agents/releases/trusted-publishers/list.d.ts +17 -0
  33. package/dist/commands/agents/releases/trusted-publishers/list.js +55 -0
  34. package/dist/commands/agents/releases/trusted-publishers/remove.d.ts +17 -0
  35. package/dist/commands/agents/releases/trusted-publishers/remove.js +45 -0
  36. package/dist/commands/agents/releases/trusted-publishers/set.d.ts +27 -0
  37. package/dist/commands/agents/releases/trusted-publishers/set.js +82 -0
  38. package/dist/commands/agents/update.d.ts +1 -0
  39. package/dist/commands/agents/update.js +8 -1
  40. package/dist/commands/agents/usage-cap.d.ts +20 -0
  41. package/dist/commands/agents/usage-cap.js +76 -0
  42. package/dist/commands/agents/validate.d.ts +22 -0
  43. package/dist/commands/agents/validate.js +66 -0
  44. package/dist/commands/agents/visibility.d.ts +13 -0
  45. package/dist/commands/agents/visibility.js +84 -2
  46. package/dist/commands/commerce/fees/show.d.ts +19 -0
  47. package/dist/commands/commerce/fees/show.js +75 -0
  48. package/dist/commands/earnings/index.d.ts +15 -0
  49. package/dist/commands/earnings/index.js +46 -0
  50. package/dist/commands/earnings/payouts.d.ts +12 -0
  51. package/dist/commands/earnings/payouts.js +39 -0
  52. package/dist/commands/earnings/statements.d.ts +19 -0
  53. package/dist/commands/earnings/statements.js +70 -0
  54. package/dist/commands/goals/key-results/create.d.ts +1 -1
  55. package/dist/commands/goals/key-results/create.js +5 -1
  56. package/dist/commands/harnesses/show.js +11 -1
  57. package/dist/commands/logout.js +31 -0
  58. package/dist/commands/machines/show.js +10 -1
  59. package/dist/commands/managed-execution/show.d.ts +10 -0
  60. package/dist/commands/managed-execution/show.js +60 -0
  61. package/dist/commands/spaces/show.js +35 -1
  62. package/dist/commands/step-up.d.ts +23 -0
  63. package/dist/commands/step-up.js +96 -0
  64. package/dist/commands/store/acquisitions/approve.d.ts +30 -0
  65. package/dist/commands/store/acquisitions/approve.js +100 -0
  66. package/dist/commands/store/acquisitions/decline.d.ts +17 -0
  67. package/dist/commands/store/acquisitions/decline.js +47 -0
  68. package/dist/commands/store/acquisitions/show.d.ts +16 -0
  69. package/dist/commands/store/acquisitions/show.js +49 -0
  70. package/dist/commands/store/admissions/approve.d.ts +19 -0
  71. package/dist/commands/store/admissions/approve.js +50 -0
  72. package/dist/commands/store/admissions/list.d.ts +15 -0
  73. package/dist/commands/store/admissions/list.js +60 -0
  74. package/dist/commands/store/admissions/refuse.d.ts +18 -0
  75. package/dist/commands/store/admissions/refuse.js +49 -0
  76. package/dist/commands/store/advisories/artifact.d.ts +15 -0
  77. package/dist/commands/store/advisories/artifact.js +25 -0
  78. package/dist/commands/store/advisories/cancel.d.ts +13 -0
  79. package/dist/commands/store/advisories/cancel.js +34 -0
  80. package/dist/commands/store/advisories/close.d.ts +18 -0
  81. package/dist/commands/store/advisories/close.js +51 -0
  82. package/dist/commands/store/advisories/confirm.d.ts +17 -0
  83. package/dist/commands/store/advisories/confirm.js +40 -0
  84. package/dist/commands/store/advisories/issue.d.ts +20 -0
  85. package/dist/commands/store/advisories/issue.js +59 -0
  86. package/dist/commands/store/advisories/list.d.ts +15 -0
  87. package/dist/commands/store/advisories/list.js +49 -0
  88. package/dist/commands/store/advisories/show.d.ts +13 -0
  89. package/dist/commands/store/advisories/show.js +34 -0
  90. package/dist/commands/store/artifacts/release.d.ts +16 -0
  91. package/dist/commands/store/artifacts/release.js +31 -0
  92. package/dist/commands/store/artifacts/used-by.d.ts +12 -0
  93. package/dist/commands/store/artifacts/used-by.js +20 -0
  94. package/dist/commands/store/browse.d.ts +5 -0
  95. package/dist/commands/store/browse.js +28 -1
  96. package/dist/commands/store/channel.d.ts +21 -0
  97. package/dist/commands/store/channel.js +62 -0
  98. package/dist/commands/store/follow.d.ts +14 -0
  99. package/dist/commands/store/follow.js +45 -0
  100. package/dist/commands/store/governance/policy.d.ts +18 -5
  101. package/dist/commands/store/governance/policy.js +80 -12
  102. package/dist/commands/store/governance/requests.d.ts +28 -0
  103. package/dist/commands/store/governance/requests.js +116 -0
  104. package/dist/commands/store/install.d.ts +3 -0
  105. package/dist/commands/store/install.js +101 -2
  106. package/dist/commands/store/issues.d.ts +26 -0
  107. package/dist/commands/store/issues.js +118 -0
  108. package/dist/commands/store/maintainers/add.d.ts +13 -0
  109. package/dist/commands/store/maintainers/add.js +23 -0
  110. package/dist/commands/store/maintainers/remove.d.ts +13 -0
  111. package/dist/commands/store/maintainers/remove.js +22 -0
  112. package/dist/commands/store/publishers/approve.d.ts +11 -0
  113. package/dist/commands/store/publishers/approve.js +25 -0
  114. package/dist/commands/store/publishers/claim.d.ts +12 -0
  115. package/dist/commands/store/publishers/claim.js +20 -0
  116. package/dist/commands/store/publishers/confirm.d.ts +11 -0
  117. package/dist/commands/store/publishers/confirm.js +17 -0
  118. package/dist/commands/store/publishers/domains/begin.d.ts +12 -0
  119. package/dist/commands/store/publishers/domains/begin.js +20 -0
  120. package/dist/commands/store/publishers/domains/list.d.ts +9 -0
  121. package/dist/commands/store/publishers/domains/list.js +19 -0
  122. package/dist/commands/store/publishers/domains/verify.d.ts +12 -0
  123. package/dist/commands/store/publishers/domains/verify.js +20 -0
  124. package/dist/commands/store/publishers/namespaces.d.ts +8 -0
  125. package/dist/commands/store/publishers/namespaces.js +16 -0
  126. package/dist/commands/store/publishers/verified.d.ts +11 -0
  127. package/dist/commands/store/publishers/verified.js +34 -0
  128. package/dist/commands/store/refund.d.ts +22 -0
  129. package/dist/commands/store/refund.js +80 -0
  130. package/dist/commands/store/report.d.ts +20 -0
  131. package/dist/commands/store/report.js +59 -0
  132. package/dist/commands/store/reports.d.ts +11 -0
  133. package/dist/commands/store/reports.js +52 -0
  134. package/dist/commands/store/signals.d.ts +18 -0
  135. package/dist/commands/store/signals.js +43 -0
  136. package/dist/commands/store/star.d.ts +17 -0
  137. package/dist/commands/store/star.js +41 -0
  138. package/dist/commands/store/stars.d.ts +10 -0
  139. package/dist/commands/store/stars.js +33 -0
  140. package/dist/commands/store/trial.d.ts +11 -0
  141. package/dist/commands/store/trial.js +17 -0
  142. package/dist/commands/store/uninstall.d.ts +19 -0
  143. package/dist/commands/store/uninstall.js +118 -0
  144. package/dist/commands/store/update.d.ts +2 -0
  145. package/dist/commands/store/update.js +60 -2
  146. package/dist/commands/store/updates.d.ts +10 -4
  147. package/dist/commands/store/updates.js +60 -39
  148. package/dist/commands/store/watch.d.ts +18 -0
  149. package/dist/commands/store/watch.js +44 -0
  150. package/dist/commands/subscriptions/health.d.ts +12 -0
  151. package/dist/commands/subscriptions/health.js +39 -0
  152. package/dist/commands/subscriptions/list.js +3 -2
  153. package/dist/commands/subscriptions/status.js +7 -1
  154. package/dist/commands/subscriptions/subscribe.d.ts +9 -2
  155. package/dist/commands/subscriptions/subscribe.js +141 -12
  156. package/dist/commands/tasks/comments/list.js +9 -1
  157. package/dist/commands/tasks/labels/attach.js +15 -2
  158. package/dist/commands/tasks/show.js +17 -3
  159. package/dist/commands/tasks/update.js +15 -4
  160. package/dist/commands/tasks/updates/add.js +5 -1
  161. package/dist/lib/agent-config.js +1 -0
  162. package/dist/lib/agent-evals.d.ts +71 -0
  163. package/dist/lib/agent-evals.js +359 -0
  164. package/dist/lib/agent-spec.d.ts +28 -0
  165. package/dist/lib/agent-spec.js +58 -0
  166. package/dist/lib/auth-storage.d.ts +12 -0
  167. package/dist/lib/auth-storage.js +0 -33
  168. package/dist/lib/commerce.d.ts +8 -0
  169. package/dist/lib/commerce.js +10 -0
  170. package/dist/lib/earnings.d.ts +36 -0
  171. package/dist/lib/earnings.js +164 -0
  172. package/dist/lib/github-oidc.d.ts +13 -0
  173. package/dist/lib/github-oidc.js +41 -0
  174. package/dist/lib/governed-store.d.ts +43 -2
  175. package/dist/lib/governed-store.js +25 -1
  176. package/dist/lib/label-ref.js +16 -0
  177. package/dist/lib/managed-execution.d.ts +10 -0
  178. package/dist/lib/managed-execution.js +43 -0
  179. package/dist/lib/principal-display.d.ts +20 -0
  180. package/dist/lib/principal-display.js +64 -0
  181. package/dist/lib/space-template-source.d.ts +14 -0
  182. package/dist/lib/space-template-source.js +41 -0
  183. package/dist/lib/step-up.d.ts +21 -0
  184. package/dist/lib/step-up.js +44 -0
  185. package/dist/lib/store-acquisition.d.ts +11 -0
  186. package/dist/lib/store-acquisition.js +40 -0
  187. package/dist/lib/store-advisories.d.ts +50 -0
  188. package/dist/lib/store-advisories.js +62 -0
  189. package/dist/lib/task-closure.js +1 -1
  190. package/dist/lib/web-url.d.ts +11 -0
  191. package/dist/lib/web-url.js +14 -0
  192. package/dist/node_modules/@skrr-ai/data-provider/index.js +25471 -24177
  193. package/oclif.manifest.json +38931 -34119
  194. package/package.json +21 -3
@@ -0,0 +1,19 @@
1
+ import { BaseCommand } from '../../../base-command';
2
+ /**
3
+ * Approve an item in the capability-tiered admission queue (OSK-12265). For an
4
+ * agent release the id is the release id; for a skill/action listing pass
5
+ * --kind. Approval re-runs the offer binding and copy gates server-side.
6
+ */
7
+ export default class StoreAdmissionsApprove extends BaseCommand {
8
+ static description: string;
9
+ static examples: string[];
10
+ static args: {
11
+ id: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
12
+ };
13
+ static flags: {
14
+ kind: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
15
+ note: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
16
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
17
+ };
18
+ run(): Promise<void>;
19
+ }
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const data_provider_1 = require("@skrr-ai/data-provider");
5
+ const base_command_1 = require("../../../base-command");
6
+ /**
7
+ * Approve an item in the capability-tiered admission queue (OSK-12265). For an
8
+ * agent release the id is the release id; for a skill/action listing pass
9
+ * --kind. Approval re-runs the offer binding and copy gates server-side.
10
+ */
11
+ class StoreAdmissionsApprove extends base_command_1.BaseCommand {
12
+ static description = 'Approve a release or listing waiting on capability-tiered review (store_curation)';
13
+ static examples = [
14
+ '<%= config.bin %> store admissions approve ar_abc123',
15
+ '<%= config.bin %> store admissions approve skill_abc123 --kind skill',
16
+ ];
17
+ static args = {
18
+ id: core_1.Args.string({
19
+ description: 'Release id, or listing id with --kind',
20
+ required: true,
21
+ ignoreStdin: true,
22
+ }),
23
+ };
24
+ static flags = {
25
+ kind: core_1.Flags.string({
26
+ description: 'The id is a listing, not a release',
27
+ options: ['skill', 'action'],
28
+ }),
29
+ note: core_1.Flags.string({ description: 'Decision note' }),
30
+ json: core_1.Flags.boolean({ description: 'Output as JSON' }),
31
+ };
32
+ async run() {
33
+ this.requireAuth();
34
+ const { args, flags } = await this.parse(StoreAdmissionsApprove);
35
+ try {
36
+ const result = flags.kind
37
+ ? await data_provider_1.dataService.approveStoreListingAdmission(flags.kind, args.id, flags.note)
38
+ : await data_provider_1.dataService.approveStoreReleaseAdmission(args.id, flags.note);
39
+ if (flags.json) {
40
+ this.log(JSON.stringify(result, null, 2));
41
+ return;
42
+ }
43
+ this.log('Approved.');
44
+ }
45
+ catch (err) {
46
+ this.handleApiError(err);
47
+ }
48
+ }
49
+ }
50
+ exports.default = StoreAdmissionsApprove;
@@ -0,0 +1,15 @@
1
+ import { BaseCommand } from '../../../base-command';
2
+ /**
3
+ * The store_curation admission queue (OSK-12265): releases and listings whose
4
+ * capability tier crossed the review threshold, waiting on a curator who is
5
+ * not the publisher.
6
+ */
7
+ export default class StoreAdmissionsList extends BaseCommand {
8
+ static description: string;
9
+ static examples: string[];
10
+ static flags: {
11
+ state: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
12
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
13
+ };
14
+ run(): Promise<void>;
15
+ }
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const data_provider_1 = require("@skrr-ai/data-provider");
5
+ const base_command_1 = require("../../../base-command");
6
+ /**
7
+ * The store_curation admission queue (OSK-12265): releases and listings whose
8
+ * capability tier crossed the review threshold, waiting on a curator who is
9
+ * not the publisher.
10
+ */
11
+ class StoreAdmissionsList extends base_command_1.BaseCommand {
12
+ static description = 'List releases and listings awaiting capability-tiered review (store_curation)';
13
+ static examples = [
14
+ '<%= config.bin %> store admissions list',
15
+ '<%= config.bin %> store admissions list --state refused --json',
16
+ ];
17
+ static flags = {
18
+ state: core_1.Flags.string({
19
+ description: 'Queue to read: pending_review or refused',
20
+ default: 'pending_review',
21
+ }),
22
+ json: core_1.Flags.boolean({ description: 'Output as JSON' }),
23
+ };
24
+ async run() {
25
+ this.requireAuth();
26
+ const { flags } = await this.parse(StoreAdmissionsList);
27
+ try {
28
+ const result = await data_provider_1.dataService.getStoreReleaseAdmissions({
29
+ state: flags.state === 'refused' ? 'refused' : 'pending_review',
30
+ });
31
+ if (flags.json) {
32
+ this.log(JSON.stringify(result, null, 2));
33
+ return;
34
+ }
35
+ const rows = [
36
+ ...(result.releases || []).map((r) => ({
37
+ kind: 'agent release',
38
+ id: r.id,
39
+ name: `${r.agentId} v${r.versionLabel}`,
40
+ facets: (r.admission?.facets || []).join(','),
41
+ })),
42
+ ...(result.listings || []).map((l) => ({
43
+ kind: l.entityType,
44
+ id: l.id,
45
+ name: l.name || '',
46
+ facets: (l.admission?.facets || []).join(','),
47
+ })),
48
+ ];
49
+ if (!rows.length) {
50
+ this.log('Nothing waiting for review.');
51
+ return;
52
+ }
53
+ rows.forEach((r) => this.log(`${r.kind}\t${r.id}\t${r.name}\t${r.facets}`));
54
+ }
55
+ catch (err) {
56
+ this.handleApiError(err);
57
+ }
58
+ }
59
+ }
60
+ exports.default = StoreAdmissionsList;
@@ -0,0 +1,18 @@
1
+ import { BaseCommand } from '../../../base-command';
2
+ /**
3
+ * Refuse an item in the capability-tiered admission queue (OSK-12265). A
4
+ * refusal takes --note — that is the sentence the publisher reads.
5
+ */
6
+ export default class StoreAdmissionsRefuse extends BaseCommand {
7
+ static description: string;
8
+ static examples: string[];
9
+ static args: {
10
+ id: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
11
+ };
12
+ static flags: {
13
+ kind: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
14
+ note: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
15
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
16
+ };
17
+ run(): Promise<void>;
18
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const data_provider_1 = require("@skrr-ai/data-provider");
5
+ const base_command_1 = require("../../../base-command");
6
+ /**
7
+ * Refuse an item in the capability-tiered admission queue (OSK-12265). A
8
+ * refusal takes --note — that is the sentence the publisher reads.
9
+ */
10
+ class StoreAdmissionsRefuse extends base_command_1.BaseCommand {
11
+ static description = 'Refuse a release or listing waiting on capability-tiered review (store_curation)';
12
+ static examples = [
13
+ '<%= config.bin %> store admissions refuse ar_abc123 --note "unbounded network egress"',
14
+ '<%= config.bin %> store admissions refuse act_abc123 --kind action --note "reason"',
15
+ ];
16
+ static args = {
17
+ id: core_1.Args.string({
18
+ description: 'Release id, or listing id with --kind',
19
+ required: true,
20
+ ignoreStdin: true,
21
+ }),
22
+ };
23
+ static flags = {
24
+ kind: core_1.Flags.string({
25
+ description: 'The id is a listing, not a release',
26
+ options: ['skill', 'action'],
27
+ }),
28
+ note: core_1.Flags.string({ description: 'Why the refusal — required', required: true }),
29
+ json: core_1.Flags.boolean({ description: 'Output as JSON' }),
30
+ };
31
+ async run() {
32
+ this.requireAuth();
33
+ const { args, flags } = await this.parse(StoreAdmissionsRefuse);
34
+ try {
35
+ const result = flags.kind
36
+ ? await data_provider_1.dataService.refuseStoreListingAdmission(flags.kind, args.id, flags.note || '')
37
+ : await data_provider_1.dataService.refuseStoreReleaseAdmission(args.id, flags.note || '');
38
+ if (flags.json) {
39
+ this.log(JSON.stringify(result, null, 2));
40
+ return;
41
+ }
42
+ this.log('Refused.');
43
+ }
44
+ catch (err) {
45
+ this.handleApiError(err);
46
+ }
47
+ }
48
+ }
49
+ exports.default = StoreAdmissionsRefuse;
@@ -0,0 +1,15 @@
1
+ import { BaseCommand } from '../../../base-command';
2
+ export default class StoreAdvisoriesArtifact extends BaseCommand {
3
+ static description: string;
4
+ static args: {
5
+ entityType: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
6
+ entityId: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
7
+ releaseId: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
8
+ };
9
+ static flags: {
10
+ remedy: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
11
+ summary: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
12
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
13
+ };
14
+ run(): Promise<void>;
15
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const data_provider_1 = require("@skrr-ai/data-provider");
5
+ const base_command_1 = require("../../../base-command");
6
+ class StoreAdvisoriesArtifact extends base_command_1.BaseCommand {
7
+ static description = 'Curator: recall an artifact release — cascades to every dependent agent release';
8
+ static args = {
9
+ entityType: core_1.Args.string({ required: true, ignoreStdin: true }),
10
+ entityId: core_1.Args.string({ required: true, ignoreStdin: true }),
11
+ releaseId: core_1.Args.string({ required: true, ignoreStdin: true }),
12
+ };
13
+ static flags = {
14
+ remedy: core_1.Flags.string({ required: true }),
15
+ summary: core_1.Flags.string({ required: true }),
16
+ json: core_1.Flags.boolean({ description: 'Output JSON' }),
17
+ };
18
+ async run() {
19
+ this.requireAuth();
20
+ const { args, flags } = await this.parse(StoreAdvisoriesArtifact);
21
+ const result = await data_provider_1.dataService.issueStoreArtifactAdvisory(args.entityType, args.entityId, args.releaseId, { remedy: flags.remedy, summary: flags.summary });
22
+ this.log(JSON.stringify(result, null, 2));
23
+ }
24
+ }
25
+ exports.default = StoreAdvisoriesArtifact;
@@ -0,0 +1,13 @@
1
+ import { BaseCommand } from '../../../base-command';
2
+ /** Withdraw a pending request to end an advisory. The recall stays in force. */
3
+ export default class StoreAdvisoriesCancel extends BaseCommand {
4
+ static description: string;
5
+ static examples: string[];
6
+ static args: {
7
+ advisoryId: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
8
+ };
9
+ static flags: {
10
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
11
+ };
12
+ run(): Promise<void>;
13
+ }
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const base_command_1 = require("../../../base-command");
5
+ const store_advisories_1 = require("../../../lib/store-advisories");
6
+ /** Withdraw a pending request to end an advisory. The recall stays in force. */
7
+ class StoreAdvisoriesCancel extends base_command_1.BaseCommand {
8
+ static description = 'Cancel a pending request to lift or retract a Store advisory; the recall stays in force. Store curators only.';
9
+ static examples = ['<%= config.bin %> store advisories cancel adv_123'];
10
+ static args = {
11
+ advisoryId: core_1.Args.string({ description: 'The advisory', required: true, ignoreStdin: true }),
12
+ };
13
+ static flags = {
14
+ json: core_1.Flags.boolean({ description: 'Output as JSON' }),
15
+ };
16
+ async run() {
17
+ this.requireAuth();
18
+ const { args, flags } = await this.parse(StoreAdvisoriesCancel);
19
+ let result;
20
+ try {
21
+ result = await (0, store_advisories_1.cancelStoreReleaseAdvisoryClose)(args.advisoryId);
22
+ }
23
+ catch (error) {
24
+ this.handleApiError(error);
25
+ return;
26
+ }
27
+ if (flags.json) {
28
+ this.log(JSON.stringify(result, null, 2));
29
+ return;
30
+ }
31
+ this.log((0, store_advisories_1.describeStoreReleaseAdvisoryLines)(result.advisory).join('\n'));
32
+ }
33
+ }
34
+ exports.default = StoreAdvisoriesCancel;
@@ -0,0 +1,18 @@
1
+ import { BaseCommand } from '../../../base-command';
2
+ /**
3
+ * The FIRST of two curators ending an advisory. The recall stays in force until
4
+ * a different curator runs `confirm`.
5
+ */
6
+ export default class StoreAdvisoriesClose extends BaseCommand {
7
+ static description: string;
8
+ static examples: string[];
9
+ static args: {
10
+ advisoryId: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
11
+ };
12
+ static flags: {
13
+ action: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
14
+ note: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
15
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
16
+ };
17
+ run(): Promise<void>;
18
+ }
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const data_provider_1 = require("@skrr-ai/data-provider");
5
+ const base_command_1 = require("../../../base-command");
6
+ const store_advisories_1 = require("../../../lib/store-advisories");
7
+ /**
8
+ * The FIRST of two curators ending an advisory. The recall stays in force until
9
+ * a different curator runs `confirm`.
10
+ */
11
+ class StoreAdvisoriesClose extends base_command_1.BaseCommand {
12
+ static description = 'Ask to lift or retract a Store advisory. It stays in force until a different curator confirms. Store curators only.';
13
+ static examples = [
14
+ '<%= config.bin %> store advisories close adv_123 --action lift --note "1.3 ships with the leak removed"',
15
+ '<%= config.bin %> store advisories close adv_123 --action retract --note "Issued against the wrong release"',
16
+ ];
17
+ static args = {
18
+ advisoryId: core_1.Args.string({ description: 'The advisory', required: true, ignoreStdin: true }),
19
+ };
20
+ static flags = {
21
+ action: core_1.Flags.string({
22
+ description: 'lift: no longer needed · retract: issued in error',
23
+ options: [...data_provider_1.STORE_RELEASE_ADVISORY_CLOSE_ACTIONS],
24
+ required: true,
25
+ }),
26
+ note: core_1.Flags.string({ description: 'Why it can end', required: true }),
27
+ json: core_1.Flags.boolean({ description: 'Output as JSON' }),
28
+ };
29
+ async run() {
30
+ this.requireAuth();
31
+ const { args, flags } = await this.parse(StoreAdvisoriesClose);
32
+ let result;
33
+ try {
34
+ result = await (0, store_advisories_1.requestStoreReleaseAdvisoryClose)(args.advisoryId, {
35
+ action: flags.action,
36
+ note: flags.note,
37
+ });
38
+ }
39
+ catch (error) {
40
+ this.handleApiError(error);
41
+ return;
42
+ }
43
+ if (flags.json) {
44
+ this.log(JSON.stringify(result, null, 2));
45
+ return;
46
+ }
47
+ this.log((0, store_advisories_1.describeStoreReleaseAdvisoryLines)(result.advisory).join('\n'));
48
+ this.log('Still in force: a different Store curator must run `store advisories confirm`.');
49
+ }
50
+ }
51
+ exports.default = StoreAdvisoriesClose;
@@ -0,0 +1,17 @@
1
+ import { BaseCommand } from '../../../base-command';
2
+ /**
3
+ * The SECOND curator. The server refuses the curator who asked, so one person
4
+ * cannot put a recalled release back into service alone.
5
+ */
6
+ export default class StoreAdvisoriesConfirm extends BaseCommand {
7
+ static description: string;
8
+ static examples: string[];
9
+ static args: {
10
+ advisoryId: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
11
+ };
12
+ static flags: {
13
+ note: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
14
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
15
+ };
16
+ run(): Promise<void>;
17
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const base_command_1 = require("../../../base-command");
5
+ const store_advisories_1 = require("../../../lib/store-advisories");
6
+ /**
7
+ * The SECOND curator. The server refuses the curator who asked, so one person
8
+ * cannot put a recalled release back into service alone.
9
+ */
10
+ class StoreAdvisoriesConfirm extends base_command_1.BaseCommand {
11
+ static description = 'Confirm another curator’s request to lift or retract a Store advisory. Store curators only.';
12
+ static examples = [
13
+ '<%= config.bin %> store advisories confirm adv_123 --note "Checked the 1.3 diff"',
14
+ ];
15
+ static args = {
16
+ advisoryId: core_1.Args.string({ description: 'The advisory', required: true, ignoreStdin: true }),
17
+ };
18
+ static flags = {
19
+ note: core_1.Flags.string({ description: 'What you checked', required: true }),
20
+ json: core_1.Flags.boolean({ description: 'Output as JSON' }),
21
+ };
22
+ async run() {
23
+ this.requireAuth();
24
+ const { args, flags } = await this.parse(StoreAdvisoriesConfirm);
25
+ let result;
26
+ try {
27
+ result = await (0, store_advisories_1.confirmStoreReleaseAdvisoryClose)(args.advisoryId, { note: flags.note });
28
+ }
29
+ catch (error) {
30
+ this.handleApiError(error);
31
+ return;
32
+ }
33
+ if (flags.json) {
34
+ this.log(JSON.stringify(result, null, 2));
35
+ return;
36
+ }
37
+ this.log((0, store_advisories_1.describeStoreReleaseAdvisoryLines)(result.advisory).join('\n'));
38
+ }
39
+ }
40
+ exports.default = StoreAdvisoriesConfirm;
@@ -0,0 +1,20 @@
1
+ import { BaseCommand } from '../../../base-command';
2
+ /**
3
+ * Recall a published release. One Store curator is enough: a stop is the
4
+ * reversible side. Lifting it later takes two (`close`, then `confirm`).
5
+ */
6
+ export default class StoreAdvisoriesIssue extends BaseCommand {
7
+ static description: string;
8
+ static examples: string[];
9
+ static args: {
10
+ agentId: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
11
+ releaseId: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
12
+ };
13
+ static flags: {
14
+ remedy: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
15
+ summary: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
16
+ evidence: import("@oclif/core/lib/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
17
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
18
+ };
19
+ run(): Promise<void>;
20
+ }
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const data_provider_1 = require("@skrr-ai/data-provider");
5
+ const base_command_1 = require("../../../base-command");
6
+ const store_advisories_1 = require("../../../lib/store-advisories");
7
+ /**
8
+ * Recall a published release. One Store curator is enough: a stop is the
9
+ * reversible side. Lifting it later takes two (`close`, then `confirm`).
10
+ */
11
+ class StoreAdvisoriesIssue extends base_command_1.BaseCommand {
12
+ static description = 'Issue a Store advisory against a published release. `revoke` stops every installed copy running it from running unattended. Store curators only.';
13
+ static examples = [
14
+ '<%= config.bin %> store advisories issue agent_abc123 ar_def456 --remedy revoke --summary "Posts connector tokens to a third-party host" --evidence https://example.com/report',
15
+ '<%= config.bin %> store advisories issue agent_abc123 ar_def456 --remedy withdraw --summary "Breaks on the new calendar API"',
16
+ ];
17
+ static args = {
18
+ agentId: core_1.Args.string({ description: 'The published agent', required: true, ignoreStdin: true }),
19
+ releaseId: core_1.Args.string({
20
+ description: 'The release to recall',
21
+ required: true,
22
+ ignoreStdin: true,
23
+ }),
24
+ };
25
+ static flags = {
26
+ remedy: core_1.Flags.string({
27
+ description: 'notify: tell installers · withdraw: stop new installs and updates · revoke: withdraw, and stop unattended runs of every copy running it',
28
+ options: [...data_provider_1.STORE_RELEASE_ADVISORY_ISSUABLE_REMEDIES],
29
+ required: true,
30
+ }),
31
+ summary: core_1.Flags.string({ description: 'What is wrong with the release', required: true }),
32
+ evidence: core_1.Flags.string({ description: 'Evidence reference (repeatable)', multiple: true }),
33
+ json: core_1.Flags.boolean({ description: 'Output as JSON' }),
34
+ };
35
+ async run() {
36
+ this.requireAuth();
37
+ const { args, flags } = await this.parse(StoreAdvisoriesIssue);
38
+ let result;
39
+ try {
40
+ result = await (0, store_advisories_1.issueStoreReleaseAdvisory)(args.agentId, args.releaseId, {
41
+ remedy: flags.remedy,
42
+ summary: flags.summary,
43
+ ...(flags.evidence?.length ? { evidenceRefs: flags.evidence } : {}),
44
+ });
45
+ }
46
+ catch (error) {
47
+ this.handleApiError(error);
48
+ return;
49
+ }
50
+ if (flags.json) {
51
+ this.log(JSON.stringify(result, null, 2));
52
+ return;
53
+ }
54
+ if (result.replayed)
55
+ this.log('Already issued; this is the same advisory.');
56
+ this.log((0, store_advisories_1.describeStoreReleaseAdvisoryLines)(result.advisory).join('\n'));
57
+ }
58
+ }
59
+ exports.default = StoreAdvisoriesIssue;
@@ -0,0 +1,15 @@
1
+ import { BaseCommand } from '../../../base-command';
2
+ /** The recalls issued against one release. Store curators only. */
3
+ export default class StoreAdvisoriesList extends BaseCommand {
4
+ static description: string;
5
+ static examples: string[];
6
+ static args: {
7
+ agentId: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
8
+ releaseId: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
9
+ };
10
+ static flags: {
11
+ status: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
12
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
13
+ };
14
+ run(): Promise<void>;
15
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const data_provider_1 = require("@skrr-ai/data-provider");
5
+ const base_command_1 = require("../../../base-command");
6
+ const store_advisories_1 = require("../../../lib/store-advisories");
7
+ /** The recalls issued against one release. Store curators only. */
8
+ class StoreAdvisoriesList extends base_command_1.BaseCommand {
9
+ static description = 'List the Store advisories (recalls) issued against one published release. Store curators only.';
10
+ static examples = [
11
+ '<%= config.bin %> store advisories list agent_abc123 ar_def456',
12
+ '<%= config.bin %> store advisories list agent_abc123 ar_def456 --status active --json',
13
+ ];
14
+ static args = {
15
+ agentId: core_1.Args.string({ description: 'The published agent', required: true, ignoreStdin: true }),
16
+ releaseId: core_1.Args.string({ description: 'Its release', required: true, ignoreStdin: true }),
17
+ };
18
+ static flags = {
19
+ status: core_1.Flags.string({
20
+ description: 'Only advisories in this status',
21
+ options: [...data_provider_1.STORE_RELEASE_ADVISORY_STATUSES, 'all'],
22
+ }),
23
+ json: core_1.Flags.boolean({ description: 'Output as JSON' }),
24
+ };
25
+ async run() {
26
+ this.requireAuth();
27
+ const { args, flags } = await this.parse(StoreAdvisoriesList);
28
+ let result;
29
+ try {
30
+ result = await (0, store_advisories_1.listStoreReleaseAdvisories)(args.agentId, args.releaseId, flags.status);
31
+ }
32
+ catch (error) {
33
+ this.handleApiError(error);
34
+ return;
35
+ }
36
+ if (flags.json) {
37
+ this.log(JSON.stringify(result, null, 2));
38
+ return;
39
+ }
40
+ if (!result.advisories.length) {
41
+ this.log('No advisories on this release.');
42
+ return;
43
+ }
44
+ for (const advisory of result.advisories) {
45
+ this.log((0, store_advisories_1.describeStoreReleaseAdvisoryLines)(advisory).join('\n'));
46
+ }
47
+ }
48
+ }
49
+ exports.default = StoreAdvisoriesList;
@@ -0,0 +1,13 @@
1
+ import { BaseCommand } from '../../../base-command';
2
+ /** One advisory: what it stops, and whether an ending is waiting. Store curators only. */
3
+ export default class StoreAdvisoriesShow extends BaseCommand {
4
+ static description: string;
5
+ static examples: string[];
6
+ static args: {
7
+ advisoryId: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
8
+ };
9
+ static flags: {
10
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
11
+ };
12
+ run(): Promise<void>;
13
+ }
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const core_1 = require("@oclif/core");
4
+ const base_command_1 = require("../../../base-command");
5
+ const store_advisories_1 = require("../../../lib/store-advisories");
6
+ /** One advisory: what it stops, and whether an ending is waiting. Store curators only. */
7
+ class StoreAdvisoriesShow extends base_command_1.BaseCommand {
8
+ static description = 'Show one Store advisory. Store curators only.';
9
+ static examples = ['<%= config.bin %> store advisories show adv_123'];
10
+ static args = {
11
+ advisoryId: core_1.Args.string({ description: 'The advisory', required: true, ignoreStdin: true }),
12
+ };
13
+ static flags = {
14
+ json: core_1.Flags.boolean({ description: 'Output as JSON' }),
15
+ };
16
+ async run() {
17
+ this.requireAuth();
18
+ const { args, flags } = await this.parse(StoreAdvisoriesShow);
19
+ let result;
20
+ try {
21
+ result = await (0, store_advisories_1.getStoreReleaseAdvisory)(args.advisoryId);
22
+ }
23
+ catch (error) {
24
+ this.handleApiError(error);
25
+ return;
26
+ }
27
+ if (flags.json) {
28
+ this.log(JSON.stringify(result, null, 2));
29
+ return;
30
+ }
31
+ this.log((0, store_advisories_1.describeStoreReleaseAdvisoryLines)(result.advisory).join('\n'));
32
+ }
33
+ }
34
+ exports.default = StoreAdvisoriesShow;
@@ -0,0 +1,16 @@
1
+ import { BaseCommand } from '../../../base-command';
2
+ export default class StoreArtifactsRelease extends BaseCommand {
3
+ static description: string;
4
+ static args: {
5
+ entityType: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
6
+ entityId: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
7
+ };
8
+ static flags: {
9
+ versionLabel: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
10
+ artifactRef: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
11
+ price: import("@oclif/core/lib/interfaces").OptionFlag<number | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
12
+ workspaceId: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
13
+ json: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
14
+ };
15
+ run(): Promise<void>;
16
+ }