@cotal-ai/core 0.12.0 → 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 (152) hide show
  1. package/dist/acls.d.ts +31 -7
  2. package/dist/acls.d.ts.map +1 -1
  3. package/dist/acls.js +105 -17
  4. package/dist/acls.js.map +1 -1
  5. package/dist/agent-file.js +1 -1
  6. package/dist/agent-file.js.map +1 -1
  7. package/dist/auth-provider.d.ts +8 -0
  8. package/dist/auth-provider.d.ts.map +1 -1
  9. package/dist/auth-provider.js.map +1 -1
  10. package/dist/backup.d.ts.map +1 -1
  11. package/dist/backup.js +6 -4
  12. package/dist/backup.js.map +1 -1
  13. package/dist/broker-floor.d.ts +34 -0
  14. package/dist/broker-floor.d.ts.map +1 -0
  15. package/dist/broker-floor.js +39 -0
  16. package/dist/broker-floor.js.map +1 -0
  17. package/dist/canonical.d.ts +24 -0
  18. package/dist/canonical.d.ts.map +1 -0
  19. package/dist/canonical.js +159 -0
  20. package/dist/canonical.js.map +1 -0
  21. package/dist/connector.d.ts +4 -0
  22. package/dist/connector.d.ts.map +1 -1
  23. package/dist/endpoint-action.d.ts +424 -0
  24. package/dist/endpoint-action.d.ts.map +1 -0
  25. package/dist/endpoint-action.js +910 -0
  26. package/dist/endpoint-action.js.map +1 -0
  27. package/dist/endpoint-binding.d.ts +344 -0
  28. package/dist/endpoint-binding.d.ts.map +1 -0
  29. package/dist/endpoint-binding.js +753 -0
  30. package/dist/endpoint-binding.js.map +1 -0
  31. package/dist/endpoint-checkpoint.d.ts +292 -0
  32. package/dist/endpoint-checkpoint.d.ts.map +1 -0
  33. package/dist/endpoint-checkpoint.js +818 -0
  34. package/dist/endpoint-checkpoint.js.map +1 -0
  35. package/dist/endpoint-cluster.d.ts +95 -0
  36. package/dist/endpoint-cluster.d.ts.map +1 -0
  37. package/dist/endpoint-cluster.js +194 -0
  38. package/dist/endpoint-cluster.js.map +1 -0
  39. package/dist/endpoint-contract-store.d.ts +90 -0
  40. package/dist/endpoint-contract-store.d.ts.map +1 -0
  41. package/dist/endpoint-contract-store.js +348 -0
  42. package/dist/endpoint-contract-store.js.map +1 -0
  43. package/dist/endpoint-envelope.d.ts +165 -0
  44. package/dist/endpoint-envelope.d.ts.map +1 -0
  45. package/dist/endpoint-envelope.js +346 -0
  46. package/dist/endpoint-envelope.js.map +1 -0
  47. package/dist/endpoint-grants.d.ts +123 -0
  48. package/dist/endpoint-grants.d.ts.map +1 -0
  49. package/dist/endpoint-grants.js +215 -0
  50. package/dist/endpoint-grants.js.map +1 -0
  51. package/dist/endpoint-guard.d.ts +222 -0
  52. package/dist/endpoint-guard.d.ts.map +1 -0
  53. package/dist/endpoint-guard.js +468 -0
  54. package/dist/endpoint-guard.js.map +1 -0
  55. package/dist/endpoint-handle.d.ts +176 -0
  56. package/dist/endpoint-handle.d.ts.map +1 -0
  57. package/dist/endpoint-handle.js +608 -0
  58. package/dist/endpoint-handle.js.map +1 -0
  59. package/dist/endpoint-journal.d.ts +225 -0
  60. package/dist/endpoint-journal.d.ts.map +1 -0
  61. package/dist/endpoint-journal.js +431 -0
  62. package/dist/endpoint-journal.js.map +1 -0
  63. package/dist/endpoint-receipt.d.ts +225 -0
  64. package/dist/endpoint-receipt.d.ts.map +1 -0
  65. package/dist/endpoint-receipt.js +417 -0
  66. package/dist/endpoint-receipt.js.map +1 -0
  67. package/dist/endpoint-records.d.ts +243 -0
  68. package/dist/endpoint-records.d.ts.map +1 -0
  69. package/dist/endpoint-records.js +591 -0
  70. package/dist/endpoint-records.js.map +1 -0
  71. package/dist/endpoint-serve.d.ts +176 -0
  72. package/dist/endpoint-serve.d.ts.map +1 -0
  73. package/dist/endpoint-serve.js +446 -0
  74. package/dist/endpoint-serve.js.map +1 -0
  75. package/dist/endpoint-service.d.ts +518 -0
  76. package/dist/endpoint-service.d.ts.map +1 -0
  77. package/dist/endpoint-service.js +973 -0
  78. package/dist/endpoint-service.js.map +1 -0
  79. package/dist/endpoint-session.d.ts +398 -0
  80. package/dist/endpoint-session.d.ts.map +1 -0
  81. package/dist/endpoint-session.js +834 -0
  82. package/dist/endpoint-session.js.map +1 -0
  83. package/dist/endpoint-signing.d.ts +105 -0
  84. package/dist/endpoint-signing.d.ts.map +1 -0
  85. package/dist/endpoint-signing.js +190 -0
  86. package/dist/endpoint-signing.js.map +1 -0
  87. package/dist/endpoint-subjects.d.ts +222 -0
  88. package/dist/endpoint-subjects.d.ts.map +1 -0
  89. package/dist/endpoint-subjects.js +381 -0
  90. package/dist/endpoint-subjects.js.map +1 -0
  91. package/dist/endpoint-supervisor.d.ts +19 -0
  92. package/dist/endpoint-supervisor.d.ts.map +1 -0
  93. package/dist/endpoint-supervisor.js +12 -0
  94. package/dist/endpoint-supervisor.js.map +1 -0
  95. package/dist/endpoint-traits.d.ts +225 -0
  96. package/dist/endpoint-traits.d.ts.map +1 -0
  97. package/dist/endpoint-traits.js +469 -0
  98. package/dist/endpoint-traits.js.map +1 -0
  99. package/dist/endpoint-verbs.d.ts +277 -0
  100. package/dist/endpoint-verbs.d.ts.map +1 -0
  101. package/dist/endpoint-verbs.js +576 -0
  102. package/dist/endpoint-verbs.js.map +1 -0
  103. package/dist/endpoint-virtual.d.ts +308 -0
  104. package/dist/endpoint-virtual.d.ts.map +1 -0
  105. package/dist/endpoint-virtual.js +440 -0
  106. package/dist/endpoint-virtual.js.map +1 -0
  107. package/dist/endpoint-work.d.ts +304 -0
  108. package/dist/endpoint-work.d.ts.map +1 -0
  109. package/dist/endpoint-work.js +728 -0
  110. package/dist/endpoint-work.js.map +1 -0
  111. package/dist/endpoint.d.ts +66 -22
  112. package/dist/endpoint.d.ts.map +1 -1
  113. package/dist/endpoint.js +289 -89
  114. package/dist/endpoint.js.map +1 -1
  115. package/dist/evict.d.ts +95 -32
  116. package/dist/evict.d.ts.map +1 -1
  117. package/dist/evict.js +193 -3
  118. package/dist/evict.js.map +1 -1
  119. package/dist/index.d.ts +25 -0
  120. package/dist/index.d.ts.map +1 -1
  121. package/dist/index.js +25 -0
  122. package/dist/index.js.map +1 -1
  123. package/dist/lease.d.ts +4 -0
  124. package/dist/lease.d.ts.map +1 -1
  125. package/dist/lease.js.map +1 -1
  126. package/dist/members.d.ts +4 -4
  127. package/dist/members.d.ts.map +1 -1
  128. package/dist/members.js +12 -12
  129. package/dist/members.js.map +1 -1
  130. package/dist/provision.d.ts +70 -18
  131. package/dist/provision.d.ts.map +1 -1
  132. package/dist/provision.js +194 -33
  133. package/dist/provision.js.map +1 -1
  134. package/dist/safe-pattern.d.ts +33 -0
  135. package/dist/safe-pattern.d.ts.map +1 -0
  136. package/dist/safe-pattern.js +486 -0
  137. package/dist/safe-pattern.js.map +1 -0
  138. package/dist/schema-profile.d.ts +93 -0
  139. package/dist/schema-profile.d.ts.map +1 -0
  140. package/dist/schema-profile.js +284 -0
  141. package/dist/schema-profile.js.map +1 -0
  142. package/dist/streams.d.ts +13 -8
  143. package/dist/streams.d.ts.map +1 -1
  144. package/dist/streams.js +35 -18
  145. package/dist/streams.js.map +1 -1
  146. package/dist/subjects.d.ts +100 -40
  147. package/dist/subjects.d.ts.map +1 -1
  148. package/dist/subjects.js +136 -60
  149. package/dist/subjects.js.map +1 -1
  150. package/dist/types.d.ts +9 -0
  151. package/dist/types.d.ts.map +1 -1
  152. package/package.json +3 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint-session.js","sourceRoot":"","sources":["../src/endpoint-session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * The §13.6/§13.10 validity-window currency rules for a timed signed artifact, in ONE place —
