@stratusagent/cli 0.11.4 → 0.11.6
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 +14 -2
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +39 -1
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/grants.d.ts.map +1 -1
- package/dist/commands/grants.js +10 -4
- package/dist/commands/grants.js.map +1 -1
- package/dist/commands/memory.d.ts +16 -3
- package/dist/commands/memory.d.ts.map +1 -1
- package/dist/commands/memory.js +322 -16
- package/dist/commands/memory.js.map +1 -1
- package/dist/commands/plugins.d.ts.map +1 -1
- package/dist/commands/plugins.js +1 -5
- package/dist/commands/plugins.js.map +1 -1
- package/dist/commands/schedules.d.ts.map +1 -1
- package/dist/commands/schedules.js +140 -31
- package/dist/commands/schedules.js.map +1 -1
- package/dist/commands/serve.d.ts.map +1 -1
- package/dist/commands/serve.js +55 -3
- package/dist/commands/serve.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +34 -15
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/template.d.ts.map +1 -1
- package/dist/commands/template.js +13 -7
- package/dist/commands/template.js.map +1 -1
- package/dist/commands/update.d.ts +0 -17
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +76 -32
- package/dist/commands/update.js.map +1 -1
- package/dist/companions.d.ts +34 -0
- package/dist/companions.d.ts.map +1 -0
- package/dist/companions.js +45 -0
- package/dist/companions.js.map +1 -0
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +3 -0
- package/dist/daemon.js.map +1 -1
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +27 -9
- package/dist/events.js.map +1 -1
- package/dist/help.d.ts +1 -1
- package/dist/help.d.ts.map +1 -1
- package/dist/help.js +31 -3
- package/dist/help.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +14 -3
- package/dist/main.js.map +1 -1
- package/dist/npm.d.ts +1 -1
- package/dist/npm.js +1 -1
- package/dist/parse.d.ts +25 -2
- package/dist/parse.d.ts.map +1 -1
- package/dist/parse.js +66 -9
- package/dist/parse.js.map +1 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +5 -4
- package/dist/runtime.js.map +1 -1
- package/dist/service.d.ts +23 -0
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +41 -2
- package/dist/service.js.map +1 -1
- package/dist/slack.d.ts.map +1 -1
- package/dist/slack.js +9 -0
- package/dist/slack.js.map +1 -1
- package/dist/trusted-config.d.ts +30 -1
- package/dist/trusted-config.d.ts.map +1 -1
- package/dist/trusted-config.js +53 -0
- package/dist/trusted-config.js.map +1 -1
- package/package.json +26 -25
|
@@ -1,5 +1,121 @@
|
|
|
1
|
+
import { stat } from 'node:fs/promises';
|
|
1
2
|
import { canonicalDestination, describeCadence, describeSchedule } from '@stratusagent/agents';
|
|
3
|
+
import { fleetDbPath, legacySessionDbPath, stratusHomePath } from '@stratusagent/state';
|
|
2
4
|
import { writeLine } from "../io.js";
|
|
5
|
+
/**
|
|
6
|
+
* Every schedule this home has, from every database it keeps them in.
|
|
7
|
+
*
|
|
8
|
+
* Both, for as long as the per-agent move is pending, and merged rather
|
|
9
|
+
* than chosen between. Resolving to one file first — "where are the rows
|
|
10
|
+
* right now" — reads as tidier and loses an audit: `stratus schedules` can
|
|
11
|
+
* see rows in the legacy database, the exclusive migration can rename it in
|
|
12
|
+
* the moment before the store opens, and SQLite creates an empty one at the
|
|
13
|
+
* old name. The command then reports a fleet with nothing scheduled while
|
|
14
|
+
* every row sits safely in `fleet.db`, which is the worst answer this
|
|
15
|
+
* surface can give — an operator reads it as "nothing will fire".
|
|
16
|
+
*
|
|
17
|
+
* **The legacy database is read first**, and reading both is not by itself
|
|
18
|
+
* enough to make that safe. The migration copies the rows and *then*
|
|
19
|
+
* renames the source, so fleet-first leaves the same empty answer one step
|
|
20
|
+
* along: the fleet read finds nothing because the copy has not run, the
|
|
21
|
+
* copy and the rename happen, and the legacy read then finds no file — or
|
|
22
|
+
* the empty husk SQLite creates at the old name. Legacy-first cannot land
|
|
23
|
+
* there. Either the legacy read precedes the rename and sees the rows, or
|
|
24
|
+
* it follows the copy, in which case the fleet read after it has them.
|
|
25
|
+
*
|
|
26
|
+
* Deduped by id because the migration copies with `INSERT OR REPLACE` on
|
|
27
|
+
* that key, so a row caught mid-move is the same row in both places. The
|
|
28
|
+
* fleet copy overwrites the legacy one, so what survives the merge is the
|
|
29
|
+
* row the fleet will actually fire.
|
|
30
|
+
*/
|
|
31
|
+
const listEverywhere = async (env) => {
|
|
32
|
+
const { SqliteScheduleStore } = await import('@stratusagent/gateway');
|
|
33
|
+
const byId = new Map();
|
|
34
|
+
for (const dbPath of [legacySessionDbPath(env), fleetDbPath(env)]) {
|
|
35
|
+
if (!(await pathExists(dbPath))) {
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
// `fleet.db` is a name Stratus derived and is refused behind a link;
|
|
39
|
+
// the legacy database may be one an operator relocated, and is not.
|
|
40
|
+
const store = new SqliteScheduleStore(dbPath, dbPath === fleetDbPath(env) ? { stateHome: stratusHomePath(env) } : {});
|
|
41
|
+
try {
|
|
42
|
+
for (const record of store.list()) {
|
|
43
|
+
// Unconditional, so the fleet row read second replaces the legacy
|
|
44
|
+
// copy of the same id rather than losing to it.
|
|
45
|
+
byId.set(record.id, record);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
finally {
|
|
49
|
+
store.close();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return [...byId.values()];
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Cancel a schedule out of every database this home has one in.
|
|
56
|
+
*
|
|
57
|
+
* Two of them exist for as long as the per-agent move is pending, and a row
|
|
58
|
+
* that survives in either is a schedule that fires after the operator was
|
|
59
|
+
* told it was cancelled — carrying the standing destination grant the
|
|
60
|
+
* cancel was supposed to revoke with it, which is the failure this surface
|
|
61
|
+
* exists to prevent.
|
|
62
|
+
*
|
|
63
|
+
* **The legacy database goes first**, and the order is the point. The
|
|
64
|
+
* migration copies the rows out of it under an IMMEDIATE transaction, so a
|
|
65
|
+
* delete there either lands before the copy — leaving nothing to copy — or
|
|
66
|
+
* waits out the copy's brief lock and runs after it, in which case the row
|
|
67
|
+
* is now in `fleet.db` and the second delete below removes it. Deleting the
|
|
68
|
+
* fleet row first would invert that and let a copy still in flight put the
|
|
69
|
+
* row back behind us.
|
|
70
|
+
*
|
|
71
|
+
* Returns the record as the first database holding it described it, or
|
|
72
|
+
* undefined when nothing did.
|
|
73
|
+
*/
|
|
74
|
+
const cancelEverywhere = async (env, id) => {
|
|
75
|
+
const { SqliteScheduleStore } = await import('@stratusagent/gateway');
|
|
76
|
+
let cancelled;
|
|
77
|
+
for (const dbPath of [legacySessionDbPath(env), fleetDbPath(env)]) {
|
|
78
|
+
if (!(await pathExists(dbPath))) {
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
// `fleet.db` is a name Stratus derived and is refused behind a link;
|
|
82
|
+
// the legacy database may be one an operator relocated, and is not.
|
|
83
|
+
const store = new SqliteScheduleStore(dbPath, dbPath === fleetDbPath(env) ? { stateHome: stratusHomePath(env) } : {});
|
|
84
|
+
try {
|
|
85
|
+
const record = store.get(id);
|
|
86
|
+
if (store.delete(id) && record) {
|
|
87
|
+
cancelled ??= record;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
finally {
|
|
91
|
+
store.close();
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return cancelled;
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* Whether the database is there — and only "no" when it is genuinely not.
|
|
98
|
+
*
|
|
99
|
+
* Anything else propagates, because the alternative is this surface's
|
|
100
|
+
* worst failure mode wearing a confident face: a permission error or a
|
|
101
|
+
* failing disk swallowed here makes `stratus schedules` print "No
|
|
102
|
+
* schedules set" over a fleet that is about to fire, and makes `schedules
|
|
103
|
+
* cancel` report an id that does not exist while the schedule — and the
|
|
104
|
+
* standing destination grant riding on it — stays live. Opening the one
|
|
105
|
+
* database used to surface those; reading two must not lose them.
|
|
106
|
+
*/
|
|
107
|
+
const pathExists = async (filePath) => {
|
|
108
|
+
try {
|
|
109
|
+
await stat(filePath);
|
|
110
|
+
return true;
|
|
111
|
+
}
|
|
112
|
+
catch (error) {
|
|
113
|
+
if (error.code === 'ENOENT') {
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
throw error;
|
|
117
|
+
}
|
|
118
|
+
};
|
|
3
119
|
/**
|
|
4
120
|
* List and cancel what the fleet has scheduled — against the daemon's own
|
|
5
121
|
* database, the way `stratus logs` reads the daemon's own log. WAL makes a
|
|
@@ -10,41 +126,34 @@ import { writeLine } from "../io.js";
|
|
|
10
126
|
export const runSchedules = async (command, streams, env = {}) => {
|
|
11
127
|
// Lazy like the serve path: node:sqlite loads only for the command that
|
|
12
128
|
// needs it.
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
if (
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
if (!record || !store.delete(id)) {
|
|
20
|
-
writeLine(streams.stderr, `No schedule with id ${id}. \`stratus schedules\` lists what exists.`);
|
|
21
|
-
return 1;
|
|
22
|
-
}
|
|
23
|
-
writeLine(streams.stdout, `Cancelled ${id} (${record.agentId}, ${describeCadence(record.cadence)}).`);
|
|
24
|
-
if (record.destination) {
|
|
25
|
-
writeLine(streams.stdout, `Its pre-authorized destination ${canonicalDestination(record.destination)} is revoked with it.`);
|
|
26
|
-
}
|
|
27
|
-
return 0;
|
|
28
|
-
}
|
|
29
|
-
const schedules = store.list();
|
|
30
|
-
if (command.format === 'json') {
|
|
31
|
-
writeLine(streams.stdout, JSON.stringify({ schedules: schedules.map(describeSchedule) }, null, 2));
|
|
32
|
-
return 0;
|
|
33
|
-
}
|
|
34
|
-
if (schedules.length === 0) {
|
|
35
|
-
writeLine(streams.stdout, 'No schedules set. An agent sets one with the schedule.every / schedule.at tools.');
|
|
36
|
-
return 0;
|
|
129
|
+
if (command.action === 'cancel') {
|
|
130
|
+
const id = command.scheduleId ?? '';
|
|
131
|
+
const record = await cancelEverywhere(env, id);
|
|
132
|
+
if (!record) {
|
|
133
|
+
writeLine(streams.stderr, `No schedule with id ${id}. \`stratus schedules\` lists what exists.`);
|
|
134
|
+
return 1;
|
|
37
135
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
writeLine(streams.stdout,
|
|
41
|
-
writeLine(streams.stdout, ` next: ${record.nextFireAt ?? '(spent — awaiting cleanup)'}${record.lastFiredAt ? ` last: ${record.lastFiredAt}` : ''}`);
|
|
42
|
-
writeLine(streams.stdout, ` prompt: ${record.prompt}`);
|
|
136
|
+
writeLine(streams.stdout, `Cancelled ${id} (${record.agentId}, ${describeCadence(record.cadence)}).`);
|
|
137
|
+
if (record.destination) {
|
|
138
|
+
writeLine(streams.stdout, `Its pre-authorized destination ${canonicalDestination(record.destination)} is revoked with it.`);
|
|
43
139
|
}
|
|
44
140
|
return 0;
|
|
45
141
|
}
|
|
46
|
-
|
|
47
|
-
|
|
142
|
+
const schedules = await listEverywhere(env);
|
|
143
|
+
if (command.format === 'json') {
|
|
144
|
+
writeLine(streams.stdout, JSON.stringify({ schedules: schedules.map(describeSchedule) }, null, 2));
|
|
145
|
+
return 0;
|
|
146
|
+
}
|
|
147
|
+
if (schedules.length === 0) {
|
|
148
|
+
writeLine(streams.stdout, 'No schedules set. An agent sets one with the schedule.every / schedule.at tools.');
|
|
149
|
+
return 0;
|
|
150
|
+
}
|
|
151
|
+
for (const record of schedules) {
|
|
152
|
+
const destination = record.destination ? ` → ${canonicalDestination(record.destination)}` : '';
|
|
153
|
+
writeLine(streams.stdout, `${record.id} [${record.agentId}] ${describeCadence(record.cadence)}${destination}`);
|
|
154
|
+
writeLine(streams.stdout, ` next: ${record.nextFireAt ?? '(spent — awaiting cleanup)'}${record.lastFiredAt ? ` last: ${record.lastFiredAt}` : ''}`);
|
|
155
|
+
writeLine(streams.stdout, ` prompt: ${record.prompt}`);
|
|
48
156
|
}
|
|
157
|
+
return 0;
|
|
49
158
|
};
|
|
50
159
|
//# sourceMappingURL=schedules.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedules.js","sourceRoot":"","sources":["../../src/commands/schedules.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"schedules.js","sourceRoot":"","sources":["../../src/commands/schedules.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":"AAoCA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAoB,MAAM,mBAAmB,CAAC;AAMtF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAoBtD,eAAO,MAAM,QAAQ,GACnB,SAAS,kBAAkB,EAC3B,SAAS,UAAU,EACnB,MAAK,cAAmB,KACvB,OAAO,CAAC,MAAM,CAuDhB,CAAC"}
|
package/dist/commands/serve.js
CHANGED
|
@@ -7,16 +7,18 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
|
|
|
7
7
|
return path;
|
|
8
8
|
};
|
|
9
9
|
import { createFileCommandWhitelist, createPermissionPolicy, describeCommandScope, describeOriginScope, describeToolGrant, } from '@stratusagent/permissions';
|
|
10
|
-
import { agentsDirPath, loadChannelCredentials, readProcessEnv, logsDirPath, resolveAgentApprovals, resolveAgentPrincipals, servedRuntimes, discoverIgnoredUntrustedConfig, } from '@stratusagent/state';
|
|
10
|
+
import { agentsDirPath, stratusHomePath, loadChannelCredentials, readProcessEnv, logsDirPath, resolveAgentApprovals, resolveAgentPrincipals, resolveAgentSlack, applyPerAgentWorkspaces, workspaceRepairPending, runStateMigrations, servedRuntimes, discoverIgnoredUntrustedConfig, } from '@stratusagent/state';
|
|
11
11
|
import { createLogWriter, truncateRedirectLogs } from "../logs.js";
|
|
12
12
|
import { describePrincipals, describeApprovers } from "../approvals.js";
|
|
13
13
|
import { HomeHeldError, legacyDaemonServing, describeHeldHome } from "../daemon.js";
|
|
14
14
|
import { formatEvent, eventDetail } from "../events.js";
|
|
15
15
|
import { writeLine } from "../io.js";
|
|
16
16
|
import { loadSlackAdapter, loadControlApi } from "../loaders.js";
|
|
17
|
+
import { companionsBehindMessage, readCompanions } from "../companions.js";
|
|
18
|
+
import { CLI_VERSION } from "../npm.js";
|
|
17
19
|
import { warnOnCredentialOverride, warnOnUntrustedConfig, warnOnIgnoredConfig } from "../runtime.js";
|
|
18
20
|
import { RESTART_EXIT_CODE, UNDRAINED_RESTART_EXIT_CODE, SUPERVISED_ENV, BOUND_API_PORT_ENV, defaultSupervisorLink, superviseRestarts, } from "../supervisor.js";
|
|
19
|
-
import { loadServeApprovals, loadServePrincipals, loadServeApi, loadServePlugins, loadServeRuntimeSelection, } from "../trusted-config.js";
|
|
21
|
+
import { loadServeApprovals, loadServePrincipals, loadServeSlack, loadServeApi, loadServePlugins, loadServeRuntimeSelection, loadServeMaxTurns, } from "../trusted-config.js";
|
|
20
22
|
export const runServe = async (command, streams, env = {}) => {
|
|
21
23
|
// First, before anything that can throw. A broken install makes the
|
|
22
24
|
// gateway import below fail, the manager restarts, and the CLI's error
|
|
@@ -86,6 +88,40 @@ const serveHeldHome = async (command, streams, env, createGateway) => {
|
|
|
86
88
|
writeLine(streams.stderr, `Warning: ${line}`);
|
|
87
89
|
void logWriter?.write({ ts: new Date().toISOString(), level: 'warn', msg: line });
|
|
88
90
|
};
|
|
91
|
+
// With the home claim in hand, this daemon is the exclusive holder of the
|
|
92
|
+
// state a migration would move — which is the bracket the marked ones
|
|
93
|
+
// wait for. Every ordinary command defers them (see `requiresExclusive`),
|
|
94
|
+
// so for an install that is never updated through `stratus update` this
|
|
95
|
+
// is where the move actually happens: before the stores are opened, so
|
|
96
|
+
// nothing here reads a path the migration is still populating.
|
|
97
|
+
for (const migration of await runStateMigrations(env, { exclusive: true })) {
|
|
98
|
+
log(`state migration ${migration.id}: ${migration.detail ?? migration.description}`);
|
|
99
|
+
}
|
|
100
|
+
// And then the workspace pass again, unconditionally, whatever the schema
|
|
101
|
+
// stamp says. It is registered as `0004` and runs once as a migration, but
|
|
102
|
+
// the stamp is not what makes that move safe: ordinary commands take no
|
|
103
|
+
// home lock, so a command of an *older* build can create
|
|
104
|
+
// `workspaces/<id>` by pathname at any moment — including after the
|
|
105
|
+
// migration that was meant to be the last word on it. With nothing looking
|
|
106
|
+
// there afterwards, those files and every provenance label in them were
|
|
107
|
+
// stranded where no build reads, silently.
|
|
108
|
+
//
|
|
109
|
+
// Here is the right moment for it: the home claim is held, so no second
|
|
110
|
+
// daemon is racing, and the stores are not open yet, so nothing is reading
|
|
111
|
+
// a path this may still be populating. Costs one `readdir` on a home that
|
|
112
|
+
// has finished moving, which is every home eventually.
|
|
113
|
+
// Gated, because the pass opens by finishing any interrupted move — which
|
|
114
|
+
// asks every agent and reads each provenance ledger whole. Append-only
|
|
115
|
+
// files on a fleet that has been up for months are not something to parse
|
|
116
|
+
// on every start. The gate asks whether anything is actually pending
|
|
117
|
+
// rather than whether the directory exists: an ordinary home keeps it
|
|
118
|
+
// forever, since a collision leaves a workspace's files in it by design.
|
|
119
|
+
if (await workspaceRepairPending(env)) {
|
|
120
|
+
const repaired = await applyPerAgentWorkspaces(env);
|
|
121
|
+
if (repaired !== undefined) {
|
|
122
|
+
log(`workspace layout: ${repaired}`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
89
125
|
// Agents with stored Slack tokens go live in Slack automatically — the
|
|
90
126
|
// tokens are gateway infrastructure secrets in the channels namespace of
|
|
91
127
|
// ~/.stratus/credentials.json (see @stratusagent/channel-slack's README
|
|
@@ -96,6 +132,7 @@ const serveHeldHome = async (command, streams, env, createGateway) => {
|
|
|
96
132
|
const approvalsConfig = await loadServeApprovals(env, command.configPath, warn);
|
|
97
133
|
const approvalMode = command.approvals ?? approvalsConfig.mode ?? 'headless';
|
|
98
134
|
const principalsConfig = await loadServePrincipals(env, command.configPath, warn);
|
|
135
|
+
const slackConfig = await loadServeSlack(env, command.configPath, warn);
|
|
99
136
|
// Read here rather than inside the gateway for the same reason as the two
|
|
100
137
|
// blocks above: the trust boundary is a property of *which file* said it,
|
|
101
138
|
// and this is where the file precedence is already understood.
|
|
@@ -105,6 +142,11 @@ const serveHeldHome = async (command, streams, env, createGateway) => {
|
|
|
105
142
|
// at start when the name is nobody's.
|
|
106
143
|
const executorName = await loadServeRuntimeSelection('executor', env, command.configPath, warn);
|
|
107
144
|
const memoryStoreName = await loadServeRuntimeSelection('memoryStore', env, command.configPath, warn);
|
|
145
|
+
// How long a loop one message may buy. Same trust rule, and the last
|
|
146
|
+
// thing the daemon could not say for itself — `--max-turns` is a
|
|
147
|
+
// `stratus run` flag, so a served fleet was held to the kernel default
|
|
148
|
+
// with no override.
|
|
149
|
+
const maxTurns = await loadServeMaxTurns(env, command.configPath, warn);
|
|
108
150
|
// Every kind of grant an agent holds — command scopes, origins, standing
|
|
109
151
|
// tool grants — in one file per agent beside its soul, through one store
|
|
110
152
|
// instance for the whole daemon. One instance, because the store caches
|
|
@@ -114,7 +156,7 @@ const serveHeldHome = async (command, streams, env, createGateway) => {
|
|
|
114
156
|
// restart. A whitelist that exists and will not read is said here, once,
|
|
115
157
|
// and never written over — the daemon's log is where a grant list going
|
|
116
158
|
// quiet would otherwise go unnoticed.
|
|
117
|
-
const grantStore = createFileCommandWhitelist({ directory: agentsDirPath(env), warn });
|
|
159
|
+
const grantStore = createFileCommandWhitelist({ directory: agentsDirPath(env), stateHome: stratusHomePath(env), warn });
|
|
118
160
|
// The control API is a channel adapter like any other: started after the
|
|
119
161
|
// roster loads, stopped before the store drains. It is optional because
|
|
120
162
|
// installing it is how an operator says they want a port open.
|
|
@@ -171,6 +213,14 @@ const serveHeldHome = async (command, streams, env, createGateway) => {
|
|
|
171
213
|
}
|
|
172
214
|
});
|
|
173
215
|
}
|
|
216
|
+
// Every start, not only `stratus update`: an upgrade that went around it
|
|
217
|
+
// leaves the adapters this daemon is about to load at their old version,
|
|
218
|
+
// and a Slack adapter from before thread follow-through answers mentions
|
|
219
|
+
// and nothing else, with no error anywhere to say why.
|
|
220
|
+
const behind = (await readCompanions(CLI_VERSION, env)).filter((entry) => entry.stale);
|
|
221
|
+
if (behind.length > 0) {
|
|
222
|
+
warn(companionsBehindMessage(behind));
|
|
223
|
+
}
|
|
174
224
|
const channelCredentials = await loadChannelCredentials(env);
|
|
175
225
|
const slackAgents = Object.entries(channelCredentials.slack ?? {});
|
|
176
226
|
const channels = [...controlApiChannels];
|
|
@@ -201,6 +251,7 @@ const serveHeldHome = async (command, streams, env, createGateway) => {
|
|
|
201
251
|
...(route.slackChannel ? { approvalChannel: route.slackChannel } : {}),
|
|
202
252
|
...(principals.slackUsers ? { principals: principals.slackUsers } : {}),
|
|
203
253
|
...(principals.admit ? { admit: principals.admit } : {}),
|
|
254
|
+
replies: resolveAgentSlack(slackConfig, agentId).replies,
|
|
204
255
|
};
|
|
205
256
|
}),
|
|
206
257
|
log,
|
|
@@ -384,6 +435,7 @@ const serveHeldHome = async (command, streams, env, createGateway) => {
|
|
|
384
435
|
...(approvalsConfig.timeoutMs !== undefined ? { approvalTimeoutMs: approvalsConfig.timeoutMs } : {}),
|
|
385
436
|
...(command.configPath ? { selection: { configPath: command.configPath } } : {}),
|
|
386
437
|
...(command.idleTimeoutMs !== undefined ? { idleTimeoutMs: command.idleTimeoutMs } : {}),
|
|
438
|
+
...(maxTurns !== undefined ? { maxTurns } : {}),
|
|
387
439
|
...(channels.length > 0 ? { channels } : {}),
|
|
388
440
|
// The Slack adapter is host-wired, so its (agent, kind) claims are
|
|
389
441
|
// declared here; a plugin channel claiming one of them is refused at
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAgEA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAiB,MAAM,mBAAmB,CAAC;AAInF,OAAO,KAAK,EAAmB,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAYvE,eAAO,MAAM,oBAAoB,QAKrB,CAAC;
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAgEA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAiB,MAAM,mBAAmB,CAAC;AAInF,OAAO,KAAK,EAAmB,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAYvE,eAAO,MAAM,oBAAoB,QAKrB,CAAC;AAmEb,eAAO,MAAM,QAAQ,GACnB,SAAS,kBAAkB,EAC3B,SAAS,UAAU,EACnB,MAAK,cAAmB,KACvB,OAAO,CAAC,MAAM,CA+mFhB,CAAC"}
|
package/dist/commands/setup.js
CHANGED
|
@@ -4,7 +4,7 @@ import { preflightPlugin, readPluginManifest, PluginConfigError, PluginManifestE
|
|
|
4
4
|
import { DEFAULT_ANTHROPIC_MODEL } from '@stratusagent/provider-anthropic';
|
|
5
5
|
import { DEFAULT_CODEX_MODEL } from '@stratusagent/provider-codex';
|
|
6
6
|
import { formatSoul, parseSoul } from '@stratusagent/agents';
|
|
7
|
-
import { claimSoulFile, collectAvailableModels as collectModels, credentialsPath, defaultApiKeyEnvName, DEFAULT_ANTHROPIC_BASE_URL, DEFAULT_OPENAI_BASE_URL, DEFAULT_OPENAI_MODEL, DEFAULT_STRATUS_AGENT, globalConfigPath, loadChannelCredentials, loadCredentials, loadRosterSouls, loadSoulFile, isRegisteredProviderName, readNonEmptyString, registeredProviderNameOf, readProcessEnv, readWorkingDirectory, resolveAgentApprovals, DEFAULT_CONFIG_FILENAME, loadConfigFile, saveChannelCredentials, saveConfigFile, saveCredentials, CREDENTIAL_PROVIDER_NAMES, verifyProviderKey,
|
|
7
|
+
import { claimSoulFile, collectAvailableModels as collectModels, credentialsPath, defaultApiKeyEnvName, DEFAULT_ANTHROPIC_BASE_URL, DEFAULT_OPENAI_BASE_URL, DEFAULT_OPENAI_MODEL, DEFAULT_STRATUS_AGENT, globalConfigPath, loadChannelCredentials, loadCredentials, loadRosterSouls, loadSoulFile, isRegisteredProviderName, readNonEmptyString, registeredProviderNameOf, readProcessEnv, readWorkingDirectory, resolveAgentApprovals, DEFAULT_CONFIG_FILENAME, loadConfigFile, saveChannelCredentials, saveConfigFile, saveCredentials, CREDENTIAL_PROVIDER_NAMES, verifyProviderKey, } from '@stratusagent/state';
|
|
8
8
|
import { installService, readServiceStatus, servicePlatform, serviceUnitPath, uninstallService, } from "../service.js";
|
|
9
9
|
import { classifyApprovalReach, unattendedReachParts } from "../approvals.js";
|
|
10
10
|
import { serviceEnvFor } from "../daemon.js";
|
|
@@ -101,11 +101,17 @@ export const runSetup = async (command, streams, env = {}) => {
|
|
|
101
101
|
...(existing.approvals !== undefined ? { approvals: existing.approvals } : {}),
|
|
102
102
|
...(existing.api !== undefined ? { api: existing.api } : {}),
|
|
103
103
|
...(existing.principals !== undefined ? { principals: existing.principals } : {}),
|
|
104
|
-
|
|
105
|
-
//
|
|
106
|
-
//
|
|
104
|
+
...(existing.slack !== undefined ? { slack: existing.slack } : {}),
|
|
105
|
+
// Settings setup has no menu for, carried through a save untouched: a
|
|
106
|
+
// re-run that dropped them would put the operator's agents back on the
|
|
107
|
+
// host and the file store without a word — and, for the two bounds,
|
|
108
|
+
// back on defaults their model cannot serve. A `maxTokens` set because
|
|
109
|
+
// a proxy's ceiling is under 16000 would silently return to 16000 and
|
|
110
|
+
// fail every request; a raised `maxTurns` would return to 8.
|
|
107
111
|
...(existing.executor !== undefined ? { executor: existing.executor } : {}),
|
|
108
112
|
...(existing.memoryStore !== undefined ? { memoryStore: existing.memoryStore } : {}),
|
|
113
|
+
...(existing.maxTokens !== undefined ? { maxTokens: existing.maxTokens } : {}),
|
|
114
|
+
...(existing.maxTurns !== undefined ? { maxTurns: existing.maxTurns } : {}),
|
|
109
115
|
credentials: await loadCredentials(env),
|
|
110
116
|
credentialsDirty: false,
|
|
111
117
|
channels: await loadChannelCredentials(env),
|
|
@@ -816,27 +822,31 @@ export const runSetup = async (command, streams, env = {}) => {
|
|
|
816
822
|
writeLine(streams.stdout);
|
|
817
823
|
writeLine(streams.stdout, `Create a Slack app for ${agentName}:`);
|
|
818
824
|
writeLine(streams.stdout, ' 1. Open https://api.slack.com/apps → Create New App → From a manifest');
|
|
819
|
-
writeLine(streams.stdout, ' 2. Pick your workspace, then paste this manifest:');
|
|
825
|
+
writeLine(streams.stdout, ' 2. Pick your workspace → Next, then paste this manifest:');
|
|
820
826
|
writeLine(streams.stdout);
|
|
821
827
|
for (const line of slackAppManifest(agentName).split('\n')) {
|
|
822
828
|
writeLine(streams.stdout, ` ${line}`);
|
|
823
829
|
}
|
|
824
830
|
writeLine(streams.stdout);
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
831
|
+
// The app-level token is the step people got lost on: it lives on
|
|
832
|
+
// Basic Information rather than OAuth & Permissions, where the other
|
|
833
|
+
// token is, and needs a scope added in the dialog that generates it.
|
|
834
|
+
writeLine(streams.stdout, ' 3. Click Next, then Create. You land on Basic Information — scroll down to');
|
|
835
|
+
writeLine(streams.stdout, ' App-Level Tokens and click Generate Token and Scopes (scope: connections:write)');
|
|
836
|
+
writeLine(streams.stdout, ' 4. Sidebar → Install App → Install to your workspace → Allow, then copy');
|
|
837
|
+
writeLine(streams.stdout, ' the Bot User OAuth Token — it starts with xoxb-');
|
|
828
838
|
writeLine(streams.stdout, ` 5. Basic Information → Display Information → upload ${agentName}'s avatar`);
|
|
829
839
|
writeLine(streams.stdout);
|
|
830
|
-
const appToken = await prompter.askSecret('Paste the app-level token (xapp-…, Enter to cancel; input is hidden): ');
|
|
840
|
+
const appToken = await prompter.askSecret('Paste the app-level token from step 3 (xapp-…, Enter to cancel; input is hidden): ');
|
|
831
841
|
if (!appToken) {
|
|
832
842
|
writeLine(streams.stdout, 'Cancelled — nothing was saved.');
|
|
833
843
|
return;
|
|
834
844
|
}
|
|
835
845
|
if (!appToken.startsWith('xapp-')) {
|
|
836
|
-
writeLine(streams.stdout, '✗ That does not look like an app-level token (they start with xapp-). Nothing was saved.');
|
|
846
|
+
writeLine(streams.stdout, '✗ That does not look like an app-level token (they start with xapp-, and live under Basic Information → App-Level Tokens, not OAuth & Permissions). Nothing was saved.');
|
|
837
847
|
return;
|
|
838
848
|
}
|
|
839
|
-
const botToken = await prompter.askSecret('Paste the
|
|
849
|
+
const botToken = await prompter.askSecret('Paste the Bot User OAuth Token from step 4 (xoxb-…, Enter to cancel; input is hidden): ');
|
|
840
850
|
if (!botToken) {
|
|
841
851
|
writeLine(streams.stdout, 'Cancelled — nothing was saved.');
|
|
842
852
|
return;
|
|
@@ -854,7 +864,7 @@ export const runSetup = async (command, streams, env = {}) => {
|
|
|
854
864
|
}
|
|
855
865
|
const app = await verifySlackAppToken(appToken, fetchImpl);
|
|
856
866
|
if (app.status === 'rejected') {
|
|
857
|
-
writeLine(streams.stdout, `✗ Slack rejected the app-level token (${app.detail}). Nothing was saved —
|
|
867
|
+
writeLine(streams.stdout, `✗ Slack rejected the app-level token (${app.detail}). Nothing was saved — generate a new one under Basic Information → App-Level Tokens with the connections:write scope.`);
|
|
858
868
|
return;
|
|
859
869
|
}
|
|
860
870
|
const slack = { ...(state.channels.slack ?? {}) };
|
|
@@ -1087,7 +1097,7 @@ export const runSetup = async (command, streams, env = {}) => {
|
|
|
1087
1097
|
const { manifest, directory } = await readPluginManifest(name, {
|
|
1088
1098
|
resolve: (target) => import.meta.resolve(target),
|
|
1089
1099
|
});
|
|
1090
|
-
await preflightPlugin(manifest, directory, block
|
|
1100
|
+
await preflightPlugin(manifest, directory, block);
|
|
1091
1101
|
return undefined;
|
|
1092
1102
|
}
|
|
1093
1103
|
catch (error) {
|
|
@@ -2220,8 +2230,8 @@ export const runSetup = async (command, streams, env = {}) => {
|
|
|
2220
2230
|
if (state.promptCacheTtl !== undefined) {
|
|
2221
2231
|
config.promptCacheTtl = state.promptCacheTtl;
|
|
2222
2232
|
}
|
|
2223
|
-
// `plugins` and `approvals` have menus above; `api` and
|
|
2224
|
-
// do not and are written back exactly as they were read. Both cases
|
|
2233
|
+
// `plugins` and `approvals` have menus above; `api`, `principals`, and
|
|
2234
|
+
// `slack` do not and are written back exactly as they were read. Both cases
|
|
2225
2235
|
// land here the same way, because the menus edit this state rather
|
|
2226
2236
|
// than the file — so there is nothing to merge, only to not lose.
|
|
2227
2237
|
if (state.plugins !== undefined) {
|
|
@@ -2236,12 +2246,21 @@ export const runSetup = async (command, streams, env = {}) => {
|
|
|
2236
2246
|
if (state.principals !== undefined) {
|
|
2237
2247
|
config.principals = state.principals;
|
|
2238
2248
|
}
|
|
2249
|
+
if (state.slack !== undefined) {
|
|
2250
|
+
config.slack = state.slack;
|
|
2251
|
+
}
|
|
2239
2252
|
if (state.executor !== undefined) {
|
|
2240
2253
|
config.executor = state.executor;
|
|
2241
2254
|
}
|
|
2242
2255
|
if (state.memoryStore !== undefined) {
|
|
2243
2256
|
config.memoryStore = state.memoryStore;
|
|
2244
2257
|
}
|
|
2258
|
+
if (state.maxTokens !== undefined) {
|
|
2259
|
+
config.maxTokens = state.maxTokens;
|
|
2260
|
+
}
|
|
2261
|
+
if (state.maxTurns !== undefined) {
|
|
2262
|
+
config.maxTurns = state.maxTurns;
|
|
2263
|
+
}
|
|
2245
2264
|
await saveConfigFile(configPath, config);
|
|
2246
2265
|
writeLine(streams.stdout);
|
|
2247
2266
|
writeLine(streams.stdout, `Wrote ${configPath}`);
|