@cotal-ai/workspace 0.68.0 → 0.69.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/bin-path.d.ts +7 -6
- package/dist/bin-path.d.ts.map +1 -1
- package/dist/bin-path.js +11 -7
- package/dist/bin-path.js.map +1 -1
- package/dist/default-agent.d.ts +9 -0
- package/dist/default-agent.d.ts.map +1 -1
- package/dist/default-agent.js +8 -0
- package/dist/default-agent.js.map +1 -1
- package/dist/join-target.d.ts +3 -50
- package/dist/join-target.d.ts.map +1 -1
- package/dist/join-target.js +5 -18
- package/dist/join-target.js.map +1 -1
- package/dist/local-process.d.ts +3 -0
- package/dist/local-process.d.ts.map +1 -1
- package/dist/local-process.js +3 -0
- package/dist/local-process.js.map +1 -1
- package/dist/manager-shutdown.d.ts.map +1 -1
- package/dist/manager-shutdown.js +5 -5
- package/dist/manager-shutdown.js.map +1 -1
- package/dist/mesh-registry.d.ts +11 -0
- package/dist/mesh-registry.d.ts.map +1 -1
- package/dist/mesh-registry.js +69 -37
- package/dist/mesh-registry.js.map +1 -1
- package/dist/registration-policy.d.ts +5 -0
- package/dist/registration-policy.d.ts.map +1 -1
- package/dist/registration-policy.js +12 -4
- package/dist/registration-policy.js.map +1 -1
- package/dist/secret-store-fs.d.ts +17 -2
- package/dist/secret-store-fs.d.ts.map +1 -1
- package/dist/secret-store-fs.js +85 -6
- package/dist/secret-store-fs.js.map +1 -1
- package/package.json +2 -2
package/dist/bin-path.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Resolve `bin` to a concrete executable path, or `undefined` if not found. The single shared
|
|
3
3
|
* resolver behind every "is this binary available / what exactly will we launch" decision:
|
|
4
|
-
* - a connector's `requires` preflight (manager
|
|
4
|
+
* - a connector's `requires` preflight (manager, CLI manifest, `cotal status`, `cotal setup`) —
|
|
5
|
+
* boolean-ised as `!!resolveOnPath(bin)`;
|
|
5
6
|
* - the PtyRuntime, which launches the EXACT path returned (resolve once; never validate one file
|
|
6
7
|
* and then launch a different one).
|
|
7
8
|
*
|
|
@@ -11,11 +12,11 @@
|
|
|
11
12
|
* child launch a different shim than the preflight saw.
|
|
12
13
|
*
|
|
13
14
|
* POSIX: the name IS the file — a bare name is looked up across PATH, an explicit path checked as
|
|
14
|
-
* given, each via `accessSync(X_OK)
|
|
15
|
-
* existence-only; a bare name (or a path lacking a known executable extension)
|
|
16
|
-
* `PATHEXT` extension IN ORDER — executables before scripts — so a real
|
|
17
|
-
* `claude.cmd` shim in the same directory; a name that already carries a
|
|
18
|
-
* as-is.
|
|
15
|
+
* given, each via `accessSync(X_OK)` on a regular file. Windows: there is no execute bit, so
|
|
16
|
+
* `accessSync(X_OK)` is existence-only; a bare name (or a path lacking a known executable extension)
|
|
17
|
+
* is tried against each `PATHEXT` extension IN ORDER — executables before scripts — so a real
|
|
18
|
+
* `claude.exe` beats a `claude.cmd` shim in the same directory; a name that already carries a
|
|
19
|
+
* `PATHEXT` extension is taken as-is.
|
|
19
20
|
*/
|
|
20
21
|
export declare function resolveOnPath(bin: string, env?: NodeJS.ProcessEnv): string | undefined;
|
|
21
22
|
//# sourceMappingURL=bin-path.d.ts.map
|
package/dist/bin-path.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin-path.d.ts","sourceRoot":"","sources":["../src/bin-path.ts"],"names":[],"mappings":"AAuBA
|
|
1
|
+
{"version":3,"file":"bin-path.d.ts","sourceRoot":"","sources":["../src/bin-path.ts"],"names":[],"mappings":"AAuBA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,SAAS,CAwDnG"}
|
package/dist/bin-path.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { accessSync, constants } from "node:fs";
|
|
1
|
+
import { accessSync, constants, statSync } from "node:fs";
|
|
2
2
|
import { join, delimiter, resolve, extname } from "node:path";
|
|
3
3
|
const isWindows = process.platform === "win32";
|
|
4
4
|
/**
|
|
@@ -23,7 +23,8 @@ function envGet(env, name) {
|
|
|
23
23
|
/**
|
|
24
24
|
* Resolve `bin` to a concrete executable path, or `undefined` if not found. The single shared
|
|
25
25
|
* resolver behind every "is this binary available / what exactly will we launch" decision:
|
|
26
|
-
* - a connector's `requires` preflight (manager
|
|
26
|
+
* - a connector's `requires` preflight (manager, CLI manifest, `cotal status`, `cotal setup`) —
|
|
27
|
+
* boolean-ised as `!!resolveOnPath(bin)`;
|
|
27
28
|
* - the PtyRuntime, which launches the EXACT path returned (resolve once; never validate one file
|
|
28
29
|
* and then launch a different one).
|
|
29
30
|
*
|
|
@@ -33,11 +34,11 @@ function envGet(env, name) {
|
|
|
33
34
|
* child launch a different shim than the preflight saw.
|
|
34
35
|
*
|
|
35
36
|
* POSIX: the name IS the file — a bare name is looked up across PATH, an explicit path checked as
|
|
36
|
-
* given, each via `accessSync(X_OK)
|
|
37
|
-
* existence-only; a bare name (or a path lacking a known executable extension)
|
|
38
|
-
* `PATHEXT` extension IN ORDER — executables before scripts — so a real
|
|
39
|
-
* `claude.cmd` shim in the same directory; a name that already carries a
|
|
40
|
-
* as-is.
|
|
37
|
+
* given, each via `accessSync(X_OK)` on a regular file. Windows: there is no execute bit, so
|
|
38
|
+
* `accessSync(X_OK)` is existence-only; a bare name (or a path lacking a known executable extension)
|
|
39
|
+
* is tried against each `PATHEXT` extension IN ORDER — executables before scripts — so a real
|
|
40
|
+
* `claude.exe` beats a `claude.cmd` shim in the same directory; a name that already carries a
|
|
41
|
+
* `PATHEXT` extension is taken as-is.
|
|
41
42
|
*/
|
|
42
43
|
export function resolveOnPath(bin, env = process.env) {
|
|
43
44
|
// Probe `.COM`/`.EXE` FIRST and ALWAYS — independent of what PATHEXT contains OR its order, because
|
|
@@ -73,6 +74,9 @@ export function resolveOnPath(bin, env = process.env) {
|
|
|
73
74
|
for (const cand of candidates(base)) {
|
|
74
75
|
try {
|
|
75
76
|
accessSync(cand, constants.X_OK);
|
|
77
|
+
// X_OK also holds for a searchable directory, which exec skips for the next PATH entry.
|
|
78
|
+
if (!statSync(cand).isFile())
|
|
79
|
+
continue;
|
|
76
80
|
// A relative PATH entry is resolved against this process's cwd during lookup. Return that
|
|
77
81
|
// exact ABSOLUTE executable: a managed launch may use a different cwd, where replaying the
|
|
78
82
|
// relative spelling would select another file or fail after boot had declared it available.
|
package/dist/bin-path.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin-path.js","sourceRoot":"","sources":["../src/bin-path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"bin-path.js","sourceRoot":"","sources":["../src/bin-path.ts"],"names":[],"mappings":"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"}
|
package/dist/default-agent.d.ts
CHANGED
|
@@ -4,6 +4,15 @@ export declare const DEFAULT_PERSONA_ENV = "COTAL_DEFAULT_PERSONA";
|
|
|
4
4
|
export declare function defaultAgentOverride(env?: NodeJS.ProcessEnv): string | undefined;
|
|
5
5
|
/** Resolve the default connector/agent harness with the product fallback for this launch path. */
|
|
6
6
|
export declare function defaultAgentType(fallback: string, env?: NodeJS.ProcessEnv): string;
|
|
7
|
+
/** The harness a spawn runs (#869), resolved here once so the foreground and detached launch paths
|
|
8
|
+
* cannot drift: an explicit `--agent`, then the persona's `agent:` pin, then a detached caller's
|
|
9
|
+
* default, then this process's `COTAL_DEFAULT_AGENT`, then {@link DEFAULT_CONNECTOR}. Both
|
|
10
|
+
* environment values are defaults, so neither beats a pin. */
|
|
11
|
+
export declare function resolveAgentType(choice: {
|
|
12
|
+
flag?: string;
|
|
13
|
+
pin?: string;
|
|
14
|
+
callerDefault?: string;
|
|
15
|
+
}): string;
|
|
7
16
|
/** The operator-level default persona ref (catalog name or path), when set. */
|
|
8
17
|
export declare function defaultPersonaOverride(env?: NodeJS.ProcessEnv): string | undefined;
|
|
9
18
|
/** Resolve the default persona ref with the product fallback. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-agent.d.ts","sourceRoot":"","sources":["../src/default-agent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"default-agent.d.ts","sourceRoot":"","sources":["../src/default-agent.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,wBAAwB,CAAC;AACvD,eAAO,MAAM,mBAAmB,0BAA0B,CAAC;AAE3D,oEAAoE;AACpE,wBAAgB,oBAAoB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,SAAS,CAE7F;AAED,kGAAkG;AAClG,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAE/F;AAED;;;+DAG+D;AAC/D,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAExG;AAED,+EAA+E;AAC/E,wBAAgB,sBAAsB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,SAAS,CAE/F;AAED,iEAAiE;AACjE,wBAAgB,iBAAiB,CAAC,QAAQ,SAAY,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAEpG"}
|
package/dist/default-agent.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { DEFAULT_CONNECTOR } from "./official-connectors.js";
|
|
1
2
|
export const DEFAULT_AGENT_ENV = "COTAL_DEFAULT_AGENT";
|
|
2
3
|
export const DEFAULT_PERSONA_ENV = "COTAL_DEFAULT_PERSONA";
|
|
3
4
|
/** The operator-level default connector/agent harness, when set. */
|
|
@@ -8,6 +9,13 @@ export function defaultAgentOverride(env = process.env) {
|
|
|
8
9
|
export function defaultAgentType(fallback, env = process.env) {
|
|
9
10
|
return defaultAgentOverride(env) ?? fallback;
|
|
10
11
|
}
|
|
12
|
+
/** The harness a spawn runs (#869), resolved here once so the foreground and detached launch paths
|
|
13
|
+
* cannot drift: an explicit `--agent`, then the persona's `agent:` pin, then a detached caller's
|
|
14
|
+
* default, then this process's `COTAL_DEFAULT_AGENT`, then {@link DEFAULT_CONNECTOR}. Both
|
|
15
|
+
* environment values are defaults, so neither beats a pin. */
|
|
16
|
+
export function resolveAgentType(choice) {
|
|
17
|
+
return choice.flag ?? choice.pin ?? choice.callerDefault ?? defaultAgentType(DEFAULT_CONNECTOR);
|
|
18
|
+
}
|
|
11
19
|
/** The operator-level default persona ref (catalog name or path), when set. */
|
|
12
20
|
export function defaultPersonaOverride(env = process.env) {
|
|
13
21
|
return env[DEFAULT_PERSONA_ENV]?.trim() || undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-agent.js","sourceRoot":"","sources":["../src/default-agent.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,qBAAqB,CAAC;AACvD,MAAM,CAAC,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AAE3D,oEAAoE;AACpE,MAAM,UAAU,oBAAoB,CAAC,MAAyB,OAAO,CAAC,GAAG;IACvE,OAAO,GAAG,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;AACrD,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,gBAAgB,CAAC,QAAgB,EAAE,MAAyB,OAAO,CAAC,GAAG;IACrF,OAAO,oBAAoB,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC;AAC/C,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,sBAAsB,CAAC,MAAyB,OAAO,CAAC,GAAG;IACzE,OAAO,GAAG,CAAC,mBAAmB,CAAC,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;AACvD,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,iBAAiB,CAAC,QAAQ,GAAG,SAAS,EAAE,MAAyB,OAAO,CAAC,GAAG;IAC1F,OAAO,sBAAsB,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC;AACjD,CAAC"}
|
|
1
|
+
{"version":3,"file":"default-agent.js","sourceRoot":"","sources":["../src/default-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,MAAM,CAAC,MAAM,iBAAiB,GAAG,qBAAqB,CAAC;AACvD,MAAM,CAAC,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AAE3D,oEAAoE;AACpE,MAAM,UAAU,oBAAoB,CAAC,MAAyB,OAAO,CAAC,GAAG;IACvE,OAAO,GAAG,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;AACrD,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,gBAAgB,CAAC,QAAgB,EAAE,MAAyB,OAAO,CAAC,GAAG;IACrF,OAAO,oBAAoB,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC;AAC/C,CAAC;AAED;;;+DAG+D;AAC/D,MAAM,UAAU,gBAAgB,CAAC,MAA+D;IAC9F,OAAO,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,aAAa,IAAI,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;AAClG,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,sBAAsB,CAAC,MAAyB,OAAO,CAAC,GAAG;IACzE,OAAO,GAAG,CAAC,mBAAmB,CAAC,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;AACvD,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,iBAAiB,CAAC,QAAQ,GAAG,SAAS,EAAE,MAAyB,OAAO,CAAC,GAAG;IAC1F,OAAO,sBAAsB,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC;AACjD,CAAC"}
|
package/dist/join-target.d.ts
CHANGED
|
@@ -1,50 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Which broker addresses `cotal meshes add` may register.
|
|
3
|
-
*
|
|
4
|
-
* Registering a mesh is how a machine begins sending its agent credentials to a broker it does
|
|
5
|
-
* not run. NATS sends the initial INFO in plaintext and unauthenticated, so an on-path attacker
|
|
6
|
-
* can forge one that does not set `tls_required`, and a client that was never told to demand
|
|
7
|
-
* encryption puts its credentials in the CONNECT line for the attacker to read. The fence has to
|
|
8
|
-
* be client-side.
|
|
9
|
-
*
|
|
10
|
-
* The URL scheme is NOT that fence. Measured against `@nats-io/transport-node` 3.4.0 (the client
|
|
11
|
-
* this repo uses) pointed at a broker with no TLS configured at all:
|
|
12
|
-
*
|
|
13
|
-
* nats://host:port {} -> CONNECTED
|
|
14
|
-
* tls://host:port {} -> CONNECTED <- the scheme is cosmetic
|
|
15
|
-
* nats://host:port {tls:{}} -> REFUSED: server does not support 'tls'
|
|
16
|
-
*
|
|
17
|
-
* Only the explicit `tls` connect option makes the client demand TLS, and that option is the
|
|
18
|
-
* broker-TLS work's surface, not this one's. So this gates on the ADDRESS instead, in two steps.
|
|
19
|
-
* Step one, here: refuse public addresses, ordinary private ranges and every hostname outright,
|
|
20
|
-
* and refuse an overlay literal TOO unless the operator accepted it explicitly
|
|
21
|
-
* ({@link DialPolicy.allowUnencryptedOverlay}); accepted, it returns a {@link JoinTarget.residual}
|
|
22
|
-
* the caller prints and records as consent. Step two, once a record can carry TLS intent: the
|
|
23
|
-
* acceptance stops being needed because the transport is proven instead of promised.
|
|
24
|
-
*
|
|
25
|
-
* ONE deliberate limitation, stated rather than papered over: this classifies an ADDRESS, which
|
|
26
|
-
* is a guard against the obvious mistake (dialing a LAN or public address in the clear), not
|
|
27
|
-
* proof that the bytes are encrypted. An overlay address only rides an encrypted tunnel while the
|
|
28
|
-
* overlay is actually up on this machine; the same literal with the overlay down is just a CGNAT
|
|
29
|
-
* address.
|
|
30
|
-
*
|
|
31
|
-
* WHERE THIS WENT, so the next editor knows the relaxation below is the authorized one. The
|
|
32
|
-
* previous header said, measured on this stack: the `tls` connect option verifies the certificate
|
|
33
|
-
* CHAIN AND THE HOSTNAME (Node defaults, `rejectUnauthorized: true`, servername from the URL), so
|
|
34
|
-
* a redirected name cannot complete the handshake and hostnames become safe — but only once
|
|
35
|
-
* something REQUIRES TLS. The relaxation is a function of recorded strictness, not of time
|
|
36
|
-
* passing, and the agreed shape is `classifyJoinTarget(url, { tlsRequired })` rather than a third
|
|
37
|
-
* verdict: one place keeps answering "may this machine send credentials to that address", with
|
|
38
|
-
* strictness as an input it cannot otherwise see. THAT PRECONDITION HAS NOW LANDED: the broker
|
|
39
|
-
* can serve TLS and the mesh record carries `tlsRequired`, so with `tlsRequired: true` a hostname
|
|
40
|
-
* or a public literal classifies as {@link JoinReach} `"public-tls"`. Two counterintuitive
|
|
41
|
-
* consequences remain in force: the overlay ranges are the AWKWARD case under TLS (CGNAT space,
|
|
42
|
-
* no public CA will issue for it, verifying a literal needs an IP SAN, so it implies a private CA
|
|
43
|
-
* on every joiner), while the `<host>.ts.net` names are the EASY case (publicly resolvable,
|
|
44
|
-
* publicly-trusted certs). With `tlsRequired: false` nothing is relaxed: literals-only stays the
|
|
45
|
-
* rule, verbatim. And ordinary private ranges are refused in BOTH modes — no public CA issues for
|
|
46
|
-
* them, so required TLS cannot make them verifiable, and a cafe LAN is private too.
|
|
47
|
-
*/
|
|
48
1
|
/** The address class a permitted target belongs to. This is a REACHABILITY allowlist: it says the
|
|
49
2
|
* address is one we are willing to consider, never that the connection is protected. What
|
|
50
3
|
* protects it is {@link DialPolicy.tlsRequired}, except on loopback where nothing leaves the
|
|
@@ -158,9 +111,9 @@ export declare class JoinRefusal extends Error {
|
|
|
158
111
|
* — and misses real loopback spellings such as `0177.0.0.1` or `[::ffff:127.0.0.1]`. It is wrong
|
|
159
112
|
* in both directions, which is what a string standing in for an address decision usually is.
|
|
160
113
|
*
|
|
161
|
-
*
|
|
162
|
-
*
|
|
163
|
-
* URL hostname straight in.
|
|
114
|
+
* The verdict is core's `isLoopbackLiteral`. This adds only the legacy IPv4 canonicalization a
|
|
115
|
+
* `nats://` host needs, because no URL parser normalizes a non-special scheme's host. Brackets are
|
|
116
|
+
* tolerated so a caller may pass a URL hostname straight in.
|
|
164
117
|
*/
|
|
165
118
|
export declare function isLoopbackHost(host: string): boolean;
|
|
166
119
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"join-target.d.ts","sourceRoot":"","sources":["../src/join-target.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"join-target.d.ts","sourceRoot":"","sources":["../src/join-target.ts"],"names":[],"mappings":"AAiDA;;;0BAG0B;AAC1B,MAAM,MAAM,SAAS;AACnB,6DAA6D;AAC3D,UAAU;AACZ;;6EAE6E;GAC3E,SAAS;AACX;;0DAE0D;GACxD,YAAY,CAAC;AAEjB,MAAM,WAAW,UAAU;IACzB,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,SAAS,CAAC;IACjB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,2FAA2F;AAC3F,MAAM,WAAW,UAAU;IACzB;;;;;;;;;;;;;;OAcG;IACH,WAAW,EAAE,OAAO,CAAC;IACrB;;;;;;;;;;;;OAYG;IACH,uBAAuB,EAAE,OAAO,CAAC;CAClC;AAED;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,2GAarB,CAAC;AAEX;;;;;;;;GAQG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAElE;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,WAAY,SAAQ,KAAK;IACpC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;gBACnB,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM;CAKnD;AAKD;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGpD;AAkID;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,UAAU,CAqE9E"}
|
package/dist/join-target.js
CHANGED
|
@@ -45,6 +45,7 @@
|
|
|
45
45
|
* rule, verbatim. And ordinary private ranges are refused in BOTH modes — no public CA issues for
|
|
46
46
|
* them, so required TLS cannot make them verifiable, and a cafe LAN is private too.
|
|
47
47
|
*/
|
|
48
|
+
import { isLoopbackLiteral } from "@cotal-ai/core";
|
|
48
49
|
/**
|
|
49
50
|
* WHICH fence refused, as a closed set rather than as prose.
|
|
50
51
|
*
|
|
@@ -102,27 +103,13 @@ const DEFAULT_PORT = 4222;
|
|
|
102
103
|
* — and misses real loopback spellings such as `0177.0.0.1` or `[::ffff:127.0.0.1]`. It is wrong
|
|
103
104
|
* in both directions, which is what a string standing in for an address decision usually is.
|
|
104
105
|
*
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
* URL hostname straight in.
|
|
106
|
+
* The verdict is core's `isLoopbackLiteral`. This adds only the legacy IPv4 canonicalization a
|
|
107
|
+
* `nats://` host needs, because no URL parser normalizes a non-special scheme's host. Brackets are
|
|
108
|
+
* tolerated so a caller may pass a URL hostname straight in.
|
|
108
109
|
*/
|
|
109
110
|
export function isLoopbackHost(host) {
|
|
110
111
|
const bare = host.startsWith("[") && host.endsWith("]") ? host.slice(1, -1) : host;
|
|
111
|
-
return isLoopbackLiteral(normalizeLegacyV4(
|
|
112
|
-
}
|
|
113
|
-
/** Loopback: `127.0.0.0/8` and `::1`. LITERALS ONLY, never `localhost`, because the whole point is
|
|
114
|
-
* a verdict that does not depend on a resolver an attacker could influence (a hosts-file entry or
|
|
115
|
-
* a poisoned lookup would otherwise turn "loopback" into any address at all). */
|
|
116
|
-
function isLoopbackLiteral(host) {
|
|
117
|
-
if (host === "::1" || host === "0:0:0:0:0:0:0:1")
|
|
118
|
-
return true;
|
|
119
|
-
const v4 = host.match(/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/);
|
|
120
|
-
if (!v4)
|
|
121
|
-
return false;
|
|
122
|
-
const parts = v4.slice(1).map(Number);
|
|
123
|
-
if (parts.some((n) => n > 255))
|
|
124
|
-
return false;
|
|
125
|
-
return parts[0] === 127;
|
|
112
|
+
return isLoopbackLiteral(normalizeLegacyV4(bare));
|
|
126
113
|
}
|
|
127
114
|
/** The private overlay's address space: `100.64.0.0/10` (the CGNAT range Tailscale assigns) and
|
|
128
115
|
* `fd7a:115c:a1e0::/48` (its ULA prefix). LITERALS ONLY, for the same reason as loopback: a
|
package/dist/join-target.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"join-target.js","sourceRoot":"","sources":["../src/join-target.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;
|
|
1
|
+
{"version":3,"file":"join-target.js","sourceRoot":"","sources":["../src/join-target.ts"],"names":[],"mappings":"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"}
|
package/dist/local-process.d.ts
CHANGED
|
@@ -49,6 +49,9 @@ export interface LocalProcess extends Extension {
|
|
|
49
49
|
* space booting in that root overwrote the first space's record and every reader then answered
|
|
50
50
|
* about the wrong process. `auth-service.{space}.pid` was already templated; these were not. */
|
|
51
51
|
export declare const MANAGER_PIDFILE = "manager.{space}.pid";
|
|
52
|
+
/** The stop reservation beside a resolved pidfile: whoever holds it is the one process stopping that
|
|
53
|
+
* record, and a manager reads it to bind a `--with-agents` intent to the exact stop attempt. */
|
|
54
|
+
export declare const stopReservationPath: (pidPath: string) => string;
|
|
52
55
|
/** `.cotal/manager.<spaceKey>.log` — where a detached manager's output goes. Per-space for the same
|
|
53
56
|
* reason the pidfile is: two spaces' managers sharing one log interleave two meshes' console URLs
|
|
54
57
|
* (each a standing credential) into one 0600 file that neither tenant alone owns. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-process.d.ts","sourceRoot":"","sources":["../src/local-process.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAIhD,uGAAuG;AACvG,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;4FAI4F;AAC5F,MAAM,WAAW,YAAa,SAAQ,SAAS;IAC7C,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,kGAAkG;IAClG,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;iGAC6F;IAC7F,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,gGAAgG;IAChG,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,uFAAuF;IACvF,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,iGAAiG;IACjG,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,iFAAiF;IACjF,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC;;;;iGAI6F;IAC7F,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAC7B;;2GAEuG;IACvG,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;CACtD;AAID;;;;;;;;;iGASiG;AACjG,eAAO,MAAM,eAAe,wBAAwB,CAAC;AAErD;;sFAEsF;AACtF,eAAO,MAAM,eAAe,wBAAwB,CAAC;AAErD;;;;0DAI0D;AAC1D,eAAO,MAAM,6BAA6B,mCAAmC,CAAC;AAE9E;kGACkG;AAClG,eAAO,MAAM,gBAAgB,yBAAyB,CAAC;AAEvD,oGAAoG;AACpG,eAAO,MAAM,gBAAgB,yBAAyB,CAAC;AAEvD;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,gCAAgC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAIvE,CAAC;AAEH;oGACoG;AACpG,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAOhG;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,MAAM,EAAE,CAUnG;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAavF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,IAAI,CA0BhG;AAED,8FAA8F;AAC9F,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;mEAG+D;IAC/D,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,EAAE,CAgB1E;AA2CD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAEhG"}
|
|
1
|
+
{"version":3,"file":"local-process.d.ts","sourceRoot":"","sources":["../src/local-process.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAIhD,uGAAuG;AACvG,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;4FAI4F;AAC5F,MAAM,WAAW,YAAa,SAAQ,SAAS;IAC7C,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,kGAAkG;IAClG,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;iGAC6F;IAC7F,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,gGAAgG;IAChG,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,uFAAuF;IACvF,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,iGAAiG;IACjG,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,iFAAiF;IACjF,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC;;;;iGAI6F;IAC7F,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAC7B;;2GAEuG;IACvG,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;CACtD;AAID;;;;;;;;;iGASiG;AACjG,eAAO,MAAM,eAAe,wBAAwB,CAAC;AAErD;iGACiG;AACjG,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,KAAG,MAA+B,CAAC;AAEtF;;sFAEsF;AACtF,eAAO,MAAM,eAAe,wBAAwB,CAAC;AAErD;;;;0DAI0D;AAC1D,eAAO,MAAM,6BAA6B,mCAAmC,CAAC;AAE9E;kGACkG;AAClG,eAAO,MAAM,gBAAgB,yBAAyB,CAAC;AAEvD,oGAAoG;AACpG,eAAO,MAAM,gBAAgB,yBAAyB,CAAC;AAEvD;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,gCAAgC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAIvE,CAAC;AAEH;oGACoG;AACpG,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAOhG;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,MAAM,EAAE,CAUnG;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAavF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,GAAG,IAAI,CA0BhG;AAED,8FAA8F;AAC9F,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;mEAG+D;IAC/D,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,oBAAoB,EAAE,CAgB1E;AA2CD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAEhG"}
|
package/dist/local-process.js
CHANGED
|
@@ -14,6 +14,9 @@ import { parsePid, probeLiveness, readPidfile } from "./pid.js";
|
|
|
14
14
|
* space booting in that root overwrote the first space's record and every reader then answered
|
|
15
15
|
* about the wrong process. `auth-service.{space}.pid` was already templated; these were not. */
|
|
16
16
|
export const MANAGER_PIDFILE = "manager.{space}.pid";
|
|
17
|
+
/** The stop reservation beside a resolved pidfile: whoever holds it is the one process stopping that
|
|
18
|
+
* record, and a manager reads it to bind a `--with-agents` intent to the exact stop attempt. */
|
|
19
|
+
export const stopReservationPath = (pidPath) => `${pidPath}.stopping`;
|
|
17
20
|
/** `.cotal/manager.<spaceKey>.log` — where a detached manager's output goes. Per-space for the same
|
|
18
21
|
* reason the pidfile is: two spaces' managers sharing one log interleave two meshes' console URLs
|
|
19
22
|
* (each a standing credential) into one 0600 file that neither tenant alone owns. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-process.js","sourceRoot":"","sources":["../src/local-process.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"local-process.js","sourceRoot":"","sources":["../src/local-process.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager-shutdown.d.ts","sourceRoot":"","sources":["../src/manager-shutdown.ts"],"names":[],"mappings":"AAYA,OAAO,
|
|
1
|
+
{"version":3,"file":"manager-shutdown.d.ts","sourceRoot":"","sources":["../src/manager-shutdown.ts"],"names":[],"mappings":"AAYA,OAAO,EAAmE,KAAK,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC/H,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
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { closeSync, fsyncSync, lstatSync, openSync, readFileSync, renameSync, rmSync, writeFileSync, } from "node:fs";
|
|
2
2
|
import { dirname } from "node:path";
|
|
3
3
|
import { randomBytes } from "node:crypto";
|
|
4
|
-
import { canonicalLocalProcessPath, MANAGER_PIDFILE } from "./local-process.js";
|
|
4
|
+
import { canonicalLocalProcessPath, MANAGER_PIDFILE, stopReservationPath } from "./local-process.js";
|
|
5
5
|
import { assertRecordIdentity, identityPinPath, parsePid, parseRecord, probeLiveness, defaultStartToken, } from "./pid.js";
|
|
6
6
|
/** One-shot policy handoff written by `cotal down --with-agents` before it signals the manager.
|
|
7
7
|
* Version 1 binds stable process-start tokens. Version 2 is the honest legacy/Windows fallback:
|
|
@@ -163,7 +163,7 @@ export function assertManagerCanSpare(context, tokenAt = defaultStartToken, targ
|
|
|
163
163
|
*/
|
|
164
164
|
export function armManagerShutdownIntent(context, attempt, tokenAt = defaultStartToken) {
|
|
165
165
|
const pidPath = canonicalLocalProcessPath(MANAGER_PIDFILE, context);
|
|
166
|
-
if (attempt.stopper.marker !==
|
|
166
|
+
if (attempt.stopper.marker !== stopReservationPath(pidPath))
|
|
167
167
|
throw new Error("cannot arm --with-agents: stop reservation marker is not this manager's; destructive policy was not published");
|
|
168
168
|
let stopperPid;
|
|
169
169
|
try {
|
|
@@ -254,7 +254,7 @@ export function consumeManagerShutdownIntent(context, pid = process.pid, tokenAt
|
|
|
254
254
|
return { withAgents: false, warning: "ignored legacy manager shutdown intent because the manager pid record changed; managed agents were spared" };
|
|
255
255
|
let reservationOwner;
|
|
256
256
|
try {
|
|
257
|
-
reservationOwner = parsePid(readFileSync(
|
|
257
|
+
reservationOwner = parsePid(readFileSync(stopReservationPath(pidPath), "utf8"));
|
|
258
258
|
}
|
|
259
259
|
catch {
|
|
260
260
|
reservationOwner = undefined;
|
|
@@ -263,7 +263,7 @@ export function consumeManagerShutdownIntent(context, pid = process.pid, tokenAt
|
|
|
263
263
|
return { withAgents: false, warning: "ignored stale legacy manager shutdown intent from a different stop attempt; managed agents were spared" };
|
|
264
264
|
let reservation;
|
|
265
265
|
try {
|
|
266
|
-
reservation = reservationIdentity(
|
|
266
|
+
reservation = reservationIdentity(stopReservationPath(pidPath));
|
|
267
267
|
}
|
|
268
268
|
catch {
|
|
269
269
|
reservation = undefined;
|
|
@@ -279,7 +279,7 @@ export function consumeManagerShutdownIntent(context, pid = process.pid, tokenAt
|
|
|
279
279
|
return { withAgents: false, warning: `ignored manager shutdown intent with ${targetVerdict.kind} target identity; managed agents were spared` };
|
|
280
280
|
let reservationOwner;
|
|
281
281
|
try {
|
|
282
|
-
reservationOwner = parsePid(readFileSync(
|
|
282
|
+
reservationOwner = parsePid(readFileSync(stopReservationPath(pidPath), "utf8"));
|
|
283
283
|
}
|
|
284
284
|
catch {
|
|
285
285
|
reservationOwner = undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager-shutdown.js","sourceRoot":"","sources":["../src/manager-shutdown.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manager-shutdown.js","sourceRoot":"","sources":["../src/manager-shutdown.ts"],"names":[],"mappings":"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"}
|
package/dist/mesh-registry.d.ts
CHANGED
|
@@ -180,8 +180,15 @@ export declare function homeCotalDir(): string;
|
|
|
180
180
|
export declare function meshesDir(): string;
|
|
181
181
|
/** Record (or refresh) a running mesh — atomic write, 0600 (the file points at a secrets dir). */
|
|
182
182
|
export declare function recordMesh(m: MeshEntry): void;
|
|
183
|
+
/** {@link recordMesh} for several meshes, with one pre-hex sweep for the whole batch. Each entry is
|
|
184
|
+
* written as `entries` yields it, before the next is pulled, so a generator can check each space
|
|
185
|
+
* against the registry just before its write. An empty batch touches nothing. */
|
|
186
|
+
export declare function recordMeshes(entries: Iterable<MeshEntry>): void;
|
|
183
187
|
/** Drop a mesh from the registry (on `cotal down` / a stale-entry prune). Absent ⇒ no-op. */
|
|
184
188
|
export declare function removeMesh(space: string): void;
|
|
189
|
+
/** {@link removeMesh} for several meshes, with one pre-hex sweep for the whole batch. An empty batch
|
|
190
|
+
* touches nothing. */
|
|
191
|
+
export declare function removeMeshes(spaces: readonly string[]): void;
|
|
185
192
|
/**
|
|
186
193
|
* Drop a record because an automatic sweep decided it should leave — as opposed to the operator
|
|
187
194
|
* saying so. Returns whether the record was actually removed.
|
|
@@ -242,6 +249,10 @@ export declare function removeCatalogMeshes(ownerKey: string): string[];
|
|
|
242
249
|
* TypeError from the renderer (or a silently `undefined` column in `status`). */
|
|
243
250
|
export declare function loadMeshes(): MeshEntry[];
|
|
244
251
|
export declare function findMesh(space: string): MeshEntry | undefined;
|
|
252
|
+
/** The record `space`'s canonical file holds, in one read and without the rest of the registry. A
|
|
253
|
+
* pre-hex record is visible only to {@link findMesh}; a pre-hex file can also carry this name for
|
|
254
|
+
* another space, which is not this space's record. */
|
|
255
|
+
export declare function readMesh(space: string): MeshEntry | undefined;
|
|
245
256
|
/** The default mesh's space name, set by `cotal use` (and by the first `cotal up`). Undefined when
|
|
246
257
|
* unset or empty. The pointer can dangle (its mesh went down); callers treat a `findMesh` miss as
|
|
247
258
|
* "no current". */
|
|
@@ -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;2GACuG;IACvG,MAAM,CAAC,EAAE;QAAE,MAAM,EAAE,UAAU,CAAA;KAAE,CAAC;IAChC;;;;;;wGAMoG;IACpG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;4CAGwC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;iFAG6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;;;;;;+CAa2C;IAC3C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;;;;;;;;;;;;;0FAkBsF;IACtF,MAAM,CAAC,EAAE,IAAI,GAAG,QAAQ,GAAG,SAAS,CAAC;IACrC;qGACiG;IACjG,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qGAAqG;IACrG,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;iEAK6D;IAC7D,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,oDAAoD;IACpD,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;;;+FAI+F;AAC/F,MAAM,WAAW,YAAY;IAC3B,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAC;IACjB,iGAAiG;IACjG,GAAG,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD;;;;;;;2FAOuF;IACvF,SAAS,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1F;;;yDAGqD;IACrD,MAAM,CAAC,EAAE,IAAI,CAAC;IACd;;;uEAGmE;IACnE,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;oFAEoF;AACpF,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,OAAO,GAAG,YAAY,CA6B3D;AAED;;;;;;;;;;;;uFAYuF;AACvF,wBAAgB,YAAY,IAAI,MAAM,CAKrC;AAED,yEAAyE;AACzE,wBAAgB,SAAS,IAAI,MAAM,CAElC;AA2CD,kGAAkG;AAClG,wBAAgB,UAAU,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI,
|
|
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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { readFileSync, readdirSync, realpathSync, renameSync, rmSync } from "node:fs";
|
|
1
|
+
import { existsSync, readFileSync, readdirSync, realpathSync, renameSync, rmSync } from "node:fs";
|
|
2
2
|
import { homedir } from "node:os";
|
|
3
3
|
import { isAbsolute, join, resolve } from "node:path";
|
|
4
4
|
import { mkSecretDir, writeSecretFile } from "@cotal-ai/core";
|
|
@@ -71,12 +71,12 @@ function meshFileName(space) {
|
|
|
71
71
|
function meshFile(space) {
|
|
72
72
|
return join(meshesDir(), meshFileName(space));
|
|
73
73
|
}
|
|
74
|
-
/** Remove every PRE-HEX registry file that records `
|
|
75
|
-
* older builds). Matched by each document's own `space` - never by decoding the
|
|
76
|
-
* would case-fold on this filesystem - so a legacy record can neither shadow nor
|
|
77
|
-
* the canonical file no longer records. A file that will not parse is left for
|
|
78
|
-
* to refuse by name. */
|
|
79
|
-
function removeLegacyMeshFiles(
|
|
74
|
+
/** Remove every PRE-HEX registry file that records one of `spaces` (`<encodeURIComponent>.json`
|
|
75
|
+
* stems from older builds). Matched by each document's own `space` - never by decoding the
|
|
76
|
+
* filename, which would case-fold on this filesystem - so a legacy record can neither shadow nor
|
|
77
|
+
* resurrect a mesh the canonical file no longer records. A file that will not parse is left for
|
|
78
|
+
* {@link loadMeshes} to refuse by name. The sweep reads every other record, so a batch shares one. */
|
|
79
|
+
function removeLegacyMeshFiles(spaces) {
|
|
80
80
|
let files;
|
|
81
81
|
try {
|
|
82
82
|
files = readdirSync(meshesDir());
|
|
@@ -84,17 +84,17 @@ function removeLegacyMeshFiles(space) {
|
|
|
84
84
|
catch {
|
|
85
85
|
return; // no registry yet
|
|
86
86
|
}
|
|
87
|
-
const canonical = meshFileName
|
|
87
|
+
const canonical = new Set([...spaces].map(meshFileName));
|
|
88
88
|
for (const f of files) {
|
|
89
|
-
if (f
|
|
89
|
+
if (canonical.has(f) || !f.endsWith(".json"))
|
|
90
90
|
continue;
|
|
91
91
|
try {
|
|
92
92
|
const doc = JSON.parse(readFileSync(join(meshesDir(), f), "utf8"));
|
|
93
|
-
if (doc.space
|
|
93
|
+
if (spaces.has(doc.space))
|
|
94
94
|
rmSync(join(meshesDir(), f), { force: true });
|
|
95
95
|
}
|
|
96
96
|
catch {
|
|
97
|
-
/* unparseable stray - not provably
|
|
97
|
+
/* unparseable stray - not provably a record of these spaces, leave it */
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
100
|
}
|
|
@@ -103,22 +103,41 @@ function currentFile() {
|
|
|
103
103
|
}
|
|
104
104
|
/** Record (or refresh) a running mesh — atomic write, 0600 (the file points at a secrets dir). */
|
|
105
105
|
export function recordMesh(m) {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
const
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
106
|
+
recordMeshes([m]);
|
|
107
|
+
}
|
|
108
|
+
/** {@link recordMesh} for several meshes, with one pre-hex sweep for the whole batch. Each entry is
|
|
109
|
+
* written as `entries` yields it, before the next is pulled, so a generator can check each space
|
|
110
|
+
* against the registry just before its write. An empty batch touches nothing. */
|
|
111
|
+
export function recordMeshes(entries) {
|
|
112
|
+
const spaces = new Set();
|
|
113
|
+
for (const m of entries) {
|
|
114
|
+
// The filenames in here ARE the space names, so a world-traversable dir would leak them to other
|
|
115
|
+
// local users even though the file contents are private. Keep the dir readable only by us
|
|
116
|
+
// (0700 POSIX / hardened ACL win32).
|
|
117
|
+
mkSecretDir(meshesDir());
|
|
118
|
+
const file = meshFile(m.space);
|
|
119
|
+
// Per-process temp name so two concurrent `up`s for the same space can't stomp each other's
|
|
120
|
+
// half-written file before the rename.
|
|
121
|
+
const tmp = `${file}.${process.pid}.tmp`;
|
|
122
|
+
writeSecretFile(tmp, JSON.stringify(m, null, 2)); // hardened before rename; rename preserves the ACL/mode
|
|
123
|
+
renameSync(tmp, file); // atomic replace — a reader never sees a half-written record
|
|
124
|
+
spaces.add(m.space);
|
|
125
|
+
}
|
|
126
|
+
if (spaces.size > 0)
|
|
127
|
+
removeLegacyMeshFiles(spaces); // a pre-hex record for these spaces must not survive as a duplicate
|
|
117
128
|
}
|
|
118
129
|
/** Drop a mesh from the registry (on `cotal down` / a stale-entry prune). Absent ⇒ no-op. */
|
|
119
130
|
export function removeMesh(space) {
|
|
120
|
-
|
|
121
|
-
|
|
131
|
+
removeMeshes([space]);
|
|
132
|
+
}
|
|
133
|
+
/** {@link removeMesh} for several meshes, with one pre-hex sweep for the whole batch. An empty batch
|
|
134
|
+
* touches nothing. */
|
|
135
|
+
export function removeMeshes(spaces) {
|
|
136
|
+
if (spaces.length === 0)
|
|
137
|
+
return;
|
|
138
|
+
for (const space of spaces)
|
|
139
|
+
rmSync(meshFile(space), { force: true });
|
|
140
|
+
removeLegacyMeshFiles(new Set(spaces)); // else a pre-hex record would resurrect the mesh in every listing
|
|
122
141
|
}
|
|
123
142
|
export function pruneMesh(space, reason = "gone") {
|
|
124
143
|
const m = findMesh(space);
|
|
@@ -245,19 +264,9 @@ export function loadMeshes() {
|
|
|
245
264
|
}
|
|
246
265
|
const bySpace = new Map();
|
|
247
266
|
for (const f of files.sort()) {
|
|
248
|
-
const
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
entry = JSON.parse(readFileSync(file, "utf8"));
|
|
252
|
-
}
|
|
253
|
-
catch (e) {
|
|
254
|
-
// No fallback: the writer is tmp-file + atomic rename, so an unparseable .json here is a
|
|
255
|
-
// damaged or foreign document, and skipping it would hide it from `meshes rm` too.
|
|
256
|
-
throw new Error(`${file} does not parse as a mesh record (${e instanceof Error ? e.message : String(e)}) - restore it from backup or remove it`);
|
|
257
|
-
}
|
|
258
|
-
assertMeshEntryShape(entry, file);
|
|
259
|
-
// Safe unguarded: the shape check above ran `space` through `spaceSegment`, which is the only
|
|
260
|
-
// throw site of `meshFileName`.
|
|
267
|
+
const entry = readMeshFile(join(meshesDir(), f));
|
|
268
|
+
// Safe unguarded: readMeshFile's shape check ran `space` through `spaceSegment`, which is the
|
|
269
|
+
// only throw site of `meshFileName`.
|
|
261
270
|
const canonical = f === meshFileName(entry.space);
|
|
262
271
|
const prev = bySpace.get(entry.space);
|
|
263
272
|
if (!prev || (canonical && !prev.canonical))
|
|
@@ -265,9 +274,32 @@ export function loadMeshes() {
|
|
|
265
274
|
}
|
|
266
275
|
return [...bySpace.values()].map((v) => v.entry);
|
|
267
276
|
}
|
|
277
|
+
function readMeshFile(file) {
|
|
278
|
+
let entry;
|
|
279
|
+
try {
|
|
280
|
+
entry = JSON.parse(readFileSync(file, "utf8"));
|
|
281
|
+
}
|
|
282
|
+
catch (e) {
|
|
283
|
+
// No fallback: the writer is tmp-file + atomic rename, so an unparseable .json here is a
|
|
284
|
+
// damaged or foreign document, and skipping it would hide it from `meshes rm` too.
|
|
285
|
+
throw new Error(`${file} does not parse as a mesh record (${e instanceof Error ? e.message : String(e)}) - restore it from backup or remove it`);
|
|
286
|
+
}
|
|
287
|
+
assertMeshEntryShape(entry, file);
|
|
288
|
+
return entry;
|
|
289
|
+
}
|
|
268
290
|
export function findMesh(space) {
|
|
269
291
|
return loadMeshes().find((m) => m.space === space);
|
|
270
292
|
}
|
|
293
|
+
/** The record `space`'s canonical file holds, in one read and without the rest of the registry. A
|
|
294
|
+
* pre-hex record is visible only to {@link findMesh}; a pre-hex file can also carry this name for
|
|
295
|
+
* another space, which is not this space's record. */
|
|
296
|
+
export function readMesh(space) {
|
|
297
|
+
const file = meshFile(space);
|
|
298
|
+
if (!existsSync(file))
|
|
299
|
+
return undefined;
|
|
300
|
+
const entry = readMeshFile(file);
|
|
301
|
+
return entry.space === space ? entry : undefined;
|
|
302
|
+
}
|
|
271
303
|
/** The default mesh's space name, set by `cotal use` (and by the first `cotal up`). Undefined when
|
|
272
304
|
* unset or empty. The pointer can dangle (its mesh went down); callers treat a `findMesh` miss as
|
|
273
305
|
* "no current". */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mesh-registry.js","sourceRoot":"","sources":["../src/mesh-registry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mesh-registry.js","sourceRoot":"","sources":["../src/mesh-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,6 +47,11 @@ export declare function pinnedFetchProbe(target: string): Promise<{
|
|
|
47
47
|
}>;
|
|
48
48
|
/** One hop, no downgrade, no redirect-following. */
|
|
49
49
|
export declare function pinnedFetch(target: string, what: string): Promise<Response>;
|
|
50
|
+
/** The discovery document under an exchange base. The public exchange face serves
|
|
51
|
+
* `/.well-known/cotal-mesh` beneath its own base path, so `meshes add --from` and the policy
|
|
52
|
+
* refresh resolve the same URL from the same base. A base path may itself end in that suffix,
|
|
53
|
+
* so it is always appended. */
|
|
54
|
+
export declare function discoveryDocumentUrl(base: URL): URL;
|
|
50
55
|
/** How long a trusted policy refresh stays warm. Pinned to the catalog freshness window by the
|
|
51
56
|
* user-bundle smoke, so the two cannot drift. */
|
|
52
57
|
export declare const POLICY_FRESH_MS = 5000;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registration-policy.d.ts","sourceRoot":"","sources":["../src/registration-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,KAAK,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGjH,uGAAuG;AACvG,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAI/E,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,YAAY,CAAC;IACvB,qEAAqE;IACrE,MAAM,CAAC,EAAE;QAAE,MAAM,EAAE,UAAU,CAAA;KAAE,CAAC;IAChC;+FAC2F;IAC3F,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;mEAGmE;AACnE,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,CA8C9D;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAiB7E;AAED;;gGAEgG;AAChG,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAOrG;AAED,oDAAoD;AACpD,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAUjF;
|
|
1
|
+
{"version":3,"file":"registration-policy.d.ts","sourceRoot":"","sources":["../src/registration-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,KAAK,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGjH,uGAAuG;AACvG,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAI/E,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,YAAY,CAAC;IACvB,qEAAqE;IACrE,MAAM,CAAC,EAAE;QAAE,MAAM,EAAE,UAAU,CAAA;KAAE,CAAC;IAChC;+FAC2F;IAC3F,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;mEAGmE;AACnE,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,CA8C9D;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAiB7E;AAED;;gGAEgG;AAChG,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAOrG;AAED,oDAAoD;AACpD,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAUjF;AAED;;;gCAGgC;AAChC,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,CAMnD;AAED;kDACkD;AAClD,eAAO,MAAM,eAAe,OAAQ,CAAC;AAUrC;;;;;;;;;;;GAWG;AACH,wBAAsB,yBAAyB,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAA;CAAE,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CA0BrI"}
|
|
@@ -118,6 +118,17 @@ export async function pinnedFetch(target, what) {
|
|
|
118
118
|
throw new Error(`✗ ${what} answered ${res.status} (a redirect to ${JSON.stringify(res.headers.get("location") ?? "")}) - a redirect can move a pinned fetch onto plaintext or onto another host, so it is refused rather than followed; publish the document at the pinned URL itself`);
|
|
119
119
|
return res;
|
|
120
120
|
}
|
|
121
|
+
/** The discovery document under an exchange base. The public exchange face serves
|
|
122
|
+
* `/.well-known/cotal-mesh` beneath its own base path, so `meshes add --from` and the policy
|
|
123
|
+
* refresh resolve the same URL from the same base. A base path may itself end in that suffix,
|
|
124
|
+
* so it is always appended. */
|
|
125
|
+
export function discoveryDocumentUrl(base) {
|
|
126
|
+
const url = new URL(base);
|
|
127
|
+
url.pathname = `${url.pathname.replace(/\/$/, "")}/.well-known/cotal-mesh`;
|
|
128
|
+
url.search = "";
|
|
129
|
+
url.hash = "";
|
|
130
|
+
return url;
|
|
131
|
+
}
|
|
121
132
|
/** How long a trusted policy refresh stays warm. Pinned to the catalog freshness window by the
|
|
122
133
|
* user-bundle smoke, so the two cannot drift. */
|
|
123
134
|
export const POLICY_FRESH_MS = 5_000;
|
|
@@ -151,14 +162,11 @@ export async function refreshRegistrationPolicy(target) {
|
|
|
151
162
|
return target.policy;
|
|
152
163
|
let base;
|
|
153
164
|
try {
|
|
154
|
-
base = new URL(entry.userAuth.endpoints.url);
|
|
165
|
+
base = discoveryDocumentUrl(new URL(entry.userAuth.endpoints.url));
|
|
155
166
|
}
|
|
156
167
|
catch {
|
|
157
168
|
throw new Error(`manual registration for "${entry.space}" has an invalid pinned exchange URL`);
|
|
158
169
|
}
|
|
159
|
-
base.pathname = `${base.pathname.replace(/\/$/, "")}/.well-known/cotal-mesh`;
|
|
160
|
-
base.search = "";
|
|
161
|
-
base.hash = "";
|
|
162
170
|
let response;
|
|
163
171
|
try {
|
|
164
172
|
response = await pinnedFetch(base.toString(), `manual registration "${entry.space}" policy refresh at ${entry.userAuth.endpoints.url}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registration-policy.js","sourceRoot":"","sources":["../src/registration-policy.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"registration-policy.js","sourceRoot":"","sources":["../src/registration-policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { type SecretStore, type SecretStoreIdentity } from "@cotal-ai/core";
|
|
2
|
+
/** Whether `path` is the id file of the store rooted at `dir`. Its own path is, and so is any other
|
|
3
|
+
* name the filesystem resolves to that file. No spelling rule can list those (a case-insensitive
|
|
4
|
+
* filesystem folds `STORE.ID` onto it, and a link reaches it under any name), so they are found by
|
|
5
|
+
* device and inode once the file exists. */
|
|
6
|
+
export declare function isStoreIdFile(dir: string, path: string): boolean;
|
|
2
7
|
/** THE local composition of the secret keyspace: a filesystem store rooted at the workspace's
|
|
3
8
|
* `.cotal/` dir, so every canonical key (`delivery.creds`, `auth/<space>/callout.json`, …)
|
|
4
9
|
* lands byte-for-byte on today's paths. Every local caller composes through here — a hand-rolled
|
|
@@ -25,14 +30,24 @@ export declare function workspaceSecretStore(root: string): FsSecretStore;
|
|
|
25
30
|
*/
|
|
26
31
|
export declare class FsSecretStore implements SecretStore {
|
|
27
32
|
private readonly root;
|
|
28
|
-
readonly
|
|
29
|
-
|
|
33
|
+
private readonly identityRoot;
|
|
34
|
+
private readonly idPath;
|
|
35
|
+
/** `identityRoot` is the root the identity names when that is not the store's own directory: the
|
|
36
|
+
* workspace store lives in `<root>/.cotal` and is named by `<root>`. */
|
|
37
|
+
constructor(root: string, identityRoot?: string);
|
|
38
|
+
/** The root is a local path, so two hosts that mount different directories at one path would
|
|
39
|
+
* name one store by it alone (#2580). The id is random and lives inside the store, so only the
|
|
40
|
+
* same directory carries it. It is written the first time a process names this store or puts a key. */
|
|
41
|
+
get identity(): SecretStoreIdentity;
|
|
42
|
+
/** The id file as lstat sees it, written only by exclusive create, so an existing one is never replaced. */
|
|
43
|
+
private idFile;
|
|
30
44
|
/** Resolve a logical key to an absolute path strictly UNDER `root`, fail-closed: reject empty,
|
|
31
45
|
* NUL, absolute keys, the root itself (`.`), and any key that normalizes outside the root
|
|
32
46
|
* (`..` traversal). Containment is checked via `path.relative`, not a `root + sep` prefix —
|
|
33
47
|
* the prefix form breaks at a filesystem-root base (`/` doubles the separator and rejects
|
|
34
48
|
* every key). A malformed key must never read or clobber a path outside the store's tree. */
|
|
35
49
|
private resolve;
|
|
50
|
+
private refuseIdFile;
|
|
36
51
|
get(key: string): Promise<string | undefined>;
|
|
37
52
|
put(key: string, value: string): Promise<void>;
|
|
38
53
|
delete(key: string): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secret-store-fs.d.ts","sourceRoot":"","sources":["../src/secret-store-fs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"secret-store-fs.d.ts","sourceRoot":"","sources":["../src/secret-store-fs.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiE,KAAK,WAAW,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAkB3I;;;6CAG6C;AAC7C,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAOhE;AAED;;;gFAGgF;AAChF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAGhE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,aAAc,YAAW,WAAW;IAC/C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC;6EACyE;gBAC7D,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;IAO/C;;4GAEwG;IACxG,IAAI,QAAQ,IAAI,mBAAmB,CAelC;IAED,4GAA4G;IAC5G,OAAO,CAAC,MAAM;IAed;;;;kGAI8F;IAC9F,OAAO,CAAC,OAAO;IAYf,OAAO,CAAC,YAAY;IAKd,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAW7C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ9C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CASzC"}
|
package/dist/secret-store-fs.js
CHANGED
|
@@ -1,13 +1,41 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { closeSync, fstatSync, lstatSync, openSync, readFileSync, rmSync, statSync } from "node:fs";
|
|
2
3
|
import { join, dirname, isAbsolute, normalize, relative, resolve, sep } from "node:path";
|
|
3
|
-
import { mkSecretDir, writeSecretFileAtomic } from "@cotal-ai/core";
|
|
4
|
+
import { mkSecretDir, writeSecretFileAtomic, writeSecretFileCreateOnly } from "@cotal-ai/core";
|
|
5
|
+
/** The file in which a filesystem store records the random id its identity carries. No key may name
|
|
6
|
+
* it: the id is published to peers, so a secret stored there would be published with it. */
|
|
7
|
+
const STORE_ID_FILE = "store.id";
|
|
8
|
+
/** What `randomUUID` writes. An id file holding anything else may hold a secret, so it is never published. */
|
|
9
|
+
const STORE_ID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;
|
|
10
|
+
/** The id file at `p` as lstat sees it, or undefined while the name is free. A link there would make
|
|
11
|
+
* the id whatever it points at, a key included, so anything but a regular file is refused, never followed. */
|
|
12
|
+
function idFileStat(p) {
|
|
13
|
+
const st = lstatSync(p, { bigint: true, throwIfNoEntry: false });
|
|
14
|
+
if (st !== undefined && !st.isFile())
|
|
15
|
+
throw new Error(`FsSecretStore: ${p} is not a regular file, so it cannot hold the store id; rename or remove it`);
|
|
16
|
+
return st;
|
|
17
|
+
}
|
|
18
|
+
/** Whether `path` is the id file of the store rooted at `dir`. Its own path is, and so is any other
|
|
19
|
+
* name the filesystem resolves to that file. No spelling rule can list those (a case-insensitive
|
|
20
|
+
* filesystem folds `STORE.ID` onto it, and a link reaches it under any name), so they are found by
|
|
21
|
+
* device and inode once the file exists. */
|
|
22
|
+
export function isStoreIdFile(dir, path) {
|
|
23
|
+
const idFile = resolve(dir, STORE_ID_FILE);
|
|
24
|
+
if (resolve(path) === idFile)
|
|
25
|
+
return true;
|
|
26
|
+
const id = idFileStat(idFile);
|
|
27
|
+
if (id === undefined)
|
|
28
|
+
return false;
|
|
29
|
+
const file = statSync(path, { bigint: true, throwIfNoEntry: false });
|
|
30
|
+
return file !== undefined && file.dev === id.dev && file.ino === id.ino;
|
|
31
|
+
}
|
|
4
32
|
/** THE local composition of the secret keyspace: a filesystem store rooted at the workspace's
|
|
5
33
|
* `.cotal/` dir, so every canonical key (`delivery.creds`, `auth/<space>/callout.json`, …)
|
|
6
34
|
* lands byte-for-byte on today's paths. Every local caller composes through here — a hand-rolled
|
|
7
35
|
* root that drifted from `.cotal` would silently split the keyspace in two. */
|
|
8
36
|
export function workspaceSecretStore(root) {
|
|
9
37
|
const workspaceRoot = normalize(resolve(root));
|
|
10
|
-
return new FsSecretStore(join(workspaceRoot, ".cotal"),
|
|
38
|
+
return new FsSecretStore(join(workspaceRoot, ".cotal"), workspaceRoot);
|
|
11
39
|
}
|
|
12
40
|
/**
|
|
13
41
|
* The default filesystem {@link SecretStore}: the workstation adapter behind core's abstract seam.
|
|
@@ -30,12 +58,55 @@ export function workspaceSecretStore(root) {
|
|
|
30
58
|
*/
|
|
31
59
|
export class FsSecretStore {
|
|
32
60
|
root;
|
|
33
|
-
|
|
34
|
-
|
|
61
|
+
identityRoot;
|
|
62
|
+
idPath;
|
|
63
|
+
/** `identityRoot` is the root the identity names when that is not the store's own directory: the
|
|
64
|
+
* workspace store lives in `<root>/.cotal` and is named by `<root>`. */
|
|
65
|
+
constructor(root, identityRoot) {
|
|
35
66
|
if (!root)
|
|
36
67
|
throw new Error("FsSecretStore: root is required");
|
|
37
68
|
this.root = normalize(resolve(root)); // absolutize so keys are cwd-independent
|
|
38
|
-
this.
|
|
69
|
+
this.identityRoot = identityRoot ?? this.root;
|
|
70
|
+
this.idPath = join(this.root, STORE_ID_FILE);
|
|
71
|
+
}
|
|
72
|
+
/** The root is a local path, so two hosts that mount different directories at one path would
|
|
73
|
+
* name one store by it alone (#2580). The id is random and lives inside the store, so only the
|
|
74
|
+
* same directory carries it. It is written the first time a process names this store or puts a key. */
|
|
75
|
+
get identity() {
|
|
76
|
+
const vetted = this.idFile();
|
|
77
|
+
const fd = openSync(this.idPath, "r");
|
|
78
|
+
try {
|
|
79
|
+
// The name can be replaced between lstat and open, so only the file lstat vetted is read.
|
|
80
|
+
const opened = fstatSync(fd, { bigint: true });
|
|
81
|
+
if (opened.dev !== vetted.dev || opened.ino !== vetted.ino)
|
|
82
|
+
throw new Error(`FsSecretStore: ${this.idPath} was replaced while the store id was read`);
|
|
83
|
+
const id = readFileSync(fd, "utf8");
|
|
84
|
+
if (!STORE_ID.test(id))
|
|
85
|
+
throw new Error(`FsSecretStore: ${this.idPath} does not hold a store id (a lowercase UUID and nothing else); rename or remove it`);
|
|
86
|
+
return { kind: "fs", root: this.identityRoot, id };
|
|
87
|
+
}
|
|
88
|
+
finally {
|
|
89
|
+
closeSync(fd);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/** The id file as lstat sees it, written only by exclusive create, so an existing one is never replaced. */
|
|
93
|
+
idFile() {
|
|
94
|
+
const found = idFileStat(this.idPath);
|
|
95
|
+
if (found !== undefined)
|
|
96
|
+
return found;
|
|
97
|
+
mkSecretDir(this.root);
|
|
98
|
+
try {
|
|
99
|
+
writeSecretFileCreateOnly(this.idPath, randomUUID());
|
|
100
|
+
}
|
|
101
|
+
catch (e) {
|
|
102
|
+
if (e.code !== "EEXIST")
|
|
103
|
+
throw e;
|
|
104
|
+
}
|
|
105
|
+
// EEXIST is a concurrent first use only if what holds the name passes the same lstat check.
|
|
106
|
+
const made = idFileStat(this.idPath);
|
|
107
|
+
if (made === undefined)
|
|
108
|
+
throw new Error(`FsSecretStore: ${this.idPath} was removed as it was created`);
|
|
109
|
+
return made;
|
|
39
110
|
}
|
|
40
111
|
/** Resolve a logical key to an absolute path strictly UNDER `root`, fail-closed: reject empty,
|
|
41
112
|
* NUL, absolute keys, the root itself (`.`), and any key that normalizes outside the root
|
|
@@ -53,8 +124,13 @@ export class FsSecretStore {
|
|
|
53
124
|
throw new Error(`FsSecretStore: key must name a file under the root: ${JSON.stringify(key)}`);
|
|
54
125
|
return abs;
|
|
55
126
|
}
|
|
127
|
+
refuseIdFile(key, p) {
|
|
128
|
+
if (isStoreIdFile(this.root, p))
|
|
129
|
+
throw new Error(`FsSecretStore: key ${JSON.stringify(key)} names the file that holds the store id`);
|
|
130
|
+
}
|
|
56
131
|
async get(key) {
|
|
57
132
|
const p = this.resolve(key);
|
|
133
|
+
this.refuseIdFile(key, p);
|
|
58
134
|
try {
|
|
59
135
|
return readFileSync(p, "utf8");
|
|
60
136
|
}
|
|
@@ -66,11 +142,14 @@ export class FsSecretStore {
|
|
|
66
142
|
}
|
|
67
143
|
async put(key, value) {
|
|
68
144
|
const p = this.resolve(key);
|
|
145
|
+
this.idFile(); // a name the filesystem folds onto the id file can only be told once that file exists
|
|
146
|
+
this.refuseIdFile(key, p);
|
|
69
147
|
mkSecretDir(dirname(p)); // harden the parent dir before the secret lands (0700 / private ACL)
|
|
70
148
|
writeSecretFileAtomic(p, value); // temp + rename: a concurrent get sees old or new, never torn
|
|
71
149
|
}
|
|
72
150
|
async delete(key) {
|
|
73
151
|
const p = this.resolve(key);
|
|
152
|
+
this.refuseIdFile(key, p);
|
|
74
153
|
try {
|
|
75
154
|
rmSync(p);
|
|
76
155
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secret-store-fs.js","sourceRoot":"","sources":["../src/secret-store-fs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"secret-store-fs.js","sourceRoot":"","sources":["../src/secret-store-fs.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.69.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.69.0"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
24
|
"@cotal-ai/smoke-kit": "0.0.0"
|