@cotal-ai/workspace 0.48.2 → 0.49.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/advisory-lock.d.ts.map +1 -1
- package/dist/advisory-lock.js +6 -4
- package/dist/advisory-lock.js.map +1 -1
- package/dist/auth-paths.d.ts +8 -0
- package/dist/auth-paths.d.ts.map +1 -1
- package/dist/auth-paths.js +25 -1
- package/dist/auth-paths.js.map +1 -1
- package/dist/connect.d.ts +5 -6
- package/dist/connect.d.ts.map +1 -1
- package/dist/connect.js +53 -23
- package/dist/connect.js.map +1 -1
- package/dist/control-target.d.ts.map +1 -1
- package/dist/control-target.js +8 -4
- package/dist/control-target.js.map +1 -1
- package/dist/flags.d.ts +6 -0
- package/dist/flags.d.ts.map +1 -1
- package/dist/flags.js +13 -0
- package/dist/flags.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/manager-shutdown.d.ts +40 -0
- package/dist/manager-shutdown.d.ts.map +1 -0
- package/dist/manager-shutdown.js +287 -0
- package/dist/manager-shutdown.js.map +1 -0
- package/dist/mesh-registry.d.ts +27 -11
- package/dist/mesh-registry.d.ts.map +1 -1
- package/dist/mesh-registry.js +3 -14
- package/dist/mesh-registry.js.map +1 -1
- package/dist/mesh-target.d.ts +10 -1
- package/dist/mesh-target.d.ts.map +1 -1
- package/dist/mesh-target.js +25 -9
- package/dist/mesh-target.js.map +1 -1
- package/dist/pid.d.ts +29 -15
- package/dist/pid.d.ts.map +1 -1
- package/dist/pid.js +53 -15
- package/dist/pid.js.map +1 -1
- package/dist/preflight.d.ts +4 -4
- package/dist/preflight.d.ts.map +1 -1
- package/dist/preflight.js +10 -9
- package/dist/preflight.js.map +1 -1
- package/dist/render.js +4 -1
- package/dist/render.js.map +1 -1
- package/dist/secret-store-fs.d.ts +3 -2
- package/dist/secret-store-fs.d.ts.map +1 -1
- package/dist/secret-store-fs.js +5 -2
- package/dist/secret-store-fs.js.map +1 -1
- package/package.json +6 -3
package/dist/flags.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flags.js","sourceRoot":"","sources":["../src/flags.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"flags.js","sourceRoot":"","sources":["../src/flags.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export * from "./extensions.js";
|
|
|
13
13
|
export * from "./materialize.js";
|
|
14
14
|
export * from "./local-process.js";
|
|
15
15
|
export * from "./maintenance.js";
|
|
16
|
+
export * from "./manager-shutdown.js";
|
|
16
17
|
export * from "./flags.js";
|
|
17
18
|
export * from "./provenance.js";
|
|
18
19
|
export * from "./mesh-registry.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,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,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,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,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,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,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
|
@@ -13,6 +13,7 @@ export * from "./extensions.js";
|
|
|
13
13
|
export * from "./materialize.js";
|
|
14
14
|
export * from "./local-process.js";
|
|
15
15
|
export * from "./maintenance.js";
|
|
16
|
+
export * from "./manager-shutdown.js";
|
|
16
17
|
export * from "./flags.js";
|
|
17
18
|
export * from "./provenance.js";
|
|
18
19
|
export * from "./mesh-registry.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,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,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,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,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,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,YAAY,CAAC;AAC3B,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type LocalProcessContext } from "./local-process.js";
|
|
2
|
+
import { type ProcessIdentityRecord, type ProcessStartTokenReader } from "./pid.js";
|
|
3
|
+
/** One-shot policy handoff written by `cotal down --with-agents` before it signals the manager.
|
|
4
|
+
* Version 1 binds stable process-start tokens. Version 2 is the honest legacy/Windows fallback:
|
|
5
|
+
* exact manager pid plus the live stop reservation's inode, so another attempt cannot replay it. */
|
|
6
|
+
export declare const MANAGER_SHUTDOWN_INTENT = "manager.{space}.shutdown-intent";
|
|
7
|
+
export declare const MANAGER_SPARE_CAPABILITY = "manager.{space}.spare-capability";
|
|
8
|
+
export interface ManagerShutdownDecision {
|
|
9
|
+
withAgents: boolean;
|
|
10
|
+
warning?: string;
|
|
11
|
+
}
|
|
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
|
+
/**
|
|
17
|
+
* Durably arm a destructive shutdown for the exact manager and the exact live `cotal down` process
|
|
18
|
+
* holding its `.stopping` reservation. Pinned targets use start tokens for both processes. A legacy
|
|
19
|
+
* target has no token by definition, so it binds the recorded pid plus the reservation inode and a
|
|
20
|
+
* live reservation owner. This is called only from stopLocalProcess's before-signal hook. If that
|
|
21
|
+
* stopper crashes, or another attempt replaces the reservation inode, the intent cannot replay.
|
|
22
|
+
*/
|
|
23
|
+
export declare function armManagerShutdownIntent(context: LocalProcessContext, attempt: {
|
|
24
|
+
target: {
|
|
25
|
+
pid: number;
|
|
26
|
+
token?: string;
|
|
27
|
+
};
|
|
28
|
+
stopper: {
|
|
29
|
+
pid: number;
|
|
30
|
+
marker: string;
|
|
31
|
+
};
|
|
32
|
+
}, tokenAt?: ProcessStartTokenReader): void;
|
|
33
|
+
/** Remove an armed intent when SIGTERM could not be delivered. */
|
|
34
|
+
export declare function disarmManagerShutdownIntent(context: LocalProcessContext): void;
|
|
35
|
+
/**
|
|
36
|
+
* Claim and consume the one-shot intent before choosing the signal shutdown policy. Malformed,
|
|
37
|
+
* stale, symlinked, or process-mismatched files are consumed as spare decisions, never replayed.
|
|
38
|
+
*/
|
|
39
|
+
export declare function consumeManagerShutdownIntent(context: LocalProcessContext, pid?: number, tokenAt?: ProcessStartTokenReader): ManagerShutdownDecision;
|
|
40
|
+
//# sourceMappingURL=manager-shutdown.d.ts.map
|
|
@@ -0,0 +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,CAiBN;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"}
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
import { closeSync, fsyncSync, lstatSync, openSync, readFileSync, renameSync, rmSync, writeFileSync, } from "node:fs";
|
|
2
|
+
import { dirname } from "node:path";
|
|
3
|
+
import { randomBytes } from "node:crypto";
|
|
4
|
+
import { canonicalLocalProcessPath, MANAGER_PIDFILE } from "./local-process.js";
|
|
5
|
+
import { assertRecordIdentity, identityPinPath, parsePid, parseRecord, probeLiveness, defaultStartToken, } from "./pid.js";
|
|
6
|
+
/** One-shot policy handoff written by `cotal down --with-agents` before it signals the manager.
|
|
7
|
+
* Version 1 binds stable process-start tokens. Version 2 is the honest legacy/Windows fallback:
|
|
8
|
+
* exact manager pid plus the live stop reservation's inode, so another attempt cannot replay it. */
|
|
9
|
+
export const MANAGER_SHUTDOWN_INTENT = "manager.{space}.shutdown-intent";
|
|
10
|
+
export const MANAGER_SPARE_CAPABILITY = "manager.{space}.spare-capability";
|
|
11
|
+
function exactIntent(value) {
|
|
12
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
13
|
+
return undefined;
|
|
14
|
+
const row = value;
|
|
15
|
+
if (Object.keys(row).sort().join(",") !== "policy,stopper,target,version")
|
|
16
|
+
return undefined;
|
|
17
|
+
if (row.policy !== "with-agents")
|
|
18
|
+
return undefined;
|
|
19
|
+
const exactRecord = (value) => {
|
|
20
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
21
|
+
return undefined;
|
|
22
|
+
const process = value;
|
|
23
|
+
if (Object.keys(process).sort().join(",") !== "pid,token")
|
|
24
|
+
return undefined;
|
|
25
|
+
if (typeof process.pid !== "number" || parsePid(String(process.pid)) !== process.pid)
|
|
26
|
+
return undefined;
|
|
27
|
+
if (typeof process.token !== "string" || process.token === "" || /\s/.test(process.token))
|
|
28
|
+
return undefined;
|
|
29
|
+
return { pid: process.pid, token: process.token };
|
|
30
|
+
};
|
|
31
|
+
if (row.version === 1) {
|
|
32
|
+
const target = exactRecord(row.target);
|
|
33
|
+
const stopper = exactRecord(row.stopper);
|
|
34
|
+
return target && stopper ? { version: 1, policy: "with-agents", target, stopper } : undefined;
|
|
35
|
+
}
|
|
36
|
+
if (row.version !== 2)
|
|
37
|
+
return undefined;
|
|
38
|
+
const target = row.target && typeof row.target === "object" && !Array.isArray(row.target) ? row.target : undefined;
|
|
39
|
+
const stopper = row.stopper && typeof row.stopper === "object" && !Array.isArray(row.stopper) ? row.stopper : undefined;
|
|
40
|
+
if (!target || Object.keys(target).join(",") !== "pid" || typeof target.pid !== "number" || parsePid(String(target.pid)) !== target.pid)
|
|
41
|
+
return undefined;
|
|
42
|
+
if (!stopper || Object.keys(stopper).sort().join(",") !== "pid,reservation" ||
|
|
43
|
+
typeof stopper.pid !== "number" || parsePid(String(stopper.pid)) !== stopper.pid ||
|
|
44
|
+
typeof stopper.reservation !== "string" || !/^\d+:\d+$/.test(stopper.reservation))
|
|
45
|
+
return undefined;
|
|
46
|
+
return {
|
|
47
|
+
version: 2,
|
|
48
|
+
policy: "with-agents",
|
|
49
|
+
target: { pid: target.pid },
|
|
50
|
+
stopper: { pid: stopper.pid, reservation: stopper.reservation },
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
function reservationIdentity(path) {
|
|
54
|
+
const stat = lstatSync(path);
|
|
55
|
+
if (!stat.isFile() || stat.isSymbolicLink())
|
|
56
|
+
throw new Error("manager stop reservation is not a regular file");
|
|
57
|
+
return `${stat.dev}:${stat.ino}`;
|
|
58
|
+
}
|
|
59
|
+
function syncDirectory(path) {
|
|
60
|
+
let fd;
|
|
61
|
+
try {
|
|
62
|
+
fd = openSync(dirname(path), "r");
|
|
63
|
+
fsyncSync(fd);
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
// Windows does not support opening/fsyncing a directory. Keep the file fsync + atomic rename,
|
|
67
|
+
// while preserving the parent-directory durability barrier as a correctness requirement on
|
|
68
|
+
// every platform that implements it. This mirrors maintenance's established portability rule.
|
|
69
|
+
if (process.platform !== "win32")
|
|
70
|
+
throw error;
|
|
71
|
+
}
|
|
72
|
+
finally {
|
|
73
|
+
if (fd !== undefined)
|
|
74
|
+
closeSync(fd);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
function recordedManagerProcess(context, tokenAt) {
|
|
78
|
+
const pidPath = canonicalLocalProcessPath(MANAGER_PIDFILE, context);
|
|
79
|
+
const pid = parsePid(readFileSync(pidPath, "utf8"));
|
|
80
|
+
if (pid === undefined)
|
|
81
|
+
throw new Error(`manager pidfile is unattributable at ${pidPath}`);
|
|
82
|
+
let rawPin;
|
|
83
|
+
try {
|
|
84
|
+
rawPin = readFileSync(identityPinPath(pidPath), "utf8");
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
throw new Error(`manager at ${pidPath} has no process identity pin`);
|
|
88
|
+
}
|
|
89
|
+
const parsed = parseRecord(rawPin);
|
|
90
|
+
if (parsed.kind !== "record" || parsed.record.pid !== pid)
|
|
91
|
+
throw new Error(`manager process identity pin is malformed or does not match ${pidPath}`);
|
|
92
|
+
const verdict = assertRecordIdentity(parsed.record, tokenAt);
|
|
93
|
+
if (verdict.kind !== "match")
|
|
94
|
+
throw new Error(`manager process identity is ${verdict.kind}`);
|
|
95
|
+
return parsed.record;
|
|
96
|
+
}
|
|
97
|
+
function publishAtomic(path, value) {
|
|
98
|
+
const temp = `${path}.${process.pid}.${randomBytes(6).toString("hex")}.tmp`;
|
|
99
|
+
let fd;
|
|
100
|
+
try {
|
|
101
|
+
fd = openSync(temp, "wx", 0o600);
|
|
102
|
+
writeFileSync(fd, JSON.stringify(value));
|
|
103
|
+
fsyncSync(fd);
|
|
104
|
+
closeSync(fd);
|
|
105
|
+
fd = undefined;
|
|
106
|
+
renameSync(temp, path);
|
|
107
|
+
syncDirectory(path);
|
|
108
|
+
}
|
|
109
|
+
finally {
|
|
110
|
+
if (fd !== undefined)
|
|
111
|
+
closeSync(fd);
|
|
112
|
+
rmSync(temp, { force: true });
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/** Publish that this exact manager process can release its local runtime custody without reaping. */
|
|
116
|
+
export function publishManagerSpareCapability(context, capable, tokenAt = defaultStartToken) {
|
|
117
|
+
const path = canonicalLocalProcessPath(MANAGER_SPARE_CAPABILITY, context);
|
|
118
|
+
if (!capable) {
|
|
119
|
+
rmSync(path, { force: true });
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
const process = recordedManagerProcess(context, tokenAt);
|
|
123
|
+
publishAtomic(path, { version: 1, process });
|
|
124
|
+
}
|
|
125
|
+
/** Refuse a bare stop before SIGTERM when this exact manager cannot safely spare its PTY child. */
|
|
126
|
+
export function assertManagerCanSpare(context, tokenAt = defaultStartToken, target) {
|
|
127
|
+
const expected = recordedManagerProcess(context, tokenAt);
|
|
128
|
+
if (target && (target.pid !== expected.pid || target.token !== expected.token))
|
|
129
|
+
throw new Error("refusing bare manager stop: stop attempt target does not match the recorded manager process");
|
|
130
|
+
const path = canonicalLocalProcessPath(MANAGER_SPARE_CAPABILITY, context);
|
|
131
|
+
let value;
|
|
132
|
+
try {
|
|
133
|
+
value = JSON.parse(readFileSync(path, "utf8"));
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
throw new Error(`refusing bare manager stop: ${path} does not prove this manager can detach its agents; use --with-agents or stop the agents explicitly`);
|
|
137
|
+
}
|
|
138
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
139
|
+
throw new Error(`refusing bare manager stop: malformed spare capability at ${path}`);
|
|
140
|
+
const row = value;
|
|
141
|
+
const process = row.process && typeof row.process === "object" && !Array.isArray(row.process) ? row.process : undefined;
|
|
142
|
+
if (Object.keys(row).sort().join(",") !== "process,version" || row.version !== 1 || !process ||
|
|
143
|
+
Object.keys(process).sort().join(",") !== "pid,token" || process.pid !== expected.pid || process.token !== expected.token)
|
|
144
|
+
throw new Error(`refusing bare manager stop: spare capability at ${path} is malformed, stale, or belongs to a different manager process`);
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Durably arm a destructive shutdown for the exact manager and the exact live `cotal down` process
|
|
148
|
+
* holding its `.stopping` reservation. Pinned targets use start tokens for both processes. A legacy
|
|
149
|
+
* target has no token by definition, so it binds the recorded pid plus the reservation inode and a
|
|
150
|
+
* live reservation owner. This is called only from stopLocalProcess's before-signal hook. If that
|
|
151
|
+
* stopper crashes, or another attempt replaces the reservation inode, the intent cannot replay.
|
|
152
|
+
*/
|
|
153
|
+
export function armManagerShutdownIntent(context, attempt, tokenAt = defaultStartToken) {
|
|
154
|
+
const pidPath = canonicalLocalProcessPath(MANAGER_PIDFILE, context);
|
|
155
|
+
if (attempt.stopper.marker !== `${pidPath}.stopping`)
|
|
156
|
+
throw new Error("cannot arm --with-agents: stop reservation marker is not this manager's; destructive policy was not published");
|
|
157
|
+
let stopperPid;
|
|
158
|
+
try {
|
|
159
|
+
stopperPid = parsePid(readFileSync(attempt.stopper.marker, "utf8"));
|
|
160
|
+
}
|
|
161
|
+
catch {
|
|
162
|
+
stopperPid = undefined;
|
|
163
|
+
}
|
|
164
|
+
if (stopperPid === undefined)
|
|
165
|
+
throw new Error("cannot arm --with-agents: manager stop reservation is absent or unattributable; destructive policy was not published");
|
|
166
|
+
if (stopperPid !== attempt.stopper.pid)
|
|
167
|
+
throw new Error("cannot arm --with-agents: stop reservation owner is not this process; destructive policy was not published");
|
|
168
|
+
const path = canonicalLocalProcessPath(MANAGER_SHUTDOWN_INTENT, context);
|
|
169
|
+
if (attempt.target.token === undefined) {
|
|
170
|
+
const recordedPid = parsePid(readFileSync(pidPath, "utf8"));
|
|
171
|
+
if (recordedPid !== attempt.target.pid)
|
|
172
|
+
throw new Error("cannot arm --with-agents: stop attempt target does not match the recorded legacy manager process; destructive policy was not published");
|
|
173
|
+
publishAtomic(path, {
|
|
174
|
+
version: 2,
|
|
175
|
+
policy: "with-agents",
|
|
176
|
+
target: { pid: attempt.target.pid },
|
|
177
|
+
stopper: { pid: stopperPid, reservation: reservationIdentity(attempt.stopper.marker) },
|
|
178
|
+
});
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
const managerProcess = { pid: attempt.target.pid, token: attempt.target.token };
|
|
182
|
+
let recorded;
|
|
183
|
+
try {
|
|
184
|
+
recorded = recordedManagerProcess(context, tokenAt);
|
|
185
|
+
}
|
|
186
|
+
catch (e) {
|
|
187
|
+
throw new Error(`cannot arm --with-agents: ${e.message}; destructive policy was not published`);
|
|
188
|
+
}
|
|
189
|
+
if (recorded.pid !== managerProcess.pid || recorded.token !== managerProcess.token)
|
|
190
|
+
throw new Error("cannot arm --with-agents: stop attempt target does not match the recorded manager process; destructive policy was not published");
|
|
191
|
+
const stopperToken = tokenAt(stopperPid);
|
|
192
|
+
if (stopperToken === undefined)
|
|
193
|
+
throw new Error("cannot arm --with-agents: manager stop reservation owner has no verifiable process identity; destructive policy was not published");
|
|
194
|
+
const stopper = { pid: stopperPid, token: stopperToken };
|
|
195
|
+
publishAtomic(path, { version: 1, policy: "with-agents", target: managerProcess, stopper });
|
|
196
|
+
}
|
|
197
|
+
/** Remove an armed intent when SIGTERM could not be delivered. */
|
|
198
|
+
export function disarmManagerShutdownIntent(context) {
|
|
199
|
+
const path = canonicalLocalProcessPath(MANAGER_SHUTDOWN_INTENT, context);
|
|
200
|
+
rmSync(path, { force: true });
|
|
201
|
+
syncDirectory(path);
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Claim and consume the one-shot intent before choosing the signal shutdown policy. Malformed,
|
|
205
|
+
* stale, symlinked, or process-mismatched files are consumed as spare decisions, never replayed.
|
|
206
|
+
*/
|
|
207
|
+
export function consumeManagerShutdownIntent(context, pid = process.pid, tokenAt = defaultStartToken) {
|
|
208
|
+
const path = canonicalLocalProcessPath(MANAGER_SHUTDOWN_INTENT, context);
|
|
209
|
+
const claimed = `${path}.${pid}.${randomBytes(6).toString("hex")}.consuming`;
|
|
210
|
+
try {
|
|
211
|
+
renameSync(path, claimed);
|
|
212
|
+
}
|
|
213
|
+
catch (e) {
|
|
214
|
+
if (e.code === "ENOENT")
|
|
215
|
+
return { withAgents: false };
|
|
216
|
+
return { withAgents: false, warning: `could not claim manager shutdown intent: ${e.message}` };
|
|
217
|
+
}
|
|
218
|
+
try {
|
|
219
|
+
const stat = lstatSync(claimed);
|
|
220
|
+
if (!stat.isFile() || stat.isSymbolicLink())
|
|
221
|
+
return { withAgents: false, warning: "ignored manager shutdown intent because it is not a regular file" };
|
|
222
|
+
let parsed;
|
|
223
|
+
try {
|
|
224
|
+
parsed = exactIntent(JSON.parse(readFileSync(claimed, "utf8")));
|
|
225
|
+
}
|
|
226
|
+
catch {
|
|
227
|
+
parsed = undefined;
|
|
228
|
+
}
|
|
229
|
+
if (!parsed)
|
|
230
|
+
return { withAgents: false, warning: "ignored malformed manager shutdown intent; managed agents were spared" };
|
|
231
|
+
if (parsed.target.pid !== pid)
|
|
232
|
+
return { withAgents: false, warning: "ignored stale manager shutdown intent for a different process; managed agents were spared" };
|
|
233
|
+
const pidPath = canonicalLocalProcessPath(MANAGER_PIDFILE, context);
|
|
234
|
+
if (parsed.version === 2) {
|
|
235
|
+
let recordedPid;
|
|
236
|
+
try {
|
|
237
|
+
recordedPid = parsePid(readFileSync(pidPath, "utf8"));
|
|
238
|
+
}
|
|
239
|
+
catch {
|
|
240
|
+
recordedPid = undefined;
|
|
241
|
+
}
|
|
242
|
+
if (recordedPid !== pid)
|
|
243
|
+
return { withAgents: false, warning: "ignored legacy manager shutdown intent because the manager pid record changed; managed agents were spared" };
|
|
244
|
+
let reservationOwner;
|
|
245
|
+
try {
|
|
246
|
+
reservationOwner = parsePid(readFileSync(`${pidPath}.stopping`, "utf8"));
|
|
247
|
+
}
|
|
248
|
+
catch {
|
|
249
|
+
reservationOwner = undefined;
|
|
250
|
+
}
|
|
251
|
+
if (reservationOwner !== parsed.stopper.pid)
|
|
252
|
+
return { withAgents: false, warning: "ignored stale legacy manager shutdown intent from a different stop attempt; managed agents were spared" };
|
|
253
|
+
let reservation;
|
|
254
|
+
try {
|
|
255
|
+
reservation = reservationIdentity(`${pidPath}.stopping`);
|
|
256
|
+
}
|
|
257
|
+
catch {
|
|
258
|
+
reservation = undefined;
|
|
259
|
+
}
|
|
260
|
+
if (reservation !== parsed.stopper.reservation)
|
|
261
|
+
return { withAgents: false, warning: "ignored legacy manager shutdown intent because its stop reservation inode changed; managed agents were spared" };
|
|
262
|
+
if (probeLiveness(parsed.stopper.pid) === "dead")
|
|
263
|
+
return { withAgents: false, warning: "ignored legacy manager shutdown intent because its stop reservation owner exited; managed agents were spared" };
|
|
264
|
+
return { withAgents: true };
|
|
265
|
+
}
|
|
266
|
+
const targetVerdict = assertRecordIdentity(parsed.target, tokenAt);
|
|
267
|
+
if (targetVerdict.kind !== "match")
|
|
268
|
+
return { withAgents: false, warning: `ignored manager shutdown intent with ${targetVerdict.kind} target identity; managed agents were spared` };
|
|
269
|
+
let reservationOwner;
|
|
270
|
+
try {
|
|
271
|
+
reservationOwner = parsePid(readFileSync(`${pidPath}.stopping`, "utf8"));
|
|
272
|
+
}
|
|
273
|
+
catch {
|
|
274
|
+
reservationOwner = undefined;
|
|
275
|
+
}
|
|
276
|
+
if (reservationOwner !== parsed.stopper.pid)
|
|
277
|
+
return { withAgents: false, warning: "ignored stale manager shutdown intent from a different stop attempt; managed agents were spared" };
|
|
278
|
+
const stopperVerdict = assertRecordIdentity(parsed.stopper, tokenAt);
|
|
279
|
+
if (stopperVerdict.kind !== "match")
|
|
280
|
+
return { withAgents: false, warning: `ignored manager shutdown intent with ${stopperVerdict.kind} stopper identity; managed agents were spared` };
|
|
281
|
+
return { withAgents: true };
|
|
282
|
+
}
|
|
283
|
+
finally {
|
|
284
|
+
rmSync(claimed, { force: true });
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
//# sourceMappingURL=manager-shutdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager-shutdown.js","sourceRoot":"","sources":["../src/manager-shutdown.ts"],"names":[],"mappings":"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"}
|
package/dist/mesh-registry.d.ts
CHANGED
|
@@ -38,6 +38,15 @@ export interface MeshEntry {
|
|
|
38
38
|
* a manifest deploy — reads it back, or the attach face silently reverts to loopback and remote
|
|
39
39
|
* `cotal attach` dies. Absent means the operator never asked for exposure: loopback, as before. */
|
|
40
40
|
attachHost?: string;
|
|
41
|
+
/**
|
|
42
|
+
* The operator-set live-session ceiling for this mesh's manager (`cotal up --max-sessions` /
|
|
43
|
+
* `cotal supervise --max-sessions`). Recorded because it is a DECISION, not a derivable fact:
|
|
44
|
+
* the plane defaults to 64 when the option is omitted, and a
|
|
45
|
+
* same-root repair, resume, or `spawn -f` that restarts the manager without this field silently
|
|
46
|
+
* drops a raised ceiling back to 64. Absent means the operator never asked: the default stands.
|
|
47
|
+
* The browser console opens one session per pane, so the right number is roughly agents × panes.
|
|
48
|
+
*/
|
|
49
|
+
maxSessions?: number;
|
|
41
50
|
/** TLS-REQUIRED CLIENT INTENT: this broker serves TLS, so every first-party connection resolved
|
|
42
51
|
* through this record must REQUIRE it rather than merely tolerate it. Absent means no such
|
|
43
52
|
* decision was recorded (and is what any record written before this field means).
|
|
@@ -54,8 +63,12 @@ export interface MeshEntry {
|
|
|
54
63
|
* says so" into "encrypted or refuse". */
|
|
55
64
|
tlsRequired?: boolean;
|
|
56
65
|
/** Who put this record here — and therefore what may take it out. `up` (the default, and what any
|
|
57
|
-
* record written without the field is) means THIS machine started the mesh
|
|
58
|
-
*
|
|
66
|
+
* record written without the field is) means THIS machine started the mesh. A liveness verdict
|
|
67
|
+
* does not delete it: the record is the restart authority for this root, so a dead broker is
|
|
68
|
+
* reported `offline` until `cotal down` or `cotal meshes rm` names it. A mismatch (credentials
|
|
69
|
+
* rejected, mode flipped, or the root's on-disk auth now belonging to a different space) still
|
|
70
|
+
* drops an `up` record, because connecting through it would be wrong. `cotal down` / `cotal
|
|
71
|
+
* clean all` still drop it when they tear down this root, because `cotal up` writes it back.
|
|
59
72
|
* `manual` means an operator registered it by hand (`cotal meshes add`) — typically a mesh
|
|
60
73
|
* running on another machine, whose record nothing here can reconstruct.
|
|
61
74
|
*
|
|
@@ -142,19 +155,22 @@ export declare function recordMesh(m: MeshEntry): void;
|
|
|
142
155
|
/** Drop a mesh from the registry (on `cotal down` / a stale-entry prune). Absent ⇒ no-op. */
|
|
143
156
|
export declare function removeMesh(space: string): void;
|
|
144
157
|
/**
|
|
145
|
-
* Drop a record because
|
|
158
|
+
* Drop a record because an automatic sweep decided it should leave — as opposed to the operator
|
|
146
159
|
* saying so. Returns whether the record was actually removed.
|
|
147
160
|
*
|
|
148
161
|
* Every automatic deletion goes through here rather than {@link removeMesh}, because the rule is one
|
|
149
|
-
* rule and forgetting it at a single site is the whole failure
|
|
150
|
-
* add`) is NEVER auto-pruned. An `up` record
|
|
151
|
-
*
|
|
152
|
-
*
|
|
153
|
-
*
|
|
154
|
-
*
|
|
155
|
-
*
|
|
162
|
+
* rule and forgetting it at a single site is the whole failure. A `manual` record (`cotal meshes
|
|
163
|
+
* add`) is NEVER auto-pruned. An `up` record (and a pre-origin record, which is `up`) is kept on a
|
|
164
|
+
* liveness miss: the broker being down is a STATE the surfaces report (`offline`), not proof the
|
|
165
|
+
* operator no longer wants the root. A mismatch — credentials rejected, an open record whose
|
|
166
|
+
* broker now requires auth, or a root whose on-disk auth is now for a different space — still
|
|
167
|
+
* drops an `up` record, because connecting through it would mint against the wrong mesh. A sleeping
|
|
168
|
+
* laptop or a VPN blip must not unregister a perfectly healthy remote mesh (observed exactly once,
|
|
169
|
+
* and once was enough), and the same erasure of a stopped local stack is the existence denial this
|
|
170
|
+
* helper exists to prevent. `cotal meshes rm` / `cotal down` are how a kept record leaves.
|
|
156
171
|
*/
|
|
157
|
-
export
|
|
172
|
+
export type PruneReason = "gone" | "mismatch";
|
|
173
|
+
export declare function pruneMesh(space: string, reason?: PruneReason): boolean;
|
|
158
174
|
/** Canonicalize a project root for comparison. A recorded root is whatever spelling `cotal up` was
|
|
159
175
|
* run under, so the same directory reaches us by several names: a symlinked root (macOS `/var` →
|
|
160
176
|
* `/private/var`) or, on Windows, an 8.3 short name (`C:\Users\RUNNER~1\…`) — `process.cwd()` keeps
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mesh-registry.d.ts","sourceRoot":"","sources":["../src/mesh-registry.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,SAAS;IACxB,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,6FAA6F;IAC7F,IAAI,EAAE,MAAM,CAAC;IACb;;8FAE0F;IAC1F,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC/B;;;6FAGyF;IACzF,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB;;;;;;wGAMoG;IACpG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;;;;;;;+CAa2C;IAC3C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB
|
|
1
|
+
{"version":3,"file":"mesh-registry.d.ts","sourceRoot":"","sources":["../src/mesh-registry.ts"],"names":[],"mappings":"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"}
|
package/dist/mesh-registry.js
CHANGED
|
@@ -120,23 +120,12 @@ export function removeMesh(space) {
|
|
|
120
120
|
rmSync(meshFile(space), { force: true });
|
|
121
121
|
removeLegacyMeshFiles(space); // else a pre-hex record would resurrect the mesh in every listing
|
|
122
122
|
}
|
|
123
|
-
|
|
124
|
-
* Drop a record because its mesh looks GONE — the auto-prune path, as opposed to the operator
|
|
125
|
-
* saying so. Returns whether the record was actually removed.
|
|
126
|
-
*
|
|
127
|
-
* Every automatic deletion goes through here rather than {@link removeMesh}, because the rule is one
|
|
128
|
-
* rule and forgetting it at a single site is the whole failure: a `manual` record (`cotal meshes
|
|
129
|
-
* add`) is NEVER auto-pruned. An `up` record is safe to drop — `cotal up` writes it back — but a
|
|
130
|
-
* manual one usually describes a mesh on ANOTHER machine, and nothing on this machine can
|
|
131
|
-
* reconstruct the server URL, root and mode the operator typed. A sleeping laptop or a VPN blip
|
|
132
|
-
* would otherwise unregister a perfectly healthy remote mesh for good (observed exactly once, and
|
|
133
|
-
* once was enough). An unreachable manual record is a STATE the surfaces report ("offline"), not a
|
|
134
|
-
* deletion; `cotal meshes rm` is how it leaves.
|
|
135
|
-
*/
|
|
136
|
-
export function pruneMesh(space) {
|
|
123
|
+
export function pruneMesh(space, reason = "gone") {
|
|
137
124
|
const m = findMesh(space);
|
|
138
125
|
if (!m || m.origin === "manual")
|
|
139
126
|
return false;
|
|
127
|
+
if (reason === "gone")
|
|
128
|
+
return false;
|
|
140
129
|
removeMesh(space);
|
|
141
130
|
return true;
|
|
142
131
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mesh-registry.js","sourceRoot":"","sources":["../src/mesh-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACtF,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"mesh-registry.js","sourceRoot":"","sources":["../src/mesh-registry.ts"],"names":[],"mappings":"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"}
|
package/dist/mesh-target.d.ts
CHANGED
|
@@ -49,6 +49,13 @@ export interface ResolveFlags {
|
|
|
49
49
|
server?: string;
|
|
50
50
|
/** `--space <name>` — pick a specific running mesh from the registry. */
|
|
51
51
|
space?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Spaces whose broker the last liveness sweep already found dead. Their records
|
|
54
|
+
* stay (that is the registry's job); they are not live candidates for unflagged
|
|
55
|
+
* resolution. Named `--space` still resolves a dead record so preflight can
|
|
56
|
+
* name its root. Callers that do not sweep omit this; TAB completion must.
|
|
57
|
+
*/
|
|
58
|
+
offline?: readonly string[];
|
|
52
59
|
}
|
|
53
60
|
/** The distinct, command-agnostic reasons {@link resolveMeshTarget} can't pick a single mesh. Each
|
|
54
61
|
* maps 1:1 to a former prose-throw; the recovery copy (`cotal up`/`meshes`/`use`) is the renderer's
|
|
@@ -100,7 +107,9 @@ export declare function targetFromEntry(m: MeshEntry, server: string, source: Me
|
|
|
100
107
|
* 2. `--server` — registry entry on that server (for creds/personas), else the local project.
|
|
101
108
|
* 3. The live `current` selected by `cotal use` — from any directory.
|
|
102
109
|
* 4. A genuine local project (`cwd` walks up to a real `.cotal/`).
|
|
103
|
-
* 5. The registry: 0 ⇒ error; 1 ⇒ use it; N ⇒ error naming
|
|
110
|
+
* 5. The registry's *running* meshes: 0 ⇒ error; 1 ⇒ use it; N ⇒ error naming
|
|
111
|
+
* each + its root. `flags.offline` (from a sweep) is excluded here and from
|
|
112
|
+
* a dangling `current`; a named `--space` is not filtered.
|
|
104
113
|
* No silent fallback — an unresolved target throws one human sentence.
|
|
105
114
|
*/
|
|
106
115
|
export declare function resolveMeshTarget(cwd: string, flags?: ResolveFlags): MeshTarget;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mesh-target.d.ts","sourceRoot":"","sources":["../src/mesh-target.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiC,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE/E,OAAO,EAOL,KAAK,SAAS,EACd,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;;GAQG;AACH,MAAM,WAAW,UAAU;IACzB,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd;uFACmF;IACnF,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACxB;;;0EAGsE;IACtE,WAAW,EAAE,OAAO,CAAC;IACrB;;sEAEkE;IAClE,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB;;;oGAGgG;IAChG,MAAM,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC7B,kEAAkE;IAClE,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;4GAMwG;IACxG,MAAM,EACF,aAAa,GACb,YAAY,GACZ,qBAAqB,GACrB,aAAa,GACb,gBAAgB,GAChB,UAAU,GACV,SAAS,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"mesh-target.d.ts","sourceRoot":"","sources":["../src/mesh-target.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiC,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE/E,OAAO,EAOL,KAAK,SAAS,EACd,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;;GAQG;AACH,MAAM,WAAW,UAAU;IACzB,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd;uFACmF;IACnF,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IACxB;;;0EAGsE;IACtE,WAAW,EAAE,OAAO,CAAC;IACrB;;sEAEkE;IAClE,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,0FAA0F;IAC1F,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB;;;oGAGgG;IAChG,MAAM,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC7B,kEAAkE;IAClE,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;4GAMwG;IACxG,MAAM,EACF,aAAa,GACb,YAAY,GACZ,qBAAqB,GACrB,aAAa,GACb,gBAAgB,GAChB,UAAU,GACV,SAAS,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B;AAED;;8DAE8D;AAC9D,MAAM,MAAM,mBAAmB,GAC3B,WAAW,GACX,eAAe,GACf,kBAAkB,GAClB,kBAAkB,GAClB,iBAAiB,GACjB,iBAAiB,GACjB,sBAAsB,CAAC;AAE3B;qGACqG;AACrG,MAAM,WAAW,sBAAsB;IACrC,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+FAA+F;IAC/F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;uGACmG;IACnG,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAID;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IACxC,mFAAmF;IACnF,QAAQ,CAAC,KAAK,uCAA0B;IACxC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;gBAEvC,IAAI,EAAE,mBAAmB,EACzB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,sBAA2B,EACpC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAOhC;AAED;uGACuG;AACvG,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,eAAe,CAMvE;AAED;mGACmG;AACnG,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AA+CD,wBAAgB,eAAe,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,UAAU,CAqDtG;AA4CD;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,YAAiB,GAAG,UAAU,CAwInF"}
|