@songsid/agend 2.1.10 → 2.1.11-beta.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/dist/backend/antigravity.js +3 -2
- package/dist/backend/antigravity.js.map +1 -1
- package/dist/backend/claude-code.d.ts +7 -0
- package/dist/backend/claude-code.js +107 -3
- package/dist/backend/claude-code.js.map +1 -1
- package/dist/backend/cli-env-probe-worker.js +2 -10
- package/dist/backend/cli-env-probe-worker.js.map +1 -1
- package/dist/backend/cli-env-probe.d.ts +14 -0
- package/dist/backend/cli-env-probe.js +13 -0
- package/dist/backend/cli-env-probe.js.map +1 -0
- package/dist/backend/codex-metadata.d.ts +14 -0
- package/dist/backend/codex-metadata.js +70 -0
- package/dist/backend/codex-metadata.js.map +1 -0
- package/dist/backend/codex.d.ts +1 -2
- package/dist/backend/codex.js +112 -65
- package/dist/backend/codex.js.map +1 -1
- package/dist/backend/effort-metadata.d.ts +32 -0
- package/dist/backend/effort-metadata.js +21 -0
- package/dist/backend/effort-metadata.js.map +1 -0
- package/dist/backend/grok.js +3 -2
- package/dist/backend/grok.js.map +1 -1
- package/dist/backend/kiro.d.ts +3 -0
- package/dist/backend/kiro.js +19 -4
- package/dist/backend/kiro.js.map +1 -1
- package/dist/backend/muse.js +3 -2
- package/dist/backend/muse.js.map +1 -1
- package/dist/backend/opencode.d.ts +31 -4
- package/dist/backend/opencode.js +66 -23
- package/dist/backend/opencode.js.map +1 -1
- package/dist/backend/types.d.ts +14 -1
- package/dist/backend/types.js.map +1 -1
- package/dist/channel/adapters/discord.js +10 -2
- package/dist/channel/adapters/discord.js.map +1 -1
- package/dist/cli.js +48 -6
- package/dist/cli.js.map +1 -1
- package/dist/config.js +1 -0
- package/dist/config.js.map +1 -1
- package/dist/daemon.d.ts +24 -0
- package/dist/daemon.js +109 -12
- package/dist/daemon.js.map +1 -1
- package/dist/doctor.d.ts +3 -1
- package/dist/doctor.js +11 -0
- package/dist/doctor.js.map +1 -1
- package/dist/fleet-context.d.ts +2 -2
- package/dist/fleet-control-audit.d.ts +83 -0
- package/dist/fleet-control-audit.js +195 -0
- package/dist/fleet-control-audit.js.map +1 -0
- package/dist/fleet-manager.d.ts +45 -35
- package/dist/fleet-manager.js +327 -384
- package/dist/fleet-manager.js.map +1 -1
- package/dist/full-restart.js +2 -1
- package/dist/full-restart.js.map +1 -1
- package/dist/general-knowledge/skills/fleet-config/SKILL.md +3 -2
- package/dist/host-memory.d.ts +16 -0
- package/dist/host-memory.js +32 -0
- package/dist/host-memory.js.map +1 -0
- package/dist/instance-lifecycle.js +4 -1
- package/dist/instance-lifecycle.js.map +1 -1
- package/dist/locale.js +62 -16
- package/dist/locale.js.map +1 -1
- package/dist/log-tail.d.ts +34 -0
- package/dist/log-tail.js +66 -0
- package/dist/log-tail.js.map +1 -0
- package/dist/logger.d.ts +15 -0
- package/dist/logger.js +89 -1
- package/dist/logger.js.map +1 -1
- package/dist/login-controller.d.ts +1 -3
- package/dist/login-controller.js +2 -6
- package/dist/login-controller.js.map +1 -1
- package/dist/login-flows.d.ts +0 -8
- package/dist/login-flows.js +1 -11
- package/dist/login-flows.js.map +1 -1
- package/dist/login-manager.d.ts +5 -20
- package/dist/login-manager.js +0 -53
- package/dist/login-manager.js.map +1 -1
- package/dist/login-window-lock.d.ts +1 -1
- package/dist/login-window-lock.js +1 -1
- package/dist/memory-pressure.d.ts +41 -0
- package/dist/memory-pressure.js +117 -0
- package/dist/memory-pressure.js.map +1 -0
- package/dist/probe-worker-pool.d.ts +28 -0
- package/dist/probe-worker-pool.js +129 -0
- package/dist/probe-worker-pool.js.map +1 -0
- package/dist/resource-report.d.ts +31 -0
- package/dist/resource-report.js +209 -0
- package/dist/resource-report.js.map +1 -0
- package/dist/rollout-index.d.ts +66 -0
- package/dist/rollout-index.js +124 -0
- package/dist/rollout-index.js.map +1 -0
- package/dist/slash-authz.d.ts +50 -0
- package/dist/slash-authz.js +19 -0
- package/dist/slash-authz.js.map +1 -0
- package/dist/spawn-gate.d.ts +13 -1
- package/dist/spawn-gate.js +108 -39
- package/dist/spawn-gate.js.map +1 -1
- package/dist/storm-window.d.ts +42 -0
- package/dist/storm-window.js +84 -1
- package/dist/storm-window.js.map +1 -1
- package/dist/topic-commands.d.ts +29 -2
- package/dist/topic-commands.js +77 -21
- package/dist/topic-commands.js.map +1 -1
- package/dist/transcript-sources.d.ts +21 -4
- package/dist/transcript-sources.js +55 -41
- package/dist/transcript-sources.js.map +1 -1
- package/dist/types.d.ts +5 -1
- package/dist/ui/settings.html +14 -13
- package/package.json +1 -1
package/dist/doctor.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { type SpawnSyncReturns } from "node:child_process";
|
|
2
2
|
import type { ServiceInfo } from "./service-installer.js";
|
|
3
|
+
import { type ResourceReport } from "./resource-report.js";
|
|
3
4
|
import { type NetworkFamilyState } from "./network-family.js";
|
|
4
5
|
export type DoctorCheckStatus = "ok" | "warn" | "error";
|
|
5
6
|
export interface DoctorCheck {
|
|
6
|
-
section: "Prerequisites" | "Service" | "Fleet" | "Channel gateways" | "MCP IPC";
|
|
7
|
+
section: "Prerequisites" | "Service" | "Fleet" | "Channel gateways" | "MCP IPC" | "Resources";
|
|
7
8
|
status: DoctorCheckStatus;
|
|
8
9
|
label: string;
|
|
9
10
|
detail: string;
|
|
@@ -20,6 +21,7 @@ interface DoctorDeps {
|
|
|
20
21
|
processAlive: (pid: number) => boolean;
|
|
21
22
|
connectSocket: (path: string) => Promise<boolean>;
|
|
22
23
|
networkFamily: () => NetworkFamilyState;
|
|
24
|
+
collectResources: (dataDir: string) => Promise<ResourceReport>;
|
|
23
25
|
fetchFleetHealth: (port: number) => Promise<{
|
|
24
26
|
adapters?: {
|
|
25
27
|
details?: Record<string, {
|
package/dist/doctor.js
CHANGED
|
@@ -8,6 +8,7 @@ import { hasPausedMarker } from "./pause-marker.js";
|
|
|
8
8
|
import { getTmuxSessionName, getTmuxSocketName } from "./paths.js";
|
|
9
9
|
import { BACKENDS } from "./setup-wizard.js";
|
|
10
10
|
import { t } from "./locale.js";
|
|
11
|
+
import { collectResourceReport, resourceChecks } from "./resource-report.js";
|
|
11
12
|
import { AGEND_NETWORK_FAMILY_ATTEMPT_TIMEOUT_MS, getNetworkFamilyState, } from "./network-family.js";
|
|
12
13
|
const defaultDeps = {
|
|
13
14
|
env: process.env,
|
|
@@ -24,6 +25,7 @@ const defaultDeps = {
|
|
|
24
25
|
},
|
|
25
26
|
connectSocket: connectUnixSocket,
|
|
26
27
|
networkFamily: getNetworkFamilyState,
|
|
28
|
+
collectResources: collectResourceReport,
|
|
27
29
|
fetchFleetHealth: async (port) => {
|
|
28
30
|
const response = await fetch(`http://127.0.0.1:${port}/health`, { signal: AbortSignal.timeout(3000) });
|
|
29
31
|
return await response.json();
|
|
@@ -231,6 +233,14 @@ export async function collectDoctorReport(dataDir, service, overrides = {}) {
|
|
|
231
233
|
add("MCP IPC", ipcProblems.length === 0 ? "ok" : "error", "channel.sock", ipcProblems.length === 0
|
|
232
234
|
? t("doctor.ipc_ok", connected, runningNames.length)
|
|
233
235
|
: t("doctor.ipc_failed", connected, runningNames.length, ipcProblems.join(", ")));
|
|
236
|
+
try {
|
|
237
|
+
for (const check of resourceChecks(await deps.collectResources(dataDir))) {
|
|
238
|
+
add("Resources", check.status, check.label, check.detail);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
catch {
|
|
242
|
+
add("Resources", "warn", t("resources.title"), t("resources.report_unknown"));
|
|
243
|
+
}
|
|
234
244
|
return {
|
|
235
245
|
checks,
|
|
236
246
|
errors: checks.filter(check => check.status === "error").length,
|
|
@@ -244,6 +254,7 @@ export function formatDoctorReport(report) {
|
|
|
244
254
|
Fleet: t("doctor.section.fleet"),
|
|
245
255
|
"Channel gateways": t("doctor.section.gateways"),
|
|
246
256
|
"MCP IPC": t("doctor.section.ipc"),
|
|
257
|
+
Resources: t("resources.title"),
|
|
247
258
|
};
|
|
248
259
|
const lines = ["", ` \x1b[1m${t("doctor.title")}\x1b[0m`];
|
|
249
260
|
let section;
|
package/dist/doctor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"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"}
|
package/dist/fleet-context.d.ts
CHANGED
|
@@ -87,6 +87,8 @@ export interface FleetContext {
|
|
|
87
87
|
cancelInstance(instanceName: string): boolean;
|
|
88
88
|
/** Explicit YAML allowlist entries are fleet administrators. Runtime-paired/open users are not. */
|
|
89
89
|
isFleetAdmin(userId: string, adapterId?: string): boolean;
|
|
90
|
+
/** Whether the adapter has any fleet admin at all (an empty allowlist turns the admin commands off). */
|
|
91
|
+
hasFleetAdmins(adapterId?: string): boolean;
|
|
90
92
|
changeInstancePauseState(name: string, action: "pause" | "wake"): Promise<"paused" | "awake" | "not_idle">;
|
|
91
93
|
startInstance(name: string, config: InstanceConfig, topicMode: boolean): Promise<void>;
|
|
92
94
|
stopInstance(name: string): Promise<void>;
|
|
@@ -143,8 +145,6 @@ export interface FleetContext {
|
|
|
143
145
|
skipAuthCheck?: boolean;
|
|
144
146
|
tokenPresent?: boolean;
|
|
145
147
|
}): Promise<string | null>;
|
|
146
|
-
/** Paste admin-supplied text (auth code / start URL) into the login window. */
|
|
147
|
-
loginSubmitInput?(text: string): Promise<string>;
|
|
148
148
|
/** Abort the active login session. */
|
|
149
149
|
cancelLoginSession?(): Promise<string>;
|
|
150
150
|
/** Human-readable effective model for an instance (resolves inherited defaults). */
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Who stopped / restarted / updated the fleet (#1120).
|
|
3
|
+
*
|
|
4
|
+
* 2026-10-03 01:19 an unplanned `agend restart` ran from inside an agent's shell
|
|
5
|
+
* (a backtick in a `gh --body "..."` was command-substituted) and the only way
|
|
6
|
+
* to find the source was journal timing plus a kiro transcript: the fleet.log
|
|
7
|
+
* that would have said so is truncated by the restart itself. So the CLI writes
|
|
8
|
+
* one line to its OWN file before it acts, and a fleet-wide stop / restart /
|
|
9
|
+
* update started from a fleet agent's session — or from a test runner — has to
|
|
10
|
+
* be confirmed or is refused.
|
|
11
|
+
*
|
|
12
|
+
* Observability and a guard rail only: this changes nothing about delivery,
|
|
13
|
+
* authorisation or what a confirmed command does.
|
|
14
|
+
*/
|
|
15
|
+
export declare const AUDIT_FILE = "restart-audit.log";
|
|
16
|
+
/** Set by the fleet's own spawn sites: an internal, already-authorised call. */
|
|
17
|
+
export declare const ORIGIN_ENV = "AGEND_RESTART_ORIGIN";
|
|
18
|
+
/** The environment for a child the fleet spawns to stop / restart / update itself. */
|
|
19
|
+
export declare function withOrigin(origin: string, env?: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
|
|
20
|
+
/** Escape hatch for a test that really means to run the CLI against a scratch fleet (exactly "1"). */
|
|
21
|
+
export declare const ALLOW_TEST_ENV = "AGEND_ALLOW_TEST_FLEET_CONTROL";
|
|
22
|
+
export type FleetControlAction = "fleet-stop" | "fleet-restart" | "fleet-restart-reload" | "stop" | "restart" | "update" | "instance-stop" | "instance-restart";
|
|
23
|
+
export interface CallerProcess {
|
|
24
|
+
pid: number;
|
|
25
|
+
command: string;
|
|
26
|
+
}
|
|
27
|
+
export interface CallerInfo {
|
|
28
|
+
pid: number;
|
|
29
|
+
/** This process first, then its parents up to the init process (bounded). */
|
|
30
|
+
chain: CallerProcess[];
|
|
31
|
+
cwd: string;
|
|
32
|
+
user: string;
|
|
33
|
+
/** stdin is a terminal: an interactive shell, not a pipe or a command substitution. */
|
|
34
|
+
tty: boolean;
|
|
35
|
+
/** AGEND_INSTANCE_NAME: set in every fleet agent's session, and inherited by everything it runs. */
|
|
36
|
+
instance: string | null;
|
|
37
|
+
/** AGEND_RESTART_ORIGIN: the fleet's own spawn site, when it was one. */
|
|
38
|
+
origin: string | null;
|
|
39
|
+
ssh: boolean;
|
|
40
|
+
}
|
|
41
|
+
export type Verdict = {
|
|
42
|
+
ok: true;
|
|
43
|
+
via: "interactive" | "yes" | "origin";
|
|
44
|
+
} | {
|
|
45
|
+
ok: false;
|
|
46
|
+
reason: "agent-session" | "test-runner";
|
|
47
|
+
};
|
|
48
|
+
/** Pure: may this call go ahead? `yes` is the explicit `--yes`. */
|
|
49
|
+
export declare function judgeFleetControl(env: NodeJS.ProcessEnv, yes: boolean): Verdict;
|
|
50
|
+
export declare function describeCaller(env?: NodeJS.ProcessEnv, maxDepth?: number): CallerInfo;
|
|
51
|
+
export interface AuditEntry {
|
|
52
|
+
ts: string;
|
|
53
|
+
action: FleetControlAction;
|
|
54
|
+
target?: string;
|
|
55
|
+
outcome: "allowed" | "refused";
|
|
56
|
+
detail?: string;
|
|
57
|
+
caller: CallerInfo;
|
|
58
|
+
}
|
|
59
|
+
/** Best effort: an audit line must never be the reason a restart fails. */
|
|
60
|
+
export declare function appendAudit(dataDir: string, entry: AuditEntry): void;
|
|
61
|
+
/** The newest entry written within `withinMs`, for the fleet to name in its own log. */
|
|
62
|
+
export declare function readRecentAudit(dataDir: string, withinMs: number, now?: number): AuditEntry | null;
|
|
63
|
+
/** What the fleet writes into its own log when a signal arrives: who asked, if the CLI said so lately. */
|
|
64
|
+
export declare function describeSignalSource(dataDir: string, signal: string, now?: number): string;
|
|
65
|
+
/** One-line form for a log message. */
|
|
66
|
+
export declare function summariseCaller(entry: AuditEntry): string;
|
|
67
|
+
export declare function refusalMessage(action: FleetControlAction, reason: "agent-session" | "test-runner", instance: string | null): string;
|
|
68
|
+
/**
|
|
69
|
+
* The CLI's gate: record the call, then let it through or refuse it. Returns
|
|
70
|
+
* whether to go ahead; the caller prints nothing and exits on `false`.
|
|
71
|
+
*/
|
|
72
|
+
export declare function gateFleetControl(dataDir: string, action: FleetControlAction, opts: {
|
|
73
|
+
yes?: boolean;
|
|
74
|
+
target?: string;
|
|
75
|
+
}, env?: NodeJS.ProcessEnv, report?: (message: string) => void): boolean;
|
|
76
|
+
/** Instance-level stop/restart: recorded for the trail, never blocked (agents do this routinely). */
|
|
77
|
+
export declare function recordInstanceControl(dataDir: string, action: "instance-stop" | "instance-restart", target: string, env?: NodeJS.ProcessEnv): void;
|
|
78
|
+
/**
|
|
79
|
+
* The fleet's own entry points (a /restart or /update slash command, the full-restart
|
|
80
|
+
* helper): written by the fleet process, so the signal or child it sends next can be
|
|
81
|
+
* traced to the person who asked, not just to "the fleet itself".
|
|
82
|
+
*/
|
|
83
|
+
export declare function recordInternalRequest(dataDir: string, action: FleetControlAction, origin: string, env?: NodeJS.ProcessEnv): void;
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import { appendFileSync, existsSync, readFileSync, renameSync, statSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { readProcessCommandLine } from "./fleet-lock.js";
|
|
4
|
+
/**
|
|
5
|
+
* Who stopped / restarted / updated the fleet (#1120).
|
|
6
|
+
*
|
|
7
|
+
* 2026-10-03 01:19 an unplanned `agend restart` ran from inside an agent's shell
|
|
8
|
+
* (a backtick in a `gh --body "..."` was command-substituted) and the only way
|
|
9
|
+
* to find the source was journal timing plus a kiro transcript: the fleet.log
|
|
10
|
+
* that would have said so is truncated by the restart itself. So the CLI writes
|
|
11
|
+
* one line to its OWN file before it acts, and a fleet-wide stop / restart /
|
|
12
|
+
* update started from a fleet agent's session — or from a test runner — has to
|
|
13
|
+
* be confirmed or is refused.
|
|
14
|
+
*
|
|
15
|
+
* Observability and a guard rail only: this changes nothing about delivery,
|
|
16
|
+
* authorisation or what a confirmed command does.
|
|
17
|
+
*/
|
|
18
|
+
export const AUDIT_FILE = "restart-audit.log";
|
|
19
|
+
const AUDIT_MAX_BYTES = 512 * 1024;
|
|
20
|
+
/** Set by the fleet's own spawn sites: an internal, already-authorised call. */
|
|
21
|
+
export const ORIGIN_ENV = "AGEND_RESTART_ORIGIN";
|
|
22
|
+
/** The environment for a child the fleet spawns to stop / restart / update itself. */
|
|
23
|
+
export function withOrigin(origin, env = process.env) {
|
|
24
|
+
return { ...env, [ORIGIN_ENV]: origin };
|
|
25
|
+
}
|
|
26
|
+
/** Escape hatch for a test that really means to run the CLI against a scratch fleet (exactly "1"). */
|
|
27
|
+
export const ALLOW_TEST_ENV = "AGEND_ALLOW_TEST_FLEET_CONTROL";
|
|
28
|
+
/** Pure: may this call go ahead? `yes` is the explicit `--yes`. */
|
|
29
|
+
export function judgeFleetControl(env, yes) {
|
|
30
|
+
// First, and even for the fleet's own spawn sites: a handler a test drives for real
|
|
31
|
+
// must not reach the live fleet just because it set its origin (fleet decision bd0c88aa).
|
|
32
|
+
const underTestRunner = !!env.VITEST || env.NODE_ENV === "test";
|
|
33
|
+
if (underTestRunner && env[ALLOW_TEST_ENV] !== "1")
|
|
34
|
+
return { ok: false, reason: "test-runner" };
|
|
35
|
+
const origin = (env[ORIGIN_ENV] ?? "").trim();
|
|
36
|
+
if (origin)
|
|
37
|
+
return { ok: true, via: "origin" };
|
|
38
|
+
if ((env.AGEND_INSTANCE_NAME ?? "").trim() && !yes)
|
|
39
|
+
return { ok: false, reason: "agent-session" };
|
|
40
|
+
return { ok: true, via: yes ? "yes" : "interactive" };
|
|
41
|
+
}
|
|
42
|
+
function parentPid(pid) {
|
|
43
|
+
try {
|
|
44
|
+
// "pid (comm) S ppid ..." — comm may contain spaces and parentheses.
|
|
45
|
+
const stat = readFileSync(`/proc/${pid}/stat`, "utf8");
|
|
46
|
+
const rest = stat.slice(stat.lastIndexOf(")") + 2).split(" ");
|
|
47
|
+
const ppid = Number.parseInt(rest[1] ?? "", 10);
|
|
48
|
+
return Number.isInteger(ppid) ? ppid : 0;
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
return 0;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
export function describeCaller(env = process.env, maxDepth = 6) {
|
|
55
|
+
const chain = [];
|
|
56
|
+
let pid = process.pid;
|
|
57
|
+
for (let depth = 0; depth < maxDepth && pid > 0; depth++) {
|
|
58
|
+
chain.push({ pid, command: readProcessCommandLine(pid).slice(0, 300) });
|
|
59
|
+
const next = parentPid(pid);
|
|
60
|
+
if (next <= 1 || next === pid)
|
|
61
|
+
break;
|
|
62
|
+
pid = next;
|
|
63
|
+
}
|
|
64
|
+
let user = "";
|
|
65
|
+
try {
|
|
66
|
+
user = env.USER ?? env.LOGNAME ?? "";
|
|
67
|
+
}
|
|
68
|
+
catch { /* ignore */ }
|
|
69
|
+
return {
|
|
70
|
+
pid: process.pid,
|
|
71
|
+
chain,
|
|
72
|
+
cwd: (() => { try {
|
|
73
|
+
return process.cwd();
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
return "";
|
|
77
|
+
} })(),
|
|
78
|
+
user,
|
|
79
|
+
tty: !!process.stdin.isTTY,
|
|
80
|
+
instance: (env.AGEND_INSTANCE_NAME ?? "").trim() || null,
|
|
81
|
+
origin: (env[ORIGIN_ENV] ?? "").trim() || null,
|
|
82
|
+
ssh: !!(env.SSH_CONNECTION || env.SSH_TTY),
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
/** Best effort: an audit line must never be the reason a restart fails. */
|
|
86
|
+
export function appendAudit(dataDir, entry) {
|
|
87
|
+
try {
|
|
88
|
+
const path = join(dataDir, AUDIT_FILE);
|
|
89
|
+
try {
|
|
90
|
+
if (existsSync(path) && statSync(path).size > AUDIT_MAX_BYTES)
|
|
91
|
+
renameSync(path, `${path}.1`);
|
|
92
|
+
}
|
|
93
|
+
catch { /* rotation is a nicety */ }
|
|
94
|
+
appendFileSync(path, `${JSON.stringify(entry)}\n`, { mode: 0o600 });
|
|
95
|
+
}
|
|
96
|
+
catch { /* unwritable data dir */ }
|
|
97
|
+
}
|
|
98
|
+
/** The newest entry written within `withinMs`, for the fleet to name in its own log. */
|
|
99
|
+
export function readRecentAudit(dataDir, withinMs, now = Date.now()) {
|
|
100
|
+
try {
|
|
101
|
+
const lines = readFileSync(join(dataDir, AUDIT_FILE), "utf8").trimEnd().split("\n");
|
|
102
|
+
for (let i = lines.length - 1; i >= 0 && i >= lines.length - 20; i--) {
|
|
103
|
+
try {
|
|
104
|
+
const entry = JSON.parse(lines[i]);
|
|
105
|
+
if (entry.outcome !== "allowed")
|
|
106
|
+
continue;
|
|
107
|
+
// A routine instance stop/restart sends no signal to the fleet process: naming it
|
|
108
|
+
// would blame the wrong request for a SIGUSR1/SIGTERM it did not cause.
|
|
109
|
+
if (entry.action === "instance-stop" || entry.action === "instance-restart")
|
|
110
|
+
continue;
|
|
111
|
+
const age = now - Date.parse(entry.ts);
|
|
112
|
+
if (age >= 0 && age <= withinMs)
|
|
113
|
+
return entry;
|
|
114
|
+
}
|
|
115
|
+
catch { /* a torn line */ }
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
catch { /* no audit file yet */ }
|
|
119
|
+
return null;
|
|
120
|
+
}
|
|
121
|
+
/** What the fleet writes into its own log when a signal arrives: who asked, if the CLI said so lately. */
|
|
122
|
+
export function describeSignalSource(dataDir, signal, now = Date.now()) {
|
|
123
|
+
const entry = readRecentAudit(dataDir, 2 * 60_000, now);
|
|
124
|
+
return entry
|
|
125
|
+
? `${signal}: requested by ${summariseCaller(entry)} at ${entry.ts}`
|
|
126
|
+
: `${signal}: no fleet-control request recorded in the last 2 minutes (a service manager, \`kill\`, or a program that signals the process directly)`;
|
|
127
|
+
}
|
|
128
|
+
/** One-line form for a log message. */
|
|
129
|
+
export function summariseCaller(entry) {
|
|
130
|
+
const parent = entry.caller.chain[1];
|
|
131
|
+
return [
|
|
132
|
+
`${entry.action}${entry.target ? ` ${entry.target}` : ""}`,
|
|
133
|
+
entry.caller.instance ? `from agent session ${entry.caller.instance}` : null,
|
|
134
|
+
entry.caller.origin ? `origin ${entry.caller.origin}` : null,
|
|
135
|
+
parent ? `parent pid ${parent.pid} (${parent.command.slice(0, 120)})` : null,
|
|
136
|
+
].filter(Boolean).join(", ");
|
|
137
|
+
}
|
|
138
|
+
export function refusalMessage(action, reason, instance) {
|
|
139
|
+
if (reason === "test-runner") {
|
|
140
|
+
return `Refusing \`agend ${commandOf(action)}\`: it was started from a test runner and would act on the real fleet. `
|
|
141
|
+
+ `Stub the call, or set ${ALLOW_TEST_ENV}=1 if this really targets a scratch fleet.`;
|
|
142
|
+
}
|
|
143
|
+
return `Refusing \`agend ${commandOf(action)}\`: it was started from the fleet agent session "${instance}", and this stops the whole fleet and every instance in it.\n`
|
|
144
|
+
+ `If that is what you mean, run it again with --yes. If you did not mean to run it at all, a backtick or $(...) inside a quoted shell argument may have executed it.`;
|
|
145
|
+
}
|
|
146
|
+
function commandOf(action) {
|
|
147
|
+
switch (action) {
|
|
148
|
+
case "fleet-stop": return "fleet stop";
|
|
149
|
+
case "fleet-restart": return "fleet restart";
|
|
150
|
+
case "fleet-restart-reload": return "fleet restart --reload";
|
|
151
|
+
default: return action.replace("instance-", "fleet ");
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* The CLI's gate: record the call, then let it through or refuse it. Returns
|
|
156
|
+
* whether to go ahead; the caller prints nothing and exits on `false`.
|
|
157
|
+
*/
|
|
158
|
+
export function gateFleetControl(dataDir, action, opts, env = process.env, report = message => console.error(message)) {
|
|
159
|
+
const caller = describeCaller(env);
|
|
160
|
+
const verdict = judgeFleetControl(env, !!opts.yes);
|
|
161
|
+
appendAudit(dataDir, {
|
|
162
|
+
ts: new Date().toISOString(),
|
|
163
|
+
action,
|
|
164
|
+
...(opts.target ? { target: opts.target } : {}),
|
|
165
|
+
outcome: verdict.ok ? "allowed" : "refused",
|
|
166
|
+
...(verdict.ok ? { detail: verdict.via } : { detail: verdict.reason }),
|
|
167
|
+
caller,
|
|
168
|
+
});
|
|
169
|
+
// The origin marker authorises THIS command only. Left in the environment it would be
|
|
170
|
+
// inherited by the replacement fleet the command starts, and by every agent that fleet
|
|
171
|
+
// runs: a permanent exemption from the confirmation (#1158 review).
|
|
172
|
+
delete env[ORIGIN_ENV];
|
|
173
|
+
if (verdict.ok)
|
|
174
|
+
return true;
|
|
175
|
+
report(refusalMessage(action, verdict.reason, caller.instance));
|
|
176
|
+
return false;
|
|
177
|
+
}
|
|
178
|
+
/** Instance-level stop/restart: recorded for the trail, never blocked (agents do this routinely). */
|
|
179
|
+
export function recordInstanceControl(dataDir, action, target, env = process.env) {
|
|
180
|
+
appendAudit(dataDir, {
|
|
181
|
+
ts: new Date().toISOString(), action, target, outcome: "allowed", caller: describeCaller(env),
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* The fleet's own entry points (a /restart or /update slash command, the full-restart
|
|
186
|
+
* helper): written by the fleet process, so the signal or child it sends next can be
|
|
187
|
+
* traced to the person who asked, not just to "the fleet itself".
|
|
188
|
+
*/
|
|
189
|
+
export function recordInternalRequest(dataDir, action, origin, env = process.env) {
|
|
190
|
+
appendAudit(dataDir, {
|
|
191
|
+
ts: new Date().toISOString(), action, outcome: "allowed", detail: "origin",
|
|
192
|
+
caller: describeCaller(withOrigin(origin, env)),
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
//# sourceMappingURL=fleet-control-audit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fleet-control-audit.js","sourceRoot":"","sources":["../src/fleet-control-audit.ts"],"names":[],"mappings":"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"}
|
package/dist/fleet-manager.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type FleetMemory } from "./process-memory.js";
|
|
2
|
+
import { MemoryPressure, type MemoryPressureSnapshot } from "./memory-pressure.js";
|
|
2
3
|
import { ReplyDeduper } from "./reply-dedup.js";
|
|
3
4
|
import type { FleetConfig, RawFleetConfig, InstanceConfig } from "./types.js";
|
|
4
5
|
import { type DeliveryStatus, type GuildEmoji, type GuildEmojiGroup, type ResolvedStatusEmojis } from "./status-emojis.js";
|
|
@@ -123,6 +124,7 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
|
|
|
123
124
|
readonly lifecycle: InstanceLifecycle;
|
|
124
125
|
readonly stormWindow: StormWindow;
|
|
125
126
|
readonly spawnGate: SpawnGate;
|
|
127
|
+
readonly memoryPressure: MemoryPressure;
|
|
126
128
|
/** Fleet-level backend reachability memory (fed by pty_error / startup panes). */
|
|
127
129
|
readonly backendOutage: BackendOutageTracker;
|
|
128
130
|
/** Stable for this FleetManager OS-process lifetime; Daemon objects have their own boot IDs. */
|
|
@@ -338,6 +340,11 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
|
|
|
338
340
|
private watchdogTimer;
|
|
339
341
|
private startedAt;
|
|
340
342
|
private stormOpenNotifyTimer;
|
|
343
|
+
private memoryLogAt;
|
|
344
|
+
private memoryDebugAt;
|
|
345
|
+
private memoryLogLevel;
|
|
346
|
+
private memoryNoticeAt;
|
|
347
|
+
private memoryNoticeLevel;
|
|
341
348
|
private mirrorBuffer;
|
|
342
349
|
private mirrorTimer;
|
|
343
350
|
private sseClients;
|
|
@@ -410,8 +417,12 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
|
|
|
410
417
|
private dispatchDurableDelivery;
|
|
411
418
|
private waitForDurableLaneRelease;
|
|
412
419
|
private spawnConcurrency;
|
|
420
|
+
/** Separate cooldown: changing measurements must not create new text-throttle keys. */
|
|
421
|
+
private reportMemoryPressure;
|
|
413
422
|
/** Wire the one fleet-wide storm into notification and recovery surfaces. */
|
|
414
423
|
private bindStormWindowEvents;
|
|
424
|
+
/** What the gate allows while any storm window is open (see SpawnGate.pump). */
|
|
425
|
+
private stormWindowLossRecoveryConcurrency;
|
|
415
426
|
private formatStormDelay;
|
|
416
427
|
stormSuppressed(kind: string): boolean;
|
|
417
428
|
private handleSighup;
|
|
@@ -464,6 +475,9 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
|
|
|
464
475
|
getSysInfo(): import("./fleet-context.js").SysInfo;
|
|
465
476
|
/** Load fleet.yaml and build routing table */
|
|
466
477
|
loadConfig(configPath: string): FleetConfig;
|
|
478
|
+
private relayLoginModeWarned;
|
|
479
|
+
/** `login.mode: relay` was removed (#1139). Still accepted so an upgrade cannot stop a fleet from starting. */
|
|
480
|
+
private warnAboutRemovedLoginMode;
|
|
467
481
|
/**
|
|
468
482
|
* A channel's configurable bot_token_env is an env-key writer too. Refuse
|
|
469
483
|
* an overlap with a registry API key (or a process-reserved key) before the
|
|
@@ -508,6 +522,10 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
|
|
|
508
522
|
*/
|
|
509
523
|
private isModelAdmin;
|
|
510
524
|
private handlePauseWakeSlash;
|
|
525
|
+
/** SIGUSR2: restart the instances inside this process. Names who asked (#1120). */
|
|
526
|
+
private onGracefulRestartSignal;
|
|
527
|
+
/** SIGUSR1: full process reload. Names who asked (#1120). */
|
|
528
|
+
private onFullRestartSignal;
|
|
511
529
|
private handleUpdateSlash;
|
|
512
530
|
private handleRestartSlash;
|
|
513
531
|
private handleTipsSlash;
|
|
@@ -624,6 +642,21 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
|
|
|
624
642
|
deliverToInstance(instanceName: string, payload: Record<string, unknown>, options?: DeliveryOptions): Promise<boolean | void>;
|
|
625
643
|
/** Fleet admin is an explicit config allowlist entry, not merely an open/paired user. */
|
|
626
644
|
isFleetAdmin(userId: string, adapterId?: string): boolean;
|
|
645
|
+
/** Whether this adapter has any fleet admin at all (an empty allowlist means the admin commands are off). */
|
|
646
|
+
hasFleetAdmins(adapterId?: string): boolean;
|
|
647
|
+
/**
|
|
648
|
+
* The one question the privileged commands (/update, /doctor, /dashboard, /collab) ask: may THIS caller,
|
|
649
|
+
* through THIS adapter, run it. `disabled` is "nobody can" — an empty list — and is told apart from
|
|
650
|
+
* `denied` only so the reply can say so. An empty list never means "everyone": these commands used to read
|
|
651
|
+
* the primary channel's list and treat empty as open, so on a fleet that had not set one anyone who could
|
|
652
|
+
* type a slash command could `/update` the host.
|
|
653
|
+
*/
|
|
654
|
+
fleetAdminGate(userId: string, adapterId?: string): "ok" | "disabled" | "denied";
|
|
655
|
+
/**
|
|
656
|
+
* The door every Discord slash command goes through (src/slash-authz.ts has the rule and the reasoning).
|
|
657
|
+
* Answers the caller itself when it refuses, so a refused command costs one reply and does nothing else.
|
|
658
|
+
*/
|
|
659
|
+
private authorizeSlash;
|
|
627
660
|
/** Phase 2: delivery_worker for a target (instance override → fleet default → wake_only). */
|
|
628
661
|
deliveryWorkerMode(target: string): ReturnType<typeof resolveDeliveryWorkerMode>;
|
|
629
662
|
/** Active instances mid-restart: they keep their warm slot through the stop → replacement gap. */
|
|
@@ -893,6 +926,7 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
|
|
|
893
926
|
* reported separately because they differ by ~60x and only one of them can
|
|
894
927
|
* show a fleet-manager leak. */
|
|
895
928
|
memory: FleetMemory;
|
|
929
|
+
hostMemory: MemoryPressureSnapshot;
|
|
896
930
|
problems: string[];
|
|
897
931
|
};
|
|
898
932
|
/** Start the primary adapter (backward-compatible, sets this.adapter) */
|
|
@@ -1205,6 +1239,9 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
|
|
|
1205
1239
|
private pendingCliEnvProbes;
|
|
1206
1240
|
/** Forced vendor catalog refreshes are separate flights, but sysinfo joins either flight. */
|
|
1207
1241
|
private pendingVendorCliEnvProbes;
|
|
1242
|
+
private pendingInstanceModelProbes;
|
|
1243
|
+
private readonly cliEnvProbePool;
|
|
1244
|
+
private cliEnvProbeEpoch;
|
|
1208
1245
|
/**
|
|
1209
1246
|
* The status emojis for an instance (#1005): its own `status_emojis`, then
|
|
1210
1247
|
* its channel's `options.status_emojis`, then the platform built-in. An
|
|
@@ -1472,7 +1509,7 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
|
|
|
1472
1509
|
private receiveAdapterCallback;
|
|
1473
1510
|
/**
|
|
1474
1511
|
* A button from a prompt kind that no longer exists (#1131: `/install-cli`'s
|
|
1475
|
-
* picker and its "sign in now?" prompt). Still on screen after an upgrade;
|
|
1512
|
+
* picker and its "sign in now?" prompt; #1139: the relay login's provider picker). Still on screen after an upgrade;
|
|
1476
1513
|
* a click gets the expired-prompt treatment — a private notice, the buttons
|
|
1477
1514
|
* collapsed — instead of nothing.
|
|
1478
1515
|
*/
|
|
@@ -1698,16 +1735,11 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
|
|
|
1698
1735
|
private isDeliveryEpochCurrent;
|
|
1699
1736
|
/** Invalidate work queued before a user cancel and wake idle-gate waiters. */
|
|
1700
1737
|
private cancelPendingDeliveries;
|
|
1701
|
-
|
|
1702
|
-
/**
|
|
1703
|
-
* Web-terminal login (v2.1.5 default, `login.mode: web`). The relay code
|
|
1704
|
-
* below (activeLogin/LoginSession) is `login.mode: relay`, kept for one
|
|
1705
|
-
* release as the rollback lever and removed in 2.1.6.
|
|
1706
|
-
*/
|
|
1738
|
+
/** Web-terminal login: the only sign-in path (the chat-relay mode was removed, #1139). */
|
|
1707
1739
|
private loginController;
|
|
1708
1740
|
/**
|
|
1709
1741
|
* One login/install window fleet-wide. Claimed synchronously before the
|
|
1710
|
-
* first await by web login
|
|
1742
|
+
* first await by web login and install alike (sol B1).
|
|
1711
1743
|
*/
|
|
1712
1744
|
private readonly loginWindow;
|
|
1713
1745
|
private get webLogin();
|
|
@@ -1771,23 +1803,12 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
|
|
|
1771
1803
|
}): Promise<string | null>;
|
|
1772
1804
|
/** Which way a `/login` went (#1131) — so the event log shows what users actually need. */
|
|
1773
1805
|
private recordLoginFlow;
|
|
1774
|
-
/** The sign-in itself
|
|
1806
|
+
/** The sign-in itself, in the web terminal, for a CLI that is installed. */
|
|
1775
1807
|
private launchSignIn;
|
|
1776
|
-
|
|
1777
|
-
/** Create the login window and session (pre-check already settled). */
|
|
1778
|
-
private launchLoginSession;
|
|
1779
|
-
/** Fleet shutdown: end any web/relay login or install window and wait for its confirmed teardown. */
|
|
1808
|
+
/** Fleet shutdown: end any web login or install window and wait for its confirmed teardown. */
|
|
1780
1809
|
private shutdownLoginWindows;
|
|
1781
|
-
/** `/login code <text>` — paste admin-supplied text into the login window. */
|
|
1782
|
-
loginSubmitInput(text: string): Promise<string>;
|
|
1783
1810
|
/** `/login cancel` — abort the active session and remove its window. */
|
|
1784
1811
|
cancelLoginSession(): Promise<string>;
|
|
1785
|
-
/**
|
|
1786
|
-
* The URL (+ code) is a live credential: whoever completes it binds THEIR
|
|
1787
|
-
* account to this fleet's CLI. Telegram gets an HTML spoiler (same treatment
|
|
1788
|
-
* as the dashboard token); other adapters get plain text with the warning.
|
|
1789
|
-
*/
|
|
1790
|
-
private sendLoginSecret;
|
|
1791
1812
|
/**
|
|
1792
1813
|
* After a successful login: wake the paused instances of that backend AND
|
|
1793
1814
|
* restart the running ones — a live CLI holds the old token in memory and
|
|
@@ -1812,8 +1833,6 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
|
|
|
1812
1833
|
private handleLoginConfirm;
|
|
1813
1834
|
/** "Resend token" button (web login): only the requester may press it; the token never enters the channel. */
|
|
1814
1835
|
private handleLoginTokenResend;
|
|
1815
|
-
/** Kiro provider button → drive the CLI's arrow-key selector. */
|
|
1816
|
-
private handleLoginMenuSelect;
|
|
1817
1836
|
private activeInstall;
|
|
1818
1837
|
/** An install that succeeded, between its success line and the sign-in it hands over to (#1131). */
|
|
1819
1838
|
private installHandoff;
|
|
@@ -1939,6 +1958,8 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
|
|
|
1939
1958
|
* previous list, never stall the command that asked for it.
|
|
1940
1959
|
*/
|
|
1941
1960
|
private probeBackendBounded;
|
|
1961
|
+
private stopCliEnvProbes;
|
|
1962
|
+
private runBackendProbeWorker;
|
|
1942
1963
|
private startCliEnvProbeWorker;
|
|
1943
1964
|
/**
|
|
1944
1965
|
* Resolve the effective model for a fleet or ClassicBot instance, plus where it
|
|
@@ -1955,18 +1976,7 @@ export declare class FleetManager implements FleetContext, LifecycleContext, Arc
|
|
|
1955
1976
|
/** Human-readable effective model, e.g. `auto (default)`. Used by /ctx. */
|
|
1956
1977
|
modelDisplayForInstance(instanceName: string): string;
|
|
1957
1978
|
private modelChoiceLabel;
|
|
1958
|
-
/**
|
|
1959
|
-
* Probe one backend's CLI env and cache it. Best-effort; never throws.
|
|
1960
|
-
*
|
|
1961
|
-
* `refreshVendorCatalog` is the "🔄 Refresh models" path only (#886): first
|
|
1962
|
-
* ask the CLI to refetch its own catalog, for backends whose probe merely
|
|
1963
|
-
* reads a file the CLI maintains. Every other caller leaves it off, so the
|
|
1964
|
-
* startup and /model probes behave exactly as before. A failed vendor
|
|
1965
|
-
* refresh fails the probe (null), which the menu reports instead of passing
|
|
1966
|
-
* the old list off as fresh.
|
|
1967
|
-
*/
|
|
1968
|
-
private probeBackend;
|
|
1969
|
-
/** Preserve the existing cache merge rules for both in-process and worker probes. */
|
|
1979
|
+
/** Preserve the existing cache merge rules for worker probes. */
|
|
1970
1980
|
private persistCliEnvProbeResult;
|
|
1971
1981
|
/** Background-probe every distinct backend in use at startup (non-blocking). */
|
|
1972
1982
|
private probeCliEnvs;
|