@cello-protocol/protocol-types 0.0.53 → 0.0.54
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/document-amendment.d.ts +128 -0
- package/dist/document-amendment.d.ts.map +1 -0
- package/dist/document-amendment.js +347 -0
- package/dist/document-amendment.js.map +1 -0
- package/dist/document-envelope.js +7 -7
- package/dist/document-envelope.js.map +1 -1
- package/dist/document-governance.d.ts +40 -0
- package/dist/document-governance.d.ts.map +1 -0
- package/dist/document-governance.js +110 -0
- package/dist/document-governance.js.map +1 -0
- package/dist/document-join-answer.d.ts +34 -0
- package/dist/document-join-answer.d.ts.map +1 -0
- package/dist/document-join-answer.js +100 -0
- package/dist/document-join-answer.js.map +1 -0
- package/dist/document-join.d.ts +83 -0
- package/dist/document-join.d.ts.map +1 -0
- package/dist/document-join.js +225 -0
- package/dist/document-join.js.map +1 -0
- package/dist/document-multisig.d.ts +81 -0
- package/dist/document-multisig.d.ts.map +1 -0
- package/dist/document-multisig.js +185 -0
- package/dist/document-multisig.js.map +1 -0
- package/dist/document-proposal.d.ts +23 -14
- package/dist/document-proposal.d.ts.map +1 -1
- package/dist/document-proposal.js +80 -7
- package/dist/document-proposal.js.map +1 -1
- package/dist/index.d.ts +11 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOD-MP-SIG-1 — the multi-signature primitive: N Ed25519 signatures over ONE preimage.
|
|
3
|
+
*
|
|
4
|
+
* A collection is COMPLETE only when every signer in the required set has a verifying signature —
|
|
5
|
+
* no more, no fewer, no substitutes. Anything short of that is a partial collection: storable
|
|
6
|
+
* while signatures are being gathered, never valid. Completeness is computed independently by any
|
|
7
|
+
* holder from the collection alone plus a verifier; there is no coordinator whose word settles it.
|
|
8
|
+
*
|
|
9
|
+
* ── GENERIC BY CONSTRUCTION ───────────────────────────────────────────────────────────────────
|
|
10
|
+
*
|
|
11
|
+
* Nothing in this module knows what an amendment is. The subject is carried as
|
|
12
|
+
* `(subject_kind, subject_hash)` — the hash of the subject's OWN to-be-signed structure — so the
|
|
13
|
+
* amendment record (its first consumer) and Tier 2's N-way quiescence agreement (its named second)
|
|
14
|
+
* use the same preimage builder and the same completeness rule. Anything subject-specific growing
|
|
15
|
+
* in here is the drift the M14B Tier-2-readiness lens blocks.
|
|
16
|
+
*
|
|
17
|
+
* ── THE PREIMAGE COMMITS TO WHO MUST SIGN ─────────────────────────────────────────────────────
|
|
18
|
+
*
|
|
19
|
+
* `required_signers` is inside the signed bytes, sorted so the set — not the order it was typed
|
|
20
|
+
* in — is what is committed. Each signer therefore signs knowing exactly which co-signatures the
|
|
21
|
+
* collection needs: a signature given as "the sole required signer" cannot be replayed into a
|
|
22
|
+
* collection claiming a different signer set, because the preimage differs and the signature
|
|
23
|
+
* stops verifying. Replay across chain positions is the SUBJECT's job to prevent (its TBS chains
|
|
24
|
+
* to its predecessor), not this layer's.
|
|
25
|
+
*
|
|
26
|
+
* Signatures are Ed25519 (RFC 8032) over the SHA-256 of the preimage array, matching the sibling
|
|
27
|
+
* envelope builders. Verification is injected — the same seam the proposal path uses — so this
|
|
28
|
+
* module stays pure types + bytes.
|
|
29
|
+
*/
|
|
30
|
+
/** Domain tag in slot 0 of the to-be-signed array. Distinct from every sibling envelope domain. */
|
|
31
|
+
export declare const DOCUMENT_MULTISIG_DOMAIN = "CELLO-DOCUMENT-MULTISIG-v1";
|
|
32
|
+
/** The fields the preimage commits to. `signatures` is deliberately NOT part of the TBS. */
|
|
33
|
+
export interface MultisigSubject {
|
|
34
|
+
document_id: string;
|
|
35
|
+
/** What kind of thing is being co-signed, e.g. "document_amendment". Open set on purpose. */
|
|
36
|
+
subject_kind: string;
|
|
37
|
+
/** SHA-256 of the subject's own to-be-signed structure. */
|
|
38
|
+
subject_hash: Uint8Array;
|
|
39
|
+
/** Pubkey-hex identities that must ALL sign. Committed as a sorted set. */
|
|
40
|
+
required_signers: readonly string[];
|
|
41
|
+
}
|
|
42
|
+
export interface MultisigSignature {
|
|
43
|
+
signer_agent_id: string;
|
|
44
|
+
/** Ed25519 (RFC 8032) over `buildDocumentMultisigTbs` of the subject fields. */
|
|
45
|
+
signature: Uint8Array;
|
|
46
|
+
}
|
|
47
|
+
export interface MultisigCollection extends MultisigSubject {
|
|
48
|
+
required_signers: string[];
|
|
49
|
+
signatures: MultisigSignature[];
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* The canonical to-be-signed preimage: a fixed-order CBOR ARRAY with the domain in slot 0.
|
|
53
|
+
* SHA-256 pre-hashed by default, matching the sibling builders.
|
|
54
|
+
*/
|
|
55
|
+
export declare function buildDocumentMultisigTbs(subject: MultisigSubject, opts?: {
|
|
56
|
+
preHash?: boolean;
|
|
57
|
+
}): Uint8Array;
|
|
58
|
+
export interface MultisigStatus {
|
|
59
|
+
/** True only when every required signer has exactly one verifying signature and nobody else signed. */
|
|
60
|
+
complete: boolean;
|
|
61
|
+
/** Required signers with no signature present. */
|
|
62
|
+
missing: string[];
|
|
63
|
+
/** Signers present whose signature does not verify against the preimage. */
|
|
64
|
+
invalidSigners: string[];
|
|
65
|
+
/** Signatures from identities OUTSIDE the required set — never counted, always named. */
|
|
66
|
+
unknown: string[];
|
|
67
|
+
/** Signers with more than one signature row — settle once. */
|
|
68
|
+
duplicates: string[];
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Completeness, computed from the collection alone plus an injected verifier.
|
|
72
|
+
*
|
|
73
|
+
* Every defect class is NAMED rather than folded into a boolean, because the operator-facing
|
|
74
|
+
* question differs: "waiting on C" (missing), "B's signature is bad" (invalid), "someone outside
|
|
75
|
+
* the arrangement signed" (unknown — refused because extra names must not make a collection look
|
|
76
|
+
* more agreed than the rule it commits to), and "B signed twice" (duplicate).
|
|
77
|
+
*/
|
|
78
|
+
export declare function collectionStatus(collection: MultisigCollection, verify: (agentId: string, tbs: Uint8Array, signature: Uint8Array) => boolean): MultisigStatus;
|
|
79
|
+
export declare function encodeMultisigCollection(collection: MultisigCollection): Uint8Array;
|
|
80
|
+
export declare function decodeMultisigCollection(input: Uint8Array): MultisigCollection;
|
|
81
|
+
//# sourceMappingURL=document-multisig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-multisig.d.ts","sourceRoot":"","sources":["../src/document-multisig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAKH,mGAAmG;AACnG,eAAO,MAAM,wBAAwB,+BAA+B,CAAC;AAErE,4FAA4F;AAC5F,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,6FAA6F;IAC7F,YAAY,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,YAAY,EAAE,UAAU,CAAC;IACzB,2EAA2E;IAC3E,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,gFAAgF;IAChF,SAAS,EAAE,UAAU,CAAC;CACvB;AAED,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IACzD,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,UAAU,EAAE,iBAAiB,EAAE,CAAC;CACjC;AAgCD;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,eAAe,EACxB,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAC/B,UAAU,CAUZ;AAED,MAAM,WAAW,cAAc;IAC7B,uGAAuG;IACvG,QAAQ,EAAE,OAAO,CAAC;IAClB,kDAAkD;IAClD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,4EAA4E;IAC5E,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,yFAAyF;IACzF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,8DAA8D;IAC9D,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,kBAAkB,EAC9B,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,KAAK,OAAO,GAC3E,cAAc,CAuChB;AAED,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,kBAAkB,GAAG,UAAU,CAWnF;AA0BD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,UAAU,GAAG,kBAAkB,CAoC9E"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOD-MP-SIG-1 — the multi-signature primitive: N Ed25519 signatures over ONE preimage.
|
|
3
|
+
*
|
|
4
|
+
* A collection is COMPLETE only when every signer in the required set has a verifying signature —
|
|
5
|
+
* no more, no fewer, no substitutes. Anything short of that is a partial collection: storable
|
|
6
|
+
* while signatures are being gathered, never valid. Completeness is computed independently by any
|
|
7
|
+
* holder from the collection alone plus a verifier; there is no coordinator whose word settles it.
|
|
8
|
+
*
|
|
9
|
+
* ── GENERIC BY CONSTRUCTION ───────────────────────────────────────────────────────────────────
|
|
10
|
+
*
|
|
11
|
+
* Nothing in this module knows what an amendment is. The subject is carried as
|
|
12
|
+
* `(subject_kind, subject_hash)` — the hash of the subject's OWN to-be-signed structure — so the
|
|
13
|
+
* amendment record (its first consumer) and Tier 2's N-way quiescence agreement (its named second)
|
|
14
|
+
* use the same preimage builder and the same completeness rule. Anything subject-specific growing
|
|
15
|
+
* in here is the drift the M14B Tier-2-readiness lens blocks.
|
|
16
|
+
*
|
|
17
|
+
* ── THE PREIMAGE COMMITS TO WHO MUST SIGN ─────────────────────────────────────────────────────
|
|
18
|
+
*
|
|
19
|
+
* `required_signers` is inside the signed bytes, sorted so the set — not the order it was typed
|
|
20
|
+
* in — is what is committed. Each signer therefore signs knowing exactly which co-signatures the
|
|
21
|
+
* collection needs: a signature given as "the sole required signer" cannot be replayed into a
|
|
22
|
+
* collection claiming a different signer set, because the preimage differs and the signature
|
|
23
|
+
* stops verifying. Replay across chain positions is the SUBJECT's job to prevent (its TBS chains
|
|
24
|
+
* to its predecessor), not this layer's.
|
|
25
|
+
*
|
|
26
|
+
* Signatures are Ed25519 (RFC 8032) over the SHA-256 of the preimage array, matching the sibling
|
|
27
|
+
* envelope builders. Verification is injected — the same seam the proposal path uses — so this
|
|
28
|
+
* module stays pure types + bytes.
|
|
29
|
+
*/
|
|
30
|
+
import { createHash } from "node:crypto";
|
|
31
|
+
import { encodeCbor, decodeCbor } from "./cbor.js";
|
|
32
|
+
/** Domain tag in slot 0 of the to-be-signed array. Distinct from every sibling envelope domain. */
|
|
33
|
+
export const DOCUMENT_MULTISIG_DOMAIN = "CELLO-DOCUMENT-MULTISIG-v1";
|
|
34
|
+
/**
|
|
35
|
+
* The signer set, validated and canonicalized: non-empty, no duplicates, sorted.
|
|
36
|
+
*
|
|
37
|
+
* Duplicates are REFUSED rather than deduped — a duplicate in a required set is a builder bug,
|
|
38
|
+
* and silently collapsing it would change the preimage under a caller who believes they know
|
|
39
|
+
* what they asked N parties to sign.
|
|
40
|
+
*/
|
|
41
|
+
function canonicalSigners(signers) {
|
|
42
|
+
if (signers.length === 0) {
|
|
43
|
+
throw new Error("multisig_empty_signer_set: a collection nobody is required to sign is not a rule — " +
|
|
44
|
+
"the required set must name at least one signer");
|
|
45
|
+
}
|
|
46
|
+
const sorted = [...signers].sort();
|
|
47
|
+
for (let i = 1; i < sorted.length; i++) {
|
|
48
|
+
if (sorted[i] === sorted[i - 1]) {
|
|
49
|
+
throw new Error(`multisig_duplicate_signer: ${sorted[i]} appears more than once in the required set`);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
for (const s of sorted) {
|
|
53
|
+
if (typeof s !== "string" || s.length === 0) {
|
|
54
|
+
throw new Error("multisig_signer_type: every required signer must be a non-empty string");
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return sorted;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* The canonical to-be-signed preimage: a fixed-order CBOR ARRAY with the domain in slot 0.
|
|
61
|
+
* SHA-256 pre-hashed by default, matching the sibling builders.
|
|
62
|
+
*/
|
|
63
|
+
export function buildDocumentMultisigTbs(subject, opts = {}) {
|
|
64
|
+
const preimage = encodeCbor([
|
|
65
|
+
DOCUMENT_MULTISIG_DOMAIN,
|
|
66
|
+
subject.document_id,
|
|
67
|
+
subject.subject_kind,
|
|
68
|
+
subject.subject_hash,
|
|
69
|
+
canonicalSigners(subject.required_signers),
|
|
70
|
+
]);
|
|
71
|
+
if (opts.preHash === false)
|
|
72
|
+
return preimage;
|
|
73
|
+
return new Uint8Array(createHash("sha256").update(preimage).digest());
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Completeness, computed from the collection alone plus an injected verifier.
|
|
77
|
+
*
|
|
78
|
+
* Every defect class is NAMED rather than folded into a boolean, because the operator-facing
|
|
79
|
+
* question differs: "waiting on C" (missing), "B's signature is bad" (invalid), "someone outside
|
|
80
|
+
* the arrangement signed" (unknown — refused because extra names must not make a collection look
|
|
81
|
+
* more agreed than the rule it commits to), and "B signed twice" (duplicate).
|
|
82
|
+
*/
|
|
83
|
+
export function collectionStatus(collection, verify) {
|
|
84
|
+
const required = new Set(canonicalSigners(collection.required_signers));
|
|
85
|
+
const tbs = buildDocumentMultisigTbs(collection);
|
|
86
|
+
const seen = new Set();
|
|
87
|
+
const invalidSigners = [];
|
|
88
|
+
const unknown = [];
|
|
89
|
+
const duplicates = [];
|
|
90
|
+
for (const { signer_agent_id, signature } of collection.signatures) {
|
|
91
|
+
if (seen.has(signer_agent_id)) {
|
|
92
|
+
duplicates.push(signer_agent_id);
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
seen.add(signer_agent_id);
|
|
96
|
+
if (!required.has(signer_agent_id)) {
|
|
97
|
+
unknown.push(signer_agent_id);
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
if (!verify(signer_agent_id, tbs, signature)) {
|
|
101
|
+
invalidSigners.push(signer_agent_id);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
// A signer whose signature failed is INVALID, not missing — the two send the operator to
|
|
105
|
+
// different fixes — so missing is strictly "no row present at all".
|
|
106
|
+
const missing = [...required].filter((id) => !seen.has(id));
|
|
107
|
+
return {
|
|
108
|
+
complete: missing.length === 0 &&
|
|
109
|
+
invalidSigners.length === 0 &&
|
|
110
|
+
unknown.length === 0 &&
|
|
111
|
+
duplicates.length === 0,
|
|
112
|
+
missing,
|
|
113
|
+
invalidSigners,
|
|
114
|
+
unknown,
|
|
115
|
+
duplicates,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
export function encodeMultisigCollection(collection) {
|
|
119
|
+
return encodeCbor({
|
|
120
|
+
document_id: collection.document_id,
|
|
121
|
+
subject_kind: collection.subject_kind,
|
|
122
|
+
subject_hash: collection.subject_hash,
|
|
123
|
+
required_signers: canonicalSigners(collection.required_signers),
|
|
124
|
+
signatures: collection.signatures.map((s) => ({
|
|
125
|
+
signer_agent_id: s.signer_agent_id,
|
|
126
|
+
signature: s.signature,
|
|
127
|
+
})),
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
function present(map, field) {
|
|
131
|
+
if (!(field in map)) {
|
|
132
|
+
throw new Error(`multisig_missing_field: ${field} is mandatory and was not present`);
|
|
133
|
+
}
|
|
134
|
+
return map[field];
|
|
135
|
+
}
|
|
136
|
+
function str(map, field) {
|
|
137
|
+
const v = present(map, field);
|
|
138
|
+
if (typeof v !== "string" || v.length === 0) {
|
|
139
|
+
throw new Error(`multisig_field_type: ${field} must be a non-empty text string`);
|
|
140
|
+
}
|
|
141
|
+
return v;
|
|
142
|
+
}
|
|
143
|
+
function bytes(map, field) {
|
|
144
|
+
const v = present(map, field);
|
|
145
|
+
if (!(v instanceof Uint8Array)) {
|
|
146
|
+
throw new Error(`multisig_field_type: ${field} must be a CBOR byte string`);
|
|
147
|
+
}
|
|
148
|
+
// Copied — cbor-x returns views into the decoded buffer.
|
|
149
|
+
return new Uint8Array(v);
|
|
150
|
+
}
|
|
151
|
+
export function decodeMultisigCollection(input) {
|
|
152
|
+
const decoded = decodeCbor(input);
|
|
153
|
+
if (typeof decoded !== "object" || decoded === null || Array.isArray(decoded)) {
|
|
154
|
+
throw new Error("multisig_malformed: not a CBOR map");
|
|
155
|
+
}
|
|
156
|
+
const map = decoded;
|
|
157
|
+
const rawSigners = present(map, "required_signers");
|
|
158
|
+
if (!Array.isArray(rawSigners) || rawSigners.some((s) => typeof s !== "string")) {
|
|
159
|
+
throw new Error("multisig_field_type: required_signers must be an array of strings");
|
|
160
|
+
}
|
|
161
|
+
const rawSignatures = present(map, "signatures");
|
|
162
|
+
if (!Array.isArray(rawSignatures)) {
|
|
163
|
+
throw new Error("multisig_field_type: signatures must be an array");
|
|
164
|
+
}
|
|
165
|
+
const signatures = rawSignatures.map((entry, i) => {
|
|
166
|
+
if (typeof entry !== "object" || entry === null || Array.isArray(entry)) {
|
|
167
|
+
throw new Error(`multisig_field_type: signatures[${i}] must be a CBOR map`);
|
|
168
|
+
}
|
|
169
|
+
const e = entry;
|
|
170
|
+
return {
|
|
171
|
+
signer_agent_id: str(e, "signer_agent_id"),
|
|
172
|
+
signature: bytes(e, "signature"),
|
|
173
|
+
};
|
|
174
|
+
});
|
|
175
|
+
return {
|
|
176
|
+
document_id: str(map, "document_id"),
|
|
177
|
+
subject_kind: str(map, "subject_kind"),
|
|
178
|
+
subject_hash: bytes(map, "subject_hash"),
|
|
179
|
+
// Canonicalized on decode as well — a wire producer that shipped duplicates or an empty set
|
|
180
|
+
// is refused here, before any completeness question is asked.
|
|
181
|
+
required_signers: canonicalSigners(rawSigners),
|
|
182
|
+
signatures,
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=document-multisig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-multisig.js","sourceRoot":"","sources":["../src/document-multisig.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
*
|
|
13
13
|
* ── THE SEAM (§3.4, §11.1) ────────────────────────────────────────────────────────────────────
|
|
14
14
|
*
|
|
15
|
-
*
|
|
15
|
+
* Seam properties are DECLARED with a closed accepted-value set, and the pattern is
|
|
16
16
|
* deliberate — §3.3 chose it for `schema_enforcement` and §16.1 generalized it. Declaring a field
|
|
17
17
|
* that only accepts one value looks redundant until you need the second value: the field is
|
|
18
18
|
* already on the wire and already signed, so V2 is a validation change rather than a wire break
|
|
@@ -37,11 +37,20 @@ export declare const DOCUMENT_PROPOSAL_DOMAIN = "CELLO-DOCUMENT-PROPOSAL-v1";
|
|
|
37
37
|
* The document feature version this build speaks. Bumped when the document wire changes in a way
|
|
38
38
|
* a peer must understand; see `documentFeatureIncompatibility` for what a mismatch produces.
|
|
39
39
|
*/
|
|
40
|
-
export declare const DOCUMENT_FEATURE_VERSION =
|
|
40
|
+
export declare const DOCUMENT_FEATURE_VERSION = 2;
|
|
41
41
|
/** §6 — Tier 1. Tier 2 (attested) is V2; the field exists so V2 is a validation change. */
|
|
42
42
|
export declare const ASSURANCE_TIER_V1 = "authenticated";
|
|
43
|
-
/**
|
|
44
|
-
|
|
43
|
+
/**
|
|
44
|
+
* DOD-MP-TOPOLOGY-1 (ruling D4, 2026-08-13): `mesh` is the DEFAULT — one document, N holders,
|
|
45
|
+
* everyone delivers to everyone, which is what the M14B machinery does regardless of the label.
|
|
46
|
+
* `hub-and-spoke` survives as an accepted VALUE only (the wire field is signed into
|
|
47
|
+
* `document_id`, and a document so labeled behaves identically — the broker case is served by
|
|
48
|
+
* construction: two ordinary documents). Nothing else is accepted; the refusal names the
|
|
49
|
+
* mismatch at BOTH ends, because the proposer and accepter run different builds and one-sided
|
|
50
|
+
* validation lets whichever side is newer decide for both.
|
|
51
|
+
*/
|
|
52
|
+
export declare const TOPOLOGY_DEFAULT = "mesh";
|
|
53
|
+
export declare const SUPPORTED_TOPOLOGIES: ReadonlySet<string>;
|
|
45
54
|
export type DocumentConsentState = "pending" | "accepted" | "refused";
|
|
46
55
|
/**
|
|
47
56
|
* The properties agreed at handshake (§3.4). **Immutable after accept** — a property change is an
|
|
@@ -54,7 +63,7 @@ export interface DocumentProperties {
|
|
|
54
63
|
assurance_tier: string;
|
|
55
64
|
/** Only `false` in V1 — the schema-as-first-update path (§3.3) is V2. */
|
|
56
65
|
schema_enforcement: boolean;
|
|
57
|
-
/**
|
|
66
|
+
/** `mesh` (the default) or `hub-and-spoke` — anything else refuses at both ends. */
|
|
58
67
|
topology: string;
|
|
59
68
|
/** Receiver-local append-only enforcement (§16.7-1). Freely settable — not a seam field. */
|
|
60
69
|
append_only: boolean;
|
|
@@ -71,6 +80,15 @@ export interface DocumentProperties {
|
|
|
71
80
|
* 412" is not.
|
|
72
81
|
*/
|
|
73
82
|
content_profile?: string;
|
|
83
|
+
/**
|
|
84
|
+
* M14B / DOD-MP-AMEND-1 — the admin set fixed at creation (ruling D2, 2026-08-11): the
|
|
85
|
+
* pubkey-hex identities holding admin power over this document's arrangement. Signed into the
|
|
86
|
+
* preimage — and therefore into `document_id` — because WHO governs the document is part of
|
|
87
|
+
* what the invitee consents to. Absent means EVERY genesis participant is an admin (the
|
|
88
|
+
* bilateral default: either party can invite). The set is canonicalized sorted; membership
|
|
89
|
+
* must be ⊆ the genesis participants, enforced at accept and again at every replay.
|
|
90
|
+
*/
|
|
91
|
+
admin_set?: string[];
|
|
74
92
|
}
|
|
75
93
|
export interface DocumentProposalEnvelope {
|
|
76
94
|
type: "document_proposal";
|
|
@@ -93,15 +111,6 @@ export interface DocumentProposalEnvelope {
|
|
|
93
111
|
/** Ed25519 (RFC 8032) over `buildDocumentProposalTbs`. */
|
|
94
112
|
signature: Uint8Array;
|
|
95
113
|
}
|
|
96
|
-
/**
|
|
97
|
-
* The canonical to-be-signed preimage: a fixed-order CBOR ARRAY with the domain in slot 0.
|
|
98
|
-
*
|
|
99
|
-
* The properties are flattened into their own slots rather than nested as a map. `encodeCbor` is
|
|
100
|
-
* not deterministic for maps — keys follow insertion order — so a nested `properties` object would
|
|
101
|
-
* make the signature depend on the order the proposer happened to build it in, and two honest
|
|
102
|
-
* builds of the same proposal would produce different `document_id`s. For this envelope that is
|
|
103
|
-
* worse than a bad signature: the id IS the hash, so the two parties would be on two documents.
|
|
104
|
-
*/
|
|
105
114
|
export declare function buildDocumentProposalTbs(env: DocumentProposalEnvelope, opts?: {
|
|
106
115
|
preHash?: boolean;
|
|
107
116
|
}): Uint8Array;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-proposal.d.ts","sourceRoot":"","sources":["../src/document-proposal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAKH,kGAAkG;AAClG,eAAO,MAAM,wBAAwB,+BAA+B,CAAC;AAErE;;;GAGG;AACH,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,2FAA2F;AAC3F,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AACjD,
|
|
1
|
+
{"version":3,"file":"document-proposal.d.ts","sourceRoot":"","sources":["../src/document-proposal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAKH,kGAAkG;AAClG,eAAO,MAAM,wBAAwB,+BAA+B,CAAC;AAErE;;;GAGG;AACH,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,2FAA2F;AAC3F,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AACjD;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,SAAS,CAAC;AACvC,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAAsC,CAAC;AAE5F,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;AAEtE;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,kCAAkC;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,yEAAyE;IACzE,kBAAkB,EAAE,OAAO,CAAC;IAC5B,oFAAoF;IACpF,QAAQ,EAAE,MAAM,CAAC;IACjB,4FAA4F;IAC5F,WAAW,EAAE,OAAO,CAAC;IACrB;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,mGAAmG;IACnG,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,iFAAiF;IACjF,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,kBAAkB,CAAC;IAC/B;;;;OAIG;IACH,gBAAgB,EAAE,UAAU,GAAG,IAAI,CAAC;IACpC,yFAAyF;IACzF,KAAK,EAAE,UAAU,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,0DAA0D;IAC1D,SAAS,EAAE,UAAU,CAAC;CACvB;AAgCD,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,wBAAwB,EAC7B,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAC/B,UAAU,CA8CZ;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,wBAAwB,GAAG,MAAM,CAI5E;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI,CAkDtE;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAoB/F;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,wBAAwB,GAAG,UAAU,CA4BhF;AA6BD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,UAAU,GAAG,wBAAwB,CAoFlF"}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
*
|
|
13
13
|
* ── THE SEAM (§3.4, §11.1) ────────────────────────────────────────────────────────────────────
|
|
14
14
|
*
|
|
15
|
-
*
|
|
15
|
+
* Seam properties are DECLARED with a closed accepted-value set, and the pattern is
|
|
16
16
|
* deliberate — §3.3 chose it for `schema_enforcement` and §16.1 generalized it. Declaring a field
|
|
17
17
|
* that only accepts one value looks redundant until you need the second value: the field is
|
|
18
18
|
* already on the wire and already signed, so V2 is a validation change rather than a wire break
|
|
@@ -39,11 +39,20 @@ export const DOCUMENT_PROPOSAL_DOMAIN = "CELLO-DOCUMENT-PROPOSAL-v1";
|
|
|
39
39
|
* The document feature version this build speaks. Bumped when the document wire changes in a way
|
|
40
40
|
* a peer must understand; see `documentFeatureIncompatibility` for what a mismatch produces.
|
|
41
41
|
*/
|
|
42
|
-
export const DOCUMENT_FEATURE_VERSION =
|
|
42
|
+
export const DOCUMENT_FEATURE_VERSION = 2;
|
|
43
43
|
/** §6 — Tier 1. Tier 2 (attested) is V2; the field exists so V2 is a validation change. */
|
|
44
44
|
export const ASSURANCE_TIER_V1 = "authenticated";
|
|
45
|
-
/**
|
|
46
|
-
|
|
45
|
+
/**
|
|
46
|
+
* DOD-MP-TOPOLOGY-1 (ruling D4, 2026-08-13): `mesh` is the DEFAULT — one document, N holders,
|
|
47
|
+
* everyone delivers to everyone, which is what the M14B machinery does regardless of the label.
|
|
48
|
+
* `hub-and-spoke` survives as an accepted VALUE only (the wire field is signed into
|
|
49
|
+
* `document_id`, and a document so labeled behaves identically — the broker case is served by
|
|
50
|
+
* construction: two ordinary documents). Nothing else is accepted; the refusal names the
|
|
51
|
+
* mismatch at BOTH ends, because the proposer and accepter run different builds and one-sided
|
|
52
|
+
* validation lets whichever side is newer decide for both.
|
|
53
|
+
*/
|
|
54
|
+
export const TOPOLOGY_DEFAULT = "mesh";
|
|
55
|
+
export const SUPPORTED_TOPOLOGIES = new Set(["mesh", "hub-and-spoke"]);
|
|
47
56
|
/**
|
|
48
57
|
* The canonical to-be-signed preimage: a fixed-order CBOR ARRAY with the domain in slot 0.
|
|
49
58
|
*
|
|
@@ -53,6 +62,24 @@ export const TOPOLOGY_V1 = "hub-and-spoke";
|
|
|
53
62
|
* builds of the same proposal would produce different `document_id`s. For this envelope that is
|
|
54
63
|
* worse than a bad signature: the id IS the hash, so the two parties would be on two documents.
|
|
55
64
|
*/
|
|
65
|
+
/** Sorted, duplicate-refusing canonical form — the SET is what is signed, not the typing order. */
|
|
66
|
+
function canonicalAdminSet(adminSet) {
|
|
67
|
+
const sorted = [...adminSet].sort();
|
|
68
|
+
for (let i = 0; i < sorted.length; i++) {
|
|
69
|
+
// 64-hex ENFORCED, not assumed. The TBS folds the set to a ","-joined scalar, and the join is
|
|
70
|
+
// collision-free only because a pubkey cannot contain the separator — an unvalidated entry
|
|
71
|
+
// like "aa,bb" would let two different admin sets share one preimage, one document_id, and
|
|
72
|
+
// one valid signature. The charset IS the boundary.
|
|
73
|
+
if (typeof sorted[i] !== "string" || !/^[0-9a-f]{64}$/.test(sorted[i])) {
|
|
74
|
+
throw new Error("document_proposal_admin_set: every admin must be a 64-hex Ed25519 pubkey — got " +
|
|
75
|
+
JSON.stringify(sorted[i]));
|
|
76
|
+
}
|
|
77
|
+
if (i > 0 && sorted[i] === sorted[i - 1]) {
|
|
78
|
+
throw new Error(`document_proposal_admin_set: ${sorted[i]} appears more than once`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return sorted;
|
|
82
|
+
}
|
|
56
83
|
export function buildDocumentProposalTbs(env, opts = {}) {
|
|
57
84
|
const preimage = encodeCbor([
|
|
58
85
|
DOCUMENT_PROPOSAL_DOMAIN,
|
|
@@ -77,6 +104,11 @@ export function buildDocumentProposalTbs(env, opts = {}) {
|
|
|
77
104
|
// `null` when the proposer named none, so the slot is always occupied and no field's meaning
|
|
78
105
|
// depends on whether the one before it was present.
|
|
79
106
|
env.properties.content_profile ?? null,
|
|
107
|
+
// DOD-MP-AMEND-1's slot, feature_version 2. A SCALAR — sorted-unique pubkeys joined with
|
|
108
|
+
// "," (hex carries no comma) — because this preimage's flatness invariant (no nested
|
|
109
|
+
// containers, pinned by test) is what keeps the id independent of any container encoding.
|
|
110
|
+
// `null` when the proposer named none, so the slot is always occupied.
|
|
111
|
+
env.properties.admin_set === undefined ? null : canonicalAdminSet(env.properties.admin_set).join(","),
|
|
80
112
|
env.starting_content,
|
|
81
113
|
env.nonce,
|
|
82
114
|
// BIGINT past 0xffffffff — the same coercion three sibling builders carry and which
|
|
@@ -139,9 +171,22 @@ export function seamViolation(props) {
|
|
|
139
171
|
return (`content_profile must be a profile NAME (a string) or absent; this build cannot agree a ` +
|
|
140
172
|
`document whose character space is declared as something else`);
|
|
141
173
|
}
|
|
142
|
-
if (props.
|
|
143
|
-
|
|
144
|
-
|
|
174
|
+
if (props.admin_set !== undefined) {
|
|
175
|
+
if (!Array.isArray(props.admin_set) || props.admin_set.length === 0) {
|
|
176
|
+
return ("document_proposal_admin_set: when declared, the admin set must be a non-empty list of " +
|
|
177
|
+
"pubkeys — an empty list is a document nobody can ever amend");
|
|
178
|
+
}
|
|
179
|
+
try {
|
|
180
|
+
canonicalAdminSet(props.admin_set);
|
|
181
|
+
}
|
|
182
|
+
catch (err) {
|
|
183
|
+
return err instanceof Error ? err.message : String(err);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
if (!SUPPORTED_TOPOLOGIES.has(props.topology)) {
|
|
187
|
+
return (`document_seam_topology: this version supports ${[...SUPPORTED_TOPOLOGIES]
|
|
188
|
+
.map((v) => `"${v}"`)
|
|
189
|
+
.join(" and ")}, and the proposal asks for "${props.topology}"`);
|
|
145
190
|
}
|
|
146
191
|
return null;
|
|
147
192
|
}
|
|
@@ -178,6 +223,16 @@ export function encodeDocumentProposal(env) {
|
|
|
178
223
|
schema_enforcement: env.properties.schema_enforcement,
|
|
179
224
|
topology: env.properties.topology,
|
|
180
225
|
append_only: env.properties.append_only,
|
|
226
|
+
// Present only when declared — the TBS signs this slot (`?? null`), so an encoding that
|
|
227
|
+
// drops it has the receiver rebuild a different preimage and refuse the signature of every
|
|
228
|
+
// profiled proposal. Absent stays absent so profile-less proposals keep their pre-profile
|
|
229
|
+
// byte encoding.
|
|
230
|
+
...(env.properties.content_profile !== undefined
|
|
231
|
+
? { content_profile: env.properties.content_profile }
|
|
232
|
+
: {}),
|
|
233
|
+
...(env.properties.admin_set !== undefined
|
|
234
|
+
? { admin_set: canonicalAdminSet(env.properties.admin_set) }
|
|
235
|
+
: {}),
|
|
181
236
|
},
|
|
182
237
|
starting_content: env.starting_content,
|
|
183
238
|
nonce: env.nonce,
|
|
@@ -242,6 +297,22 @@ export function decodeDocumentProposal(input) {
|
|
|
242
297
|
if (typeof appendOnly !== "boolean") {
|
|
243
298
|
throw new Error("document_proposal_field_type: properties.append_only must be a boolean");
|
|
244
299
|
}
|
|
300
|
+
// OPTIONAL, unlike the seam fields above — documents agreed before profiles existed carry none,
|
|
301
|
+
// and `present` would refuse every one of them. When declared it must be a name; membership in
|
|
302
|
+
// the closed set is the gate's question (`seamViolation` checks shape, the daemon checks names).
|
|
303
|
+
// CANONICAL FORM: absent is the only encoding of "no profile". The TBS folds absent and null to
|
|
304
|
+
// the same signed slot, but an explicit `content_profile: null` on the wire is REFUSED here —
|
|
305
|
+
// one preimage, one decodable byte encoding. A second implementation must emit absent, not null.
|
|
306
|
+
const adminSet = "admin_set" in p ? p["admin_set"] : undefined;
|
|
307
|
+
if (adminSet !== undefined) {
|
|
308
|
+
if (!Array.isArray(adminSet) || adminSet.length === 0 || adminSet.some((s) => typeof s !== "string")) {
|
|
309
|
+
throw new Error("document_proposal_field_type: properties.admin_set must be a non-empty array of strings when present");
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
const contentProfile = "content_profile" in p ? p["content_profile"] : undefined;
|
|
313
|
+
if (contentProfile !== undefined && (typeof contentProfile !== "string" || contentProfile.length === 0)) {
|
|
314
|
+
throw new Error("document_proposal_field_type: properties.content_profile must be a non-empty text string when present");
|
|
315
|
+
}
|
|
245
316
|
const startingContent = present(map, "starting_content");
|
|
246
317
|
if (startingContent !== null && !(startingContent instanceof Uint8Array)) {
|
|
247
318
|
throw new Error("document_proposal_field_type: starting_content must be a CBOR byte string or explicit null");
|
|
@@ -261,6 +332,8 @@ export function decodeDocumentProposal(input) {
|
|
|
261
332
|
schema_enforcement: schemaEnforcement,
|
|
262
333
|
topology: str(p, "topology"),
|
|
263
334
|
append_only: appendOnly,
|
|
335
|
+
...(contentProfile !== undefined ? { content_profile: contentProfile } : {}),
|
|
336
|
+
...(adminSet !== undefined ? { admin_set: canonicalAdminSet(adminSet) } : {}),
|
|
264
337
|
},
|
|
265
338
|
starting_content: startingContent === null ? null : new Uint8Array(startingContent),
|
|
266
339
|
nonce: bytes(map, "nonce"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-proposal.js","sourceRoot":"","sources":["../src/document-proposal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEnD,kGAAkG;AAClG,MAAM,CAAC,MAAM,wBAAwB,GAAG,4BAA4B,CAAC;AAErE;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAE1C,2FAA2F;AAC3F,MAAM,CAAC,MAAM,iBAAiB,GAAG,eAAe,CAAC;AACjD,
|
|
1
|
+
{"version":3,"file":"document-proposal.js","sourceRoot":"","sources":["../src/document-proposal.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -30,8 +30,18 @@ export { encodeSessionLivenessQuery, decodeSessionLivenessQuery, encodeSessionLi
|
|
|
30
30
|
export { MONIKER_RE, validateMoniker } from "./moniker.js";
|
|
31
31
|
export { DOCUMENT_UPDATE_DOMAIN, DOCUMENT_UPDATE_ENCODING_V1, DOCUMENT_EPOCH_V1, buildDocumentUpdateTbs, encodeDocumentUpdateEnvelope, decodeDocumentUpdateEnvelope, documentEnvelopeHash, verifyDocumentChainLink, } from "./document-envelope.js";
|
|
32
32
|
export type { DocumentUpdateEnvelope } from "./document-envelope.js";
|
|
33
|
-
export { DOCUMENT_PROPOSAL_DOMAIN, DOCUMENT_FEATURE_VERSION, ASSURANCE_TIER_V1,
|
|
33
|
+
export { DOCUMENT_PROPOSAL_DOMAIN, DOCUMENT_FEATURE_VERSION, ASSURANCE_TIER_V1, TOPOLOGY_DEFAULT, SUPPORTED_TOPOLOGIES, buildDocumentProposalTbs, documentIdFromProposal, encodeDocumentProposal, decodeDocumentProposal, seamViolation, documentFeatureIncompatibility, } from "./document-proposal.js";
|
|
34
34
|
export type { DocumentProposalEnvelope, DocumentProperties, DocumentConsentState, } from "./document-proposal.js";
|
|
35
|
+
export { DOCUMENT_JOIN_OFFER_DOMAIN, buildDocumentJoinOfferTbs, encodeDocumentJoinOffer, decodeDocumentJoinOffer, validateDocumentJoinOffer, arrangementGenesisFromProposal, } from "./document-join.js";
|
|
36
|
+
export type { DocumentJoinOffer, JoinOfferValidation } from "./document-join.js";
|
|
37
|
+
export { DOCUMENT_JOIN_ANSWER_DOMAIN, MAX_JOIN_REFUSAL_REASON_LENGTH, buildDocumentJoinAnswerTbs, encodeDocumentJoinAnswer, decodeDocumentJoinAnswer, } from "./document-join-answer.js";
|
|
38
|
+
export type { DocumentJoinAnswer } from "./document-join-answer.js";
|
|
39
|
+
export { documentGovernancePolicy } from "./document-governance.js";
|
|
40
|
+
export type { GovernanceVerdict } from "./document-governance.js";
|
|
41
|
+
export { DOCUMENT_AMENDMENT_DOMAIN, AMENDMENT_SUBJECT_KIND, AMENDMENT_KINDS, AMENDABLE_PROPERTIES, MAX_DOCUMENT_HOLDERS, buildDocumentAmendmentTbs, documentAmendmentHash, encodeDocumentAmendment, decodeDocumentAmendment, deriveArrangement, } from "./document-amendment.js";
|
|
42
|
+
export type { AmendmentKind, DocumentAmendmentBody, DocumentAmendmentEnvelope, ArrangementGenesis, Arrangement, SignerPolicy, DeriveResult, } from "./document-amendment.js";
|
|
43
|
+
export { DOCUMENT_MULTISIG_DOMAIN, buildDocumentMultisigTbs, collectionStatus, encodeMultisigCollection, decodeMultisigCollection, } from "./document-multisig.js";
|
|
44
|
+
export type { MultisigSubject, MultisigSignature, MultisigCollection, MultisigStatus, } from "./document-multisig.js";
|
|
35
45
|
export { DOCUMENT_ACK_DOMAIN, buildDocumentAckTbs, encodeDocumentAck, decodeDocumentAck, } from "./document-ack.js";
|
|
36
46
|
export type { DocumentAck } from "./document-ack.js";
|
|
37
47
|
export { encodeDocumentProposalAck, decodeDocumentProposalAck, buildDocumentProposalAckTbs, assertDocumentProposalAckConsistent, DOCUMENT_PROPOSAL_ACK_DOMAIN, DOCUMENT_PROPOSAL_ACK_VERSION, MAX_PROPOSAL_REFUSAL_REASON_LENGTH, } from "./document-proposal-ack.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -20,7 +20,12 @@ export { encodeSessionLivenessQuery, decodeSessionLivenessQuery, encodeSessionLi
|
|
|
20
20
|
// MONIKER-0 — the single home of the agent-name / moniker charset rule (wire contract).
|
|
21
21
|
export { MONIKER_RE, validateMoniker } from "./moniker.js";
|
|
22
22
|
export { DOCUMENT_UPDATE_DOMAIN, DOCUMENT_UPDATE_ENCODING_V1, DOCUMENT_EPOCH_V1, buildDocumentUpdateTbs, encodeDocumentUpdateEnvelope, decodeDocumentUpdateEnvelope, documentEnvelopeHash, verifyDocumentChainLink, } from "./document-envelope.js";
|
|
23
|
-
export { DOCUMENT_PROPOSAL_DOMAIN, DOCUMENT_FEATURE_VERSION, ASSURANCE_TIER_V1,
|
|
23
|
+
export { DOCUMENT_PROPOSAL_DOMAIN, DOCUMENT_FEATURE_VERSION, ASSURANCE_TIER_V1, TOPOLOGY_DEFAULT, SUPPORTED_TOPOLOGIES, buildDocumentProposalTbs, documentIdFromProposal, encodeDocumentProposal, decodeDocumentProposal, seamViolation, documentFeatureIncompatibility, } from "./document-proposal.js";
|
|
24
|
+
export { DOCUMENT_JOIN_OFFER_DOMAIN, buildDocumentJoinOfferTbs, encodeDocumentJoinOffer, decodeDocumentJoinOffer, validateDocumentJoinOffer, arrangementGenesisFromProposal, } from "./document-join.js";
|
|
25
|
+
export { DOCUMENT_JOIN_ANSWER_DOMAIN, MAX_JOIN_REFUSAL_REASON_LENGTH, buildDocumentJoinAnswerTbs, encodeDocumentJoinAnswer, decodeDocumentJoinAnswer, } from "./document-join-answer.js";
|
|
26
|
+
export { documentGovernancePolicy } from "./document-governance.js";
|
|
27
|
+
export { DOCUMENT_AMENDMENT_DOMAIN, AMENDMENT_SUBJECT_KIND, AMENDMENT_KINDS, AMENDABLE_PROPERTIES, MAX_DOCUMENT_HOLDERS, buildDocumentAmendmentTbs, documentAmendmentHash, encodeDocumentAmendment, decodeDocumentAmendment, deriveArrangement, } from "./document-amendment.js";
|
|
28
|
+
export { DOCUMENT_MULTISIG_DOMAIN, buildDocumentMultisigTbs, collectionStatus, encodeMultisigCollection, decodeMultisigCollection, } from "./document-multisig.js";
|
|
24
29
|
export { DOCUMENT_ACK_DOMAIN, buildDocumentAckTbs, encodeDocumentAck, decodeDocumentAck, } from "./document-ack.js";
|
|
25
30
|
export { encodeDocumentProposalAck, decodeDocumentProposalAck, buildDocumentProposalAckTbs, assertDocumentProposalAckConsistent, DOCUMENT_PROPOSAL_ACK_DOMAIN, DOCUMENT_PROPOSAL_ACK_VERSION, MAX_PROPOSAL_REFUSAL_REASON_LENGTH, } from "./document-proposal-ack.js";
|
|
26
31
|
export { encodeDocumentControl, decodeDocumentControl, buildDocumentControlTbs, assertDocumentControlConsistent, DOCUMENT_CONTROL_DOMAIN, DOCUMENT_CONTROL_VERSION, DOCUMENT_CONTROL_VERBS, MAX_CONTROL_REASON_LENGTH, } from "./document-control.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEnD,8FAA8F;AAC9F,wFAAwF;AACxF,2BAA2B;AAC3B,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAO3B,+FAA+F;AAC/F,qGAAqG;AACrG,wFAAwF;AACxF,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,GACb,MAAM,iBAAiB,CAAC;AAezB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGvE,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,4BAA4B,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AA0BjK,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAmBjC,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEzF,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AA8DnF,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,gBAAgB,EAChB,QAAQ,EACR,WAAW,EACX,cAAc,GACf,MAAM,eAAe,CAAC;AAuBvB,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,6BAA6B,EAC7B,6BAA6B,GAC9B,MAAM,uBAAuB,CAAC;AAE/B,wFAAwF;AACxF,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,iBAAiB,EACjB,sBAAsB,EACtB,4BAA4B,EAC5B,4BAA4B,EAC5B,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,iBAAiB,EACjB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|