@skrr-ai/cli 0.1.75 → 0.1.76
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/commands/agents/releases/ci-publish.js +16 -0
- package/dist/commands/store/install.js +6 -6
- package/oclif.manifest.json +27293 -27293
- package/package.json +1 -1
|
@@ -4,6 +4,7 @@ const core_1 = require("@oclif/core");
|
|
|
4
4
|
const data_provider_1 = require("@skrr-ai/data-provider");
|
|
5
5
|
const base_command_1 = require("../../../base-command");
|
|
6
6
|
const github_oidc_1 = require("../../../lib/github-oidc");
|
|
7
|
+
const http_error_1 = require("../../../lib/http-error");
|
|
7
8
|
/**
|
|
8
9
|
* Publish a release from CI using GitHub OIDC trusted publishing (OSK-12311).
|
|
9
10
|
*
|
|
@@ -84,6 +85,21 @@ class AgentsReleasesCiPublish extends base_command_1.BaseCommand {
|
|
|
84
85
|
});
|
|
85
86
|
}
|
|
86
87
|
catch (err) {
|
|
88
|
+
const body = (0, http_error_1.httpBodyOf)(err);
|
|
89
|
+
if ((0, http_error_1.httpStatusOf)(err) === 401 && body?.code === 'CI_OIDC_TOKEN_INVALID') {
|
|
90
|
+
const reason = typeof body.error === 'string' ? body.error : 'OIDC token was rejected';
|
|
91
|
+
const requestId = err instanceof Error ? err.requestId : undefined;
|
|
92
|
+
this.failWithCliError({
|
|
93
|
+
message: `${reason}. Request a fresh GitHub Actions OIDC token with ` +
|
|
94
|
+
'`permissions: id-token: write` and the expected audience.',
|
|
95
|
+
code: 'CI_OIDC_TOKEN_INVALID',
|
|
96
|
+
status: 401,
|
|
97
|
+
exit: 2,
|
|
98
|
+
retryable: false,
|
|
99
|
+
details: body,
|
|
100
|
+
requestId: typeof requestId === 'string' ? requestId : undefined,
|
|
101
|
+
});
|
|
102
|
+
}
|
|
87
103
|
this.handleApiError(err);
|
|
88
104
|
}
|
|
89
105
|
if (flags.json) {
|
|
@@ -6,12 +6,12 @@ const base_command_1 = require("../../base-command");
|
|
|
6
6
|
const prompt_1 = require("../../lib/prompt");
|
|
7
7
|
/**
|
|
8
8
|
* One line per placement, said the same way the web install rail says it: the
|
|
9
|
-
* difference is whether a stranger's instructions
|
|
10
|
-
*
|
|
9
|
+
* difference is whether a stranger's instructions may reach a connected
|
|
10
|
+
* machine in the buyer's account. The model loop stays on Agent Worker.
|
|
11
11
|
*/
|
|
12
12
|
const PLACEMENT_NOTE = {
|
|
13
|
-
cloud: "It runs in the cloud, so its tools
|
|
14
|
-
local: 'It
|
|
13
|
+
cloud: "It runs in the cloud, so its tools cannot reach your connected machines. You can change that in the agent's Runtime settings.",
|
|
14
|
+
local: 'It still runs in the cloud. Its tools may use the shell, files and browser on an available connected machine in your account, selected when the agent runs.',
|
|
15
15
|
};
|
|
16
16
|
class StoreInstall extends base_command_1.BaseCommand {
|
|
17
17
|
static description = 'Install a published agent — you get your own copy of it. A paid agent shows its price and refund terms and asks you to confirm first.';
|
|
@@ -44,8 +44,8 @@ class StoreInstall extends base_command_1.BaseCommand {
|
|
|
44
44
|
description: 'Confirm a paid purchase without prompting. The price and refund terms are still printed.',
|
|
45
45
|
}),
|
|
46
46
|
'run-on': core_1.Flags.string({
|
|
47
|
-
description: 'Where
|
|
48
|
-
'local lets
|
|
47
|
+
description: 'Where its tools may run. cloud (the default) keeps tools off connected machines; ' +
|
|
48
|
+
'local lets tools use an available connected machine in your account, selected at run time. The agent runs in the cloud either way',
|
|
49
49
|
options: [...data_provider_1.STORE_INSTALL_EXECUTION_PLACEMENTS],
|
|
50
50
|
}),
|
|
51
51
|
'share-outcomes': core_1.Flags.boolean({
|