@cotal-ai/manager 0.49.0 → 0.50.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/manager.d.ts +33 -1
- package/dist/manager.d.ts.map +1 -1
- package/dist/manager.js +168 -24
- package/dist/manager.js.map +1 -1
- package/dist/runtime/index.d.ts +17 -4
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +21 -2
- package/dist/runtime/index.js.map +1 -1
- package/package.json +10 -10
package/dist/manager.d.ts
CHANGED
|
@@ -11,6 +11,13 @@ import type { NatsConnection } from "@nats-io/transport-node";
|
|
|
11
11
|
* launch-parity smoke can assert every launch client's request timeout OUTLIVES this window — the tier
|
|
12
12
|
* rule forbids the clients importing it directly. */
|
|
13
13
|
export declare const READINESS_TIMEOUT_MS = 30000;
|
|
14
|
+
/** Bracketed-paste delimiters (DECSET 2004). `input` wraps a seat's text in these so the return it
|
|
15
|
+
* writes afterwards is a KEYSTROKE rather than the newline trailing a pasted block: a TUI that
|
|
16
|
+
* classifies a fast burst as a paste consumes that trailing newline and the text sits unsubmitted
|
|
17
|
+
* in the composer until the next call's return (issue #1649). Framing, never content - these bytes
|
|
18
|
+
* are not counted into the receipt, so `bytes` still reports what the caller asked to deliver. */
|
|
19
|
+
export declare const PASTE_START = "\u001B[200~";
|
|
20
|
+
export declare const PASTE_END = "\u001B[201~";
|
|
14
21
|
/** Pick a `setInterval` period for {@link Manager.renewDaemonCreds} that guarantees at least one
|
|
15
22
|
* tick lands inside every renewal owner's `[renewAt, exp)` window.
|
|
16
23
|
*
|
|
@@ -663,6 +670,11 @@ export declare class Manager {
|
|
|
663
670
|
private leaseRenewInFlight;
|
|
664
671
|
/** The class-2 renewal owner's half-TTL schedule (D5 slice 5); armed only on auth meshes. */
|
|
665
672
|
private credRenewTimer?;
|
|
673
|
+
/** #1634: does THIS manager own the delivery daemon's credential renewal? True only while the
|
|
674
|
+
* daemon reloads from this manager's store AND this manager holds the per-space renewal lease.
|
|
675
|
+
* Starts false: a manager that has not proved both must not remint. */
|
|
676
|
+
private daemonRenewalOwner;
|
|
677
|
+
private daemonRenewalLeaseTimer?;
|
|
666
678
|
private maintenanceState;
|
|
667
679
|
private lifecycleInFlight;
|
|
668
680
|
private lifecycleDrainWaiters;
|
|
@@ -740,7 +752,27 @@ export declare class Manager {
|
|
|
740
752
|
* challenge runs again before every remint, so a later daemon on a foreign store is
|
|
741
753
|
* refused then rather than certified by an earlier absence. A request timeout is not
|
|
742
754
|
* absence: a hung rail would skip the proof, so it fails closed. */
|
|
743
|
-
private
|
|
755
|
+
private daemonStoreRelation;
|
|
756
|
+
/** Keep this manager's renewal lease alive between credential passes (#1634). The manager bucket
|
|
757
|
+
* expires keys at MANAGER_LEASE_TTL_MS, far below the credential pass's cadence, so the lease
|
|
758
|
+
* needs its own heartbeat like the per-instance liveness lease. A non-owner calls this too: the
|
|
759
|
+
* CAS is how a survivor picks up a dead owner's expired lease with no operator step. Never
|
|
760
|
+
* throws; a failed heartbeat leaves ownership to the next pass rather than ending the process. */
|
|
761
|
+
private keepDaemonRenewalLease;
|
|
762
|
+
/** Decide whether THIS manager owns the daemon's credential renewal (#1634). Both conditions are
|
|
763
|
+
* required, because each answers a question the other cannot:
|
|
764
|
+
*
|
|
765
|
+
* 1. The daemon must reload from this manager's store (#1447). Reminting into a store the daemon
|
|
766
|
+
* never reads writes bytes nobody adopts, and fingerprint-only `reloadCreds` would then name a
|
|
767
|
+
* generation the daemon cannot see.
|
|
768
|
+
* 2. This manager must hold the per-space renewal lease. Store identity CANNOT pick one owner on
|
|
769
|
+
* its own: `sameSecretStoreIdentity` is pure equality with no holder and no tiebreak, so every
|
|
770
|
+
* manager sharing one store passes it, and two owners reminting on independent timers have no
|
|
771
|
+
* ordering between them - one's write lands between the other's re-sign and its adoption
|
|
772
|
+
* request, which is the #773 refusal the challenge exists to prevent.
|
|
773
|
+
*
|
|
774
|
+
* A manager failing either test serves the space normally and skips only the daemon remint. */
|
|
775
|
+
private claimDaemonRenewalOwnership;
|
|
744
776
|
/** One class-2 renewal pass (D5 slice 5): re-sign `.cotal/delivery.creds` + `.cotal/membership-rw.creds`
|
|
745
777
|
* for their existing nkeys, then request the delivery daemon's EXPLICIT `reloadCreds` adoption on the
|
|
746
778
|
* delivery-admin rail and persist the audit record (`.cotal/renewal.json`) that `cotal doctor auth`
|
package/dist/manager.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"AA+DA,OAAO,KAAK,EAA4E,YAAY,EAAkE,eAAe,EAAY,gBAAgB,EAAE,WAAW,EAAkC,MAAM,gBAAgB,CAAC;AACvR,OAAO,EAKL,KAAK,WAAW,EAEhB,KAAK,WAAW,EACjB,MAAM,oBAAoB,CAAC;AA4C5B,OAAO,EAgDL,KAAK,YAAY,EAGjB,KAAK,QAAQ,EAEd,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,cAAc,EAAgB,MAAM,yBAAyB,CAAC;AA6B5E;;;;;;;sDAOsD;AACtD,eAAO,MAAM,oBAAoB,QAAS,CAAC;AAkB3C;;;;;;;;;;;;;;sBAcsB;AACtB,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE9D;AA0DD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;iGAE6F;IAC7F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;4GAIwG;IACxG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,8EAA8E;IAC9E,qCAAqC,CAAC,EAAE,MAAM,CAAC;IAC/C,+FAA+F;IAC/F,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,+EAA+E;IAC/E,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC;;4GAEwG;IACxG,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;;;;;;;uDAWmD;IACnD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;;;;;+FAO2F;IAC3F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;oDAEgD;IAChD,eAAe,CAAC,EAAE;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,OAAO,gBAAgB,EAAE,mBAAmB,CAAC;QACrD,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE;YACV,UAAU,EAAE,QAAQ,CAAC;YACrB,QAAQ,EAAE,QAAQ,CAAC;YACnB,KAAK,EAAE,QAAQ,CAAC;YAChB,UAAU,EAAE,QAAQ,CAAC;YACrB,aAAa,EAAE,QAAQ,CAAC;SACzB,CAAC;QACF,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,eAAe,EAAE,MAAM,CAAC;QACxB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,UAAU,EAAE,YAAY,CAAC;QACzB,kBAAkB,EAAE,CAAC,IAAI,EAAE;YAAE,QAAQ,EAAE,QAAQ,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QACvI,uBAAuB,EAAE,CAAC,IAAI,EAAE;YAC9B,QAAQ,EAAE,QAAQ,CAAC;YACnB,MAAM,EAAE;gBAAE,KAAK,EAAE,MAAM,CAAC;gBAAC,KAAK,EAAE,MAAM,CAAC;gBAAC,YAAY,EAAE,MAAM,CAAA;aAAE,CAAC;YAC/D,IAAI,EAAE,MAAM,CAAC;YACb,UAAU,EAAE,MAAM,CAAC;SACpB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QACtB;;wGAEgG;QAChG,sBAAsB,EAAE,CAAC,IAAI,EAAE;YAC7B,MAAM,EAAE;gBAAE,KAAK,EAAE,MAAM,CAAC;gBAAC,KAAK,EAAE,MAAM,CAAC;gBAAC,YAAY,EAAE,MAAM,CAAA;aAAE,CAAC;YAC/D,IAAI,EAAE,MAAM,CAAC;SACd,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QACpB;;;qEAG6D;QAC7D,qBAAqB,EAAE,CAAC,IAAI,EAAE;YAC5B,KAAK,EAAE,MAAM,CAAC;YACd,KAAK,EAAE,MAAM,CAAC;YACd,YAAY,EAAE,MAAM,CAAC;YACrB,UAAU,EAAE,MAAM,CAAC;YACnB,aAAa,EAAE,MAAM,CAAC;SACvB,KAAK,OAAO,CAAC,OAAO,gBAAgB,EAAE,sBAAsB,CAAC,CAAC;QAC/D;4EACoE;QACpE,aAAa,EAAE,MAAM,OAAO,CAAC,OAAO,gBAAgB,EAAE,cAAc,EAAE,CAAC,CAAC;QACxE,0FAA0F;QAC1F,cAAc,EAAE,CAAC,MAAM,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QACrG;wGACgG;QAChG,sBAAsB,EAAE,MAAM,CAAC;KAChC,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,+FAA+F;IAC/F,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,uBAAuB,GAAG,QAAQ,GAAG,YAAY,GAAG,WAAW,CAAC;AAG5E;;;0CAG0C;AAC1C,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,cAAc,GACd,eAAe,GACf,oBAAoB,GACpB,sBAAsB,GACtB,2BAA2B,GAC3B,qBAAqB,GACrB,8BAA8B,CAAC;AAenC,MAAM,MAAM,qBAAqB,GAI7B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,MAAM,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACxK;IACE,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,kBAAkB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACnE,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACxC,CAAC;AAEN,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,qBAAqB,CAAC;IAChC,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EACF;YAAE,IAAI,EAAE,SAAS,CAAC;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,GAC1E;YAAE,IAAI,EAAE,UAAU,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAC;YAAC,cAAc,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC7I,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QACrB,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,MAAM,EAAE,OAAO,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,gGAAgG;QAChG,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,+EAA+E;QAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,qGAAqG;QACrG,0BAA0B,CAAC,EAAE,MAAM,EAAE,CAAC;KACvC,CAAC;IACF,gGAAgG;IAChG,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,2FAA2F;IAC3F,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,yBAAyB,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,kBAAkB,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC,uBAAuB,EAAE,QAAQ,CAAC,CAAC;IAClD,SAAS,EAAE,sBAAsB,CAAC;IAClC,QAAQ,EAAE,sBAAsB,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,UAAU,GAAG,WAAW,CAAC;IAChC,SAAS,EAAE,sBAAsB,CAAC;IAClC,QAAQ,EAAE,sBAAsB,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,qGAAqG;IACrG,gBAAgB,CAAC,SAAS,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpE;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,YAAY,CAAA;KAAE,CAAC,CAAC;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;0GAC0G;AAC1G,MAAM,WAAW,cAAc;IAC7B;;0GAEsG;IACtG,IAAI,EAAE,MAAM,CAAC;IACb,8GAA8G;IAC9G,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;kGAC8F;IAC9F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;gEAC4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;mFAE+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4FAA4F;IAC5F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wGAAwG;IACxG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;yGACqG;IACrG,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC;;mEAE+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;4GAEwG;IACxG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;uDAEmD;IACnD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;qEAEiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;kEAG8D;IAC9D,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;iGAC6F;IAC7F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;6DAGyD;IACzD,SAAS,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACnD;;;sDAGkD;IAClD,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B;;iGAE6F;IAC7F,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAChE;AAiGD;2EAC2E;AAC3E,MAAM,WAAW,UAAU;IACzB;;;yGAGqG;IACrG,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACzK;;kFAE8E;IAC9E,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB;2FACuF;IACvF,iBAAiB,CAAC,EAAE,CAAC,kBAAkB,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACzE;;;mFAG+E;IAC/E,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC9G;;;;iFAI6E;IAC7E,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;CACjC;AAED;;;sGAGsG;AACtG,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB;iGAC6F;IAC7F,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACnD;AAED;;8FAE8F;AAC9F,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACnD;AAkDD;;;;kGAIkG;AAClG,wBAAsB,YAAY,CAChC,EAAE,EAAE,cAAc,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EACrD,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA6B1D;AAqDD,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C;sFACkF;IAClF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,wGAAwG;IACxG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAS;IACtC;kDAC8C;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,mGAAmG;IACnG,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAsB;IAC1D,sDAAsD;IACtD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAU;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,uGAAuG;IACvG,OAAO,CAAC,oBAAoB,CAAC,CAA0E;IACvG,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAS;IAC/C,OAAO,CAAC,QAAQ,CAAC,qCAAqC,CAAC,CAAS;IAChE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;IAC1D;gGAC4F;IAC5F,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C;gGAC4F;IAC5F,OAAO,CAAC,OAAO,CAAgB;IAC/B;;;;;;2DAMuD;IACvD,OAAO,CAAC,QAAQ,CAA+Q;IAC/R;;;;gEAI4D;IAC5D,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAAkE;IAC/G;;;;;kGAK8F;IAC9F,OAAO,CAAC,cAAc,CAAoC;IAC1D;;;;sGAIkG;IAClG,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqB;IACvD;;sDAEkD;IAClD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAsB;IAC1D;;;;;4GAKwG;IACxG,OAAO,CAAC,iBAAiB,CAAU;IACnC;;yGAEqG;IACrG,OAAO,CAAC,oBAAoB,CAAY;IACxC;;;;oFAIgF;IAChF,OAAO,CAAC,YAAY,CAAC,CAAyG;IAC9H;;;;;;uGAMmG;IACnG,OAAO,CAAC,UAAU,CAAC,CAAwG;IAC3H;;wGAEoG;IACpG,OAAO,CAAC,UAAU,CAAC,CAAa;IAChC;;;;oGAIgG;IAChG,OAAO,CAAC,kBAAkB,CAAC,CAAW;IACtC,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC;;mGAE+F;IAC/F,OAAO,CAAC,YAAY,CAAC,CAAsB;IAC3C;;0FAEsF;IACtF,OAAO,CAAC,iBAAiB,CAAC,CAAyC;IACnE;wGACoG;IACpG,OAAO,CAAC,oBAAoB,CAAC,CAAiC;IAC9D;;;sFAGkF;IAClF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA6B;IAChE;;;mGAG+F;IAC/F,OAAO,CAAC,qBAAqB,CAAC,CAAW;IACzC,OAAO,CAAC,kBAAkB,CAAC,CAAS;IACpC;;;oGAGgG;IAChG,OAAO,CAAC,eAAe,CAAsC;IAC7D;;;8EAG0E;IAC1E,OAAO,CAAC,iBAAiB,CAAS;IAClC;sGACkG;IAClG,OAAO,CAAC,UAAU,CAA8B;IAChD;;8DAE0D;IAC1D;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,eAAe,CAAqI;IAC5J;;;wEAGoE;IACpE,OAAO,CAAC,YAAY,CAAkC;IACtD;2FACuF;IACvF,OAAO,CAAC,cAAc,CAAC,CAAiC;IACxD,qDAAqD;IACrD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C;yGACqG;IACrG,OAAO,CAAC,iBAAiB,CAAgC;IACzD;mGAC+F;IAC/F,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD;mGAC+F;IAC/F,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA0C;IAC/E,OAAO,CAAC,wBAAwB,CAAC,CAAmC;IACpE,OAAO,CAAC,6BAA6B,CAAK;IAC1C,OAAO,CAAC,2BAA2B,CAAyB;IAC5D,OAAO,CAAC,uBAAuB,CAAS;IACxC;oFACgF;IAChF,OAAO,CAAC,SAAS,CAAC,CAAgB;IAClC;6GACyG;IACzG,OAAO,CAAC,4BAA4B,CAAuD;IAC3F;;;;;;qGAMiG;IACjG,OAAO,CAAC,oBAAoB,CAAoC;IAChE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,EAAE,CAAiB;IAC3B;+FAC2F;IAC3F,OAAO,CAAC,IAAI,CAAC,CAAY;IACzB;;gDAE4C;IAC5C,OAAO,CAAC,kBAAkB,CAAwB;IAClD;4GACwG;IACxG,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAC,CAAkC;IACpD,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,UAAU,CAAC,CAAiC;IACpD;uGACmG;IACnG,OAAO,CAAC,UAAU,CAAsB;IACxC;gGAC4F;IAC5F,OAAO,CAAC,kBAAkB,CAAS;IACnC,6FAA6F;IAC7F,OAAO,CAAC,cAAc,CAAC,CAAiC;IACxD,OAAO,CAAC,gBAAgB,CAAqC;IAC7D,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,qBAAqB,CAAyB;IACtD,OAAO,CAAC,gBAAgB,CAAC,CAAiC;IAC1D,OAAO,CAAC,eAAe,CAAC,CAAmC;IAC3D,OAAO,CAAC,sBAAsB,CAAK;IACnC,OAAO,CAAC,qBAAqB,CAAC,CAAS;IACvC,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,oBAAoB,CAAgC;IAC5D,OAAO,CAAC,eAAe,CAAyG;IAChI,OAAO,CAAC,qBAAqB,CAAC,CAAyB;IACvD,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,OAAO,CAAC,qBAAqB,CAAC,CAAS;IACvC,OAAO,CAAC,eAAe,CAAC,CAAyB;IACjD,OAAO,CAAC,UAAU,CAAC,CAA+B;IAClD,OAAO,CAAC,YAAY,CAAC,CAAsB;IAC3C,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,gBAAgB,CAAC,CAAwB;IACjD,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,wBAAwB,CAAC,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqB;IACvD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAiD;IAElF;;;;;;qEAMiE;IACjE,OAAO,CAAC,IAAI;gBAKA,IAAI,EAAE,cAAc;IA4ChC,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,mGAAmG;IACnG,IAAI,cAAc,IAAI,OAAO,CAE5B;IAED,iGAAiG;IACjG,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,GAAG,WAAW;IAI5D,uDAAuD;IACvD,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,OAAO,CAAC,YAAY;IAYpB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAWR,QAAQ;IAiNtB;;;;;;yEAMqE;YACvD,6BAA6B;IAwB3C;;;;;mGAK+F;YACjF,gBAAgB;IAyI9B;;;;;;;;;;;;uGAYmG;IACnG,OAAO,CAAC,sBAAsB;IA6B9B;kGAC8F;IAC9F,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,gBAAgB;IAQxB;wEACoE;IACpE,OAAO,CAAC,gBAAgB;YAOV,mBAAmB;IAKjC,OAAO,CAAC,gBAAgB;IAKxB;qFACiF;IACjF,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IA4BxE,OAAO,CAAC,4BAA4B;YAKtB,cAAc;IAkD5B;iEAC6D;IAC7D,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAuBrE;yFACqF;IACrF,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAyB1C;uFACmF;IAC7E,aAAa,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,CAAC;YAQnE,eAAe;YA+Bf,eAAe;IAY7B,OAAO,CAAC,uBAAuB;IAsD/B,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,WAAW;IA8DnB;;;;;;+EAM2E;YAC7D,qBAAqB;IA8BnC;kGAC8F;IAC9F,OAAO,CAAC,oBAAoB;YAqBd,wBAAwB;IAqBhC,IAAI,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAyC3D;;;;;;;;;;;;;;;;;OAiBG;YACW,uBAAuB;IAkCrC;;iDAE6C;YAC/B,gBAAgB;IAQ9B;;;;;;;;;;;;;;;;;;4BAkBwB;YACV,UAAU;IAiDxB;;+EAE2E;IAC3E,OAAO,CAAC,SAAS;IAMjB;;2BAEuB;YACT,cAAc;YAmBd,gBAAgB;YA+ChB,cAAc;YA8Bd,iBAAiB;YAkCjB,iBAAiB;IAwB/B;;;;;;;kGAO8F;IAC9F,OAAO,CAAC,YAAY;IAapB;;;wFAGoF;YACtE,UAAU;IAYxB;;;;;;;;;;;;;4EAawE;YAC1D,YAAY;IAgB1B;;;;iFAI6E;YAC/D,cAAc;IAO5B;;;;;;;;;;;;;;;;;;;;;;;;;;gEA0B4D;IAC5D;;;;;;;;;mFAS+E;IAC/E,OAAO,CAAC,OAAO;IASf;;yFAEqF;IACrF,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,kBAAkB;YAiJZ,sBAAsB;IAkCpC;;;;;;;;;6FASyF;YAC3E,cAAc;IAyB5B;;;yFAGqF;IACrF,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,oBAAoB;IAiD5B;;;;6DAIyD;IACzD,OAAO,CAAC,UAAU;IAclB;;;;;;;;;;;gHAW4G;IAC5G,OAAO,CAAC,UAAU;IAalB;;;;;;;;kGAQ8F;IAC9F,OAAO,CAAC,kBAAkB;IAiC1B;;;;;;;uBAOmB;YACL,kBAAkB;IAkHhC;;;;uGAImG;IACnG;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,QAAQ;IA6ChB;;;;;;;;;;;mDAW+C;YACjC,WAAW;IAezB,sFAAsF;YACxE,gBAAgB;IAmF9B;;;gEAG4D;YAC9C,iBAAiB;IAqB/B,qGAAqG;YACvF,eAAe;IAwG7B;;yDAEqD;IACrD,OAAO,CAAC,iBAAiB;IAoBzB;;;;;;;;qFAQiF;YACnE,iBAAiB;IAiB/B;;;6BAGyB;IACzB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,uBAAuB;IAM/B;wGACoG;IACpG,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,kBAAkB;YAIZ,wBAAwB;IAetC;;;2EAGuE;YACzD,kBAAkB;YAQlB,qBAAqB;IAwBnC;;;6EAGyE;IACzE,OAAO,CAAC,qBAAqB;IA2F7B;;;yBAGqB;IACrB,OAAO,CAAC,WAAW;IAyBnB;;;+FAG2F;IAC3F,OAAO,CAAC,SAAS;IAIjB;;;gCAG4B;IAC5B,OAAO,CAAC,eAAe;IAMvB;;;kFAG8E;IAC9E,OAAO,CAAC,SAAS;IAIjB;;;;;;;;;+BAS2B;IAC3B,OAAO,CAAC,UAAU;IAKlB;;8DAE0D;IACpD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAItD;;;;0EAIsE;IAChE,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IASzE,kFAAkF;IAClF,OAAO,CAAC,OAAO;IAuEf;;;;;uDAKmD;YACrC,gBAAgB;IAO9B;gGAC4F;IAC5F,OAAO,CAAC,cAAc;IAItB;;oGAEgG;YAClF,uBAAuB;IAmCrC;;yGAEqG;YACvF,QAAQ;IAiDtB;;;;;;0GAMsG;YACxF,aAAa;IAgB3B;;;;;;;;;;wGAUoG;YACtF,QAAQ;IAqDtB;;;;;+DAK2D;IACrD,UAAU,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC;YAUrF,gBAAgB;IAwnB9B;;kFAE8E;IACxE,eAAe,CACnB,SAAS,EAAE,sBAAsB,GAChC,OAAO,CAAC,mBAAmB,CAAC;IAoG/B;oGACgG;YAClF,yBAAyB;IAuKvC;4EACwE;YAC1D,oBAAoB;YAiJpB,oBAAoB;IAsGlC,OAAO,CAAC,qBAAqB;IAI7B;;6GAEyG;IACzG,OAAO,CAAC,mBAAmB;IAe3B;;;;;;;;;;;;qGAYiG;YACnF,cAAc;IA2H5B;;sBAEkB;IAClB,OAAO,CAAC,IAAI;IAaZ;;;;;kGAK8F;IAC9F,OAAO,CAAC,SAAS;IAcjB;0GACsG;IACtG,OAAO,CAAC,YAAY;YAMN,MAAM;IAOpB;;;;yDAIqD;YACvC,WAAW;IAMzB;uDACmD;IACnD,OAAO,CAAC,iBAAiB;IAOzB;;;iGAG6F;IAC7F,OAAO,CAAC,mBAAmB;IAQ3B;;;qGAGiG;YACnF,qBAAqB;IAoBnC;;;kCAG8B;YAChB,UAAU;IAaxB;;;4FAGwF;IACxF,OAAO,CAAC,YAAY;IAepB;;;;;2EAKuE;YACzD,yBAAyB;IAoBvC;;;kGAG8F;YAChF,uBAAuB;IAiBrC,4EAA4E;IAC5E,OAAO,CAAC,iBAAiB;IAYzB;yFACqF;IACrF,OAAO,CAAC,0BAA0B;IAiBlC;;;;;;;;;;mGAU+F;YACjF,0BAA0B;IAoCxC;;;;;;;;;;;;kEAY8D;YAChD,sBAAsB;IA4QpC;;;;;;;wGAOoG;YACtF,sBAAsB;IA8BpC;;;;;;;;qCAQiC;YACnB,eAAe;IA0C7B,uEAAuE;YACzD,cAAc;IAO5B;;;;;;;;;6CASyC;YAC3B,yBAAyB;IA2BvC;;;;;;;;;;;kFAW8E;YAChE,iBAAiB;IAgF/B;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,yBAAyB;IA6FjC;;yGAEqG;YACvF,gBAAgB;IAW9B;;;;;;;;+EAQ2E;YAC7D,kBAAkB;IA6ChC;;;;;;;iDAO6C;YAC/B,gBAAgB;IA+B9B;;;;uEAImE;IACnE,OAAO,CAAC,gBAAgB;IAaxB;;;;;;;;;;;;;;;;;;;;;;;;;oFAyBgF;YAClE,4BAA4B;IAU1C;;;;;0EAKsE;YACxD,cAAc;IA6L5B;;iGAE6F;YAC/E,mBAAmB;IASjC;;;;;;;;;;iDAU6C;YAC/B,qBAAqB;IA0BnC;;;+DAG2D;YAC7C,aAAa;IAwH3B;iGAC6F;IAC7F,OAAO,CAAC,cAAc;IAwBtB;;yFAEqF;YACvE,cAAc;IA6E5B;;;oGAGgG;YAClF,kBAAkB;IAoBhC;;;;+DAI2D;IAC3D,OAAO,CAAC,aAAa;IAQrB;;;;;+EAK2E;YAC7D,cAAc;IAM5B,OAAO,CAAC,eAAe;IAOvB;wGACoG;IACpG,OAAO,CAAC,mBAAmB;IAM3B;wGACoG;IACpG,OAAO,CAAC,oBAAoB;IAM5B;;wFAEoF;IACpF,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,aAAa;IAMrB;oGACgG;YAClF,kBAAkB;IAwBhC;;;;;+CAK2C;YAC7B,aAAa;IAiE3B;;;;;sGAKkG;YACpF,eAAe;IAiB7B;;;;4FAIwF;YAC1E,iBAAiB;IAK/B;;mGAE+F;YACjF,iBAAiB;IAc/B;;8EAE0E;IAC1E,OAAO,CAAC,cAAc;IAItB;;qGAEiG;YACnF,cAAc;IA6B5B;;;;;2EAKuE;YACzD,cAAc;IAc5B;;;;;;wDAMoD;YACtC,qBAAqB;IA+DnC;;;;;gDAK4C;YAC9B,sBAAsB;YActB,6BAA6B;IA8B3C;;;;;;;;yEAQqE;IACrE,OAAO,CAAC,kBAAkB;IAI1B;qGACiG;YACnF,uBAAuB;IAarC,OAAO,CAAC,4BAA4B;IA2BpC,OAAO,CAAC,oBAAoB;YAad,yBAAyB;IA8DvC;;wDAEoD;IACpD,OAAO,CAAC,sBAAsB;IA6D9B,OAAO,CAAC,2BAA2B;IAQnC;;wGAEoG;YACtF,yBAAyB;YAczB,yBAAyB;IAwHvC;;;;;oGAKgG;IAChG,OAAO,CAAC,0BAA0B;IAiBlC;;;;uGAImG;YACrF,eAAe;IAuB7B;;;gCAG4B;YACd,OAAO;IAgBrB;;;;;;;;;;qDAUiD;IACjD,OAAO,CAAC,eAAe;IAoDvB;;;qEAGiE;IACjE,OAAO,CAAC,cAAc;IAItB;;;;wBAIoB;IACpB,OAAO,CAAC,cAAc;IAyBtB;;kFAE8E;IAC9E,OAAO,CAAC,aAAa;IA4BrB;;;;;;;;;;;;;;;;;;;;;;6FAsByF;YAC3E,eAAe;IAwB7B;;;;uGAImG;YACrF,gBAAgB;IAkC9B;;;;;;2GAMuG;YACzF,uBAAuB;IAmCrC,wFAAwF;IACxF;gGAC4F;IAC5F,OAAO,CAAC,IAAI;CAoDb"}
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"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"}
|
package/dist/manager.js
CHANGED
|
@@ -4,9 +4,9 @@ import { hostname } from "node:os";
|
|
|
4
4
|
import { credsAuthenticator } from "@nats-io/transport-node";
|
|
5
5
|
import { existsSync, lstatSync, readFileSync, rmSync } from "node:fs";
|
|
6
6
|
import { join, dirname, resolve } from "node:path";
|
|
7
|
-
import { CotalEndpoint, DEFAULT_SERVER, DEV_OWNER, MANAGER_LEASE_RENEW_MS, STANDING_RENEWABLE_TTL_SEC,
|
|
7
|
+
import { CotalEndpoint, DEFAULT_SERVER, DEV_OWNER, MANAGER_LEASE_RENEW_MS, STANDING_RENEWABLE_TTL_SEC, divergentSecretStoreNotice, parseSecretStoreIdentity, sameSecretStoreIdentity, agentFilePath, clearSpaceHistory, dialerFor, connectorServers, spawnEnvAllow, deprovisionAgent, firstFreeName, spawnNameError, idFromCreds, inspectCredHealth, composeWirePersona, loadAgentFile, listPersonaCatalog, personaCatalogDescription, personaCatalogReadable, loadCotalConfig, mintCreds, mintGeneration, mintAcceptedToken, openIssuedStore, acceptedBucket, issuedBucket, mintLifecycleUid, managedRetirementOpId, mkSecretDir, newIdentity, actionContext, parsePrincipalKey, parseShareSelection, principalKey, probeConnect, provisionAgent, provisionAgentDurables, registry, resolveAuthProvider, saveAgentFile, subjectMatches, AUTH_ENDPOINT, EP_CMD_RETIRE_LIFECYCLE, epRequestSubject, epCallerReplyFilter, parseEpSubject, controlServiceSubject, eventChannelPrincipal, } from "@cotal-ai/core";
|
|
8
8
|
import { agentAuthState, agentCredsDir, agentLifecycleSecretFilePaths, agentSecretFilePaths, agentSecretKeyForFile, authDir, connectorInstallHint, DEFAULT_CONNECTOR, defaultAgentType, DELIVERY_CREDS_KIND, extensionConnectors, findCotalRoot, getSpaceAuth, hasUserAuthState, loadExtensionsManifest, loadManagerInstanceIdentity, loadMeshes, manifestExtensionNames, materializeFromManifest, materializeSecretToFile, MEMBERSHIP_RW_CREDS_KIND, mergeLaunchOptions, remintDaemonCreds, resolveOnPath, createManagerInstanceIdentity, spaceMaterialKey, SYSTEM_CREDS_FILES, userAuthStateDir, workspaceSecretStore, writeRenewalRecord } from "@cotal-ai/workspace";
|
|
9
|
-
import { createRuntime, isCustodialRuntime, requireRuntimeAdopt, requireRuntimeReap, } from "./runtime/index.js";
|
|
9
|
+
import { createRuntime, isCustodialRuntime, requireRuntimeAdopt, requireRuntimeReap, RuntimeReapUnproven, } from "./runtime/index.js";
|
|
10
10
|
import { AttachEndpoint } from "./attach-endpoint.js";
|
|
11
11
|
import { makeManagerEndpointEvictionEvidence, makeManagerEndpointEvictor } from "./endpoint-evict.js";
|
|
12
12
|
import { makeManagerHolderLivenessProbe } from "./holder-liveness.js";
|
|
@@ -70,6 +70,19 @@ const DELIVERY_ADMIN_RELOAD_TIMEOUT_MS = 15_000;
|
|
|
70
70
|
/** A hard preservation stop should settle quickly. The manager still waits and reports a partial
|
|
71
71
|
* cut rather than pretending a child is gone. Held in ManagerOptions so fake runtimes can shorten it. */
|
|
72
72
|
const PRESERVE_STOP_TIMEOUT_MS = 10_000;
|
|
73
|
+
/** How much of an `input` text is written to a seat's pty at a time. Comfortably under the 4096-byte
|
|
74
|
+
* kernel input buffer, so a slice is never re-split at a boundary the manager did not choose: the
|
|
75
|
+
* tail of an oversized write stays queued and swallows the submit key that follows it (issue #1649).
|
|
76
|
+
* Sized in CHARS against a byte buffer on purpose — a multi-byte character can only make a slice
|
|
77
|
+
* shorter in characters than in bytes, never longer, so the margin cannot be eaten from below. */
|
|
78
|
+
const INPUT_SLICE_CHARS = 2048;
|
|
79
|
+
/** Bracketed-paste delimiters (DECSET 2004). `input` wraps a seat's text in these so the return it
|
|
80
|
+
* writes afterwards is a KEYSTROKE rather than the newline trailing a pasted block: a TUI that
|
|
81
|
+
* classifies a fast burst as a paste consumes that trailing newline and the text sits unsubmitted
|
|
82
|
+
* in the composer until the next call's return (issue #1649). Framing, never content - these bytes
|
|
83
|
+
* are not counted into the receipt, so `bytes` still reports what the caller asked to deliver. */
|
|
84
|
+
export const PASTE_START = "\x1b[200~";
|
|
85
|
+
export const PASTE_END = "\x1b[201~";
|
|
73
86
|
/** Pick a `setInterval` period for {@link Manager.renewDaemonCreds} that guarantees at least one
|
|
74
87
|
* tick lands inside every renewal owner's `[renewAt, exp)` window.
|
|
75
88
|
*
|
|
@@ -477,6 +490,11 @@ export class Manager {
|
|
|
477
490
|
leaseRenewInFlight = false;
|
|
478
491
|
/** The class-2 renewal owner's half-TTL schedule (D5 slice 5); armed only on auth meshes. */
|
|
479
492
|
credRenewTimer;
|
|
493
|
+
/** #1634: does THIS manager own the delivery daemon's credential renewal? True only while the
|
|
494
|
+
* daemon reloads from this manager's store AND this manager holds the per-space renewal lease.
|
|
495
|
+
* Starts false: a manager that has not proved both must not remint. */
|
|
496
|
+
daemonRenewalOwner = false;
|
|
497
|
+
daemonRenewalLeaseTimer;
|
|
480
498
|
maintenanceState = "active";
|
|
481
499
|
lifecycleInFlight = 0;
|
|
482
500
|
lifecycleDrainWaiters = [];
|
|
@@ -769,7 +787,15 @@ export class Manager {
|
|
|
769
787
|
// every half-TTL: re-sign the daemon creds files for their EXISTING nkeys, request the explicit
|
|
770
788
|
// `reloadCreds` adoption on the delivery-admin rail, and persist the audit record doctor renders.
|
|
771
789
|
if (this.auth) {
|
|
772
|
-
|
|
790
|
+
// #1634: a space may be served by several managers, so ownership of the daemon's credential
|
|
791
|
+
// renewal is decided here rather than by being the only manager able to start.
|
|
792
|
+
await this.claimDaemonRenewalOwnership();
|
|
793
|
+
// ARMED BEFORE the first remint, not after. That first `renewDaemonCreds()` re-signs through
|
|
794
|
+
// the SecretStore, and a slow or contended store makes the one pass outlast the lease's
|
|
795
|
+
// MANAGER_LEASE_TTL_MS. Arming afterwards leaves the whole first remint unprotected: the lease
|
|
796
|
+
// expires mid-pass, a second manager's CAS create succeeds, and both remint into one store.
|
|
797
|
+
this.daemonRenewalLeaseTimer = setInterval(() => { void this.keepDaemonRenewalLease(); }, MANAGER_LEASE_RENEW_MS);
|
|
798
|
+
this.daemonRenewalLeaseTimer.unref?.();
|
|
773
799
|
await this.renewDaemonCreds();
|
|
774
800
|
this.credRenewTimer = setInterval(() => { void this.renewDaemonCreds(); }, credRenewIntervalMs(STANDING_RENEWABLE_TTL_SEC));
|
|
775
801
|
this.credRenewTimer.unref?.();
|
|
@@ -831,7 +857,7 @@ export class Manager {
|
|
|
831
857
|
* challenge runs again before every remint, so a later daemon on a foreign store is
|
|
832
858
|
* refused then rather than certified by an earlier absence. A request timeout is not
|
|
833
859
|
* absence: a hung rail would skip the proof, so it fails closed. */
|
|
834
|
-
async
|
|
860
|
+
async daemonStoreRelation() {
|
|
835
861
|
let reply;
|
|
836
862
|
try {
|
|
837
863
|
reply = await this.ep.requestDeliveryAdmin("reloadStoreIdentity", {}, 5_000);
|
|
@@ -851,10 +877,54 @@ export class Manager {
|
|
|
851
877
|
catch (e) {
|
|
852
878
|
throw new Error(`delivery daemon named an unreadable SecretStore: ${e.message}`);
|
|
853
879
|
}
|
|
854
|
-
if (!sameSecretStoreIdentity(this.secretStoreIdentity, daemon))
|
|
855
|
-
|
|
880
|
+
if (!sameSecretStoreIdentity(this.secretStoreIdentity, daemon)) {
|
|
881
|
+
console.error(`! ${divergentSecretStoreNotice(this.secretStoreIdentity, daemon)}`);
|
|
882
|
+
return "divergent";
|
|
883
|
+
}
|
|
856
884
|
return "shared";
|
|
857
885
|
}
|
|
886
|
+
/** Keep this manager's renewal lease alive between credential passes (#1634). The manager bucket
|
|
887
|
+
* expires keys at MANAGER_LEASE_TTL_MS, far below the credential pass's cadence, so the lease
|
|
888
|
+
* needs its own heartbeat like the per-instance liveness lease. A non-owner calls this too: the
|
|
889
|
+
* CAS is how a survivor picks up a dead owner's expired lease with no operator step. Never
|
|
890
|
+
* throws; a failed heartbeat leaves ownership to the next pass rather than ending the process. */
|
|
891
|
+
async keepDaemonRenewalLease() {
|
|
892
|
+
if (!this.auth)
|
|
893
|
+
return;
|
|
894
|
+
try {
|
|
895
|
+
const held = await this.ep.holdDaemonRenewalLease(this.managerInstanceId);
|
|
896
|
+
if (this.daemonRenewalOwner && !held)
|
|
897
|
+
console.error(`! daemon credential renewal for space "${this.space}" passed to another manager (this one lost the renewal lease) - it keeps serving its seats`);
|
|
898
|
+
this.daemonRenewalOwner = held;
|
|
899
|
+
}
|
|
900
|
+
catch (e) {
|
|
901
|
+
console.error(`! could not refresh the daemon renewal lease: ${e.message} - ownership is re-decided on the next pass`);
|
|
902
|
+
}
|
|
903
|
+
}
|
|
904
|
+
/** Decide whether THIS manager owns the daemon's credential renewal (#1634). Both conditions are
|
|
905
|
+
* required, because each answers a question the other cannot:
|
|
906
|
+
*
|
|
907
|
+
* 1. The daemon must reload from this manager's store (#1447). Reminting into a store the daemon
|
|
908
|
+
* never reads writes bytes nobody adopts, and fingerprint-only `reloadCreds` would then name a
|
|
909
|
+
* generation the daemon cannot see.
|
|
910
|
+
* 2. This manager must hold the per-space renewal lease. Store identity CANNOT pick one owner on
|
|
911
|
+
* its own: `sameSecretStoreIdentity` is pure equality with no holder and no tiebreak, so every
|
|
912
|
+
* manager sharing one store passes it, and two owners reminting on independent timers have no
|
|
913
|
+
* ordering between them - one's write lands between the other's re-sign and its adoption
|
|
914
|
+
* request, which is the #773 refusal the challenge exists to prevent.
|
|
915
|
+
*
|
|
916
|
+
* A manager failing either test serves the space normally and skips only the daemon remint. */
|
|
917
|
+
async claimDaemonRenewalOwnership() {
|
|
918
|
+
if ((await this.daemonStoreRelation()) === "divergent") {
|
|
919
|
+
// Not our daemon's store: drop any lease we hold rather than sit on it, so the manager that
|
|
920
|
+
// CAN remint is not blocked behind us.
|
|
921
|
+
if (this.daemonRenewalOwner)
|
|
922
|
+
await this.ep.releaseDaemonRenewalLease();
|
|
923
|
+
this.daemonRenewalOwner = false;
|
|
924
|
+
return;
|
|
925
|
+
}
|
|
926
|
+
await this.keepDaemonRenewalLease();
|
|
927
|
+
}
|
|
858
928
|
/** One class-2 renewal pass (D5 slice 5): re-sign `.cotal/delivery.creds` + `.cotal/membership-rw.creds`
|
|
859
929
|
* for their existing nkeys, then request the delivery daemon's EXPLICIT `reloadCreds` adoption on the
|
|
860
930
|
* delivery-admin rail and persist the audit record (`.cotal/renewal.json`) that `cotal doctor auth`
|
|
@@ -866,7 +936,10 @@ export class Manager {
|
|
|
866
936
|
if (!release)
|
|
867
937
|
return;
|
|
868
938
|
try {
|
|
869
|
-
|
|
939
|
+
// #1634: re-decide every pass, so a daemon that moved onto this manager's store becomes
|
|
940
|
+
// ownable, one that moved off retires this manager's ownership, and a crashed owner's expired
|
|
941
|
+
// lease is taken over by a survivor.
|
|
942
|
+
await this.claimDaemonRenewalOwnership();
|
|
870
943
|
// Re-sign through the manager's ONE store — the SAME store the delivery daemon reads
|
|
871
944
|
// (`runDelivery(args, store)`), so a hosted remint writes the store the daemon renews from,
|
|
872
945
|
// never a divergent one. Locally this is the workstation FS store (`.cotal/*.creds`).
|
|
@@ -874,9 +947,11 @@ export class Manager {
|
|
|
874
947
|
// overwriting from ANY signer form (full or stripped). A same-label alternate full bundle is
|
|
875
948
|
// self-bound, not broker-bound, so the manager-hosted path proves every re-sign before it could
|
|
876
949
|
// clobber the last-good with a broker-dead cred; a wrong-account signer's cred is refused here.
|
|
877
|
-
const results =
|
|
878
|
-
|
|
879
|
-
|
|
950
|
+
const results = this.daemonRenewalOwner
|
|
951
|
+
? await remintDaemonCreds(this.workspaceRoot, this.space, this.secrets, {
|
|
952
|
+
preflight: (creds) => this.probeStaticCredential(creds).then((r) => r.ok),
|
|
953
|
+
})
|
|
954
|
+
: [];
|
|
880
955
|
const resigned = results.filter((r) => r.ok);
|
|
881
956
|
let adoption;
|
|
882
957
|
if (resigned.length) {
|
|
@@ -907,7 +982,10 @@ export class Manager {
|
|
|
907
982
|
console.error(`! credential renewal: daemon adoption failed: ${adoption.error}`);
|
|
908
983
|
// `writeRenewalRecord` redacts the ephemeral fingerprint at the persistence boundary (covering
|
|
909
984
|
// the `doctor auth --fix` writer too), so the results pass straight through.
|
|
910
|
-
|
|
985
|
+
// A non-owner (#1634) re-signed nothing, so it writes no record: an empty one renders in
|
|
986
|
+
// `doctor auth` as a pass that never ran.
|
|
987
|
+
if (this.daemonRenewalOwner)
|
|
988
|
+
writeRenewalRecord(this.workspaceRoot, { ts: new Date().toISOString(), owner: "manager", results, adoption });
|
|
911
989
|
this.warnOnSystemCredExpiry();
|
|
912
990
|
// F5(b) (Unit B): the MANAGER is the renewal owner for its managed-static agent creds —
|
|
913
991
|
// supervisor-side PUSH remint for recorded LIVE slots (the child JWT is never proof of
|
|
@@ -1505,6 +1583,8 @@ export class Manager {
|
|
|
1505
1583
|
clearInterval(this.leaseTimer);
|
|
1506
1584
|
if (this.credRenewTimer)
|
|
1507
1585
|
clearInterval(this.credRenewTimer);
|
|
1586
|
+
if (this.daemonRenewalLeaseTimer)
|
|
1587
|
+
clearInterval(this.daemonRenewalLeaseTimer);
|
|
1508
1588
|
if (this.sessionKeyRenewTimer)
|
|
1509
1589
|
clearInterval(this.sessionKeyRenewTimer);
|
|
1510
1590
|
let releaseFailures = [];
|
|
@@ -1519,6 +1599,9 @@ export class Manager {
|
|
|
1519
1599
|
await this.stopRetainedAgentsOnExit();
|
|
1520
1600
|
}
|
|
1521
1601
|
await this.ep.releaseManagerLease(this.managerInstanceId, this.leaseRevision);
|
|
1602
|
+
// #1634: hand the renewal lease back on a clean stop so a sibling picks it up on its next pass
|
|
1603
|
+
// rather than waiting out the bucket TTL. A non-owner holds no revision and this is a no-op.
|
|
1604
|
+
await this.ep.releaseDaemonRenewalLease();
|
|
1522
1605
|
// Capture BEFORE the serve loop is torn down: `stopServiceServe` clears the state, and what is
|
|
1523
1606
|
// being asked here is "did this process register a service instance", which only the state
|
|
1524
1607
|
// before teardown can answer. Deregistration runs AFTER the serve loop has drained, so no
|
|
@@ -6614,10 +6697,17 @@ export class Manager {
|
|
|
6614
6697
|
else {
|
|
6615
6698
|
try {
|
|
6616
6699
|
const evidence = await requireRuntimeReap(this.runtime, got);
|
|
6617
|
-
disposal = `the spawned seat was reaped (${evidence.
|
|
6700
|
+
disposal = `the spawned seat was reaped (${evidence.detail})`;
|
|
6618
6701
|
}
|
|
6619
6702
|
catch (e) {
|
|
6620
|
-
|
|
6703
|
+
// Two unrelated failures used to share one sentence here, and the difference is the part the
|
|
6704
|
+
// reader has to act on. A runtime that cannot reap at all left nothing behind to find. An
|
|
6705
|
+
// UNPROVEN reap may have left a live seat under a reference no durable row names, which is
|
|
6706
|
+
// the one case where somebody has to go looking, so it says so and names what to look for.
|
|
6707
|
+
disposal =
|
|
6708
|
+
e instanceof RuntimeReapUnproven
|
|
6709
|
+
? `the spawned seat was NOT proved gone and may still be running as ${e.reference.kind}:${e.reference.id} (${e.message})`
|
|
6710
|
+
: `the spawned seat could NOT be reaped: ${e.message}`;
|
|
6621
6711
|
}
|
|
6622
6712
|
}
|
|
6623
6713
|
throw new Error(`runtime "${this.runtime.kind}" reserved custody ${reserved.kind}:${reserved.id} for "${name}" but spawned ` +
|
|
@@ -6639,8 +6729,11 @@ export class Manager {
|
|
|
6639
6729
|
console.error(`static retirement ${a.name}: no custody reference reached this terminal, though runtime "${this.runtime.kind}" custodies its seats; any seat it launched is not addressable from here`);
|
|
6640
6730
|
return;
|
|
6641
6731
|
}
|
|
6732
|
+
// An unproven reap throws from here rather than printing, so it propagates into
|
|
6733
|
+
// driveStaticRetirement's catch, which records the failure and HOLDS the name. That is the whole
|
|
6734
|
+
// point of refusing: the alias must not be freed while a seat nobody proved gone may still run.
|
|
6642
6735
|
const evidence = await requireRuntimeReap(this.runtime, a.runtime);
|
|
6643
|
-
console.error(`static retirement ${a.name}: orphan seat process ${evidence.
|
|
6736
|
+
console.error(`static retirement ${a.name}: orphan seat process ${evidence.detail}`);
|
|
6644
6737
|
}
|
|
6645
6738
|
/** The static F1 terminal for one departed incarnation (Unit B): delegates the gate/head CAS
|
|
6646
6739
|
* sequence to the shared core saga over the executor transport; the footprint teardown (creds
|
|
@@ -7384,16 +7477,67 @@ export class Manager {
|
|
|
7384
7477
|
// The contract validated `text` (non-empty, <= 64KiB) and `enter` (boolean) before this ran, so
|
|
7385
7478
|
// the only decision left is the carriage return. `!== false` and not `?? true`: an ABSENT enter
|
|
7386
7479
|
// and an explicit `true` must behave identically, and only `false` may suppress the return.
|
|
7387
|
-
|
|
7388
|
-
|
|
7389
|
-
|
|
7390
|
-
|
|
7391
|
-
|
|
7392
|
-
|
|
7393
|
-
|
|
7394
|
-
|
|
7480
|
+
//
|
|
7481
|
+
// THE TEXT IS DELIVERED AS A BRACKETED PASTE AND THE RETURN FOLLOWS IT AS ITS OWN WRITE, and
|
|
7482
|
+
// that is the whole of issue #1649. A TUI harness reads keystrokes, so a return fused onto the
|
|
7483
|
+
// tail of the text (`${text}\r`) is the text's last character rather than the submit key: the
|
|
7484
|
+
// line waits in the composer and the NEXT call's return submits the PREVIOUS call's text, so
|
|
7485
|
+
// every delivery runs one call behind while the op still reports the full byte count.
|
|
7486
|
+
//
|
|
7487
|
+
// Separating the return is necessary and NOT sufficient, which is the part that cost a second
|
|
7488
|
+
// round of measurement. A TUI classifies a fast burst of input as a PASTE and eats the newline
|
|
7489
|
+
// that trails it (Jcode spells this `paste_guard::consume_paste_trailing_enter`), so a text big
|
|
7490
|
+
// enough to need more than one write is still one call behind even when the return is written
|
|
7491
|
+
// alone. Measured on a real seat, delivering in 2048-char slices with a yield before the return:
|
|
7492
|
+
// 120 and 700 bytes submitted on their own call, 2500 and 3100 bytes did not - each appeared
|
|
7493
|
+
// only when the NEXT call's return arrived. That is the reported symptom exactly.
|
|
7494
|
+
//
|
|
7495
|
+
// Bracketed paste states the boundary instead of guessing at it. `ESC[200~ text ESC[201~`
|
|
7496
|
+
// delimits the pasted block, so the return after it is unambiguously a keystroke and the guard
|
|
7497
|
+
// has no trailing newline to consume. This is a CLASSIFIER, not a race, so a sleep would be the
|
|
7498
|
+
// wrong instrument: measured on a real seat, a 250ms pause before the return still lost the
|
|
7499
|
+
// submission while 1000ms carried it, and any margin chosen from those numbers is a guess a
|
|
7500
|
+
// loaded host breaks. Bracketed delivery submitted 120, 2600 and 5912 bytes (the issue's own
|
|
7501
|
+
// size) each on its own call. The terminal advertises support by enabling DECSET 2004, which
|
|
7502
|
+
// Jcode's TUI does.
|
|
7503
|
+
//
|
|
7504
|
+
// The bytes the SEAT receives as text are unchanged, and the receipt still counts the text plus
|
|
7505
|
+
// the return: the paste markers are framing this op adds, never content the caller asked to
|
|
7506
|
+
// deliver, so counting them would make `bytes` disagree with what the caller sent.
|
|
7507
|
+
const text = String(args.text);
|
|
7508
|
+
const submit = args.enter !== false;
|
|
7509
|
+
const intendedBytes = Buffer.byteLength(text, "utf8") + (submit ? 1 : 0);
|
|
7510
|
+
const parts = [{ data: PASTE_START, counted: false }];
|
|
7511
|
+
for (let i = 0; i < text.length; i += INPUT_SLICE_CHARS)
|
|
7512
|
+
parts.push({ data: text.slice(i, i + INPUT_SLICE_CHARS), counted: true });
|
|
7513
|
+
parts.push({ data: PASTE_END, counted: false });
|
|
7514
|
+
// `enter:false` still presses nothing: the text is delivered into the composer and left there.
|
|
7515
|
+
if (submit)
|
|
7516
|
+
parts.push({ data: "\r", counted: true });
|
|
7517
|
+
let bytes = 0;
|
|
7518
|
+
for (const [i, part] of parts.entries()) {
|
|
7519
|
+
// Yield BEFORE each write but the first, so the child drains the previous slice rather than
|
|
7520
|
+
// the pty buffer merging them. `setImmediate` runs after I/O, which a microtask would not.
|
|
7521
|
+
if (i > 0)
|
|
7522
|
+
await new Promise((resolve) => setImmediate(resolve));
|
|
7523
|
+
let accepted;
|
|
7524
|
+
try {
|
|
7525
|
+
accepted = await write(part.data);
|
|
7526
|
+
}
|
|
7527
|
+
catch (error) {
|
|
7528
|
+
throw new EpEnvelopeError("unavailable", `input for seat "${a.name}" failed: ${error.message}`);
|
|
7529
|
+
}
|
|
7530
|
+
if (!Number.isSafeInteger(accepted)) {
|
|
7531
|
+
throw new EpEnvelopeError("unavailable", `input for seat "${a.name}" failed: runtime accepted ${String(accepted)} of ${intendedBytes} bytes`);
|
|
7532
|
+
}
|
|
7533
|
+
// A short write on ANY part is a failed delivery, including a marker: a paste block that was
|
|
7534
|
+
// opened but not closed would leave the seat's composer in paste mode.
|
|
7535
|
+
if (accepted !== Buffer.byteLength(part.data, "utf8"))
|
|
7536
|
+
throw new EpEnvelopeError("unavailable", `input for seat "${a.name}" failed: runtime accepted ${accepted} of ${Buffer.byteLength(part.data, "utf8")} bytes of one write`);
|
|
7537
|
+
if (part.counted)
|
|
7538
|
+
bytes += accepted;
|
|
7395
7539
|
}
|
|
7396
|
-
if (
|
|
7540
|
+
if (bytes !== intendedBytes)
|
|
7397
7541
|
throw new EpEnvelopeError("unavailable", `input for seat "${a.name}" failed: runtime accepted ${String(bytes)} of ${intendedBytes} bytes`);
|
|
7398
7542
|
return { name: a.name, bytes };
|
|
7399
7543
|
}
|
|
@@ -7491,7 +7635,7 @@ export class Manager {
|
|
|
7491
7635
|
const roster = new Map(this.ep.getRoster().map((p) => [p.card.name, p]));
|
|
7492
7636
|
// The roster is only evidence while THIS observer's presence watch is fresh. A stale view
|
|
7493
7637
|
// (whole-bucket silence past TTL) or an unpopulated one (snapshot not yet replayed) cannot
|
|
7494
|
-
// support "offline" or "absent" for anyone:
|
|
7638
|
+
// support "offline" or "absent" for anyone: a live deployment on 2026-09-09 rendered every live seat as
|
|
7495
7639
|
// one of those for hours after the presence stream was recreated under a still-open watch.
|
|
7496
7640
|
// Carry the view state on the row so the renderer can say "unknown" instead of a verdict.
|
|
7497
7641
|
// An endpoint that reports no view (test doubles built on `getRoster` alone) is read as
|