@cotal-ai/workspace 0.60.0 → 0.62.0

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.
@@ -1,12 +1,3 @@
1
- /**
2
- * Which running mesh a CONTROL command addresses, and the auth material it carries to the manager's
3
- * endpoint rails. Shared by every command surface that talks to the manager (`cotal ps`, `cotal
4
- * run`, the web dashboard), so they all resolve the same target the same way: exactly
5
- * {@link connectOrExit}'s precedence (--creds raw > --server + unregistered --space open >
6
- * registry/`current` with mint + preflight + stale-prune) with one control-specific delta: on the
7
- * raw `--creds` path the space defaults to THIS FOLDER's `.cotal/auth` space rather than
8
- * `DEFAULT_SPACE`, because a control op addresses the manager of the folder's mesh.
9
- */
10
1
  import { type EpCaller, type Profile, type SpaceAuth } from "@cotal-ai/core";
11
2
  import { type ConnectFlags } from "./connect.js";
12
3
  import { type MeshTarget } from "./mesh-target.js";
@@ -52,11 +43,39 @@ export declare function resolveControlTarget(flags: ConnectFlags, profile: Profi
52
43
  onRefusal?: "exit" | "throw";
53
44
  endpoint?: string;
54
45
  }): Promise<ControlTarget>;
46
+ /**
47
+ * The managed seat this process runs in, as THAT seat's own control target, or `undefined` outside
48
+ * one. A seat that shells out to `cotal` must reach the manager as itself, not as a fresh operator
49
+ * instrument: the manager records the requesting principal (a detached spawn's spawner, a run
50
+ * answer's answerer), and a one-shot instrument is a principal nothing can present again, so the
51
+ * seat could never stop the child it asked for (#718). Connection material is intentionally not
52
+ * inherited by shell children; the non-secret launch identity (`COTAL_NAME`, `COTAL_ID`,
53
+ * `COTAL_LIFECYCLE_UID`) names the seat, and when the launch also sets `COTAL_SPACE` only a command
54
+ * aimed at that registered space acts as it. A raw open target (`--server` plus an unregistered
55
+ * `--space`) keeps the operator resolution, as {@link connectOrThrow} orders it:
56
+ *
57
+ * - static mesh: the manager-owned lifecycle credential, whose accepted row (`COTAL_ACCEPTED_TOKEN`)
58
+ * resolves an issuer-bound generation that must name the same principal and lifecycle uid. That
59
+ * proof binds the space too, so a launch without `COTAL_SPACE` still acts as the seat, and a
60
+ * target whose space holds no such credential is refused rather than answered as someone else;
61
+ * - open mesh: no credential system, so the seat's declared triple is the caller, over the
62
+ * transport the registry records, and only when `COTAL_SPACE` names that space;
63
+ * - user-auth mesh: `undefined`, because the CLI's bearer and the seat share an owner and the
64
+ * manager's owner-domain rule already covers that pair.
65
+ *
66
+ * `instanceId` (`--on <instanceId>`) pins the call to one manager instance. The seat's standing
67
+ * credential holds class routes only, so on a static mesh the seat's proven principal and lifecycle
68
+ * uid get a one-shot `manager-caller` view instead, minted from the local signer like the operator
69
+ * instrument `--on` already gets: every request, describe included, is pinned to that instance, it
70
+ * carries the spawn set only when the seat's own credential holds it, and it expires in five minutes.
71
+ */
72
+ export declare function resolveSeatControlTarget(flags: ConnectFlags, instanceId?: string): Promise<ControlTarget | undefined>;
55
73
  /** The caller triple a control call rides, or a refusal naming why the credential cannot. A user
56
74
  * bearer or a minted static instrument carries its own triple. An OPEN mesh has no credential
57
- * system: the manager registered under DEV_OWNER and the broker enforces nothing, so a fresh
58
- * DEV_OWNER triple is synthesized. A raw `--creds` file supplies no triple and that route cannot
59
- * mint one, so it is refused rather than silently downgraded. */
75
+ * system: the manager registered under DEV_OWNER and the broker enforces nothing, so the call rides
76
+ * the triple its target declares ({@link resolveSeatControlTarget}) or a freshly synthesized
77
+ * DEV_OWNER one. A raw `--creds` file supplies no triple and that route cannot mint one, so it is
78
+ * refused rather than silently downgraded. */
60
79
  export declare function controlCaller(auth: ControlAuth): {
61
80
  caller: EpCaller;
62
81
  } | {
@@ -1 +1 @@
1
- {"version":3,"file":"control-target.d.ts","sourceRoot":"","sources":["../src/control-target.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAKL,KAAK,QAAQ,EACb,KAAK,OAAO,EACZ,KAAK,SAAS,EACf,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAuF,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AACtI,OAAO,EAA6C,KAAK,UAAU,EAA4B,MAAM,kBAAkB,CAAC;AAGxH;;yBAEyB;AACzB,MAAM,MAAM,WAAW,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtJ,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,WAAW,CAAC;IAClB;kEAC8D;IAC9D,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;6BAEyB;IACzB,IAAI,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1B,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;CAC/B;AAUD;;;;;;;;;;;GAWG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,OAAO,EAChB,UAAU,CAAC,EAAE,MAAM,EACnB,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7D,OAAO,CAAC,aAAa,CAAC,CA6DxB;AAED;;;;kEAIkE;AAClE,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG;IAAE,MAAM,EAAE,QAAQ,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAK3F"}
1
+ {"version":3,"file":"control-target.d.ts","sourceRoot":"","sources":["../src/control-target.ts"],"names":[],"mappings":"AAUA,OAAO,EAYL,KAAK,QAAQ,EAEb,KAAK,OAAO,EACZ,KAAK,SAAS,EACf,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAuF,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AACtI,OAAO,EAA6C,KAAK,UAAU,EAA4B,MAAM,kBAAkB,CAAC;AAIxH;;yBAEyB;AACzB,MAAM,MAAM,WAAW,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtJ,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,WAAW,CAAC;IAClB;kEAC8D;IAC9D,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;6BAEyB;IACzB,IAAI,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1B,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;CAC/B;AAUD;;;;;;;;;;;GAWG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,OAAO,EAChB,UAAU,CAAC,EAAE,MAAM,EACnB,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7D,OAAO,CAAC,aAAa,CAAC,CA6DxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,wBAAwB,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAiD3H;AAED;;;;;+CAK+C;AAC/C,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG;IAAE,MAAM,EAAE,QAAQ,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAM3F"}
@@ -7,10 +7,13 @@
7
7
  * raw `--creds` path the space defaults to THIS FOLDER's `.cotal/auth` space rather than
8
8
  * `DEFAULT_SPACE`, because a control op addresses the manager of the folder's mesh.
9
9
  */
10
- import { DEFAULT_SPACE, DEV_OWNER, mintLifecycleUid, newIdentity, } from "@cotal-ai/core";
10
+ import { existsSync, readFileSync } from "node:fs";
11
+ import { DEFAULT_SPACE, DEV_OWNER, dialerFor, epCallerGrantRows, jwtFromCreds, mintCreds, mintLifecycleUid, newIdentity, readAcceptedRow, spawnCallerCapabilities, standaloneConnectOpts, } from "@cotal-ai/core";
12
+ import { agentLifecycleSecretFilePaths } from "./agent-secrets.js";
11
13
  import { authDir, findCotalRoot, soleSpaceOf } from "./auth-paths.js";
12
14
  import { connectOrExit, connectOrThrow, connectUserControlOrExit, endpointAuth, userViewAuth } from "./connect.js";
13
15
  import { isWorkspaceTargetError, resolveMeshTarget } from "./mesh-target.js";
16
+ import { findMesh } from "./mesh-registry.js";
14
17
  import { pruneStaleMeshes } from "./preflight.js";
15
18
  /** The only {@link MeshTargetErrorCode}s that mean "there is NO registry entry here", and so the
16
19
  * only ones the mode peek in {@link resolveControlTarget} may absorb. Every other code is
@@ -95,16 +98,103 @@ export async function resolveControlTarget(flags, profile, instanceId, opts = {}
95
98
  ...(conn.policy ? { policy: conn.policy } : {}),
96
99
  };
97
100
  }
101
+ /**
102
+ * The managed seat this process runs in, as THAT seat's own control target, or `undefined` outside
103
+ * one. A seat that shells out to `cotal` must reach the manager as itself, not as a fresh operator
104
+ * instrument: the manager records the requesting principal (a detached spawn's spawner, a run
105
+ * answer's answerer), and a one-shot instrument is a principal nothing can present again, so the
106
+ * seat could never stop the child it asked for (#718). Connection material is intentionally not
107
+ * inherited by shell children; the non-secret launch identity (`COTAL_NAME`, `COTAL_ID`,
108
+ * `COTAL_LIFECYCLE_UID`) names the seat, and when the launch also sets `COTAL_SPACE` only a command
109
+ * aimed at that registered space acts as it. A raw open target (`--server` plus an unregistered
110
+ * `--space`) keeps the operator resolution, as {@link connectOrThrow} orders it:
111
+ *
112
+ * - static mesh: the manager-owned lifecycle credential, whose accepted row (`COTAL_ACCEPTED_TOKEN`)
113
+ * resolves an issuer-bound generation that must name the same principal and lifecycle uid. That
114
+ * proof binds the space too, so a launch without `COTAL_SPACE` still acts as the seat, and a
115
+ * target whose space holds no such credential is refused rather than answered as someone else;
116
+ * - open mesh: no credential system, so the seat's declared triple is the caller, over the
117
+ * transport the registry records, and only when `COTAL_SPACE` names that space;
118
+ * - user-auth mesh: `undefined`, because the CLI's bearer and the seat share an owner and the
119
+ * manager's owner-domain rule already covers that pair.
120
+ *
121
+ * `instanceId` (`--on <instanceId>`) pins the call to one manager instance. The seat's standing
122
+ * credential holds class routes only, so on a static mesh the seat's proven principal and lifecycle
123
+ * uid get a one-shot `manager-caller` view instead, minted from the local signer like the operator
124
+ * instrument `--on` already gets: every request, describe included, is pinned to that instance, it
125
+ * carries the spawn set only when the seat's own credential holds it, and it expires in five minutes.
126
+ */
127
+ export async function resolveSeatControlTarget(flags, instanceId) {
128
+ const name = process.env.COTAL_NAME?.trim();
129
+ const actor = process.env.COTAL_ID?.trim();
130
+ const uid = process.env.COTAL_LIFECYCLE_UID?.trim();
131
+ const seatSpace = process.env.COTAL_SPACE?.trim();
132
+ const acceptedToken = process.env.COTAL_ACCEPTED_TOKEN?.trim();
133
+ if (!name || !actor || !uid || (!seatSpace && !acceptedToken))
134
+ return undefined;
135
+ if (flags.server && flags.space && !findMesh(flags.space))
136
+ return undefined;
137
+ // Sweep first when no space is named, as the operator resolution does, so a kept dead record is
138
+ // not a live candidate here either and the seat picks the same mesh the operator path would.
139
+ const offline = flags.space ? [] : (await pruneStaleMeshes()).offline;
140
+ const mesh = resolveMeshTarget(process.cwd(), { space: flags.space, server: flags.server, offline });
141
+ if (seatSpace && mesh.space !== seatSpace)
142
+ return undefined;
143
+ const at = { space: mesh.space, server: mesh.server, root: mesh.root, mode: mesh.mode, ...(mesh.policy ? { policy: mesh.policy } : {}) };
144
+ if (mesh.mode === "open")
145
+ return seatSpace ? { ...at, auth: { tls: mesh.tlsRequired, epCaller: { owner: DEV_OWNER, actor, uid } } } : undefined;
146
+ if (mesh.mode !== "auth" || !acceptedToken)
147
+ return undefined;
148
+ const path = agentLifecycleSecretFilePaths(mesh.root, mesh.space, name, uid).creds;
149
+ if (!existsSync(path))
150
+ throw new Error(`managed seat credential is missing at ${path}; refusing to act as a different caller`);
151
+ const creds = readFileSync(path, "utf8");
152
+ const nc = await dialerFor(mesh.server)({
153
+ servers: mesh.server,
154
+ ...standaloneConnectOpts({ creds, tls: mesh.tlsRequired }),
155
+ maxReconnectAttempts: 0,
156
+ });
157
+ let epCaller;
158
+ try {
159
+ const ref = await readAcceptedRow(nc, mesh.space, acceptedToken);
160
+ if (ref.owner !== DEV_OWNER || ref.actor !== actor || ref.uid !== uid)
161
+ throw new Error(`managed seat issuance resolves to ${ref.owner}.${ref.actor}/${ref.uid}, not ${DEV_OWNER}.${actor}/${uid}`);
162
+ epCaller = { owner: ref.owner, actor: ref.actor, uid: ref.uid, generation: ref.generation };
163
+ }
164
+ finally {
165
+ await nc.drain().catch(() => nc.close());
166
+ }
167
+ if (instanceId === undefined)
168
+ return { ...at, auth: { creds, tls: mesh.tlsRequired, epCaller } };
169
+ if (!mesh.auth)
170
+ throw new Error(`mesh "${mesh.space}" is a static-auth mesh but the seed under ${mesh.root} is missing, so no instance-pinned view can be minted for this seat`);
171
+ const jwt = jwtFromCreds(creds);
172
+ if (!jwt)
173
+ throw new Error(`managed seat credential at ${path} carries no NATS user JWT`);
174
+ const held = new Set(JSON.parse(Buffer.from(jwt.split(".")[1] ?? "", "base64url").toString("utf8")).nats?.pub?.allow ?? []);
175
+ const spawn = epCallerGrantRows(mesh.space, spawnCallerCapabilities(DEV_OWNER), epCaller).pub.every((row) => held.has(row));
176
+ const view = await mintCreds(mesh.auth, newIdentity(), "manager-caller", {
177
+ principal: { owner: DEV_OWNER, actor },
178
+ lifecycleUid: uid,
179
+ managerInstanceId: instanceId,
180
+ capabilities: spawn ? ["spawn"] : [],
181
+ expiresInSeconds: 5 * 60,
182
+ });
183
+ return { ...at, auth: { creds: view, tls: mesh.tlsRequired, epCaller: { owner: DEV_OWNER, actor, uid }, managerInstanceId: instanceId } };
184
+ }
98
185
  /** The caller triple a control call rides, or a refusal naming why the credential cannot. A user
99
186
  * bearer or a minted static instrument carries its own triple. An OPEN mesh has no credential
100
- * system: the manager registered under DEV_OWNER and the broker enforces nothing, so a fresh
101
- * DEV_OWNER triple is synthesized. A raw `--creds` file supplies no triple and that route cannot
102
- * mint one, so it is refused rather than silently downgraded. */
187
+ * system: the manager registered under DEV_OWNER and the broker enforces nothing, so the call rides
188
+ * the triple its target declares ({@link resolveSeatControlTarget}) or a freshly synthesized
189
+ * DEV_OWNER one. A raw `--creds` file supplies no triple and that route cannot mint one, so it is
190
+ * refused rather than silently downgraded. */
103
191
  export function controlCaller(auth) {
104
192
  if (auth.epCaller && (auth.creds || (auth.bearer && auth.sentinelCreds)))
105
193
  return { caller: auth.epCaller };
106
194
  if (auth.creds)
107
195
  return { refusal: "this control call has no endpoint-caller triple (owner, actor, lifecycle uid), and a raw --creds invocation cannot mint one; minting the file again changes nothing. Run the command from the mesh's project folder, or name the mesh with --space against its registry entry, so the CLI mints the one-shot instrument for you" };
196
+ if (auth.epCaller && !auth.bearer && !auth.sentinelCreds)
197
+ return { caller: auth.epCaller };
108
198
  return { caller: { owner: DEV_OWNER, actor: newIdentity().id, uid: mintLifecycleUid() } };
109
199
  }
110
200
  //# sourceMappingURL=control-target.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"control-target.js","sourceRoot":"","sources":["../src/control-target.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"control-target.js","sourceRoot":"","sources":["../src/control-target.ts"],"names":[],"mappings":"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"}
@@ -5,14 +5,21 @@ import { type ProcessIdentityRecord, type ProcessStartTokenReader } from "./pid.
5
5
  * exact manager pid plus the live stop reservation's inode, so another attempt cannot replay it. */
6
6
  export declare const MANAGER_SHUTDOWN_INTENT = "manager.{space}.shutdown-intent";
7
7
  export declare const MANAGER_SPARE_CAPABILITY = "manager.{space}.spare-capability";
8
+ /** What a manager's default stop does with its seats, as its spare capability records it. `release`
9
+ * leaves every seat running. `stop` also stops the seats that run inside the manager process (the
10
+ * in-process pty runtime), because they cannot outlive it, and releases the rest. */
11
+ export type ManagerSpareSeats = "release" | "stop";
8
12
  export interface ManagerShutdownDecision {
9
13
  withAgents: boolean;
10
14
  warning?: string;
11
15
  }
12
- /** Publish that this exact manager process can release its local runtime custody without reaping. */
13
- export declare function publishManagerSpareCapability(context: LocalProcessContext, capable: boolean, tokenAt?: ProcessStartTokenReader): void;
14
- /** Refuse a bare stop before SIGTERM when this exact manager cannot safely spare its PTY child. */
15
- export declare function assertManagerCanSpare(context: LocalProcessContext, tokenAt?: ProcessStartTokenReader, target?: ProcessIdentityRecord): void;
16
+ /** Publish what a default stop of this exact manager process does with its seats; `false` removes
17
+ * the record. A `release` record keeps the version 1 shape. A `stop` record is version 2, which an
18
+ * older CLI refuses instead of reporting the seats it stopped as spared. */
19
+ export declare function publishManagerSpareCapability(context: LocalProcessContext, seats: ManagerSpareSeats | false, tokenAt?: ProcessStartTokenReader): void;
20
+ /** Refuse a bare stop before SIGTERM unless this exact manager published a spare capability, and
21
+ * return what its default stop does with its seats. */
22
+ export declare function assertManagerCanSpare(context: LocalProcessContext, tokenAt?: ProcessStartTokenReader, target?: ProcessIdentityRecord): ManagerSpareSeats;
16
23
  /**
17
24
  * Durably arm a destructive shutdown for the exact manager and the exact live `cotal down` process
18
25
  * holding its `.stopping` reservation. Pinned targets use start tokens for both processes. A legacy
@@ -1 +1 @@
1
- {"version":3,"file":"manager-shutdown.d.ts","sourceRoot":"","sources":["../src/manager-shutdown.ts"],"names":[],"mappings":"AAYA,OAAO,EAA8C,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC1G,OAAO,EAML,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAE7B,MAAM,UAAU,CAAC;AAElB;;oGAEoG;AACpG,eAAO,MAAM,uBAAuB,oCAAoC,CAAC;AACzE,eAAO,MAAM,wBAAwB,qCAAqC,CAAC;AAkB3E,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA2FD,qGAAqG;AACrG,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,uBAA2C,GACnD,IAAI,CAQN;AAED,mGAAmG;AACnG,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,mBAAmB,EAC5B,OAAO,GAAE,uBAA2C,EACpD,MAAM,CAAC,EAAE,qBAAqB,GAC7B,IAAI,CAsBN;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE;IAAE,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,EAC9F,OAAO,GAAE,uBAA2C,GACnD,IAAI,CAkCN;AAED,kEAAkE;AAClE,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAI9E;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,mBAAmB,EAC5B,GAAG,GAAE,MAAoB,EACzB,OAAO,GAAE,uBAA2C,GACnD,uBAAuB,CAwDzB"}
1
+ {"version":3,"file":"manager-shutdown.d.ts","sourceRoot":"","sources":["../src/manager-shutdown.ts"],"names":[],"mappings":"AAYA,OAAO,EAA8C,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC1G,OAAO,EAML,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAE7B,MAAM,UAAU,CAAC;AAElB;;oGAEoG;AACpG,eAAO,MAAM,uBAAuB,oCAAoC,CAAC;AACzE,eAAO,MAAM,wBAAwB,qCAAqC,CAAC;AAE3E;;qFAEqF;AACrF,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,MAAM,CAAC;AAkBnD,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA2FD;;4EAE4E;AAC5E,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,iBAAiB,GAAG,KAAK,EAChC,OAAO,GAAE,uBAA2C,GACnD,IAAI,CAQN;AAED;uDACuD;AACvD,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,mBAAmB,EAC5B,OAAO,GAAE,uBAA2C,EACpD,MAAM,CAAC,EAAE,qBAAqB,GAC7B,iBAAiB,CA2BnB;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE;IAAE,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,EAC9F,OAAO,GAAE,uBAA2C,GACnD,IAAI,CAkCN;AAED,kEAAkE;AAClE,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAI9E;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,mBAAmB,EAC5B,GAAG,GAAE,MAAoB,EACzB,OAAO,GAAE,uBAA2C,GACnD,uBAAuB,CAwDzB"}
@@ -112,17 +112,20 @@ function publishAtomic(path, value) {
112
112
  rmSync(temp, { force: true });
113
113
  }
114
114
  }
115
- /** Publish that this exact manager process can release its local runtime custody without reaping. */
116
- export function publishManagerSpareCapability(context, capable, tokenAt = defaultStartToken) {
115
+ /** Publish what a default stop of this exact manager process does with its seats; `false` removes
116
+ * the record. A `release` record keeps the version 1 shape. A `stop` record is version 2, which an
117
+ * older CLI refuses instead of reporting the seats it stopped as spared. */
118
+ export function publishManagerSpareCapability(context, seats, tokenAt = defaultStartToken) {
117
119
  const path = canonicalLocalProcessPath(MANAGER_SPARE_CAPABILITY, context);
118
- if (!capable) {
120
+ if (!seats) {
119
121
  rmSync(path, { force: true });
120
122
  return;
121
123
  }
122
124
  const process = recordedManagerProcess(context, tokenAt);
123
- publishAtomic(path, { version: 1, process });
125
+ publishAtomic(path, seats === "release" ? { version: 1, process } : { version: 2, process, seats });
124
126
  }
125
- /** Refuse a bare stop before SIGTERM when this exact manager cannot safely spare its PTY child. */
127
+ /** Refuse a bare stop before SIGTERM unless this exact manager published a spare capability, and
128
+ * return what its default stop does with its seats. */
126
129
  export function assertManagerCanSpare(context, tokenAt = defaultStartToken, target) {
127
130
  const expected = recordedManagerProcess(context, tokenAt);
128
131
  if (target && (target.pid !== expected.pid || target.token !== expected.token))
@@ -142,9 +145,14 @@ export function assertManagerCanSpare(context, tokenAt = defaultStartToken, targ
142
145
  throw new Error(`refusing bare manager stop: malformed spare capability at ${path}`);
143
146
  const row = value;
144
147
  const process = row.process && typeof row.process === "object" && !Array.isArray(row.process) ? row.process : undefined;
145
- if (Object.keys(row).sort().join(",") !== "process,version" || row.version !== 1 || !process ||
148
+ const keys = Object.keys(row).sort().join(",");
149
+ const seats = row.version === 1 && keys === "process,version" ? "release"
150
+ : row.version === 2 && keys === "process,seats,version" && row.seats === "stop" ? "stop"
151
+ : undefined;
152
+ if (!seats || !process ||
146
153
  Object.keys(process).sort().join(",") !== "pid,token" || process.pid !== expected.pid || process.token !== expected.token)
147
154
  throw new Error(`refusing bare manager stop: spare capability at ${path} is malformed, stale, or belongs to a different manager process`);
155
+ return seats;
148
156
  }
149
157
  /**
150
158
  * Durably arm a destructive shutdown for the exact manager and the exact live `cotal down` process
@@ -1 +1 @@
1
- {"version":3,"file":"manager-shutdown.js","sourceRoot":"","sources":["../src/manager-shutdown.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager-shutdown.js","sourceRoot":"","sources":["../src/manager-shutdown.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,20 @@
4
4
  * from a directory or silently drop files — every read of config (persona file, mesh entry,
5
5
  * config.json layer) and every write (creds, seeded files) gets one dim arrow line. stderr so
6
6
  * it never pollutes machine-readable stdout; plain text so this layer needs no color dep.
7
+ *
8
+ * Failure policy: a line reports an act that already happened, so a fault on stderr must neither
9
+ * fail that act nor drop the line unsaid. When the stderr write throws or fails (EPIPE, ENOSPC,
10
+ * EIO), at once or after waiting in a full pipe, the line is written to stdout instead with the
11
+ * error named. If stdout fails too, no channel is left to carry the line, and a run that would exit
12
+ * 0 exits 1, so the loss is never silent. The deferred `error` event of a stream that failed a line
13
+ * is absorbed, so it cannot crash the command after its write and the command finishes its work,
14
+ * unless the program's own listener ends it, as the CLI's does on any stdout error. A line still
15
+ * waiting in a full pipe when the process exits, as when the CLI exits at once on a closed stdout,
16
+ * is lost the same way and counts the same. Node does not say whose bytes a stream still holds, so
17
+ * a line that had to wait and got through just before the exit also counts while later output
18
+ * still waits behind it: the check cannot tell it from a line still waiting, and counts both. The
19
+ * other bound: a stderr closed before the process starts is reopened by Node on /dev/null, which
20
+ * looks the same as an operator's `2>/dev/null`, so the line is discarded where the operator sent it.
7
21
  */
8
22
  export declare const provenance: {
9
23
  /** `→ using <what>: <source>` — the source that WON resolution (say which layer/path). */
@@ -1 +1 @@
1
- {"version":3,"file":"provenance.d.ts","sourceRoot":"","sources":["../src/provenance.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,UAAU;IACrB,0FAA0F;eAC/E,MAAM,UAAU,MAAM,GAAG,IAAI;IAGxC,sFAAsF;gBAC1E,MAAM,QAAQ,MAAM,GAAG,IAAI;IAGvC;;yGAEqG;kBACvF,MAAM,QAAQ,MAAM,GAAG,IAAI;CAG1C,CAAC"}
1
+ {"version":3,"file":"provenance.d.ts","sourceRoot":"","sources":["../src/provenance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,UAAU;IACrB,0FAA0F;eAC/E,MAAM,UAAU,MAAM,GAAG,IAAI;IAGxC,sFAAsF;gBAC1E,MAAM,QAAQ,MAAM,GAAG,IAAI;IAGvC;;yGAEqG;kBACvF,MAAM,QAAQ,MAAM,GAAG,IAAI;CAG1C,CAAC"}
@@ -4,21 +4,132 @@
4
4
  * from a directory or silently drop files — every read of config (persona file, mesh entry,
5
5
  * config.json layer) and every write (creds, seeded files) gets one dim arrow line. stderr so
6
6
  * it never pollutes machine-readable stdout; plain text so this layer needs no color dep.
7
+ *
8
+ * Failure policy: a line reports an act that already happened, so a fault on stderr must neither
9
+ * fail that act nor drop the line unsaid. When the stderr write throws or fails (EPIPE, ENOSPC,
10
+ * EIO), at once or after waiting in a full pipe, the line is written to stdout instead with the
11
+ * error named. If stdout fails too, no channel is left to carry the line, and a run that would exit
12
+ * 0 exits 1, so the loss is never silent. The deferred `error` event of a stream that failed a line
13
+ * is absorbed, so it cannot crash the command after its write and the command finishes its work,
14
+ * unless the program's own listener ends it, as the CLI's does on any stdout error. A line still
15
+ * waiting in a full pipe when the process exits, as when the CLI exits at once on a closed stdout,
16
+ * is lost the same way and counts the same. Node does not say whose bytes a stream still holds, so
17
+ * a line that had to wait and got through just before the exit also counts while later output
18
+ * still waits behind it: the check cannot tell it from a line still waiting, and counts both. The
19
+ * other bound: a stderr closed before the process starts is reopened by Node on /dev/null, which
20
+ * looks the same as an operator's `2>/dev/null`, so the line is discarded where the operator sent it.
7
21
  */
8
22
  export const provenance = {
9
23
  /** `→ using <what>: <source>` — the source that WON resolution (say which layer/path). */
10
24
  read(what, source) {
11
- process.stderr.write(`→ using ${what}: ${source}\n`);
25
+ say(`→ using ${what}: ${source}`);
12
26
  },
13
27
  /** `→ wrote <what>: <dest>` — announce every file the command created or replaced. */
14
28
  wrote(what, dest) {
15
- process.stderr.write(`→ wrote ${what}: ${dest}\n`);
29
+ say(`→ wrote ${what}: ${dest}`);
16
30
  },
17
31
  /** `→ removed <what>: <dest>`: announce every file or directory the command DELETED. A silent
18
32
  * delete is worse than a silent write, because the write at least leaves the thing it made while
19
33
  * the delete leaves nothing to notice. Destructive steps get the one line the additive ones get. */
20
34
  removed(what, dest) {
21
- process.stderr.write(`→ removed ${what}: ${dest}\n`);
35
+ say(`→ removed ${what}: ${dest}`);
22
36
  },
23
37
  };
38
+ let unsaid = false;
39
+ let watching = false;
40
+ /** Writes still waiting in a full pipe: neither finished nor failed. An exit drops them unwritten. */
41
+ const waiting = new Set();
42
+ /** Streams whose `error` event is absorbed: without a listener Node exits 1 on it. */
43
+ const absorbed = new Set();
44
+ /** Write one provenance line under the failure policy above: on stderr, else on stdout with the
45
+ * stderr error named, else counted as unsaid. */
46
+ function say(line) {
47
+ send(process.stderr, `${line}\n`, (failure) => {
48
+ send(process.stdout, `${line} (stderr failed: ${nameOf(failure)})\n`, lost);
49
+ });
50
+ }
51
+ /** A thrown value need not be an Error (`throw null`), and naming one must not throw, since that
52
+ * would interrupt the command this policy keeps running. */
53
+ function nameOf(failure) {
54
+ try {
55
+ const e = failure;
56
+ return String(e?.code ?? e?.message ?? failure);
57
+ }
58
+ catch {
59
+ return `unprintable ${typeof failure}`;
60
+ }
61
+ }
62
+ /** Write `text` to `stream`, calling `onFail` at most once if the write fails and absorbing the
63
+ * stream's `error` event from then on, since the policy above reports the failure. A write to a
64
+ * stream already ended fails before it is made: Node refuses it but says so only on a later tick,
65
+ * which an exit in the same tick never reaches. A write can fail before it returns: it throws, or
66
+ * the stream is already `errored` (one that failed earlier in the same tick buffers the text and
67
+ * then drops it). A write left pending in a full pipe fails later, through its callback, which Node
68
+ * runs before the stream emits `error`; until it settles it is `waiting`. One that left nothing
69
+ * buffered was written, though its callback runs on a later tick. */
70
+ function send(stream, text, onFail) {
71
+ const write = { stream };
72
+ let settled = false;
73
+ const settle = () => {
74
+ if (settled)
75
+ return false;
76
+ settled = true;
77
+ waiting.delete(write);
78
+ return true;
79
+ };
80
+ const fail = (failure) => {
81
+ if (!settle())
82
+ return;
83
+ if (!absorbed.has(stream)) {
84
+ absorbed.add(stream);
85
+ stream.on("error", () => { });
86
+ }
87
+ onFail(failure);
88
+ };
89
+ if (stream.writableEnded) {
90
+ fail("write after end");
91
+ return;
92
+ }
93
+ try {
94
+ stream.write(text, (e) => {
95
+ if (e)
96
+ fail(e);
97
+ else
98
+ settle();
99
+ });
100
+ }
101
+ catch (e) {
102
+ fail(e);
103
+ return;
104
+ }
105
+ if (stream.errored) {
106
+ fail(stream.errored);
107
+ }
108
+ else if (stream.writableLength > 0) {
109
+ waiting.add(write);
110
+ watchExit();
111
+ }
112
+ }
113
+ /** Neither channel carried a line. */
114
+ function lost() {
115
+ unsaid = true;
116
+ watchExit();
117
+ }
118
+ /** The exit status is the only signal left for a line no channel carried, or one still waiting when
119
+ * the process exits. A waiting write whose stream holds nothing more was flushed with its callback
120
+ * still queued, so it does not count. One whose stream still holds later bytes may have been
121
+ * flushed too, and counts. Set at exit, so it also holds when the command later resets
122
+ * `exitCode` or the CLI's stdout EPIPE handler exits 0. */
123
+ function watchExit() {
124
+ if (watching)
125
+ return;
126
+ watching = true;
127
+ process.on("exit", (code) => {
128
+ for (const w of waiting)
129
+ if (w.stream.writableLength > 0)
130
+ unsaid = true;
131
+ if (unsaid && code === 0)
132
+ process.exitCode = 1;
133
+ });
134
+ }
24
135
  //# sourceMappingURL=provenance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provenance.js","sourceRoot":"","sources":["../src/provenance.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,0FAA0F;IAC1F,IAAI,CAAC,IAAY,EAAE,MAAc;QAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC;IACvD,CAAC;IACD,sFAAsF;IACtF,KAAK,CAAC,IAAY,EAAE,IAAY;QAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC;IACrD,CAAC;IACD;;yGAEqG;IACrG,OAAO,CAAC,IAAY,EAAE,IAAY;QAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC;IACvD,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"provenance.js","sourceRoot":"","sources":["../src/provenance.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cotal-ai/workspace",
3
3
  "description": "Cotal machine-local workstation layer: the ~/.cotal mesh registry, target resolution, preflight, on-disk auth-path I/O, and the command-copy renderer — operator concerns over a local checkout, kept separate from the wire protocol in @cotal-ai/core.",
4
- "version": "0.60.0",
4
+ "version": "0.62.0",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
7
7
  "type": "git",
@@ -18,7 +18,7 @@
18
18
  }
19
19
  },
20
20
  "dependencies": {
21
- "@cotal-ai/core": "0.60.0"
21
+ "@cotal-ai/core": "0.62.0"
22
22
  },
23
23
  "devDependencies": {
24
24
  "@cotal-ai/smoke-kit": "0.0.0"