3
+ * handle links and session grants both call this (SPEC 1778: session expiry follows the handle
4
+ * rules), so a rule added or tightened later lands in every verifier by construction instead of
5
+ * hand-copied blocks drifting apart:
6
+ *
7
+ * 1. `exp > iat` (an empty/backward window never verifies)
8
+ * 2. `nbf ≤ exp` (a window that opens after it closes never verifies)
9
+ * 3. the validity SPAN is measured from `min(iat, nbf)` and must fit the ceiling (an early
10
+ * `nbf` or forward-dated `iat` cannot manufacture a longer window)
11
+ * 4. no FUTURE `iat` (a forward-dated artifact never verifies, §13.10)
12
+ * 5. `nbf ≤ now ≤ exp` (the window itself)
13
+ * 6. `exp ≤ now + ceiling` (clock-anchored: a dated-in-the-future artifact cannot outlive
14
+ * its ceiling even when its own span is in-bounds)
15
+ *
16
+ * `refusals` picks the refusal-code policy by WHERE the caller runs the check: "opaque" for a
17
+ * verifier that checks currency BEFORE the signature (handle links — every refusal is
18
+ * `permission-denied`, so a forged artifact learns nothing from the code), "post-signature"
19
+ * for one that checks after identity is established (session grants — structural violations
20
+ * are `contract-invalid`, an early presentation `failed-precondition`, a stale one `expired`).
21
+ */
22
+ export declare function assertArtifactCurrency(t: {
23
+ iat: number;
24
+ nbf?: number;
25
+ exp: number;
26
+ }, a: {
27
+ now: number;
28
+ ceilingMs: number;
29
+ what: string;
30
+ ceilingName: string;
31
+ refusals: "opaque" | "post-signature";
32
+ }): void;
33
+ /** The §13.10 anchor roles: which artifact family a registered key may sign. */
34
+ export declare const ANCHOR_ROLES: readonly ["handles", "traits", "receipts", "resume", "sessions", "authz-slots", "obligations", "payments"];
35
+ export type AnchorRole = (typeof ANCHOR_ROLES)[number];
36
+ /** One resolved `signer.<keyId>` anchor (§13.10), as the registry projection a verifier
37
+ * consumes: the record's spec fields plus the status-side revocation. `scope` is the
38
+ * per-role structured ceiling; a role listed in `roles` whose scope dimension is ABSENT is
39
+ * CLOSED, not open (§13.10: "a key without a dimension ceiling has that dimension closed").
40
+ * For the `traits` role the entries are reverse-DNS DOMAIN prefixes the key may define and
41
+ * attest traits under (third-party authorities register under their domain claim; the
42
+ * space-operator key carries `ai.cotal`). */
43
+ export interface SignerAnchor {
44
+ keyId: string;
45
+ /** nkeys-encoded Ed25519 public key the artifact signature verifies against. */
46
+ publicKey: string;
47
+ /** The principal or reverse-DNS domain the key belongs to. */
48
+ owner: string;
49
+ /** The LIFECYCLE UID of the owning principal (§13.1: a principal is `(id, lifecycleUid)`,
50
+ * so the record identifies its key's principal fully). Absent for a domain-owned key.
51
+ * REQUIRED wherever a verifier must bind the key to a specific lifecycle (a child handle's
52
+ * issuer, §13.6) — there, an absent binding FAILS CLOSED: owner text alone would let a
53
+ * recycled alias re-register a key and issue off its predecessor's artifacts. */
54
+ ownerLifecycleUid?: string;
55
+ roles: readonly AnchorRole[];
56
+ scope?: Partial<Record<AnchorRole, readonly string[]>>;
57
+ /** Validity window, ms epoch, both inclusive. Rotation registers a successor and closes
58
+ * this window; overlap is permitted for handoff. */
59
+ validFrom: number;
60
+ validTo: number;
61
+ /** Status-side revocation: immediate for NEW verifications (effected work is not
62
+ * retroactively unwound). */
63
+ revoked?: boolean;
64
+ }
65
+ /** The fresh-resolution seam (§13.10: "a verifier resolves the artifact's keyId FRESH at
66
+ * verification"): production reads the space's `signer.<keyId>` record; a test supplies a
67
+ * faithful map. `undefined` = unknown key (fail closed). Trust roots never merge across
68
+ * spaces — the resolver IS the space binding. */
69
+ export type AnchorResolver = (keyId: string) => Promise<SignerAnchor | undefined> | SignerAnchor | undefined;
70
+ /** The D28 signature INPUT: UTF-8 bytes of the artifact's RFC 8785 canonical JSON with `sig`
71
+ * absent. The strict canonical path throws on non-interchangeable values (lone surrogates,
72
+ * undefined, non-finite numbers) — an artifact that cannot canonicalize cannot sign. */
73
+ export declare function signatureInput(artifact: Record<string, unknown>): Uint8Array;
74
+ /** Sign an artifact (D28): returns the artifact WITH its base64url unpadded `sig`. The
75
+ * key pair is any nkeys KeyPair (the seed side); the matching public key is what the
76
+ * anchor registry carries. */
77
+ export declare function signArtifact<T extends Record<string, unknown>>(artifact: T, keyPair: {
78
+ sign(input: Uint8Array): Uint8Array;
79
+ }): T & {
80
+ sig: string;
81
+ };
82
+ /** Verify an artifact's D28 signature against a RESOLVED anchor's public key. Fails closed
83
+ * (`permission-denied`): malformed/absent `sig`, a public key nkeys cannot parse, or a
84
+ * signature that does not verify over the recomputed canonical form. Shape/binding checks
85
+ * belong to the artifact's own verifier — this is exactly the signature step. */
86
+ export declare function verifyArtifactSignature(artifact: Record<string, unknown>, anchor: SignerAnchor): void;
87
+ /**
88
+ * Resolve an anchor FRESH for one use and enforce the §13.10 gate (fail closed): unknown key,
89
+ * revocation (immediate for new verifications), role mismatch, and window are all refusals.
90
+ * `at` is the artifact's own signing time where it carries one (an attachment's `ts`), or the
91
+ * verification time for timeless artifacts (a content-addressed definition): the WINDOW binds
92
+ * the signing act; revocation binds the verification. Scope is enforced separately by the
93
+ * artifact's verifier ({@link assertAnchorScopeCovers}) against its own dimension.
94
+ */
95
+ export declare function resolveAnchorForUse(resolve: AnchorResolver, use: {
96
+ keyId: string;
97
+ role: AnchorRole;
98
+ at: number;
99
+ }): Promise<SignerAnchor>;
100
+ /** Enforce a role's scope ceiling on one subject under dot-prefix containment: an entry
101
+ * covers `subject` iff it equals it or is a strict dot-prefix (`ai.cotal` covers
102
+ * `ai.cotal.guarded`). An ABSENT scope dimension for the role is CLOSED, not open
103
+ * (§13.10) — a key with the role but no ceiling entries authorizes nothing. */
104
+ export declare function assertAnchorScopeCovers(anchor: SignerAnchor, role: AnchorRole, subject: string, what: string): void;
105
+ //# sourceMappingURL=endpoint-signing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint-signing.d.ts","sourceRoot":"","sources":["../src/endpoint-signing.ts"],"names":[],"mappings":"AAsBA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,sBAAsB,CACpC,CAAC,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAC7C,CAAC,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,QAAQ,GAAG,gBAAgB,CAAA;CAAE,GAC9G,IAAI,CAyBN;AAED,gFAAgF;AAChF,eAAO,MAAM,YAAY,4GAEd,CAAC;AACZ,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvD;;;;;;8CAM8C;AAC9C,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,SAAS,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd;;;;sFAIkF;IAClF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;IACvD;yDACqD;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB;kCAC8B;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;kDAGkD;AAClD,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,GAAG,YAAY,GAAG,SAAS,CAAC;AAK7G;;yFAEyF;AACzF,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAG5E;AAED;;+BAE+B;AAC/B,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5D,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE;IAAE,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAAA;CAAE,GAC/C,CAAC,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAKrB;AAED;;;kFAGkF;AAClF,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI,CAYrG;AA6BD;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,cAAc,EACvB,GAAG,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GACnD,OAAO,CAAC,YAAY,CAAC,CAqBvB;AAED;;;gFAGgF;AAChF,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAOnH"}
@@ -0,0 +1,190 @@
1
+ /**
2
+ * v0.4 signed-artifact encoding and trust anchors (SPEC §13.10, D18/D28) — the ONE signature
3
+ * encoding every signed §13 artifact uses (trait definitions/attachments now; capability
4
+ * handles, checkpoint resumes, session grants, receipts as their slices land), plus the
5
+ * anchor-registry verification seam those verifiers resolve keys through.
6
+ *
7
+ * Encoding (§13.10, normative): the signature input is the UTF-8 bytes of the RFC 8785
8
+ * canonical JSON of the artifact WITH ITS `sig` FIELD ABSENT; the signature is Ed25519
9
+ * (nkeys); `sig` carries it base64url-encoded, unpadded. Verification recomputes the
10
+ * canonical form, resolves the signing key FRESH in the anchor registry, and fails closed
11
+ * on any mismatch — unknown key, out-of-window use, role mismatch, scope violation,
12
+ * revocation, or a signature that does not verify.
13
+ *
14
+ * The anchor REGISTRY itself (the `signer.<keyId>` §13.7 record family, its mediated
15
+ * writers, rotation tooling) is D18 scope; this module owns the artifact-side contract:
16
+ * the resolver SEAM a verifier reads through and the fail-closed enforcement of what a
17
+ * resolved anchor authorizes.
18
+ */
19
+ import { fromPublic } from "@nats-io/nkeys";
20
+ import { canonicalJson } from "./canonical.js";
21
+ import { EpEnvelopeError } from "./endpoint-envelope.js";
22
+ /**
23
+ * The §13.6/§13.10 validity-window currency rules for a timed signed artifact, in ONE place —
24
+ * handle links and session grants both call this (SPEC 1778: session expiry follows the handle
25
+ * rules), so a rule added or tightened later lands in every verifier by construction instead of
26
+ * hand-copied blocks drifting apart:
27
+ *
28
+ * 1. `exp > iat` (an empty/backward window never verifies)
29
+ * 2. `nbf ≤ exp` (a window that opens after it closes never verifies)
30
+ * 3. the validity SPAN is measured from `min(iat, nbf)` and must fit the ceiling (an early
31
+ * `nbf` or forward-dated `iat` cannot manufacture a longer window)
32
+ * 4. no FUTURE `iat` (a forward-dated artifact never verifies, §13.10)
33
+ * 5. `nbf ≤ now ≤ exp` (the window itself)
34
+ * 6. `exp ≤ now + ceiling` (clock-anchored: a dated-in-the-future artifact cannot outlive
35
+ * its ceiling even when its own span is in-bounds)
36
+ *
37
+ * `refusals` picks the refusal-code policy by WHERE the caller runs the check: "opaque" for a
38
+ * verifier that checks currency BEFORE the signature (handle links — every refusal is
39
+ * `permission-denied`, so a forged artifact learns nothing from the code), "post-signature"
40
+ * for one that checks after identity is established (session grants — structural violations
41
+ * are `contract-invalid`, an early presentation `failed-precondition`, a stale one `expired`).
42
+ */
43
+ export function assertArtifactCurrency(t, a) {
44
+ // The CLOCK AUTHORITY itself is validated before any rule runs: every check below is a pure
45
+ // numeric comparison, and a NaN/fractional/negative `now` makes each one silently false — a
46
+ // verifier whose clock is invalid must refuse, never accept (fail closed on the caller seam,
47
+ // the same entry rule verifyHandleChain pins on its own `opts.now`).
48
+ if (!Number.isSafeInteger(a.now) || a.now < 0)
49
+ throw new EpEnvelopeError("failed-precondition", `${a.what}: the currency clock now=${JSON.stringify(a.now)} is not a non-negative safe integer; an invalid clock authority never verifies (SPEC 13.10)`);
50
+ if (!Number.isSafeInteger(a.ceilingMs) || a.ceilingMs <= 0)
51
+ throw new EpEnvelopeError("internal", `${a.what}: the ${a.ceilingName} ceiling ${JSON.stringify(a.ceilingMs)} is not a positive integer`);
52
+ const soft = (code) => (a.refusals === "opaque" ? "permission-denied" : code);
53
+ const nbf = t.nbf ?? t.iat;
54
+ if (t.exp <= t.iat)
55
+ throw new EpEnvelopeError(soft("contract-invalid"), `${a.what} exp ${t.exp} is not after iat ${t.iat}; an empty/backward window never verifies (SPEC 13.6)`);
56
+ if (nbf > t.exp)
57
+ throw new EpEnvelopeError(soft("contract-invalid"), `${a.what} nbf ${nbf} is past its exp ${t.exp}; a window that opens after it closes never verifies (SPEC 13.6)`);
58
+ if (t.exp - Math.min(t.iat, nbf) > a.ceilingMs)
59
+ throw new EpEnvelopeError(soft("contract-invalid"), `${a.what} validity span ${t.exp - Math.min(t.iat, nbf)}ms exceeds the ${a.ceilingName} ceiling ${a.ceilingMs}ms (SPEC 13.6)`);
60
+ if (t.iat > a.now)
61
+ throw new EpEnvelopeError("permission-denied", `${a.what} claims a FUTURE signing time (iat ${t.iat} > now ${a.now}); a forward-dated artifact never verifies (SPEC 13.10)`);
62
+ if (a.now < nbf)
63
+ throw new EpEnvelopeError(soft("failed-precondition"), `${a.what} is not yet valid (nbf ${nbf}, now ${a.now}) (SPEC 13.6)`);
64
+ if (a.now > t.exp)
65
+ throw new EpEnvelopeError(soft("expired"), `${a.what} expired at ${t.exp} (now ${a.now}) (SPEC 13.6)`);
66
+ if (t.exp > a.now + a.ceilingMs)
67
+ throw new EpEnvelopeError("permission-denied", `${a.what} remains valid ${t.exp - a.now}ms past now, beyond the clock-anchored ${a.ceilingName} ceiling ${a.ceilingMs}ms; a dated-in-the-future artifact cannot outlive its ceiling (SPEC 13.6)`);
68
+ }
69
+ /** The §13.10 anchor roles: which artifact family a registered key may sign. */
70
+ export const ANCHOR_ROLES = Object.freeze([
71
+ "handles", "traits", "receipts", "resume", "sessions", "authz-slots", "obligations", "payments",
72
+ ]);
73
+ const isRec = (v) => v !== null && typeof v === "object" && !Array.isArray(v);
74
+ const B64URL = /^[A-Za-z0-9_-]{86}$/; // unpadded base64url of a 64-byte Ed25519 signature
75
+ /** The D28 signature INPUT: UTF-8 bytes of the artifact's RFC 8785 canonical JSON with `sig`
76
+ * absent. The strict canonical path throws on non-interchangeable values (lone surrogates,
77
+ * undefined, non-finite numbers) — an artifact that cannot canonicalize cannot sign. */
78
+ export function signatureInput(artifact) {
79
+ const { sig: _sig, ...rest } = artifact;
80
+ return new TextEncoder().encode(canonicalJson(rest));
81
+ }
82
+ /** Sign an artifact (D28): returns the artifact WITH its base64url unpadded `sig`. The
83
+ * key pair is any nkeys KeyPair (the seed side); the matching public key is what the
84
+ * anchor registry carries. */
85
+ export function signArtifact(artifact, keyPair) {
86
+ if ("sig" in artifact && artifact.sig !== undefined)
87
+ throw new Error("signArtifact: the artifact already carries a sig; signing is over the sig-absent form (SPEC 13.10)");
88
+ const sig = Buffer.from(keyPair.sign(signatureInput(artifact))).toString("base64url");
89
+ return { ...artifact, sig };
90
+ }
91
+ /** Verify an artifact's D28 signature against a RESOLVED anchor's public key. Fails closed
92
+ * (`permission-denied`): malformed/absent `sig`, a public key nkeys cannot parse, or a
93
+ * signature that does not verify over the recomputed canonical form. Shape/binding checks
94
+ * belong to the artifact's own verifier — this is exactly the signature step. */
95
+ export function verifyArtifactSignature(artifact, anchor) {
96
+ const sig = artifact.sig;
97
+ if (typeof sig !== "string" || !B64URL.test(sig))
98
+ throw new EpEnvelopeError("permission-denied", "artifact sig is not an unpadded base64url Ed25519 signature (SPEC 13.10)");
99
+ let ok;
100
+ try {
101
+ ok = fromPublic(anchor.publicKey).verify(signatureInput(artifact), Buffer.from(sig, "base64url"));
102
+ }
103
+ catch (e) {
104
+ throw new EpEnvelopeError("permission-denied", `artifact signature does not verify against anchor ${anchor.keyId}: ${e.message} (SPEC 13.10: fail closed)`);
105
+ }
106
+ if (!ok)
107
+ throw new EpEnvelopeError("permission-denied", `artifact signature does not verify against anchor ${anchor.keyId}'s registered key (SPEC 13.10: forged or tampered artifacts fail loud)`);
108
+ }
109
+ /** Parse an untrusted resolver result at this consuming boundary: the anchor a verifier
110
+ * enforces MUST be a well-formed registry projection — a garbled record (NaN window, unknown
111
+ * role, non-string key) fails loud, never weakens into an open ceiling. */
112
+ function assertAnchorShape(a, keyId) {
113
+ const bad = (what) => {
114
+ throw new EpEnvelopeError("failed-precondition", `resolved anchor for ${keyId} is garbled (${what}); an unreadable anchor record never authorizes (SPEC 13.10)`);
115
+ };
116
+ if (!isRec(a))
117
+ bad("not an object");
118
+ const o = a;
119
+ if (o.keyId !== keyId)
120
+ bad(`keyId ${JSON.stringify(o.keyId)} is not the resolved ${keyId}`);
121
+ if (typeof o.publicKey !== "string" || o.publicKey.length === 0)
122
+ bad("publicKey is not a string");
123
+ if (typeof o.owner !== "string" || o.owner.length === 0)
124
+ bad("owner is not a string");
125
+ if (o.ownerLifecycleUid !== undefined && (typeof o.ownerLifecycleUid !== "string" || o.ownerLifecycleUid.length === 0))
126
+ bad("ownerLifecycleUid is not a string");
127
+ if (!Array.isArray(o.roles) || !o.roles.every((r) => ANCHOR_ROLES.includes(r)))
128
+ bad("roles is not an array of anchor roles");
129
+ if (o.scope !== undefined) {
130
+ if (!isRec(o.scope))
131
+ bad("scope is not an object");
132
+ for (const [role, entries] of Object.entries(o.scope)) {
133
+ if (!ANCHOR_ROLES.includes(role))
134
+ bad(`scope names unknown role "${role}"`);
135
+ if (!Array.isArray(entries) || !entries.every((e) => typeof e === "string" && e.length > 0))
136
+ bad(`scope.${role} is not a string array`);
137
+ }
138
+ }
139
+ if (typeof o.validFrom !== "number" || !Number.isSafeInteger(o.validFrom))
140
+ bad("validFrom is not an integer");
141
+ if (typeof o.validTo !== "number" || !Number.isSafeInteger(o.validTo))
142
+ bad("validTo is not an integer");
143
+ if (o.revoked !== undefined && typeof o.revoked !== "boolean")
144
+ bad("revoked is not a boolean");
145
+ return o;
146
+ }
147
+ /**
148
+ * Resolve an anchor FRESH for one use and enforce the §13.10 gate (fail closed): unknown key,
149
+ * revocation (immediate for new verifications), role mismatch, and window are all refusals.
150
+ * `at` is the artifact's own signing time where it carries one (an attachment's `ts`), or the
151
+ * verification time for timeless artifacts (a content-addressed definition): the WINDOW binds
152
+ * the signing act; revocation binds the verification. Scope is enforced separately by the
153
+ * artifact's verifier ({@link assertAnchorScopeCovers}) against its own dimension.
154
+ */
155
+ export async function resolveAnchorForUse(resolve, use) {
156
+ if (typeof use.keyId !== "string" || use.keyId.length === 0)
157
+ throw new EpEnvelopeError("permission-denied", "artifact names no signing keyId; an unattributable signature never verifies (SPEC 13.10)");
158
+ let raw;
159
+ try {
160
+ raw = await resolve(use.keyId);
161
+ }
162
+ catch (e) {
163
+ throw new EpEnvelopeError("unavailable", `the anchor-registry read failed for ${use.keyId}; verification fails closed, never open (SPEC 13.10): ${e?.message ?? String(e)}`);
164
+ }
165
+ if (raw === undefined)
166
+ throw new EpEnvelopeError("permission-denied", `signing key ${use.keyId} is not in the anchor registry; unknown keys fail closed (SPEC 13.10)`);
167
+ const anchor = assertAnchorShape(raw, use.keyId);
168
+ if (anchor.revoked === true)
169
+ throw new EpEnvelopeError("permission-denied", `signing key ${use.keyId} is revoked; revocation is immediate for new verifications (SPEC 13.10)`);
170
+ if (!anchor.roles.includes(use.role))
171
+ throw new EpEnvelopeError("permission-denied", `signing key ${use.keyId} does not carry the "${use.role}" role; a key signs only its registered artifact families (SPEC 13.10)`);
172
+ if (!Number.isSafeInteger(use.at))
173
+ throw new EpEnvelopeError("failed-precondition", `anchor use time ${String(use.at)} is not an integer; a garbled timestamp cannot pass a validity window (SPEC 13.10)`);
174
+ if (use.at < anchor.validFrom || use.at > anchor.validTo)
175
+ throw new EpEnvelopeError("permission-denied", `signing key ${use.keyId} is outside its validity window at ${use.at} (window ${anchor.validFrom}..${anchor.validTo}); out-of-window use fails closed (SPEC 13.10)`);
176
+ return anchor;
177
+ }
178
+ /** Enforce a role's scope ceiling on one subject under dot-prefix containment: an entry
179
+ * covers `subject` iff it equals it or is a strict dot-prefix (`ai.cotal` covers
180
+ * `ai.cotal.guarded`). An ABSENT scope dimension for the role is CLOSED, not open
181
+ * (§13.10) — a key with the role but no ceiling entries authorizes nothing. */
182
+ export function assertAnchorScopeCovers(anchor, role, subject, what) {
183
+ const entries = anchor.scope?.[role];
184
+ if (entries === undefined || entries.length === 0)
185
+ throw new EpEnvelopeError("permission-denied", `signing key ${anchor.keyId} carries the "${role}" role with no scope ceiling; an absent dimension is closed, not open, so it cannot sign ${what} (SPEC 13.10)`);
186
+ const covered = entries.some((e) => subject === e || subject.startsWith(`${e}.`));
187
+ if (!covered)
188
+ throw new EpEnvelopeError("permission-denied", `signing key ${anchor.keyId}'s "${role}" scope [${entries.join(", ")}] does not cover ${what} "${subject}" (SPEC 13.10/13.6: containment, never widening)`);
189
+ }
190
+ //# sourceMappingURL=endpoint-signing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint-signing.js","sourceRoot":"","sources":["../src/endpoint-signing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,222 @@
1
+ export { assertLifecycleToken, mintLifecycleUid } from "./subjects.js";
2
+ /** The v0.4 wire version this surface targets. Advertised (§6 `protocolVersion`) only at the
3
+ * §13.11 cutover — a change signal, not negotiation; nothing pre-cut should flip the card. */
4
+ export declare const PROTOCOL_VERSION_V04 = "0.4";
5
+ /** Reserved command names (§13.2): every endpoint serves `describe` (§13.7); `cancel` is the
6
+ * action-composite control command (§13.6). */
7
+ export declare const RESERVED_COMMANDS: readonly ["describe", "cancel"];
8
+ /** Maximum total subject size (bytes) on the endpoint rails; builders throw above it. */
9
+ export declare const MAX_EP_SUBJECT_BYTES = 1024;
10
+ /** Validate a dotted endpoint NAME (one or more DNS-shaped labels; `_` never appears in a label)
11
+ * and return its wire TOKEN (`.` → `_`, bijective because labels cannot contain `_`). Single-label
12
+ * names are reserved for reference-implementation endpoints; a third-party name MUST be
13
+ * reverse-DNS — that is an AUTHORITY rule enforced at mint (§13.9), not a shape difference, so
14
+ * both build here. */
15
+ export declare function endpointToken(name: string): string;
16
+ /** Inverse of {@link endpointToken}: recover the dotted endpoint name from its wire token. */
17
+ export declare function endpointNameOf(token: string): string;
18
+ export declare function assertCommandToken(command: string): string;
19
+ export declare function assertNonce(nonce: string): string;
20
+ export declare function assertIdToken(v: string, what?: string): string;
21
+ /** The provisioner-assigned grant id `<gid>` (§13.9). Deliberately SEPARATOR-FREE ([a-z0-9]):
22
+ * the `eve_<uid>-<e>-<gid>-<n>` and `rec_<uid>-<gid>-<n>` reader-durable names carry it adjacent
23
+ * to other soft components across `-`, so a `-` (or `_`) inside `<gid>` would make the name
24
+ * non-injective (`eve_<uid>-a-b-c-0` could be endpoint `a-b`/gid `c` OR endpoint `a`/gid `b-c`).
25
+ * Constraining `<gid>` to a separator-free grammar keeps the tuple encoding unambiguous while
26
+ * `<uid>` is `-`-free (leading) and `<n>` is digits (trailing). */
27
+ export declare function assertGrantId(v: string, what?: string): string;
28
+ /** `<pool>` uses the command-token grammar (§13.2). */
29
+ export declare function assertPoolToken(pool: string): string;
30
+ /** The shared owner/actor token validator for this grammar (§13.2 token bounds): the base
31
+ * owner-token grammar plus the 64-character rail bound. Grant builders MUST route through the
32
+ * same validator as subject builders, so the two can never diverge on what they admit. */
33
+ export declare function assertBoundedOwner(v: string, what: string): string;
34
+ /** The three forge-locked caller tokens every request and journal submission carries:
35
+ * principal + lifecycle UID (§13.1). */
36
+ export interface EpCaller {
37
+ owner: string;
38
+ actor: string;
39
+ uid: string;
40
+ }
41
+ /** The six reserved authorization-mode tokens. Disjoint from every spec-conformant owner token
42
+ * (`local` or `u_`+base32 per §2, never a bare mode word); the implementation's owner validator
43
+ * also admits legacy principal tokens, so the parser's discrimination rests on membership in
44
+ * this set PLUS each mode's pinned arity, not on the owner grammar alone. */
45
+ export declare const EP_AUTHZ_MODES: readonly ["self", "owner", "any", "child", "ledger", "handle"];
46
+ export type EpAuthzMode = (typeof EP_AUTHZ_MODES)[number];
47
+ /** Is `m` a registered targeted-command authorization mode? Consults the PRIVATE module-load set,
48
+ * never the live export, so a post-import mutation of {@link EP_AUTHZ_MODES} cannot widen the
49
+ * modes a cluster document may declare (the afa715b integrity class). */
50
+ export declare function isEpAuthzMode(m: string): boolean;
51
+ /** Per-mode pinned target-token arity: `self` carries none (the caller triple IS the target);
52
+ * `owner`/`any`/`child`/`ledger` pin one `<tOwner>`; `handle` pins the full redemption-minted
53
+ * target triple. The target's lifecycle UID is otherwise body-carried (§13.3), never a token. */
54
+ export type EpTarget = {
55
+ mode: "self";
56
+ } | {
57
+ mode: "owner" | "any" | "child" | "ledger";
58
+ tOwner: string;
59
+ } | {
60
+ mode: "handle";
61
+ tOwner: string;
62
+ tActor: string;
63
+ tUid: string;
64
+ };
65
+ /** The caller triple as validated subject tokens — the ONE validation every caller-scoped
66
+ * subject and filter goes through. */
67
+ export declare function callerTokens(caller: EpCaller): string[];
68
+ /** Where a request routes (never which verb it is — the verb rides the envelope, §13.3/§13.5):
69
+ * `one` = queue-group anycast to exactly one class member; `all` = scatter to every instance;
70
+ * `inst` = one instance by its stable `(endpoint, instanceId)` address (single-owner endpoint
71
+ * names carry no owner tokens). */
72
+ export type EpRoute = {
73
+ mode: "one" | "all";
74
+ } | {
75
+ mode: "inst";
76
+ instanceId: string;
77
+ };
78
+ /** Build a request subject (class, scatter, or instance form; targeted iff `target` is given). */
79
+ export declare function epRequestSubject(space: string, req: {
80
+ route: EpRoute;
81
+ endpoint: string;
82
+ command: string;
83
+ target?: EpTarget;
84
+ caller: EpCaller;
85
+ nonce: string;
86
+ }): string;
87
+ /** Build a reply subject: the responder's own endpoint/instance/epoch prefix plus the caller
88
+ * triple and nonce. Use {@link deriveReplySubject} to answer a request — replies MUST derive
89
+ * from the authenticated request subject, never from a transport- or payload-supplied target. */
90
+ export declare function epReplySubject(space: string, r: {
91
+ endpoint: string;
92
+ instanceId: string;
93
+ epoch: number;
94
+ caller: EpCaller;
95
+ nonce: string;
96
+ }): string;
97
+ /** Deterministic reply derivation (§13.2 "Replies"): copy the caller triple + nonce off the
98
+ * broker-authenticated PARSED request and prefix the responder's own instance identity. Taking
99
+ * a {@link ParsedEpRequest} (not a raw string) makes the confused-deputy boundary structural:
100
+ * there is no argument through which a payload-supplied reply target could arrive. */
101
+ export declare function deriveReplySubject(space: string, request: ParsedEpRequest, responder: {
102
+ instanceId: string;
103
+ epoch: number;
104
+ }): string;
105
+ /** The class rail's canonical queue group: the endpoint-name token. Serve subscriptions to the
106
+ * `one` rail are queue-qualified ONLY (§13.9) — no credential may plain-subscribe it, which is
107
+ * what keeps per-request nonces visible only to the queue-selected instance. */
108
+ export declare function epClassQueueGroup(endpoint: string): string;
109
+ /** Subscription filter for a class (`one`) or scatter (`all`) serve. */
110
+ export declare function epServeFilter(space: string, mode: "one" | "all", endpoint: string): string;
111
+ /** Subscription filter for one instance's own request rail. */
112
+ export declare function epInstanceServeFilter(space: string, endpoint: string, instanceId: string): string;
113
+ /** A caller's reply-read filter — its OWN rail only, exact arity (no `>` tail admits subjects
114
+ * outside the grammar): `ep.reply.*.*.*.<owner>.<actor>.<uid>.*`. */
115
+ export declare function epCallerReplyFilter(space: string, caller: EpCaller): string;
116
+ /** A responder's reply-publish pattern — its own instance triple and epoch pinned, all caller
117
+ * suffixes spanned (addressing is confined by nonce possession, §13.2): exact arity. */
118
+ export declare function epResponderReplyPattern(space: string, endpoint: string, instanceId: string, epoch: number): string;
119
+ export type EpTimerPhase = "schedule" | "armed" | "fire";
120
+ export type EpSessionDir = "in" | "out";
121
+ /** Events: `epe.<endpoint>.<instanceId>.<epoch>.<topic…>` — the publishing instance's identity
122
+ * and epoch are forge-locked subject tokens (stale-epoch events are attributably stale). */
123
+ export declare function epeSubject(space: string, endpoint: string, instanceId: string, epoch: number, topic: string[]): string;
124
+ /** Canonical facts: `epf.<endpoint>.<topic…>` — publishable only by the mediated writer (§13.9). */
125
+ export declare function epfSubject(space: string, endpoint: string, topic: string[]): string;
126
+ /** Journal submissions: `epj.<endpoint>.<command>[.<authz>[.<target…>]].<owner>.<actor>.<uid>` —
127
+ * directly publishable by capability holders and explicitly UNTRUSTED (§13.4); a targeted
128
+ * command carries the same authz/target block as its request forms, no nonce. */
129
+ export declare function epjSubject(space: string, j: {
130
+ endpoint: string;
131
+ command: string;
132
+ target?: EpTarget;
133
+ caller: EpCaller;
134
+ }): string;
135
+ /** Timers: `ept.<endpoint>.<instanceId>.<epoch>.<timerId>.<schedule|armed|fire>` (§13.2). */
136
+ export declare function eptSubject(space: string, endpoint: string, instanceId: string, epoch: number, timerId: string, phase: EpTimerPhase): string;
137
+ /** Record writes: `epr.<endpoint>.<instanceId>.<epoch>.<kind>.<qualifier…>` — the instance's
138
+ * epoch-pinned mediated record-writer ingress (§13.9 reads the epoch off this subject). */
139
+ export declare function eprSubject(space: string, endpoint: string, instanceId: string, epoch: number, kind: string, qualifier?: string[]): string;
140
+ /** Contract artifacts: `epc.<digest-hex>` — one immutable artifact per subject; the token is the
141
+ * SHA-256 hex (the `sha256:` prefix is not a subject token, §13.7). */
142
+ export declare function epcSubject(space: string, digestHex: string): string;
143
+ /** Work pools: `epw.<endpoint>.<pool>.<cOwner>.<cActor>.<cUid>.<id>` — the trailing four tokens
144
+ * are the item's ACCEPTANCE IDENTITY (the accepted submission's caller triple + request id). */
145
+ export declare function epwSubject(space: string, endpoint: string, pool: string, acceptance: EpCaller & {
146
+ id: string;
147
+ }): string;
148
+ /** Sessions: `eps.<endpoint>.<sessionId>.<epoch>.<in|out>` (§13.6). */
149
+ export declare function epsSubject(space: string, endpoint: string, sessionId: string, epoch: number, dir: EpSessionDir): string;
150
+ export interface ParsedEpRequest {
151
+ plane: "request";
152
+ route: "one" | "all" | "inst";
153
+ endpoint: string;
154
+ /** Present iff `route === "inst"`. */
155
+ instanceId?: string;
156
+ command: string;
157
+ /** `null` = untargeted form (no authz token). */
158
+ target: EpTarget | null;
159
+ caller: EpCaller;
160
+ nonce: string;
161
+ }
162
+ export type ParsedEp = ParsedEpRequest | {
163
+ plane: "reply";
164
+ endpoint: string;
165
+ instanceId: string;
166
+ epoch: number;
167
+ caller: EpCaller;
168
+ nonce: string;
169
+ } | {
170
+ plane: "event";
171
+ endpoint: string;
172
+ instanceId: string;
173
+ epoch: number;
174
+ topic: string[];
175
+ } | {
176
+ plane: "fact";
177
+ endpoint: string;
178
+ topic: string[];
179
+ } | {
180
+ plane: "journal";
181
+ endpoint: string;
182
+ command: string;
183
+ target: EpTarget | null;
184
+ caller: EpCaller;
185
+ } | {
186
+ plane: "timer";
187
+ endpoint: string;
188
+ instanceId: string;
189
+ epoch: number;
190
+ timerId: string;
191
+ phase: EpTimerPhase;
192
+ } | {
193
+ plane: "record";
194
+ endpoint: string;
195
+ instanceId: string;
196
+ epoch: number;
197
+ kind: string;
198
+ qualifier: string[];
199
+ } | {
200
+ plane: "contract";
201
+ digestHex: string;
202
+ } | {
203
+ plane: "work";
204
+ endpoint: string;
205
+ pool: string;
206
+ acceptance: EpCaller & {
207
+ id: string;
208
+ };
209
+ } | {
210
+ plane: "session";
211
+ endpoint: string;
212
+ sessionId: string;
213
+ epoch: number;
214
+ dir: EpSessionDir;
215
+ };
216
+ /**
217
+ * Parse a v0.4 endpoint-surface subject into its typed shape, or `null` for anything that is not
218
+ * one — including the retired v0 `ctl.>`/`control.>` planes, which this parser deliberately does
219
+ * not know. `null` means the subject has no sender and MUST NOT be handled (§13.2).
220
+ */
221
+ export declare function parseEpSubject(subject: string): ParsedEp | null;
222
+ //# sourceMappingURL=endpoint-subjects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint-subjects.d.ts","sourceRoot":"","sources":["../src/endpoint-subjects.ts"],"names":[],"mappings":"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"}