@cello-protocol/daemon 0.0.194 → 0.0.195

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.
Files changed (103) hide show
  1. package/dist/assignment-verify.d.ts +39 -11
  2. package/dist/assignment-verify.d.ts.map +1 -1
  3. package/dist/assignment-verify.js +133 -17
  4. package/dist/assignment-verify.js.map +1 -1
  5. package/dist/authorship-verification.d.ts +70 -0
  6. package/dist/authorship-verification.d.ts.map +1 -0
  7. package/dist/authorship-verification.js +441 -0
  8. package/dist/authorship-verification.js.map +1 -0
  9. package/dist/db-identity-store.d.ts +1 -0
  10. package/dist/db-identity-store.d.ts.map +1 -1
  11. package/dist/db-identity-store.js +19 -1
  12. package/dist/db-identity-store.js.map +1 -1
  13. package/dist/held-content.d.ts +141 -0
  14. package/dist/held-content.d.ts.map +1 -0
  15. package/dist/held-content.js +388 -0
  16. package/dist/held-content.js.map +1 -0
  17. package/dist/inbound-refusals.d.ts +283 -0
  18. package/dist/inbound-refusals.d.ts.map +1 -0
  19. package/dist/inbound-refusals.js +919 -0
  20. package/dist/inbound-refusals.js.map +1 -0
  21. package/dist/inbound-sessions.d.ts.map +1 -1
  22. package/dist/inbound-sessions.js +65 -27
  23. package/dist/inbound-sessions.js.map +1 -1
  24. package/dist/initiate-session-handler.d.ts.map +1 -1
  25. package/dist/initiate-session-handler.js +63 -0
  26. package/dist/initiate-session-handler.js.map +1 -1
  27. package/dist/outbound-sessions.d.ts.map +1 -1
  28. package/dist/outbound-sessions.js +108 -8
  29. package/dist/outbound-sessions.js.map +1 -1
  30. package/dist/park-recovery.d.ts +205 -0
  31. package/dist/park-recovery.d.ts.map +1 -0
  32. package/dist/park-recovery.js +600 -0
  33. package/dist/park-recovery.js.map +1 -0
  34. package/dist/refusal-notices.d.ts +196 -0
  35. package/dist/refusal-notices.d.ts.map +1 -0
  36. package/dist/refusal-notices.js +496 -0
  37. package/dist/refusal-notices.js.map +1 -0
  38. package/dist/refusal-reasons.d.ts +11 -0
  39. package/dist/refusal-reasons.d.ts.map +1 -1
  40. package/dist/refusal-reasons.js +18 -0
  41. package/dist/refusal-reasons.js.map +1 -1
  42. package/dist/registration-manager.d.ts.map +1 -1
  43. package/dist/registration-manager.js +126 -5
  44. package/dist/registration-manager.js.map +1 -1
  45. package/dist/registration-persistence.d.ts +18 -0
  46. package/dist/registration-persistence.d.ts.map +1 -1
  47. package/dist/registration-persistence.js +6 -0
  48. package/dist/registration-persistence.js.map +1 -1
  49. package/dist/session-assignment-parser.d.ts.map +1 -1
  50. package/dist/session-assignment-parser.js +23 -1
  51. package/dist/session-assignment-parser.js.map +1 -1
  52. package/dist/session-ceremony.d.ts +12 -7
  53. package/dist/session-ceremony.d.ts.map +1 -1
  54. package/dist/session-ceremony.js +12 -7
  55. package/dist/session-ceremony.js.map +1 -1
  56. package/dist/session-ephemerals.d.ts +271 -0
  57. package/dist/session-ephemerals.d.ts.map +1 -0
  58. package/dist/session-ephemerals.js +546 -0
  59. package/dist/session-ephemerals.js.map +1 -0
  60. package/dist/session-leaf-records.d.ts +132 -0
  61. package/dist/session-leaf-records.d.ts.map +1 -0
  62. package/dist/session-leaf-records.js +320 -0
  63. package/dist/session-leaf-records.js.map +1 -0
  64. package/dist/session-liveness.d.ts +135 -0
  65. package/dist/session-liveness.d.ts.map +1 -0
  66. package/dist/session-liveness.js +347 -0
  67. package/dist/session-liveness.js.map +1 -0
  68. package/dist/session-node-manager.d.ts +300 -1670
  69. package/dist/session-node-manager.d.ts.map +1 -1
  70. package/dist/session-node-manager.js +871 -9951
  71. package/dist/session-node-manager.js.map +1 -1
  72. package/dist/session-node-types.d.ts +933 -0
  73. package/dist/session-node-types.d.ts.map +1 -0
  74. package/dist/session-node-types.js +576 -0
  75. package/dist/session-node-types.js.map +1 -0
  76. package/dist/session-queries.d.ts +476 -0
  77. package/dist/session-queries.d.ts.map +1 -0
  78. package/dist/session-queries.js +1006 -0
  79. package/dist/session-queries.js.map +1 -0
  80. package/dist/session-records.d.ts +320 -0
  81. package/dist/session-records.d.ts.map +1 -0
  82. package/dist/session-records.js +792 -0
  83. package/dist/session-records.js.map +1 -0
  84. package/dist/session-salts.d.ts +390 -0
  85. package/dist/session-salts.d.ts.map +1 -0
  86. package/dist/session-salts.js +1457 -0
  87. package/dist/session-salts.js.map +1 -0
  88. package/dist/session-schema.d.ts +30 -0
  89. package/dist/session-schema.d.ts.map +1 -0
  90. package/dist/session-schema.js +786 -0
  91. package/dist/session-schema.js.map +1 -0
  92. package/dist/standing-receivers.d.ts +280 -0
  93. package/dist/standing-receivers.d.ts.map +1 -0
  94. package/dist/standing-receivers.js +1100 -0
  95. package/dist/standing-receivers.js.map +1 -0
  96. package/dist/transport-selector.d.ts +13 -0
  97. package/dist/transport-selector.d.ts.map +1 -1
  98. package/dist/transport-selector.js.map +1 -1
  99. package/dist/witness-alerts.d.ts +40 -0
  100. package/dist/witness-alerts.d.ts.map +1 -0
  101. package/dist/witness-alerts.js +102 -0
  102. package/dist/witness-alerts.js.map +1 -0
  103. package/package.json +5 -5
