@cotal-ai/workspace 0.61.0 → 0.63.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.
- package/dist/control-target.d.ts +31 -12
- package/dist/control-target.d.ts.map +1 -1
- package/dist/control-target.js +94 -4
- package/dist/control-target.js.map +1 -1
- package/dist/cotal-config.d.ts +10 -0
- package/dist/cotal-config.d.ts.map +1 -0
- package/dist/cotal-config.js +29 -0
- package/dist/cotal-config.js.map +1 -0
- 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/manager-shutdown.d.ts +11 -4
- package/dist/manager-shutdown.d.ts.map +1 -1
- package/dist/manager-shutdown.js +14 -6
- package/dist/manager-shutdown.js.map +1 -1
- package/dist/provenance.d.ts +14 -0
- package/dist/provenance.d.ts.map +1 -1
- package/dist/provenance.js +114 -3
- package/dist/provenance.js.map +1 -1
- package/package.json +2 -2
package/dist/control-target.d.ts
CHANGED
|
@@ -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
|
|
58
|
-
*
|
|
59
|
-
*
|
|
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":"
|
|
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"}
|
package/dist/control-target.js
CHANGED
|
@@ -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 {
|
|
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
|
|
101
|
-
*
|
|
102
|
-
*
|
|
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":"AAAA;;;;;;;;GAQG;AACH,OAAO,EACL,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,WAAW,
|
|
1
|
+
{"version":3,"file":"control-target.js","sourceRoot":"","sources":["../src/control-target.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type McpServerSpec } from "@cotal-ai/core";
|
|
2
|
+
/** Record `servers` as what `connector` shares, in the operator-level cotal config, unless that file
|
|
3
|
+
* already declares a list for it: an existing list, even an empty one, is the operator's choice and
|
|
4
|
+
* is kept. Every other key in the file is preserved. Returns whether it wrote.
|
|
5
|
+
*
|
|
6
|
+
* The file is global, so setups run from two folders can seed at once. A lock held from the read to
|
|
7
|
+
* the rename makes the second one find the first one's list, and the rename means a spawn reading the
|
|
8
|
+
* file never sees it half-written. */
|
|
9
|
+
export declare function seedConnectorServers(connector: string, servers: Record<string, McpServerSpec>): boolean;
|
|
10
|
+
//# sourceMappingURL=cotal-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cotal-config.d.ts","sourceRoot":"","sources":["../src/cotal-config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAyC,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG3F;;;;;;uCAMuC;AACvC,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,OAAO,CAcvG"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { randomBytes } from "node:crypto";
|
|
2
|
+
import { renameSync, writeFileSync } from "node:fs";
|
|
3
|
+
import { globalConfigPath, readCotalConfigFile } from "@cotal-ai/core";
|
|
4
|
+
import { acquireLock } from "./advisory-lock.js";
|
|
5
|
+
/** Record `servers` as what `connector` shares, in the operator-level cotal config, unless that file
|
|
6
|
+
* already declares a list for it: an existing list, even an empty one, is the operator's choice and
|
|
7
|
+
* is kept. Every other key in the file is preserved. Returns whether it wrote.
|
|
8
|
+
*
|
|
9
|
+
* The file is global, so setups run from two folders can seed at once. A lock held from the read to
|
|
10
|
+
* the rename makes the second one find the first one's list, and the rename means a spawn reading the
|
|
11
|
+
* file never sees it half-written. */
|
|
12
|
+
export function seedConnectorServers(connector, servers) {
|
|
13
|
+
const path = globalConfigPath();
|
|
14
|
+
const held = acquireLock(`${path}.lock`, { label: `the seed lock for ${path}`, waitMs: 30_000, pollMs: 20 });
|
|
15
|
+
try {
|
|
16
|
+
const config = readCotalConfigFile(path);
|
|
17
|
+
if (config.connectors?.[connector]?.mcpServers !== undefined)
|
|
18
|
+
return false;
|
|
19
|
+
const connectors = { ...config.connectors, [connector]: { ...config.connectors?.[connector], mcpServers: servers } };
|
|
20
|
+
const tmp = `${path}.${randomBytes(6).toString("hex")}.tmp`;
|
|
21
|
+
writeFileSync(tmp, `${JSON.stringify({ ...config, connectors }, null, 2)}\n`, { flag: "wx" });
|
|
22
|
+
renameSync(tmp, path);
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
finally {
|
|
26
|
+
held.release();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=cotal-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cotal-config.js","sourceRoot":"","sources":["../src/cotal-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAsB,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD;;;;;;uCAMuC;AACvC,MAAM,UAAU,oBAAoB,CAAC,SAAiB,EAAE,OAAsC;IAC5F,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAC;IAChC,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,IAAI,OAAO,EAAE,EAAE,KAAK,EAAE,qBAAqB,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7G,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE,UAAU,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAC3E,MAAM,UAAU,GAAG,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;QACrH,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;QAC5D,aAAa,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9F,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;YAAS,CAAC;QACT,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export * from "./agent-health.js";
|
|
|
6
6
|
export * from "./bin-path.js";
|
|
7
7
|
export * from "./colors.js";
|
|
8
8
|
export * from "./connect.js";
|
|
9
|
+
export * from "./cotal-config.js";
|
|
9
10
|
export * from "./control-target.js";
|
|
10
11
|
export * from "./default-agent.js";
|
|
11
12
|
export * from "./official-connectors.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -6,6 +6,7 @@ export * from "./agent-health.js";
|
|
|
6
6
|
export * from "./bin-path.js";
|
|
7
7
|
export * from "./colors.js";
|
|
8
8
|
export * from "./connect.js";
|
|
9
|
+
export * from "./cotal-config.js";
|
|
9
10
|
export * from "./control-target.js";
|
|
10
11
|
export * from "./default-agent.js";
|
|
11
12
|
export * from "./official-connectors.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC"}
|
|
@@ -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
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
export declare function
|
|
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;
|
|
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"}
|
package/dist/manager-shutdown.js
CHANGED
|
@@ -112,17 +112,20 @@ function publishAtomic(path, value) {
|
|
|
112
112
|
rmSync(temp, { force: true });
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
|
-
/** Publish
|
|
116
|
-
|
|
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 (!
|
|
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
|
|
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
|
-
|
|
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":"AAAA,OAAO,EACL,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,MAAM,EACN,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,yBAAyB,EAAE,eAAe,EAA4B,MAAM,oBAAoB,CAAC;AAC1G,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,QAAQ,EACR,WAAW,EACX,aAAa,EAGb,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAElB;;oGAEoG;AACpG,MAAM,CAAC,MAAM,uBAAuB,GAAG,iCAAiC,CAAC;AACzE,MAAM,CAAC,MAAM,wBAAwB,GAAG,kCAAkC,CAAC;AAuB3E,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAClF,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,+BAA+B;QAAE,OAAO,SAAS,CAAC;IAC5F,IAAI,GAAG,CAAC,MAAM,KAAK,aAAa;QAAE,OAAO,SAAS,CAAC;IACnD,MAAM,WAAW,GAAG,CAAC,KAAc,EAAqC,EAAE;QACxE,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAClF,MAAM,OAAO,GAAG,KAAgC,CAAC;QACjD,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,WAAW;YAAE,OAAO,SAAS,CAAC;QAC5E,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,OAAO,CAAC,GAAG;YAAE,OAAO,SAAS,CAAC;QACvG,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAC5G,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;IACpD,CAAC,CAAC;IACF,IAAI,GAAG,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAChG,CAAC;IACD,IAAI,GAAG,CAAC,OAAO,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACxC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAiC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9I,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAkC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnJ,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC1J,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,iBAAiB;QACvE,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,OAAO,CAAC,GAAG;QAChF,OAAO,OAAO,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,SAAS,CAAC;IACxG,OAAO;QACL,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,aAAa;QACrB,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE;QAC3B,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE;KAChE,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACvC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IAC/G,OAAO,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;AACnC,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,IAAI,EAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QAClC,SAAS,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,8FAA8F;QAC9F,2FAA2F;QAC3F,8FAA8F;QAC9F,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;YAAE,MAAM,KAAK,CAAC;IAChD,CAAC;YAAS,CAAC;QACT,IAAI,EAAE,KAAK,SAAS;YAAE,SAAS,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,OAA4B,EAAE,OAAgC;IAC5F,MAAM,OAAO,GAAG,yBAAyB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IACpE,MAAM,GAAG,GAAG,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IACpD,IAAI,GAAG,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,OAAO,EAAE,CAAC,CAAC;IAC1F,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,cAAc,OAAO,8BAA8B,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG;QACvD,MAAM,IAAI,KAAK,CAAC,+DAA+D,OAAO,EAAE,CAAC,CAAC;IAC5F,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7D,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7F,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB,CAAC;AAED,SAAS,aAAa,CAAC,IAAY,EAAE,KAAc;IACjD,MAAM,IAAI,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;IAC5E,IAAI,EAAsB,CAAC;IAC3B,IAAI,CAAC;QACH,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACjC,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACzC,SAAS,CAAC,EAAE,CAAC,CAAC;QACd,SAAS,CAAC,EAAE,CAAC,CAAC;QACd,EAAE,GAAG,SAAS,CAAC;QACf,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACvB,aAAa,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;YAAS,CAAC;QACT,IAAI,EAAE,KAAK,SAAS;YAAE,SAAS,CAAC,EAAE,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAChC,CAAC;AACH,CAAC;AAED,qGAAqG;AACrG,MAAM,UAAU,6BAA6B,CAC3C,OAA4B,EAC5B,OAAgB,EAChB,UAAmC,iBAAiB;IAEpD,MAAM,IAAI,GAAG,yBAAyB,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;IAC1E,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9B,OAAO;IACT,CAAC;IACD,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACzD,aAAa,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,qBAAqB,CACnC,OAA4B,EAC5B,UAAmC,iBAAiB,EACpD,MAA8B;IAE9B,MAAM,QAAQ,GAAG,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1D,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,IAAI,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC;QAC5E,MAAM,IAAI,KAAK,CAAC,6FAA6F,CAAC,CAAC;IACjH,MAAM,IAAI,GAAG,yBAAyB,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;IAC1E,IAAI,KAAc,CAAC;IACnB,IAAI,CAAC;QACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CACb,+BAA+B,IAAI,4DAA4D;YAC/F,yGAAyG;YACzG,2GAA2G;YAC3G,+FAA+F,CAChG,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,6DAA6D,IAAI,EAAE,CAAC,CAAC;IACtJ,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAkC,CAAC,CAAC,CAAC,SAAS,CAAC;IACnJ,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,iBAAiB,IAAI,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO;QACxF,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,IAAI,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK;QAC3H,MAAM,IAAI,KAAK,CAAC,mDAAmD,IAAI,iEAAiE,CAAC,CAAC;AAC9I,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAA4B,EAC5B,OAA8F,EAC9F,UAAmC,iBAAiB;IAEpD,MAAM,OAAO,GAAG,yBAAyB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IACpE,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,GAAG,OAAO,WAAW;QAClD,MAAM,IAAI,KAAK,CAAC,+GAA+G,CAAC,CAAC;IACnI,IAAI,UAA8B,CAAC;IACnC,IAAI,CAAC;QAAC,UAAU,GAAG,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,UAAU,GAAG,SAAS,CAAC;IAAC,CAAC;IAC9G,IAAI,UAAU,KAAK,SAAS;QAC1B,MAAM,IAAI,KAAK,CAAC,sHAAsH,CAAC,CAAC;IAC1I,IAAI,UAAU,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG;QACpC,MAAM,IAAI,KAAK,CAAC,4GAA4G,CAAC,CAAC;IAChI,MAAM,IAAI,GAAG,yBAAyB,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;IACzE,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACvC,MAAM,WAAW,GAAG,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QAC5D,IAAI,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG;YACpC,MAAM,IAAI,KAAK,CAAC,wIAAwI,CAAC,CAAC;QAC5J,aAAa,CAAC,IAAI,EAAE;YAClB,OAAO,EAAE,CAAC;YACV,MAAM,EAAE,aAAa;YACrB,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE;YACnC,OAAO,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;SACjD,CAAC,CAAC;QACzC,OAAO;IACT,CAAC;IACD,MAAM,cAAc,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAChF,IAAI,QAA+B,CAAC;IACpC,IAAI,CAAC;QAAC,QAAQ,GAAG,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAAC,CAAC;IAC5D,OAAO,CAAC,EAAE,CAAC;QAAC,MAAM,IAAI,KAAK,CAAC,6BAA8B,CAAW,CAAC,OAAO,wCAAwC,CAAC,CAAC;IAAC,CAAC;IACzH,IAAI,QAAQ,CAAC,GAAG,KAAK,cAAc,CAAC,GAAG,IAAI,QAAQ,CAAC,KAAK,KAAK,cAAc,CAAC,KAAK;QAChF,MAAM,IAAI,KAAK,CAAC,iIAAiI,CAAC,CAAC;IACrJ,MAAM,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACzC,IAAI,YAAY,KAAK,SAAS;QAC5B,MAAM,IAAI,KAAK,CAAC,mIAAmI,CAAC,CAAC;IACvJ,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IACzD,aAAa,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAkC,CAAC,CAAC;AAC9H,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,2BAA2B,CAAC,OAA4B;IACtE,MAAM,IAAI,GAAG,yBAAyB,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;IACzE,MAAM,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9B,aAAa,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,4BAA4B,CAC1C,OAA4B,EAC5B,MAAc,OAAO,CAAC,GAAG,EACzB,UAAmC,iBAAiB;IAEpD,MAAM,IAAI,GAAG,yBAAyB,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;IACzE,MAAM,OAAO,GAAG,GAAG,IAAI,IAAI,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC;IAC7E,IAAI,CAAC;QACH,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAK,CAA2B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QACjF,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,4CAA6C,CAAW,CAAC,OAAO,EAAE,EAAE,CAAC;IAC5G,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE;YACzC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,kEAAkE,EAAE,CAAC;QAC5G,IAAI,MAAyC,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAClE,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,GAAG,SAAS,CAAC;QACrB,CAAC;QACD,IAAI,CAAC,MAAM;YACT,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,uEAAuE,EAAE,CAAC;QACjH,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG;YAC3B,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,2FAA2F,EAAE,CAAC;QACrI,MAAM,OAAO,GAAG,yBAAyB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QACpE,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YACzB,IAAI,WAA+B,CAAC;YACpC,IAAI,CAAC;gBAAC,WAAW,GAAG,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,WAAW,GAAG,SAAS,CAAC;YAAC,CAAC;YACjG,IAAI,WAAW,KAAK,GAAG;gBACrB,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,2GAA2G,EAAE,CAAC;YACrJ,IAAI,gBAAoC,CAAC;YACzC,IAAI,CAAC;gBAAC,gBAAgB,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,OAAO,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,gBAAgB,GAAG,SAAS,CAAC;YAAC,CAAC;YACzH,IAAI,gBAAgB,KAAK,MAAM,CAAC,OAAO,CAAC,GAAG;gBACzC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,wGAAwG,EAAE,CAAC;YAClJ,IAAI,WAA+B,CAAC;YACpC,IAAI,CAAC;gBAAC,WAAW,GAAG,mBAAmB,CAAC,GAAG,OAAO,WAAW,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,WAAW,GAAG,SAAS,CAAC;YAAC,CAAC;YACpG,IAAI,WAAW,KAAK,MAAM,CAAC,OAAO,CAAC,WAAW;gBAC5C,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,+GAA+G,EAAE,CAAC;YACzJ,IAAI,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM;gBAC9C,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,8GAA8G,EAAE,CAAC;YACxJ,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QAC9B,CAAC;QACD,MAAM,aAAa,GAAG,oBAAoB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnE,IAAI,aAAa,CAAC,IAAI,KAAK,OAAO;YAChC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,wCAAwC,aAAa,CAAC,IAAI,8CAA8C,EAAE,CAAC;QAClJ,IAAI,gBAAoC,CAAC;QACzC,IAAI,CAAC;YAAC,gBAAgB,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,OAAO,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,gBAAgB,GAAG,SAAS,CAAC;QAAC,CAAC;QACzH,IAAI,gBAAgB,KAAK,MAAM,CAAC,OAAO,CAAC,GAAG;YACzC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,iGAAiG,EAAE,CAAC;QAC3I,MAAM,cAAc,GAAG,oBAAoB,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACrE,IAAI,cAAc,CAAC,IAAI,KAAK,OAAO;YACjC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,wCAAwC,cAAc,CAAC,IAAI,+CAA+C,EAAE,CAAC;QACpJ,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAC9B,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACnC,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"manager-shutdown.js","sourceRoot":"","sources":["../src/manager-shutdown.ts"],"names":[],"mappings":"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"}
|
package/dist/provenance.d.ts
CHANGED
|
@@ -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). */
|
package/dist/provenance.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provenance.d.ts","sourceRoot":"","sources":["../src/provenance.ts"],"names":[],"mappings":"AAAA
|
|
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"}
|
package/dist/provenance.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
package/dist/provenance.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provenance.js","sourceRoot":"","sources":["../src/provenance.ts"],"names":[],"mappings":"AAAA
|
|
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.
|
|
4
|
+
"version": "0.63.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.
|
|
21
|
+
"@cotal-ai/core": "0.63.0"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
24
|
"@cotal-ai/smoke-kit": "0.0.0"
|