@cotal-ai/core 0.12.0 → 0.13.1
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 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint-checkpoint.js","sourceRoot":"","sources":["../src/endpoint-checkpoint.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { type EpAuthzMode } from "./endpoint-subjects.js";
|
|
2
|
+
import type { EpClass } from "./endpoint-envelope.js";
|
|
3
|
+
/** True iff `s` is a bounded reverse-DNS URN — the shared form for cluster type URNs and
|
|
4
|
+
* trait URNs (§13.7: `ai.cotal.guarded`, `com.acme.deploy`). */
|
|
5
|
+
export declare function isReverseDnsUrn(s: string): boolean;
|
|
6
|
+
/** The pre-effect authorization trait (§13.6 "Guard checkpoint"): the command MUST NOT
|
|
7
|
+
* effect until the guard endpoint named by the trait value answered allow. */
|
|
8
|
+
export declare const TRAIT_GUARDED = "ai.cotal.guarded";
|
|
9
|
+
/** The payment trait (§13.10): the command MUST verify an independently verifiable payment
|
|
10
|
+
* proof in the `auth` slot before effect — never a bare "settled" assertion. */
|
|
11
|
+
export declare const TRAIT_PRICED = "ai.cotal.priced";
|
|
12
|
+
/** This revision governs EXACTLY these two (§13.7); everything else is vocabulary. Defined
|
|
13
|
+
* HERE (the cluster layer both the trait verifiers and the registrar depend on) so the
|
|
14
|
+
* trusted registration writer can pin the canonical set STRUCTURALLY — a caller-supplied
|
|
15
|
+
* governed set was the subset-narrowing escape the panel rejected. */
|
|
16
|
+
export declare const GOVERNED_TRAIT_URNS: readonly string[];
|
|
17
|
+
/** One command's REGISTERED declaration (§13.7): everything the serve boundary enforces about
|
|
18
|
+
* it comes from here, out of digest-verified bytes. `modes` is present exactly when
|
|
19
|
+
* `targeted` — a targeted command admits ONLY its declared modes, an untargeted command
|
|
20
|
+
* admits ONLY the untargeted form (default-deny both ways, §13.2/§13.7). */
|
|
21
|
+
export interface ClusterCommand {
|
|
22
|
+
name: string;
|
|
23
|
+
class: EpClass;
|
|
24
|
+
targeted: boolean;
|
|
25
|
+
modes?: EpAuthzMode[];
|
|
26
|
+
capability: string;
|
|
27
|
+
/** CLOSURE digests of the input/output schema bundles (§13.7: what `op` pins). */
|
|
28
|
+
inputDigest: string;
|
|
29
|
+
outputDigest: string;
|
|
30
|
+
traits?: string[];
|
|
31
|
+
}
|
|
32
|
+
/** The §13.7 cluster document: `{ urn, revision, attributes[], commands[], events[] }`.
|
|
33
|
+
* Attributes and events are carried opaquely in P1 (their consuming machinery is the record
|
|
34
|
+
* and journal contracts); commands are fully parsed — they are the serve authority. */
|
|
35
|
+
export interface ClusterDocument {
|
|
36
|
+
urn: string;
|
|
37
|
+
revision: number;
|
|
38
|
+
attributes: unknown[];
|
|
39
|
+
commands: ClusterCommand[];
|
|
40
|
+
events: unknown[];
|
|
41
|
+
}
|
|
42
|
+
/** Parse a cluster document at its consuming boundary. Violations are `contract-invalid`
|
|
43
|
+
* (a malformed contract ARTIFACT, §13.7's registration-time class — a reader of registered
|
|
44
|
+
* state converts this to its own loud failure). */
|
|
45
|
+
export declare function parseClusterDocument(raw: unknown): ClusterDocument;
|
|
46
|
+
/** The §13.7 closure MANIFEST `{ v: 1, root: <artifactDigest>, members: [<artifactDigest>…] }`.
|
|
47
|
+
* A closure digest is the artifact digest of THIS document, never of the root cluster document
|
|
48
|
+
* ("two digests, never conflated", §13.7): a reader fetches the manifest at the registered
|
|
49
|
+
* closure digest, then fetches the root at `manifest.root`. */
|
|
50
|
+
export interface ClusterManifest {
|
|
51
|
+
root: string;
|
|
52
|
+
members: string[];
|
|
53
|
+
}
|
|
54
|
+
/** Verify fetched MANIFEST bytes against the registered closure digest and parse them (§13.7:
|
|
55
|
+
* the closure digest identifies the manifest, not the root document). P1 pins single-document
|
|
56
|
+
* clusters, so `members` MUST be empty — a non-empty closure needs the D8 multi-artifact
|
|
57
|
+
* loader and fails loud until then, never silently under-verified. */
|
|
58
|
+
export declare function verifyClusterManifest(closureDigest: string, manifest: unknown): ClusterManifest;
|
|
59
|
+
/** Verify fetched ROOT cluster-document bytes against the manifest's `root` artifact digest and
|
|
60
|
+
* parse the command surface — the second half of the §13.7 two-digest read; a document that
|
|
61
|
+
* does not hash to `root` fails loud, never parses. */
|
|
62
|
+
export declare function verifyClusterRoot(rootDigest: string, document: unknown): ClusterDocument;
|
|
63
|
+
/** The authoritative describe answer's descriptor: identity plus the served clusters, each
|
|
64
|
+
* inline (`document`) or by digest (§13.7). Derived from VERIFIED registered bytes by
|
|
65
|
+
* {@link deriveDescriptor} — never hand-authored. */
|
|
66
|
+
export interface DescribeDescriptor {
|
|
67
|
+
endpoint: string;
|
|
68
|
+
owner: string;
|
|
69
|
+
endpointType?: string;
|
|
70
|
+
protocol: {
|
|
71
|
+
v: 1;
|
|
72
|
+
};
|
|
73
|
+
clusters: {
|
|
74
|
+
digest: string;
|
|
75
|
+
commands: string[];
|
|
76
|
+
document?: Record<string, unknown>;
|
|
77
|
+
}[];
|
|
78
|
+
}
|
|
79
|
+
/** Derive the instance's AUTHORITATIVE descriptor from its registered identity and VERIFIED
|
|
80
|
+
* cluster documents — the FULL registered surface (SPEC §13.9: the instance credential binds
|
|
81
|
+
* its registered command set; caller-specific authorization is projected only in the
|
|
82
|
+
* response-time describe answer, §13.7, never baked into the registration). Every cluster
|
|
83
|
+
* advertises exactly its verified commands and carries its verified document inline. Deep-
|
|
84
|
+
* frozen: discovery is a projection of registered bytes, and no later mutation can change what
|
|
85
|
+
* describe publishes. */
|
|
86
|
+
export declare function deriveDescriptor(identity: {
|
|
87
|
+
endpoint: string;
|
|
88
|
+
owner: string;
|
|
89
|
+
endpointType?: string;
|
|
90
|
+
}, clusters: {
|
|
91
|
+
digest: string;
|
|
92
|
+
document: ClusterDocument;
|
|
93
|
+
raw: Record<string, unknown>;
|
|
94
|
+
}[]): DescribeDescriptor;
|
|
95
|
+
//# sourceMappingURL=endpoint-cluster.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint-cluster.d.ts","sourceRoot":"","sources":["../src/endpoint-cluster.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAwE,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAChI,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAOtD;iEACiE;AACjE,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAElD;AAED;+EAC+E;AAC/E,eAAO,MAAM,aAAa,qBAAqB,CAAC;AAChD;iFACiF;AACjF,eAAO,MAAM,YAAY,oBAAoB,CAAC;AAC9C;;;uEAGuE;AACvE,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAAiD,CAAC;AAQnG;;;6EAG6E;AAC7E,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,kFAAkF;IAClF,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;wFAEwF;AACxF,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,EAAE,CAAC;IACtB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,MAAM,EAAE,OAAO,EAAE,CAAC;CACnB;AAED;;oDAEoD;AACpD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,CAyDlE;AAED;;;gEAGgE;AAChE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;uEAGuE;AACvE,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,eAAe,CAY/F;AAED;;wDAEwD;AACxD,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,eAAe,CAMxF;AAID;;sDAEsD;AACtD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE;QAAE,CAAC,EAAE,CAAC,CAAA;KAAE,CAAC;IACnB,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,EAAE,CAAC;CACxF;AAUD;;;;;;0BAM0B;AAC1B,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,EACpE,QAAQ,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,eAAe,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,EAAE,GACtF,kBAAkB,CAepB"}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v0.4 cluster artifacts (SPEC §13.7 "Clusters", "Content addressing") — the content-addressed
|
|
3
|
+
* cluster document: its consuming-boundary parser, the digest verification every reader MUST
|
|
4
|
+
* perform on fetched bytes, and the descriptor derivation that makes discovery a projection of
|
|
5
|
+
* VERIFIED registered bytes rather than a hand-authored value.
|
|
6
|
+
*
|
|
7
|
+
* The cluster document is the authority for a command's whole served shape: name, contract
|
|
8
|
+
* class, `targeted` (and, if targeted, the admitted authorization modes), the capability
|
|
9
|
+
* requirement, and the input/output schema CLOSURE digests. Nothing downstream (serve grant,
|
|
10
|
+
* serve table, descriptor) declares any of those locally — they are all derived from a document
|
|
11
|
+
* whose bytes verifiably hash to a digest the REGISTERED service spec names, so substituting a
|
|
12
|
+
* command list, mode set, or schema under a registered digest is a hash collision, not an API
|
|
13
|
+
* call.
|
|
14
|
+
*
|
|
15
|
+
* P1 pins the cluster artifact as a SINGLE self-contained document: its §13.7 closure digest is
|
|
16
|
+
* the manifest digest over `{ v: 1, root: <artifact digest>, members: [] }` (exactly the void
|
|
17
|
+
* schema's construction). A command's schemas are referenced by closure-digest VALUE and their
|
|
18
|
+
* bytes are digest-verified where they are compiled ({@link import("./schema-profile.js").compileContract}
|
|
19
|
+
* verifies every bundle member), so the authority chain has no unverified link. Multi-member
|
|
20
|
+
* cluster bundles are D8 contract-tooling scope.
|
|
21
|
+
*/
|
|
22
|
+
import { contractDigest } from "./canonical.js";
|
|
23
|
+
import { ContractInvalidError } from "./schema-profile.js";
|
|
24
|
+
import { endpointToken, assertCommandToken, assertBoundedOwner, isEpAuthzMode } from "./endpoint-subjects.js";
|
|
25
|
+
const isRec = (v) => v !== null && typeof v === "object" && !Array.isArray(v);
|
|
26
|
+
const isDigest = (v) => typeof v === "string" && /^sha256:[0-9a-f]{64}$/.test(v);
|
|
27
|
+
/** Reverse-DNS cluster type URN (§13.7: `ai.cotal.lifecycle`, `com.acme.deploy`). */
|
|
28
|
+
const URN = /^[a-z0-9][a-z0-9-]{0,62}(\.[a-z0-9][a-z0-9-]{0,62}){1,15}$/;
|
|
29
|
+
/** True iff `s` is a bounded reverse-DNS URN — the shared form for cluster type URNs and
|
|
30
|
+
* trait URNs (§13.7: `ai.cotal.guarded`, `com.acme.deploy`). */
|
|
31
|
+
export function isReverseDnsUrn(s) {
|
|
32
|
+
return URN.test(s);
|
|
33
|
+
}
|
|
34
|
+
/** The pre-effect authorization trait (§13.6 "Guard checkpoint"): the command MUST NOT
|
|
35
|
+
* effect until the guard endpoint named by the trait value answered allow. */
|
|
36
|
+
export const TRAIT_GUARDED = "ai.cotal.guarded";
|
|
37
|
+
/** The payment trait (§13.10): the command MUST verify an independently verifiable payment
|
|
38
|
+
* proof in the `auth` slot before effect — never a bare "settled" assertion. */
|
|
39
|
+
export const TRAIT_PRICED = "ai.cotal.priced";
|
|
40
|
+
/** This revision governs EXACTLY these two (§13.7); everything else is vocabulary. Defined
|
|
41
|
+
* HERE (the cluster layer both the trait verifiers and the registrar depend on) so the
|
|
42
|
+
* trusted registration writer can pin the canonical set STRUCTURALLY — a caller-supplied
|
|
43
|
+
* governed set was the subset-narrowing escape the panel rejected. */
|
|
44
|
+
export const GOVERNED_TRAIT_URNS = Object.freeze([TRAIT_GUARDED, TRAIT_PRICED]);
|
|
45
|
+
/** A named capability requirement (§13.7/§13.9: minting maps it to subjects). */
|
|
46
|
+
const CAPABILITY = /^[a-z][a-z0-9._-]{0,63}$/;
|
|
47
|
+
function invalid(what) {
|
|
48
|
+
throw new ContractInvalidError(`cluster document does not validate: ${what}`);
|
|
49
|
+
}
|
|
50
|
+
/** Parse a cluster document at its consuming boundary. Violations are `contract-invalid`
|
|
51
|
+
* (a malformed contract ARTIFACT, §13.7's registration-time class — a reader of registered
|
|
52
|
+
* state converts this to its own loud failure). */
|
|
53
|
+
export function parseClusterDocument(raw) {
|
|
54
|
+
const o = isRec(raw) ? raw : invalid("not an object");
|
|
55
|
+
if (typeof o.urn !== "string" || !URN.test(o.urn))
|
|
56
|
+
invalid(`urn ${JSON.stringify(o.urn)} is not a reverse-DNS cluster type URN`);
|
|
57
|
+
if (typeof o.revision !== "number" || !Number.isSafeInteger(o.revision) || o.revision < 0)
|
|
58
|
+
invalid("revision is not an unsigned integer");
|
|
59
|
+
if (!Array.isArray(o.attributes))
|
|
60
|
+
invalid("attributes is not an array");
|
|
61
|
+
if (!Array.isArray(o.events))
|
|
62
|
+
invalid("events is not an array");
|
|
63
|
+
if (!Array.isArray(o.commands) || o.commands.length === 0)
|
|
64
|
+
invalid("commands must be a non-empty array");
|
|
65
|
+
const seen = new Set();
|
|
66
|
+
const commands = o.commands.map((c, i) => {
|
|
67
|
+
const cmd = isRec(c) ? c : invalid(`commands[${i}] is not an object`);
|
|
68
|
+
const name = typeof cmd.name === "string" ? cmd.name : invalid(`commands[${i}].name is not a string`);
|
|
69
|
+
try {
|
|
70
|
+
assertCommandToken(name);
|
|
71
|
+
}
|
|
72
|
+
catch (e) {
|
|
73
|
+
invalid(`commands[${i}].name: ${e.message}`);
|
|
74
|
+
}
|
|
75
|
+
if (name === "describe")
|
|
76
|
+
invalid(`commands[${i}] declares "describe": reserved, served by the machinery, never a cluster command (SPEC 13.7)`);
|
|
77
|
+
if (seen.has(name))
|
|
78
|
+
invalid(`command "${name}" is declared twice`);
|
|
79
|
+
seen.add(name);
|
|
80
|
+
if (cmd.class !== "ephemeral" && cmd.class !== "journal")
|
|
81
|
+
invalid(`command "${name}" class ${JSON.stringify(cmd.class)} is not "ephemeral" | "journal"`);
|
|
82
|
+
if (typeof cmd.targeted !== "boolean")
|
|
83
|
+
invalid(`command "${name}" must declare targeted as a boolean (SPEC 13.7)`);
|
|
84
|
+
let modes;
|
|
85
|
+
if (cmd.targeted) {
|
|
86
|
+
if (!Array.isArray(cmd.modes) || cmd.modes.length === 0)
|
|
87
|
+
invalid(`targeted command "${name}" must declare its admitted authorization modes (SPEC 13.7)`);
|
|
88
|
+
const uniq = new Set();
|
|
89
|
+
for (const m of cmd.modes) {
|
|
90
|
+
if (typeof m !== "string" || !isEpAuthzMode(m))
|
|
91
|
+
invalid(`command "${name}" admits unknown mode ${JSON.stringify(m)}`);
|
|
92
|
+
if (uniq.has(m))
|
|
93
|
+
invalid(`command "${name}" admits mode "${m}" twice`);
|
|
94
|
+
uniq.add(m);
|
|
95
|
+
}
|
|
96
|
+
modes = [...cmd.modes];
|
|
97
|
+
}
|
|
98
|
+
else if (cmd.modes !== undefined) {
|
|
99
|
+
invalid(`untargeted command "${name}" must not declare authorization modes`);
|
|
100
|
+
}
|
|
101
|
+
if (typeof cmd.capability !== "string" || !CAPABILITY.test(cmd.capability))
|
|
102
|
+
invalid(`command "${name}" capability is not a bounded capability token`);
|
|
103
|
+
if (!isDigest(cmd.inputDigest))
|
|
104
|
+
invalid(`command "${name}" inputDigest is not a sha256 closure digest`);
|
|
105
|
+
if (!isDigest(cmd.outputDigest))
|
|
106
|
+
invalid(`command "${name}" outputDigest is not a sha256 closure digest`);
|
|
107
|
+
let traits;
|
|
108
|
+
if (cmd.traits !== undefined) {
|
|
109
|
+
if (!Array.isArray(cmd.traits))
|
|
110
|
+
invalid(`command "${name}" traits is not an array`);
|
|
111
|
+
const tSeen = new Set();
|
|
112
|
+
for (const t of cmd.traits) {
|
|
113
|
+
if (typeof t !== "string" || !URN.test(t))
|
|
114
|
+
invalid(`command "${name}" trait ${JSON.stringify(t)} is not a reverse-DNS trait URN (SPEC 13.7)`);
|
|
115
|
+
if (tSeen.has(t))
|
|
116
|
+
invalid(`command "${name}" declares trait "${t}" twice`);
|
|
117
|
+
tSeen.add(t);
|
|
118
|
+
}
|
|
119
|
+
traits = [...cmd.traits];
|
|
120
|
+
}
|
|
121
|
+
return {
|
|
122
|
+
name, class: cmd.class, targeted: cmd.targeted,
|
|
123
|
+
...(modes ? { modes } : {}),
|
|
124
|
+
capability: cmd.capability, inputDigest: cmd.inputDigest, outputDigest: cmd.outputDigest,
|
|
125
|
+
...(traits ? { traits } : {}),
|
|
126
|
+
};
|
|
127
|
+
});
|
|
128
|
+
return { urn: o.urn, revision: o.revision, attributes: [...o.attributes], commands, events: [...o.events] };
|
|
129
|
+
}
|
|
130
|
+
/** Verify fetched MANIFEST bytes against the registered closure digest and parse them (§13.7:
|
|
131
|
+
* the closure digest identifies the manifest, not the root document). P1 pins single-document
|
|
132
|
+
* clusters, so `members` MUST be empty — a non-empty closure needs the D8 multi-artifact
|
|
133
|
+
* loader and fails loud until then, never silently under-verified. */
|
|
134
|
+
export function verifyClusterManifest(closureDigest, manifest) {
|
|
135
|
+
if (!isDigest(closureDigest))
|
|
136
|
+
throw new ContractInvalidError(`${JSON.stringify(closureDigest)} is not a sha256 closure digest`);
|
|
137
|
+
const actual = contractDigest(manifest);
|
|
138
|
+
if (actual !== closureDigest)
|
|
139
|
+
throw new ContractInvalidError(`cluster manifest does not hash to its registered closure digest ${closureDigest} (content is ${actual}); a reader MUST verify fetched bytes and fail loud (SPEC 13.7)`);
|
|
140
|
+
const o = isRec(manifest) ? manifest : invalid("manifest is not an object");
|
|
141
|
+
if (o.v !== 1)
|
|
142
|
+
invalid(`manifest v ${JSON.stringify(o.v)} is not 1`);
|
|
143
|
+
if (!isDigest(o.root))
|
|
144
|
+
invalid("manifest root is not a sha256 artifact digest");
|
|
145
|
+
if (!Array.isArray(o.members))
|
|
146
|
+
invalid("manifest members is not an array");
|
|
147
|
+
if (o.members.length !== 0)
|
|
148
|
+
throw new ContractInvalidError(`cluster closure ${closureDigest} has ${o.members.length} member(s); multi-artifact closures need the D8 loader and are refused until then (SPEC 13.7), never partially verified`);
|
|
149
|
+
return { root: o.root, members: [] };
|
|
150
|
+
}
|
|
151
|
+
/** Verify fetched ROOT cluster-document bytes against the manifest's `root` artifact digest and
|
|
152
|
+
* parse the command surface — the second half of the §13.7 two-digest read; a document that
|
|
153
|
+
* does not hash to `root` fails loud, never parses. */
|
|
154
|
+
export function verifyClusterRoot(rootDigest, document) {
|
|
155
|
+
if (!isDigest(rootDigest))
|
|
156
|
+
throw new ContractInvalidError(`${JSON.stringify(rootDigest)} is not a sha256 artifact digest`);
|
|
157
|
+
const actual = contractDigest(document);
|
|
158
|
+
if (actual !== rootDigest)
|
|
159
|
+
throw new ContractInvalidError(`cluster document does not hash to its manifest root ${rootDigest} (content is ${actual}); a reader MUST verify fetched bytes and fail loud (SPEC 13.7)`);
|
|
160
|
+
return parseClusterDocument(document);
|
|
161
|
+
}
|
|
162
|
+
function deepFreeze(v) {
|
|
163
|
+
if (v !== null && typeof v === "object") {
|
|
164
|
+
for (const child of Object.values(v))
|
|
165
|
+
deepFreeze(child);
|
|
166
|
+
Object.freeze(v);
|
|
167
|
+
}
|
|
168
|
+
return v;
|
|
169
|
+
}
|
|
170
|
+
/** Derive the instance's AUTHORITATIVE descriptor from its registered identity and VERIFIED
|
|
171
|
+
* cluster documents — the FULL registered surface (SPEC §13.9: the instance credential binds
|
|
172
|
+
* its registered command set; caller-specific authorization is projected only in the
|
|
173
|
+
* response-time describe answer, §13.7, never baked into the registration). Every cluster
|
|
174
|
+
* advertises exactly its verified commands and carries its verified document inline. Deep-
|
|
175
|
+
* frozen: discovery is a projection of registered bytes, and no later mutation can change what
|
|
176
|
+
* describe publishes. */
|
|
177
|
+
export function deriveDescriptor(identity, clusters) {
|
|
178
|
+
endpointToken(identity.endpoint);
|
|
179
|
+
assertBoundedOwner(identity.owner, "descriptor owner");
|
|
180
|
+
if (clusters.length === 0)
|
|
181
|
+
throw new ContractInvalidError("a descriptor needs at least one registered cluster");
|
|
182
|
+
return deepFreeze({
|
|
183
|
+
endpoint: identity.endpoint,
|
|
184
|
+
owner: identity.owner,
|
|
185
|
+
...(identity.endpointType !== undefined ? { endpointType: identity.endpointType } : {}),
|
|
186
|
+
protocol: { v: 1 },
|
|
187
|
+
clusters: clusters.map((c) => ({
|
|
188
|
+
digest: c.digest,
|
|
189
|
+
commands: c.document.commands.map((cmd) => cmd.name),
|
|
190
|
+
document: structuredClone(c.raw),
|
|
191
|
+
})),
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=endpoint-cluster.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint-cluster.js","sourceRoot":"","sources":["../src/endpoint-cluster.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { type NatsConnection } from "@nats-io/transport-node";
|
|
2
|
+
/** The §13.7 artifact bound: a document above it cannot ride one message and is refused. */
|
|
3
|
+
export declare const CONTRACT_ARTIFACT_MAX_BYTES: number;
|
|
4
|
+
/** The §13.7 closure byte bound: the sum of every fetched artifact's canonical bytes. */
|
|
5
|
+
export declare const CONTRACT_CLOSURE_MAX_BYTES: number;
|
|
6
|
+
/** The §13.7 reference-chain bound: the walk's depth from the root. */
|
|
7
|
+
export declare const CONTRACT_CLOSURE_MAX_REF_DEPTH = 32;
|
|
8
|
+
/** The artifact-count ceiling: a walk that would exceed it fails loud, never truncates. */
|
|
9
|
+
export declare const CONTRACT_CLOSURE_MAX_ARTIFACTS = 64;
|
|
10
|
+
/** A trusted, space-bonded contract-store context: an OPAQUE token carrying only the space. Its
|
|
11
|
+
* JS + JSM resources DERIVE from one binding-layer connection by the constructor and live in a
|
|
12
|
+
* module-private WeakMap keyed by this token, NEVER as reachable properties (distsys 8dcad72
|
|
13
|
+
* MEDIUM): a caller holding the context cannot rebind its broker to validate a lost-CAS "winner"
|
|
14
|
+
* through a different broker than it published to. Every store seam takes this context. */
|
|
15
|
+
export interface ContractStoreContext {
|
|
16
|
+
readonly space: string;
|
|
17
|
+
}
|
|
18
|
+
/** Bond the resources to one space by CONSTRUCTION (frozen token + WeakMap-private resources, the
|
|
19
|
+
* shared context discipline): a hand-assembled structural look-alike is rejected at every seam,
|
|
20
|
+
* and the broker cannot be rebound out from under a live operation. */
|
|
21
|
+
export declare function contractStoreContext(nc: NatsConnection, space: string): Promise<ContractStoreContext>;
|
|
22
|
+
/** The artifact's subject token: SHA-256 hex over the artifact's CANONICAL bytes (§13.7: the
|
|
23
|
+
* `sha256:` prefix is not a subject token). The bytes handed here MUST already be canonical —
|
|
24
|
+
* publication and verify-on-read enforce that ({@link assertCanonicalArtifactBytes}). */
|
|
25
|
+
export declare function contractArtifactDigestHex(bytes: Uint8Array): string;
|
|
26
|
+
/** Normalize a digest reference (`<hex>` or `sha256:<hex>`) to the bare subject token; a
|
|
27
|
+
* malformed reference fails loud (a garbled ref never fetches an unintended subject). */
|
|
28
|
+
export declare function contractRefToHex(ref: string): string;
|
|
29
|
+
/** A value's canonical artifact bytes (strict RFC 8785 over I-JSON): what publication stores
|
|
30
|
+
* and what the digest identifies. Non-interchangeable values refuse. */
|
|
31
|
+
export declare function contractArtifactCanonicalBytes(value: unknown): Uint8Array;
|
|
32
|
+
/** Prove presented bytes ARE their own parse's strict RFC 8785 canonical serialization and
|
|
33
|
+
* return the parsed value (§13.7 content identity): invalid UTF-8, non-JSON, and every
|
|
34
|
+
* noncanonical encoding (reordered keys, whitespace, duplicate keys, noncanonical numbers)
|
|
35
|
+
* refuse — an equivalent value in a different encoding never gets its own identity, so two
|
|
36
|
+
* implementations can never disagree on an artifact's digest. */
|
|
37
|
+
export declare function assertCanonicalArtifactBytes(bytes: Uint8Array, what: string): unknown;
|
|
38
|
+
/** Publish one artifact at its content address, create-only. The bytes are DETACHED at entry
|
|
39
|
+
* (a caller mutating the buffer across the publish await changes nothing), PROVEN canonical
|
|
40
|
+
* ({@link assertCanonicalArtifactBytes}), and the digest is computed FROM that snapshot; a
|
|
41
|
+
* lost CAS fetches the recorded artifact and — because the subject IS the digest and the
|
|
42
|
+
* fetch verifies — the loss is an idempotent no-op ({won: false}). Oversize refuses. */
|
|
43
|
+
export declare function publishContractArtifact(ctx: ContractStoreContext, bytes: Uint8Array): Promise<{
|
|
44
|
+
digestHex: string;
|
|
45
|
+
won: boolean;
|
|
46
|
+
}>;
|
|
47
|
+
/** Fetch one artifact by digest (`undefined` = not published). VERIFY-ON-READ is unconditional
|
|
48
|
+
* and TWO-PROOF: the fetched bytes must recompute the digest AND be strict canonical JSON —
|
|
49
|
+
* content addressing is the tamper boundary and a garbled store never serves (§13.7). */
|
|
50
|
+
export declare function fetchContractArtifact(ctx: ContractStoreContext, digestHex: string): Promise<Uint8Array | undefined>;
|
|
51
|
+
/** The §13.7 closure MANIFEST artifact: contract identity is THIS artifact's digest (the
|
|
52
|
+
* closure digest), never the root document digest alone. Digest fields carry the one scalar
|
|
53
|
+
* shape `sha256:<hex>`. */
|
|
54
|
+
export interface ContractClosureManifest {
|
|
55
|
+
v: 1;
|
|
56
|
+
root: string;
|
|
57
|
+
/** Every artifact transitively reachable through by-digest references from `root` (the root
|
|
58
|
+
* appears only if a reference re-reaches it), sorted lexicographically, deduplicated. */
|
|
59
|
+
members: string[];
|
|
60
|
+
}
|
|
61
|
+
/** Build the canonical manifest for a walked closure: refs normalize, members sort + dedup.
|
|
62
|
+
* The ROOT is named by its own field and belongs in `members` only when a reference
|
|
63
|
+
* re-reaches it (the §13.7 "reachable THROUGH references" rule, pinned here so two
|
|
64
|
+
* implementations always mint the identical manifest). */
|
|
65
|
+
export declare function buildContractClosureManifest(rootRef: string, memberRefs: readonly string[]): ContractClosureManifest;
|
|
66
|
+
/** Publish a closure's manifest as an ordinary canonical artifact; the returned digest IS the
|
|
67
|
+
* closure digest (§13.7). */
|
|
68
|
+
export declare function publishContractClosureManifest(ctx: ContractStoreContext, manifest: ContractClosureManifest): Promise<{
|
|
69
|
+
closureDigestHex: string;
|
|
70
|
+
won: boolean;
|
|
71
|
+
}>;
|
|
72
|
+
/** Fetch and VERIFY a closure by its CLOSURE digest (§13.7): fetch the manifest artifact at
|
|
73
|
+
* that digest (its identity is proven by the fetch), then walk the by-digest references from
|
|
74
|
+
* `root` through the `extractRefs` resolution seam and PROVE the walked set equals
|
|
75
|
+
* `manifest.members` exactly — an under-naming manifest (the walk reaches an unlisted
|
|
76
|
+
* artifact) and an over-naming one (a listed member is never reached) both refuse; a missing
|
|
77
|
+
* artifact anywhere is all-or-nothing loud. The walk is BOUNDED: the frozen closure byte
|
|
78
|
+
* bound, the reference-chain depth, the artifact-count ceiling (non-raiseable; a caller may
|
|
79
|
+
* narrow), a per-artifact reference cap, and ONE total monotonic time budget. `extractRefs`
|
|
80
|
+
* receives a DETACHED copy of each artifact's bytes (a mutating seam cannot poison the
|
|
81
|
+
* returned map) and its answer is size-capped. Returns digest → bytes (manifest excluded;
|
|
82
|
+
* root first, then first-visit order) plus the parsed manifest. */
|
|
83
|
+
export declare function fetchContractClosure(ctx: ContractStoreContext, closureDigestRef: string, extractRefs: (bytes: Uint8Array, digestHex: string) => string[], opts?: {
|
|
84
|
+
maxArtifacts?: number;
|
|
85
|
+
walkBudgetMs?: number;
|
|
86
|
+
}): Promise<{
|
|
87
|
+
manifest: ContractClosureManifest;
|
|
88
|
+
artifacts: Map<string, Uint8Array>;
|
|
89
|
+
}>;
|
|
90
|
+
//# sourceMappingURL=endpoint-contract-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint-contract-store.d.ts","sourceRoot":"","sources":["../src/endpoint-contract-store.ts"],"names":[],"mappings":"AAmCA,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAOtF,4FAA4F;AAC5F,eAAO,MAAM,2BAA2B,QAAa,CAAC;AACtD,yFAAyF;AACzF,eAAO,MAAM,0BAA0B,QAAc,CAAC;AACtD,uEAAuE;AACvE,eAAO,MAAM,8BAA8B,KAAK,CAAC;AACjD,2FAA2F;AAC3F,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAIjD;;;;4FAI4F;AAC5F,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAQD;;wEAEwE;AACxE,wBAAsB,oBAAoB,CAAC,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAU3G;AAWD;;0FAE0F;AAC1F,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAEnE;AAED;0FAC0F;AAC1F,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKpD;AAED;yEACyE;AACzE,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAGzE;AAED;;;;kEAIkE;AAClE,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAarF;AAED;;;;yFAIyF;AACzF,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,oBAAoB,EACzB,KAAK,EAAE,UAAU,GAChB,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,CAAC,CAyB9C;AAED;;0FAE0F;AAC1F,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,oBAAoB,EACzB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAqBjC;AAID;;4BAE4B;AAC5B,MAAM,WAAW,uBAAuB;IACtC,CAAC,EAAE,CAAC,CAAC;IACL,IAAI,EAAE,MAAM,CAAC;IACb;8FAC0F;IAC1F,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAeD;;;2DAG2D;AAC3D,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,MAAM,EAAE,GAAG,uBAAuB,CAIpH;AAyBD;8BAC8B;AAC9B,wBAAsB,8BAA8B,CAClD,GAAG,EAAE,oBAAoB,EACzB,QAAQ,EAAE,uBAAuB,GAChC,OAAO,CAAC;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,CAAC,CAKrD;AAED;;;;;;;;;;oEAUoE;AACpE,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,oBAAoB,EACzB,gBAAgB,EAAE,MAAM,EACxB,WAAW,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,EAAE,EAC/D,IAAI,GAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1D,OAAO,CAAC;IAAE,QAAQ,EAAE,uBAAuB,CAAC;IAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;CAAE,CAAC,CAoFpF"}
|