@stratusagent/cli 0.11.10 → 0.12.1
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 +2 -1
- package/dist/commands/doctor.d.ts +20 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +138 -2
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/memory.d.ts +2 -2
- package/dist/commands/memory.js +2 -2
- package/dist/commands/schedules.d.ts.map +1 -1
- package/dist/commands/schedules.js +3 -1
- package/dist/commands/schedules.js.map +1 -1
- package/dist/commands/serve.d.ts.map +1 -1
- package/dist/commands/serve.js +43 -1
- package/dist/commands/serve.js.map +1 -1
- package/dist/commands/setup.js +1 -1
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/signin.d.ts +19 -0
- package/dist/commands/signin.d.ts.map +1 -0
- package/dist/commands/signin.js +90 -0
- package/dist/commands/signin.js.map +1 -0
- package/dist/config-digest.d.ts +25 -0
- package/dist/config-digest.d.ts.map +1 -0
- package/dist/config-digest.js +37 -0
- package/dist/config-digest.js.map +1 -0
- package/dist/help.d.ts +1 -1
- package/dist/help.d.ts.map +1 -1
- package/dist/help.js +20 -0
- package/dist/help.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +5 -0
- package/dist/main.js.map +1 -1
- package/dist/npm.d.ts +1 -1
- package/dist/npm.d.ts.map +1 -1
- package/dist/npm.js +1 -1
- package/dist/npm.js.map +1 -1
- package/dist/parse.d.ts +13 -1
- package/dist/parse.d.ts.map +1 -1
- package/dist/parse.js +55 -0
- package/dist/parse.js.map +1 -1
- package/dist/promotion.d.ts +12 -0
- package/dist/promotion.d.ts.map +1 -0
- package/dist/promotion.js +34 -0
- package/dist/promotion.js.map +1 -0
- package/dist/supervisor.d.ts.map +1 -1
- package/dist/supervisor.js +6 -0
- package/dist/supervisor.js.map +1 -1
- package/package.json +25 -25
package/README.md
CHANGED
|
@@ -52,6 +52,7 @@ stratus plugins # installed → enabled → granted → w
|
|
|
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
54
|
stratus credentials # stored credential names (never values)
|
|
55
|
+
stratus signin set anthropic --agent remy # one agent's own Claude subscription, token asked without echo (also `signins`, `signin remove`)
|
|
55
56
|
stratus channel set imessage --agent blair apiKey # a channel plugin's secrets for one agent, asked without echo (also `channels`, `channel remove`)
|
|
56
57
|
stratus schedules # what the fleet has scheduled, and where it reports
|
|
57
58
|
stratus grants blair # what blair may do unattended, and `grants revoke` to take one back
|
|
@@ -91,7 +92,7 @@ Full reference with every subcommand:
|
|
|
91
92
|
| `--all-unknown` | `memory reassert`: every live fact with no recorded origin |
|
|
92
93
|
| `--limit <n>` | `memory search`: maximum hits |
|
|
93
94
|
| `--file <path>`, `--preserve-trust` | `memory export` / `memory import`: the JSONL, and keeping each recorded label instead of landing entries `external` |
|
|
94
|
-
| `--agent <id>` | `credential set`/`remove`: that agent's own key rather than the fleet's shared one; `channel set`/`remove`: whose binding it is |
|
|
95
|
+
| `--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 |
|
|
95
96
|
| `--port`, `--host`, `--no-open` | `dashboard`: where a daemon it starts should bind; skip opening the browser |
|
|
96
97
|
| `--no-login` | `service install`: install without the start-at-login trigger |
|
|
97
98
|
| `--version`, `-v` | Print this build's version and exit |
|
|
@@ -26,8 +26,28 @@ export interface DoctorReport {
|
|
|
26
26
|
slackAgents: string[];
|
|
27
27
|
slackPackageInstalled: boolean;
|
|
28
28
|
rosterCount: number;
|
|
29
|
+
/** The running daemon, as it reports itself. */
|
|
30
|
+
daemon: DoctorDaemon;
|
|
29
31
|
problems: string[];
|
|
30
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* The daemon is asked rather than inferred: it read its config once, at
|
|
35
|
+
* start, and runs on that until it restarts, so the file being healthy now
|
|
36
|
+
* says nothing about the process. A real install had doctor report "No
|
|
37
|
+
* problems found" while the daemon ran with no plugins and no soul.
|
|
38
|
+
*/
|
|
39
|
+
export type DoctorDaemon = {
|
|
40
|
+
state: 'no-api';
|
|
41
|
+
} | {
|
|
42
|
+
state: 'unreachable';
|
|
43
|
+
url: string;
|
|
44
|
+
} | {
|
|
45
|
+
state: 'running';
|
|
46
|
+
url: string;
|
|
47
|
+
version?: string;
|
|
48
|
+
startedAt?: string;
|
|
49
|
+
configPath?: string;
|
|
50
|
+
};
|
|
31
51
|
/**
|
|
32
52
|
* `stratus doctor` — what a run would resolve to right now, and which file
|
|
33
53
|
* or variable decided each part. Every "why is it using X" question needs
|
|
@@ -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,EAoBL,KAAK,sBAAsB,EAS5B,MAAM,qBAAqB,CAAC;AAI7B,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAMpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,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,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,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;AA4HjG;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAC9B,SAAS,mBAAmB,EAC5B,MAAM,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAC/B,MAAK,cAAmB,KACvB,OAAO,CAAC,YAAY,CA2atB,CAAC;AAEF,eAAO,MAAM,SAAS,GACpB,SAAS,mBAAmB,EAC5B,SAAS,UAAU,EACnB,MAAK,cAAmB,KACvB,OAAO,CAAC,MAAM,CAyFhB,CAAC"}
|
package/dist/commands/doctor.js
CHANGED
|
@@ -1,13 +1,126 @@
|
|
|
1
1
|
import { readdir, readFile, stat } from 'node:fs/promises';
|
|
2
2
|
import path from 'node:path';
|
|
3
|
-
import { agentsDirPath, defaultApiKeyEnvName, DEFAULT_STRATUS_AGENT, globalConfigPath, loadChannelCredentials, loadCredentials, loadRosterSouls, loadSoulFile, isSignedInRuntime, parseProviderName, readNonEmptyString, readProcessEnv, readWorkingDirectory, DEFAULT_CONFIG_FILENAME, loadConfigFile, resolveRuntimeConfig as resolveStateRuntimeConfig, CREDENTIAL_PROVIDER_NAMES, ignoredUntrustedConfigKeys, legacyWorkspacesDirPath, surveyLegacyWorkspaces, quoteShellArg, } from '@stratusagent/state';
|
|
3
|
+
import { agentsDirPath, defaultApiKeyEnvName, DEFAULT_STRATUS_AGENT, globalConfigPath, loadChannelCredentials, loadCredentials, loadRosterSouls, loadSoulFile, isSignedInRuntime, parseProviderName, readNonEmptyString, readProcessEnv, readWorkingDirectory, DEFAULT_CONFIG_FILENAME, loadConfigFile, gatewayInfoPath, gatewayTokenPath, resolveRuntimeConfig as resolveStateRuntimeConfig, CREDENTIAL_PROVIDER_NAMES, ignoredUntrustedConfigKeys, legacyWorkspacesDirPath, surveyLegacyWorkspaces, quoteShellArg, } from '@stratusagent/state';
|
|
4
4
|
import { readServiceCommand } from "../service.js";
|
|
5
|
-
import { serviceEnvFor } from "../daemon.js";
|
|
5
|
+
import { callRunningGateway, gatewayErrorMessage, serviceEnvFor } from "../daemon.js";
|
|
6
|
+
import { configDigest } from "../config-digest.js";
|
|
6
7
|
import { writeLine, pathExists } from "../io.js";
|
|
7
8
|
import { ignoredConfigRemedy } from "../runtime.js";
|
|
8
9
|
import { loadSlackAdapter } from "../loaders.js";
|
|
9
10
|
import { companionsBehindMessage, readCompanions } from "../companions.js";
|
|
10
11
|
import { CLI_VERSION } from "../npm.js";
|
|
12
|
+
/** Long enough for a busy daemon on loopback, short enough that doctor never hangs on a wedged one. */
|
|
13
|
+
const DAEMON_TIMEOUT_MS = 3_000;
|
|
14
|
+
/** What a daemon's /health said about each config file at start, keeping only well-formed entries. */
|
|
15
|
+
const startedConfigs = (raw) => Array.isArray(raw)
|
|
16
|
+
? raw.flatMap((entry) => {
|
|
17
|
+
const { path: file, sha256 } = (entry ?? {});
|
|
18
|
+
return typeof file === 'string' && (typeof sha256 === 'string' || sha256 === null) ? [{ path: file, sha256 }] : [];
|
|
19
|
+
})
|
|
20
|
+
: [];
|
|
21
|
+
const inspectDaemon = async (env, problems) => {
|
|
22
|
+
// Read here rather than through readGatewayInfo, which folds a damaged
|
|
23
|
+
// file into "none": only a missing file is the benign case.
|
|
24
|
+
const infoPath = gatewayInfoPath(env);
|
|
25
|
+
let raw;
|
|
26
|
+
try {
|
|
27
|
+
raw = await readFile(infoPath, 'utf8');
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
if (error.code === 'ENOENT') {
|
|
31
|
+
// Information, not a problem: `stratus run` needs no daemon, and a
|
|
32
|
+
// daemon started with its control API off publishes no file either.
|
|
33
|
+
return { state: 'no-api' };
|
|
34
|
+
}
|
|
35
|
+
problems.push(`${infoPath} cannot be read (${error.message}), so doctor cannot find the running daemon. Check its permissions, or remove it and \`stratus restart\`.`);
|
|
36
|
+
return { state: 'no-api' };
|
|
37
|
+
}
|
|
38
|
+
let url;
|
|
39
|
+
try {
|
|
40
|
+
const parsed = JSON.parse(raw);
|
|
41
|
+
url = typeof parsed.url === 'string' ? parsed.url : undefined;
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
url = undefined;
|
|
45
|
+
}
|
|
46
|
+
if (url === undefined) {
|
|
47
|
+
problems.push(`${infoPath} is damaged (no daemon address in it), so no command can find the running daemon. Run \`stratus restart\` to have it written again.`);
|
|
48
|
+
return { state: 'no-api' };
|
|
49
|
+
}
|
|
50
|
+
url = url.replace(/\/+$/, '');
|
|
51
|
+
let health;
|
|
52
|
+
try {
|
|
53
|
+
// The token this machine's daemon wrote, never STRATUS_GATEWAY_TOKEN:
|
|
54
|
+
// that names a remote gateway, and the address here is the local one.
|
|
55
|
+
const token = (await readFile(gatewayTokenPath(env), 'utf8')).trim();
|
|
56
|
+
const response = await callRunningGateway(env, { token }, url, '/api/v1/health', undefined, 'GET', AbortSignal.timeout(DAEMON_TIMEOUT_MS));
|
|
57
|
+
if (!response.ok) {
|
|
58
|
+
throw new Error(await gatewayErrorMessage(response));
|
|
59
|
+
}
|
|
60
|
+
health = await response.json();
|
|
61
|
+
// Anything else answering 200 on a reused port is not this daemon.
|
|
62
|
+
if (health?.ok !== true) {
|
|
63
|
+
throw new Error('the answer was not a Stratus health response');
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
problems.push(`A daemon published ${url} in ${infoPath} but did not answer /health `
|
|
68
|
+
+ `(${error instanceof Error ? error.message : String(error)}). If one is running, check \`stratus logs\`; `
|
|
69
|
+
+ 'if none is, the file is left over from one that did not stop cleanly.');
|
|
70
|
+
return { state: 'unreachable', url };
|
|
71
|
+
}
|
|
72
|
+
// A daemon from before `startup` existed reports none; nothing to compare.
|
|
73
|
+
const startup = health.startup;
|
|
74
|
+
const warnings = Array.isArray(startup?.warnings)
|
|
75
|
+
? startup.warnings.filter((line) => typeof line === 'string')
|
|
76
|
+
: [];
|
|
77
|
+
for (const line of warnings) {
|
|
78
|
+
problems.push(`The running daemon warned at start: ${line}. It runs on what it loaded until \`stratus restart\`.`);
|
|
79
|
+
}
|
|
80
|
+
const configs = startedConfigs(startup?.configs);
|
|
81
|
+
const current = await Promise.all(configs.map(async (file) => (await configDigest(file.path)) ?? null));
|
|
82
|
+
// The file each turn resolves its runtime from now: the first one there.
|
|
83
|
+
// A file behind it (a global config behind a project one) feeds only the
|
|
84
|
+
// daemon-level blocks, so a change to it never reaches a turn.
|
|
85
|
+
const activeIndex = current.findIndex((digest) => digest !== null);
|
|
86
|
+
// A turn that cannot load it keeps the daemon's last known-good config.
|
|
87
|
+
const activeLoads = activeIndex >= 0
|
|
88
|
+
? await loadConfigFile(configs[activeIndex].path).then(() => true, () => false)
|
|
89
|
+
: false;
|
|
90
|
+
configs.forEach((file, index) => {
|
|
91
|
+
const now = current[index];
|
|
92
|
+
if (now === file.sha256) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
// Runtime settings are re-resolved on every turn, discovery included;
|
|
96
|
+
// daemon-level ones only at start. Which of those a change touched is
|
|
97
|
+
// not knowable from a digest, so the message says which part a restart
|
|
98
|
+
// is for rather than guessing.
|
|
99
|
+
const restart = 'Daemon-level settings (plugins, executor, memory store, Slack, approvals, principals, turn limits, control API) stay as they were until `stratus restart`.';
|
|
100
|
+
const split = index !== activeIndex
|
|
101
|
+
? restart
|
|
102
|
+
: activeLoads
|
|
103
|
+
? `Runtime settings (provider, model, system prompt and the rest of the runtime config) follow it from the next turn. ${restart}`
|
|
104
|
+
: `It does not load, so turns keep the last config that did; fix it first. ${restart}`;
|
|
105
|
+
if (file.sha256 === null) {
|
|
106
|
+
problems.push(`${file.path} appeared after the daemon started. ${split}`);
|
|
107
|
+
}
|
|
108
|
+
else if (now === null) {
|
|
109
|
+
problems.push(`${file.path}, which the running daemon read at start, is gone or unreadable. ${split}`);
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
problems.push(`${file.path} changed since the daemon started. ${split}`);
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
const configPath = configs.find((file) => file.sha256 !== null)?.path;
|
|
116
|
+
return {
|
|
117
|
+
state: 'running',
|
|
118
|
+
url,
|
|
119
|
+
...(typeof health.version === 'string' ? { version: health.version } : {}),
|
|
120
|
+
...(typeof health.startedAt === 'string' ? { startedAt: health.startedAt } : {}),
|
|
121
|
+
...(configPath !== undefined ? { configPath } : {}),
|
|
122
|
+
};
|
|
123
|
+
};
|
|
11
124
|
/**
|
|
12
125
|
* `stratus doctor` — what a run would resolve to right now, and which file
|
|
13
126
|
* or variable decided each part. Every "why is it using X" question needs
|
|
@@ -380,6 +493,7 @@ export const collectDoctorReport = async (command, warn, env = {}) => {
|
|
|
380
493
|
+ 'the name is not an agent\'s. Nothing further will move them: read them where they are, and move or '
|
|
381
494
|
+ 'delete them yourself once you are done with them.');
|
|
382
495
|
}
|
|
496
|
+
const daemon = await inspectDaemon(env, problems);
|
|
383
497
|
return {
|
|
384
498
|
...(winner ? { configInUse: winner.path } : {}),
|
|
385
499
|
configShadowed: shadowed.map((entry) => entry.path),
|
|
@@ -392,6 +506,7 @@ export const collectDoctorReport = async (command, warn, env = {}) => {
|
|
|
392
506
|
slackAgents,
|
|
393
507
|
slackPackageInstalled,
|
|
394
508
|
rosterCount,
|
|
509
|
+
daemon,
|
|
395
510
|
problems,
|
|
396
511
|
};
|
|
397
512
|
};
|
|
@@ -449,6 +564,27 @@ export const runDoctor = async (command, streams, env = {}) => {
|
|
|
449
564
|
: `${report.slackAgents.length} connected (${report.slackAgents.join(', ')})`}`);
|
|
450
565
|
writeLine(streams.stdout, ` @stratusagent/channel-slack ${report.slackPackageInstalled ? 'installed' : 'not installed'}`);
|
|
451
566
|
writeLine(streams.stdout);
|
|
567
|
+
writeLine(streams.stdout, 'Daemon');
|
|
568
|
+
const daemon = report.daemon;
|
|
569
|
+
if (daemon.state === 'no-api') {
|
|
570
|
+
// No published control API: none running, or one started with the API
|
|
571
|
+
// off. Doctor cannot tell those apart from here, so it does not guess.
|
|
572
|
+
writeLine(streams.stdout, ` ${'daemon'.padEnd(10)}none found (no control API published)`);
|
|
573
|
+
}
|
|
574
|
+
else if (daemon.state === 'unreachable') {
|
|
575
|
+
writeLine(streams.stdout, ` ${'daemon'.padEnd(10)}did not answer at ${daemon.url}`);
|
|
576
|
+
}
|
|
577
|
+
else {
|
|
578
|
+
const facts = [
|
|
579
|
+
...(daemon.version !== undefined ? [daemon.version] : []),
|
|
580
|
+
...(daemon.startedAt !== undefined ? [`started ${daemon.startedAt}`] : []),
|
|
581
|
+
];
|
|
582
|
+
writeLine(streams.stdout, ` ${'daemon'.padEnd(10)}running${facts.length > 0 ? ` ${facts.join(', ')}` : ''}`);
|
|
583
|
+
if (daemon.configPath !== undefined) {
|
|
584
|
+
writeLine(streams.stdout, ` ${''.padEnd(10)}loaded ${daemon.configPath}`);
|
|
585
|
+
}
|
|
586
|
+
}
|
|
587
|
+
writeLine(streams.stdout);
|
|
452
588
|
if (report.problems.length === 0) {
|
|
453
589
|
writeLine(streams.stdout, 'No problems found.');
|
|
454
590
|
return 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,uBAAuB,EACvB,cAAc,EACd,oBAAoB,IAAI,yBAAyB,EACjD,yBAAyB,EAKzB,0BAA0B,EAC1B,uBAAuB,EACvB,sBAAsB,EAEtB,aAAa,GACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AA0BxC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,OAA4B,EAC5B,IAA+B,EAC/B,MAAsB,EAAE,EACD,EAAE;IACzB,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,qEAAqE;IACrE,qEAAqE;IACrE,yDAAyD;IACzD,uEAAuE;IACvE,kEAAkE;IAClE,wEAAwE;IACxE,0CAA0C;IAC1C,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,KAAK,SAAS;QACrD,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,EAAE;QACjD,CAAC,CAAC,kBAAkB,CAAC,UAAU,CAAC,cAAc,CAAC;YAC7C,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;YACtE,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,QAAQ,GAAG,cAAc,EAAE,KAAK,CAAC;IACvC,MAAM,UAAU,GAAG,cAAc;QAC/B,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,IAAI,EAAE,CAAC;QACjF,CAAC,CAAC;YACE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,uBAAuB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;YACnE,EAAE,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;SACjD,CAAC;IACN,MAAM,OAAO,GAA2C,EAAE,CAAC;IAC3D,IAAI,UAAuD,CAAC;IAC5D,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACvC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,GAAI,KAA+B,CAAC,IAAI,CAAC;YACnD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,gEAAgE;gBAChE,mEAAmE;gBACnE,+DAA+D;gBAC/D,UAAU,GAAG,SAAS,CAAC;gBACvB,QAAQ,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,+BAAgC,KAAe,CAAC,OAAO,4EAA4E,CAAC,CAAC;gBACpK,MAAM;YACR,CAAC;YACD,IAAI,QAAQ,EAAE,CAAC;gBACb,kEAAkE;gBAClE,+DAA+D;gBAC/D,mEAAmE;gBACnE,8DAA8D;gBAC9D,QAAQ,CAAC,IAAI,CACX,GAAG,SAAS,CAAC,IAAI,wBAAwB,SAAS,CAAC,KAAK,iDAAiD;sBACvG,qEAAqE,CACxE,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACpD,IAAI,MAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACxE,QAAQ,CAAC,IAAI,CACX,GAAG,MAAM,CAAC,IAAI,aAAa,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,uCAAuC;cACjH,8DAA8D,CACjE,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,GAAsB,EAAE,CAAC;IACvC,IAAI,WAAW,GAAG,UAAU,KAAK,SAAS,CAAC;IAC3C,IAAI,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,UAAU,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,oEAAoE;YACpE,qEAAqE;YACrE,2CAA2C;YAC3C,WAAW,GAAG,IAAI,CAAC;YACnB,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,yBAA0B,KAAe,CAAC,OAAO,kDAAkD,CAAC,CAAC;YACjI,IAAI,CAAC,8BAA8B,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,0EAA0E;IAC1E,yEAAyE;IACzE,wEAAwE;IACxE,0EAA0E;IAC1E,0EAA0E;IAC1E,yEAAyE;IACzE,qEAAqE;IACrE,uEAAuE;IACvE,0EAA0E;IAC1E,yEAAyE;IACzE,wEAAwE;IACxE,uEAAuE;IACvE,yEAAyE;IACzE,+DAA+D;IAC/D,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG;YACd,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC;YAC1D,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9E,CAAC;QACF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;YAChC,IAAI,IAAY,CAAC;YACjB,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACzC,0DAA0D;gBAC1D,qEAAqE;gBACrE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;oBACpB,SAAS;gBACX,CAAC;gBACD,MAAM,QAAQ,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;gBAC7C,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACvB,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACnB,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;YAC5B,CAAC;YAAC,MAAM,CAAC;gBACP,qEAAqE;gBACrE,SAAS;YACX,CAAC;YACD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,QAAQ,CAAC,IAAI,CACX,GAAG,SAAS,CAAC,IAAI,qDAAqD,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB;sBACtG,oEAAoE;sBACpE,mBAAmB,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,6CAA6C,CAChG,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,wEAAwE;IACxE,oEAAoE;IACpE,sCAAsC;IACtC,MAAM,OAAO,GAAG,CAAC,IAAY,EAA+C,EAAE;QAC5E,MAAM,KAAK,GAAG,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QACnD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACjE,CAAC,CAAC;IAEF;;;;;;OAMG;IACH,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACxC,wEAAwE;IACxE,6DAA6D;IAC7D,MAAM,SAAS,GAAG,OAAO,EAAE,KAAK,IAAI,CAAC,MAAM,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAChG,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACxE,MAAM,QAAQ,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1F,oEAAoE;IACpE,yEAAyE;IACzE,yCAAyC;IACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAExF,IAAI,QAAmC,CAAC;IACxC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,yBAAyB,CACxC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,EAC5D,GAAG,CACJ,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,QAAQ,CAAC,IAAI,CAAC,qBAAqB,OAAO,EAAE,CAAC,CAAC;YAC9C,IAAI,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACtC,mEAAmE;gBACnE,2CAA2C;gBAC3C,QAAQ,CAAC,IAAI,CACX,yBAAyB,QAAQ,mFAAmF,CACrH,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,yEAAyE;IACzE,uEAAuE;IACvE,wEAAwE;IACxE,yEAAyE;IACzE,qEAAqE;IACrE,qEAAqE;IACrE,MAAM,cAAc,GAAG,QAAQ,EAAE,0BAA0B;WACtD,0BAA0B,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IACtI,IAAI,cAAc,EAAE,CAAC;QACnB,QAAQ,CAAC,IAAI,CACX,GAAG,cAAc,CAAC,IAAI,SAAS,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,6DAA6D;cAC3H,kCAAkC,cAAc,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI;cACtF,mBAAmB,CAAC,cAAc,EAAE,KAAK,CAAC,CAC7C,CAAC;IACJ,CAAC;IAED,MAAM,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACpD,MAAM,cAAc,GAAG,eAAe;QACpC,CAAC,CAAC,eAAe,CAAC,IAAI;QACtB,CAAC,CAAC,IAAI,EAAE,QAAQ;YACd,CAAC,CAAC,GAAG,QAAQ,qBAAqB;YAClC,CAAC,CAAC,UAAU,CAAC,QAAQ;gBACnB,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,IAAI,QAAQ,CAAC;gBAC5B,CAAC,CAAC,2CAA2C,CAAC;IACpD,wEAAwE;IACxE,wEAAwE;IACxE,gCAAgC;IAChC,MAAM,gBAAgB,GAAG,eAAe,EAAE,KAAK,IAAI,IAAI,EAAE,QAAQ,IAAI,UAAU,CAAC,QAAQ,IAAI,MAAM,CAAC;IACnG,MAAM,QAAQ,GAAkB,QAAQ;QACtC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE;QACtD,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,gBAAgB,gBAAgB,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IAE3E,IAAI,QAAQ,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;QAC9B,sEAAsE;QACtE,kEAAkE;QAClE,4DAA4D;QAC5D,MAAM,GAAG,GAAG,eAAe;YACzB,CAAC,CAAC,SAAS,eAAe,CAAC,IAAI,8CAA8C;YAC7E,CAAC,CAAC,IAAI,EAAE,QAAQ,KAAK,MAAM;gBACzB,CAAC,CAAC,wCAAwC,QAAQ,oCAAoC;gBACtF,CAAC,CAAC,UAAU,CAAC,QAAQ,KAAK,MAAM;oBAC9B,CAAC,CAAC,wBAAwB,MAAM,EAAE,IAAI,yCAAyC;oBAC/E,CAAC,CAAC,kEAAkE,CAAC;QAC3E,QAAQ,CAAC,IAAI,CAAC,8DAA8D,GAAG,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,IAAI,KAAgC,CAAC;IACrC,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;QAC1C,wEAAwE;QACxE,oEAAoE;QACpE,qEAAqE;QACrE,2CAA2C;QAC3C,MAAM,gBAAgB,GAAG,IAAI,EAAE,QAAQ,KAAK,SAAS,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,KAAK,QAAQ,CAAC,QAAQ,CAAC;QAC7H,MAAM,kBAAkB,GAAG,CAAC,UAAU,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,QAAQ,CAAC,QAAQ,CAAC;QACnF,KAAK,GAAG;YACN,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,6BAA6B;YACtD,MAAM,EAAE,QAAQ;gBACd,CAAC,CAAC,QAAQ,CAAC,IAAI;gBACf,CAAC,CAAC,gBAAgB,IAAI,IAAI,EAAE,KAAK,KAAK,QAAQ,CAAC,KAAK;oBAClD,CAAC,CAAC,GAAG,QAAQ,qBAAqB;oBAClC,CAAC,CAAC,kBAAkB,IAAI,UAAU,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK;wBACzD,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,IAAI,QAAQ,CAAC;wBAC5B,CAAC,CAAC,oCAAoC;SAC7C,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,OAAO,GAA4B,EAAE,CAAC;IAC5C,MAAM,aAAa,GAAG,QAAQ,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;IAClG,MAAM,aAAa,GAAG,QAAQ,EAAE,QAAQ,KAAK,WAAW,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,CAAC;IAC7F,MAAM,QAAQ,GAAG,QAAQ,IAAI,QAAQ,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAE1F,KAAK,MAAM,MAAM,IAAI,yBAAyB,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,EAAE,IAAI,KAAK,aAAa;YAC1C,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,+BAA+B,CAAC;YAC1F,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,SAAS,GAAG,QAAQ,EAAE,QAAQ,KAAK,MAAM,CAAC;QAChD,MAAM,UAAU,GAAG,QAAQ,EAAE,QAAQ,KAAK,MAAM,CAAC;QAEjD,oEAAoE;QACpE,uEAAuE;QACvE,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC;gBACX,QAAQ,EAAE,MAAM;gBAChB,MAAM,EAAE,MAAM;oBACZ,CAAC,CAAC,GAAG,KAAK,cAAc,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,oBAAoB;oBACpF,CAAC,CAAC,eAAe;aACpB,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,SAAS;YACtB,CAAC,CAAC,aAAa,KAAK,SAAS;YAC7B,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,KAAK,kBAAkB,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACzG,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC;QAE3D,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,mBAAmB,MAAM,sBAAsB,EAAE,CAAC,CAAC;YACpG,iEAAiE;YACjE,0DAA0D;YAC1D,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,aAAa;gBACzC,CAAC,CAAC,GAAG,MAAM,4CAA4C,MAAM,6BAA6B,KAAK,8GAA8G;gBAC7M,CAAC,CAAC,GAAG,MAAM,4CAA4C,MAAM,6DAA6D,CAAC,CAAC;YAC9H,SAAS;QACX,CAAC;QACD,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,MAAM,wBAAwB,EAAE,CAAC,CAAC;YACpF,SAAS;QACX,CAAC;QACD,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,IAAI,aAAa,CAAC,CAAC,CAAC,GAAG,KAAK,4CAA4C,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YACtI,SAAS;QACX,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,yEAAyE;IACzE,4DAA4D;IAC5D,IAAI,UAAU,CAAC,aAAa,KAAK,SAAS,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,KAAK,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpG,QAAQ,CAAC,IAAI,CACX,qBAAqB,UAAU,CAAC,aAAa,gIAAgI;cAC3K,kDAAkD,CACrD,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,GAAG,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7D,MAAM,qBAAqB,GAAG,CAAC,MAAM,gBAAgB,EAAE,CAAC,KAAK,SAAS,CAAC;IACvE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACrD,QAAQ,CAAC,IAAI,CACX,+BAA+B,WAAW,CAAC,MAAM,+FAA+F;cAC9I,6DAA6D,CAChE,CAAC;IACJ,CAAC;IAED,oEAAoE;IACpE,2EAA2E;IAC3E,MAAM,MAAM,GAAG,CAAC,MAAM,cAAc,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,CAAC;QACH,WAAW,GAAG,CAAC,MAAM,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;IAClG,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IACD,mEAAmE;IACnE,oCAAoC;IACpC,IAAI,aAAa,GAAkB,EAAE,CAAC;IACtC,IAAI,YAAY,GAAG,IAAI,CAAC;IACxB,IAAI,CAAC;QACH,aAAa,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,kEAAkE;QAClE,iEAAiE;QACjE,YAAY,GAAG,KAAK,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7E,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;IACxC,IAAI,IAAI,EAAE,CAAC;QACT,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IACD,wEAAwE;IACxE,wEAAwE;IACxE,wEAAwE;IACxE,yEAAyE;IACzE,4BAA4B;IAC5B,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,QAAQ,CAAC,IAAI,CACX,+BAA+B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,2DAA2D;cAC1G,6CAA6C,CAChD,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,yEAAyE;IACzE,qEAAqE;IACrE,qEAAqE;IACrE,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;IACjE,IAAI,WAAW,EAAE,QAAQ,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QACrF,QAAQ,CAAC,IAAI,CACX,wEAAwE,WAAW,CAAC,QAAQ,+BAA+B;cACzH,uFAAuF,CAC1F,CAAC;IACJ,CAAC;IACD,IAAI,WAAW,EAAE,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QACzF,QAAQ,CAAC,IAAI,CACX,sEAAsE,WAAW,CAAC,UAAU,+BAA+B;cACzH,uFAAuF,CAC1F,CAAC;IACJ,CAAC;IAED,sEAAsE;IACtE,qEAAqE;IACrE,uEAAuE;IACvE,wEAAwE;IACxE,uDAAuD;IACvD,EAAE;IACF,0EAA0E;IAC1E,yEAAyE;IACzE,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,GAAG,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,CAAC,KAA2B,EAAY,EAAE,CACxD,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1F,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACzC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,QAAQ,CAAC,IAAI,CACX,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,UAAU;cACzG,OAAO,UAAU,qFAAqF;cACtG,0GAA0G;cAC1G,0GAA0G;cAC1G,0GAA0G;cAC1G,4DAA4D,CAC/D,CAAC;IACJ,CAAC;IACD,uEAAuE;IACvE,wEAAwE;IACxE,+DAA+D;IAC/D,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,QAAQ,CAAC,IAAI,CACX,GAAG,UAAU,iBAAiB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,0DAA0D;cACzG,wGAAwG;cACxG,qGAAqG;cACrG,mDAAmD,CACtD,CAAC;IACJ,CAAC;IAED,OAAO;QACL,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,cAAc,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;QACnD,QAAQ;QACR,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzF,OAAO;QACP,WAAW;QACX,qBAAqB;QACrB,WAAW;QACX,QAAQ;KACT,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAC5B,OAA4B,EAC5B,OAAmB,EACnB,MAAsB,EAAE,EACP,EAAE;IACnB,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE;QAC5D,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,OAAO,GAAG,CAAC,CAAC;IACpD,CAAC,EAAE,GAAG,CAAC,CAAC;IAER,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC9B,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3D,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,OAAuB,EAAQ,EAAE;QAC7D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QACD,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACnE,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACxE,CAAC,CAAC;IAEF,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,gDAAgD,CAAC,CAAC;IAC5E,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1B,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IACtE,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QACvB,uEAAuE;QACvE,qCAAqC;QACrC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,oDAAoD,CAAC,CAAC;IACzG,CAAC;SAAM,CAAC;QACN,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,qBAAqB,CAAC,IAAI,kCAAkC,CAAC,CAAC;IACpH,CAAC;IAED,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1B,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,eAAe,MAAM,CAAC,WAAW,IAAI,sCAAsC,EAAE,CAAC,CAAC;IACzG,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QACjD,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,gBAAgB,YAAY,2BAA2B,CAAC,CAAC;IACrF,CAAC;IACD,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,eAAe,MAAM,CAAC,WAAW,aAAa,MAAM,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAE/G,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QAC9G,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,4CAA4C,CAAC,CAAC;IAC5F,CAAC;IAED,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1B,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACtC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1B,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACtC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,eAAe,MAAM,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;QACtE,CAAC,CAAC,qBAAqB;QACvB,CAAC,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,eAAe,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACnF,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,2CAA2C,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;IAErI,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1B,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;QAChD,OAAO,CAAC,CAAC;IACX,CAAC;IACD,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,WAAW,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAChH,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,OAAO,EAAE,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,8 @@ import type { CliStreams, CliEnvironment } from '../environment.ts';
|
|
|
2
2
|
import { type ParsedMemoryCommand } from '../parse.ts';
|
|
3
3
|
/**
|
|
4
4
|
* `stratus memory` — the operator's half of an agent's long-term memory.
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* The fleet console is meant to own the console view; this is the
|
|
6
|
+
* terminal half.
|
|
7
7
|
*
|
|
8
8
|
* `list` shows what an agent's store holds with the label each entry
|
|
9
9
|
* carries, because an operator cannot re-assert what they cannot see;
|
package/dist/commands/memory.js
CHANGED
|
@@ -6,8 +6,8 @@ import { memoryCommandWritesState } from "../parse.js";
|
|
|
6
6
|
import { loadServeRuntimeSelection } from "../trusted-config.js";
|
|
7
7
|
/**
|
|
8
8
|
* `stratus memory` — the operator's half of an agent's long-term memory.
|
|
9
|
-
*
|
|
10
|
-
*
|
|
9
|
+
* The fleet console is meant to own the console view; this is the
|
|
10
|
+
* terminal half.
|
|
11
11
|
*
|
|
12
12
|
* `list` shows what an agent's store holds with the label each entry
|
|
13
13
|
* carries, because an operator cannot re-assert what they cannot see;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedules.d.ts","sourceRoot":"","sources":["../../src/commands/schedules.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AA0H1D;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,GACvB,SAAS,sBAAsB,EAC/B,SAAS,UAAU,EACnB,MAAK,cAAmB,KACvB,OAAO,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"schedules.d.ts","sourceRoot":"","sources":["../../src/commands/schedules.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AA0H1D;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,GACvB,SAAS,sBAAsB,EAC/B,SAAS,UAAU,EACnB,MAAK,cAAmB,KACvB,OAAO,CAAC,MAAM,CAmChB,CAAC"}
|
|
@@ -149,7 +149,9 @@ export const runSchedules = async (command, streams, env = {}) => {
|
|
|
149
149
|
return 0;
|
|
150
150
|
}
|
|
151
151
|
for (const record of schedules) {
|
|
152
|
-
const destination = record.destination
|
|
152
|
+
const destination = record.destination
|
|
153
|
+
? ` → ${canonicalDestination(record.destination)}${record.destination.thread ? ` (thread ${record.destination.thread})` : ''}`
|
|
154
|
+
: '';
|
|
153
155
|
writeLine(streams.stdout, `${record.id} [${record.agentId}] ${describeCadence(record.cadence)}${destination}`);
|
|
154
156
|
writeLine(streams.stdout, ` next: ${record.nextFireAt ?? '(spent — awaiting cleanup)'}${record.lastFiredAt ? ` last: ${record.lastFiredAt}` : ''}`);
|
|
155
157
|
writeLine(streams.stdout, ` prompt: ${record.prompt}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedules.js","sourceRoot":"","sources":["../../src/commands/schedules.ts"],"names":[],"mappings":"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
|
|
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":"AA2CA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAoB,MAAM,mBAAmB,CAAC;AAQtF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAuBtD,eAAO,MAAM,QAAQ,GACnB,SAAS,kBAAkB,EAC3B,SAAS,UAAU,EACnB,MAAK,cAAmB,KACvB,OAAO,CAAC,MAAM,CA2EhB,CAAC"}
|
package/dist/commands/serve.js
CHANGED
|
@@ -6,9 +6,10 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
|
|
|
6
6
|
}
|
|
7
7
|
return path;
|
|
8
8
|
};
|
|
9
|
+
import { createFileLedger } from '@stratusagent/plugins';
|
|
9
10
|
import { autonomyDirectory } from "../autonomy.js";
|
|
10
11
|
import { createFileCommandWhitelist, createPermissionPolicy, describeCommandScope, describeOriginScope, describeToolGrant, } from '@stratusagent/permissions';
|
|
11
|
-
import { agentsDirPath, stratusHomePath, loadChannelCredentials, readProcessEnv, logsDirPath, resolveAgentApprovals, resolveAgentPrincipals, resolveAgentSlack, repairWorkspacesIfPending, runStateMigrations, servedRuntimes, discoverIgnoredUntrustedConfig, trustedConfigError, grantReadSerializer, grantWriteSerializer, } from '@stratusagent/state';
|
|
12
|
+
import { agentsDirPath, stratusHomePath, loadChannelCredentials, readProcessEnv, logsDirPath, createAgentWorkspaces, resolveAgentApprovals, resolveAgentPrincipals, resolveAgentSlack, repairWorkspacesIfPending, runStateMigrations, servedRuntimes, discoverIgnoredUntrustedConfig, trustedConfigError, grantReadSerializer, grantWriteSerializer, } from '@stratusagent/state';
|
|
12
13
|
import { createLogWriter, truncateRedirectLogs } from "../logs.js";
|
|
13
14
|
import { describePrincipals, describeApprovers } from "../approvals.js";
|
|
14
15
|
import { createOperatorCommands } from "../operator-commands.js";
|
|
@@ -18,6 +19,8 @@ import { writeLine } from "../io.js";
|
|
|
18
19
|
import { hostChannelClaimsFor, loadSlackAdapter, loadControlApi } from "../loaders.js";
|
|
19
20
|
import { companionsBehindMessage, readCompanions } from "../companions.js";
|
|
20
21
|
import { CLI_VERSION } from "../npm.js";
|
|
22
|
+
import { startupConfigFiles } from "../config-digest.js";
|
|
23
|
+
import { holdsForVersion, recordPromotedVersion } from "../promotion.js";
|
|
21
24
|
import { warnOnCredentialOverride, warnOnUntrustedConfig, warnOnIgnoredConfig } from "../runtime.js";
|
|
22
25
|
import { CONFIG_INVALID_EXIT_CODE, RESTART_EXIT_CODE, UNDRAINED_RESTART_EXIT_CODE, SUPERVISED_ENV, BOUND_API_PORT_ENV, defaultSupervisorLink, superviseRestarts, } from "../supervisor.js";
|
|
23
26
|
import { loadServeApprovals, loadServePrincipals, loadServeSlack, loadServeApi, loadServePlugins, loadServeRuntimeSelection, loadServeAgentMaxTurns, loadServeAutoContinue, loadServeMaxTurns, } from "../trusted-config.js";
|
|
@@ -129,7 +132,15 @@ const serveHeldHome = async (command, streams, env, createGateway) => {
|
|
|
129
132
|
}
|
|
130
133
|
void record({ ts: new Date().toISOString(), level: 'info', msg: line });
|
|
131
134
|
};
|
|
135
|
+
// What this start met, for `GET /health` and so for `stratus doctor`: a
|
|
136
|
+
// daemon that started on a broken config keeps running on it after the
|
|
137
|
+
// file is fixed, and doctor reading the file alone said "No problems".
|
|
138
|
+
const startupWarnings = [];
|
|
139
|
+
let starting = true;
|
|
132
140
|
const warn = (line) => {
|
|
141
|
+
if (starting) {
|
|
142
|
+
startupWarnings.push(line);
|
|
143
|
+
}
|
|
133
144
|
if (!jsonOut) {
|
|
134
145
|
writeLine(streams.stderr, `Warning: ${line}`);
|
|
135
146
|
}
|
|
@@ -174,6 +185,10 @@ const serveHeldHome = async (command, streams, env, createGateway) => {
|
|
|
174
185
|
// The approval policy and the Slack approver sets come from the same
|
|
175
186
|
// config block, resolved once here: the daemon must not answer "who can
|
|
176
187
|
// approve this" differently from "is anyone being asked at all".
|
|
188
|
+
// Digested just before the blocks below read them, so they name the bytes
|
|
189
|
+
// this daemon runs on: every file a start consults, present or not, so
|
|
190
|
+
// doctor can tell an edit, a new file, or a removed one apart from none.
|
|
191
|
+
const startupConfigs = await startupConfigFiles(command.configPath, env);
|
|
177
192
|
const approvalsConfig = await loadServeApprovals(env, command.configPath, warn);
|
|
178
193
|
// What the operator declared in approvals.commands, matched as scopes
|
|
179
194
|
// ahead of what was remembered, and reported by the control API so
|
|
@@ -250,6 +265,10 @@ const serveHeldHome = async (command, streams, env, createGateway) => {
|
|
|
250
265
|
...(apiConfig.publicUrl !== undefined ? { publicUrl: apiConfig.publicUrl } : {}),
|
|
251
266
|
grants: grantStore,
|
|
252
267
|
configCommands: (agentId) => operatorCommands.declaredFor(agentId),
|
|
268
|
+
startup: () => ({
|
|
269
|
+
warnings: [...startupWarnings],
|
|
270
|
+
configs: startupConfigs.map((file) => ({ ...file })),
|
|
271
|
+
}),
|
|
253
272
|
log,
|
|
254
273
|
warn,
|
|
255
274
|
});
|
|
@@ -263,6 +282,19 @@ const serveHeldHome = async (command, streams, env, createGateway) => {
|
|
|
263
282
|
+ 'Run `npm install -g @stratusagent/control-api` to bring it online; starting without it.');
|
|
264
283
|
}
|
|
265
284
|
}
|
|
285
|
+
// `--held` holds every start; `--hold-new-version` only a start of a
|
|
286
|
+
// version this home has not promoted yet, so an upgrade proves itself and
|
|
287
|
+
// a crash restart of the same version serves at once.
|
|
288
|
+
const held = command.held === true
|
|
289
|
+
|| (command.holdNewVersion === true && await holdsForVersion(env, CLI_VERSION));
|
|
290
|
+
// Held, the control API is the only way out: without one nothing could
|
|
291
|
+
// ever promote this daemon, and it would sit there answering nobody.
|
|
292
|
+
// Only a start that is actually held: a version already promoted serves
|
|
293
|
+
// at once, API or not, and must not be refused on a crash restart.
|
|
294
|
+
if (held && boundApi === undefined) {
|
|
295
|
+
throw new Error(`${command.held === true ? '--held' : '--hold-new-version'} needs the control API, which is how a held daemon is promoted (POST /api/v1/promote), `
|
|
296
|
+
+ 'and this daemon will not serve one (--no-api, api.enabled: false, or @stratusagent/control-api not installed).');
|
|
297
|
+
}
|
|
266
298
|
// Listening before anything else is awaited: what the supervisor hands
|
|
267
299
|
// this daemon is queued in the channel until then, and the API keeps it
|
|
268
300
|
// until it is serving.
|
|
@@ -316,9 +348,14 @@ const serveHeldHome = async (command, streams, env, createGateway) => {
|
|
|
316
348
|
...(principals.slackUsers ? { principals: principals.slackUsers } : {}),
|
|
317
349
|
...(principals.admit ? { admit: principals.admit } : {}),
|
|
318
350
|
replies: presentation.replies,
|
|
351
|
+
...(presentation.linkPreviews ? {} : { linkPreviews: false }),
|
|
319
352
|
...(homeChannels.length > 0 ? { homeChannels } : {}),
|
|
320
353
|
};
|
|
321
354
|
}),
|
|
355
|
+
attachmentStore: (() => {
|
|
356
|
+
const workspaces = createAgentWorkspaces(env);
|
|
357
|
+
return { workspaces, ledger: createFileLedger((id) => workspaces.forAgent(id), (id) => workspaces.prepare(id)) };
|
|
358
|
+
})(),
|
|
322
359
|
log,
|
|
323
360
|
warn,
|
|
324
361
|
}));
|
|
@@ -432,6 +469,8 @@ const serveHeldHome = async (command, streams, env, createGateway) => {
|
|
|
432
469
|
// names no origin is judged by its risk exactly as before.
|
|
433
470
|
const origins = {
|
|
434
471
|
whitelist: grantStore,
|
|
472
|
+
// Read through the resolver per call, like the external-content gate.
|
|
473
|
+
trustedDomainsFor: (agentId) => resolveAgentApprovals(approvalsConfig, agentId).trustedDomains ?? [],
|
|
435
474
|
onScopeRemembered: ({ agentId, scope }) => {
|
|
436
475
|
log(`${agentId}: ${describeOriginScope(scope)} is now acted on without asking`);
|
|
437
476
|
},
|
|
@@ -517,6 +556,8 @@ const serveHeldHome = async (command, streams, env, createGateway) => {
|
|
|
517
556
|
const gateway = createGateway({
|
|
518
557
|
env,
|
|
519
558
|
approvals,
|
|
559
|
+
...(held ? { held: true } : {}),
|
|
560
|
+
...(command.holdNewVersion === true ? { onPromoted: () => recordPromotedVersion(env, CLI_VERSION) } : {}),
|
|
520
561
|
onRestart: (outcome) => {
|
|
521
562
|
restart = outcome;
|
|
522
563
|
requestShutdown();
|
|
@@ -649,6 +690,7 @@ const serveHeldHome = async (command, streams, env, createGateway) => {
|
|
|
649
690
|
+ 'approval timeout and then be denied. Connect a Slack app for them, or run with --approvals headless.');
|
|
650
691
|
}
|
|
651
692
|
}
|
|
693
|
+
starting = false;
|
|
652
694
|
if (!jsonOut) {
|
|
653
695
|
writeLine(streams.stdout, 'Press Ctrl+C to stop.');
|
|
654
696
|
}
|