@cello-protocol/daemon 0.0.212 → 0.0.213
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/close-session-handler.d.ts.map +1 -1
- package/dist/close-session-handler.js +32 -5
- package/dist/close-session-handler.js.map +1 -1
- package/dist/daemon.js +16 -14
- package/dist/daemon.js.map +1 -1
- package/dist/document-flag.d.ts +58 -0
- package/dist/document-flag.d.ts.map +1 -0
- package/dist/document-flag.js +70 -0
- package/dist/document-flag.js.map +1 -0
- package/dist/document-gate-wiring.d.ts +61 -0
- package/dist/document-gate-wiring.d.ts.map +1 -0
- package/dist/document-gate-wiring.js +119 -0
- package/dist/document-gate-wiring.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/ipc-server.d.ts.map +1 -1
- package/dist/ipc-server.js +52 -2
- package/dist/ipc-server.js.map +1 -1
- package/dist/relay-receipt-store.d.ts +27 -0
- package/dist/relay-receipt-store.d.ts.map +1 -1
- package/dist/relay-receipt-store.js +32 -0
- package/dist/relay-receipt-store.js.map +1 -1
- package/dist/seal-carried-close.d.ts +37 -0
- package/dist/seal-carried-close.d.ts.map +1 -0
- package/dist/seal-carried-close.js +179 -0
- package/dist/seal-carried-close.js.map +1 -0
- package/dist/seal-certified-root-check.d.ts +37 -0
- package/dist/seal-certified-root-check.d.ts.map +1 -0
- package/dist/seal-certified-root-check.js +127 -0
- package/dist/seal-certified-root-check.js.map +1 -0
- package/dist/seal-coordinator.d.ts +6 -1
- package/dist/seal-coordinator.d.ts.map +1 -1
- package/dist/seal-coordinator.js +2 -1
- package/dist/seal-coordinator.js.map +1 -1
- package/dist/seal-escalation.d.ts.map +1 -1
- package/dist/seal-escalation.js +30 -1
- package/dist/seal-escalation.js.map +1 -1
- package/dist/seal-local-terminus.d.ts +41 -0
- package/dist/seal-local-terminus.d.ts.map +1 -0
- package/dist/seal-local-terminus.js +170 -0
- package/dist/seal-local-terminus.js.map +1 -0
- package/dist/seal-relay-silence.d.ts +51 -0
- package/dist/seal-relay-silence.d.ts.map +1 -0
- package/dist/seal-relay-silence.js +76 -0
- package/dist/seal-relay-silence.js.map +1 -0
- package/dist/session-leaf-records.d.ts +9 -0
- package/dist/session-leaf-records.d.ts.map +1 -1
- package/dist/session-leaf-records.js +19 -0
- package/dist/session-leaf-records.js.map +1 -1
- package/dist/session-lifecycle.js +9 -9
- package/dist/session-lifecycle.js.map +1 -1
- package/dist/session-node-manager.d.ts +13 -1
- package/dist/session-node-manager.d.ts.map +1 -1
- package/dist/session-node-manager.js +14 -13
- package/dist/session-node-manager.js.map +1 -1
- package/dist/session-relay-client.d.ts.map +1 -1
- package/dist/session-relay-client.js +11 -14
- package/dist/session-relay-client.js.map +1 -1
- package/dist/session-relay.js +3 -3
- package/dist/session-relay.js.map +1 -1
- package/dist/session-seal.d.ts +18 -32
- package/dist/session-seal.d.ts.map +1 -1
- package/dist/session-seal.js +53 -113
- package/dist/session-seal.js.map +1 -1
- package/dist/vocabulary.d.ts +22 -4
- package/dist/vocabulary.d.ts.map +1 -1
- package/dist/vocabulary.js +66 -21
- package/dist/vocabulary.js.map +1 -1
- package/package.json +5 -5
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `DOD-M15-CARRIEDSEAL-1` — THE CLOSE THAT DOES NOT NEED ANYONE ELSE TO BE AWAKE.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from `session-seal.ts` rather than written beside it, for the reason that file's own
|
|
5
|
+
* ratchet exists: a seal path that keeps growing in one place is how the second implementation of a
|
|
6
|
+
* seal gets written next to the first. There is exactly one caller.
|
|
7
|
+
*/
|
|
8
|
+
import { decodeStructure1 } from "@cello-protocol/protocol-types";
|
|
9
|
+
import { buildLocalSealTerminus } from "./seal-local-terminus.js";
|
|
10
|
+
import { RELAY_GAVE_NO_ANSWER, relayRefusedUs } from "./seal-relay-silence.js";
|
|
11
|
+
import { SessionSealLeafStore } from "./session-seal-leaf-store.js";
|
|
12
|
+
/**
|
|
13
|
+
* ═══ 070-CARRIEDSEAL — THE CLOSE THAT DOES NOT NEED ANYONE ELSE TO BE AWAKE ═══
|
|
14
|
+
*
|
|
15
|
+
* Returns the escalation values for a seal closed over evidence this side already holds, or
|
|
16
|
+
* `null` when this is not that situation and the caller should fail exactly as it did before.
|
|
17
|
+
*
|
|
18
|
+
* ⚠️ `null` IS THE DEFAULT, AND THAT IS THE SAFETY PROPERTY. Every way out of here that is not a
|
|
19
|
+
* successfully written terminus returns `null`, so the caller's original refusal stands with its
|
|
20
|
+
* original reason. A bug in this method costs the receipt this order was written to save; it
|
|
21
|
+
* cannot turn a relay's ruling into a seal.
|
|
22
|
+
*
|
|
23
|
+
* The first gate is the important one: `RELAY_GAVE_NO_ANSWER` separates a relay that was not there
|
|
24
|
+
* from one that considered the leaf and declined it. Routing around a ruling is the thing a trust
|
|
25
|
+
* layer must never do, and "the submit failed" alone does not tell the two apart.
|
|
26
|
+
*/
|
|
27
|
+
export async function closeOverCarriedEvidence(deps, agentName, sessionId, cause, correlationId,
|
|
28
|
+
/**
|
|
29
|
+
* The relay's standing verdict about THIS AGENT, when there is a relay client to ask. The reason
|
|
30
|
+
* string cannot carry it — see `relayRefusedUs` — so it is passed alongside.
|
|
31
|
+
*/
|
|
32
|
+
standingRefusal) {
|
|
33
|
+
if (!RELAY_GAVE_NO_ANSWER.has(cause))
|
|
34
|
+
return null;
|
|
35
|
+
if (relayRefusedUs(standingRefusal)) {
|
|
36
|
+
/**
|
|
37
|
+
* THE RELAY ANSWERED, AND THE ANSWER WAS NO. Sealing over carried evidence here would be
|
|
38
|
+
* routing around a ruling — the relay authenticated this agent and then refused it, and that
|
|
39
|
+
* refusal is a decision about us rather than an absence of anyone to ask.
|
|
40
|
+
*/
|
|
41
|
+
deps.ctx.logger.warn("session.seal.local_terminus.relay_refused", {
|
|
42
|
+
agentName, sessionId, cause, relayReason: standingRefusal?.reason, correlationId,
|
|
43
|
+
impact: "the relay REFUSED this agent rather than being unreachable, so this side did not sign its own closing leaf. No receipt was produced and the session is untouched — closing around a refusal would put a record on the chain that the witness declined to witness.",
|
|
44
|
+
guidance: "Fix what the relay refused (cello status names it — an expired credential, a rate limit, or a capacity cap), then close again. If the relay is genuinely gone rather than refusing, the close will proceed on its own.",
|
|
45
|
+
});
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
const kp = deps.ctx.getKeyProvider(agentName);
|
|
49
|
+
if (!kp) {
|
|
50
|
+
// Not a silent skip: without this agent's key nothing here can be signed, and the operator's
|
|
51
|
+
// action ("start the agent") is different from every other reason a close fails.
|
|
52
|
+
deps.ctx.logger.warn("session.seal.local_terminus.key_unavailable", {
|
|
53
|
+
agentName, sessionId, cause, correlationId,
|
|
54
|
+
impact: "the relay could not be reached and this agent's key is not loaded, so the closing leaf could not be signed here either. No receipt was produced and nothing about the session changed.",
|
|
55
|
+
guidance: "Start the agent (cello_start_agent) and close again.",
|
|
56
|
+
});
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
const ownPubkey = new Uint8Array(await kp.getPublicKey());
|
|
60
|
+
const ownPubkeyHex = Buffer.from(ownPubkey).toString("hex");
|
|
61
|
+
const carry = deps.getSealCarry(ownPubkeyHex, sessionId);
|
|
62
|
+
/**
|
|
63
|
+
* The session id comes out of the LEAVES, not out of the caller's argument. The directory checks
|
|
64
|
+
* the terminus against the same session the carried leaves name, so reading it from anywhere
|
|
65
|
+
* else would let the two disagree — and this path exists precisely for the case where no live
|
|
66
|
+
* relay registration is around to be consulted.
|
|
67
|
+
*/
|
|
68
|
+
const first = carry[0] ? decodeStructure1(carry[0].structure1Cbor) : null;
|
|
69
|
+
if (!first?.ok) {
|
|
70
|
+
/**
|
|
71
|
+
* TWO DIFFERENT FACTS, AND THEY SEND THE OPERATOR TO DIFFERENT PLACES. An empty carry means the
|
|
72
|
+
* conversation was never witnessed; an undecodable first leaf means the record IS here and is
|
|
73
|
+
* damaged. Reporting the second as the first sends someone looking for something that is not
|
|
74
|
+
* missing.
|
|
75
|
+
*/
|
|
76
|
+
const empty = carry.length === 0;
|
|
77
|
+
deps.ctx.logger.info("session.seal.local_terminus.no_carry", {
|
|
78
|
+
agentName, sessionId, cause, carryLength: carry.length,
|
|
79
|
+
reason: empty ? "seal_carry_empty" : "seal_carry_unreadable", correlationId,
|
|
80
|
+
impact: empty
|
|
81
|
+
? "no witnessed leaf is held for this session, so there is no record to close over and no receipt to produce."
|
|
82
|
+
: "this session's first recorded leaf is on disk and cannot be decoded, so the record cannot be chained onto. The conversation is NOT missing — cello_transcript still shows it — but no receipt can be produced from this side.",
|
|
83
|
+
});
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* ⚠️ NO GENESIS, NO TERMINUS — and this used to be `?? new Uint8Array(32)`.
|
|
88
|
+
*
|
|
89
|
+
* The genesis is the session's agreed starting point, and it is what BOTH chain links fall back to
|
|
90
|
+
* for a party that has not spoken yet. Substituting thirty-two zero bytes does not fail: the
|
|
91
|
+
* directory's walk skips `prev_own_hash` for a sender's first leaf and never checks
|
|
92
|
+
* `last_seen_hash` at all, so the leaf notarizes and the counterparty — verifying against the real
|
|
93
|
+
* starting point — is the one who finds a link that does not reconcile. A silent substitution
|
|
94
|
+
* whose cost lands on the other party.
|
|
95
|
+
*
|
|
96
|
+
* The send path already refuses for exactly this reason ("no seed means no send… the honest
|
|
97
|
+
* outcome is to refuse rather than sign a chain anchored to nothing"). So does this.
|
|
98
|
+
*/
|
|
99
|
+
const genesis = deps.ctx.leafRecords.sessionGenesisPrevRoot(agentName, sessionId);
|
|
100
|
+
if (!genesis) {
|
|
101
|
+
deps.ctx.logger.warn("session.seal.local_terminus.no_genesis", {
|
|
102
|
+
agentName, sessionId, cause, correlationId,
|
|
103
|
+
impact: "this session has no recorded starting point on this machine, so a closing leaf written here could not link to anything and its place in the conversation could never be proven. Nothing was signed and the session is untouched.",
|
|
104
|
+
guidance: "Close WITH your counterparty instead — a bilateral close does not need this value. cello_transcript still shows the conversation either way.",
|
|
105
|
+
});
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
const built = await buildLocalSealTerminus({
|
|
109
|
+
carry,
|
|
110
|
+
ownPubkeyHex,
|
|
111
|
+
ownPubkey,
|
|
112
|
+
sessionIdBytes: first.fields.sessionId,
|
|
113
|
+
genesis,
|
|
114
|
+
finalRootHex: deps.ctx.getSessionTreeRootHex(agentName, sessionId),
|
|
115
|
+
closeTimestamp: Date.now(),
|
|
116
|
+
sign: async (bytes) => new Uint8Array(await kp.sign(bytes)),
|
|
117
|
+
});
|
|
118
|
+
if (!built.ok) {
|
|
119
|
+
/**
|
|
120
|
+
* ⚠️ AN ALREADY-PLACED TERMINUS IS A SUCCESS BEING REPORTED AS A FAILURE — review MEDIUM-3.
|
|
121
|
+
*
|
|
122
|
+
* `seal_carry_own_ctrl_present` means a previous close already wrote our closing leaf. Returning
|
|
123
|
+
* `null` sent the caller to its original refusal, so an operator who closed successfully and then
|
|
124
|
+
* closed again — or whose reconnect retried for them — was told the RELAY was unavailable, for a
|
|
125
|
+
* session whose closing leaf is on their own disk. The terminus builder's own docblock says the
|
|
126
|
+
* caller must reuse the one that is there; nobody did.
|
|
127
|
+
*
|
|
128
|
+
* Reused rather than rebuilt: the leaf on disk is the one whose bytes were signed, and rebuilding
|
|
129
|
+
* would produce a different timestamp and therefore a different record.
|
|
130
|
+
*/
|
|
131
|
+
if (built.reason === "seal_carry_own_ctrl_present") {
|
|
132
|
+
const existing = carry.find((l) => l.leafKind === 0x02 && l.senderPubkeyHex === ownPubkeyHex);
|
|
133
|
+
const priorS1 = existing ? decodeStructure1(existing.structure1Cbor) : null;
|
|
134
|
+
if (existing && priorS1?.ok) {
|
|
135
|
+
const priorRootHex = deps.ctx.getSessionTree(agentName, sessionId)
|
|
136
|
+
.rootWithAppendedHex(Buffer.from(priorS1.fields.contentHash).toString("hex"));
|
|
137
|
+
deps.ctx.logger.info("session.seal.local_terminus.reused", {
|
|
138
|
+
agentName, sessionId, cause, sequenceNumber: existing.sequenceNumber, correlationId,
|
|
139
|
+
impact: "this side had already signed its closing leaf for this session, so the earlier one is carried again rather than a second being written. A second closing leaf would make the session unsealable by any directory, permanently.",
|
|
140
|
+
});
|
|
141
|
+
return { ok: true, sequenceNumber: existing.sequenceNumber, reportedRootHex: priorRootHex };
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
deps.ctx.logger.warn("session.seal.local_terminus.refused", {
|
|
145
|
+
agentName, sessionId, cause, reason: built.reason, correlationId,
|
|
146
|
+
impact: "the relay could not be reached and the record this side holds cannot be closed over as it stands, so no receipt was produced.",
|
|
147
|
+
});
|
|
148
|
+
return null;
|
|
149
|
+
}
|
|
150
|
+
if (!deps.ctx.sealLeafStore && deps.db) {
|
|
151
|
+
deps.ctx.sealLeafStore = new SessionSealLeafStore(deps.db, deps.ctx.logger);
|
|
152
|
+
}
|
|
153
|
+
const wrote = deps.ctx.sealLeafStore?.store(ownPubkeyHex, sessionId, built.leaf, Date.now()) ?? false;
|
|
154
|
+
if (!wrote) {
|
|
155
|
+
/**
|
|
156
|
+
* The store is INSERT OR IGNORE on the position, so a false means something already occupies
|
|
157
|
+
* it. Refusing is the only safe answer: carrying a leaf that is not the one on disk would
|
|
158
|
+
* present a record this daemon does not actually hold.
|
|
159
|
+
*/
|
|
160
|
+
deps.ctx.logger.warn("session.seal.local_terminus.position_taken", {
|
|
161
|
+
agentName, sessionId, sequenceNumber: built.leaf.sequenceNumber, correlationId,
|
|
162
|
+
impact: "a leaf is already recorded at the position the closing leaf would take, so it was not written and no receipt was produced.",
|
|
163
|
+
});
|
|
164
|
+
return null;
|
|
165
|
+
}
|
|
166
|
+
// The reported root is the certified-root domain — content hashes, this leaf appended. The same
|
|
167
|
+
// derivation the relay path uses one method down, so both close paths report the same value for
|
|
168
|
+
// the same leaf set.
|
|
169
|
+
const reportedRootHex = deps.ctx.getSessionTree(agentName, sessionId).rootWithAppendedHex(built.contentHashHex);
|
|
170
|
+
deps.ctx.logger.info("session.seal.local_terminus.placed", {
|
|
171
|
+
agentName, sessionId, cause,
|
|
172
|
+
sequenceNumber: built.leaf.sequenceNumber,
|
|
173
|
+
carryLength: carry.length,
|
|
174
|
+
correlationId,
|
|
175
|
+
impact: "the relay did not answer, so this side signed its own closing leaf over the record it already holds. The seal proceeds on carried evidence and needs no relay.",
|
|
176
|
+
});
|
|
177
|
+
return { ok: true, sequenceNumber: built.leaf.sequenceNumber, reportedRootHex };
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=seal-carried-close.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seal-carried-close.js","sourceRoot":"","sources":["../src/seal-carried-close.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { SealCarryLeaf } from "./session-seal-leaf-store.js";
|
|
2
|
+
/**
|
|
3
|
+
* REBUILD THE CERTIFIED ROOT FROM THIS DAEMON'S OWN LEAVES — `DOD-M15-SEALWIRE-1` bullet 2.
|
|
4
|
+
*
|
|
5
|
+
* The receipt used to prove only that the directory signed SOMETHING: the client took the sealed
|
|
6
|
+
* root off the wire, confirmed the directory's signature over those bytes, stored it, and threw
|
|
7
|
+
* away the root it had computed a step earlier. At co-signing time that means **your key signs a
|
|
8
|
+
* root you never checked.**
|
|
9
|
+
*
|
|
10
|
+
* Bullet 1 moved the certified root into the content-hash domain, which is the domain this daemon
|
|
11
|
+
* can actually rebuild — each carry leaf's `content_hash` is the leaf hash (RFC 6962 §2.1 "hash"
|
|
12
|
+
* leaves are used as-is), and the carry is ordered by the relay's canonical `sequence_number`,
|
|
13
|
+
* which is the order the directory rebuilds in.
|
|
14
|
+
*
|
|
15
|
+
* ─── Why this returns "cannot judge" instead of always answering ───────────────────────────
|
|
16
|
+
*
|
|
17
|
+
* A root comparison that is WRONG makes every session unsealable, and force-abandon — no receipt —
|
|
18
|
+
* becomes the only exit. That failure is worse than the one being guarded, and this file already
|
|
19
|
+
* carries two comments saying so about other gates.
|
|
20
|
+
*
|
|
21
|
+
* The carry is this daemon's view, and it is not guaranteed complete at the instant a certificate
|
|
22
|
+
* arrives: the counterparty's SEAL ctrl leaf is what TRIGGERS the seal, so it may not have been
|
|
23
|
+
* witnessed here yet. So completeness is checked FIRST, against the certificate's own leaf count.
|
|
24
|
+
* A short carry means this daemon cannot judge — which is a different answer from "the roots
|
|
25
|
+
* disagree", and conflating them would turn a local timing gap into an accusation.
|
|
26
|
+
*/
|
|
27
|
+
export declare function verifyCertifiedRoot(getSealCarry: (agentPubkeyHex: string, sessionIdHex: string) => SealCarryLeaf[], agentPubkeyHex: string, sessionIdHex: string, certifiedRoot: Uint8Array, certifiedLeafCount: number): {
|
|
28
|
+
verdict: "match";
|
|
29
|
+
} | {
|
|
30
|
+
verdict: "mismatch";
|
|
31
|
+
ownRootHex: string | null;
|
|
32
|
+
detail: string;
|
|
33
|
+
} | {
|
|
34
|
+
verdict: "cannot_judge";
|
|
35
|
+
reason: string;
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=seal-certified-root-check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seal-certified-root-check.d.ts","sourceRoot":"","sources":["../src/seal-certified-root-check.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,aAAa,EAAE,EAC/E,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,UAAU,EACzB,kBAAkB,EAAE,MAAM,GACzB;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,UAAU,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA6FzI"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `DOD-M15-SEALWIRE-1` / `DOD-M15-CARRIEDSEAL-1` — DOES THIS CERTIFICATE DESCRIBE WHAT I HOLD?
|
|
3
|
+
*
|
|
4
|
+
* Moved out of `session-seal.ts` whole, with no change to the verdicts, when 070-CARRIEDSEAL needed
|
|
5
|
+
* room under that file's ratchet. It belongs out here on its own terms: everything else in the seal
|
|
6
|
+
* class drives a ceremony, and this only ever ANSWERS A QUESTION about a leaf set — no transport, no
|
|
7
|
+
* lifecycle, no state of its own.
|
|
8
|
+
*
|
|
9
|
+
* Crypto refs: RFC 6962 §2.1 (Merkle hash trees).
|
|
10
|
+
*/
|
|
11
|
+
import { buildMerkleTree, merkleRoot } from "@cello-protocol/crypto";
|
|
12
|
+
import { LEAF_KIND_CTRL } from "./session-relay-client.js";
|
|
13
|
+
import { carryContentHashInputs } from "./session-node-types.js";
|
|
14
|
+
/**
|
|
15
|
+
* REBUILD THE CERTIFIED ROOT FROM THIS DAEMON'S OWN LEAVES — `DOD-M15-SEALWIRE-1` bullet 2.
|
|
16
|
+
*
|
|
17
|
+
* The receipt used to prove only that the directory signed SOMETHING: the client took the sealed
|
|
18
|
+
* root off the wire, confirmed the directory's signature over those bytes, stored it, and threw
|
|
19
|
+
* away the root it had computed a step earlier. At co-signing time that means **your key signs a
|
|
20
|
+
* root you never checked.**
|
|
21
|
+
*
|
|
22
|
+
* Bullet 1 moved the certified root into the content-hash domain, which is the domain this daemon
|
|
23
|
+
* can actually rebuild — each carry leaf's `content_hash` is the leaf hash (RFC 6962 §2.1 "hash"
|
|
24
|
+
* leaves are used as-is), and the carry is ordered by the relay's canonical `sequence_number`,
|
|
25
|
+
* which is the order the directory rebuilds in.
|
|
26
|
+
*
|
|
27
|
+
* ─── Why this returns "cannot judge" instead of always answering ───────────────────────────
|
|
28
|
+
*
|
|
29
|
+
* A root comparison that is WRONG makes every session unsealable, and force-abandon — no receipt —
|
|
30
|
+
* becomes the only exit. That failure is worse than the one being guarded, and this file already
|
|
31
|
+
* carries two comments saying so about other gates.
|
|
32
|
+
*
|
|
33
|
+
* The carry is this daemon's view, and it is not guaranteed complete at the instant a certificate
|
|
34
|
+
* arrives: the counterparty's SEAL ctrl leaf is what TRIGGERS the seal, so it may not have been
|
|
35
|
+
* witnessed here yet. So completeness is checked FIRST, against the certificate's own leaf count.
|
|
36
|
+
* A short carry means this daemon cannot judge — which is a different answer from "the roots
|
|
37
|
+
* disagree", and conflating them would turn a local timing gap into an accusation.
|
|
38
|
+
*/
|
|
39
|
+
export function verifyCertifiedRoot(getSealCarry, agentPubkeyHex, sessionIdHex, certifiedRoot, certifiedLeafCount) {
|
|
40
|
+
const carry = getSealCarry(agentPubkeyHex, sessionIdHex);
|
|
41
|
+
if (carry.length === 0)
|
|
42
|
+
return { verdict: "cannot_judge", reason: "no_carry" };
|
|
43
|
+
/**
|
|
44
|
+
* COMPLETENESS IS ESTABLISHED FROM THE CARRY'S OWN EVIDENCE, NEVER FROM THE CERTIFICATE.
|
|
45
|
+
*
|
|
46
|
+
* Review F3, and the first cut had this exactly backwards. It gated on
|
|
47
|
+
* `carry.length !== certifiedLeafCount`, where `certifiedLeafCount` is a field the DIRECTORY
|
|
48
|
+
* chooses and signs — so the party being checked controlled whether it was checked. A directory
|
|
49
|
+
* certifying a root over a different conversation had only to state a `leaf_count` that did not
|
|
50
|
+
* match, and the client answered "cannot judge" and accepted. The signature still verified,
|
|
51
|
+
* because the count is signed inside the same TBS.
|
|
52
|
+
*
|
|
53
|
+
* That is the hole §2b names in as many words: *"an attacker who wants to evade a mismatch check
|
|
54
|
+
* simply never supplies a checkable proof. Treating 'we could not tell' as harmless is the
|
|
55
|
+
* hole."* I defended against a false POSITIVE and left the false NEGATIVE one field away.
|
|
56
|
+
*
|
|
57
|
+
* The carry can answer the question by itself. A complete bilateral leaf set is:
|
|
58
|
+
* - sequences contiguous from 1 — no gap where a leaf this daemon never saw would sit; and
|
|
59
|
+
* - exactly two SEAL ctrl leaves, from two DISTINCT senders — which is what a bilateral seal
|
|
60
|
+
* is, and is the condition that says the counterparty's closing leaf has landed here.
|
|
61
|
+
* Both predicates already exist in `seal-escalation.ts`; this reuses their shape rather than
|
|
62
|
+
* inventing a second opinion about the same question.
|
|
63
|
+
*
|
|
64
|
+
* When the carry IS self-evidently complete, a `leaf_count` that disagrees is no longer "I
|
|
65
|
+
* cannot tell" — it is the certificate describing a different leaf set, which is a MISMATCH.
|
|
66
|
+
*/
|
|
67
|
+
const sequences = carry.map((l) => l.sequenceNumber).sort((a, b) => a - b);
|
|
68
|
+
const contiguousFromOne = sequences.every((n, i) => n === i + 1);
|
|
69
|
+
const ctrlSenders = new Set(carry.filter((l) => l.leafKind === LEAF_KIND_CTRL).map((l) => l.senderPubkeyHex));
|
|
70
|
+
const selfEvidentlyComplete = contiguousFromOne && ctrlSenders.size === 2;
|
|
71
|
+
/**
|
|
72
|
+
* 🚨 THE CERTIFICATE MAY COVER EXACTLY WHAT THIS SIDE HOLDS — ASK THAT FIRST.
|
|
73
|
+
*
|
|
74
|
+
* `DOD-M15-UNILATERAL-1`. The completeness predicate below describes a BILATERAL leaf set: two
|
|
75
|
+
* SEAL ctrl leaves, from two distinct senders. **A solo seal can never satisfy it**, because the
|
|
76
|
+
* counterparty is gone and never posts one — that is the entire premise. So on the solo path
|
|
77
|
+
* this returned `cannot_judge` every time, `session-ceremony.ts` refuses to co-sign on anything
|
|
78
|
+
* that is not `match`, and **the sealing party refused to co-sign its own unilateral seal.** The
|
|
79
|
+
* FROST ceremony never reached threshold, the directory never completed, and the close came back
|
|
80
|
+
* `seal_unilateral_timeout` — the label that names our own wait. Measured against the real
|
|
81
|
+
* binaries: `j-unilateral` failed on exactly this, with the directory having already verified the
|
|
82
|
+
* chain and recorded the counterparty ABSENT.
|
|
83
|
+
*
|
|
84
|
+
* Completeness was only ever needed to tell TWO KINDS OF DISAGREEMENT apart — "the roots differ
|
|
85
|
+
* because my carry is behind" (cannot judge) from "the roots differ because the directory
|
|
86
|
+
* certified something else" (mismatch). It answers nothing when the roots AGREE: a certificate
|
|
87
|
+
* whose root and leaf count are exactly what this daemon holds is, by construction, over this
|
|
88
|
+
* daemon's own leaves. Nothing is taken on trust — both values are recomputed here from the
|
|
89
|
+
* carry, and an adversary who could satisfy them would have to have produced this leaf set.
|
|
90
|
+
*
|
|
91
|
+
* Deliberately BOTH values. A count that disagreed while the root matched would be a certificate
|
|
92
|
+
* contradicting itself, and this is not the place to wave that through.
|
|
93
|
+
*/
|
|
94
|
+
const carryInputs = carryContentHashInputs(carry);
|
|
95
|
+
if (carryInputs !== null &&
|
|
96
|
+
carry.length === certifiedLeafCount &&
|
|
97
|
+
Buffer.compare(Buffer.from(merkleRoot(buildMerkleTree(carryInputs))), Buffer.from(certifiedRoot)) === 0) {
|
|
98
|
+
return { verdict: "match" };
|
|
99
|
+
}
|
|
100
|
+
if (!selfEvidentlyComplete) {
|
|
101
|
+
return {
|
|
102
|
+
verdict: "cannot_judge",
|
|
103
|
+
reason: contiguousFromOne
|
|
104
|
+
? `carry_incomplete: ${ctrlSenders.size} of 2 SEAL ctrl leaves witnessed here`
|
|
105
|
+
: `carry_noncontiguous: hold ${carry.length} leaves with a gap in the relay sequence`,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
if (carry.length !== certifiedLeafCount) {
|
|
109
|
+
// The carry proves itself complete and the certificate claims a different size, so the
|
|
110
|
+
// certificate is over a different leaf set. Accusing is correct here.
|
|
111
|
+
return {
|
|
112
|
+
verdict: "mismatch",
|
|
113
|
+
ownRootHex: null, // no root computed — the sets differ in SIZE, which is decisive on its own
|
|
114
|
+
detail: `leaf_count_disagrees: this daemon holds a provably complete ${carry.length}-leaf set, the certificate claims ${certifiedLeafCount}`,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
if (carryInputs === null) {
|
|
118
|
+
// A leaf this daemon cannot decode is a leaf it cannot judge. Never an accusation.
|
|
119
|
+
return { verdict: "cannot_judge", reason: "structure1_content_hash_unreadable" };
|
|
120
|
+
}
|
|
121
|
+
const ownRoot = merkleRoot(buildMerkleTree(carryInputs));
|
|
122
|
+
const ownRootHex = Buffer.from(ownRoot).toString("hex");
|
|
123
|
+
return Buffer.compare(Buffer.from(ownRoot), Buffer.from(certifiedRoot)) === 0
|
|
124
|
+
? { verdict: "match" }
|
|
125
|
+
: { verdict: "mismatch", ownRootHex, detail: "root_disagrees: same leaf count, different leaves or different order" };
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=seal-certified-root-check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seal-certified-root-check.js","sourceRoot":"","sources":["../src/seal-certified-root-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAGjE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,mBAAmB,CACjC,YAA+E,EAC/E,cAAsB,EACtB,YAAoB,EACpB,aAAyB,EACzB,kBAA0B;IAE1B,MAAM,KAAK,GAAG,YAAY,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IACzD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAE/E;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3E,MAAM,iBAAiB,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACjE,MAAM,WAAW,GAAG,IAAI,GAAG,CACzB,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CACjF,CAAC;IACF,MAAM,qBAAqB,GAAG,iBAAiB,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,CAAC;IAE1E;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,MAAM,WAAW,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAClD,IACE,WAAW,KAAK,IAAI;QACpB,KAAK,CAAC,MAAM,KAAK,kBAAkB;QACnC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,EACvG,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC9B,CAAC;IAED,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC3B,OAAO;YACL,OAAO,EAAE,cAAc;YACvB,MAAM,EAAE,iBAAiB;gBACvB,CAAC,CAAC,qBAAqB,WAAW,CAAC,IAAI,uCAAuC;gBAC9E,CAAC,CAAC,6BAA6B,KAAK,CAAC,MAAM,0CAA0C;SACxF,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,kBAAkB,EAAE,CAAC;QACxC,uFAAuF;QACvF,sEAAsE;QACtE,OAAO;YACL,OAAO,EAAE,UAAU;YACnB,UAAU,EAAE,IAAI,EAAE,2EAA2E;YAC7F,MAAM,EAAE,+DAA+D,KAAK,CAAC,MAAM,qCAAqC,kBAAkB,EAAE;SAC7I,CAAC;IACJ,CAAC;IACD,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzB,mFAAmF;QACnF,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,oCAAoC,EAAE,CAAC;IACnF,CAAC;IACD,MAAM,OAAO,GAAG,UAAU,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC;IACzD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC;QAC3E,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE;QACtB,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,sEAAsE,EAAE,CAAC;AAC1H,CAAC"}
|
|
@@ -64,7 +64,12 @@ export type SealCompletion = {
|
|
|
64
64
|
* will ever help is different in each, and telling someone to wait out a grace window that expired
|
|
65
65
|
* two hours ago is worse than saying nothing.
|
|
66
66
|
*/
|
|
67
|
-
|
|
67
|
+
/**
|
|
68
|
+
* 070-CARRIEDSEAL adds `already_sealed`: this session HAS a solo receipt, so the asker is late by an
|
|
69
|
+
* event rather than early by a clock. Ordinary rather than rare once a relay can be gone — with no
|
|
70
|
+
* relay there is no bilateral ceremony, so both parties close alone and the second one lands on it.
|
|
71
|
+
*/
|
|
72
|
+
export type UnilateralRefusalCause = "too_early" | "counterparty_present" | "high_stakes_evidence_required" | "already_sealed";
|
|
68
73
|
export type UnilateralResult = {
|
|
69
74
|
ok: true;
|
|
70
75
|
sealedRootHex: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seal-coordinator.d.ts","sourceRoot":"","sources":["../src/seal-coordinator.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAO1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGzC;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,cAAc,GACtB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE;AAC3C;;;;;;GAMG;GACD;IACE,OAAO,EAAE,IAAI,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;CAChC,CAAC;AA+FN;;;;;;GAMG;AACH;;;;;;;GAOG;AACH,MAAM,MAAM,sBAAsB,GAAG,WAAW,GAAG,sBAAsB,GAAG,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"seal-coordinator.d.ts","sourceRoot":"","sources":["../src/seal-coordinator.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAO1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGzC;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,cAAc,GACtB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE;AAC3C;;;;;;GAMG;GACD;IACE,OAAO,EAAE,IAAI,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;CAChC,CAAC;AA+FN;;;;;;GAMG;AACH;;;;;;;GAOG;AACH;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,WAAW,GAAG,sBAAsB,GAAG,+BAA+B,GAAG,gBAAgB,CAAC;AAwC/H,MAAM,MAAM,gBAAgB,GACxB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GACzD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,sBAAsB,CAAA;CAAE,CAAC;AAE7F,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,uEAAuE;IACvE,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,yBAAyB,CAAC;IACjE,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,WAAW,GAAG,SAAS,CAAC;IAC/D;;;;OAIG;IACH,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD;;;;OAIG;IACH,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,SAAS,KAAK,IAAI,CAAC;CACnH;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAsC5E;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,mBAAmB;yBAOjC,MAAM,aAAa,MAAM,KAAG,MAAM;;iDAYN,cAAc,KAAK,IAAI;8CAsR1B,gBAAgB,KAAK,IAAI;uCA4dpC,gBAAgB,aAAa,MAAM,kBAAkB,MAAM,KAAG,MAAM,IAAI;EAoBnH"}
|
package/dist/seal-coordinator.js
CHANGED
|
@@ -480,7 +480,8 @@ export function createSealCoordinator(deps) {
|
|
|
480
480
|
* would land on the default anyway; dropping it gets there without pretending we understood.
|
|
481
481
|
*/
|
|
482
482
|
const rawCause = frame["cause"];
|
|
483
|
-
const cause = rawCause === "too_early" || rawCause === "counterparty_present" ||
|
|
483
|
+
const cause = rawCause === "too_early" || rawCause === "counterparty_present" ||
|
|
484
|
+
rawCause === "high_stakes_evidence_required" || rawCause === "already_sealed"
|
|
484
485
|
? rawCause
|
|
485
486
|
: undefined;
|
|
486
487
|
waiter({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seal-coordinator.js","sourceRoot":"","sources":["../src/seal-coordinator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"seal-coordinator.js","sourceRoot":"","sources":["../src/seal-coordinator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seal-escalation.d.ts","sourceRoot":"","sources":["../src/seal-escalation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,QAAS,CAAC;AAEjD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3G,wBAAwB,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC,CAAC;IACrE,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IAC1D,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,WAAW,GAAG,SAAS,CAAC;IAC/D,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,kBAAkB;AACxB;;yDAEyD;AACzD,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,EAC/D,aAAa,EAAE,MAAM;AACrB;;;;;;;GAOG;AACH,IAAI,GAAE;IAAE,qBAAqB,EAAE,OAAO,CAAA;CAAqC,GAC1E,OAAO,CACN;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,YAAY,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GAChF;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAChF,
|
|
1
|
+
{"version":3,"file":"seal-escalation.d.ts","sourceRoot":"","sources":["../src/seal-escalation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,QAAS,CAAC;AAEjD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3G,wBAAwB,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC,CAAC;IACrE,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IAC1D,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,WAAW,GAAG,SAAS,CAAC;IAC/D,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,kBAAkB;AACxB;;yDAEyD;AACzD,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,EAC/D,aAAa,EAAE,MAAM;AACrB;;;;;;;GAOG;AACH,IAAI,GAAE;IAAE,qBAAqB,EAAE,OAAO,CAAA;CAAqC,GAC1E,OAAO,CACN;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,YAAY,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GAChF;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAChF,CAuQA"}
|
package/dist/seal-escalation.js
CHANGED
|
@@ -155,9 +155,20 @@ opts = { refuseOnUnusableCarry: false }) {
|
|
|
155
155
|
* So it is caught here, where the cause is known, and named. The evidence itself is not lost:
|
|
156
156
|
* `cello_transcript` still shows the conversation, and a BILATERAL close — where the counterparty
|
|
157
157
|
* co-signs rather than the directory rebuilding from a carry — is unaffected.
|
|
158
|
+
*
|
|
159
|
+
* ⚠️ THIS ONE IS **NOT** GATED ON `refuseOnUnusableCarry`, AND THAT IS THE POINT OF THE FIX.
|
|
160
|
+
*
|
|
161
|
+
* It was, and the flag is only set on the repeat-close path — so the ORDINARY
|
|
162
|
+
* `cello_close_session` escalation, which is the path almost everyone takes, sailed straight past
|
|
163
|
+
* the message written for it and spent thirty seconds arriving at `seal_unilateral_timeout`: our
|
|
164
|
+
* own wait, named as the fault. The four checks above are gated for a real reason — each can
|
|
165
|
+
* refuse a HEALTHY session early (a receipt still in flight, a bilateral seal genuinely
|
|
166
|
+
* completing). This one cannot. A partial receipt is not a timing state; no directory can ever
|
|
167
|
+
* rebuild it, on any path, at any moment. There is nothing to wait for, so there is nothing the
|
|
168
|
+
* gate would protect.
|
|
158
169
|
*/
|
|
159
170
|
const preOrderproof = seal_leaves.filter((l) => l.relay_signature !== undefined && l.relay_running_root === undefined);
|
|
160
|
-
if (
|
|
171
|
+
if (preOrderproof.length > 0) {
|
|
161
172
|
pendingUnilateralWaiters.delete(sealKey(agentName, sessionId));
|
|
162
173
|
return {
|
|
163
174
|
ok: false,
|
|
@@ -222,6 +233,24 @@ opts = { refuseOnUnusableCarry: false }) {
|
|
|
222
233
|
guidance: "The counterparty is online right now, so a solo seal is refused — it would record them ABSENT on a permanent receipt, which would be false. Nothing is wrong and nothing is lost. Close the conversation together and the seal completes BILATERALLY, which is the stronger receipt anyway. If they do go offline, retry cello_close_session then.",
|
|
223
234
|
};
|
|
224
235
|
}
|
|
236
|
+
if (uniResult.cause === "already_sealed") {
|
|
237
|
+
/**
|
|
238
|
+
* NOT A FAILURE, AND IT MUST NOT READ AS ONE — 070-CARRIEDSEAL.
|
|
239
|
+
*
|
|
240
|
+
* This side asked for a receipt and one already exists. Before the directory named this, the
|
|
241
|
+
* answer was silence for thirty seconds and then `seal_unilateral_timeout`: our own wait,
|
|
242
|
+
* reported as the fault, for a conversation that was properly sealed.
|
|
243
|
+
*
|
|
244
|
+
* It is the ORDINARY case with the relay gone. Nothing triggers a bilateral ceremony, so both
|
|
245
|
+
* parties close over their own carried evidence and whoever arrives second lands here every
|
|
246
|
+
* time. The receipt they want is already being delivered to them as the absent party.
|
|
247
|
+
*/
|
|
248
|
+
return {
|
|
249
|
+
ok: false,
|
|
250
|
+
reason: "seal_already_sealed",
|
|
251
|
+
guidance: "This conversation already has a receipt — a solo seal was notarized for it, and one session gets one. Nothing is wrong and nothing was lost. Read it with cello_sealed_receipt; it is delivered to both parties, so it will appear on this side even though the other party requested it. Do NOT force-abandon: that would forfeit a receipt you already have.",
|
|
252
|
+
};
|
|
253
|
+
}
|
|
225
254
|
if (uniResult.cause === "high_stakes_evidence_required") {
|
|
226
255
|
return {
|
|
227
256
|
ok: false,
|