@cotal-ai/auth 0.11.6 → 0.13.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.
Files changed (102) hide show
  1. package/dist/admission-mediator.d.ts +319 -0
  2. package/dist/admission-mediator.d.ts.map +1 -0
  3. package/dist/admission-mediator.js +1033 -0
  4. package/dist/admission-mediator.js.map +1 -0
  5. package/dist/auth-admin.d.ts +29 -0
  6. package/dist/auth-admin.d.ts.map +1 -0
  7. package/dist/auth-admin.js +224 -0
  8. package/dist/auth-admin.js.map +1 -0
  9. package/dist/authority-client.d.ts +215 -0
  10. package/dist/authority-client.d.ts.map +1 -0
  11. package/dist/authority-client.js +346 -0
  12. package/dist/authority-client.js.map +1 -0
  13. package/dist/barrier-evict.d.ts +16 -0
  14. package/dist/barrier-evict.d.ts.map +1 -0
  15. package/dist/barrier-evict.js +100 -0
  16. package/dist/barrier-evict.js.map +1 -0
  17. package/dist/commands.js +16 -12
  18. package/dist/commands.js.map +1 -1
  19. package/dist/connect-reader.d.ts +72 -0
  20. package/dist/connect-reader.d.ts.map +1 -0
  21. package/dist/connect-reader.js +154 -0
  22. package/dist/connect-reader.js.map +1 -0
  23. package/dist/continuity.d.ts +23 -0
  24. package/dist/continuity.d.ts.map +1 -0
  25. package/dist/continuity.js +145 -0
  26. package/dist/continuity.js.map +1 -0
  27. package/dist/credential-ledger.d.ts +343 -0
  28. package/dist/credential-ledger.d.ts.map +1 -0
  29. package/dist/credential-ledger.js +732 -0
  30. package/dist/credential-ledger.js.map +1 -0
  31. package/dist/drain-repair.d.ts +95 -0
  32. package/dist/drain-repair.d.ts.map +1 -0
  33. package/dist/drain-repair.js +305 -0
  34. package/dist/drain-repair.js.map +1 -0
  35. package/dist/idp.d.ts +19 -0
  36. package/dist/idp.d.ts.map +1 -1
  37. package/dist/idp.js +17 -0
  38. package/dist/idp.js.map +1 -1
  39. package/dist/index.d.ts +7 -3
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +31 -3
  42. package/dist/index.js.map +1 -1
  43. package/dist/issuer.d.ts +8 -0
  44. package/dist/issuer.d.ts.map +1 -1
  45. package/dist/issuer.js +4 -2
  46. package/dist/issuer.js.map +1 -1
  47. package/dist/ledger-scanner.d.ts +98 -0
  48. package/dist/ledger-scanner.d.ts.map +1 -0
  49. package/dist/ledger-scanner.js +352 -0
  50. package/dist/ledger-scanner.js.map +1 -0
  51. package/dist/ledger.d.ts +12 -0
  52. package/dist/ledger.d.ts.map +1 -1
  53. package/dist/ledger.js +103 -13
  54. package/dist/ledger.js.map +1 -1
  55. package/dist/lifecycle-registry.d.ts +397 -0
  56. package/dist/lifecycle-registry.d.ts.map +1 -0
  57. package/dist/lifecycle-registry.js +819 -0
  58. package/dist/lifecycle-registry.js.map +1 -0
  59. package/dist/permissions.d.ts +5 -1
  60. package/dist/permissions.d.ts.map +1 -1
  61. package/dist/permissions.js +29 -6
  62. package/dist/permissions.js.map +1 -1
  63. package/dist/plane-claim.d.ts +83 -0
  64. package/dist/plane-claim.d.ts.map +1 -0
  65. package/dist/plane-claim.js +290 -0
  66. package/dist/plane-claim.js.map +1 -0
  67. package/dist/provider.d.ts.map +1 -1
  68. package/dist/provider.js +45 -16
  69. package/dist/provider.js.map +1 -1
  70. package/dist/records-scanner.d.ts +78 -0
  71. package/dist/records-scanner.d.ts.map +1 -0
  72. package/dist/records-scanner.js +320 -0
  73. package/dist/records-scanner.js.map +1 -0
  74. package/dist/retirement-barrier.d.ts +217 -0
  75. package/dist/retirement-barrier.d.ts.map +1 -0
  76. package/dist/retirement-barrier.js +624 -0
  77. package/dist/retirement-barrier.js.map +1 -0
  78. package/dist/retirement-cleaner.d.ts +54 -0
  79. package/dist/retirement-cleaner.d.ts.map +1 -0
  80. package/dist/retirement-cleaner.js +158 -0
  81. package/dist/retirement-cleaner.js.map +1 -0
  82. package/dist/root-credential.d.ts +26 -0
  83. package/dist/root-credential.d.ts.map +1 -0
  84. package/dist/root-credential.js +116 -0
  85. package/dist/root-credential.js.map +1 -0
  86. package/dist/service.d.ts +73 -5
  87. package/dist/service.d.ts.map +1 -1
  88. package/dist/service.js +349 -24
  89. package/dist/service.js.map +1 -1
  90. package/dist/session-ledger.d.ts +224 -0
  91. package/dist/session-ledger.d.ts.map +1 -0
  92. package/dist/session-ledger.js +713 -0
  93. package/dist/session-ledger.js.map +1 -0
  94. package/dist/store.d.ts +18 -8
  95. package/dist/store.d.ts.map +1 -1
  96. package/dist/store.js +74 -51
  97. package/dist/store.js.map +1 -1
  98. package/dist/token.d.ts +17 -0
  99. package/dist/token.d.ts.map +1 -1
  100. package/dist/token.js +30 -2
  101. package/dist/token.js.map +1 -1
  102. package/package.json +7 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle-registry.js","sourceRoot":"","sources":["../src/lifecycle-registry.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,11 @@ import type { ValidatedUserToken } from "./token.js";
