@cotal-ai/core 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 (170) 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 +90 -10
  8. package/dist/auth-provider.d.ts.map +1 -1
  9. package/dist/auth-provider.js.map +1 -1
  10. package/dist/backup-config.d.ts +55 -0
  11. package/dist/backup-config.d.ts.map +1 -0
  12. package/dist/backup-config.js +243 -0
  13. package/dist/backup-config.js.map +1 -0
  14. package/dist/backup.d.ts +86 -0
  15. package/dist/backup.d.ts.map +1 -0
  16. package/dist/backup.js +497 -0
  17. package/dist/backup.js.map +1 -0
  18. package/dist/broker-floor.d.ts +34 -0
  19. package/dist/broker-floor.d.ts.map +1 -0
  20. package/dist/broker-floor.js +39 -0
  21. package/dist/broker-floor.js.map +1 -0
  22. package/dist/canonical.d.ts +24 -0
  23. package/dist/canonical.d.ts.map +1 -0
  24. package/dist/canonical.js +159 -0
  25. package/dist/canonical.js.map +1 -0
  26. package/dist/channels.d.ts.map +1 -1
  27. package/dist/channels.js +8 -1
  28. package/dist/channels.js.map +1 -1
  29. package/dist/connector.d.ts +4 -0
  30. package/dist/connector.d.ts.map +1 -1
  31. package/dist/endpoint-action.d.ts +424 -0
  32. package/dist/endpoint-action.d.ts.map +1 -0
  33. package/dist/endpoint-action.js +910 -0
  34. package/dist/endpoint-action.js.map +1 -0
  35. package/dist/endpoint-binding.d.ts +344 -0
  36. package/dist/endpoint-binding.d.ts.map +1 -0
  37. package/dist/endpoint-binding.js +753 -0
  38. package/dist/endpoint-binding.js.map +1 -0
  39. package/dist/endpoint-checkpoint.d.ts +292 -0
  40. package/dist/endpoint-checkpoint.d.ts.map +1 -0
  41. package/dist/endpoint-checkpoint.js +818 -0
  42. package/dist/endpoint-checkpoint.js.map +1 -0
  43. package/dist/endpoint-cluster.d.ts +95 -0
  44. package/dist/endpoint-cluster.d.ts.map +1 -0
  45. package/dist/endpoint-cluster.js +194 -0
  46. package/dist/endpoint-cluster.js.map +1 -0
  47. package/dist/endpoint-contract-store.d.ts +90 -0
  48. package/dist/endpoint-contract-store.d.ts.map +1 -0
  49. package/dist/endpoint-contract-store.js +348 -0
  50. package/dist/endpoint-contract-store.js.map +1 -0
  51. package/dist/endpoint-envelope.d.ts +165 -0
  52. package/dist/endpoint-envelope.d.ts.map +1 -0
  53. package/dist/endpoint-envelope.js +346 -0
  54. package/dist/endpoint-envelope.js.map +1 -0
  55. package/dist/endpoint-grants.d.ts +123 -0
  56. package/dist/endpoint-grants.d.ts.map +1 -0
  57. package/dist/endpoint-grants.js +215 -0
  58. package/dist/endpoint-grants.js.map +1 -0
  59. package/dist/endpoint-guard.d.ts +222 -0
  60. package/dist/endpoint-guard.d.ts.map +1 -0
  61. package/dist/endpoint-guard.js +468 -0
  62. package/dist/endpoint-guard.js.map +1 -0
  63. package/dist/endpoint-handle.d.ts +176 -0
  64. package/dist/endpoint-handle.d.ts.map +1 -0
  65. package/dist/endpoint-handle.js +608 -0
  66. package/dist/endpoint-handle.js.map +1 -0
  67. package/dist/endpoint-journal.d.ts +225 -0
  68. package/dist/endpoint-journal.d.ts.map +1 -0
  69. package/dist/endpoint-journal.js +431 -0
  70. package/dist/endpoint-journal.js.map +1 -0
  71. package/dist/endpoint-receipt.d.ts +225 -0
  72. package/dist/endpoint-receipt.d.ts.map +1 -0
  73. package/dist/endpoint-receipt.js +417 -0
  74. package/dist/endpoint-receipt.js.map +1 -0
  75. package/dist/endpoint-records.d.ts +243 -0
  76. package/dist/endpoint-records.d.ts.map +1 -0
  77. package/dist/endpoint-records.js +591 -0
  78. package/dist/endpoint-records.js.map +1 -0
  79. package/dist/endpoint-serve.d.ts +176 -0
  80. package/dist/endpoint-serve.d.ts.map +1 -0
  81. package/dist/endpoint-serve.js +446 -0
  82. package/dist/endpoint-serve.js.map +1 -0
  83. package/dist/endpoint-service.d.ts +518 -0
  84. package/dist/endpoint-service.d.ts.map +1 -0
  85. package/dist/endpoint-service.js +973 -0
  86. package/dist/endpoint-service.js.map +1 -0
  87. package/dist/endpoint-session.d.ts +398 -0
  88. package/dist/endpoint-session.d.ts.map +1 -0
  89. package/dist/endpoint-session.js +834 -0
  90. package/dist/endpoint-session.js.map +1 -0
  91. package/dist/endpoint-signing.d.ts +105 -0
  92. package/dist/endpoint-signing.d.ts.map +1 -0
  93. package/dist/endpoint-signing.js +190 -0
  94. package/dist/endpoint-signing.js.map +1 -0
  95. package/dist/endpoint-subjects.d.ts +222 -0
  96. package/dist/endpoint-subjects.d.ts.map +1 -0
  97. package/dist/endpoint-subjects.js +381 -0
  98. package/dist/endpoint-subjects.js.map +1 -0
  99. package/dist/endpoint-supervisor.d.ts +19 -0
  100. package/dist/endpoint-supervisor.d.ts.map +1 -0
  101. package/dist/endpoint-supervisor.js +12 -0
  102. package/dist/endpoint-supervisor.js.map +1 -0
  103. package/dist/endpoint-traits.d.ts +225 -0
  104. package/dist/endpoint-traits.d.ts.map +1 -0
  105. package/dist/endpoint-traits.js +469 -0
  106. package/dist/endpoint-traits.js.map +1 -0
  107. package/dist/endpoint-verbs.d.ts +277 -0
  108. package/dist/endpoint-verbs.d.ts.map +1 -0
  109. package/dist/endpoint-verbs.js +576 -0
  110. package/dist/endpoint-verbs.js.map +1 -0
  111. package/dist/endpoint-virtual.d.ts +308 -0
  112. package/dist/endpoint-virtual.d.ts.map +1 -0
  113. package/dist/endpoint-virtual.js +440 -0
  114. package/dist/endpoint-virtual.js.map +1 -0
  115. package/dist/endpoint-work.d.ts +304 -0
  116. package/dist/endpoint-work.d.ts.map +1 -0
  117. package/dist/endpoint-work.js +728 -0
  118. package/dist/endpoint-work.js.map +1 -0
  119. package/dist/endpoint.d.ts +66 -22
  120. package/dist/endpoint.d.ts.map +1 -1
  121. package/dist/endpoint.js +289 -89
  122. package/dist/endpoint.js.map +1 -1
  123. package/dist/evict.d.ts +95 -32
  124. package/dist/evict.d.ts.map +1 -1
  125. package/dist/evict.js +193 -3
  126. package/dist/evict.js.map +1 -1
  127. package/dist/index.d.ts +29 -0
  128. package/dist/index.d.ts.map +1 -1
  129. package/dist/index.js +29 -0
  130. package/dist/index.js.map +1 -1
  131. package/dist/lease.d.ts +4 -0
  132. package/dist/lease.d.ts.map +1 -1
  133. package/dist/lease.js.map +1 -1
  134. package/dist/members.d.ts +4 -4
  135. package/dist/members.d.ts.map +1 -1
  136. package/dist/members.js +12 -12
  137. package/dist/members.js.map +1 -1
  138. package/dist/provision.d.ts +78 -20
  139. package/dist/provision.d.ts.map +1 -1
  140. package/dist/provision.js +214 -37
  141. package/dist/provision.js.map +1 -1
  142. package/dist/runtime.d.ts +3 -0
  143. package/dist/runtime.d.ts.map +1 -1
  144. package/dist/safe-pattern.d.ts +33 -0
  145. package/dist/safe-pattern.d.ts.map +1 -0
  146. package/dist/safe-pattern.js +486 -0
  147. package/dist/safe-pattern.js.map +1 -0
  148. package/dist/schema-profile.d.ts +93 -0
  149. package/dist/schema-profile.d.ts.map +1 -0
  150. package/dist/schema-profile.js +284 -0
  151. package/dist/schema-profile.js.map +1 -0
  152. package/dist/secret-store.d.ts +46 -0
  153. package/dist/secret-store.d.ts.map +1 -0
  154. package/dist/secret-store.js +2 -0
  155. package/dist/secret-store.js.map +1 -0
  156. package/dist/space-auth.d.ts +9 -0
  157. package/dist/space-auth.d.ts.map +1 -0
  158. package/dist/space-auth.js +126 -0
  159. package/dist/space-auth.js.map +1 -0
  160. package/dist/streams.d.ts +14 -10
  161. package/dist/streams.d.ts.map +1 -1
  162. package/dist/streams.js +47 -76
  163. package/dist/streams.js.map +1 -1
  164. package/dist/subjects.d.ts +100 -40
  165. package/dist/subjects.d.ts.map +1 -1
  166. package/dist/subjects.js +136 -60
  167. package/dist/subjects.js.map +1 -1
  168. package/dist/types.d.ts +9 -0
  169. package/dist/types.d.ts.map +1 -1
  170. package/package.json +6 -2
