@cello-protocol/protocol-types 0.0.64 → 0.0.66
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/registration.d.ts +12 -0
- package/dist/registration.d.ts.map +1 -1
- package/dist/session.d.ts +24 -2
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +24 -3
- package/dist/session.js.map +1 -1
- package/package.json +2 -2
package/dist/registration.d.ts
CHANGED
|
@@ -112,6 +112,18 @@ export interface RegisterSuccess {
|
|
|
112
112
|
agent_id: string;
|
|
113
113
|
/** Hex-encoded FROST group public key (32 bytes) — confirms what directory stored */
|
|
114
114
|
primary_pubkey: string;
|
|
115
|
+
/**
|
|
116
|
+
* DOD-M15-SEALPARTIES-1 Part 0 — the relay credential for the agent that has just registered.
|
|
117
|
+
*
|
|
118
|
+
* The token normally rides `signaling_auth_ok`, but a registering agent opens its signaling
|
|
119
|
+
* stream in order TO register (the DKG runs over it), so that auth happens while the directory
|
|
120
|
+
* still has no profile for the key and correctly issues nothing. A healthy stream never
|
|
121
|
+
* re-authenticates, so this is the first — and often the only — moment the answer changes.
|
|
122
|
+
*
|
|
123
|
+
* Absent when the directory could not mint one; registration still succeeded, and the agent
|
|
124
|
+
* picks a token up on its next signaling reconnect.
|
|
125
|
+
*/
|
|
126
|
+
online_token?: Uint8Array;
|
|
115
127
|
}
|
|
116
128
|
/**
|
|
117
129
|
* Directory rejects registration.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registration.d.ts","sourceRoot":"","sources":["../src/registration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAIH;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,kBAAkB,CAAC;IACzB,gFAAgF;IAChF,UAAU,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,cAAc,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,cAAc,CAAC;IACrB,mFAAmF;IACnF,cAAc,EAAE,MAAM,CAAC;CACxB;AAID;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,WAAW,CAAC;IAClB,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,yFAAyF;IACzF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,kBAAkB,CAAC;IACzB,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,qFAAqF;IACrF,cAAc,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"registration.d.ts","sourceRoot":"","sources":["../src/registration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAIH;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,kBAAkB,CAAC;IACzB,gFAAgF;IAChF,UAAU,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,cAAc,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,cAAc,CAAC;IACrB,mFAAmF;IACnF,cAAc,EAAE,MAAM,CAAC;CACxB;AAID;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,WAAW,CAAC;IAClB,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,yFAAyF;IACzF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,kBAAkB,CAAC;IACzB,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,qFAAqF;IACrF,cAAc,EAAE,MAAM,CAAC;IACvB;;;;;;;;;;OAUG;IACH,YAAY,CAAC,EAAE,UAAU,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,yFAAyF;IACzF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,mBAAmB,GAC3B,oBAAoB,GACpB,uBAAuB,GACvB,sBAAsB,GACtB,YAAY,GACZ,mBAAmB,GACnB,yBAAyB,CAAC;AAI9B;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,qEAAqE;IACrE,cAAc,EAAE,MAAM,CAAC;IACvB,oDAAoD;IACpD,cAAc,EAAE,MAAM,CAAC;IACvB,8DAA8D;IAC9D,aAAa,EAAE,MAAM,CAAC;IACtB,sFAAsF;IACtF,eAAe,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,wCAAwC;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB;IACrB,MAAM,EAAE,QAAQ,CAAC;IACjB,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,sDAAsD;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,cAAc,EAAE,MAAM,CAAC;IACvB,oDAAoD;IACpD,aAAa,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,0BAA0B;IAC1B,MAAM,EAAE,QAAQ,CAAC;CAClB"}
|
package/dist/session.d.ts
CHANGED
|
@@ -74,6 +74,8 @@ interface SessionAssignmentCommon {
|
|
|
74
74
|
counterparty_session_peer_id?: string;
|
|
75
75
|
counterparty_session_addrs?: string[];
|
|
76
76
|
transport_mode?: 'direct' | 'relay';
|
|
77
|
+
high_stakes?: boolean;
|
|
78
|
+
prior_relay_id?: string;
|
|
77
79
|
}
|
|
78
80
|
/**
|
|
79
81
|
* FROST-signed assignment. `signer_pubkey` is the initiator's group public key
|
|
@@ -124,9 +126,11 @@ export type SessionAssignment = SessionAssignmentFrost | SessionAssignmentSingle
|
|
|
124
126
|
* @param counterpartySessionPeerId - M7: session node Peer ID of counterparty (optional for backward compat)
|
|
125
127
|
* @param counterpartySessionAddrs - M7: multiaddrs of counterparty session node (optional for backward compat)
|
|
126
128
|
* @param transportMode - M7: 'direct' or 'relay' (optional for backward compat)
|
|
129
|
+
* @param highStakes - 017-TBS: the session's high-stakes tier, forwarded so the TARGET can see it
|
|
130
|
+
* @param priorRelayId - 017-TBS: on a resume, the relay that witnessed up to the handover; "" fresh
|
|
127
131
|
* @returns canonical CBOR bytes of the TBS array
|
|
128
132
|
*/
|
|
129
|
-
export declare function buildSessionEstablishmentTbs(sessionId: Uint8Array, pubA: Uint8Array, pubB: Uint8Array, genesisPrevRoot: Uint8Array, timestamp: number | bigint, initiatorSessionPeerId?: string, initiatorSessionAddrs?: string[], counterpartySessionPeerId?: string, counterpartySessionAddrs?: string[], transportMode?: 'direct' | 'relay'): Uint8Array;
|
|
133
|
+
export declare function buildSessionEstablishmentTbs(sessionId: Uint8Array, pubA: Uint8Array, pubB: Uint8Array, genesisPrevRoot: Uint8Array, timestamp: number | bigint, initiatorSessionPeerId?: string, initiatorSessionAddrs?: string[], counterpartySessionPeerId?: string, counterpartySessionAddrs?: string[], transportMode?: 'direct' | 'relay', highStakes?: boolean, priorRelayId?: string): Uint8Array;
|
|
130
134
|
/**
|
|
131
135
|
* SEAL control payload carried as the content_bytes of a ctrl leaf.
|
|
132
136
|
* Canonical CBOR encoding: [session_id, final_root, close_timestamp, "PENDING"].
|
|
@@ -269,11 +273,29 @@ export interface SealLegibility {
|
|
|
269
273
|
participants: SealLegibilityParticipant[];
|
|
270
274
|
final_message: SealLegibilityFinalMessage;
|
|
271
275
|
}
|
|
272
|
-
export type SealRejectionReason = "merkle_root_mismatch" | "leaf_signature_invalid" | "prev_root_chain_broken" | "causal_chain_violated" | "content_hash_mismatch" | "seal_leaves_invalid" | "seal_signature_invalid"
|
|
276
|
+
export type SealRejectionReason = "merkle_root_mismatch" | "leaf_signature_invalid" | "prev_root_chain_broken" | "causal_chain_violated" | "content_hash_mismatch" | "seal_leaves_invalid" | "seal_signature_invalid"
|
|
277
|
+
/**
|
|
278
|
+
* DOD-M15-SEALPARTIES-1: fewer than two participants carried their own signed transcript root, so
|
|
279
|
+
* a bilateral seal had at most one party's approval. Distinct from `merkle_root_mismatch` because
|
|
280
|
+
* it sends the reader somewhere else entirely — a counterparty build or a relay that dropped the
|
|
281
|
+
* field, not two transcripts to compare.
|
|
282
|
+
*/
|
|
283
|
+
| "seal_approval_missing"
|
|
284
|
+
/**
|
|
285
|
+
* DOD-M15-SEALPARTIES-1: both participants approved, and approved DIFFERENT transcripts. This is
|
|
286
|
+
* the one that DOES mean "compare notes with your counterparty".
|
|
287
|
+
*/
|
|
288
|
+
| "seal_parties_disagree";
|
|
273
289
|
export interface SessionSealRejected {
|
|
274
290
|
type: "session_seal_rejected";
|
|
275
291
|
session_id: Uint8Array;
|
|
276
292
|
reason: SealRejectionReason;
|
|
293
|
+
/**
|
|
294
|
+
* DOD-M15-SEALPARTIES-1: the sentence that says which thing was wrong — which leaf, which party,
|
|
295
|
+
* which of two roots. The `reason` selects the remedy; this is what makes the remedy actionable.
|
|
296
|
+
* Absent when the refusing node had nothing more specific to say.
|
|
297
|
+
*/
|
|
298
|
+
detail?: string;
|
|
277
299
|
}
|
|
278
300
|
/**
|
|
279
301
|
* seal_verified: directory → seal initiator, after all three verification passes pass.
|
package/dist/session.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AASH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,+DAA+D;AAC/D,UAAU,uBAAuB;IAC/B,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,eAAe,CAAC;IAC/B,aAAa,EAAE,eAAe,CAAC;IAC/B,cAAc,EAAE,iBAAiB,CAAC;IAClC,kBAAkB,EAAE,iBAAiB,CAAC;IACtC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,UAAU,CAAC;IAC7B,mBAAmB,EAAE,UAAU,CAAC;IAOhC,yBAAyB,CAAC,EAAE,UAAU,CAAC;IAEvC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;IACnC,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,0BAA0B,CAAC,EAAE,MAAM,EAAE,CAAC;IACtC,cAAc,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
|
package/dist/session.js
CHANGED
|
@@ -79,9 +79,11 @@ import { encodeCbor } from "./cbor.js";
|
|
|
79
79
|
* @param counterpartySessionPeerId - M7: session node Peer ID of counterparty (optional for backward compat)
|
|
80
80
|
* @param counterpartySessionAddrs - M7: multiaddrs of counterparty session node (optional for backward compat)
|
|
81
81
|
* @param transportMode - M7: 'direct' or 'relay' (optional for backward compat)
|
|
82
|
+
* @param highStakes - 017-TBS: the session's high-stakes tier, forwarded so the TARGET can see it
|
|
83
|
+
* @param priorRelayId - 017-TBS: on a resume, the relay that witnessed up to the handover; "" fresh
|
|
82
84
|
* @returns canonical CBOR bytes of the TBS array
|
|
83
85
|
*/
|
|
84
|
-
export function buildSessionEstablishmentTbs(sessionId, pubA, pubB, genesisPrevRoot, timestamp, initiatorSessionPeerId, initiatorSessionAddrs, counterpartySessionPeerId, counterpartySessionAddrs, transportMode) {
|
|
86
|
+
export function buildSessionEstablishmentTbs(sessionId, pubA, pubB, genesisPrevRoot, timestamp, initiatorSessionPeerId, initiatorSessionAddrs, counterpartySessionPeerId, counterpartySessionAddrs, transportMode, highStakes, priorRelayId) {
|
|
85
87
|
const tsEncoded = typeof timestamp === "bigint" || timestamp > 0xffffffff ? BigInt(timestamp) : timestamp;
|
|
86
88
|
// M7+: when all new fields are provided, encode all 10 fields
|
|
87
89
|
if (initiatorSessionPeerId !== undefined &&
|
|
@@ -89,7 +91,7 @@ export function buildSessionEstablishmentTbs(sessionId, pubA, pubB, genesisPrevR
|
|
|
89
91
|
counterpartySessionPeerId !== undefined &&
|
|
90
92
|
counterpartySessionAddrs !== undefined &&
|
|
91
93
|
transportMode !== undefined) {
|
|
92
|
-
|
|
94
|
+
const m7 = [
|
|
93
95
|
sessionId,
|
|
94
96
|
pubA,
|
|
95
97
|
pubB,
|
|
@@ -100,7 +102,26 @@ export function buildSessionEstablishmentTbs(sessionId, pubA, pubB, genesisPrevR
|
|
|
100
102
|
counterpartySessionPeerId,
|
|
101
103
|
JSON.stringify(counterpartySessionAddrs.slice().sort()),
|
|
102
104
|
transportMode,
|
|
103
|
-
]
|
|
105
|
+
];
|
|
106
|
+
/**
|
|
107
|
+
* 017-TBS: the 12-field layout, and it is the NORMAL path — not a resume-only variant.
|
|
108
|
+
*
|
|
109
|
+
* Both new fields are always-present VALUES: `high_stakes` is a boolean where `false` is a real
|
|
110
|
+
* answer, and `priorRelayId` is `""` on a fresh session and a 64-hex relay id on a resume. So
|
|
111
|
+
* the arity turns on whether the CALLER supplies them, never on what they contain. Making it
|
|
112
|
+
* turn on `priorRelayId !== ""` would give a fresh session two possible layouts and leave the
|
|
113
|
+
* next reader resolving which one a signature was over at runtime.
|
|
114
|
+
*
|
|
115
|
+
* `high_stakes` is here because the target was being held to the high-stakes floor and its
|
|
116
|
+
* mandatory-evidence bar without ever being told: the flag rode the initiator's request and
|
|
117
|
+
* was not forwarded. `prior_relay_id` is here because a relay knows no other relay's identity,
|
|
118
|
+
* so when a conversation moves relays the new one can only learn who witnessed it before from
|
|
119
|
+
* the directory's signature — never from the client.
|
|
120
|
+
*/
|
|
121
|
+
if (highStakes !== undefined && priorRelayId !== undefined) {
|
|
122
|
+
return encodeCbor([...m7, highStakes, priorRelayId]);
|
|
123
|
+
}
|
|
124
|
+
return encodeCbor(m7);
|
|
104
125
|
}
|
|
105
126
|
// Legacy (M1–M6): encode only the original 5 fields
|
|
106
127
|
return encodeCbor([
|
package/dist/session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cello-protocol/protocol-types",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.66",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
],
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"cbor-x": "^1.6.4",
|
|
29
|
-
"@cello-protocol/crypto": "0.0.
|
|
29
|
+
"@cello-protocol/crypto": "0.0.62"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@claude-flow/testing": "3.0.0-alpha.6",
|