11
11
  * persona registry, keyed by the authenticated principal), because the user token carries the identity
12
12
  * and capabilities but NOT the channel read/post ACL. Injected by the composition root that launches the
13
13
  * callout (`cotal up`), so this package stays free of any ledger/persona storage concern. */
14
- export type AclResolver = (t: ValidatedUserToken) => Pick<MintOpts, "allowSubscribe" | "allowPublish" | "role">;
14
+ export type AclResolver = (t: ValidatedUserToken) => Pick<MintOpts, "allowSubscribe" | "allowPublish" | "role" | "lifecycleUid"> & {
15
+ /** The actor's CURRENT capability grant (the row's scope), so the mint can re-contain the
16
+ * bearer's capabilities against the row AS OF THE MINT, not only as of the connect gate. */
17
+ scope: string[];
18
+ };
15
19
  /**
16
20
  * Build the callout's `permissionsFor` hook. Maps `ValidatedUserToken` → `MintPrincipal` → core's
17
21
  * `permissionsFor("agent", …)`. `connId` here is the CLIENT-CHOSEN inbox nonce the callout reads from
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAmF,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEhI,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD;;;8FAG8F;AAC9F,MAAM,MAAM,WAAW,GAAG,CACxB,CAAC,EAAE,kBAAkB,KAClB,IAAI,CAAC,QAAQ,EAAE,gBAAgB,GAAG,cAAc,GAAG,MAAM,CAAC,CAAC;AAEhE;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,WAAW,GACtB,CAAC,CAAC,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiCpE"}
1
+ {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAmF,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEhI,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD;;;8FAG8F;AAC9F,MAAM,MAAM,WAAW,GAAG,CACxB,CAAC,EAAE,kBAAkB,KAClB,IAAI,CAAC,QAAQ,EAAE,gBAAgB,GAAG,cAAc,GAAG,MAAM,GAAG,cAAc,CAAC,GAAG;IACjF;iGAC6F;IAC7F,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,WAAW,GACtB,CAAC,CAAC,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA6DpE"}
@@ -29,11 +29,32 @@ export function calloutPermissions(resolveAcl) {
29
29
  if (t.scope.length && norm(t.scope) !== norm(caps))
30
30
  throw new Error("callout permissions: top-level scope != act.scope - act.scope is the single capability authority");
31
31
  const principal = { owner: t.owner, actor: t.act.actor, connId };
32
+ // A claimless bearer of EITHER shape mints nothing, even in a composition that skipped the
33
+ // connect gate (the equality against the row's uid follows below; this refusal is the
34
+ // claim-side half).
35
+ if (t.act.lifecycleUid === undefined)
36
+ throw new Error("callout permissions: bearer carries no lifecycle claim - re-exchange for a fresh bearer (lifecycle-bound from v0.4)");
37
+ // FRESH-ROW re-read AT THE MINT, both arms: the connect boundary's ledger read
38
+ // (`ledgerAuthorizeConnect`) is not the final read before authority is minted - a
39
+ // revoke/re-grant landing between the two reads would mint from stale claims (for a view
40
+ // bearer, the full elevated profile; for an agent bearer, capabilities the current grant no
41
+ // longer carries). The resolver re-reads the CURRENT row and enforces lifecycle equality
42
+ // itself; here the bearer's capabilities are re-contained against the CURRENT grant, so a
43
+ // narrowed or moved row refuses at the mint. Two sequential reads narrow the window rather
44
+ // than linearize it (strict revocation linearization is a gate/CAS write, the 13.1 fence
45
+ // pattern); the mint trusts the SECOND read.
46
+ const acl = resolveAcl(t);
47
+ if (acl.lifecycleUid !== t.act.lifecycleUid)
48
+ throw new Error("callout permissions: the current row's lifecycle is not the bearer's - the alias was re-granted during connect; re-exchange for a fresh bearer");
49
+ const current = new Set(acl.scope);
50
+ for (const s of caps)
51
+ if (!current.has(s))
52
+ throw new Error(`callout permissions: bearer capability "${s}" is no longer in the actor's CURRENT grant - re-exchange for a fresh bearer`);
32
53
  if (t.act.view !== undefined) {
33
- // ELEVATED VIEW: the exchange already ledger-authorized it, and `ledgerAuthorizeConnect`
34
- // fresh-read the row again this connect (act.scope current row enforced there) here is
35
- // the LAST defense-in-depth re-assert: the bearer's own capability list must carry the
36
- // view's required scope, or nothing is minted. View names ARE profile names (a closed enum,
54
+ // ELEVATED VIEW: the exchange already ledger-authorized it, the connect gate fresh-read
55
+ // the row, and the containment above re-checked the CURRENT row at the mint. The LAST
56
+ // defense-in-depth re-assert: the bearer's own capability list must carry the view's
57
+ // required scope, or nothing is minted. View names ARE profile names (a closed enum,
37
58
  // never a client-chosen profile passthrough); channel ACLs don't apply to these profiles.
38
59
  const need = VIEW_REQUIRED_SCOPE[t.act.view];
39
60
  if (!caps.includes(need))
@@ -43,8 +64,10 @@ export function calloutPermissions(resolveAcl) {
43
64
  // owner-equality launch authorization governs, never the admin-tier bypass.
44
65
  t.act.view === "deployer" ? { controlTier: CONTROL_PRIVILEGED } : {});
45
66
  }
46
- const acl = resolveAcl(t);
47
- return permissionsFor("agent", t.space, principal, { ...acl, capabilities: caps });
67
+ // The ledger row's lifecycleUid rides the PRINCIPAL: core's agent arm mints the lifecycle-keyed
68
+ // dm/dlv/chathist grant names from it (SPEC 13.1) and refuses to mint without one.
69
+ const { scope: _rowScope, ...aclOpts } = acl;
70
+ return permissionsFor("agent", t.space, { ...principal, lifecycleUid: acl.lifecycleUid }, { ...aclOpts, capabilities: caps });
48
71
  };
49
72
  }
50
73
  //# sourceMappingURL=permissions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,kBAAkB,EAAqC,MAAM,gBAAgB,CAAC;AAChI,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAWjD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAChC,UAAuB;IAEvB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;QACnB,uBAAuB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,8DAA8D;QAChG,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;QAC/B,qGAAqG;QACrG,uGAAuG;QACvG,MAAM,IAAI,GAAG,CAAC,EAAY,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC;YAChD,MAAM,IAAI,KAAK,CACb,kGAAkG,CACnG,CAAC;QACJ,MAAM,SAAS,GAAkB,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QAChF,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,yFAAyF;YACzF,2FAA2F;YAC3F,uFAAuF;YACvF,4FAA4F;YAC5F,0FAA0F;YAC1F,MAAM,IAAI,GAAG,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,GAAG,CAAC,IAAI,yBAAyB,IAAI,mCAAmC,CAAC,CAAC;YAC5H,OAAO,cAAc,CACnB,CAAC,CAAC,GAAG,CAAC,IAAI,EACV,CAAC,CAAC,KAAK,EACP,SAAS;YACT,iFAAiF;YACjF,4EAA4E;YAC5E,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CACrE,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1B,OAAO,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,GAAG,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IACrF,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../src/permissions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ import type { NatsConnection } from "@nats-io/transport-node";
2
+ import { type PlaneConnTuple, type PlaneLivenessQuery, type PlaneLivenessResult } from "@cotal-ai/core";
3
+ /** The ONE exact claim key (`$KV.cotal_auth_<space>.plane`) — the bucket is already space-scoped;
4
+ * the barrier grant carries exactly this key, never `plane.>`. */
5
+ export declare const PLANE_CLAIM_KEY = "plane";
6
+ /** The claim row (closed schema, v1). Never deleted; `released` is the clean-close terminal a
7
+ * successor CASes over without an oracle round. */
8
+ export interface PlaneClaimRow {
9
+ v: 1;
10
+ /** Monotonically increasing across every successful HELD write (create=1) — a successor's CAS
11
+ * target and the guard's staleness check. */
12
+ generation: number;
13
+ /** Per-open random id: the holder's identity for the guard (a successor necessarily writes a
14
+ * different one). */
15
+ claimId: string;
16
+ state: "held" | "released";
17
+ /** The two ownership-bearing sealed-scanner connection identities (the auth-ledger scan and the
18
+ * records-obligation scan). The barrier is deliberately absent. */
19
+ ledger: PlaneConnTuple;
20
+ records: PlaneConnTuple;
21
+ openedAt: string;
22
+ }
23
+ /** The liveness oracle seam: the production implementation rides the delivery-admin rail
24
+ * ({@link makeDeliveryAdminPlaneOracle}); smokes inject deterministic verdicts. Every failure
25
+ * mode maps to `unknown` (never throws) — an oracle that cannot answer must block takeover. */
26
+ export type PlaneLivenessOracle = (query: PlaneLivenessQuery) => Promise<PlaneLivenessResult>;
27
+ /** The scan guard the WINNER threads into its branded scanners: claim re-validation around every
28
+ * sealed scan + the mid-life fencing switch. */
29
+ export interface ScanGuard {
30
+ /** Throws unless the claim is currently held by THIS open (state held, same claimId, same
31
+ * generation) — called by the sealed scanners BEFORE (refuse to enumerate) and AFTER (discard
32
+ * the enumeration) every scan, inside the serialized critical section. */
33
+ assertHeld(when: "before" | "after"): Promise<void>;
34
+ }
35
+ /** The winner's hold on the plane. */
36
+ export interface PlaneClaimHold {
37
+ claimId: string;
38
+ generation: number;
39
+ guard: ScanGuard;
40
+ /** Fence the guard permanently (the mid-life scanner-death path): every subsequent assertHeld
41
+ * throws `reason`. First fence wins. */
42
+ fence(reason: string): void;
43
+ /** Clean close: CAS `held → released` (call ONLY after the scanner clients are closed). A row
44
+ * no longer held by this claimId is logged loud and left alone (a successor already owns it). */
45
+ release(): Promise<void>;
46
+ }
47
+ /** Closed parse of a claim row. Returns undefined on ANY structural violation — the caller turns
48
+ * that into a loud corruption refusal (an unparseable exclusion row must never be reasoned over). */
49
+ export declare function parsePlaneClaimRow(bytes: Uint8Array): PlaneClaimRow | undefined;
50
+ /** UX STATE 3 — mid-life scanner death: this plane fenced itself DELIBERATELY. */
51
+ export declare const scannerDeathCopy: (space: string, role: "auth-ledger" | "records") => string;
52
+ /**
53
+ * Acquire the plane claim for `space` over the BARRIER connection (the only profile holding the
54
+ * exact `plane` write). Called with the two candidate scanner tuples AFTER those connections are
55
+ * open and BEFORE any branded scanner exists. Returns the winner's hold, or throws one of the
56
+ * three operator-legible refusals. Every path is broker-atomic: create-only on a virgin key,
57
+ * revision-CAS everywhere else.
58
+ */
59
+ export declare function acquirePlaneClaim(opts: {
60
+ nc: NatsConnection;
61
+ space: string;
62
+ ledger: PlaneConnTuple;
63
+ records: PlaneConnTuple;
64
+ oracle: PlaneLivenessOracle;
65
+ log: (line: string) => void;
66
+ }): Promise<PlaneClaimHold>;
67
+ /**
68
+ * The PRODUCTION liveness oracle over the delivery daemon's `ctl.delivery-admin` rail (the
69
+ * barrier-evict seam's twin: per-call connection, supervisor-profile credential minted with a
70
+ * tight TTL from the seed the service already holds — the same named residual, #30 migrates it).
71
+ * FAIL-CLOSED MAPPING: no daemon, a refusal, a garbled reply, or a foreign echo all return
72
+ * `unknown` verdicts with an honest note — this seam never fabricates absence and never throws.
73
+ */
74
+ export declare function makeDeliveryAdminPlaneOracle(opts: {
75
+ space: string;
76
+ server: string;
77
+ dataAccount: {
78
+ pub: string;
79
+ signingSeed: string;
80
+ };
81
+ log: (line: string) => void;
82
+ }): PlaneLivenessOracle;
83
+ //# sourceMappingURL=plane-claim.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plane-claim.d.ts","sourceRoot":"","sources":["../src/plane-claim.ts"],"names":[],"mappings":"AA6CA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EASL,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EAEzB,MAAM,gBAAgB,CAAC;AAExB;mEACmE;AACnE,eAAO,MAAM,eAAe,UAAU,CAAC;AAEvC;oDACoD;AACpD,MAAM,WAAW,aAAa;IAC5B,CAAC,EAAE,CAAC,CAAC;IACL;kDAC8C;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB;0BACsB;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC;IAC3B;wEACoE;IACpE,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,cAAc,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;gGAEgG;AAChG,MAAM,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,kBAAkB,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAE9F;iDACiD;AACjD,MAAM,WAAW,SAAS;IACxB;;+EAE2E;IAC3E,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrD;AAED,sCAAsC;AACtC,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,SAAS,CAAC;IACjB;6CACyC;IACzC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;sGACkG;IAClG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAKD;sGACsG;AACtG,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,aAAa,GAAG,SAAS,CAiB/E;AAsBD,kFAAkF;AAClF,eAAO,MAAM,gBAAgB,GAAI,OAAO,MAAM,EAAE,MAAM,aAAa,GAAG,SAAS,KAAG,MACqX,CAAC;AASxc;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,EAAE,EAAE,cAAc,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B,GAAG,OAAO,CAAC,cAAc,CAAC,CA4G1B;AAMD;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAClD,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B,GAAG,mBAAmB,CAiDtB"}
@@ -0,0 +1,290 @@
1
+ /**
2
+ * The PLANE CLAIM (#29 HIGH 3, SPEC 13.13): cross-process single-owner exclusion for the two
3
+ * SEALED scanners' literal-consumer critical sections.
4
+ *
5
+ * THE HARM THIS CLOSES: two same-space auth processes each hold a records/ledger scanner over the
6
+ * SAME literal consumer name. The module-level serialization chains are process-local, so the two
7
+ * planes interleave pre-clean/create/fetch/delete, one returns a PARTIAL enumeration, a drain
8
+ * declares quiescence over undrained obligations, and the retirement frontiers close over live
9
+ * work. Seal-class.
10
+ *
11
+ * THE MECHANISM (the panel's FINAL scanner-bound shape; security ruling + fact's safety pin):
12
+ * - ONE exact, never-deleted auth-KV key (`plane`) holds the claim row: the two ownership-bearing
13
+ * sealed-scanner connection tuples `(serverId, cid, userNkey)` + `state: held|released` +
14
+ * a per-open random `claimId` + a monotonically increasing `generation`. The BARRIER identity
15
+ * is deliberately NOT in the row: barrier liveness is irrelevant to the literal consumers and
16
+ * could only falsely block a reclaim.
17
+ * - OPEN ORDER: both candidate scanner connections open FIRST (non-reconnecting, so the tuples
18
+ * are stable and disappearance is final), stay INERT (no branded `scan*` capability exists or
19
+ * escapes), then the claim is taken by broker-atomic create/revision-CAS. Only the WINNER
20
+ * activates the branded scanners; a loser closes both candidates immediately. The brief
21
+ * dual connected-credential window is accepted inside the signing-seed residual; there is no
22
+ * dual SCAN authority because the operation capability does not exist before the CAS win.
23
+ * - RECLAIM of a `held` row is LIVENESS-ONLY, adjudicated by the delivery daemon's read-only
24
+ * CONNZ oracle over the delivery-admin rail (auth holds NO $SYS, the D5 rail split): both
25
+ * claimed tuples must be conclusively ABSENT under a COMPLETE sweep. Any live, unknown,
26
+ * incomplete, malformed, or foreign-echo answer REFUSES (at most one plane; dual-refuse is
27
+ * safe, dual-proceed is not). There is NO TTL, NO heartbeat, and NO "did the last sealed scan
28
+ * finish" bit: a mid-scan crash drops the non-reconnecting connections, a complete sweep
29
+ * proves them gone, and the successor's fail-closed pre-clean makes its full re-scan safe
30
+ * (the critic's inverted-lockout wedge cannot occur).
31
+ * - HOLDING: the guard re-validates the claim (held + this claimId + this generation) BEFORE and
32
+ * AFTER every sealed scan; a lost/changed claim refuses the enumeration or discards its
33
+ * result. A mid-life scanner disconnect is a FENCING event: the composition fences the guard,
34
+ * closes the sibling, and the plane stops scanning rather than half-running.
35
+ * - CLEAN CLOSE: scan-capable clients close FIRST, then the row CASes `held → released` (a crash
36
+ * leaves `held`, which the next open reclaims via the oracle), then the barrier closes.
37
+ *
38
+ * OPERATOR FACES (ux co-requirement — THREE distinct states, never collapsed):
39
+ * 1. live peer → a real double-launch: stop the other auth process.
40
+ * 2. UNKNOWN → fail-safe refusal on an inconclusive observation: wait/retry, check the
41
+ * delivery daemon and the broker link. NEVER "stop the other process".
42
+ * 3. mid-life death → this plane fenced itself deliberately; restart it (the successor may
43
+ * briefly land on state 2).
44
+ */
45
+ import { Kvm } from "@nats-io/kv";
46
+ import { CotalEndpoint, EpEnvelopeError, epAuthBucket, isCasLoss, isPlaneConnTuple, mintCreds, newIdentity, parsePlaneLivenessResult, } from "@cotal-ai/core";
47
+ /** The ONE exact claim key (`$KV.cotal_auth_<space>.plane`) — the bucket is already space-scoped;
48
+ * the barrier grant carries exactly this key, never `plane.>`. */
49
+ export const PLANE_CLAIM_KEY = "plane";
50
+ const enc = new TextEncoder();
51
+ const dec = new TextDecoder();
52
+ /** Closed parse of a claim row. Returns undefined on ANY structural violation — the caller turns
53
+ * that into a loud corruption refusal (an unparseable exclusion row must never be reasoned over). */
54
+ export function parsePlaneClaimRow(bytes) {
55
+ let raw;
56
+ try {
57
+ raw = JSON.parse(dec.decode(bytes));
58
+ }
59
+ catch {
60
+ return undefined;
61
+ }
62
+ if (raw === null || typeof raw !== "object")
63
+ return undefined;
64
+ for (const k of Object.keys(raw))
65
+ if (!["v", "generation", "claimId", "state", "ledger", "records", "openedAt"].includes(k))
66
+ return undefined; // closed v1 schema
67
+ const r = raw;
68
+ if (r.v !== 1)
69
+ return undefined;
70
+ if (typeof r.generation !== "number" || !Number.isSafeInteger(r.generation) || r.generation < 1)
71
+ return undefined;
72
+ if (typeof r.claimId !== "string" || r.claimId.length === 0 || r.claimId.length > 128)
73
+ return undefined;
74
+ if (r.state !== "held" && r.state !== "released")
75
+ return undefined;
76
+ if (!isPlaneConnTuple(r.ledger) || !isPlaneConnTuple(r.records))
77
+ return undefined;
78
+ if (typeof r.openedAt !== "string" || r.openedAt.length === 0 || r.openedAt.length > 64)
79
+ return undefined;
80
+ return { v: 1, generation: r.generation, claimId: r.claimId, state: r.state, ledger: r.ledger, records: r.records, openedAt: r.openedAt };
81
+ }
82
+ const sameTuple = (a, b) => a.serverId === b.serverId && a.cid === b.cid && a.userNkey === b.userNkey;
83
+ /** UX STATE 1 — a real double-launch: the prior plane's scanner connection(s) are LIVE. */
84
+ const livePeerCopy = (space, row, r) => {
85
+ const live = [
86
+ ...(r.ledger.state === "live" ? [`auth-ledger scan conn ${row.ledger.cid} on server ${row.ledger.serverId}`] : []),
87
+ ...(r.records.state === "live" ? [`records scan conn ${row.records.cid} on server ${row.records.serverId}`] : []),
88
+ ].join(" and ");
89
+ return `another auth plane already owns space "${space}": its ${live} is LIVE on the broker (claim held since ${row.openedAt}). Two auth planes over one space would split the sealed scanners' critical sections and could retire an agent over undrained work, so this open REFUSES (fail-closed). NEXT: stop the other auth service process for this space (\`cotal down\` stops the one \`cotal up\` started), then start this one.`;
90
+ };
91
+ /** UX STATE 2 — fail-safe refusal on an INCONCLUSIVE observation. This is the common
92
+ * crash/sleep/restart path; it must NEVER say "stop the other process" (the operator already
93
+ * did — pointing them at a ghost is the manager-lease-loss ghost-chase class). */
94
+ const unknownCopy = (space, row, cause, railDown) => `cannot confirm the previous auth plane for space "${space}" has fully disconnected (${cause}; claim held since ${row.openedAt}). This refusal is FAIL-SAFE, not a failure: taking over while the prior plane might still be scanning would risk a partial enumeration. NEXT: ${railDown
95
+ ? "the delivery daemon (the connection-liveness oracle) is not answering. Start it, then restart this auth service: after a whole-stack crash, run `cotal up` once more after it finishes (it brings the delivery daemon up after this service, so the first run cannot adjudicate a stale claim)."
96
+ : "retry once the prior plane's connections time out on the broker (seconds, not minutes); if it persists, check this host's link to the broker."} Do NOT delete the plane claim by hand.`;
97
+ /** UX STATE 3 — mid-life scanner death: this plane fenced itself DELIBERATELY. */
98
+ export const scannerDeathCopy = (space, role) => `this auth plane lost its sealed ${role} scanner connection for space "${space}" and STOPPED scanning to avoid a partial enumeration (deliberate, fail-safe: the connection is non-reconnecting because the plane claim pins its exact identity). Nothing is lost: barriers refuse instead of running over a half-scan. NEXT: restart the auth service; the successor may briefly refuse while the broker confirms the dropped connections cleared, then takes over.`;
99
+ /** A CAS loss during open: a sibling open won the row between our read and our write. */
100
+ const concurrentCopy = (space) => `another auth plane claimed space "${space}" concurrently during this open (the claim CAS lost). Exactly one plane may own the sealed scanners. NEXT: if you started two auth services for this space, stop one; if this was a crash-recovery race, the other process now owns the plane and this one is not needed.`;
101
+ const corruptCopy = (space) => `the plane claim row for space "${space}" is not a valid v1 claim (garbled bytes or a foreign write). The claim is the cross-process single-plane exclusion, so an unparseable row is never reasoned over or overwritten automatically (fail-closed). NEXT: this needs operator repair - inspect \`$KV.${epAuthBucket(space)}.${PLANE_CLAIM_KEY}\` and restore or remove it deliberately (SPEC 13.13).`;
102
+ /**
103
+ * Acquire the plane claim for `space` over the BARRIER connection (the only profile holding the
104
+ * exact `plane` write). Called with the two candidate scanner tuples AFTER those connections are
105
+ * open and BEFORE any branded scanner exists. Returns the winner's hold, or throws one of the
106
+ * three operator-legible refusals. Every path is broker-atomic: create-only on a virgin key,
107
+ * revision-CAS everywhere else.
108
+ */
109
+ export async function acquirePlaneClaim(opts) {
110
+ const { space, log } = opts;
111
+ const kv = await new Kvm(opts.nc).open(epAuthBucket(space));
112
+ const claimId = newIdentity().id; // a fresh nkey pub: random, printable, collision-free
113
+ const myRow = (generation) => ({
114
+ v: 1, generation, claimId, state: "held", ledger: opts.ledger, records: opts.records, openedAt: new Date().toISOString(),
115
+ });
116
+ const write = (row) => enc.encode(JSON.stringify(row));
117
+ let generation;
118
+ // One retry loop: a lost create/CAS re-reads once and re-decides; a second loss is the
119
+ // concurrent refusal (never spin on a contended exclusion key).
120
+ for (let attempt = 0; attempt < 2 && generation === undefined; attempt++) {
121
+ const entry = await kv.get(PLANE_CLAIM_KEY);
122
+ if (entry === null) {
123
+ try {
124
+ await kv.create(PLANE_CLAIM_KEY, write(myRow(1)));
125
+ generation = 1;
126
+ }
127
+ catch (e) {
128
+ if (!isCasLoss(e))
129
+ throw e; // a denied/undeliverable write is a config error, never "contention"
130
+ continue; // a sibling created first - re-read and adjudicate its row
131
+ }
132
+ break;
133
+ }
134
+ const row = parsePlaneClaimRow(entry.value);
135
+ if (row === undefined)
136
+ throw new EpEnvelopeError("failed-precondition", corruptCopy(space));
137
+ if (row.state === "released") {
138
+ try {
139
+ await kv.update(PLANE_CLAIM_KEY, write(myRow(row.generation + 1)), entry.revision);
140
+ generation = row.generation + 1;
141
+ }
142
+ catch (e) {
143
+ if (!isCasLoss(e))
144
+ throw e;
145
+ continue; // a sibling claimed the released row first
146
+ }
147
+ break;
148
+ }
149
+ // A held row: adjudicate the PRIOR holder's scanner liveness (never our own tuples).
150
+ const verdictRaw = await opts.oracle({ ledger: row.ledger, records: row.records });
151
+ // Foreign/garbled echo never authorizes: the reply must describe exactly the queried tuples.
152
+ const verdict = sameTuple(verdictRaw.ledger.tuple, row.ledger) && sameTuple(verdictRaw.records.tuple, row.records)
153
+ ? verdictRaw
154
+ : { ledger: { tuple: row.ledger, state: "unknown" }, records: { tuple: row.records, state: "unknown" }, sweepComplete: false, note: "the liveness oracle echoed a FOREIGN query - treated as unknown" };
155
+ if (verdict.ledger.state === "live" || verdict.records.state === "live")
156
+ throw new EpEnvelopeError("failed-precondition", livePeerCopy(space, row, verdict));
157
+ if (!verdict.sweepComplete || verdict.ledger.state === "unknown" || verdict.records.state === "unknown") {
158
+ const cause = verdict.note ?? "the connection-liveness sweep was inconclusive";
159
+ throw new EpEnvelopeError("unavailable", unknownCopy(space, row, cause, /daemon|rail|unreachable|refused|responder/i.test(cause)));
160
+ }
161
+ // Both conclusively gone under a complete sweep: reclaim by revision-CAS.
162
+ try {
163
+ await kv.update(PLANE_CLAIM_KEY, write(myRow(row.generation + 1)), entry.revision);
164
+ generation = row.generation + 1;
165
+ log(`plane-claim: reclaimed space "${space}" from a dead plane (claim ${row.claimId} held since ${row.openedAt}; both scanner connections verified gone under a complete sweep)`);
166
+ }
167
+ catch (e) {
168
+ if (!isCasLoss(e))
169
+ throw e;
170
+ continue; // a sibling reclaimed first
171
+ }
172
+ }
173
+ if (generation === undefined)
174
+ throw new EpEnvelopeError("failed-precondition", concurrentCopy(space));
175
+ const gen = generation;
176
+ log(`plane-claim: space "${space}" held (claimId ${claimId}, generation ${gen})`);
177
+ let fencedReason;
178
+ let released = false;
179
+ const assertHeld = async (when) => {
180
+ if (fencedReason !== undefined)
181
+ throw new EpEnvelopeError("failed-precondition", fencedReason);
182
+ if (released)
183
+ throw new EpEnvelopeError("failed-precondition", `the plane claim for space "${space}" was released by this process; a sealed scan can no longer run under it`);
184
+ const entry = await kv.get(PLANE_CLAIM_KEY);
185
+ const row = entry === null ? undefined : parsePlaneClaimRow(entry.value);
186
+ // Held by THIS open = state + claimId + generation + BOTH pinned scanner tuples (a row rewrite
187
+ // preserving id and generation but swapping a tuple is a lost claim, never "still ours").
188
+ if (row === undefined || row.state !== "held" || row.claimId !== claimId || row.generation !== gen ||
189
+ !sameTuple(row.ledger, opts.ledger) || !sameTuple(row.records, opts.records)) {
190
+ const what = when === "before" ? "refusing to enumerate" : "DISCARDING this enumeration";
191
+ throw new EpEnvelopeError("failed-precondition", `the plane claim for space "${space}" is no longer held by this process (${row === undefined ? "row missing or unparseable" : row.state !== "held" || row.claimId !== claimId || row.generation !== gen ? `now ${row.state} under claim ${row.claimId} generation ${row.generation}` : "the row's scanner tuples no longer match this plane's connections"}, expected held under ${claimId} generation ${gen}); ${what} - a successor plane may own the sealed scanners (SPEC 13.13, fail-closed)`);
192
+ }
193
+ };
194
+ return {
195
+ claimId,
196
+ generation: gen,
197
+ guard: { assertHeld },
198
+ fence: (reason) => {
199
+ if (fencedReason === undefined)
200
+ fencedReason = reason;
201
+ },
202
+ release: async () => {
203
+ if (released)
204
+ return;
205
+ released = true;
206
+ try {
207
+ const entry = await kv.get(PLANE_CLAIM_KEY);
208
+ const row = entry === null ? undefined : parsePlaneClaimRow(entry.value);
209
+ // Release ownership = the FULL held invariant (state + claimId + generation + both tuples),
210
+ // exactly what assertHeld checks.
211
+ if (entry === null || row === undefined || row.state !== "held" || row.claimId !== claimId || row.generation !== gen ||
212
+ !sameTuple(row.ledger, opts.ledger) || !sameTuple(row.records, opts.records)) {
213
+ log(`plane-claim: NOT releasing space "${space}" - the row is ${row === undefined ? "missing/unparseable" : row.state !== "held" || row.claimId !== claimId || row.generation !== gen ? `${row.state} under claim ${row.claimId} generation ${row.generation}` : "held under this claimId but with FOREIGN scanner tuples"}, not held by this process (a successor may own it)`);
214
+ return;
215
+ }
216
+ await kv.update(PLANE_CLAIM_KEY, enc.encode(JSON.stringify({ ...row, state: "released" })), entry.revision);
217
+ log(`plane-claim: released space "${space}" (generation ${row.generation})`);
218
+ }
219
+ catch (e) {
220
+ // A failed release is NOT an error state: the row stays held and the next open reclaims
221
+ // through the oracle exactly like a crash. Loud, never throwing out of a close path.
222
+ log(`plane-claim: release for space "${space}" failed (${e instanceof Error ? e.message : String(e)}) - the row stays held; the next open reclaims it once these connections drop (fail-safe)`);
223
+ }
224
+ },
225
+ };
226
+ }
227
+ /** The per-liveness-call credential's TTL (the barrier-evict precedent): one delivery-admin call
228
+ * runs in a 15s request budget; 60s bounds a copied credential to a minute. */
229
+ const ORACLE_CRED_TTL_SECONDS = 60;
230
+ /**
231
+ * The PRODUCTION liveness oracle over the delivery daemon's `ctl.delivery-admin` rail (the
232
+ * barrier-evict seam's twin: per-call connection, supervisor-profile credential minted with a
233
+ * tight TTL from the seed the service already holds — the same named residual, #30 migrates it).
234
+ * FAIL-CLOSED MAPPING: no daemon, a refusal, a garbled reply, or a foreign echo all return
235
+ * `unknown` verdicts with an honest note — this seam never fabricates absence and never throws.
236
+ */
237
+ export function makeDeliveryAdminPlaneOracle(opts) {
238
+ const auth = {
239
+ space: opts.space,
240
+ operator: { seed: "", jwt: "" },
241
+ account: { pub: opts.dataAccount.pub, seed: "", jwt: "", signingSeed: opts.dataAccount.signingSeed, signingPub: "" },
242
+ sys: { pub: "", jwt: "" },
243
+ };
244
+ const unknown = (query, note) => {
245
+ opts.log(`plane-oracle: ${note}`);
246
+ return { ledger: { tuple: query.ledger, state: "unknown" }, records: { tuple: query.records, state: "unknown" }, sweepComplete: false, note };
247
+ };
248
+ return async (query) => {
249
+ const id = newIdentity();
250
+ let ep;
251
+ try {
252
+ const creds = await mintCreds(auth, id, "supervisor", { expiresInSeconds: ORACLE_CRED_TTL_SECONDS });
253
+ ep = new CotalEndpoint({
254
+ space: opts.space,
255
+ servers: opts.server,
256
+ creds,
257
+ card: { id: id.id, name: "auth-plane-oracle", kind: "endpoint" },
258
+ channels: [],
259
+ consume: false,
260
+ watchChannels: false,
261
+ watchPresence: false,
262
+ registerPresence: false,
263
+ });
264
+ ep.on("error", () => { });
265
+ await ep.start();
266
+ const r = await ep.requestDeliveryAdmin("planeConnLiveness", { query }, 15_000);
267
+ if (!r.ok)
268
+ return unknown(query, `the delivery daemon refused the liveness query: ${r.error ?? "(no error copy)"}`);
269
+ // CLOSED parse of the wire-crossing result: exact keys at every level, enum states, closed
270
+ // tuples. Anything else is a garbled oracle and blocks takeover.
271
+ const d = parsePlaneLivenessResult(r.data);
272
+ if (d === undefined)
273
+ return unknown(query, `the delivery daemon returned a garbled liveness result (${JSON.stringify(r.data ?? null)})`);
274
+ if (!sameTuple(d.ledger.tuple, query.ledger) || !sameTuple(d.records.tuple, query.records))
275
+ return unknown(query, "the delivery daemon echoed a FOREIGN liveness query; a result that does not verifiably describe this claim never authorizes");
276
+ // An internally CONTRADICTORY answer never authorizes: `gone` is conclusive only under a
277
+ // complete sweep (the eviction seam's truthium rule, applied to the read-only twin).
278
+ if (!d.sweepComplete && (d.ledger.state === "gone" || d.records.state === "gone"))
279
+ return unknown(query, `the delivery daemon claimed gone under an INCOMPLETE sweep (ledger=${d.ledger.state}, records=${d.records.state}); contradictory - treated as unknown`);
280
+ return d;
281
+ }
282
+ catch (e) {
283
+ return unknown(query, `the delivery-admin rail is unreachable (${e instanceof Error ? e.message : String(e)}); liveness is UNKNOWN and the claim is not reclaimed`);
284
+ }
285
+ finally {
286
+ await ep?.stop().catch(() => { });
287
+ }
288
+ };
289
+ }
290
+ //# sourceMappingURL=plane-claim.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plane-claim.js","sourceRoot":"","sources":["../src/plane-claim.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAsD,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AA4BvG,eAAO,MAAM,iBAAiB,EAAE,YA8L/B,CAAC"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAsD,KAAK,YAAY,EAAoB,MAAM,gBAAgB,CAAC;AAiCzH,eAAO,MAAM,iBAAiB,EAAE,YA8N/B,CAAC"}