@cotal-ai/cli 0.150.0 → 0.151.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/command.d.ts.map +1 -1
- package/dist/command.js +9 -0
- package/dist/command.js.map +1 -1
- package/dist/commands/agents.d.ts +5 -2
- package/dist/commands/agents.d.ts.map +1 -1
- package/dist/commands/agents.js +4 -1
- package/dist/commands/agents.js.map +1 -1
- package/dist/commands/chat.js +1 -1
- package/dist/commands/chat.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +14 -6
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/doctor.js +11 -5
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/ext.d.ts.map +1 -1
- package/dist/commands/ext.js +10 -1
- package/dist/commands/ext.js.map +1 -1
- package/dist/commands/revoke-credential.d.ts.map +1 -1
- package/dist/commands/revoke-credential.js +12 -6
- package/dist/commands/revoke-credential.js.map +1 -1
- package/dist/commands/service-registry.d.ts.map +1 -1
- package/dist/commands/service-registry.js +9 -2
- package/dist/commands/service-registry.js.map +1 -1
- package/dist/commands/spawn.d.ts.map +1 -1
- package/dist/commands/spawn.js +22 -6
- package/dist/commands/spawn.js.map +1 -1
- package/dist/commands/stack-down.d.ts.map +1 -1
- package/dist/commands/stack-down.js +8 -0
- package/dist/commands/stack-down.js.map +1 -1
- package/dist/commands/stack-up.js +1 -1
- package/dist/commands/stack-up.js.map +1 -1
- package/dist/commands/up.d.ts +6 -7
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +36 -45
- package/dist/commands/up.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +5 -4
- package/dist/commands/update.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/foreground-hold.d.ts +12 -0
- package/dist/lib/foreground-hold.d.ts.map +1 -0
- package/dist/lib/foreground-hold.js +63 -0
- package/dist/lib/foreground-hold.js.map +1 -0
- package/dist/lib/manager-proc.d.ts +12 -8
- package/dist/lib/manager-proc.d.ts.map +1 -1
- package/dist/lib/manager-proc.js +92 -17
- package/dist/lib/manager-proc.js.map +1 -1
- package/dist/lib/private-log.d.ts +14 -0
- package/dist/lib/private-log.d.ts.map +1 -0
- package/dist/lib/private-log.js +56 -0
- package/dist/lib/private-log.js.map +1 -0
- package/dist/lib/service-process.d.ts.map +1 -1
- package/dist/lib/service-process.js +2 -48
- package/dist/lib/service-process.js.map +1 -1
- package/dist/lib/spawn-defaults.d.ts +3 -2
- package/dist/lib/spawn-defaults.d.ts.map +1 -1
- package/dist/lib/spawn-defaults.js +9 -5
- package/dist/lib/spawn-defaults.js.map +1 -1
- package/dist/lib/stack-journal.d.ts +3 -0
- package/dist/lib/stack-journal.d.ts.map +1 -1
- package/dist/lib/stack-journal.js +12 -0
- package/dist/lib/stack-journal.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager-proc.d.ts","sourceRoot":"","sources":["../../src/lib/manager-proc.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"manager-proc.d.ts","sourceRoot":"","sources":["../../src/lib/manager-proc.ts"],"names":[],"mappings":"AAQA,OAAO,EAEsB,wBAAwB,EAGnD,KAAK,aAAa,EAAE,KAAK,aAAa,EACtC,KAAK,aAAa,EAAE,KAAK,kBAAkB,EAE5C,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAIjE;;;;+EAI+E;AAC/E,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAehF;AAED;8FAC8F;AAC9F,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAGxG;AAWD;sFACsF;AACtF,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,EAAE,OAAM,MAAoB,KAAG,MACd,CAAC;AAE9D,yFAAyF;AACzF,eAAO,MAAM,qBAAqB,GAAI,OAAO,MAAM,EAAE,OAAM,MAAoB,KAAG,MACrC,CAAC;AAc9C;0FAC0F;AAC1F,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,WAAW,CAAC,EAAE,aAAa,CAAC;CAC7B;AAED;sFACsF;AACtF,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,GAAG,WAAW,CAKvE;AAED,oGAAoG;AACpG,wBAAgB,kBAAkB,CAChC,KAAK,GAAE,MAAsB,EAC7B,IAAI,GAAE,MAAoB,EAC1B,KAAK,GAAE,WAAgB,GACtB,aAAa,CAQf;AAED,0FAA0F;AAC1F,wBAAgB,eAAe,CAC7B,KAAK,GAAE,MAAsB,EAC7B,IAAI,GAAE,MAAoB,EAC1B,KAAK,GAAE,WAAgB,GACtB,kBAAkB,CAEpB;AAED,qGAAqG;AACrG,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAK9D;AAED;;;;0BAI0B;AAC1B,wBAAgB,SAAS,CAAC,KAAK,GAAE,MAAsB,EAAE,IAAI,GAAE,MAAoB,GAAG,OAAO,CAE5F;AAED;;;;;;;;;uCASuC;AACvC,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAWzD;AAkED;;;;;wGAKwG;AACxG,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAsB,EAAE,IAAI,GAAE,MAAoB,GAAG,OAAO,CAUxH;AAED;;;;;;4EAM4E;AAC5E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;iDAC6C;IAC7C,YAAY,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,CAAC,GAAE,gBAAqB,EACxB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,GACrC,MAAM,CAkER;AAED;;;;;;qGAMqG;AACrG,wBAAgB,8BAA8B,CAC5C,KAAK,GAAE,MAAsB,EAC7B,IAAI,GAAE,MAAoB,EAC1B,KAAK,GAAE,WAAgB,GACtB,IAAI,CA4BN;AAgCD;;;wGAGwG;AACxG,wBAAsB,aAAa,CACjC,CAAC,GAAE,gBAAqB,EACxB,KAAK,GAAE,WAAgB,GACtB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAW/D;AAED;;8CAE8C;AAC9C,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC;AAErE,wGAAwG;AACxG,eAAO,MAAM,eAAe;;;;;;;;;CASJ,CAAC;AAEzB;;;;;;;uFAOuF;AACvF,wBAAsB,WAAW,CAC/B,KAAK,GAAE,MAAsB,EAC7B,EAAE,UAAkB,EAAE,GAAG,EAAE,IAAkB,EAAE,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1G,OAAO,CAAC,OAAO,CAAC,CAiClB;AAED,yGAAyG;AACzG,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,MAAoB,GAAG,IAAI,CAErF"}
|
package/dist/lib/manager-proc.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { spawn, spawnSync } from "node:child_process";
|
|
2
|
-
import { closeSync, readFileSync, rmSync } from "node:fs";
|
|
3
|
-
import { relative } from "node:path";
|
|
2
|
+
import { closeSync, fstatSync, readFileSync, realpathSync, rmSync } from "node:fs";
|
|
3
|
+
import { basename, dirname, isAbsolute, join, relative } from "node:path";
|
|
4
4
|
import { DEFAULT_SERVER, openPrivateAppend, writePrivateRecord } from "@cotal-ai/core";
|
|
5
5
|
import { daemonArgv } from "./self-exec.js";
|
|
6
|
+
import { entryScript } from "../seed/paths.js";
|
|
6
7
|
import { resolveRuntimeSpace } from "./status.js";
|
|
7
8
|
import { cotalRoot } from "./paths.js";
|
|
8
9
|
import { assertManagerCanSpare, armManagerShutdownIntent, assertRecordIdentity, disarmManagerShutdownIntent, canonicalLocalProcessPath, commandIsCotalSupervisor, identityRecord, localProcessPath, parsePid, probeLiveness, readPidfile, readProcessCommand, readProcessRecord, reclaimDeadPreUpgradeRecord, MANAGER_DELIVERY_AWARE_MARKER, MANAGER_LOGFILE, MANAGER_PIDFILE, MANAGER_SHUTDOWN_INTENT, MANAGER_SPARE_CAPABILITY, parsePositiveIntegerFlag, verifyIdentityPin, writePidPair, } from "@cotal-ai/workspace";
|
|
@@ -10,6 +11,7 @@ import { c } from "../ui.js";
|
|
|
10
11
|
import { stopLocalProcess } from "./local-process-stop.js";
|
|
11
12
|
import { listManagerSeatsForSpare, printLegacyManagerSpareUncertainty, printSparedAgents } from "./teardown-spare.js";
|
|
12
13
|
import { seedBeforeLaunch } from "../seed/launch.js";
|
|
14
|
+
import { lastLoggedLine } from "./private-log.js";
|
|
13
15
|
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
14
16
|
/** The `--max-sessions` value a live `cotal supervise` argv is actually serving.
|
|
15
17
|
*
|
|
@@ -100,25 +102,84 @@ export function describeManagerRecord(r) {
|
|
|
100
102
|
export function managerUp(space = folderSpace(), root = cotalRoot()) {
|
|
101
103
|
return managerLiveness(space, root) === "alive";
|
|
102
104
|
}
|
|
103
|
-
/** Whether a live `cotal supervise` process
|
|
104
|
-
* records its pid under whatever folder it was started from, so no one root's record
|
|
105
|
-
* out; the process table can.
|
|
106
|
-
*
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
*
|
|
105
|
+
/** Whether a live `cotal supervise` process that loaded this install may be serving `space`.
|
|
106
|
+
* A supervisor records its pid under whatever folder it was started from, so no one root's record
|
|
107
|
+
* can rule it out; the process table can. Replacing this install interrupts a supervisor only when
|
|
108
|
+
* one of its arguments resolves to this process's own CLI entry. A node binary, a loader, and any
|
|
109
|
+
* other absolute argument are not that entry. A command that names no resolvable entry still counts:
|
|
110
|
+
* an unreadable path is not proof of another install. One whose argv names no space serves what its
|
|
111
|
+
* environment or folder selects: a service unit sets `COTAL_SPACE` and passes no `--space`, so that
|
|
112
|
+
* variable names the space it serves, and one it reads for another space is not a manager of this one.
|
|
113
|
+
* A supervisor whose environment cannot be read or names no space counts, and a process table that
|
|
114
|
+
* cannot be listed proves nothing. */
|
|
110
115
|
export function supervisorMayServe(space) {
|
|
111
116
|
const ps = spawnSync("ps", ["-A", "-ww", "-o", "pid=,args="], { encoding: "utf8" });
|
|
112
117
|
if (ps.error || ps.status !== 0)
|
|
113
118
|
return true;
|
|
119
|
+
const entry = thisCliEntry();
|
|
114
120
|
return ps.stdout.split("\n").some((line) => {
|
|
115
121
|
const row = /^\s*(\d+)\s+(.*)$/.exec(line);
|
|
116
122
|
if (!row || !commandIsCotalSupervisor(row[2]))
|
|
117
123
|
return false;
|
|
124
|
+
if (entry !== undefined && !supervisorLoadedEntry(row[2], entry))
|
|
125
|
+
return false;
|
|
118
126
|
const named = /(?:^|\s)--space(?:=|\s+)(\S+)/.exec(row[2])?.[1] ?? environmentSpace(Number(row[1]));
|
|
119
127
|
return named === undefined || named === space;
|
|
120
128
|
});
|
|
121
129
|
}
|
|
130
|
+
/** This process's CLI entry, or undefined when that file cannot be resolved. Without it the scan
|
|
131
|
+
* cannot tell installs apart, so every supervisor of the space still counts. */
|
|
132
|
+
function thisCliEntry() {
|
|
133
|
+
try {
|
|
134
|
+
return realpathSync(entryScript());
|
|
135
|
+
}
|
|
136
|
+
catch {
|
|
137
|
+
return undefined;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
/** Whether `command` loaded `entry`. The match is the argument that resolves to that file. A node
|
|
141
|
+
* binary, a loader, and a relative entry are not another install. Custody stays unless an argument
|
|
142
|
+
* resolves to a different install's CLI entry, so an identity that cannot be established still counts. */
|
|
143
|
+
function supervisorLoadedEntry(command, entry) {
|
|
144
|
+
for (const word of command.trim().split(/\s+/)) {
|
|
145
|
+
if (!isAbsolute(word))
|
|
146
|
+
continue;
|
|
147
|
+
let resolved;
|
|
148
|
+
try {
|
|
149
|
+
resolved = realpathSync(word);
|
|
150
|
+
}
|
|
151
|
+
catch {
|
|
152
|
+
continue;
|
|
153
|
+
}
|
|
154
|
+
if (resolved === entry)
|
|
155
|
+
return true;
|
|
156
|
+
if (isCliEntry(resolved))
|
|
157
|
+
return false;
|
|
158
|
+
}
|
|
159
|
+
return true;
|
|
160
|
+
}
|
|
161
|
+
/** Whether `path` is a CLI entry file: `cotal.js` under a package declaring that bin, or `cotal.ts`
|
|
162
|
+
* under the checkout package that ships `bin/cotal.ts`. A node binary and a loader are neither. */
|
|
163
|
+
function isCliEntry(path) {
|
|
164
|
+
const name = basename(path);
|
|
165
|
+
if (name !== "cotal.js" && name !== "cotal.ts")
|
|
166
|
+
return false;
|
|
167
|
+
for (let dir = dirname(path);; dir = dirname(dir)) {
|
|
168
|
+
let pkg;
|
|
169
|
+
try {
|
|
170
|
+
pkg = JSON.parse(readFileSync(join(dir, "package.json"), "utf8"));
|
|
171
|
+
}
|
|
172
|
+
catch {
|
|
173
|
+
if (dirname(dir) === dir)
|
|
174
|
+
return false;
|
|
175
|
+
continue;
|
|
176
|
+
}
|
|
177
|
+
if (name === "cotal.ts")
|
|
178
|
+
return pkg.name === "cotal-monorepo";
|
|
179
|
+
const bin = typeof pkg.bin === "string" ? pkg.bin : pkg.bin?.cotal;
|
|
180
|
+
return typeof bin === "string" && basename(bin) === name;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
122
183
|
/** The `COTAL_SPACE` a process was started with, read from its environment; undefined when the
|
|
123
184
|
* environment is unreadable (another user's process, or no procfs) or names no space. */
|
|
124
185
|
function environmentSpace(pid) {
|
|
@@ -154,7 +215,7 @@ export function managerHasDeliveryMarker(pid, space = folderSpace(), root = cota
|
|
|
154
215
|
}
|
|
155
216
|
return markerPid === pid;
|
|
156
217
|
}
|
|
157
|
-
export function startManagerDetached(o = {}) {
|
|
218
|
+
export function startManagerDetached(o = {}, onLogStart) {
|
|
158
219
|
const space = o.space ?? folderSpace();
|
|
159
220
|
// BEFORE ANY RECORD OR LOG IS TOUCHED. `selfArgv` refuses when this process was not started from
|
|
160
221
|
// the `cotal` entry (#1629), and a refusal must leave the root exactly as it found it. Computed after
|
|
@@ -198,8 +259,17 @@ export function startManagerDetached(o = {}) {
|
|
|
198
259
|
];
|
|
199
260
|
// This is an INTERNAL child re-exec: the `up`/`spawn` that reached here already ran the first-run
|
|
200
261
|
// connector seed, so the manager skips it on boot (a direct `cotal supervise` still seeds).
|
|
201
|
-
|
|
202
|
-
|
|
262
|
+
let child;
|
|
263
|
+
try {
|
|
264
|
+
if (onLogStart) {
|
|
265
|
+
const info = fstatSync(fd);
|
|
266
|
+
onLogStart({ offset: info.size, dev: info.dev, ino: info.ino });
|
|
267
|
+
}
|
|
268
|
+
child = spawn(node, args, { detached: true, stdio: ["ignore", fd, fd], env: { ...process.env, COTAL_SKIP_CONNECTOR_SEED: "1" } });
|
|
269
|
+
}
|
|
270
|
+
finally {
|
|
271
|
+
closeSync(fd);
|
|
272
|
+
}
|
|
203
273
|
child.unref();
|
|
204
274
|
// CANONICAL path, never a pre-upgrade one: a start that kept writing the root-scoped name would
|
|
205
275
|
// keep minting the very records this change ends.
|
|
@@ -253,7 +323,7 @@ export function assertManagerRecordReplaceable(space = folderSpace(), root = cot
|
|
|
253
323
|
* record publishes its own capability, which says nothing about the started process, so losing the
|
|
254
324
|
* record refuses. No deadline: the manager bounds its own boot waits (the delivery-admin one alone
|
|
255
325
|
* runs to a minute), so a deadline here could only misreport a slow boot. */
|
|
256
|
-
async function awaitManagerUp(space, started) {
|
|
326
|
+
async function awaitManagerUp(space, started, logStart) {
|
|
257
327
|
const manager = `the manager started for space "${space}" (pid ${started.pid})`;
|
|
258
328
|
if (!("token" in started))
|
|
259
329
|
throw new Error(`cannot read the start identity of ${manager}, so its readiness cannot be told apart from another manager's. Its log is ${managerLogPath(space)}`);
|
|
@@ -266,8 +336,12 @@ async function awaitManagerUp(space, started) {
|
|
|
266
336
|
// Not published for the started process yet, or the record names another one: decided below.
|
|
267
337
|
}
|
|
268
338
|
const identity = assertRecordIdentity(started).kind;
|
|
269
|
-
if (identity === "gone" || identity === "mismatch")
|
|
270
|
-
|
|
339
|
+
if (identity === "gone" || identity === "mismatch") {
|
|
340
|
+
const recorded = parsePid(readPidfile(PID_PATH(space)) ?? "");
|
|
341
|
+
const reason = logStart && (recorded === undefined || recorded === started.pid)
|
|
342
|
+
? lastLoggedLine(managerLogPath(space), logStart.offset, logStart) : undefined;
|
|
343
|
+
throw new Error(`${manager} exited before it came up.${reason ? `\n${reason}` : ""}\nIt logged its reason to ${managerLogPath(space)}`);
|
|
344
|
+
}
|
|
271
345
|
if (parsePid(readPidfile(PID_PATH(space)) ?? "") !== started.pid)
|
|
272
346
|
throw new Error(`${manager} lost ${PID_PATH(space)} to another process before it came up, so it is not the manager serving the space. Its log is ${managerLogPath(space)}`);
|
|
273
347
|
await sleep(200);
|
|
@@ -285,8 +359,9 @@ export async function ensureManager(o = {}, seams = {}) {
|
|
|
285
359
|
return { running: true, started: false };
|
|
286
360
|
assertManagerRecordReplaceable(space, root, seams); // refuses on unknown / unattributable, reports foreign
|
|
287
361
|
await seedBeforeLaunch();
|
|
288
|
-
|
|
289
|
-
|
|
362
|
+
let logStart;
|
|
363
|
+
const pid = startManagerDetached(o, (start) => { logStart = start; });
|
|
364
|
+
await awaitManagerUp(space, identityRecord(pid), logStart);
|
|
290
365
|
return { running: true, started: true, pid };
|
|
291
366
|
}
|
|
292
367
|
/** The manager as `cotal down` registers it: its pidfile, and the records that die with its process. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager-proc.js","sourceRoot":"","sources":["../../src/lib/manager-proc.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manager-proc.js","sourceRoot":"","sources":["../../src/lib/manager-proc.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type Stats } from "node:fs";
|
|
2
|
+
export type LogStart = {
|
|
3
|
+
offset: number;
|
|
4
|
+
dev: number;
|
|
5
|
+
ino: number;
|
|
6
|
+
};
|
|
7
|
+
/** A log this account may read and append to. Windows protects it with the access list Cotal sets
|
|
8
|
+
* when it creates the file and has no POSIX owner or mode to check, as for every local record. */
|
|
9
|
+
export declare const privateLog: (info: Stats) => boolean;
|
|
10
|
+
/** The last line an owned private log holds past byte `from`, as one bounded line of operator output,
|
|
11
|
+
* or undefined when nothing was logged there or the log cannot be read as an owned file. A started
|
|
12
|
+
* manager also pins the file identity and accepts only an error line, never its console URL. */
|
|
13
|
+
export declare function lastLoggedLine(path: string, from: number, started?: LogStart): string | undefined;
|
|
14
|
+
//# sourceMappingURL=private-log.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"private-log.d.ts","sourceRoot":"","sources":["../../src/lib/private-log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuD,KAAK,KAAK,EAAE,MAAM,SAAS,CAAC;AAI1F,MAAM,MAAM,QAAQ,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpE;mGACmG;AACnG,eAAO,MAAM,UAAU,GAAI,MAAM,KAAK,YAA4H,CAAC;AAEnK;;iGAEiG;AACjG,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAcjG"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { closeSync, constants, fstatSync, openSync, readSync } from "node:fs";
|
|
2
|
+
import { stripVTControlCharacters } from "node:util";
|
|
3
|
+
import { localRecordAccess, oneLine } from "@cotal-ai/workspace";
|
|
4
|
+
/** A log this account may read and append to. Windows protects it with the access list Cotal sets
|
|
5
|
+
* when it creates the file and has no POSIX owner or mode to check, as for every local record. */
|
|
6
|
+
export const privateLog = (info) => info.isFile() && (localRecordAccess() === "windows-acl" || info.uid === process.getuid() && (info.mode & 0o077) === 0);
|
|
7
|
+
/** The last line an owned private log holds past byte `from`, as one bounded line of operator output,
|
|
8
|
+
* or undefined when nothing was logged there or the log cannot be read as an owned file. A started
|
|
9
|
+
* manager also pins the file identity and accepts only an error line, never its console URL. */
|
|
10
|
+
export function lastLoggedLine(path, from, started) {
|
|
11
|
+
let fd;
|
|
12
|
+
try {
|
|
13
|
+
fd = openSync(path, constants.O_RDONLY | constants.O_NOFOLLOW | constants.O_NONBLOCK);
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
return undefined;
|
|
17
|
+
}
|
|
18
|
+
try {
|
|
19
|
+
const info = fstatSync(fd);
|
|
20
|
+
if (!privateLog(info) || info.size <= from)
|
|
21
|
+
return undefined;
|
|
22
|
+
if (started && (info.dev !== started.dev || info.ino !== started.ino))
|
|
23
|
+
return undefined;
|
|
24
|
+
const length = Math.min(info.size - from, 8192), bytes = Buffer.alloc(length);
|
|
25
|
+
let read = 0;
|
|
26
|
+
while (read < length) {
|
|
27
|
+
const count = readSync(fd, bytes, read, length - read, info.size - length + read);
|
|
28
|
+
if (!count)
|
|
29
|
+
break;
|
|
30
|
+
read += count;
|
|
31
|
+
}
|
|
32
|
+
const line = bytes.subarray(0, read).toString("utf8").split("\n").map((text) => text.trim()).filter(Boolean).pop();
|
|
33
|
+
if (started && (!line || !/^(?:\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?Z\s+)?✗\s/.test(stripVTControlCharacters(line))))
|
|
34
|
+
return undefined;
|
|
35
|
+
return line ? oneLine(quotedLine(line)) : undefined;
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
finally {
|
|
41
|
+
closeSync(fd);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/** `line` as a refusal quotes it: whole up to 1000 characters, which holds a failure line with its
|
|
45
|
+
* causes. A longer one keeps its last `; next:` step, when that step is shorter than that, and as
|
|
46
|
+
* much of its start as the rest holds, with the line's length where the middle was cut, so the
|
|
47
|
+
* quote still ends in the step to take. */
|
|
48
|
+
function quotedLine(line) {
|
|
49
|
+
const max = 1000, chars = [...line];
|
|
50
|
+
if (chars.length <= max)
|
|
51
|
+
return line;
|
|
52
|
+
const at = line.lastIndexOf("; next: "), step = at < 0 ? [] : [...line.slice(at)];
|
|
53
|
+
const kept = step.length < max ? step : [];
|
|
54
|
+
return `${chars.slice(0, max - kept.length).join("")}… (${chars.length} characters)${kept.join("")}`;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=private-log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"private-log.js","sourceRoot":"","sources":["../../src/lib/private-log.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-process.d.ts","sourceRoot":"","sources":["../../src/lib/service-process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAI9D,OAAO,EAAsgB,KAAK,6BAA6B,EAAE,KAAK,qBAAqB,EAAE,KAAK,4BAA4B,EAAE,KAAK,2BAA2B,EAAE,KAAK,sBAAsB,EAAE,KAAK,qBAAqB,EAAE,KAAK,sBAAsB,EAA4B,KAAK,aAAa,
|
|
1
|
+
{"version":3,"file":"service-process.d.ts","sourceRoot":"","sources":["../../src/lib/service-process.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { spawn } from "node:child_process";
|
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
import { closeSync, constants, fstatSync, lstatSync, openSync, readSync, renameSync, unlinkSync } from "node:fs";
|
|
4
4
|
import { basename, isAbsolute, join, resolve } from "node:path";
|
|
5
|
-
import { CommandFailure, assertRecordIdentity, shellPath, canonicalRoot, commandIsCotalSupervisor, isCommandFailure, maintenanceAdmitsStackWork, readMaintenanceJournal, readProcessCommand, readServiceStopRequest, resolveNativeServiceTarget, loopbackListeners, processGroupMembers, processGroupOf, serviceAdapterReadiness, serviceMetadataDigest, spaceKey, serviceAdapterKernelStopPlan, serviceAdapterKernelStopResult, serviceAdapterStopPlan, serviceAdapterStopAbandonment, serviceAdapterStopRefusal, serviceAdapterStopResult, isWorkspaceTargetError, oneLine, targetErrorCode, workspaceErrorParts
|
|
5
|
+
import { CommandFailure, assertRecordIdentity, shellPath, canonicalRoot, commandIsCotalSupervisor, isCommandFailure, maintenanceAdmitsStackWork, readMaintenanceJournal, readProcessCommand, readServiceStopRequest, resolveNativeServiceTarget, loopbackListeners, processGroupMembers, processGroupOf, serviceAdapterReadiness, serviceMetadataDigest, spaceKey, serviceAdapterKernelStopPlan, serviceAdapterKernelStopResult, serviceAdapterStopPlan, serviceAdapterStopAbandonment, serviceAdapterStopRefusal, serviceAdapterStopResult, isWorkspaceTargetError, oneLine, targetErrorCode, workspaceErrorParts } from "@cotal-ai/workspace";
|
|
6
6
|
import { openPrivateAppend } from "@cotal-ai/core";
|
|
7
7
|
import { refuseRecordedSupervisor } from "./service-supervision.js";
|
|
8
8
|
import { serviceInstallIntents } from "./service-install-intent.js";
|
|
@@ -15,14 +15,12 @@ import { instanceProjection, observeServiceProcess, processServiceHost, requireP
|
|
|
15
15
|
import { maintenanceStackView, STACK_DEFINITION, stackMemberRecord } from "./stack-journal.js";
|
|
16
16
|
import { askCustodian, custodiedPlatform, custodyLog, removeCustodyCapability, startCustodiedService } from "./service-custody-win32.js";
|
|
17
17
|
import { seedBeforeLaunch } from "../seed/launch.js";
|
|
18
|
+
import { lastLoggedLine, privateLog } from "./private-log.js";
|
|
18
19
|
export const PROCESS_SERVICE_CAPABILITIES = Object.freeze({ multiInstance: true, foreground: true, logs: true, install: false });
|
|
19
20
|
const delay = (ms) => new Promise((done) => setTimeout(done, ms));
|
|
20
21
|
/** How long a launch with process readiness waits for an immediate exit before it reports the process running. */
|
|
21
22
|
const PROCESS_SETTLE_MS = 1000;
|
|
22
23
|
const gone = (state) => state === "gone" || state === "previous-boot" || state === "foreign-pid";
|
|
23
|
-
/** A log this account may read and append to. Windows protects it with the access list Cotal sets
|
|
24
|
-
* when it creates the file and has no POSIX owner or mode to check, as for every local record. */
|
|
25
|
-
const privateLog = (info) => info.isFile() && (localRecordAccess() === "windows-acl" || info.uid === process.getuid() && (info.mode & 0o077) === 0);
|
|
26
24
|
/** A record with no creation pin whose own state says no child exists: its launch failed before
|
|
27
25
|
* a process did. There is nothing to stop. */
|
|
28
26
|
const neverLaunched = (value) => !value.process && gone(observeServiceProcess(value));
|
|
@@ -1330,50 +1328,6 @@ export function readOwnedLogTail(path, tail) {
|
|
|
1330
1328
|
closeSync(fd);
|
|
1331
1329
|
}
|
|
1332
1330
|
}
|
|
1333
|
-
/** The last line an owned private log holds past byte `from`, as one bounded line of operator output,
|
|
1334
|
-
* or undefined when nothing was logged there or the log cannot be read as an owned file. */
|
|
1335
|
-
function lastLoggedLine(path, from) {
|
|
1336
|
-
let fd;
|
|
1337
|
-
try {
|
|
1338
|
-
fd = openSync(path, constants.O_RDONLY | constants.O_NOFOLLOW | constants.O_NONBLOCK);
|
|
1339
|
-
}
|
|
1340
|
-
catch {
|
|
1341
|
-
return undefined;
|
|
1342
|
-
}
|
|
1343
|
-
try {
|
|
1344
|
-
const info = fstatSync(fd);
|
|
1345
|
-
if (!privateLog(info) || info.size <= from)
|
|
1346
|
-
return undefined;
|
|
1347
|
-
const length = Math.min(info.size - from, 8192), bytes = Buffer.alloc(length);
|
|
1348
|
-
let read = 0;
|
|
1349
|
-
while (read < length) {
|
|
1350
|
-
const count = readSync(fd, bytes, read, length - read, info.size - length + read);
|
|
1351
|
-
if (!count)
|
|
1352
|
-
break;
|
|
1353
|
-
read += count;
|
|
1354
|
-
}
|
|
1355
|
-
const line = bytes.subarray(0, read).toString("utf8").split("\n").map((text) => text.trim()).filter(Boolean).pop();
|
|
1356
|
-
return line ? oneLine(quotedLine(line)) : undefined;
|
|
1357
|
-
}
|
|
1358
|
-
catch {
|
|
1359
|
-
return undefined;
|
|
1360
|
-
}
|
|
1361
|
-
finally {
|
|
1362
|
-
closeSync(fd);
|
|
1363
|
-
}
|
|
1364
|
-
}
|
|
1365
|
-
/** `line` as a refusal quotes it: whole up to 1000 characters, which holds a failure line with its
|
|
1366
|
-
* causes. A longer one keeps its last `; next:` step, when that step is shorter than that, and as
|
|
1367
|
-
* much of its start as the rest holds, with the line's length where the middle was cut, so the
|
|
1368
|
-
* quote still ends in the step to take. */
|
|
1369
|
-
function quotedLine(line) {
|
|
1370
|
-
const max = 1000, chars = [...line];
|
|
1371
|
-
if (chars.length <= max)
|
|
1372
|
-
return line;
|
|
1373
|
-
const at = line.lastIndexOf("; next: "), step = at < 0 ? [] : [...line.slice(at)];
|
|
1374
|
-
const kept = step.length < max ? step : [];
|
|
1375
|
-
return `${chars.slice(0, max - kept.length).join("")}… (${chars.length} characters)${kept.join("")}`;
|
|
1376
|
-
}
|
|
1377
1331
|
/** {@link ownedLogSlice} of a service instance's log, or undefined when no instance store exists. */
|
|
1378
1332
|
export function serviceLogSlice(space, id, position, tail) {
|
|
1379
1333
|
const path = serviceLogPath(space, id);
|