@cello-protocol/protocol-types 0.0.2

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../src/envelope.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * FROST DKG Wire Frame Types — REG-001 (real interactive DKG)
3
+ *
4
+ * These frames are exchanged on /cello/frost/1.0.0 streams during the
5
+ * distributed key generation ceremony that runs as part of registration.
6
+ *
7
+ * The DKG follows @noble/curves/frost DKG.round1/round2/round3 (RFC 9591 Appendix C).
8
+ * Each directory node (and the client) independently generates a secret polynomial
9
+ * and exchanges commitments. primary_pubkey is derived from the joint contributions
10
+ * of all participants.
11
+ *
12
+ * Three round-trip exchanges on /cello/frost/1.0.0 (one new stream per round per node):
13
+ *
14
+ * Round 1: client asks each node to generate its polynomial
15
+ * → each node returns { commitment[], proofOfKnowledge }
16
+ * Round 2: client broadcasts all nodes' round1 data to each node
17
+ * → each node returns its unicast signing shares for the other nodes
18
+ * Round 3: client delivers received round2 shares to each node for finalization
19
+ * → each node stores its FrostSecret and returns its shareCommitment
20
+ *
21
+ * These frames are DISTINCT from the signing ceremony frames:
22
+ * frost_commit_request/response — signing round 1 (nonce commitment)
23
+ * frost_sign_request/response — signing round 2 (partial signature)
24
+ *
25
+ * Crypto reference: RFC 9591 (FROST DKG), RFC 8032 (Ed25519)
26
+ */
27
+ /**
28
+ * Public round1 broadcast from one DKG participant.
29
+ * Matches DKG_Round1 from @noble/curves/abstract/frost.
30
+ */
31
+ export interface DkgRound1Broadcast {
32
+ /** Participant's FROST identifier (serialized string from ed25519_FROST.Identifier) */
33
+ identifier: string;
34
+ /** VSS commitment vector: one 32-byte Ed25519 point per polynomial coefficient */
35
+ commitment: Uint8Array[];
36
+ /** Schnorr proof-of-knowledge of the participant's secret (64 bytes) */
37
+ proofOfKnowledge: Uint8Array;
38
+ }
39
+ /**
40
+ * Unicast round2 share from one participant to one other.
41
+ * Matches DKG_Round2 from @noble/curves/abstract/frost.
42
+ */
43
+ export interface DkgRound2Share {
44
+ /** Identifier of the participant who generated this share */
45
+ signerIdentifier: string;
46
+ /** Identifier of the participant this share is addressed to */
47
+ targetIdentifier: string;
48
+ /** Signing share: 32-byte scalar */
49
+ signingShare: Uint8Array;
50
+ }
51
+ /**
52
+ * Client → Directory: begin DKG round 1 for this agent/epoch.
53
+ * The directory node generates its own secret polynomial and returns
54
+ * its public broadcast.
55
+ *
56
+ * OPS-AGENT-001: preAuthToken is required. The directory consumes it
57
+ * atomically as the first operation before any crypto computation.
58
+ * Use 'DEV-test-token' (or any 'DEV-' prefix) in CELLO_ENV=local.
59
+ */
60
+ export interface FrostDkgRound1Request {
61
+ type: "frost_dkg_round1_request";
62
+ /** Hex-encoded K_local public key */
63
+ agentPubkey: string;
64
+ /** Epoch identifier: "${agentPubkey}:epoch:1" */
65
+ epochId: string;
66
+ /** Threshold parameters for the DKG group */
67
+ signers: {
68
+ min: number;
69
+ max: number;
70
+ };
71
+ /**
72
+ * OPS-AGENT-001: Pre-authorization token issued by POST /internal/pre-authorize.
73
+ * Must be present for all new registrations after M6. The directory consumes
74
+ * the token atomically before any crypto computation.
75
+ * Local/test: use any 'DEV-' prefixed token (accepted by DevTokenValidator).
76
+ */
77
+ preAuthToken?: string;
78
+ }
79
+ export interface FrostDkgRound1ResponseOk {
80
+ type: "frost_dkg_round1_response";
81
+ ok: true;
82
+ /** The node's public DKG broadcast (commitment + proof-of-knowledge) */
83
+ broadcast: DkgRound1Broadcast;
84
+ }
85
+ export interface FrostDkgRound1ResponseErr {
86
+ type: "frost_dkg_round1_response";
87
+ ok: false;
88
+ reason: "already_in_progress" | "internal_error";
89
+ }
90
+ export type FrostDkgRound1Response = FrostDkgRound1ResponseOk | FrostDkgRound1ResponseErr;
91
+ /**
92
+ * Client → Directory: deliver all OTHER participants' round1 broadcasts to this node.
93
+ * The directory node runs DKG.round2() and returns unicast shares for each other participant.
94
+ */
95
+ export interface FrostDkgRound2Request {
96
+ type: "frost_dkg_round2_request";
97
+ agentPubkey: string;
98
+ epochId: string;
99
+ /** Round1 broadcasts from ALL other participants (excludes the receiving node itself) */
100
+ othersRound1: DkgRound1Broadcast[];
101
+ }
102
+ export interface FrostDkgRound2ResponseOk {
103
+ type: "frost_dkg_round2_response";
104
+ ok: true;
105
+ /** One signing share per other participant — client routes each to its recipient */
106
+ sharesForOthers: DkgRound2Share[];
107
+ }
108
+ export interface FrostDkgRound2ResponseErr {
109
+ type: "frost_dkg_round2_response";
110
+ ok: false;
111
+ reason: "round1_not_complete" | "verification_failed" | "internal_error";
112
+ }
113
+ export type FrostDkgRound2Response = FrostDkgRound2ResponseOk | FrostDkgRound2ResponseErr;
114
+ /**
115
+ * Client → Directory: deliver round2 shares addressed to this node + all round1 data.
116
+ * The directory node runs DKG.round3() and finalizes its FrostSecret.
117
+ */
118
+ export interface FrostDkgRound3Request {
119
+ type: "frost_dkg_round3_request";
120
+ agentPubkey: string;
121
+ epochId: string;
122
+ /** Round2 shares addressed to this node (one per other participant) */
123
+ sharesForMe: DkgRound2Share[];
124
+ /** All participants' round1 broadcasts (same set used in round2) */
125
+ allRound1: DkgRound1Broadcast[];
126
+ }
127
+ export interface FrostDkgRound3ResponseOk {
128
+ type: "frost_dkg_round3_response";
129
+ ok: true;
130
+ /**
131
+ * The group public key (primary_pubkey candidate) — 32-byte Ed25519 point.
132
+ * This is FrostPublic.commitments[0] from round3 output.
133
+ * The coordinator verifies all nodes return the same value before accepting.
134
+ */
135
+ shareCommitment: Uint8Array;
136
+ }
137
+ export interface FrostDkgRound3ResponseErr {
138
+ type: "frost_dkg_round3_response";
139
+ ok: false;
140
+ reason: "round2_not_complete" | "share_verification_failed" | "internal_error";
141
+ }
142
+ export type FrostDkgRound3Response = FrostDkgRound3ResponseOk | FrostDkgRound3ResponseErr;
143
+ export type FrostDkgRequest = FrostDkgRound1Request | FrostDkgRound2Request | FrostDkgRound3Request;
144
+ export type FrostDkgResponse = FrostDkgRound1Response | FrostDkgRound2Response | FrostDkgRound3Response;
145
+ //# sourceMappingURL=frost-dkg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frost-dkg.d.ts","sourceRoot":"","sources":["../src/frost-dkg.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * FROST DKG Wire Frame Types — REG-001 (real interactive DKG)
3
+ *
4
+ * These frames are exchanged on /cello/frost/1.0.0 streams during the
5
+ * distributed key generation ceremony that runs as part of registration.
6
+ *
7
+ * The DKG follows @noble/curves/frost DKG.round1/round2/round3 (RFC 9591 Appendix C).
8
+ * Each directory node (and the client) independently generates a secret polynomial
9
+ * and exchanges commitments. primary_pubkey is derived from the joint contributions
10
+ * of all participants.
11
+ *
12
+ * Three round-trip exchanges on /cello/frost/1.0.0 (one new stream per round per node):
13
+ *
14
+ * Round 1: client asks each node to generate its polynomial
15
+ * → each node returns { commitment[], proofOfKnowledge }
16
+ * Round 2: client broadcasts all nodes' round1 data to each node
17
+ * → each node returns its unicast signing shares for the other nodes
18
+ * Round 3: client delivers received round2 shares to each node for finalization
19
+ * → each node stores its FrostSecret and returns its shareCommitment
20
+ *
21
+ * These frames are DISTINCT from the signing ceremony frames:
22
+ * frost_commit_request/response — signing round 1 (nonce commitment)
23
+ * frost_sign_request/response — signing round 2 (partial signature)
24
+ *
25
+ * Crypto reference: RFC 9591 (FROST DKG), RFC 8032 (Ed25519)
26
+ */
27
+ export {};
28
+ //# sourceMappingURL=frost-dkg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frost-dkg.js","sourceRoot":"","sources":["../src/frost-dkg.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG"}
@@ -0,0 +1,12 @@
1
+ export type { MessageEnvelope, MessageEnvelopeV1, EnvelopeError, BuildResult, BuildResultV1, ValidateResult, ValidateResultV1, DeserializeResult, DeserializeResultV1, } from "./types.js";
2
+ export { MAX_CONTENT_BYTES, buildEnvelope, serializeEnvelope, deserializeEnvelope, validateEnvelope, buildEnvelopeV1, serializeEnvelopeV1, deserializeEnvelopeV1, validateEnvelopeV1, extractStructure1, } from "./envelope.js";
3
+ export type { ScanResultSentinel, Structure2, BuildStructure2Result } from "./structure2.js";
4
+ export { SCAN_RESULT_SENTINEL, buildStructure2, encodeStructure2, encodeScanResultSentinel, verifyStructure2Signature, } from "./structure2.js";
5
+ export { computeGenesisPrevRoot, encodeSealPayload, decodeSealPayload, buildSessionEstablishmentTbs, buildSealTbs } from "./session.js";
6
+ export type { SessionAssignment, SessionAssignmentFrost, SessionAssignmentSingle, ParticipantInfo, RelayEndpointInfo, SealPayload, SessionAbandoned, SessionSealedSingle, SessionSealedFrost, SessionSealed, SealRejectionReason, SessionSealRejected, SealVerified, } from "./session.js";
7
+ export type { MlDsaKeyProvider, MlDsaVerifier, PseudonymBinding, Endorsement, Attestation, ConnectionPackage, EndorsementValidationStatus, AttestationValidationStatus, ValidatedEndorsement, ValidatedAttestation, PackageValidationResult, BuildPseudonymBindingResult, SignalCondition, SignalRequirement, ConnectionPolicy, DirectoryContext, } from "./connection-package.js";
8
+ export { MAX_PSEUDONYM_LABEL_BYTES, ML_DSA_PUBKEY_BYTES, ML_DSA_SIGNATURE_BYTES, buildPseudonymBinding, verifyPseudonymBinding, verifyEndorsement, verifyAttestation, validateConnectionPackage, encodeConnectionPackage, decodeConnectionPackage, } from "./connection-package.js";
9
+ export type { RegisterRequest, DkgComplete, DkgReady, RegisterSuccess, RegisterError, RegisterErrorReason, AgentProfile, RegistrationState, } from "./registration.js";
10
+ export type { ConnectionRequest, ConnectionRequestInbound, ConnectionResponse, ConnectionResponseVerdict, ConnectionEstablished, ConnectionRejected, ConnectionInsufficient, ConnectionRequestError, ConnectionRequestErrorReason, DisclosureRequest, DisclosureRequestItem, DisclosureRequestInbound, DisclosureResponse, DisclosureResponseInbound, ConnectionRecord, PendingConnectionRequest, ClientConnectionRecord, SessionRequestM3, SessionRequestM3ErrorReason, } from "./connection-request.js";
11
+ export type { DkgRound1Broadcast, DkgRound2Share, FrostDkgRound1Request, FrostDkgRound1Response, FrostDkgRound2Request, FrostDkgRound2Response, FrostDkgRound3Request, FrostDkgRound3Response, FrostDkgRequest, FrostDkgResponse, } from "./frost-dkg.js";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AAEvB,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAC7F,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,MAAM,cAAc,CAAC;AACxI,YAAY,EACV,iBAAiB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,eAAe,EAAE,iBAAiB,EAAE,WAAW,EACnH,gBAAgB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,aAAa,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,YAAY,GACjI,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,2BAA2B,EAC3B,2BAA2B,EAC3B,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACvB,2BAA2B,EAC3B,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AAEjC,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;AAGjC,YAAY,EACV,eAAe,EACf,WAAW,EACX,QAAQ,EACR,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,EAClB,yBAAyB,EACzB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,4BAA4B,EAC5B,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,EACxB,kBAAkB,EAClB,yBAAyB,EACzB,gBAAgB,EAChB,wBAAwB,EACxB,sBAAsB,EACtB,gBAAgB,EAChB,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,GACjB,MAAM,gBAAgB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,5 @@
1
+ export { MAX_CONTENT_BYTES, buildEnvelope, serializeEnvelope, deserializeEnvelope, validateEnvelope, buildEnvelopeV1, serializeEnvelopeV1, deserializeEnvelopeV1, validateEnvelopeV1, extractStructure1, } from "./envelope.js";
2
+ export { SCAN_RESULT_SENTINEL, buildStructure2, encodeStructure2, encodeScanResultSentinel, verifyStructure2Signature, } from "./structure2.js";
3
+ export { computeGenesisPrevRoot, encodeSealPayload, decodeSealPayload, buildSessionEstablishmentTbs, buildSealTbs } from "./session.js";
4
+ export { MAX_PSEUDONYM_LABEL_BYTES, ML_DSA_PUBKEY_BYTES, ML_DSA_SIGNATURE_BYTES, buildPseudonymBinding, verifyPseudonymBinding, verifyEndorsement, verifyAttestation, validateConnectionPackage, encodeConnectionPackage, decodeConnectionPackage, } from "./connection-package.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AAGvB,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,MAAM,cAAc,CAAC;AAyBxI,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"}
@@ -0,0 +1,155 @@
1
+ /**
2
+ * CELLO Registration Wire Types — REG-001
3
+ *
4
+ * Phase P — Pseudocode
5
+ * ─────────────────────────────────────────────────────────────────────────────
6
+ * Registration flow (CELLO-REG-001):
7
+ *
8
+ * CLIENT → DIRECTORY (on existing authenticated /cello/signaling/1.0.0 stream):
9
+ * 1. Client generates ML-DSA-44 keypair via mlDsaKeygen() (NIST FIPS 204)
10
+ * 2. Client sends register_request { phone_stub, k_local_pubkey, ml_dsa_pubkey }
11
+ *
12
+ * DIRECTORY validates:
13
+ * a. phone_stub non-empty → else register_error { reason: 'invalid_verification' }
14
+ * b. k_local_pubkey not already in AgentProfile → else register_error { reason: 'already_registered' }
15
+ * c. SHA-256(phone_stub) not already in any AgentProfile.phone_stub_hash → else register_error { reason: 'phone_already_claimed' }
16
+ * d. Must be authenticated (signaling_auth_ok) → else register_error { reason: 'not_authenticated' }
17
+ *
18
+ * DIRECTORY triggers FROST DKG:
19
+ * - Calls bootstrapKeyShares for this agent (test path: createInProcessStubs in NODE_ENV=test)
20
+ * - In production: real DKG over /cello/frost/1.0.0 streams
21
+ * - Waits for DKG to complete and primary_pubkey to be derived
22
+ * - If DKG fails / below threshold → register_error { reason: 'dkg_failed' }
23
+ *
24
+ * CLIENT → DIRECTORY (after local DKG participation):
25
+ * 3. Client runs bootstrapNetworkKeyShares (or createInProcessStubs in test) → primary_pubkey
26
+ * 4. Client sends dkg_complete { primary_pubkey }
27
+ *
28
+ * DIRECTORY verifies dkg_complete:
29
+ * - Checks primary_pubkey is consistent with the commitments stored during DKG
30
+ * - If mismatch → register_error { reason: 'dkg_verification_failed' }
31
+ *
32
+ * DIRECTORY on success:
33
+ * - Generates 16-byte CSPRNG agent_id
34
+ * - Stores AgentProfile { k_local_pubkey, primary_pubkey, ml_dsa_pubkey, phone_stub_hash: SHA-256(phone_stub), ... }
35
+ * - NEVER stores raw phone_stub (SI-001)
36
+ * - Sends register_success { agent_id, primary_pubkey }
37
+ *
38
+ * CLIENT on register_success:
39
+ * - Stores RegistrationState locally
40
+ * - register() returns RegistrationState
41
+ * - Subsequent register() calls return { error: 'already_registered' }
42
+ *
43
+ * Phone stub SHA-256: per FIPS 180-4
44
+ * ML-DSA keypair: per NIST FIPS 204 (ML-DSA-44, 1312-byte public key)
45
+ * primary_pubkey: derived from FROST DKG ceremony (RFC 9591)
46
+ *
47
+ * Security invariants:
48
+ * SI-001: phone_stub raw value NEVER stored, logged, or returned in any error
49
+ * SI-002: no profile created without successful FROST DKG with verified primary_pubkey
50
+ * SI-003: FROST DKG shares NEVER appear in wire messages, logs, profiles, or API responses
51
+ * SI-004: register_request rejected with not_authenticated if auth not completed
52
+ * ─────────────────────────────────────────────────────────────────────────────
53
+ */
54
+ /**
55
+ * Step 1: Client requests registration. Sent on the authenticated signaling stream.
56
+ * SI-004: The stream must have completed signaling_auth_ok before this frame is processed.
57
+ */
58
+ export interface RegisterRequest {
59
+ type: "register_request";
60
+ /** Phone stub — validated non-empty by directory. Raw value NEVER persisted. */
61
+ phone_stub: string;
62
+ /** Hex-encoded K_local public key (32 bytes) */
63
+ k_local_pubkey: string;
64
+ /** Hex-encoded ML-DSA-44 public key (1312 bytes, NIST FIPS 204) */
65
+ ml_dsa_pubkey: string;
66
+ }
67
+ /**
68
+ * Step 2: Client completes local DKG and sends primary_pubkey.
69
+ * Sent after client receives the DKG material and derives the group public key.
70
+ * primary_pubkey is derived from FROST commitments (RFC 9591).
71
+ */
72
+ export interface DkgComplete {
73
+ type: "dkg_complete";
74
+ /** Hex-encoded FROST group public key (32 bytes). Derived from DKG commitments. */
75
+ primary_pubkey: string;
76
+ }
77
+ /**
78
+ * Directory authorizes the client to open DKG streams.
79
+ * Sent on the signaling stream after register_request is validated (steps 1–3 pass).
80
+ * Client opens /cello/frost/1.0.0 streams to each directory node and runs the DKG rounds.
81
+ * RFC 9591 §5 (FROST DKG), sent before client opens DKG streams.
82
+ */
83
+ export interface DkgReady {
84
+ type: "dkg_ready";
85
+ /** Epoch ID for this DKG instance: "${k_local_pubkey}:epoch:1" */
86
+ epochId: string;
87
+ /** Total number of participants in this DKG instance */
88
+ participants: number;
89
+ /** Minimum threshold for signing */
90
+ threshold: number;
91
+ }
92
+ /**
93
+ * Directory confirms successful registration.
94
+ * primary_pubkey here is the canonical value stored in the AgentProfile.
95
+ */
96
+ export interface RegisterSuccess {
97
+ type: "register_success";
98
+ /** Hex-encoded 16-byte CSPRNG agent ID */
99
+ agent_id: string;
100
+ /** Hex-encoded FROST group public key (32 bytes) — confirms what directory stored */
101
+ primary_pubkey: string;
102
+ }
103
+ /**
104
+ * Directory rejects registration.
105
+ * SI-001: reason field NEVER carries raw phone_stub.
106
+ */
107
+ export interface RegisterError {
108
+ type: "register_error";
109
+ reason: RegisterErrorReason;
110
+ /** Only set when reason === "already_registered" — allows client to reconstruct state */
111
+ agent_id?: string;
112
+ primary_pubkey?: string;
113
+ ml_dsa_pubkey?: string;
114
+ }
115
+ export type RegisterErrorReason = "already_registered" | "phone_already_claimed" | "invalid_verification" | "dkg_failed" | "not_authenticated" | "dkg_verification_failed";
116
+ /**
117
+ * Stored profile for a registered agent.
118
+ * Created only after successful FROST DKG (SI-002).
119
+ * phone_stub_hash = SHA-256(phone_stub) per FIPS 180-4 — raw phone_stub never stored (SI-001).
120
+ */
121
+ export interface AgentProfile {
122
+ /** Hex-encoded K_local public key (32 bytes) — primary lookup key */
123
+ k_local_pubkey: string;
124
+ /** Hex-encoded FROST group public key (32 bytes) */
125
+ primary_pubkey: string;
126
+ /** Hex-encoded ML-DSA-44 public key (1312 bytes, FIPS 204) */
127
+ ml_dsa_pubkey: string;
128
+ /** Hex SHA-256(phone_stub) — 32 bytes per FIPS 180-4. Raw phone_stub NEVER stored. */
129
+ phone_stub_hash: string;
130
+ /** Extensible agent profile data — empty in M3 */
131
+ profile: Record<string, unknown>;
132
+ /** Unix ms timestamp of registration */
133
+ registered_at: number;
134
+ /** Profile status */
135
+ status: "active";
136
+ /** Hex-encoded 16-byte CSPRNG agent ID */
137
+ agent_id: string;
138
+ }
139
+ /**
140
+ * Local registration state persisted by the client after register_success.
141
+ * Returned by CelloClient.register().
142
+ */
143
+ export interface RegistrationState {
144
+ /** Hex-encoded 16-byte agent ID from the directory */
145
+ agent_id: string;
146
+ /** Hex-encoded FROST group public key (32 bytes) */
147
+ primary_pubkey: string;
148
+ /** Hex-encoded ML-DSA-44 public key (1312 bytes) */
149
+ ml_dsa_pubkey: string;
150
+ /** Unix ms timestamp of registration */
151
+ registered_at: number;
152
+ /** Registration status */
153
+ status: "active";
154
+ }
155
+ //# sourceMappingURL=registration.d.ts.map
@@ -0,0 +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;CACvB;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,wDAAwD;IACxD,YAAY,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,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;CACxB;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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * CELLO Registration Wire Types — REG-001
3
+ *
4
+ * Phase P — Pseudocode
5
+ * ─────────────────────────────────────────────────────────────────────────────
6
+ * Registration flow (CELLO-REG-001):
7
+ *
8
+ * CLIENT → DIRECTORY (on existing authenticated /cello/signaling/1.0.0 stream):
9
+ * 1. Client generates ML-DSA-44 keypair via mlDsaKeygen() (NIST FIPS 204)
10
+ * 2. Client sends register_request { phone_stub, k_local_pubkey, ml_dsa_pubkey }
11
+ *
12
+ * DIRECTORY validates:
13
+ * a. phone_stub non-empty → else register_error { reason: 'invalid_verification' }
14
+ * b. k_local_pubkey not already in AgentProfile → else register_error { reason: 'already_registered' }
15
+ * c. SHA-256(phone_stub) not already in any AgentProfile.phone_stub_hash → else register_error { reason: 'phone_already_claimed' }
16
+ * d. Must be authenticated (signaling_auth_ok) → else register_error { reason: 'not_authenticated' }
17
+ *
18
+ * DIRECTORY triggers FROST DKG:
19
+ * - Calls bootstrapKeyShares for this agent (test path: createInProcessStubs in NODE_ENV=test)
20
+ * - In production: real DKG over /cello/frost/1.0.0 streams
21
+ * - Waits for DKG to complete and primary_pubkey to be derived
22
+ * - If DKG fails / below threshold → register_error { reason: 'dkg_failed' }
23
+ *
24
+ * CLIENT → DIRECTORY (after local DKG participation):
25
+ * 3. Client runs bootstrapNetworkKeyShares (or createInProcessStubs in test) → primary_pubkey
26
+ * 4. Client sends dkg_complete { primary_pubkey }
27
+ *
28
+ * DIRECTORY verifies dkg_complete:
29
+ * - Checks primary_pubkey is consistent with the commitments stored during DKG
30
+ * - If mismatch → register_error { reason: 'dkg_verification_failed' }
31
+ *
32
+ * DIRECTORY on success:
33
+ * - Generates 16-byte CSPRNG agent_id
34
+ * - Stores AgentProfile { k_local_pubkey, primary_pubkey, ml_dsa_pubkey, phone_stub_hash: SHA-256(phone_stub), ... }
35
+ * - NEVER stores raw phone_stub (SI-001)
36
+ * - Sends register_success { agent_id, primary_pubkey }
37
+ *
38
+ * CLIENT on register_success:
39
+ * - Stores RegistrationState locally
40
+ * - register() returns RegistrationState
41
+ * - Subsequent register() calls return { error: 'already_registered' }
42
+ *
43
+ * Phone stub SHA-256: per FIPS 180-4
44
+ * ML-DSA keypair: per NIST FIPS 204 (ML-DSA-44, 1312-byte public key)
45
+ * primary_pubkey: derived from FROST DKG ceremony (RFC 9591)
46
+ *
47
+ * Security invariants:
48
+ * SI-001: phone_stub raw value NEVER stored, logged, or returned in any error
49
+ * SI-002: no profile created without successful FROST DKG with verified primary_pubkey
50
+ * SI-003: FROST DKG shares NEVER appear in wire messages, logs, profiles, or API responses
51
+ * SI-004: register_request rejected with not_authenticated if auth not completed
52
+ * ─────────────────────────────────────────────────────────────────────────────
53
+ */
54
+ export {};
55
+ //# sourceMappingURL=registration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registration.js","sourceRoot":"","sources":["../src/registration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG"}