@@ -0,0 +1,225 @@
1
+ import { TRAIT_GUARDED, TRAIT_PRICED, GOVERNED_TRAIT_URNS } from "./endpoint-cluster.js";
2
+ import { type GuardCallSeam, type GuardObligation } from "./endpoint-guard.js";
3
+ import { type EpServeGrant } from "./endpoint-service.js";
4
+ import type { EpCaller } from "./endpoint-subjects.js";
5
+ import { type AnchorResolver } from "./endpoint-signing.js";
6
+ export { TRAIT_GUARDED, TRAIT_PRICED, GOVERNED_TRAIT_URNS };
7
+ /** What a trait definition may attach to (§13.7). */
8
+ export declare const TRAIT_SELECTORS: readonly ["cluster", "command", "attribute", "event"];
9
+ export type TraitSelector = (typeof TRAIT_SELECTORS)[number];
10
+ /** The §13.7 trait definition artifact: content-addressed (its identity is
11
+ * {@link traitDefinitionDigest} over the FULL artifact, signature included) and signed
12
+ * (`v`/`signer`/`sig` are the §13.10 signing envelope around the normative five-field
13
+ * tuple). `authority` NAMES the key that must sign every attachment of this trait —
14
+ * attachment authority is distinct from definition authority by design. */
15
+ export interface TraitDefinition {
16
+ v: 1;
17
+ urn: string;
18
+ /** CLOSURE digest of the schema bundle every attachment `value` validates against. */
19
+ valueSchema: string;
20
+ selector: readonly TraitSelector[];
21
+ breakingChanges: boolean;
22
+ authority: {
23
+ keyId: string;
24
+ };
25
+ signer: {
26
+ keyId: string;
27
+ };
28
+ sig: string;
29
+ }
30
+ /** The §13.10 trait-attachment artifact (replay matrix row: revision-bound evidence,
31
+ * replaced only by an authorized contract revision). `contractDigest` is the declaring
32
+ * cluster document's complete CLOSURE digest — the binding that makes an attachment for
33
+ * one revision unusable for any other. */
34
+ export interface TraitAttachment {
35
+ v: 1;
36
+ space: string;
37
+ endpoint: string;
38
+ command: string;
39
+ contractDigest: string;
40
+ traitUrn: string;
41
+ value: unknown;
42
+ signer: {
43
+ keyId: string;
44
+ };
45
+ ts: number;
46
+ sig: string;
47
+ }
48
+ /** Fetch one contract-store artifact by digest (the same read seam serve authorization
49
+ * uses): `undefined` = not readable (fail closed at the caller). */
50
+ export type TraitArtifactReader = (digest: string) => Promise<unknown> | unknown;
51
+ /**
52
+ * Verify a trait DEFINITION (§13.7/§13.10), fail closed: shape (closed schema), the signer
53
+ * resolved FRESH in the anchor registry (role `traits`, window at verification time — a
54
+ * definition is timeless content, its authority must be live), the signer's traits-scope
55
+ * covering the urn's reverse-DNS domain (this is what makes `ai.cotal.*` operator-only and
56
+ * a third-party urn its registered owner's), and the D28 signature. Returns the frozen,
57
+ * provenance-branded definition; every attachment verifier REQUIRES the brand.
58
+ */
59
+ export declare function verifyTraitDefinition(raw: unknown, opts: {
60
+ resolveAnchor: AnchorResolver;
61
+ now?: number;
62
+ }): Promise<TraitDefinition>;
63
+ /** True iff this exact object came out of {@link verifyTraitDefinition}. */
64
+ export declare function isVerifiedTraitDefinition(def: unknown): def is TraitDefinition;
65
+ /** The definition's content address (§13.7): the artifact digest over its FULL RFC 8785
66
+ * canonical form, signature included — the value a by-digest reference names. */
67
+ export declare function traitDefinitionDigest(def: TraitDefinition): string;
68
+ /**
69
+ * Verify one governed trait ATTACHMENT against its verified definition and the EXPECTED
70
+ * binding coordinates (§13.7/§13.10), fail closed on every §13-acceptance adversarial class:
71
+ * - substitute: `space`/`endpoint`/`command` must equal the expected target — an attachment
72
+ * signed for one command can never gate (or satisfy) another;
73
+ * - stale digest: `contractDigest` must equal the CURRENT declaring cluster's closure
74
+ * digest — a prior revision's attachment is revision-bound evidence, never carried over;
75
+ * - forge: the signer MUST BE the definition's NAMED authority, resolved fresh (role
76
+ * `traits`, window checked at VERIFICATION time — never the signer-asserted `ts`, which is
77
+ * self-attested and would let an expired predecessor key backdate or a not-yet-valid
78
+ * successor future-date past rotation, §13.10 — revocation immediate), its traits-scope
79
+ * must cover the urn, and the D28 signature must verify over the exact received bytes;
80
+ * - downgrade: within a digest the value is signature-bound; a value the schema rejects
81
+ * fails here, and cross-revision weakening is caught at the trusted registration write
82
+ * (registerServiceInstance's governed-continuity seam), not from a caller-supplied prior;
83
+ * - selector: the definition must admit a `command` target.
84
+ * The `value` is validated against the definition's `valueSchema` bundle, read and compiled
85
+ * through the SAME digest-verified path serve authorization uses.
86
+ */
87
+ export declare function verifyTraitAttachment(raw: unknown, opts: {
88
+ definition: TraitDefinition;
89
+ expect: {
90
+ space: string;
91
+ endpoint: string;
92
+ command: string;
93
+ contractDigest: string;
94
+ };
95
+ resolveAnchor: AnchorResolver;
96
+ readArtifact: TraitArtifactReader;
97
+ /** Verification time (ms epoch) the anchor window is checked at; defaults to `Date.now()`.
98
+ * NEVER the attachment's self-attested `ts` (§13.10: rotation closes a key's window, and a
99
+ * signer cannot be trusted to timestamp its own signing act). */
100
+ now?: number;
101
+ }): Promise<TraitAttachment>;
102
+ /** True iff this exact object came out of {@link verifyTraitAttachment}. */
103
+ export declare function isVerifiedTraitAttachment(att: unknown): att is TraitAttachment;
104
+ /** The verified governed surface of ONE serve grant: command → governed traitUrn → its
105
+ * verified attachment. Opaque to construction — only {@link verifyGovernedSurface} brands
106
+ * one, and the serve boundary refuses anything unbranded or bound to a different grant.
107
+ *
108
+ * A DEEP-FROZEN, NULL-PROTOTYPE nested record, never a `Map`: `Object.freeze` does not disable
109
+ * a Map's `set`/`delete`/`clear`, so a WeakMap brand over a mutable Map would attest provenance
110
+ * WITHOUT integrity — a caller could delete a governed command after verification and the gate
111
+ * would then see it as ungoverned and run the handler unguarded. And a plain `{}` record would
112
+ * resolve the valid command token "constructor" through `Object.prototype`, landing attachment
113
+ * state on the GLOBAL `Object` function instead of an own frozen entry. The frozen null-proto
114
+ * record is genuinely immutable and every lookup an own-property read, so the brand means
115
+ * integrity. */
116
+ export interface EpGovernedSurface {
117
+ commands: Readonly<Record<string, Readonly<Record<string, TraitAttachment>>>>;
118
+ }
119
+ /**
120
+ * Verify a serve grant's WHOLE governed surface (§13.7, fail closed, both strip directions):
121
+ * every granted command's DECLARED governed traits must each have exactly one verified
122
+ * attachment bound to that command's declaring closure digest (a declared-but-unattached
123
+ * governed trait is a strip or an unverifiable annotation — refuse before effect), and every
124
+ * supplied attachment must land on a command that DECLARES its trait (an attached-but-
125
+ * undeclared governed trait means the self-published descriptor dropped an authority's
126
+ * annotation — equally a strip). Duplicates, unknown commands, non-governed urns, and
127
+ * missing definitions all refuse. Returns the branded surface, bound to exactly this grant's
128
+ * identity coordinates; {@link assertGovernedSurfaceFor} is the serve-side check.
129
+ *
130
+ * This verifies the CURRENT surface's declaration<->attachment coherence (both strip directions
131
+ * WITHIN a revision). Cross-REVISION governed-continuity (a re-registration may not strip an
132
+ * authority-imposed trait from a surviving command, §13.7) is enforced at the TRUSTED registration
133
+ * write (registerServiceInstance's governed-continuity seam) against the registry's prior
134
+ * spec — NOT here, and NOT from a caller-supplied prior surface, which the owner could forge by
135
+ * claiming "first governance".
136
+ */
137
+ export declare function verifyGovernedSurface(args: {
138
+ serve: EpServeGrant;
139
+ definitions: readonly TraitDefinition[];
140
+ attachments: readonly unknown[];
141
+ resolveAnchor: AnchorResolver;
142
+ readArtifact: TraitArtifactReader;
143
+ now?: number;
144
+ }): Promise<EpGovernedSurface>;
145
+ /** Refuse a governed surface that {@link verifyGovernedSurface} did not produce FOR THIS
146
+ * grant: brand first (structure carries no verification), then the identity bond — a
147
+ * surface verified for another instance, epoch, or registration revision never gates this
148
+ * one (a re-registration re-verifies; the fresh grant demands a fresh surface). */
149
+ export declare function assertGovernedSurfaceFor(surface: EpGovernedSurface, serve: EpServeGrant): void;
150
+ /** The reference guard/proof seam deadline (§13.8: reference default call deadline 15s;
151
+ * overridable, never removable) when the request carries no tighter budget. A governed gate
152
+ * MUST be bounded — a never-settling seam is timeout→deny, never a hung request. */
153
+ export declare const REFERENCE_GOVERNED_SEAM_DEADLINE_MS = 15000;
154
+ /** The GUARD wiring (§13.6/§13.9): the raw class-call seam to the guard endpoint plus the
155
+ * trust-anchor resolver its OBLIGATION VERIFICATION requires. There is ONE guard gate,
156
+ * {@link import("./endpoint-guard.js").runGuardGate} — this bundle is what the serve boundary
157
+ * hands it. The seam returns the guard's RAW answer plus the broker-authenticated responder
158
+ * (derived from the reply subject by the transport layer, never from the body); the gate owns
159
+ * ALL parsing and verification, so a transport wiring can never surface an unverified
160
+ * obligation to a handler. `now` is the verification clock for obligation/anchor windows
161
+ * (default `Date.now()`, injectable like every other verification-time clock here). */
162
+ export interface EpGuardWiring {
163
+ call: GuardCallSeam;
164
+ resolveAnchor: AnchorResolver;
165
+ now?: () => number;
166
+ }
167
+ /** The priced-proof SEAM (§13.9): verify the `auth`-slot payment proof — an INDEPENDENTLY
168
+ * verifiable artifact, never a bare "settled" assertion (§13.10). The verifier owns the
169
+ * declared replay policy (matrix default: one-use per request id — journal the redemption).
170
+ * Token formats and payment rails are extensions behind this seam. */
171
+ export type EpPricedProofVerify = (q: {
172
+ endpoint: string;
173
+ command: string;
174
+ caller: EpCaller;
175
+ requestId: string;
176
+ /** The `auth` slot exactly as carried. */
177
+ proof: string;
178
+ /** The verified attachment's value — the priced terms. */
179
+ value: unknown;
180
+ }) => Promise<boolean> | boolean;
181
+ /** What the serve boundary wires to enforce its governed surface: the branded surface plus
182
+ * the hooks its traits demand ({@link import("./endpoint-serve.js").serveEndpoint} refuses
183
+ * at construction if a governed command's hook is missing — fail closed at wiring time,
184
+ * not at first request). `verifyPaymentProof` is the JOURNAL-side gate's hook: priced implies
185
+ * journal-class (§13.10 — a receipt derives from the journaled acceptance), so the ephemeral
186
+ * rail never demands it; serveEndpoint refuses an ephemeral priced command outright. */
187
+ export interface EpTraitEnforcement {
188
+ governed: EpGovernedSurface;
189
+ guard?: EpGuardWiring;
190
+ verifyPaymentProof?: EpPricedProofVerify;
191
+ }
192
+ /**
193
+ * The fail-closed pre-effect gate (§13.7/§13.9): run once per accepted request, AFTER args
194
+ * validation, target currency, and mode authorization, immediately BEFORE the handler — for
195
+ * calls and casts alike (casts have effects too). Guard FIRST, then priced (deliberate: a
196
+ * guard deny must never burn a one-use payment proof). Every anomalous answer refuses:
197
+ * - guarded: THE gate is {@link runGuardGate} — the guard's raw answer is parsed CLOSED and
198
+ * every obligation is VERIFIED (D28 signature, anchor role/scope, validity window,
199
+ * space + request binding) before it can reach a handler; wiring absent, seam throw,
200
+ * timeout, garbled answer, or an unverifiable obligation = DENY (`permission-denied`);
201
+ * `deny` = `permission-denied`; `hold` = `failed-precondition` on THIS rail (hold converts
202
+ * an ACTION to waiting on a guard-owned checkpoint, §13.6 — the ephemeral rail cannot
203
+ * wait; the action composite's own gate, `gateGoalExecution`, routes hold);
204
+ * - priced: absent `auth` slot, seam absent, seam throw, non-boolean or false answer =
205
+ * `permission-denied`; a proof is verified, never assumed.
206
+ * Both gates are BOUNDED by `deadlineMs` (the request budget, or the §13.8 reference
207
+ * default): a never-settling extension becomes deny at the bound, never a hung request.
208
+ * Returns the guard's VERIFIED obligations for the handler context. Receipt emission for
209
+ * priced commands is the §13.10 receipts slice (D9), not gated here.
210
+ */
211
+ export declare function assertGovernedPreEffect(args: {
212
+ enforcement: EpTraitEnforcement;
213
+ endpoint: string;
214
+ command: string;
215
+ caller: EpCaller;
216
+ requestId: string;
217
+ /** The space the request is served in — guard obligations are space-bound (§13.6). */
218
+ space: string;
219
+ auth?: string;
220
+ /** The seam bound (ms); defaults to {@link REFERENCE_GOVERNED_SEAM_DEADLINE_MS}. */
221
+ deadlineMs?: number;
222
+ }): Promise<{
223
+ obligations?: readonly GuardObligation[];
224
+ }>;
225
+ //# sourceMappingURL=endpoint-traits.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint-traits.d.ts","sourceRoot":"","sources":["../src/endpoint-traits.ts"],"names":[],"mappings":"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"}