@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.
Files changed (66) hide show
  1. package/dist/command.d.ts.map +1 -1
  2. package/dist/command.js +9 -0
  3. package/dist/command.js.map +1 -1
  4. package/dist/commands/agents.d.ts +5 -2
  5. package/dist/commands/agents.d.ts.map +1 -1
  6. package/dist/commands/agents.js +4 -1
  7. package/dist/commands/agents.js.map +1 -1
  8. package/dist/commands/chat.js +1 -1
  9. package/dist/commands/chat.js.map +1 -1
  10. package/dist/commands/config.d.ts.map +1 -1
  11. package/dist/commands/config.js +14 -6
  12. package/dist/commands/config.js.map +1 -1
  13. package/dist/commands/doctor.js +11 -5
  14. package/dist/commands/doctor.js.map +1 -1
  15. package/dist/commands/ext.d.ts.map +1 -1
  16. package/dist/commands/ext.js +10 -1
  17. package/dist/commands/ext.js.map +1 -1
  18. package/dist/commands/revoke-credential.d.ts.map +1 -1
  19. package/dist/commands/revoke-credential.js +12 -6
  20. package/dist/commands/revoke-credential.js.map +1 -1
  21. package/dist/commands/service-registry.d.ts.map +1 -1
  22. package/dist/commands/service-registry.js +9 -2
  23. package/dist/commands/service-registry.js.map +1 -1
  24. package/dist/commands/spawn.d.ts.map +1 -1
  25. package/dist/commands/spawn.js +22 -6
  26. package/dist/commands/spawn.js.map +1 -1
  27. package/dist/commands/stack-down.d.ts.map +1 -1
  28. package/dist/commands/stack-down.js +8 -0
  29. package/dist/commands/stack-down.js.map +1 -1
  30. package/dist/commands/stack-up.js +1 -1
  31. package/dist/commands/stack-up.js.map +1 -1
  32. package/dist/commands/up.d.ts +6 -7
  33. package/dist/commands/up.d.ts.map +1 -1
  34. package/dist/commands/up.js +36 -45
  35. package/dist/commands/up.js.map +1 -1
  36. package/dist/commands/update.d.ts.map +1 -1
  37. package/dist/commands/update.js +5 -4
  38. package/dist/commands/update.js.map +1 -1
  39. package/dist/index.d.ts +1 -0
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +1 -0
  42. package/dist/index.js.map +1 -1
  43. package/dist/lib/foreground-hold.d.ts +12 -0
  44. package/dist/lib/foreground-hold.d.ts.map +1 -0
  45. package/dist/lib/foreground-hold.js +63 -0
  46. package/dist/lib/foreground-hold.js.map +1 -0
  47. package/dist/lib/manager-proc.d.ts +12 -8
  48. package/dist/lib/manager-proc.d.ts.map +1 -1
  49. package/dist/lib/manager-proc.js +92 -17
  50. package/dist/lib/manager-proc.js.map +1 -1
  51. package/dist/lib/private-log.d.ts +14 -0
  52. package/dist/lib/private-log.d.ts.map +1 -0
  53. package/dist/lib/private-log.js +56 -0
  54. package/dist/lib/private-log.js.map +1 -0
  55. package/dist/lib/service-process.d.ts.map +1 -1
  56. package/dist/lib/service-process.js +2 -48
  57. package/dist/lib/service-process.js.map +1 -1
  58. package/dist/lib/spawn-defaults.d.ts +3 -2
  59. package/dist/lib/spawn-defaults.d.ts.map +1 -1
  60. package/dist/lib/spawn-defaults.js +9 -5
  61. package/dist/lib/spawn-defaults.js.map +1 -1
  62. package/dist/lib/stack-journal.d.ts +3 -0
  63. package/dist/lib/stack-journal.d.ts.map +1 -1
  64. package/dist/lib/stack-journal.js +12 -0
  65. package/dist/lib/stack-journal.js.map +1 -1
  66. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"manager-proc.d.ts","sourceRoot":"","sources":["../../src/lib/manager-proc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager-proc.d.ts","sourceRoot":"","sources":["../../src/lib/manager-proc.ts"],"names":[],"mappings":"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"}
@@ -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 on this machine may be serving `space`. A supervisor
104
- * records its pid under whatever folder it was started from, so no one root's record can rule it
105
- * out; the process table can. One whose argv names no space serves what its environment or folder
106
- * selects: a service unit sets `COTAL_SPACE` and passes no `--space`, so that variable names the
107
- * space it serves, and one it reads for another space is not a manager of this one. A supervisor
108
- * whose environment cannot be read or names no space counts, and a process table that cannot be
109
- * listed proves nothing. */
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
- const child = spawn(node, args, { detached: true, stdio: ["ignore", fd, fd], env: { ...process.env, COTAL_SKIP_CONNECTOR_SEED: "1" } });
202
- closeSync(fd);
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
- throw new Error(`${manager} exited before it came up. It logged its reason to ${managerLogPath(space)}`);
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
- const pid = startManagerDetached(o);
289
- await awaitManagerUp(space, identityRecord(pid));
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":"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"}
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, localRecordAccess } from "@cotal-ai/workspace";
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);