@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.
- package/dist/acls.d.ts +31 -7
- package/dist/acls.d.ts.map +1 -1
- package/dist/acls.js +105 -17
- package/dist/acls.js.map +1 -1
- package/dist/agent-file.js +1 -1
- package/dist/agent-file.js.map +1 -1
- package/dist/auth-provider.d.ts +8 -0
- package/dist/auth-provider.d.ts.map +1 -1
- package/dist/auth-provider.js.map +1 -1
- package/dist/backup.d.ts.map +1 -1
- package/dist/backup.js +6 -4
- package/dist/backup.js.map +1 -1
- package/dist/broker-floor.d.ts +34 -0
- package/dist/broker-floor.d.ts.map +1 -0
- package/dist/broker-floor.js +39 -0
- package/dist/broker-floor.js.map +1 -0
- package/dist/canonical.d.ts +24 -0
- package/dist/canonical.d.ts.map +1 -0
- package/dist/canonical.js +159 -0
- package/dist/canonical.js.map +1 -0
- package/dist/connector.d.ts +4 -0
- package/dist/connector.d.ts.map +1 -1
- package/dist/endpoint-action.d.ts +424 -0
- package/dist/endpoint-action.d.ts.map +1 -0
- package/dist/endpoint-action.js +910 -0
- package/dist/endpoint-action.js.map +1 -0
- package/dist/endpoint-binding.d.ts +344 -0
- package/dist/endpoint-binding.d.ts.map +1 -0
- package/dist/endpoint-binding.js +753 -0
- package/dist/endpoint-binding.js.map +1 -0
- package/dist/endpoint-checkpoint.d.ts +292 -0
- package/dist/endpoint-checkpoint.d.ts.map +1 -0
- package/dist/endpoint-checkpoint.js +818 -0
- package/dist/endpoint-checkpoint.js.map +1 -0
- package/dist/endpoint-cluster.d.ts +95 -0
- package/dist/endpoint-cluster.d.ts.map +1 -0
- package/dist/endpoint-cluster.js +194 -0
- package/dist/endpoint-cluster.js.map +1 -0
- package/dist/endpoint-contract-store.d.ts +90 -0
- package/dist/endpoint-contract-store.d.ts.map +1 -0
- package/dist/endpoint-contract-store.js +348 -0
- package/dist/endpoint-contract-store.js.map +1 -0
- package/dist/endpoint-envelope.d.ts +165 -0
- package/dist/endpoint-envelope.d.ts.map +1 -0
- package/dist/endpoint-envelope.js +346 -0
- package/dist/endpoint-envelope.js.map +1 -0
- package/dist/endpoint-grants.d.ts +123 -0
- package/dist/endpoint-grants.d.ts.map +1 -0
- package/dist/endpoint-grants.js +215 -0
- package/dist/endpoint-grants.js.map +1 -0
- package/dist/endpoint-guard.d.ts +222 -0
- package/dist/endpoint-guard.d.ts.map +1 -0
- package/dist/endpoint-guard.js +468 -0
- package/dist/endpoint-guard.js.map +1 -0
- package/dist/endpoint-handle.d.ts +176 -0
- package/dist/endpoint-handle.d.ts.map +1 -0
- package/dist/endpoint-handle.js +608 -0
- package/dist/endpoint-handle.js.map +1 -0
- package/dist/endpoint-journal.d.ts +225 -0
- package/dist/endpoint-journal.d.ts.map +1 -0
- package/dist/endpoint-journal.js +431 -0
- package/dist/endpoint-journal.js.map +1 -0
- package/dist/endpoint-receipt.d.ts +225 -0
- package/dist/endpoint-receipt.d.ts.map +1 -0
- package/dist/endpoint-receipt.js +417 -0
- package/dist/endpoint-receipt.js.map +1 -0
- package/dist/endpoint-records.d.ts +243 -0
- package/dist/endpoint-records.d.ts.map +1 -0
- package/dist/endpoint-records.js +591 -0
- package/dist/endpoint-records.js.map +1 -0
- package/dist/endpoint-serve.d.ts +176 -0
- package/dist/endpoint-serve.d.ts.map +1 -0
- package/dist/endpoint-serve.js +446 -0
- package/dist/endpoint-serve.js.map +1 -0
- package/dist/endpoint-service.d.ts +518 -0
- package/dist/endpoint-service.d.ts.map +1 -0
- package/dist/endpoint-service.js +973 -0
- package/dist/endpoint-service.js.map +1 -0
- package/dist/endpoint-session.d.ts +398 -0
- package/dist/endpoint-session.d.ts.map +1 -0
- package/dist/endpoint-session.js +834 -0
- package/dist/endpoint-session.js.map +1 -0
- package/dist/endpoint-signing.d.ts +105 -0
- package/dist/endpoint-signing.d.ts.map +1 -0
- package/dist/endpoint-signing.js +190 -0
- package/dist/endpoint-signing.js.map +1 -0
- package/dist/endpoint-subjects.d.ts +222 -0
- package/dist/endpoint-subjects.d.ts.map +1 -0
- package/dist/endpoint-subjects.js +381 -0
- package/dist/endpoint-subjects.js.map +1 -0
- package/dist/endpoint-supervisor.d.ts +19 -0
- package/dist/endpoint-supervisor.d.ts.map +1 -0
- package/dist/endpoint-supervisor.js +12 -0
- package/dist/endpoint-supervisor.js.map +1 -0
- package/dist/endpoint-traits.d.ts +225 -0
- package/dist/endpoint-traits.d.ts.map +1 -0
- package/dist/endpoint-traits.js +469 -0
- package/dist/endpoint-traits.js.map +1 -0
- package/dist/endpoint-verbs.d.ts +277 -0
- package/dist/endpoint-verbs.d.ts.map +1 -0
- package/dist/endpoint-verbs.js +576 -0
- package/dist/endpoint-verbs.js.map +1 -0
- package/dist/endpoint-virtual.d.ts +308 -0
- package/dist/endpoint-virtual.d.ts.map +1 -0
- package/dist/endpoint-virtual.js +440 -0
- package/dist/endpoint-virtual.js.map +1 -0
- package/dist/endpoint-work.d.ts +304 -0
- package/dist/endpoint-work.d.ts.map +1 -0
- package/dist/endpoint-work.js +728 -0
- package/dist/endpoint-work.js.map +1 -0
- package/dist/endpoint.d.ts +66 -22
- package/dist/endpoint.d.ts.map +1 -1
- package/dist/endpoint.js +289 -89
- package/dist/endpoint.js.map +1 -1
- package/dist/evict.d.ts +95 -32
- package/dist/evict.d.ts.map +1 -1
- package/dist/evict.js +193 -3
- package/dist/evict.js.map +1 -1
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -1
- package/dist/lease.d.ts +4 -0
- package/dist/lease.d.ts.map +1 -1
- package/dist/lease.js.map +1 -1
- package/dist/members.d.ts +4 -4
- package/dist/members.d.ts.map +1 -1
- package/dist/members.js +12 -12
- package/dist/members.js.map +1 -1
- package/dist/provision.d.ts +70 -18
- package/dist/provision.d.ts.map +1 -1
- package/dist/provision.js +194 -33
- package/dist/provision.js.map +1 -1
- package/dist/safe-pattern.d.ts +33 -0
- package/dist/safe-pattern.d.ts.map +1 -0
- package/dist/safe-pattern.js +486 -0
- package/dist/safe-pattern.js.map +1 -0
- package/dist/schema-profile.d.ts +93 -0
- package/dist/schema-profile.d.ts.map +1 -0
- package/dist/schema-profile.js +284 -0
- package/dist/schema-profile.js.map +1 -0
- package/dist/streams.d.ts +13 -8
- package/dist/streams.d.ts.map +1 -1
- package/dist/streams.js +35 -18
- package/dist/streams.js.map +1 -1
- package/dist/subjects.d.ts +100 -40
- package/dist/subjects.d.ts.map +1 -1
- package/dist/subjects.js +136 -60
- package/dist/subjects.js.map +1 -1
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -1
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import { EP_AUTHZ_MODES } from "./endpoint-subjects.js";
|
|
2
|
+
import type { EpCapability } from "./endpoint-grants.js";
|
|
3
|
+
import { type AnchorResolver, type SignerAnchor } from "./endpoint-signing.js";
|
|
4
|
+
/** A per-command target tuple inside a grant entry — a CLOSED set of three legal shapes
|
|
5
|
+
* (§13.6): no components; `targetOwner` alone; or the full triple. Every other combination is
|
|
6
|
+
* schema-invalid ({@link parseGrantCommand} enforces it). */
|
|
7
|
+
export interface HandleGrantCommand {
|
|
8
|
+
name: string;
|
|
9
|
+
/** The authorization mode, meaningful only for an owner-domain entry (`owner`|`child`|`ledger`;
|
|
10
|
+
* `any` is schema-invalid in a handle; default `owner`). Schema-invalid on a no-target entry
|
|
11
|
+
* and on an actor-pinned entry (the triple IS the mode). */
|
|
12
|
+
authz?: "owner" | "child" | "ledger";
|
|
13
|
+
targetOwner?: string;
|
|
14
|
+
targetActor?: string;
|
|
15
|
+
targetLifecycleUid?: string;
|
|
16
|
+
}
|
|
17
|
+
/** One grant entry: a set of commands on one endpoint (optionally one instance), plus read
|
|
18
|
+
* subtrees. Every present signed component MUST be consumed by the compile target. */
|
|
19
|
+
export interface HandleGrant {
|
|
20
|
+
endpoint: string;
|
|
21
|
+
instanceId?: string;
|
|
22
|
+
commands: HandleGrantCommand[];
|
|
23
|
+
reads?: string[];
|
|
24
|
+
}
|
|
25
|
+
/** The §13.6 handle artifact (signed envelope; `sig` over the sig-absent RFC 8785 form). */
|
|
26
|
+
export interface CapabilityHandle {
|
|
27
|
+
v: 1;
|
|
28
|
+
id: string;
|
|
29
|
+
space: string;
|
|
30
|
+
issuer: {
|
|
31
|
+
keyId: string;
|
|
32
|
+
};
|
|
33
|
+
holder: {
|
|
34
|
+
id: string;
|
|
35
|
+
lifecycleUid: string;
|
|
36
|
+
};
|
|
37
|
+
grants: HandleGrant[];
|
|
38
|
+
iat: number;
|
|
39
|
+
nbf?: number;
|
|
40
|
+
exp: number;
|
|
41
|
+
parentDigest?: string;
|
|
42
|
+
sturdy: boolean;
|
|
43
|
+
/** Present iff a LIVE handle (`sturdy: false`) — binds the current process epoch. */
|
|
44
|
+
epoch?: number;
|
|
45
|
+
sig: string;
|
|
46
|
+
}
|
|
47
|
+
/** The §13.6 default validity ceilings (space-configurable): live ≤ 24h, sturdy default 30d. */
|
|
48
|
+
export declare const HANDLE_MAX_LIVE_TTL_MS: number;
|
|
49
|
+
export declare const HANDLE_MAX_STURDY_TTL_MS: number;
|
|
50
|
+
/** Verification bounds (fail loud past each; a bound reached is a refusal, never a truncation). */
|
|
51
|
+
export declare const HANDLE_MAX_CHAIN_LENGTH = 16;
|
|
52
|
+
export declare const HANDLE_MAX_BYTES: number;
|
|
53
|
+
export declare const HANDLE_MAX_GRANTS = 64;
|
|
54
|
+
export declare const HANDLE_MAX_COMMANDS_PER_GRANT = 64;
|
|
55
|
+
export declare const HANDLE_MAX_READS_PER_GRANT = 64;
|
|
56
|
+
/** Validate a handle artifact's SHAPE (the closed-tuple rules + envelope), returning the typed
|
|
57
|
+
* frozen handle. This is the schema step; signature + chain + currency are the verify step
|
|
58
|
+
* ({@link verifyHandleChain}) — and those verify the RAW presented artifact, never this
|
|
59
|
+
* projection. A `sturdy: false` handle MUST carry `epoch`; a `sturdy: true` handle MUST NOT
|
|
60
|
+
* (§13.6: live binds the process epoch, sturdy binds the lifecycle UID). */
|
|
61
|
+
export declare function parseHandle(raw: unknown): CapabilityHandle;
|
|
62
|
+
/** The handle's content address (`sha256:<hex>` over the full artifact incl. `sig`) — the
|
|
63
|
+
* identity a child's `parentDigest` references. Chain verification computes this over the
|
|
64
|
+
* RAW presented artifact ({@link verifyHandleChain}); this export is for issuance (building
|
|
65
|
+
* a child's `parentDigest` from the parent artifact you hold). */
|
|
66
|
+
export declare function handleDigest(handle: CapabilityHandle): string;
|
|
67
|
+
/** The command's contract dimensions the compiler needs but cannot derive from the grant
|
|
68
|
+
* entry alone (§13.6: "per the command's contract"): whether a NO-TARGET command compiles to
|
|
69
|
+
* the untargeted form or the `.self` form, and whether the command submits via the journal.
|
|
70
|
+
* The compiler is transport-thin and never guesses either. */
|
|
71
|
+
export interface CommandContract {
|
|
72
|
+
noTargetForm: "untargeted" | "self";
|
|
73
|
+
journal: boolean;
|
|
74
|
+
}
|
|
75
|
+
export type CommandContractSeam = (endpoint: string, command: string) => CommandContract;
|
|
76
|
+
/** The compiled equivalent-mint bundle: the request capabilities PLUS the read subtrees. Both
|
|
77
|
+
* halves are signed components; neither is ever silently dropped. */
|
|
78
|
+
export interface CompiledHandleGrants {
|
|
79
|
+
caps: EpCapability[];
|
|
80
|
+
/** The signed read subtrees (record-key / event-topic prefixes), ENDPOINT-BOUND — a subtree
|
|
81
|
+
* is meaningless without the grant endpoint it was signed under, so two grants naming the
|
|
82
|
+
* same subtree on different endpoints stay distinguishable. Deduplicated per
|
|
83
|
+
* (endpoint, subtree); the redemption mints these as endpoint-scoped read rows exactly as
|
|
84
|
+
* signed. */
|
|
85
|
+
reads: {
|
|
86
|
+
endpoint: string;
|
|
87
|
+
subtree: string;
|
|
88
|
+
}[];
|
|
89
|
+
}
|
|
90
|
+
/** Compile a handle's grants to the EpCapability set + read subtrees the equivalent minted
|
|
91
|
+
* capability would receive (§13.6). This is what a redemption mints and what attenuation
|
|
92
|
+
* intersects against; it NEVER widens and consumes EVERY signed component:
|
|
93
|
+
* - `routes` is set EXPLICITLY: an instance entry compiles to the exact `ep.inst` rails
|
|
94
|
+
* ONLY (`routes: []` — an instance pin never also grants the class rail); a class entry
|
|
95
|
+
* compiles to `routes: ["one"]` (scatter `all` is not expressible in a handle);
|
|
96
|
+
* - a NO-TARGET command's untargeted-vs-`.self` form and the `journal` rail come from the
|
|
97
|
+
* REQUIRED command-contract seam (the compiler never guesses either);
|
|
98
|
+
* - a JOURNAL-class command compiles to a journal-EXCLUSIVE capability (`routes: []`, no
|
|
99
|
+
* request rails): journal submissions ride ONLY `epj` (§13.9), so emitting a request row
|
|
100
|
+
* alongside would be equivalent-mint WIDENING. The frozen `epj` grammar has no instance
|
|
101
|
+
* coordinate, so an instance-pinned journal command is UNREPRESENTABLE and refuses — the
|
|
102
|
+
* signed instance pin is never silently dropped onto a class-wide journal row;
|
|
103
|
+
* - `reads` are returned alongside, endpoint-bound, never dropped. */
|
|
104
|
+
export declare function compileHandleGrants(handle: CapabilityHandle, opts: {
|
|
105
|
+
commandContract: CommandContractSeam;
|
|
106
|
+
}): CompiledHandleGrants;
|
|
107
|
+
/** Assert a CHILD handle is ⊆ its PARENT under the §13.6 normative containment order. Per grant
|
|
108
|
+
* entry: endpoint equal (domain patterns are a future extension; this revision pins exact
|
|
109
|
+
* endpoints); `instanceId` equal or newly pinned (never widened to absent); commands a
|
|
110
|
+
* name-subset with per-command mode contained and target components equal-or-newly-pinned;
|
|
111
|
+
* reads subject-prefix-contained. Per envelope: same space; validity window within the
|
|
112
|
+
* parent's; `sturdy` only if the parent is sturdy. Throws `permission-denied` on any widening. */
|
|
113
|
+
export declare function assertHandleContainedIn(child: CapabilityHandle, parent: CapabilityHandle): void;
|
|
114
|
+
/** Enforce §13.10 issuer authority for one handle: `handle.grants ⊆ anchor.scope` under the
|
|
115
|
+
* SAME §13.6 containment order — endpoints, per-command modes, target components, instance
|
|
116
|
+
* pins, and read subtrees are all ceiling dimensions; a flat endpoint/command list cannot
|
|
117
|
+
* express them and is exactly the laundering this refuses. */
|
|
118
|
+
export declare function assertIssuerScopeCoversHandle(anchor: SignerAnchor, handle: CapabilityHandle): void;
|
|
119
|
+
/** The revocation reader for STURDY handles: the `handle.<issuerKeyId>.<id>` record's status
|
|
120
|
+
* side (monotonic revocation state, §13.9). ONLY the literal `false` means "not revoked":
|
|
121
|
+
* `true`, `undefined`, or an unreadable status all FAIL CLOSED as revoked. */
|
|
122
|
+
export type HandleRevocationReader = (issuerKeyId: string, id: string) => Promise<boolean> | boolean;
|
|
123
|
+
/** Verify a presented handle CHAIN inline (§13.6): the leaf plus every `parentDigest`-linked
|
|
124
|
+
* ancestor, presented together (no ambient fetch). Signature and digest identity are checked
|
|
125
|
+
* over the EXACT RAW presented artifacts (D28), never the parsed projection. For each link,
|
|
126
|
+
* leaf to root:
|
|
127
|
+
* - its `parentDigest` (if any) equals the digest of the NEXT presented RAW artifact (the
|
|
128
|
+
* chain is the one presented, not a forgeable claim);
|
|
129
|
+
* - each child is ⊆ its parent ({@link assertHandleContainedIn});
|
|
130
|
+
* - the ISSUER of a child is the PARENT's holder — anchor-registered with a `handles` role
|
|
131
|
+
* whose STRUCTURED scope covers the link ({@link assertIssuerScopeCoversHandle}) AND
|
|
132
|
+
* lifecycle-bound to the parent's holder (`ownerLifecycleUid`; owner text alone would let
|
|
133
|
+
* a recycled alias issue off its predecessor's handles — absent binding fails closed);
|
|
134
|
+
* - the signature verifies against the resolved anchor, within the anchor's window;
|
|
135
|
+
* - EVERY link is currency-checked: window (`nbf ≤ now ≤ exp`), no future `iat`, TTL span
|
|
136
|
+
* within the live/sturdy ceiling AND `exp ≤ now + ceiling` (clock-anchored: a backdated
|
|
137
|
+
* `nbf`/forward-dated `iat` cannot manufacture validity beyond the ceiling), space match;
|
|
138
|
+
* - EVERY sturdy link's revocation status is strict-`false`-checked (unreadable = revoked);
|
|
139
|
+
* - a LIVE leaf binds `presenterEpoch`; a LIVE ANCESTOR requires `resolveHolderEpoch` to
|
|
140
|
+
* fresh-check ITS holder's current epoch (a restarted intermediate kills the chain).
|
|
141
|
+
* The walk is bounded: chain length ≤ {@link HANDLE_MAX_CHAIN_LENGTH}, every await within
|
|
142
|
+
* `verifyBudgetMs` (default 5000). A ROOT handle (no parentDigest) is issued by an anchor
|
|
143
|
+
* whose owner is the handle's issuer principal. Returns the leaf and its compiled
|
|
144
|
+
* equivalent-mint bundle (never wider than any ancestor). */
|
|
145
|
+
export declare function verifyHandleChain(chain: unknown[], opts: {
|
|
146
|
+
resolveAnchor: AnchorResolver;
|
|
147
|
+
now: number;
|
|
148
|
+
space: string;
|
|
149
|
+
presenter: {
|
|
150
|
+
id: string;
|
|
151
|
+
lifecycleUid: string;
|
|
152
|
+
epoch?: number;
|
|
153
|
+
};
|
|
154
|
+
readRevocation: HandleRevocationReader;
|
|
155
|
+
/** The command-contract seam the compiled bundle needs ({@link compileHandleGrants}). */
|
|
156
|
+
commandContract: CommandContractSeam;
|
|
157
|
+
/** REQUIRED when the chain contains a LIVE non-leaf link: the link holder's CURRENT
|
|
158
|
+
* process epoch from trusted authority (null = retired/unknown). */
|
|
159
|
+
resolveHolderEpoch?: (holder: {
|
|
160
|
+
id: string;
|
|
161
|
+
lifecycleUid: string;
|
|
162
|
+
}) => Promise<number | null> | number | null;
|
|
163
|
+
maxLiveTtlMs?: number;
|
|
164
|
+
maxSturdyTtlMs?: number;
|
|
165
|
+
verifyBudgetMs?: number;
|
|
166
|
+
}): Promise<{
|
|
167
|
+
leaf: CapabilityHandle;
|
|
168
|
+
compiled: CompiledHandleGrants;
|
|
169
|
+
}>;
|
|
170
|
+
/** Serialize a handle to its canonical bytes (the wire/store form). Throws if the artifact is
|
|
171
|
+
* not interchangeable I-JSON (the strict canonical path), so a non-canonicalizable handle can
|
|
172
|
+
* never be persisted or presented. The parsed projection is byte-faithful to the signed form
|
|
173
|
+
* (parse injects nothing and drops nothing), so these bytes re-verify. */
|
|
174
|
+
export declare function serializeHandle(handle: CapabilityHandle): Uint8Array;
|
|
175
|
+
export { EP_AUTHZ_MODES };
|
|
176
|
+
//# sourceMappingURL=endpoint-handle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint-handle.d.ts","sourceRoot":"","sources":["../src/endpoint-handle.ts"],"names":[],"mappings":"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"}
|