@@ -155,7 +155,25 @@ export function createOutboundSessions(deps) {
155
155
  }
156
156
  }
157
157
  /** Send a session_request over `signaling` and await the assignment / error (the extracted core). */
158
- async function runSessionRequestOverSignaling(signaling, targetHex, sr, correlationId, agentName, signalFilter,
158
+ async function runSessionRequestOverSignaling(signaling, targetHex, sr, correlationId,
159
+ /**
160
+ * WHO WE ARE — name and key together, as ONE object, and the shape is the point (review F2).
161
+ *
162
+ * `ownPubkeyHex` is this agent's own K_local pubkey, hex. It is passed in rather than looked up
163
+ * here because every caller has already resolved it and already refuses (`agent_not_found`)
164
+ * when it cannot; a second lookup would invent an absence case at the one place that must not
165
+ * have one — the target check below has to compare against a real key or refuse, never against
166
+ * an empty string that happens to mismatch.
167
+ *
168
+ * ⚠️ AN OBJECT RATHER THAN TWO POSITIONAL STRINGS, because as positional parameters they sat
169
+ * adjacent to `targetHex` and `correlationId` and a swap COMPILED. Only one of the three call
170
+ * sites is unit-reachable (the cross-node one needs a live visiting connection), so a slip at
171
+ * either of the other two would have made every cross-region session refuse with
172
+ * `assignment_names_different_self` — a security-flavoured refusal for a wiring bug, on the
173
+ * exact path sovereign-node redundancy depends on, with nothing red. Named properties make that
174
+ * swap a type error instead of a test we do not have.
175
+ */
176
+ identity, signalFilter,
159
177
  /**
160
178
  * `DOD-M15-UNILATERAL-1`: opt this conversation in to the HIGH-STAKES seal tier.
161
179
  *
@@ -165,6 +183,7 @@ export function createOutboundSessions(deps) {
165
183
  * and the directory never sees it.
166
184
  */
167
185
  highStakes) {
186
+ const { agentName, ownPubkeyHex } = identity;
168
187
  let resolveFrame;
169
188
  const pending = new Promise((r) => { resolveFrame = r; });
170
189
  const unregister = signaling.registerInboundHandler((frame) => {
@@ -412,16 +431,97 @@ export function createOutboundSessions(deps) {
412
431
  * the design and enforced nowhere.
413
432
  *
414
433
  * THE BOUND, equally explicit: a THRESHOLD of this agent's own directories, colluding, could
415
- * still sign an assignment naming the wrong counterparty. That is the designed-for limit, not
416
- * the everyday one. The substitution is caught at ingest by the wrong-signer check
417
- * (`DOD-M15-FRAME-1`) and closed by relay corroboration (`DOD-M15-CORROBORATE-1`).
434
+ * still produce a VALID SIGNATURE over an assignment naming the wrong counterparty. That is
435
+ * the designed-for limit of the signature check and it does not move. What that signature can
436
+ * no longer buy them is a session: `DOD-M15-ASSIGN-TARGET-1` below compares the participants
437
+ * the slip names against the two values this daemon already holds, and refuses before
438
+ * anything dials. Ingest-time wrong-signer detection (`DOD-M15-FRAME-1`) and relay
439
+ * corroboration (`DOD-M15-CORROBORATE-1`) still run — they are now the second line, not the
440
+ * first.
418
441
  */
419
442
  const verified = await verifyAssignmentSignature(assignment, getPersistence(agentName), logger, agentName, correlationId);
420
443
  if (!verified.ok) {
421
444
  return { ok: false, reason: verified.reason, guidance: verified.guidance };
422
445
  }
446
+ /**
447
+ * DOD-M15-ASSIGN-TARGET-1 — THE SLIP MUST NAME WHO YOU ASKED FOR.
448
+ *
449
+ * A verified signature says the slip is genuine. It says nothing about WHO it is about, and
450
+ * until now nothing on the client compared `participant_b` to the pubkey the operator typed.
451
+ * A colluding quorum could name an impostor, the signature would verify, and the daemon would
452
+ * dial them.
453
+ *
454
+ * ⚠️ IT MUST BE HERE, BEFORE THE RETURN — not at ingest, where the existing wrong-signer
455
+ * check lives.
456
+ *
457
+ * ─── AND THE REASON IS NOT "the first message goes out in plaintext" (review F3) ──────────
458
+ *
459
+ * That was the premise this check was written from and IT DOES NOT HOLD IN THIS TREE, which
460
+ * is worth stating because a reader who assumed it would think this guard is holding a line
461
+ * it is not. On the initiator side the content key is agreed from a peer ephemeral that must
462
+ * verify against the session's counterparty record, and that record is the operator's own
463
+ * `target_pubkey` — not `participant_b` (`session-ephemerals.ts`). A substituted counterparty
464
+ * cannot sign a passing half, and a send with no agreed key throws rather than going out
465
+ * (`content-encryption-status.ts` states the rule as absolute). No plaintext leaves.
466
+ *
467
+ * ─── What was actually wrong, which is a better reason than the one it replaces ──────────
468
+ *
469
+ * 1. ERROR SUBSTITUTION, and it is the serious one. A substituted counterparty surfaced to
470
+ * the operator as `session.key.refused`, whose guidance names *"something in the middle of
471
+ * your connection substituting its own key"* — pointing at the relay and the network for a
472
+ * fault that was entirely the directory's. The operator was told to distrust the right
473
+ * thing for the wrong reason and sent to investigate the wrong party.
474
+ * 2. THE DIAL ITSELF DISCLOSES. We hand the impostor our session peer id and, on a direct
475
+ * address, our IP — permanently — before anything has failed.
476
+ * 3. THE SEAL ANCHOR DISAGREES WITH THE SESSION. `recordSessionGenesis` anchors the
477
+ * transcript to `participant_a`/`participant_b` while the session's own counterparty
478
+ * record holds what the operator asked for. Refusing here keeps those two provably equal.
479
+ *
480
+ * The ingest wrong-signer check still runs and still freezes on a bad reply; it is now the
481
+ * second line rather than the first, and it is not what makes this safe.
482
+ *
483
+ * Both sides of both comparisons are LOCAL values: `targetHex` is the operator's own input
484
+ * and `ownPubkeyHex` is this daemon's loaded identity. Neither is influenced by anything the
485
+ * directory returned, which is what makes the comparison worth anything.
486
+ *
487
+ * Case-insensitive because `target_pubkey` is operator input, accepted as `[0-9a-fA-F]{64}`.
488
+ */
489
+ const namedTarget = Buffer.from(assignment.participant_b.pubkey).toString("hex").toLowerCase();
490
+ if (namedTarget !== targetHex.toLowerCase()) {
491
+ logger.error("session.assignment.target_mismatch", {
492
+ agentName, correlationId,
493
+ askedForPrefix: targetHex.toLowerCase().slice(0, 16), namedPrefix: namedTarget.slice(0, 16),
494
+ impact: "the directory returned a validly-signed assignment naming a counterparty other than the one requested; it was refused before any dial, so no conversation was opened and nothing was sent",
495
+ });
496
+ return {
497
+ ok: false,
498
+ reason: "assignment_names_different_counterparty",
499
+ // ⚠️ LEAD WITH THE ATTRIBUTION, and the reason is measurable rather than stylistic (review
500
+ // F1). The directory echoes the `target_pubkey` we sent it straight back into
501
+ // `participant_b`, so an operator TYPO cannot produce this — a typo puts the same wrong
502
+ // key on both sides and matches. This fault is 100% directory-side. Guidance that opened
503
+ // by telling the operator to re-check the key sent them to the one place it cannot be.
504
+ guidance: "The directory returned a session assignment naming a counterparty other than the one you asked for. No conversation was opened and nothing you wrote was sent. This is not a typo on your side — the directory echoes back the key you sent it, so a mismatch means the node that answered departed from the protocol. Run cello_status to see which directory node answered, then retry cello_initiate_session; a different node will serve the request. Only if it repeats across nodes is it worth confirming the key with the counterparty's operator out of band.",
505
+ };
506
+ }
507
+ const namedSelf = Buffer.from(assignment.participant_a.pubkey).toString("hex").toLowerCase();
508
+ if (namedSelf !== ownPubkeyHex.toLowerCase()) {
509
+ logger.error("session.assignment.self_mismatch", {
510
+ agentName, correlationId,
511
+ ownPrefix: ownPubkeyHex.toLowerCase().slice(0, 16), namedPrefix: namedSelf.slice(0, 16),
512
+ impact: "the directory returned a validly-signed assignment putting a different agent in this agent's own seat; it was refused before any dial, so no conversation was opened and nothing was sent",
513
+ });
514
+ return {
515
+ ok: false,
516
+ reason: "assignment_names_different_self",
517
+ // Same correction as above (review F1): the directory derives `participant_a` from the key
518
+ // the signaling stream AUTHENTICATED with, not from anything the operator typed, so "check
519
+ // which agent is selected" names a cause that cannot produce this either.
520
+ guidance: "The directory returned a session assignment naming a different agent as this side of the conversation. No conversation was opened and nothing you wrote was sent. This is not a local selection problem — the directory derives this side from the key your daemon authenticated with, so a mismatch means the node that answered is brokering sessions in another agent's name. Run cello_status to see which directory node answered, then retry cello_initiate_session; a different node will serve the request.",
521
+ };
522
+ }
423
523
  logger.info("session.negotiate.assignment.received", { agentName, correlationId, signatureType: assignment.signature_type, signatureVerified: true });
424
- return { ok: true, assignment };
524
+ return { ok: true, assignment, counterpartyPrimaryHex: verified.counterpartyPrimaryHex };
425
525
  }
426
526
  finally {
427
527
  unregister();
@@ -570,7 +670,7 @@ export function createOutboundSessions(deps) {
570
670
  logger.warn("session.crossnode.failed", { agentName, brokerNode: owningNodeId, reason: "visiting_connection_unreachable", correlationId });
571
671
  return { ok: false, reason: "visiting_connection_unreachable", guidance: `Could not establish a visiting connection to the counterparty's home node (${owningNodeId}) within 10s. Retry.` };
572
672
  }
573
- const result = await runSessionRequestOverSignaling(visiting.mgr, targetHex, sr, correlationId, agentName, signalFilter, highStakes);
673
+ const result = await runSessionRequestOverSignaling(visiting.mgr, targetHex, sr, correlationId, { agentName, ownPubkeyHex: agentPubkeyHex }, signalFilter, highStakes);
574
674
  if (result.ok) {
575
675
  releaseReason = "handoff-complete";
576
676
  // Fix #1: remember the broker for this session so cello_close_session can reconnect to complete the seal.
@@ -726,7 +826,7 @@ export function createOutboundSessions(deps) {
726
826
  continue;
727
827
  }
728
828
  logger.info("session.discovery.unsupported_fallback", { agentName: ctx.agentName, correlationId: ctx.correlationId });
729
- return await runSessionRequestOverSignaling(signaling, targetHex, sr, ctx.correlationId, ctx.agentName, signalFilter, highStakes);
829
+ return await runSessionRequestOverSignaling(signaling, targetHex, sr, ctx.correlationId, { agentName: ctx.agentName, ownPubkeyHex: agentRec.pubkey }, signalFilter, highStakes);
730
830
  }
731
831
  // DIRECTORY-SIDE lookup fault (DB error / malformed reply): RETRYABLE — but a DIRECTORY fault,
732
832
  // reported truthfully as directory_unreachable, NEVER as the counterparty being offline.
@@ -783,7 +883,7 @@ export function createOutboundSessions(deps) {
783
883
  const result = action.kind === "same_node"
784
884
  // SAME-NODE: the target is on the node we're already connected to. The existing path runs
785
885
  // unchanged — ZERO visiting connections, ZERO new frames beyond the one discovery_lookup.
786
- ? await runSessionRequestOverSignaling(signaling, targetHex, sr, ctx.correlationId, ctx.agentName, signalFilter, highStakes)
886
+ ? await runSessionRequestOverSignaling(signaling, targetHex, sr, ctx.correlationId, { agentName: ctx.agentName, ownPubkeyHex: agentRec.pubkey }, signalFilter, highStakes)
787
887
  // CROSS-NODE: reach into the target's home over a transient visiting connection.
788
888
  : await runCrossNodeSetup(ctx.agentName, kp, agentRec.pubkey, action.owningNodeId, targetHex, sr, ctx.correlationId, signalFilter, highStakes);
789
889
  // RETRY triggers: (a) the broker reported target_offline (stale replicated presence or a
@@ -1 +1 @@
1
- {"version":3,"file":"outbound-sessions.js","sourceRoot":"","sources":["../src/outbound-sessions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"outbound-sessions.js","sourceRoot":"","sources":["../src/outbound-sessions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,205 @@
1
+ /**
2
+ * CELLO Daemon — MAIL THAT WAITED
3
+ *
4
+ * Split out of `session-node-manager.ts` by 036-GODFILE, Part 6. The relay store-and-forward path:
5
+ * depositing content the counterparty could not take live, recovering it when they come back, and
6
+ * the backstop sweep that drains it even when a trigger is missing.
7
+ *
8
+ * Moved verbatim, comments included.
9
+ *
10
+ * ⚠️ THE BACKSTOP SWEEP EXISTS BECAUSE THE INCIDENT WAS A MISSING TRIGGER, and a missing trigger is
11
+ * invisible: the daemon looked healthy, the content was intact on the relay, and the only thing that
12
+ * ever moved it was a human restarting the daemon. Do not delete it as redundant — the trigger-driven
13
+ * drains are what deliver, and this is what bounds the cost of the next gap in trigger coverage to
14
+ * one interval of latency.
15
+ */
16
+ import type { Logger, SessionRecord } from "./types.js";
17
+ import type { SealCarryLeaf } from "./session-seal-leaf-store.js";
18
+ import type { SessionTree } from "./session-tree.js";
19
+ import type { InboundRefusals } from "./inbound-refusals.js";
20
+ import { type ParkedDrainReason, type ParkAttempt, type ActiveSessionEntry } from "./session-node-types.js";
21
+ import { type ParkAuthFailure } from "./park-envelope.js";
22
+ /** What park recovery needs from the manager, stated explicitly rather than handed `this`. */
23
+ export interface ParkContext {
24
+ readonly logger: Logger;
25
+ readonly refusals: InboundRefusals;
26
+ shuttingDown(): boolean;
27
+ sessionKey(agentName: string, sessionId: string): string;
28
+ requireAgentId(agentName: string): string;
29
+ ownPubkeyHex(agentName: string): string | null;
30
+ /** The live session entry, when one exists. Park works for sessions that have none. */
31
+ activeEntry(key: string): ActiveSessionEntry | undefined;
32
+ /** Agents currently holding a standing receiver — the backstop sweep's population. */
33
+ agentsWithLiveReceiver(): Iterable<string>;
34
+ agentWantsReceiver(agentName: string): boolean;
35
+ getSessionRecord(agentName: string, sessionId: string): SessionRecord | null;
36
+ getSealCarry(agentName: string, sessionId: string): readonly SealCarryLeaf[];
37
+ getSessionTree(agentName: string, sessionId: string): SessionTree;
38
+ recordOrderingRecord(agentName: string, sessionId: string, structure1Cbor: Uint8Array, structure2Cbor: Uint8Array, contentHash: Uint8Array, correlationId?: string): number | null;
39
+ ingestReceivedContent(agentName: string, sessionId: string, content: Uint8Array, contentHash: Uint8Array, correlationId?: string, recoveredSeq?: number, contentHashAlgIn?: string | null): Promise<{
40
+ ok: true;
41
+ leafIndex: number;
42
+ sequenceNumber: number;
43
+ held?: boolean;
44
+ appendedCount?: number;
45
+ screenedOut?: boolean;
46
+ } | {
47
+ ok: false;
48
+ reason: string;
49
+ }>;
50
+ witnessReceivedLeaf(agentName: string, sessionId: string, contentHash: Uint8Array, structure1Cbor: Uint8Array, senderSignature: Uint8Array, leafKind: number, correlationId?: string): void;
51
+ noteAcknowledgeable(agentName: string, sessionId: string, canonicalSeq: number, contentHash: Uint8Array): void;
52
+ }
53
+ export declare class ParkRecovery {
54
+ #private;
55
+ constructor(ctx: ParkContext, parkedDrainBackstopMs: number);
56
+ /**
57
+ * Arm the backstop clock from the START of watching, not from the epoch — otherwise the first
58
+ * tick always fires a sweep on top of the install drain that just ran.
59
+ */
60
+ armBackstopClock(now: number): void;
61
+ /** Arm the park-deposit fault. Returns the count now armed. */
62
+ injectParkFault(count: number, cause?: string): number;
63
+ /** Remaining armed park faults — so a test can assert the fault was actually consumed. */
64
+ getParkFaultRemaining(): number;
65
+ /**
66
+ * MSG-001-3b (2b): inject the live content-park deposit (seal + ContentParkClient.deposit).
67
+ * Injected by the composition root (daemon.ts). When absent, a not-confirmed send still records
68
+ * the durable awaiting entry (crash backstop) but does not deposit live.
69
+ * DOD-LEAVEMSG-1 (cello-unit-reviewer HIGH fix): the hook returns a TYPED result — `{ok:true}` or
70
+ * `{ok:false, reason}` — mirroring RetryQueue's ParkFn contract. It must NEVER resolve `{ok:true}`
71
+ * merely because it didn't throw: the production hook's own failure branches (standing receiver
72
+ * unavailable, relay explicitly rejects the deposit) log-and-return without throwing, and a
73
+ * throw-only contract would silently report those as success — the exact "system lies about its
74
+ * own health" bug the reviewer caught (a park that never happened reported to the operator as
75
+ * "dispatched to relay," with the durable retry_queue backstop skipped because sendContent's own
76
+ * caller only enqueues on an honest {ok:false}).
77
+ */
78
+ setContentParkHook(fn: (args: {
79
+ agentName: string;
80
+ sessionId: string;
81
+ recipientPubkeyHex: string;
82
+ relayPeerId: string;
83
+ relayAddrs: readonly string[];
84
+ contentHashHex: string;
85
+ content: Uint8Array;
86
+ structure1Cbor?: Uint8Array;
87
+ structure2Cbor?: Uint8Array;
88
+ structure1Signature?: Uint8Array;
89
+ leafKind?: number;
90
+ contentHashAlg: string | undefined;
91
+ }) => Promise<{
92
+ ok: true;
93
+ } | {
94
+ ok: false;
95
+ reason: string;
96
+ cause?: string;
97
+ retryAfterMs?: number;
98
+ }>): void;
99
+ /**
100
+ * DOD-PARK-DRAIN-1: inject the parked-mailbox drain (daemon.ts → contentPark.autoRecoverForAgent).
101
+ *
102
+ * The manager owns the two events that mean "content may be waiting for this agent on a relay":
103
+ * a standing receiver was (re)built, and the slow backstop sweep. It does not own the drain
104
+ * itself — that needs the agent's key provider and the inbound ingest funnel. So it calls out.
105
+ *
106
+ * Injected by the composition root, not passed to the constructor: the manager is built long
107
+ * before the content park exists (content-park.ts documents why that ordering is load-bearing).
108
+ */
109
+ setParkedDrainHook(fn: (agentName: string, reason: ParkedDrainReason) => void): void;
110
+ /** Ask for a drain. Never throws — a broken drain must never cost the caller its receiver. */
111
+ fireParkedDrain(agentName: string, reason: ParkedDrainReason): void;
112
+ /**
113
+ * MSG-001-3b (2b): deposit un-confirmed content to the relay store-and-forward backstop — keyed
114
+ * to the recipient, on the SAME relay this session is witnessed by — so an offline recipient
115
+ * recovers it (at the sequence the witness already assigned, R1). Best-effort, never throws.
116
+ * DOD-LEAVEMSG-1: returns whether the deposit actually succeeded (false if no hook/relay is
117
+ * configured, or the hook rejects) so a caller with a live response to shape (sendContent) can
118
+ * distinguish "genuinely parked" from "nothing recoverable" instead of guessing. Callers that
119
+ * fire this from an async backstop with no live caller (the TTF-expiry path) may ignore the
120
+ * result — the deposit itself and its logging are unchanged either way.
121
+ */
122
+ /**
123
+ * `contentHashAlg` is `string | undefined`, NOT optional — B2b-1 review F4's shape, applied to the
124
+ * last place it was missing.
125
+ *
126
+ * Optional, dropping it at a call site was neither a typecheck error nor a test failure, because
127
+ * absent silently means `sha256` and that is the only value in play today. Measured: the
128
+ * direct-dial-fail route's mutant SURVIVED the whole daemon suite. Requiring the argument — even
129
+ * when its value is `undefined` — forces each of the three callers to state what this message was
130
+ * hashed under, so a new fourth caller cannot omit it by accident.
131
+ */
132
+ parkContent(agentName: string, sessionId: string, contentHashHex: string, content: Uint8Array, structure1Cbor: Uint8Array | undefined, structure2Cbor: Uint8Array | undefined, contentHashAlg: string | undefined, structure1Signature?: Uint8Array, parkLeafKind?: number): Promise<ParkAttempt>;
133
+ /** DOD-M12B-INDEX-1 — this agent's own K_local pubkey, for attributing its own held content.
134
+ * Null when it cannot be resolved: an UNATTRIBUTED annex row is true, a falsely attributed one
135
+ * is not, and this is the record that outlives the session. */
136
+ /**
137
+ * Test seam for `#recoverOwnSealCtrlLeaf` (documented on the method itself, below). The
138
+ * distinction it draws — "there is none" versus "I could not tell" — is the whole safety
139
+ * property, and it had no coverage at any level.
140
+ */
141
+ recoverOwnSealCtrlLeafForTest(agentName: string, sessionId: string): {
142
+ reportedRootHex: string;
143
+ sequenceNumber: number;
144
+ } | "none" | "unknown";
145
+ /**
146
+ * DOD-M12B-INTERRUPTED-ESCALATE-1 — our own SEAL ctrl leaf, if a previous run already posted one.
147
+ *
148
+ * Returns the two values a unilateral escalation runs on, rebuilt from durable state:
149
+ * the ctrl leaf's relay-assigned sequence, and the root the tree WOULD have with that leaf
150
+ * appended. The content hash cannot be recomputed — the seal payload embeds a `close_timestamp`
151
+ * — so it is read out of the signed Structure 1 the store already holds.
152
+ *
153
+ * Null when there is no own ctrl leaf, which is the ordinary first-close case.
154
+ */
155
+ recoverOwnSealCtrlLeaf(agentName: string, sessionId: string): {
156
+ reportedRootHex: string;
157
+ sequenceNumber: number;
158
+ } | "none" | "unknown";
159
+ /**
160
+ * SEC-1 — THE ONLY WAY PARKED CONTENT ENTERS THE TRANSCRIPT.
161
+ *
162
+ * Authentication and ingest are FUSED here on purpose, and must stay fused. A caller cannot ingest
163
+ * parked content without passing the signature gate, because this is the only entry point. Exposing
164
+ * a separate `decode → ingest` path — with the signature check as its own optional step — is a
165
+ * downgrade attack: an attacker omits the thing that triggers the check, and the check never runs.
166
+ * A gate the caller can skip by leaving a field out is not a gate.
167
+ *
168
+ * FAILS CLOSED. No signature / bad signature / signer is not this session's counterparty / no
169
+ * session at all → REFUSED, nothing is appended, nothing is written, and the caller MUST NOT
170
+ * confirm-delete the entry from the relay (a forgery must not be able to evict itself, and a
171
+ * genuine bug must not silently eat mail).
172
+ */
173
+ recoverParkedEntry(agentName: string, sessionId: string, recipientPubkey: Uint8Array, unsealed: Uint8Array, contentHash: Uint8Array, correlationId?: string): Promise<{
174
+ ok: true;
175
+ leafIndex: number;
176
+ sequenceNumber: number;
177
+ held?: boolean;
178
+ appendedCount?: number;
179
+ screenedOut?: boolean;
180
+ } | {
181
+ ok: false;
182
+ reason: string;
183
+ }>;
184
+ /**
185
+ * Review M4: bounded memo of parked entries we have already refused, so a mailbox stuffed with
186
+ * forgeries cannot force an unbounded unseal+verify on every reconnect. FIFO-capped — the cap
187
+ * matters more than the retention: forgetting an entry only costs one extra verification, whereas
188
+ * an unbounded map would be a memory leak fed by a remote party (the exact class the DOD-MSG-4
189
+ * review already caught once in the offered-moniker map).
190
+ */
191
+ rememberRefusedParkedEntry(key: string, reason: ParkAuthFailure): void;
192
+ /**
193
+ * DOD-PARK-DRAIN-1: the backstop sweep — every agent holding a standing receiver gets a drain
194
+ * every #parkedDrainBackstopMs, whether or not anything happened.
195
+ *
196
+ * The trigger-driven drains (agent start, receiver rebuild, signaling reconnect) are what
197
+ * actually deliver. This exists because the incident was a MISSING trigger, and a missing
198
+ * trigger is invisible: the daemon looked healthy, the content was intact on the relay, and the
199
+ * only thing that ever moved it was a human restarting the daemon. With the sweep, the worst a
200
+ * future gap in trigger coverage can cost is one interval of latency. Safe by construction —
201
+ * ingest is deduped and the relay is delete-on-confirm, so a redundant drain pulls nothing.
202
+ */
203
+ parkedDrainBackstopTick(now: number): void;
204
+ }
205
+ //# sourceMappingURL=park-recovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"park-recovery.d.ts","sourceRoot":"","sources":["../src/park-recovery.ts"],"names":[],"mappings":"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"}