@stratusagent/cli 0.11.7 → 0.11.9
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 +5 -2
- package/dist/approvals.js +1 -1
- package/dist/approvals.js.map +1 -1
- package/dist/autonomy.d.ts +13 -0
- package/dist/autonomy.d.ts.map +1 -0
- package/dist/autonomy.js +24 -0
- package/dist/autonomy.js.map +1 -0
- package/dist/commands/grants.d.ts.map +1 -1
- package/dist/commands/grants.js +83 -4
- package/dist/commands/grants.js.map +1 -1
- package/dist/commands/health.d.ts +18 -0
- package/dist/commands/health.d.ts.map +1 -0
- package/dist/commands/health.js +95 -0
- package/dist/commands/health.js.map +1 -0
- package/dist/commands/serve.d.ts.map +1 -1
- package/dist/commands/serve.js +95 -21
- package/dist/commands/serve.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +7 -1
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/update.d.ts +30 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +169 -21
- package/dist/commands/update.js.map +1 -1
- package/dist/daemon.d.ts +3 -1
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +4 -1
- package/dist/daemon.js.map +1 -1
- package/dist/environment.d.ts +11 -0
- package/dist/environment.d.ts.map +1 -1
- package/dist/help.d.ts +1 -1
- package/dist/help.d.ts.map +1 -1
- package/dist/help.js +21 -8
- package/dist/help.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/logs.d.ts +20 -0
- package/dist/logs.d.ts.map +1 -1
- package/dist/logs.js +37 -0
- package/dist/logs.js.map +1 -1
- package/dist/main.d.ts +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +20 -3
- package/dist/main.js.map +1 -1
- package/dist/npm.d.ts +3 -2
- package/dist/npm.d.ts.map +1 -1
- package/dist/npm.js +5 -2
- package/dist/npm.js.map +1 -1
- package/dist/operator-commands.d.ts +34 -0
- package/dist/operator-commands.d.ts.map +1 -0
- package/dist/operator-commands.js +59 -0
- package/dist/operator-commands.js.map +1 -0
- package/dist/parse.d.ts +21 -1
- package/dist/parse.d.ts.map +1 -1
- package/dist/parse.js +47 -0
- package/dist/parse.js.map +1 -1
- package/dist/plugin-catalog.d.ts.map +1 -1
- package/dist/plugin-catalog.js +1 -0
- package/dist/plugin-catalog.js.map +1 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +3 -1
- package/dist/runtime.js.map +1 -1
- package/dist/supervisor.d.ts.map +1 -1
- package/dist/supervisor.js +7 -1
- package/dist/supervisor.js.map +1 -1
- package/dist/trusted-config.d.ts +12 -0
- package/dist/trusted-config.d.ts.map +1 -1
- package/dist/trusted-config.js +41 -0
- package/dist/trusted-config.js.map +1 -1
- package/package.json +25 -25
package/README.md
CHANGED
|
@@ -50,6 +50,7 @@ stratus skill add owner/repo # install skills from GitHub (validated a
|
|
|
50
50
|
stratus skill validate ./my-skill # check a skill against the spec without installing it
|
|
51
51
|
stratus plugins # installed → enabled → granted → what approvals does with it
|
|
52
52
|
stratus restart # announced restart: refuse, drain, come back — what a plugin change needs
|
|
53
|
+
stratus health # is the running daemon serving? exit 0/1, for container and probe health checks
|
|
53
54
|
stratus credentials # stored credential names (never values)
|
|
54
55
|
stratus channel set imessage --agent blair apiKey # a channel plugin's secrets for one agent, asked without echo (also `channels`, `channel remove`)
|
|
55
56
|
stratus schedules # what the fleet has scheduled, and where it reports
|
|
@@ -72,7 +73,7 @@ Full reference with every subcommand:
|
|
|
72
73
|
| --- | --- |
|
|
73
74
|
| `--soul <file>` | Run as the agent defined by a soul file (also `STRATUS_SOUL` / config `soul` key) |
|
|
74
75
|
| `--provider` | `anthropic`, `openai`, `codex`, or `demo` (offline, no account) |
|
|
75
|
-
| `--model` | Model for real providers (anthropic default: `claude-opus-5`, codex default: `gpt-5.5`) |
|
|
76
|
+
| `--model` | Model for real providers (anthropic default: `claude-opus-5-5`, codex default: `gpt-5.5`) |
|
|
76
77
|
| `--base-url` | Override the provider API base URL |
|
|
77
78
|
| `--config <file>` | Load settings from a specific config file |
|
|
78
79
|
| `--approvals` | `run`/`chat`: `always`, `ask`, or `never`. `serve`: `headless` (refuse gated calls) or `remote` (ask in Slack) |
|
|
@@ -81,9 +82,10 @@ Full reference with every subcommand:
|
|
|
81
82
|
| `--idle-timeout` | `serve`: seconds of provider silence before the watchdog aborts a turn (default 120) |
|
|
82
83
|
| `--no-events` | Hide the event log |
|
|
83
84
|
| `--no-log-file` | `serve`: do not write `~/.stratus/logs/stratusd.jsonl` |
|
|
85
|
+
| `--log-format` | `serve`: `text` (default) or `json` — the log's records as JSON lines on stdout, for `docker logs` and journald |
|
|
84
86
|
| `--no-api` | `serve`: do not serve the control API |
|
|
85
87
|
| `--api-host`, `--api-port` | `serve`: control API bind (default `127.0.0.1:4123`) |
|
|
86
|
-
| `--gateway <url>`, `--token` | `agents`, `skill reload`, `restart`, `session rollover`, `grants`: a running daemon's control API |
|
|
88
|
+
| `--gateway <url>`, `--token` | `agents`, `skill reload`, `restart`, `session rollover`, `grants`, `health`: a running daemon's control API |
|
|
87
89
|
| `--tool`, `--scope`, `--origin` | `grants revoke`: which grant goes — exactly one |
|
|
88
90
|
| `--trust <level>` | `memory list`: show only that label; `memory reassert`: the label to record (`user`, `agent`, `unknown`, `external`) |
|
|
89
91
|
| `--all-unknown` | `memory reassert`: every live fact with no recorded origin |
|
|
@@ -141,6 +143,7 @@ The reasoning:
|
|
|
141
143
|
| Let agents act on their own schedule | [Schedules](https://github.com/stratuslabs/agent/blob/main/docs/guides/schedules.md) |
|
|
142
144
|
| Teach an agent a procedure | [Skills](https://github.com/stratuslabs/agent/blob/main/docs/guides/skills.md) |
|
|
143
145
|
| Run it as a service, read its logs, upgrade it | [Always on](https://github.com/stratuslabs/agent/blob/main/docs/guides/always-on.md) · [Logs](https://github.com/stratuslabs/agent/blob/main/docs/guides/logs.md) · [Updating](https://github.com/stratuslabs/agent/blob/main/docs/guides/updating.md) |
|
|
146
|
+
| Run it on a server, in Docker or under a system unit | [Deployment](https://github.com/stratuslabs/agent/blob/main/docs/guides/deployment.md) |
|
|
144
147
|
| Understand souls, ids, and memory | [Agents](https://github.com/stratuslabs/agent/blob/main/docs/concepts/agents.md) · [Memory](https://github.com/stratuslabs/agent/blob/main/docs/concepts/memory.md) |
|
|
145
148
|
| Fix a surprise | [Troubleshooting](https://github.com/stratuslabs/agent/blob/main/docs/guides/troubleshooting.md) |
|
|
146
149
|
|
package/dist/approvals.js
CHANGED
|
@@ -8,7 +8,7 @@ import { packageInstalled } from "./loaders.js";
|
|
|
8
8
|
* `originOf` so this and the daemon's engine compare the same thing.
|
|
9
9
|
*/
|
|
10
10
|
const approvalOrigin = (context) => {
|
|
11
|
-
const reported = context.tool.originFor?.(context.session);
|
|
11
|
+
const reported = context.tool.originFor?.(context.session, context.call.input);
|
|
12
12
|
return reported === undefined ? undefined : originOf(reported);
|
|
13
13
|
};
|
|
14
14
|
/**
|
package/dist/approvals.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approvals.js","sourceRoot":"","sources":["../src/approvals.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"approvals.js","sourceRoot":"","sources":["../src/approvals.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type ApprovalsConfig, type StateEnvironment } from '@stratusagent/state';
|
|
2
|
+
/**
|
|
3
|
+
* The directory an agent with `autonomy: workspace` may work in unattended,
|
|
4
|
+
* or undefined when autonomy is off for it.
|
|
5
|
+
*
|
|
6
|
+
* The same directory the shell resolves for the agent, so the policy and
|
|
7
|
+
* the command agree on where "inside" is: `tool-shell`'s own `workspaceRoot`
|
|
8
|
+
* (per agent or shared) joined with the id when one is configured, the
|
|
9
|
+
* host's workspace otherwise. See `workspaceResolver` in
|
|
10
|
+
* `@stratusagent/plugins`, whose precedence this follows.
|
|
11
|
+
*/
|
|
12
|
+
export declare const autonomyDirectory: (approvals: ApprovalsConfig, plugins: Record<string, unknown>, env: StateEnvironment, agentId: string) => string | undefined;
|
|
13
|
+
//# sourceMappingURL=autonomy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autonomy.d.ts","sourceRoot":"","sources":["../src/autonomy.ts"],"names":[],"mappings":"AAGA,OAAO,EAA6C,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE7H;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,GAC5B,WAAW,eAAe,EAC1B,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,KAAK,gBAAgB,EACrB,SAAS,MAAM,KACd,MAAM,GAAG,SASX,CAAC"}
|
package/dist/autonomy.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { resolvePluginAgentConfig } from '@stratusagent/plugins';
|
|
3
|
+
import { agentWorkspacePath, resolveAgentApprovals } from '@stratusagent/state';
|
|
4
|
+
/**
|
|
5
|
+
* The directory an agent with `autonomy: workspace` may work in unattended,
|
|
6
|
+
* or undefined when autonomy is off for it.
|
|
7
|
+
*
|
|
8
|
+
* The same directory the shell resolves for the agent, so the policy and
|
|
9
|
+
* the command agree on where "inside" is: `tool-shell`'s own `workspaceRoot`
|
|
10
|
+
* (per agent or shared) joined with the id when one is configured, the
|
|
11
|
+
* host's workspace otherwise. See `workspaceResolver` in
|
|
12
|
+
* `@stratusagent/plugins`, whose precedence this follows.
|
|
13
|
+
*/
|
|
14
|
+
export const autonomyDirectory = (approvals, plugins, env, agentId) => {
|
|
15
|
+
if (resolveAgentApprovals(approvals, agentId).autonomy !== 'workspace') {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
const shell = plugins['@stratusagent/tool-shell'];
|
|
19
|
+
const root = shell !== null && typeof shell === 'object' && !Array.isArray(shell)
|
|
20
|
+
? resolvePluginAgentConfig(shell, agentId).workspaceRoot
|
|
21
|
+
: undefined;
|
|
22
|
+
return typeof root === 'string' && root.length > 0 ? path.join(root, agentId) : agentWorkspacePath(env, agentId);
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=autonomy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autonomy.js","sourceRoot":"","sources":["../src/autonomy.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAA+C,MAAM,qBAAqB,CAAC;AAE7H;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,SAA0B,EAC1B,OAAgC,EAChC,GAAqB,EACrB,OAAe,EACK,EAAE;IACtB,IAAI,qBAAqB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;QACvE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAC/E,CAAC,CAAC,wBAAwB,CAAC,KAAmB,EAAE,OAAO,CAAC,CAAC,aAAa;QACtE,CAAC,CAAC,SAAS,CAAC;IACd,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACnH,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grants.d.ts","sourceRoot":"","sources":["../../src/commands/grants.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"grants.d.ts","sourceRoot":"","sources":["../../src/commands/grants.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AASvD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,SAAS,GACpB,SAAS,mBAAmB,EAC5B,SAAS,UAAU,EACnB,MAAK,cAAmB,KACvB,OAAO,CAAC,MAAM,CA+OhB,CAAC"}
|
package/dist/commands/grants.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { createFileCommandWhitelist, describeAgentGrants, describeToolGrant, resolveWhitelistPath, } from '@stratusagent/permissions';
|
|
2
|
-
import { agentsDirPath, claimFileLock, FileLockHeldError, gatewayInfoPath, GRANTS_LOCK_WAIT_MS, grantsLockPath, stratusHomePath, } from '@stratusagent/state';
|
|
2
|
+
import { agentsDirPath, claimFileLock, FileLockHeldError, gatewayInfoPath, globalConfigPath, GRANTS_LOCK_WAIT_MS, grantsLockPath, resolveConfigLocation, stratusHomePath, } from '@stratusagent/state';
|
|
3
|
+
import { configCovers, createOperatorCommands } from "../operator-commands.js";
|
|
4
|
+
import { loadServeApprovals } from "../trusted-config.js";
|
|
3
5
|
import { callRunningGateway, gatewayErrorMessage, readGatewayInfo } from "../daemon.js";
|
|
4
6
|
import { writeLine } from "../io.js";
|
|
5
7
|
/**
|
|
@@ -32,6 +34,7 @@ export const runGrants = async (command, streams, env = {}) => {
|
|
|
32
34
|
: undefined;
|
|
33
35
|
const named = revocation?.tool ?? revocation?.scope ?? revocation?.origin ?? '';
|
|
34
36
|
const fromFiles = async () => {
|
|
37
|
+
declared = await localDeclared();
|
|
35
38
|
const store = createFileCommandWhitelist({
|
|
36
39
|
directory: agentsDirPath(env),
|
|
37
40
|
stateHome: stratusHomePath(env),
|
|
@@ -76,7 +79,20 @@ export const runGrants = async (command, streams, env = {}) => {
|
|
|
76
79
|
// where an agent's standing grants come from.
|
|
77
80
|
return render(listing, await resolveWhitelistPath(stratusHomePath(env), agentsDirPath(env), agentId));
|
|
78
81
|
};
|
|
82
|
+
const coveredByConfig = (scope) => configCovers(declared, scope);
|
|
79
83
|
const reportRevocation = (revoked) => {
|
|
84
|
+
if (revoked && revocation?.scope !== undefined && coveredByConfig(revocation.scope)) {
|
|
85
|
+
// The stored grant is gone, but the command still runs: config says so
|
|
86
|
+
// too, and saying only "Revoked" would leave the operator believing it
|
|
87
|
+
// now asks.
|
|
88
|
+
writeLine(streams.stdout, `Revoked ${named} for ${agentId}.`);
|
|
89
|
+
writeLine(streams.stderr, `"${revocation.scope}" is also in approvals.commands in config, so it still runs without asking. Remove it there and restart the daemon.`);
|
|
90
|
+
return 0;
|
|
91
|
+
}
|
|
92
|
+
if (!revoked && revocation?.scope !== undefined && coveredByConfig(revocation.scope)) {
|
|
93
|
+
writeLine(streams.stderr, `"${revocation.scope}" comes from approvals.commands in config, not from an approval. Remove it there and restart the daemon.`);
|
|
94
|
+
return 1;
|
|
95
|
+
}
|
|
80
96
|
if (!revoked) {
|
|
81
97
|
writeLine(streams.stderr, `${agentId} has no such grant. \`stratus grants ${agentId}\` lists what exists.`);
|
|
82
98
|
return 1;
|
|
@@ -84,11 +100,37 @@ export const runGrants = async (command, streams, env = {}) => {
|
|
|
84
100
|
writeLine(streams.stdout, `Revoked ${named} for ${agentId}.`);
|
|
85
101
|
return 0;
|
|
86
102
|
};
|
|
103
|
+
// What config declares runs without asking. Not a grant, but the question
|
|
104
|
+
// this command answers is "what may this agent do unattended", and leaving
|
|
105
|
+
// it out would answer it wrong. A serving daemon reports its own list; only
|
|
106
|
+
// with no daemon is the global config read here, which is where the next
|
|
107
|
+
// daemon to start would read it.
|
|
108
|
+
let declared = [];
|
|
109
|
+
// Which file the list came from, named in the output: the daemon's own
|
|
110
|
+
// config, or the one a daemon started the same way would read.
|
|
111
|
+
let configSource = 'the daemon\'s config';
|
|
112
|
+
const localDeclared = async () => {
|
|
113
|
+
// --config when one was given, else STRATUS_CONFIG or discovery, as
|
|
114
|
+
// `stratus serve` resolves it. Every warning reaches stderr: a file that
|
|
115
|
+
// could not be read must not look like a file that allows nothing.
|
|
116
|
+
const location = await resolveConfigLocation(command.configPath ? { configPath: command.configPath } : {}, env);
|
|
117
|
+
configSource = location?.path ?? globalConfigPath(env);
|
|
118
|
+
const warn = (line) => writeLine(streams.stderr, `Warning: ${line}`);
|
|
119
|
+
return createOperatorCommands(await loadServeApprovals(env, command.configPath, warn), warn).declaredFor(agentId);
|
|
120
|
+
};
|
|
87
121
|
const render = (listing, source) => {
|
|
88
122
|
if (command.format === 'json') {
|
|
89
|
-
writeLine(streams.stdout, JSON.stringify({ ...listing, source }, null, 2));
|
|
123
|
+
writeLine(streams.stdout, JSON.stringify({ ...listing, source, configCommands: declared, configSource }, null, 2));
|
|
90
124
|
return 0;
|
|
91
125
|
}
|
|
126
|
+
if (declared.length > 0) {
|
|
127
|
+
writeLine(streams.stdout, source.startsWith('from the daemon')
|
|
128
|
+
? `${agentId} runs these without asking, from approvals.commands in the daemon's config:`
|
|
129
|
+
: `${agentId} runs these without asking, from approvals.commands in ${configSource} (a daemon started with another --config reads that file instead):`);
|
|
130
|
+
for (const entry of declared) {
|
|
131
|
+
writeLine(streams.stdout, ` ${entry}`);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
92
134
|
const total = listing.tools.length + listing.scopes.length + listing.origins.length;
|
|
93
135
|
if (total === 0) {
|
|
94
136
|
writeLine(streams.stdout, `${agentId} has no standing grants beyond the built-in safe list (${source}).`);
|
|
@@ -113,7 +155,7 @@ export const runGrants = async (command, streams, env = {}) => {
|
|
|
113
155
|
if (listing.origins.length > 0) {
|
|
114
156
|
writeLine(streams.stdout, ' sites');
|
|
115
157
|
for (const row of listing.origins) {
|
|
116
|
-
writeLine(streams.stdout, ` ${row.
|
|
158
|
+
writeLine(streams.stdout, ` ${row.description}`);
|
|
117
159
|
}
|
|
118
160
|
}
|
|
119
161
|
writeLine(streams.stdout, `Take one back: stratus grants revoke ${agentId} --tool <name> | --scope "<command>" | --origin <origin>`);
|
|
@@ -122,6 +164,21 @@ export const runGrants = async (command, streams, env = {}) => {
|
|
|
122
164
|
if (!base) {
|
|
123
165
|
return fromFiles();
|
|
124
166
|
}
|
|
167
|
+
// The daemon's own approvals.commands, or undefined when it couldn't be
|
|
168
|
+
// asked or its answer couldn't be read: not knowing is not "none".
|
|
169
|
+
const configCommandsFromDaemon = async () => {
|
|
170
|
+
try {
|
|
171
|
+
const listing = await callRunningGateway(env, command, base, `/api/v1/agents/${encoded}/grants`, undefined, 'GET');
|
|
172
|
+
if (!listing.ok) {
|
|
173
|
+
return undefined;
|
|
174
|
+
}
|
|
175
|
+
const body = await listing.json();
|
|
176
|
+
return Array.isArray(body.configCommands) ? body.configCommands : [];
|
|
177
|
+
}
|
|
178
|
+
catch {
|
|
179
|
+
return undefined;
|
|
180
|
+
}
|
|
181
|
+
};
|
|
125
182
|
let response;
|
|
126
183
|
try {
|
|
127
184
|
response = revocation
|
|
@@ -143,6 +200,15 @@ export const runGrants = async (command, streams, env = {}) => {
|
|
|
143
200
|
return fromFiles();
|
|
144
201
|
}
|
|
145
202
|
if (response.status === 404 && revocation) {
|
|
203
|
+
// Whether the scope is a config entry is the daemon's config's answer;
|
|
204
|
+
// ask it rather than reading a config this client may not share.
|
|
205
|
+
const listed = await configCommandsFromDaemon();
|
|
206
|
+
if (listed === undefined && revocation.scope !== undefined) {
|
|
207
|
+
writeLine(streams.stderr, `${agentId} has no such grant. \`stratus grants ${agentId}\` lists what exists.`);
|
|
208
|
+
writeLine(streams.stderr, `Warning: could not ask the daemon whether approvals.commands in its config allows "${revocation.scope}".`);
|
|
209
|
+
return 1;
|
|
210
|
+
}
|
|
211
|
+
declared = listed ?? [];
|
|
146
212
|
return reportRevocation(false);
|
|
147
213
|
}
|
|
148
214
|
if (!response.ok) {
|
|
@@ -150,8 +216,21 @@ export const runGrants = async (command, streams, env = {}) => {
|
|
|
150
216
|
return 1;
|
|
151
217
|
}
|
|
152
218
|
if (revocation) {
|
|
219
|
+
if (revocation.scope !== undefined) {
|
|
220
|
+
const checked = await configCommandsFromDaemon();
|
|
221
|
+
if (checked === undefined) {
|
|
222
|
+
// Not knowing is not the same as "nothing in config covers it".
|
|
223
|
+
writeLine(streams.stdout, `Revoked ${named} for ${agentId}.`);
|
|
224
|
+
writeLine(streams.stderr, `Warning: could not ask the daemon whether approvals.commands in its config still allows "${revocation.scope}". `
|
|
225
|
+
+ `\`stratus grants ${agentId}\` lists what config allows.`);
|
|
226
|
+
return 0;
|
|
227
|
+
}
|
|
228
|
+
declared = checked;
|
|
229
|
+
}
|
|
153
230
|
return reportRevocation(true);
|
|
154
231
|
}
|
|
155
|
-
|
|
232
|
+
const listing = await response.json();
|
|
233
|
+
declared = listing.configCommands ?? [];
|
|
234
|
+
return render(listing, `from the daemon at ${base}`);
|
|
156
235
|
};
|
|
157
236
|
//# sourceMappingURL=grants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grants.js","sourceRoot":"","sources":["../../src/commands/grants.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,GAGrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAExF,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"grants.js","sourceRoot":"","sources":["../../src/commands/grants.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { CliStreams, CliEnvironment } from '../environment.ts';
|
|
2
|
+
import type { ParsedHealthCommand } from '../parse.ts';
|
|
3
|
+
/**
|
|
4
|
+
* `stratus health` — is the daemon serving, asked of the daemon itself.
|
|
5
|
+
*
|
|
6
|
+
* For whatever supervises it from outside: a container `HEALTHCHECK`, a
|
|
7
|
+
* Kubernetes probe, a monitoring script. Exit status is the answer — 0 when
|
|
8
|
+
* the control API says `ok`, 1 for everything else — and the output is one
|
|
9
|
+
* line either way, because a probe's output ends up in `docker inspect` and
|
|
10
|
+
* a paragraph there is unreadable. `stratus service status` answers a
|
|
11
|
+
* different question (does the service manager think the process is
|
|
12
|
+
* alive?), and cannot see a daemon that is alive but wedged.
|
|
13
|
+
*
|
|
14
|
+
* Every failure is caught here rather than thrown to `runCli`, which would
|
|
15
|
+
* append the whole help text to the probe's output.
|
|
16
|
+
*/
|
|
17
|
+
export declare const runHealth: (command: ParsedHealthCommand, streams: CliStreams, env?: CliEnvironment) => Promise<number>;
|
|
18
|
+
//# sourceMappingURL=health.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/commands/health.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAyCvD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,SAAS,GACpB,SAAS,mBAAmB,EAC5B,SAAS,UAAU,EACnB,MAAK,cAAmB,KACvB,OAAO,CAAC,MAAM,CA+DhB,CAAC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { gatewayInfoPath } from '@stratusagent/state';
|
|
2
|
+
import { callRunningGateway, gatewayErrorMessage, runningGatewayBase } from "../daemon.js";
|
|
3
|
+
import { writeLine } from "../io.js";
|
|
4
|
+
/**
|
|
5
|
+
* How long a probe waits for the daemon before calling it unhealthy.
|
|
6
|
+
*
|
|
7
|
+
* A container `HEALTHCHECK`, a systemd `ExecStartPost`, and a Kubernetes
|
|
8
|
+
* exec probe each have a timeout of their own, but they differ, and one that
|
|
9
|
+
* fires first kills the process with no sentence at all. Giving up here says
|
|
10
|
+
* why. A healthy daemon answers in milliseconds: the route counts sessions
|
|
11
|
+
* in the database rather than listing them for exactly this reason.
|
|
12
|
+
*/
|
|
13
|
+
const HEALTH_TIMEOUT_MS = 5_000;
|
|
14
|
+
const formatUptime = (ms) => {
|
|
15
|
+
const seconds = Math.floor(ms / 1000);
|
|
16
|
+
if (seconds < 60) {
|
|
17
|
+
return `${seconds}s`;
|
|
18
|
+
}
|
|
19
|
+
const minutes = Math.floor(seconds / 60);
|
|
20
|
+
if (minutes < 60) {
|
|
21
|
+
return `${minutes}m`;
|
|
22
|
+
}
|
|
23
|
+
const hours = Math.floor(minutes / 60);
|
|
24
|
+
if (hours < 48) {
|
|
25
|
+
return `${hours}h${minutes % 60 > 0 ? ` ${minutes % 60}m` : ''}`;
|
|
26
|
+
}
|
|
27
|
+
return `${Math.floor(hours / 24)}d`;
|
|
28
|
+
};
|
|
29
|
+
const plural = (count, noun) => `${count} ${noun}${count === 1 ? '' : 's'}`;
|
|
30
|
+
/**
|
|
31
|
+
* `stratus health` — is the daemon serving, asked of the daemon itself.
|
|
32
|
+
*
|
|
33
|
+
* For whatever supervises it from outside: a container `HEALTHCHECK`, a
|
|
34
|
+
* Kubernetes probe, a monitoring script. Exit status is the answer — 0 when
|
|
35
|
+
* the control API says `ok`, 1 for everything else — and the output is one
|
|
36
|
+
* line either way, because a probe's output ends up in `docker inspect` and
|
|
37
|
+
* a paragraph there is unreadable. `stratus service status` answers a
|
|
38
|
+
* different question (does the service manager think the process is
|
|
39
|
+
* alive?), and cannot see a daemon that is alive but wedged.
|
|
40
|
+
*
|
|
41
|
+
* Every failure is caught here rather than thrown to `runCli`, which would
|
|
42
|
+
* append the whole help text to the probe's output.
|
|
43
|
+
*/
|
|
44
|
+
export const runHealth = async (command, streams, env = {}) => {
|
|
45
|
+
const fail = (message) => {
|
|
46
|
+
if (command.format === 'json') {
|
|
47
|
+
writeLine(streams.stdout, JSON.stringify({ ok: false, error: message }));
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
writeLine(streams.stderr, `Error: ${message}`);
|
|
51
|
+
}
|
|
52
|
+
return 1;
|
|
53
|
+
};
|
|
54
|
+
// The file is written when the API binds and removed when it stops, so a
|
|
55
|
+
// daemon between the two — starting, or inside an announced restart — is
|
|
56
|
+
// absent here too. Said, because a probe failing once during a restart is
|
|
57
|
+
// expected and one failing for minutes is not, and the reader of this line
|
|
58
|
+
// is deciding which.
|
|
59
|
+
const base = await runningGatewayBase(env, command);
|
|
60
|
+
if (!base) {
|
|
61
|
+
return fail(`stratusd is not serving — ${gatewayInfoPath(env)} does not exist, so no daemon has said where it is `
|
|
62
|
+
+ '(none is running, or one is still starting or restarting), and no --gateway was given. '
|
|
63
|
+
+ 'Start it with `stratus serve` or `stratus service start`; a daemon started with --no-api has no control API to ask.');
|
|
64
|
+
}
|
|
65
|
+
let payload;
|
|
66
|
+
try {
|
|
67
|
+
const response = await callRunningGateway(env, command, base, '/api/v1/health', undefined, 'GET', AbortSignal.timeout(HEALTH_TIMEOUT_MS));
|
|
68
|
+
if (!response.ok) {
|
|
69
|
+
return fail(`The gateway at ${base} answered /health with ${await gatewayErrorMessage(response)}. Check \`stratus logs\` for why.`);
|
|
70
|
+
}
|
|
71
|
+
payload = await response.json();
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
return fail(error instanceof Error ? error.message : String(error));
|
|
75
|
+
}
|
|
76
|
+
if (payload.ok !== true) {
|
|
77
|
+
return fail(`The gateway at ${base} answered /health without ok: true. Check \`stratus logs\` for why.`);
|
|
78
|
+
}
|
|
79
|
+
if (command.format === 'json') {
|
|
80
|
+
writeLine(streams.stdout, JSON.stringify({ gateway: base, ...payload }));
|
|
81
|
+
return 0;
|
|
82
|
+
}
|
|
83
|
+
const running = payload.sessions?.byStatus?.running ?? 0;
|
|
84
|
+
const pending = payload.approvals?.pending ?? 0;
|
|
85
|
+
const facts = [
|
|
86
|
+
...(payload.version !== undefined ? [`version ${payload.version}`] : []),
|
|
87
|
+
...(payload.uptimeMs !== undefined ? [`up ${formatUptime(payload.uptimeMs)}`] : []),
|
|
88
|
+
plural(payload.agents?.length ?? 0, 'agent'),
|
|
89
|
+
`${plural(payload.sessions?.total ?? 0, 'session')}${running > 0 ? ` (${running} running)` : ''}`,
|
|
90
|
+
`${plural(pending, 'approval')} pending`,
|
|
91
|
+
];
|
|
92
|
+
writeLine(streams.stdout, `stratusd ok at ${base} — ${facts.join(', ')}`);
|
|
93
|
+
return 0;
|
|
94
|
+
};
|
|
95
|
+
//# sourceMappingURL=health.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/commands/health.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAyCA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAoB,MAAM,mBAAmB,CAAC;AAMtF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAsBtD,eAAO,MAAM,QAAQ,GACnB,SAAS,kBAAkB,EAC3B,SAAS,UAAU,EACnB,MAAK,cAAmB,KACvB,OAAO,CAAC,MAAM,CA2EhB,CAAC"}
|