@stratusagent/cli 0.13.5 → 0.13.7
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 +4 -2
- package/dist/commands/agent-new.d.ts.map +1 -1
- package/dist/commands/agent-new.js +3 -11
- package/dist/commands/agent-new.js.map +1 -1
- package/dist/commands/channel.d.ts.map +1 -1
- package/dist/commands/channel.js +5 -0
- package/dist/commands/channel.js.map +1 -1
- package/dist/commands/dashboard.d.ts.map +1 -1
- package/dist/commands/dashboard.js +157 -7
- package/dist/commands/dashboard.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +81 -14
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/plugins.d.ts.map +1 -1
- package/dist/commands/plugins.js +2 -2
- package/dist/commands/plugins.js.map +1 -1
- package/dist/commands/serve.d.ts +8 -0
- package/dist/commands/serve.d.ts.map +1 -1
- package/dist/commands/serve.js +12 -5
- package/dist/commands/serve.js.map +1 -1
- package/dist/commands/service.d.ts.map +1 -1
- package/dist/commands/service.js +8 -2
- package/dist/commands/service.js.map +1 -1
- package/dist/commands/sessions.d.ts +17 -0
- package/dist/commands/sessions.d.ts.map +1 -0
- package/dist/commands/sessions.js +68 -0
- package/dist/commands/sessions.js.map +1 -0
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +136 -127
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/signin.d.ts.map +1 -1
- package/dist/commands/signin.js +32 -3
- package/dist/commands/signin.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +92 -25
- package/dist/commands/update.js.map +1 -1
- package/dist/companions.d.ts.map +1 -1
- package/dist/companions.js +2 -2
- package/dist/companions.js.map +1 -1
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +1 -0
- package/dist/daemon.js.map +1 -1
- package/dist/environment.d.ts +7 -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 +22 -10
- 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/main.d.ts.map +1 -1
- package/dist/main.js +18 -7
- package/dist/main.js.map +1 -1
- package/dist/npm.d.ts +17 -1
- package/dist/npm.d.ts.map +1 -1
- package/dist/npm.js +21 -6
- package/dist/npm.js.map +1 -1
- package/dist/parse.d.ts +18 -2
- package/dist/parse.d.ts.map +1 -1
- package/dist/parse.js +84 -2
- package/dist/parse.js.map +1 -1
- package/dist/plugin-catalog.d.ts +0 -9
- package/dist/plugin-catalog.d.ts.map +1 -1
- package/dist/plugin-catalog.js +3 -14
- package/dist/plugin-catalog.js.map +1 -1
- package/dist/plugin-index.d.ts +136 -0
- package/dist/plugin-index.d.ts.map +1 -0
- package/dist/plugin-index.js +293 -0
- package/dist/plugin-index.js.map +1 -0
- package/dist/plugin-updates.d.ts +54 -0
- package/dist/plugin-updates.d.ts.map +1 -0
- package/dist/plugin-updates.js +68 -0
- package/dist/plugin-updates.js.map +1 -0
- package/dist/promotion.d.ts.map +1 -1
- package/dist/promotion.js +4 -3
- package/dist/promotion.js.map +1 -1
- package/dist/provider-packages.d.ts +34 -0
- package/dist/provider-packages.d.ts.map +1 -0
- package/dist/{harness-packages.js → provider-packages.js} +19 -16
- package/dist/provider-packages.js.map +1 -0
- package/dist/roster.d.ts.map +1 -1
- package/dist/roster.js +19 -2
- package/dist/roster.js.map +1 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +5 -0
- package/dist/runtime.js.map +1 -1
- package/dist/service.d.ts +11 -0
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +129 -37
- package/dist/service.js.map +1 -1
- package/dist/slack.d.ts.map +1 -1
- package/dist/slack.js +4 -0
- package/dist/slack.js.map +1 -1
- package/package.json +22 -25
- package/dist/harness-packages.d.ts +0 -31
- package/dist/harness-packages.d.ts.map +0 -1
- package/dist/harness-packages.js.map +0 -1
package/README.md
CHANGED
|
@@ -51,6 +51,7 @@ stratus skill validate ./my-skill # check a skill against the spec without
|
|
|
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
53
|
stratus health # is the running daemon serving? exit 0/1, for container and probe health checks
|
|
54
|
+
stratus sessions --status failed # what the daemon's sessions are doing, newest first (--agent, --limit, --format json)
|
|
54
55
|
stratus credentials # stored credential names (never values)
|
|
55
56
|
stratus signin set anthropic --agent remy # one agent's own Claude subscription, token asked without echo (also `signins`, `signin remove`)
|
|
56
57
|
stratus channel set imessage --agent blair apiKey # a channel plugin's secrets for one agent, asked without echo (also `channels`, `channel remove`)
|
|
@@ -86,11 +87,12 @@ Full reference with every subcommand:
|
|
|
86
87
|
| `--log-format` | `serve`: `text` (default) or `json` — the log's records as JSON lines on stdout, for `docker logs` and journald |
|
|
87
88
|
| `--no-api` | `serve`: do not serve the control API |
|
|
88
89
|
| `--api-host`, `--api-port` | `serve`: control API bind (default `127.0.0.1:4123`) |
|
|
89
|
-
| `--gateway <url>`, `--token` | `agents`, `skill reload`, `restart`, `session rollover`, `grants`, `health`: a running daemon's control API |
|
|
90
|
+
| `--gateway <url>`, `--token` | `agents`, `skill reload`, `restart`, `session rollover`, `sessions`, `grants`, `health`: a running daemon's control API |
|
|
90
91
|
| `--tool`, `--scope`, `--origin` | `grants revoke`: which grant goes — exactly one |
|
|
91
92
|
| `--trust <level>` | `memory list`: show only that label; `memory reassert`: the label to record (`user`, `agent`, `unknown`, `external`) |
|
|
92
93
|
| `--all-unknown` | `memory reassert`: every live fact with no recorded origin |
|
|
93
|
-
| `--limit <n>` | `memory search`: maximum hits |
|
|
94
|
+
| `--limit <n>` | `memory search`: maximum hits; `sessions`: how many to list (default 20) |
|
|
95
|
+
| `--status <status>` | `sessions`: only this state (`idle`, `running`, `pending_approval`, `completed`, `failed`) |
|
|
94
96
|
| `--file <path>`, `--preserve-trust` | `memory export` / `memory import`: the JSONL, and keeping each recorded label instead of landing entries `external` |
|
|
95
97
|
| `--agent <id>` | `credential set`/`remove`: that agent's own key rather than the fleet's shared one; `signin set`/`remove`: whose own sign-in it is; `channel set`/`remove`: whose binding it is |
|
|
96
98
|
| `--port`, `--host`, `--no-open` | `dashboard`: where a daemon it starts should bind; skip opening the browser |
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-new.d.ts","sourceRoot":"","sources":["../../src/commands/agent-new.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent-new.d.ts","sourceRoot":"","sources":["../../src/commands/agent-new.ts"],"names":[],"mappings":"AACA,OAAO,EAWL,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEnF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAIzD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,kBAAkB,GAC7B,cAAc,iBAAiB,EAC/B,YAAY,MAAM,CAAC,UAAU,KAC5B;IAAE,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAsBlD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,GAC7B,cAAc,aAAa,EAC3B,cAAc,mBAAmB,GAAG,SAAS,EAC7C,UAAU,MAAM,KACf,aAYF,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,SAAS,qBAAqB,EAC9B,SAAS,UAAU,EACnB,MAAK,cAAmB,KACvB,OAAO,CAAC,MAAM,CA4HhB,CAAC"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import { DEFAULT_ANTHROPIC_MODEL } from '@stratusagent/provider-anthropic';
|
|
2
|
-
import { DEFAULT_CODEX_MODEL } from '@stratusagent/providers';
|
|
3
1
|
import { defineAgent, formatSoul, generateAgentName } from '@stratusagent/agents';
|
|
4
|
-
import { claimSoulFile,
|
|
2
|
+
import { claimSoulFile, defaultModelFor, discoverActiveConfig, globalConfigPath, isRegisteredProviderName, parseProviderName, readNonEmptyString, readProcessEnv, loadConfigFile, saveConfigFile, } from '@stratusagent/state';
|
|
5
3
|
import { writeLine } from "../io.js";
|
|
6
4
|
import { quoteShellArg, stratusHeaderLines, createSetupPrompter } from "../prompter.js";
|
|
7
5
|
import { DEFAULT_SOUL_STARTER } from "./setup.js";
|
|
@@ -36,13 +34,7 @@ export const soulPinForNewAgent = (activeConfig, processEnv) => {
|
|
|
36
34
|
// A contributed provider's default model is its own — pinning a
|
|
37
35
|
// built-in's into a new soul would point the plugin at a model it
|
|
38
36
|
// never heard of.
|
|
39
|
-
?? (isRegisteredProviderName(provider)
|
|
40
|
-
? undefined
|
|
41
|
-
: provider === 'openai'
|
|
42
|
-
? DEFAULT_OPENAI_MODEL
|
|
43
|
-
: provider === 'codex'
|
|
44
|
-
? DEFAULT_CODEX_MODEL
|
|
45
|
-
: DEFAULT_ANTHROPIC_MODEL);
|
|
37
|
+
?? (isRegisteredProviderName(provider) ? undefined : defaultModelFor(provider));
|
|
46
38
|
return model !== undefined ? { provider, model } : { provider };
|
|
47
39
|
};
|
|
48
40
|
/**
|
|
@@ -154,7 +146,7 @@ export const runAgentNew = async (command, streams, env = {}) => {
|
|
|
154
146
|
return 0;
|
|
155
147
|
}
|
|
156
148
|
if (command.format === 'soul') {
|
|
157
|
-
streams.stdout.write(formatSoul({ agent, provider: 'anthropic', model:
|
|
149
|
+
streams.stdout.write(formatSoul({ agent, provider: 'anthropic', model: defaultModelFor('anthropic') }));
|
|
158
150
|
return 0;
|
|
159
151
|
}
|
|
160
152
|
writeLine(streams.stdout, `Say hello to ${agent.name}.`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-new.js","sourceRoot":"","sources":["../../src/commands/agent-new.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"agent-new.js","sourceRoot":"","sources":["../../src/commands/agent-new.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/commands/channel.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAWxD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,UAAU,GACrB,SAAS,oBAAoB,EAC7B,SAAS,UAAU,EACnB,MAAK,cAAmB,KACvB,OAAO,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/commands/channel.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAWxD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,UAAU,GACrB,SAAS,oBAAoB,EAC7B,SAAS,UAAU,EACnB,MAAK,cAAmB,KACvB,OAAO,CAAC,MAAM,CAyGhB,CAAC"}
|
package/dist/commands/channel.js
CHANGED
|
@@ -72,6 +72,11 @@ export const runChannel = async (command, streams, env = {}) => {
|
|
|
72
72
|
const roster = await rosterSoulsWithConfigured(env, (line) => warnings.push(line), { includeBuiltIn: true });
|
|
73
73
|
if (roster.complete && !roster.entries.some((entry) => entry.soul.agent.id === agentId)) {
|
|
74
74
|
writeLine(streams.stderr, `No agent ${agentId} is on the roster, so a ${kind} binding for it would never come online. \`stratus agents\` lists who is.`);
|
|
75
|
+
// Why it is not there, when the roster said: a configured soul the
|
|
76
|
+
// daemon ignores, or a soul file that did not parse.
|
|
77
|
+
for (const line of warnings) {
|
|
78
|
+
writeLine(streams.stderr, ` ${line}`);
|
|
79
|
+
}
|
|
75
80
|
return 1;
|
|
76
81
|
}
|
|
77
82
|
const secrets = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/commands/channel.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/commands/channel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/commands/dashboard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/commands/dashboard.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIpE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AA+F1D,eAAO,MAAM,eAAe,GAAU,KAAK,MAAM,KAAG,OAAO,CAAC,IAAI,CAa/D,CAAC;AAwDF;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,GACvB,SAAS,sBAAsB,EAC/B,SAAS,UAAU,EACnB,MAAK,cAAmB,KACvB,OAAO,CAAC,MAAM,CA+MhB,CAAC"}
|
|
@@ -1,8 +1,93 @@
|
|
|
1
1
|
import { spawn } from 'node:child_process';
|
|
2
|
+
import { existsSync } from 'node:fs';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { fileURLToPath } from 'node:url';
|
|
2
5
|
import { gatewayToken, readGatewayInfo, gatewayAnswering, HomeHeldError } from "../daemon.js";
|
|
3
6
|
import { writeLine } from "../io.js";
|
|
7
|
+
import { packageInstalled } from "../loaders.js";
|
|
8
|
+
import { CLI_VERSION, defaultPackageInstaller } from "../npm.js";
|
|
9
|
+
import { createSetupPrompter } from "../prompter.js";
|
|
4
10
|
import { runServe } from "./serve.js";
|
|
5
11
|
const DASHBOARD_TITLE = 'Stratus Agent Dashboard';
|
|
12
|
+
const CONTROL_API_PACKAGE = '@stratusagent/control-api';
|
|
13
|
+
const DASHBOARD_PACKAGE = '@stratusagent/dashboard';
|
|
14
|
+
/** What a daemon this command starts needs: the API that serves the page, and the page. */
|
|
15
|
+
const DASHBOARD_PACKAGES = [CONTROL_API_PACKAGE, DASHBOARD_PACKAGE];
|
|
16
|
+
/**
|
|
17
|
+
* Whether a package is installed, asked before any install. Asked of the
|
|
18
|
+
* filesystem, along the `node_modules` folders this module's own imports
|
|
19
|
+
* search, not through `import.meta.resolve`: Node remembers a scoped
|
|
20
|
+
* package it once failed to resolve, so probing that way before
|
|
21
|
+
* `npm install -g` keeps what it installs out of this process's reach and
|
|
22
|
+
* the daemon this command starts could not load it (a real install into a
|
|
23
|
+
* global prefix, Node 26). The check after the install is the resolver's.
|
|
24
|
+
*/
|
|
25
|
+
const installedBeforeOffer = (name, env) => {
|
|
26
|
+
if (env.packageResolver !== undefined) {
|
|
27
|
+
return packageInstalled(name, env);
|
|
28
|
+
}
|
|
29
|
+
for (let dir = path.dirname(fileURLToPath(import.meta.url));; dir = path.dirname(dir)) {
|
|
30
|
+
if (path.basename(dir) !== 'node_modules' && existsSync(path.join(dir, 'node_modules', name, 'package.json'))) {
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
if (path.dirname(dir) === dir) {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Offers the dashboard's missing packages. This command is the one place
|
|
40
|
+
* they are offered (card 308): setup and the rest leave them alone, since
|
|
41
|
+
* the control API binds a port and the person to ask is the one who just
|
|
42
|
+
* asked for the dashboard. At this CLI's own version, as the provider
|
|
43
|
+
* packages are: they ship in lockstep, and an unpinned install would put
|
|
44
|
+
* the latest control API beside an older daemon.
|
|
45
|
+
*
|
|
46
|
+
* `ready` means this process can load them now and should carry on;
|
|
47
|
+
* `elsewhere` that npm installed them where this CLI does not look (it
|
|
48
|
+
* runs from npx or a checkout, say), so running it again would not help;
|
|
49
|
+
* `missing` that nothing changed. Never throws.
|
|
50
|
+
*/
|
|
51
|
+
const offerDashboardPackages = async (missing, streams, env) => {
|
|
52
|
+
const one = missing.length === 1;
|
|
53
|
+
const specifiers = missing.map((name) => `${name}@${CLI_VERSION}`);
|
|
54
|
+
const install = `npm install -g ${specifiers.join(' ')}`;
|
|
55
|
+
writeLine(streams.stdout, `\`stratus dashboard\` needs ${missing.join(' and ')}, which ${one ? 'is' : 'are'} not installed.`);
|
|
56
|
+
if (missing.includes(CONTROL_API_PACKAGE)) {
|
|
57
|
+
writeLine(streams.stdout, 'The control API serves the dashboard on an authenticated port, 127.0.0.1 unless you choose another host.');
|
|
58
|
+
}
|
|
59
|
+
// A person to ask, or a script that only gets the command: installing
|
|
60
|
+
// something that binds a port is not a default to take unattended.
|
|
61
|
+
if (env.setupInput === undefined && process.stdin.isTTY !== true) {
|
|
62
|
+
writeLine(streams.stderr, `Error: install ${one ? 'it' : 'them'} with \`${install}\`, then run \`stratus dashboard\` again.`);
|
|
63
|
+
return 'missing';
|
|
64
|
+
}
|
|
65
|
+
const prompter = createSetupPrompter(streams, env);
|
|
66
|
+
let answer;
|
|
67
|
+
try {
|
|
68
|
+
answer = await prompter.select(`Install ${one ? 'it' : 'them'} now with npm install -g?`, ['Install now', 'Cancel']);
|
|
69
|
+
}
|
|
70
|
+
finally {
|
|
71
|
+
prompter.close();
|
|
72
|
+
}
|
|
73
|
+
if (answer.kind !== 'index' || answer.index !== 0) {
|
|
74
|
+
writeLine(streams.stdout, `Not installed. Install ${one ? 'it' : 'them'} yourself with: ${install}`);
|
|
75
|
+
return 'missing';
|
|
76
|
+
}
|
|
77
|
+
writeLine(streams.stdout, `Running: ${install}`);
|
|
78
|
+
const result = await (env.packageInstaller ?? defaultPackageInstaller)(specifiers)
|
|
79
|
+
.catch((error) => ({ ok: false, message: error instanceof Error ? error.message : String(error) }));
|
|
80
|
+
if (!result.ok) {
|
|
81
|
+
writeLine(streams.stderr, `Could not install: ${result.message || 'unknown error'}`);
|
|
82
|
+
writeLine(streams.stderr, `Run \`${install}\` yourself, then \`stratus dashboard\` again.`);
|
|
83
|
+
return 'missing';
|
|
84
|
+
}
|
|
85
|
+
writeLine(streams.stdout, `Installed ${missing.join(' and ')}.`);
|
|
86
|
+
// npm's exit code says they are in the global prefix, not that this CLI
|
|
87
|
+
// resolves them there: an npx run, or a checkout, looks elsewhere, and
|
|
88
|
+
// starting it again would look in the same places.
|
|
89
|
+
return missing.some((name) => !packageInstalled(name, env)) ? 'elsewhere' : 'ready';
|
|
90
|
+
};
|
|
6
91
|
export const openExternalUrl = async (url) => {
|
|
7
92
|
const platform = process.platform;
|
|
8
93
|
const command = platform === 'darwin' ? 'open' : platform === 'win32' ? 'cmd' : 'xdg-open';
|
|
@@ -16,6 +101,27 @@ export const openExternalUrl = async (url) => {
|
|
|
16
101
|
});
|
|
17
102
|
});
|
|
18
103
|
};
|
|
104
|
+
/**
|
|
105
|
+
* Whether the daemon at `base` serves the page, asked for it the way a
|
|
106
|
+
* signed-in browser would. A daemon running the control API alone (the
|
|
107
|
+
* headless configuration) answers health and mints sessions all the same,
|
|
108
|
+
* and the session would open on a 404. Only that refusal counts: anything
|
|
109
|
+
* else, a network blip or a daemon too old to say, is no reason to stop.
|
|
110
|
+
*/
|
|
111
|
+
const servesDashboard = async (env, base, fetchImpl) => {
|
|
112
|
+
try {
|
|
113
|
+
const token = await gatewayToken(env, undefined);
|
|
114
|
+
const response = await fetchImpl(`${base}/`, { headers: { authorization: `Bearer ${token}` } });
|
|
115
|
+
if (response.status !== 404) {
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
118
|
+
const body = await response.json().catch(() => undefined);
|
|
119
|
+
return body?.error?.code !== 'no_dashboard';
|
|
120
|
+
}
|
|
121
|
+
catch {
|
|
122
|
+
return true;
|
|
123
|
+
}
|
|
124
|
+
};
|
|
19
125
|
/**
|
|
20
126
|
* A one-time URL for the browser.
|
|
21
127
|
*
|
|
@@ -61,9 +167,48 @@ export const runDashboard = async (command, streams, env = {}) => {
|
|
|
61
167
|
}
|
|
62
168
|
const existing = await readGatewayInfo(env);
|
|
63
169
|
let base = existing && await gatewayAnswering(env, existing.url, fetchImpl) ? existing.url : undefined;
|
|
170
|
+
// A daemon already answering brought its own packages, so what this shell
|
|
171
|
+
// resolves says nothing about it, except for the page it is missing: then
|
|
172
|
+
// the package is offered here, and the daemon has to restart to load it.
|
|
173
|
+
if (base && !await servesDashboard(env, base, fetchImpl)) {
|
|
174
|
+
writeLine(streams.stdout, `The daemon at ${base} serves the control API without the dashboard.`);
|
|
175
|
+
const restart = 'Restart it to load the dashboard: `stratus restart`, then `stratus dashboard` again.';
|
|
176
|
+
if (installedBeforeOffer(DASHBOARD_PACKAGE, env)) {
|
|
177
|
+
// Installed where this CLI looks, which need not be where the daemon
|
|
178
|
+
// does (a global service looked at from a checkout): say both.
|
|
179
|
+
writeLine(streams.stderr, `Error: this stratus can load ${DASHBOARD_PACKAGE} and the daemon cannot. If it started before the package was installed, `
|
|
180
|
+
+ '`stratus restart` loads it. If it runs from another installation, install '
|
|
181
|
+
+ `${DASHBOARD_PACKAGE}@${CLI_VERSION} into that one (\`npm install -g ${DASHBOARD_PACKAGE}@${CLI_VERSION}\` for a global install), then \`stratus restart\`.`);
|
|
182
|
+
return 1;
|
|
183
|
+
}
|
|
184
|
+
if (await offerDashboardPackages([DASHBOARD_PACKAGE], streams, env) === 'missing') {
|
|
185
|
+
return 1;
|
|
186
|
+
}
|
|
187
|
+
writeLine(streams.stdout, restart);
|
|
188
|
+
return 0;
|
|
189
|
+
}
|
|
64
190
|
const ownDaemon = new AbortController();
|
|
65
191
|
let serving;
|
|
192
|
+
// Set when this run just installed the control API: a daemon already
|
|
193
|
+
// holding the home started without it and will never publish an address.
|
|
194
|
+
let installedApi = false;
|
|
66
195
|
if (!base) {
|
|
196
|
+
// Checked only for a daemon of our own. One already answering brought
|
|
197
|
+
// its own packages, whatever this shell resolves.
|
|
198
|
+
const missing = DASHBOARD_PACKAGES.filter((name) => !installedBeforeOffer(name, env));
|
|
199
|
+
if (missing.length > 0) {
|
|
200
|
+
const offered = await offerDashboardPackages(missing, streams, env);
|
|
201
|
+
if (offered === 'elsewhere') {
|
|
202
|
+
writeLine(streams.stderr, 'Error: npm installed them into its global folder, and this stratus does not load packages from there '
|
|
203
|
+
+ '(it runs from npx or a source checkout, say), so running it again would not help. '
|
|
204
|
+
+ `Run \`stratus dashboard\` from a global install (\`npm install -g @stratusagent/cli@${CLI_VERSION}\`) instead.`);
|
|
205
|
+
return 1;
|
|
206
|
+
}
|
|
207
|
+
if (offered !== 'ready') {
|
|
208
|
+
return 1;
|
|
209
|
+
}
|
|
210
|
+
installedApi = missing.includes(CONTROL_API_PACKAGE);
|
|
211
|
+
}
|
|
67
212
|
writeLine(streams.stdout, 'No daemon is running — starting one. It stops when you do.');
|
|
68
213
|
writeLine(streams.stdout, 'Run `stratus service install` to keep one running instead.');
|
|
69
214
|
// One attempt at a daemon of our own. `runServe` can reject before it
|
|
@@ -121,7 +266,7 @@ export const runDashboard = async (command, streams, env = {}) => {
|
|
|
121
266
|
break;
|
|
122
267
|
}
|
|
123
268
|
if (daemonSettled) {
|
|
124
|
-
if (!(daemonFailure instanceof HomeHeldError)) {
|
|
269
|
+
if (!(daemonFailure instanceof HomeHeldError) || installedApi) {
|
|
125
270
|
break;
|
|
126
271
|
}
|
|
127
272
|
if (Date.now() - attemptedAt >= 1_000) {
|
|
@@ -133,12 +278,17 @@ export const runDashboard = async (command, streams, env = {}) => {
|
|
|
133
278
|
if (!base) {
|
|
134
279
|
ownDaemon.abort();
|
|
135
280
|
await daemonExit;
|
|
136
|
-
writeLine(streams.stderr, daemonFailure instanceof HomeHeldError
|
|
137
|
-
? 'Error:
|
|
138
|
-
+ '
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
281
|
+
writeLine(streams.stderr, daemonFailure instanceof HomeHeldError && installedApi
|
|
282
|
+
? 'Error: a daemon is already running for this home, and it started before the dashboard packages were '
|
|
283
|
+
+ 'installed, so it has no control API. Restart it to load them: `stratus service stop` and then '
|
|
284
|
+
+ '`stratus service start` if it is the installed service, otherwise Ctrl+C where it runs and start it again. '
|
|
285
|
+
+ 'Then run `stratus dashboard`.'
|
|
286
|
+
: daemonFailure instanceof HomeHeldError
|
|
287
|
+
? 'Error: another daemon holds this home but never published its address. It may still be starting or '
|
|
288
|
+
+ 'draining — try again in a moment, or check `stratus service status`.'
|
|
289
|
+
: daemonFailure
|
|
290
|
+
? `Error: the daemon could not start: ${daemonFailure instanceof Error ? daemonFailure.message : String(daemonFailure)}`
|
|
291
|
+
: 'Error: the daemon did not start serving its control API. Is @stratusagent/control-api installed?');
|
|
142
292
|
return 1;
|
|
143
293
|
}
|
|
144
294
|
if (daemonFailure instanceof HomeHeldError) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/commands/dashboard.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/commands/dashboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAEA,OAAO,EAyBL,KAAK,sBAAsB,EAW5B,MAAM,qBAAqB,CAAC;AAI7B,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAOpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGvD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,sBAAsB,CAAC;IACjC,IAAI,EAAE,SAAS,GAAG,UAAU,CAAC;IAC7B,MAAM,EAAE,UAAU,GAAG,UAAU,GAAG,aAAa,GAAG,aAAa,CAAC;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,KAAK,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,aAAa,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACvG;AAsGD,4DAA4D;AAC5D,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,QAAQ,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,OAAO,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,sBAAsB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrE;;;;;OAKG;IACH,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,YAAY,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACxF,gDAAgD;IAChD,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GACpB;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,GACnB;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAiMjG;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAC9B,SAAS,mBAAmB,EAC5B,MAAM,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAC/B,MAAK,cAAmB,KACvB,OAAO,CAAC,YAAY,CAmhBtB,CAAC;AAEF,eAAO,MAAM,SAAS,GACpB,SAAS,mBAAmB,EAC5B,SAAS,UAAU,EACnB,MAAK,cAAmB,KACvB,OAAO,CAAC,MAAM,CA4HhB,CAAC"}
|
package/dist/commands/doctor.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { readdir, readFile, stat } from 'node:fs/promises';
|
|
2
2
|
import path from 'node:path';
|
|
3
|
-
import { agentsDirPath, planAgentsHome, defaultApiKeyEnvName, DEFAULT_STRATUS_AGENT, globalConfigPath, loadChannelCredentials, loadCredentials, loadRosterSouls, loadSoulFile, isSignedInRuntime, parseProviderName, readNonEmptyString, readProcessEnv, readWorkingDirectory, DEFAULT_CONFIG_FILENAME, loadConfigFile, resolveAgentPrincipals, gatewayInfoPath, gatewayTokenPath, resolveRuntimeConfig as resolveStateRuntimeConfig, signedInProviders, CREDENTIAL_PROVIDER_NAMES, ignoredUntrustedConfigKeys, legacyWorkspacesDirPath, surveyLegacyWorkspaces, quoteShellArg, verifyProviderKey, probeProviderModel, } from '@stratusagent/state';
|
|
3
|
+
import { agentsDirPath, AGENTS_FOLDER_RECORD, planAgentsHome, defaultApiKeyEnvName, DEFAULT_STRATUS_AGENT, globalConfigPath, loadChannelCredentials, loadCredentials, loadRosterSouls, loadSoulFile, isSignedInRuntime, parseProviderName, readNonEmptyString, readProcessEnv, readWorkingDirectory, DEFAULT_CONFIG_FILENAME, ignoredConfigKeys, loadConfigFile, resolveAgentPrincipals, gatewayInfoPath, gatewayTokenPath, resolveRuntimeConfig as resolveStateRuntimeConfig, signedInProviders, CREDENTIAL_PROVIDER_NAMES, ignoredUntrustedConfigKeys, legacyWorkspacesDirPath, surveyLegacyWorkspaces, quoteShellArg, verifyProviderKey, probeProviderModel, } from '@stratusagent/state';
|
|
4
4
|
import { readServiceCommand } from "../service.js";
|
|
5
5
|
import { callRunningGateway, gatewayErrorMessage, serviceEnvFor } from "../daemon.js";
|
|
6
6
|
import { configDigest } from "../config-digest.js";
|
|
@@ -8,7 +8,7 @@ import { writeLine, pathExists } from "../io.js";
|
|
|
8
8
|
import { ignoredConfigRemedy } from "../runtime.js";
|
|
9
9
|
import { loadSlackAdapter } from "../loaders.js";
|
|
10
10
|
import { companionsBehindMessage, readCompanions } from "../companions.js";
|
|
11
|
-
import {
|
|
11
|
+
import { providerPackagesMissingMessage, missingProviderPackages } from "../provider-packages.js";
|
|
12
12
|
import { CLI_VERSION } from "../npm.js";
|
|
13
13
|
import { loadServePrincipals } from "../trusted-config.js";
|
|
14
14
|
/** The key and endpoint a run would send, or why there is none to check. */
|
|
@@ -99,6 +99,50 @@ const checkKeys = async (resolved, env, problems) => {
|
|
|
99
99
|
};
|
|
100
100
|
/** Long enough for a busy daemon on loopback, short enough that doctor never hangs on a wedged one. */
|
|
101
101
|
const DAEMON_TIMEOUT_MS = 3_000;
|
|
102
|
+
const VALUE_TYPE_PHRASE = {
|
|
103
|
+
object: 'an object',
|
|
104
|
+
array: 'an array',
|
|
105
|
+
number: 'a number',
|
|
106
|
+
string: 'a string',
|
|
107
|
+
'empty string': 'an empty string',
|
|
108
|
+
boolean: 'true or false',
|
|
109
|
+
null: 'null',
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* Keys the config carries that loading leaves unused (#843): one the loader
|
|
113
|
+
* drops for its type, and one it never reads. Each is named by key and JSON
|
|
114
|
+
* type, never by value, since a value can be a secret pasted in the wrong
|
|
115
|
+
* place. The file is read again rather than threaded out of
|
|
116
|
+
* `loadConfigFile`, whose result is the resolved config; if it changed in
|
|
117
|
+
* between, this describes it as it is now.
|
|
118
|
+
*/
|
|
119
|
+
const ignoredConfigKeyProblems = async (configPath) => {
|
|
120
|
+
let parsed;
|
|
121
|
+
try {
|
|
122
|
+
parsed = JSON.parse(await readFile(configPath, 'utf8'));
|
|
123
|
+
}
|
|
124
|
+
catch {
|
|
125
|
+
return [];
|
|
126
|
+
}
|
|
127
|
+
const problems = [];
|
|
128
|
+
const unknown = [];
|
|
129
|
+
for (const entry of ignoredConfigKeys(parsed, configPath)) {
|
|
130
|
+
if (entry.reason === 'unknown') {
|
|
131
|
+
unknown.push(JSON.stringify(entry.key));
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
problems.push(`${configPath} sets ${JSON.stringify(entry.key)} to ${VALUE_TYPE_PHRASE[entry.valueType]}, but Stratus doesn't accept that value there, `
|
|
135
|
+
+ 'so it is ignored and runs go on as if it were not set.');
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
if (unknown.length === 1) {
|
|
139
|
+
problems.push(`${configPath} has a key Stratus doesn't read: ${unknown[0]}. It does nothing, so check its spelling or remove it.`);
|
|
140
|
+
}
|
|
141
|
+
else if (unknown.length > 1) {
|
|
142
|
+
problems.push(`${configPath} has keys Stratus doesn't read: ${unknown.join(', ')}. They do nothing, so check their spelling or remove them.`);
|
|
143
|
+
}
|
|
144
|
+
return problems;
|
|
145
|
+
};
|
|
102
146
|
/**
|
|
103
147
|
* How the gateway begins every intake warning it logs at start (an intake
|
|
104
148
|
* file it could not read, so it started paused). Unlike the rest of the
|
|
@@ -306,6 +350,9 @@ export const collectDoctorReport = async (command, warn, env = {}) => {
|
|
|
306
350
|
warn(`ignoring unreadable config ${winner.path}`);
|
|
307
351
|
}
|
|
308
352
|
}
|
|
353
|
+
if (winner && !configFatal) {
|
|
354
|
+
problems.push(...await ignoredConfigKeyProblems(winner.path));
|
|
355
|
+
}
|
|
309
356
|
// Readable by other users: the file holds whatever plugin config carries,
|
|
310
357
|
// tool-shell's `env` tokens included, and the CLI writes it 0600 for that
|
|
311
358
|
// reason (#204) — but only from the next write, so a file an older build
|
|
@@ -531,9 +578,9 @@ export const collectDoctorReport = async (command, warn, env = {}) => {
|
|
|
531
578
|
if (behind.length > 0) {
|
|
532
579
|
problems.push(companionsBehindMessage(behind));
|
|
533
580
|
}
|
|
534
|
-
const
|
|
535
|
-
if (
|
|
536
|
-
problems.push(
|
|
581
|
+
const missingProviders = await missingProviderPackages(env, command.configPath);
|
|
582
|
+
if (missingProviders.length > 0) {
|
|
583
|
+
problems.push(providerPackagesMissingMessage(missingProviders));
|
|
537
584
|
}
|
|
538
585
|
let rosterCount = 0;
|
|
539
586
|
try {
|
|
@@ -605,20 +652,40 @@ export const collectDoctorReport = async (command, warn, env = {}) => {
|
|
|
605
652
|
+ `(or set ${admit} to "anyone"), then \`stratus restart\`.`);
|
|
606
653
|
}
|
|
607
654
|
// The same plan `serve` acts on: where the folder is (or why there is
|
|
608
|
-
// none here), what the next start would move, and what is
|
|
609
|
-
// or workspace link whose
|
|
610
|
-
//
|
|
611
|
-
//
|
|
612
|
-
//
|
|
655
|
+
// none here), what the next start would move or re-point, and what is
|
|
656
|
+
// broken. A soul or workspace link whose target is gone and that the next
|
|
657
|
+
// start will not re-point: the soul drops out of the roster with a
|
|
658
|
+
// warning, and a missing workspace in the folder only comes back empty on
|
|
659
|
+
// the next write, so say which. And a soul in the folder nothing links
|
|
660
|
+
// to, which the roster never reads.
|
|
613
661
|
let agentsFolder;
|
|
614
662
|
try {
|
|
615
663
|
const plan = await planAgentsHome(env);
|
|
616
664
|
agentsFolder = plan.agentsHome !== undefined
|
|
617
|
-
? { path: plan.agentsHome, claimed: plan.claimed, pending: plan.souls.length + plan.workspaces.length }
|
|
665
|
+
? { path: plan.agentsHome, claimed: plan.claimed, pending: plan.souls.length + plan.workspaces.length + plan.relink.length }
|
|
618
666
|
: { reason: plan.reason ?? 'none available' };
|
|
667
|
+
if (plan.recordUnreadable !== undefined) {
|
|
668
|
+
problems.push(`${plan.recordUnreadable}. Make it readable again: until then no link a copied or restored home carried over is re-pointed, and the record is left as it is.`);
|
|
669
|
+
}
|
|
619
670
|
if (plan.dangling.length > 0) {
|
|
620
|
-
|
|
621
|
-
|
|
671
|
+
// A folder of the agents folder's shape: a copied home's (with or
|
|
672
|
+
// without its files), or an operator's storage that is offline, and
|
|
673
|
+
// only the record tells the two apart. The operator can, and
|
|
674
|
+
// recording the folder is how they say so. A start re-points a link
|
|
675
|
+
// only into the recorded folder, and only once the file is here.
|
|
676
|
+
const record = path.join(agentsDirPath(env), AGENTS_FOLDER_RECORD);
|
|
677
|
+
const here = plan.agentsHome ?? 'this home\'s agents folder';
|
|
678
|
+
const elsewhere = plan.elsewhere.map(({ folder, links }) => {
|
|
679
|
+
const copy = `make sure ${here} has everything that was in ${folder}, hidden files included,`;
|
|
680
|
+
return folder === plan.recorded
|
|
681
|
+
? `${links} of them point into ${folder}, the folder this home's links were made into, but ${here} doesn't have those files. `
|
|
682
|
+
+ `If this home was copied or restored from there, ${copy} and restart: each link into it is then re-pointed at the same file here.`
|
|
683
|
+
: `${links} of them point into ${folder}. `
|
|
684
|
+
+ `If this home was copied or restored from there, rather than linked to storage that is offline, ${copy} then run \`printf '%s\\n' ${quoteShellArg(folder)} > ${quoteShellArg(record)}\` and restart: each link into it is then re-pointed at the same file here.`;
|
|
685
|
+
});
|
|
686
|
+
problems.push(`These links point at something that is gone: ${plan.dangling.join(', ')}. `
|
|
687
|
+
+ 'Put the agent\'s folder back (or rename it back) to restore it; a missing workspace in the agents folder is recreated empty on the next write.'
|
|
688
|
+
+ elsewhere.map((line) => ` ${line}`).join(''));
|
|
622
689
|
}
|
|
623
690
|
if (plan.unlinked.length > 0) {
|
|
624
691
|
problems.push(`These souls are in the agents folder but no agent reads them: ${plan.unlinked.join(', ')}. `
|
|
@@ -735,7 +802,7 @@ export const runDoctor = async (command, streams, env = {}) => {
|
|
|
735
802
|
: 'reason' in folder
|
|
736
803
|
? `no visible agents folder (${folder.reason}), so souls and workspaces stay in ~/.stratus/agents`
|
|
737
804
|
: folder.claimed
|
|
738
|
-
? `in ${folder.path}${folder.pending > 0 ? ` (${folder.pending} more to move there on the next start)` : ''}`
|
|
805
|
+
? `in ${folder.path}${folder.pending > 0 ? ` (${folder.pending} more to move or re-point there on the next start)` : ''}`
|
|
739
806
|
: `${folder.path} is created on the next start${folder.pending > 0 ? `, and ${folder.pending} soul(s) or workspace(s) move there` : ''}`}`);
|
|
740
807
|
if (report.fallback) {
|
|
741
808
|
writeLine(streams.stdout, ` ${'fallback'.padEnd(10)}${report.fallback.provider} · ${report.fallback.model}`);
|