@cello-protocol/daemon 0.0.196 → 0.0.198

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 (213) hide show
  1. package/dist/agent-admin-handlers.d.ts +56 -0
  2. package/dist/agent-admin-handlers.d.ts.map +1 -0
  3. package/dist/agent-admin-handlers.js +70 -0
  4. package/dist/agent-admin-handlers.js.map +1 -0
  5. package/dist/agent-handlers.d.ts +8 -7
  6. package/dist/agent-handlers.d.ts.map +1 -1
  7. package/dist/agent-handlers.js.map +1 -1
  8. package/dist/agent-selection-root.d.ts +29 -0
  9. package/dist/agent-selection-root.d.ts.map +1 -0
  10. package/dist/agent-selection-root.js +126 -0
  11. package/dist/agent-selection-root.js.map +1 -0
  12. package/dist/attendance-wiring.d.ts +44 -0
  13. package/dist/attendance-wiring.d.ts.map +1 -0
  14. package/dist/attendance-wiring.js +432 -0
  15. package/dist/attendance-wiring.js.map +1 -0
  16. package/dist/backup-restore-handlers.d.ts +10 -0
  17. package/dist/backup-restore-handlers.d.ts.map +1 -0
  18. package/dist/backup-restore-handlers.js +82 -0
  19. package/dist/backup-restore-handlers.js.map +1 -0
  20. package/dist/boot-agents.d.ts +64 -0
  21. package/dist/boot-agents.d.ts.map +1 -0
  22. package/dist/boot-agents.js +241 -0
  23. package/dist/boot-agents.js.map +1 -0
  24. package/dist/boot-connection-state.d.ts +40 -0
  25. package/dist/boot-connection-state.d.ts.map +1 -0
  26. package/dist/boot-connection-state.js +136 -0
  27. package/dist/boot-connection-state.js.map +1 -0
  28. package/dist/boot-core.d.ts +36 -0
  29. package/dist/boot-core.d.ts.map +1 -0
  30. package/dist/boot-core.js +292 -0
  31. package/dist/boot-core.js.map +1 -0
  32. package/dist/boot-parked-content.d.ts +34 -0
  33. package/dist/boot-parked-content.d.ts.map +1 -0
  34. package/dist/boot-parked-content.js +527 -0
  35. package/dist/boot-parked-content.js.map +1 -0
  36. package/dist/boot-sweeps.d.ts +22 -0
  37. package/dist/boot-sweeps.d.ts.map +1 -0
  38. package/dist/boot-sweeps.js +50 -0
  39. package/dist/boot-sweeps.js.map +1 -0
  40. package/dist/connection-agents.d.ts +16 -0
  41. package/dist/connection-agents.d.ts.map +1 -0
  42. package/dist/connection-agents.js +68 -0
  43. package/dist/connection-agents.js.map +1 -0
  44. package/dist/content-park.d.ts.map +1 -1
  45. package/dist/content-park.js +274 -25
  46. package/dist/content-park.js.map +1 -1
  47. package/dist/daemon-handle.d.ts +57 -0
  48. package/dist/daemon-handle.d.ts.map +1 -0
  49. package/dist/daemon-handle.js +2 -0
  50. package/dist/daemon-handle.js.map +1 -0
  51. package/dist/daemon-status-report.d.ts +40 -0
  52. package/dist/daemon-status-report.d.ts.map +1 -0
  53. package/dist/daemon-status-report.js +78 -0
  54. package/dist/daemon-status-report.js.map +1 -0
  55. package/dist/daemon.d.ts +5 -66
  56. package/dist/daemon.d.ts.map +1 -1
  57. package/dist/daemon.js +332 -4894
  58. package/dist/daemon.js.map +1 -1
  59. package/dist/delivery-open-registry.d.ts +1 -1
  60. package/dist/delivery-open-registry.js +1 -1
  61. package/dist/directory-connect.d.ts +27 -0
  62. package/dist/directory-connect.d.ts.map +1 -0
  63. package/dist/directory-connect.js +98 -0
  64. package/dist/directory-connect.js.map +1 -0
  65. package/dist/disconnect-cleanup.d.ts +45 -0
  66. package/dist/disconnect-cleanup.d.ts.map +1 -0
  67. package/dist/disconnect-cleanup.js +65 -0
  68. package/dist/disconnect-cleanup.js.map +1 -0
  69. package/dist/document-surface.d.ts +32 -0
  70. package/dist/document-surface.d.ts.map +1 -0
  71. package/dist/document-surface.js +150 -0
  72. package/dist/document-surface.js.map +1 -0
  73. package/dist/document-wiring.d.ts +53 -0
  74. package/dist/document-wiring.d.ts.map +1 -0
  75. package/dist/document-wiring.js +323 -0
  76. package/dist/document-wiring.js.map +1 -0
  77. package/dist/held-content.d.ts +7 -3
  78. package/dist/held-content.d.ts.map +1 -1
  79. package/dist/held-content.js.map +1 -1
  80. package/dist/inbound-sessions.d.ts +9 -1
  81. package/dist/inbound-sessions.d.ts.map +1 -1
  82. package/dist/inbound-sessions.js +9 -1
  83. package/dist/inbound-sessions.js.map +1 -1
  84. package/dist/index.d.ts +1 -2
  85. package/dist/index.d.ts.map +1 -1
  86. package/dist/index.js +1 -2
  87. package/dist/index.js.map +1 -1
  88. package/dist/ipc-surface.d.ts +44 -0
  89. package/dist/ipc-surface.d.ts.map +1 -0
  90. package/dist/ipc-surface.js +106 -0
  91. package/dist/ipc-surface.js.map +1 -0
  92. package/dist/network-directory-node.d.ts +0 -18
  93. package/dist/network-directory-node.d.ts.map +1 -1
  94. package/dist/network-directory-node.js +1 -38
  95. package/dist/network-directory-node.js.map +1 -1
  96. package/dist/notification-handlers.d.ts.map +1 -1
  97. package/dist/notification-handlers.js +2 -0
  98. package/dist/notification-handlers.js.map +1 -1
  99. package/dist/operator-guidance.d.ts +25 -0
  100. package/dist/operator-guidance.d.ts.map +1 -0
  101. package/dist/operator-guidance.js +50 -0
  102. package/dist/operator-guidance.js.map +1 -0
  103. package/dist/park-recovery.d.ts +22 -1
  104. package/dist/park-recovery.d.ts.map +1 -1
  105. package/dist/park-recovery.js.map +1 -1
  106. package/dist/park-refusals.d.ts +147 -0
  107. package/dist/park-refusals.d.ts.map +1 -0
  108. package/dist/park-refusals.js +331 -0
  109. package/dist/park-refusals.js.map +1 -0
  110. package/dist/refusal-notices.d.ts.map +1 -1
  111. package/dist/refusal-notices.js +22 -2
  112. package/dist/refusal-notices.js.map +1 -1
  113. package/dist/refusal-reasons.d.ts +13 -0
  114. package/dist/refusal-reasons.d.ts.map +1 -1
  115. package/dist/refusal-reasons.js +19 -0
  116. package/dist/refusal-reasons.js.map +1 -1
  117. package/dist/register-handler.d.ts +8 -7
  118. package/dist/register-handler.d.ts.map +1 -1
  119. package/dist/register-handler.js.map +1 -1
  120. package/dist/session-content-context.d.ts +144 -0
  121. package/dist/session-content-context.d.ts.map +1 -0
  122. package/dist/session-content-context.js +2 -0
  123. package/dist/session-content-context.js.map +1 -0
  124. package/dist/session-content-handlers.d.ts.map +1 -1
  125. package/dist/session-content-handlers.js +2 -0
  126. package/dist/session-content-handlers.js.map +1 -1
  127. package/dist/session-content-ingest.d.ts +209 -0
  128. package/dist/session-content-ingest.d.ts.map +1 -0
  129. package/dist/session-content-ingest.js +2216 -0
  130. package/dist/session-content-ingest.js.map +1 -0
  131. package/dist/session-content-send.d.ts +184 -0
  132. package/dist/session-content-send.d.ts.map +1 -0
  133. package/dist/session-content-send.js +1300 -0
  134. package/dist/session-content-send.js.map +1 -0
  135. package/dist/session-lifecycle.d.ts +303 -0
  136. package/dist/session-lifecycle.d.ts.map +1 -0
  137. package/dist/session-lifecycle.js +1643 -0
  138. package/dist/session-lifecycle.js.map +1 -0
  139. package/dist/session-node-factory.d.ts +18 -0
  140. package/dist/session-node-factory.d.ts.map +1 -0
  141. package/dist/session-node-factory.js +182 -0
  142. package/dist/session-node-factory.js.map +1 -0
  143. package/dist/session-node-manager.d.ts +68 -766
  144. package/dist/session-node-manager.d.ts.map +1 -1
  145. package/dist/session-node-manager.js +966 -7940
  146. package/dist/session-node-manager.js.map +1 -1
  147. package/dist/session-node-types.d.ts +30 -0
  148. package/dist/session-node-types.d.ts.map +1 -1
  149. package/dist/session-node-types.js.map +1 -1
  150. package/dist/session-notify.d.ts +46 -0
  151. package/dist/session-notify.d.ts.map +1 -0
  152. package/dist/session-notify.js +115 -0
  153. package/dist/session-notify.js.map +1 -0
  154. package/dist/session-read-handlers.d.ts.map +1 -1
  155. package/dist/session-read-handlers.js +0 -1
  156. package/dist/session-read-handlers.js.map +1 -1
  157. package/dist/session-relay.d.ts +361 -0
  158. package/dist/session-relay.d.ts.map +1 -0
  159. package/dist/session-relay.js +1471 -0
  160. package/dist/session-relay.js.map +1 -0
  161. package/dist/session-salt-agreement.d.ts +0 -7
  162. package/dist/session-salt-agreement.d.ts.map +1 -1
  163. package/dist/session-salt-agreement.js +0 -7
  164. package/dist/session-salt-agreement.js.map +1 -1
  165. package/dist/session-salts.d.ts +13 -0
  166. package/dist/session-salts.d.ts.map +1 -1
  167. package/dist/session-salts.js +13 -0
  168. package/dist/session-salts.js.map +1 -1
  169. package/dist/session-seal.d.ts +336 -0
  170. package/dist/session-seal.d.ts.map +1 -0
  171. package/dist/session-seal.js +948 -0
  172. package/dist/session-seal.js.map +1 -0
  173. package/dist/session-views.d.ts +46 -0
  174. package/dist/session-views.d.ts.map +1 -0
  175. package/dist/session-views.js +197 -0
  176. package/dist/session-views.js.map +1 -0
  177. package/dist/signal-handlers.d.ts +66 -0
  178. package/dist/signal-handlers.d.ts.map +1 -0
  179. package/dist/signal-handlers.js +975 -0
  180. package/dist/signal-handlers.js.map +1 -0
  181. package/dist/signaling-wiring.d.ts +100 -0
  182. package/dist/signaling-wiring.d.ts.map +1 -0
  183. package/dist/signaling-wiring.js +392 -0
  184. package/dist/signaling-wiring.js.map +1 -0
  185. package/dist/start-agent.d.ts +64 -0
  186. package/dist/start-agent.d.ts.map +1 -0
  187. package/dist/start-agent.js +136 -0
  188. package/dist/start-agent.js.map +1 -0
  189. package/dist/status-handler.d.ts +46 -0
  190. package/dist/status-handler.d.ts.map +1 -0
  191. package/dist/status-handler.js +58 -0
  192. package/dist/status-handler.js.map +1 -0
  193. package/dist/test-handlers.d.ts +62 -0
  194. package/dist/test-handlers.d.ts.map +1 -0
  195. package/dist/test-handlers.js +239 -0
  196. package/dist/test-handlers.js.map +1 -0
  197. package/dist/types.d.ts +0 -11
  198. package/dist/types.d.ts.map +1 -1
  199. package/dist/types.js +0 -12
  200. package/dist/types.js.map +1 -1
  201. package/dist/unresolved-nodes-report.d.ts +14 -0
  202. package/dist/unresolved-nodes-report.d.ts.map +1 -0
  203. package/dist/unresolved-nodes-report.js +96 -0
  204. package/dist/unresolved-nodes-report.js.map +1 -0
  205. package/dist/who-resolver.d.ts +15 -0
  206. package/dist/who-resolver.d.ts.map +1 -0
  207. package/dist/who-resolver.js +46 -0
  208. package/dist/who-resolver.js.map +1 -0
  209. package/dist/wire-content-hash.d.ts +0 -2
  210. package/dist/wire-content-hash.d.ts.map +1 -1
  211. package/dist/wire-content-hash.js +0 -4
  212. package/dist/wire-content-hash.js.map +1 -1
  213. package/package.json +5 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signal-handlers.js","sourceRoot":"","sources":["../src/signal-handlers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * One directory signaling stream per agent, authenticated as that agent.
3
+ *
4
+ * The directory routes EVERY frame — `dkg_complete`, `register_success`, an inbound
5
+ * `session_assignment`, a seal — by the pubkey that authenticated the stream it arrived on. So each
6
+ * agent must hold its own; there is no shared connection borrowing one agent's identity. The single
7
+ * shared manager that appears below exists only for the in-process test path.
8
+ *
9
+ * ⚠️ NINETEEN DEPENDENCIES — seven over the order's bound, and the number is COUNTED, not typed:
10
+ * `signaling-wiring-deps.test.ts` asserts it against the interface, because the first two versions
11
+ * of this sentence said fourteen and eighteen and disagreed with each other.
12
+ *
13
+ * It is one constructor, not a missed seam. `getAgentSignaling` is the sole entry point that touches
14
+ * all nineteen, and it is not a lookup: for an unknown agent it CONSTRUCTS a manager and wires seven
15
+ * things onto it in one uninterruptible sequence — connect, session ceremony, seal ceremony, seal
16
+ * listeners, session offer, and the two inbound handlers. Any split leaves a manager observably
17
+ * half-wired between two calls, which is the failure the CONN-001 comments below spend forty lines
18
+ * describing. The four small returns look separable and are not: three of them read
19
+ * `perAgentSignaling`, which only `getAgentSignaling` fills, so extracting them means exporting the
20
+ * map instead.
21
+ *
22
+ * ⚠️ TWO VALUES ARE GETTERS, AND THE REASON IS **CORRECTNESS, NOT BLAST RADIUS**.
23
+ * `getWirePerAgentSessionInbound` and `getHandleTrustSignalPickup` come from `createInboundSessions`,
24
+ * built ~1,200 lines BELOW this wiring. They are `const`, so passing them by value does not go
25
+ * quiet — it throws `ReferenceError: Cannot access ... before initialization` and the daemon dies at
26
+ * boot with the right name in the message. **The silent shape is a `let x;` that is still
27
+ * `undefined`**, which is what unit 4 hit and why its defect survived 5,003 green tests. Do not read
28
+ * this comment as "late binding is always silent"; the detection rule is the DECLARATION, and `let`
29
+ * is the one that hides.
30
+ *
31
+ * ⚠️ ONE CONSUMER IS BUILT BEFORE THIS MODULE. `createSealFlows` takes `signalingFor` and `sendOver`,
32
+ * and it is constructed above this call, so those two arrive as lambdas that resolve here at call
33
+ * time. `dropAgentSignaling` is passed by value — its consumers are built ~1,900 lines below, so
34
+ * there is nothing to defer.
35
+ */
36
+ import { SignalingManager } from "@cello-protocol/transport";
37
+ import type { CelloNode, IDirectoryChallengeVerifier } from "@cello-protocol/transport";
38
+ import type { SessionNodeManager } from "./session-node-manager.js";
39
+ import type { LoadedAgent } from "./agent-loader.js";
40
+ import type { DirectorySignalingState, Logger } from "./types.js";
41
+ import type { DbRegistrationPersistence } from "./db-identity-store.js";
42
+ import type { ConsortiumEndpoint } from "./directory-bootstrap.js";
43
+ import type { DirectoryEndpoint } from "./signaling-connect.js";
44
+ import type { SubmissionRetryQueue } from "./submission-retry.js";
45
+ import type { SealFailureStore } from "./seal-failure-store.js";
46
+ import type { KeyProvider } from "@cello-protocol/crypto";
47
+ /** One agent's directory stream and the libp2p node behind it. */
48
+ export interface AgentSignaling {
49
+ signaling: SignalingManager;
50
+ getNode: () => CelloNode | null;
51
+ }
52
+ export interface SignalingWiringDeps {
53
+ logger: Logger;
54
+ sessionNodeManager: SessionNodeManager;
55
+ /** The LIVE registry — a manager is built for an agent created after boot without a restart. */
56
+ loadedAgents: ReadonlyArray<LoadedAgent>;
57
+ keyProviders: Map<string, KeyProvider>;
58
+ /** Present ONLY on the in-process test path; undefined in production, where every agent dials. */
59
+ sharedSignaling: SignalingManager | undefined;
60
+ noSharedDirectoryNode: () => CelloNode | null;
61
+ verifiedManifestVersion: number;
62
+ getPersistence: (agentName: string) => DbRegistrationPersistence;
63
+ onSignalingConnected: (agentName: string) => void | Promise<void>;
64
+ resolveConsortiumRoster: () => Promise<ConsortiumEndpoint[] | null>;
65
+ failoverEndpointResolver: (() => Promise<DirectoryEndpoint | null>) | undefined;
66
+ /** Wired onto each new manager so a seal that arrives on it is heard. */
67
+ registerSealListeners: (mgr: SignalingManager, agentName: string, agentPubkeyHex: string) => void;
68
+ getFailoverEndpoint: () => Promise<{
69
+ peerId: string;
70
+ multiaddr?: string;
71
+ } | null>;
72
+ sealFailures: SealFailureStore;
73
+ submissionRetries: SubmissionRetryQueue;
74
+ challengeVerifier: IDirectoryChallengeVerifier | undefined;
75
+ directoryEndpointResolver: (() => Promise<DirectoryEndpoint | null>) | undefined;
76
+ /**
77
+ * ⚠️ GETTERS, NOT VALUES, AND THE REASON IS THE DEFECT UNIT 4 SHIPPED. Both come from
78
+ * `createInboundSessions`, constructed roughly 1,200 lines BELOW this wiring, so at construction
79
+ * they do not exist. `getAgentSignaling` reads them only when it BUILDS a manager, which is always
80
+ * later, so resolving at call time is both correct and the only thing that works. Passed by value
81
+ * they would be `undefined` forever, and a non-primary agent would never receive an inbound session
82
+ * on its own stream — the exact failure the CONN-001 block below exists to prevent.
83
+ */
84
+ getWirePerAgentSessionInbound: () => (mgr: SignalingManager, agentName: string) => void;
85
+ getHandleTrustSignalPickup: () => (frame: Record<string, unknown>, keyProvider: KeyProvider, mgr: SignalingManager, agentName: string) => void | Promise<void>;
86
+ }
87
+ export declare function createSignalingWiring(deps: SignalingWiringDeps): {
88
+ perAgentSignaling: Map<string, AgentSignaling>;
89
+ getAgentSignaling: (agentName: string, agentKeyProvider: import("@cello-protocol/crypto").KeyProvider, agentPubkeyHex: string) => AgentSignaling;
90
+ waitForSignalingConnected: (mgr: SignalingManager, timeoutMs: number) => Promise<boolean>;
91
+ dropAgentSignaling: (agentName: string) => Promise<void>;
92
+ signalingFor: (agentName: string) => SignalingManager | undefined;
93
+ sendOver: (agentName: string, frame: Record<string, unknown>) => Promise<{
94
+ ok: boolean;
95
+ reason?: string;
96
+ }>;
97
+ directorySignalingStatus: () => DirectorySignalingState;
98
+ stopAllSignaling: () => Promise<void>;
99
+ };
100
+ //# sourceMappingURL=signaling-wiring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signaling-wiring.d.ts","sourceRoot":"","sources":["../src/signaling-wiring.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,392 @@
1
+ /**
2
+ * One directory signaling stream per agent, authenticated as that agent.
3
+ *
4
+ * The directory routes EVERY frame — `dkg_complete`, `register_success`, an inbound
5
+ * `session_assignment`, a seal — by the pubkey that authenticated the stream it arrived on. So each
6
+ * agent must hold its own; there is no shared connection borrowing one agent's identity. The single
7
+ * shared manager that appears below exists only for the in-process test path.
8
+ *
9
+ * ⚠️ NINETEEN DEPENDENCIES — seven over the order's bound, and the number is COUNTED, not typed:
10
+ * `signaling-wiring-deps.test.ts` asserts it against the interface, because the first two versions
11
+ * of this sentence said fourteen and eighteen and disagreed with each other.
12
+ *
13
+ * It is one constructor, not a missed seam. `getAgentSignaling` is the sole entry point that touches
14
+ * all nineteen, and it is not a lookup: for an unknown agent it CONSTRUCTS a manager and wires seven
15
+ * things onto it in one uninterruptible sequence — connect, session ceremony, seal ceremony, seal
16
+ * listeners, session offer, and the two inbound handlers. Any split leaves a manager observably
17
+ * half-wired between two calls, which is the failure the CONN-001 comments below spend forty lines
18
+ * describing. The four small returns look separable and are not: three of them read
19
+ * `perAgentSignaling`, which only `getAgentSignaling` fills, so extracting them means exporting the
20
+ * map instead.
21
+ *
22
+ * ⚠️ TWO VALUES ARE GETTERS, AND THE REASON IS **CORRECTNESS, NOT BLAST RADIUS**.
23
+ * `getWirePerAgentSessionInbound` and `getHandleTrustSignalPickup` come from `createInboundSessions`,
24
+ * built ~1,200 lines BELOW this wiring. They are `const`, so passing them by value does not go
25
+ * quiet — it throws `ReferenceError: Cannot access ... before initialization` and the daemon dies at
26
+ * boot with the right name in the message. **The silent shape is a `let x;` that is still
27
+ * `undefined`**, which is what unit 4 hit and why its defect survived 5,003 green tests. Do not read
28
+ * this comment as "late binding is always silent"; the detection rule is the DECLARATION, and `let`
29
+ * is the one that hides.
30
+ *
31
+ * ⚠️ ONE CONSUMER IS BUILT BEFORE THIS MODULE. `createSealFlows` takes `signalingFor` and `sendOver`,
32
+ * and it is constructed above this call, so those two arrive as lambdas that resolve here at call
33
+ * time. `dropAgentSignaling` is passed by value — its consumers are built ~1,900 lines below, so
34
+ * there is nothing to defer.
35
+ */
36
+ import { SignalingManager } from "@cello-protocol/transport";
37
+ import { createSignalingConnect } from "./signaling-connect.js";
38
+ import { wireSessionCeremonyHandler, wireSessionOfferHandler, wireSealCeremonyHandler } from "./session-ceremony.js";
39
+ import { relayOnlyState } from "./relay-only.js";
40
+ export function createSignalingWiring(deps) {
41
+ const { logger, sessionNodeManager, loadedAgents, keyProviders, sharedSignaling, noSharedDirectoryNode, verifiedManifestVersion, getPersistence, onSignalingConnected, resolveConsortiumRoster, failoverEndpointResolver, getFailoverEndpoint, sealFailures, submissionRetries, challengeVerifier, directoryEndpointResolver, registerSealListeners, getWirePerAgentSessionInbound, getHandleTrustSignalPickup, } = deps;
42
+ // ─── Per-agent directory signaling (CONN-001: one signaling stream per agent) ──
43
+ // CELLO-M7-CONN-001 (DOD-CONN-1): the directory routes EVERY signaling frame —
44
+ // dkg_complete, register_success, inbound session_assignment, seal — by the pubkey that
45
+ // AUTHENTICATED the stream it arrived on. So each agent MUST get its OWN directory stream,
46
+ // authenticated as itself. There is no shared "keystone" connection borrowing one agent's
47
+ // identity. In production every agent has its own manager (built below); the only shared
48
+ // manager is the in-process test path's `sharedSignaling`. Managers are created lazily (on
49
+ // first registration / online / create) and kept connected for the agent's directory presence.
50
+ const perAgentSignaling = new Map();
51
+ /**
52
+ * Return the directory signaling stream for `agentName`, authenticated as that agent.
53
+ * Production: a dedicated per-agent manager (created + cached on first use). Test /
54
+ * backward-compat path (no directoryEndpointResolver): the single shared manager.
55
+ *
56
+ * CONN-001 (DOD-CONN-2): the per-agent manager wires BOTH registration AND inbound session
57
+ * handlers (session_assignment / seal_interrupted_request) via wirePerAgentSessionInbound,
58
+ * so a non-primary agent RECEIVES inbound sessions on its own stream. Attaching them to the
59
+ * primary (keystone) only would leave every other agent unable to receive.
60
+ */
61
+ function getAgentSignaling(agentName, agentKeyProvider, agentPubkeyHex) {
62
+ // CONN-001: test / backward-compat path — a single shared manager (no per-agent isolation;
63
+ // a single injected signalingConnect). In production sharedSignaling is undefined and every
64
+ // agent builds its own dedicated manager below.
65
+ if (sharedSignaling) {
66
+ return { signaling: sharedSignaling, getNode: noSharedDirectoryNode };
67
+ }
68
+ const existing = perAgentSignaling.get(agentName);
69
+ if (existing)
70
+ return existing;
71
+ // Unreachable in practice: sharedSignaling is defined iff directoryEndpointResolver is absent, and
72
+ // the sharedSignaling branch above already returned. This narrows the resolver for the type-checker
73
+ // and is a defensive guard.
74
+ if (!directoryEndpointResolver) {
75
+ throw new Error("getAgentSignaling: no directory endpoint resolver configured (and no shared manager)");
76
+ }
77
+ // FINDING-4: dial through the roster-aware failover resolver so this agent's signaling
78
+ // stream routes around a down primary node. (failoverEndpointResolver is defined here
79
+ // because it is built iff directoryEndpointResolver is — guarded non-null just above.)
80
+ const resolver = failoverEndpointResolver ?? directoryEndpointResolver;
81
+ let nodeRef = null;
82
+ const connect = createSignalingConnect({
83
+ getDirectoryEndpoint: resolver,
84
+ getAuthIdentity: () => ({ keyProvider: agentKeyProvider, pubkeyHex: agentPubkeyHex }),
85
+ logger,
86
+ challengeVerifier,
87
+ getManifestVersion: () => verifiedManifestVersion,
88
+ publishNode: (n) => {
89
+ nodeRef = n;
90
+ },
91
+ // DOD-NAT-REACHABILITY-1 (Phase 2): the directory's relay pool arrives with
92
+ // signaling_auth_ok — feed it to the session node manager so this agent's
93
+ // standing receiver reserves with those relays (and rebuilds if it came up
94
+ // deaf because agent-online raced ahead of this connect).
95
+ onRelayEndpoints: (endpoints) => {
96
+ sessionNodeManager.setDirectoryRelayEndpoints(agentName, endpoints.map((e) => ({ relayPeerId: e.peerId, relayAddrs: e.addrs })));
97
+ },
98
+ // DOD-M15-RELAYSLOTS-1: and the credential those relays require. Same frame, same cadence as
99
+ // the endpoints above — every connect and every reconnect, which is what keeps a token that
100
+ // expires within the hour current for a receiver that lives much longer than that.
101
+ onOnlineToken: (token) => {
102
+ sessionNodeManager.setDirectoryOnlineToken(agentName, token);
103
+ },
104
+ // Review M1: and when there is none, WHY — so the operator surface can say "this directory
105
+ // does not know this agent" instead of "check your directory connection" about a connection
106
+ // that just succeeded.
107
+ onOnlineTokenAbsent: (reason) => {
108
+ sessionNodeManager.setDirectoryOnlineTokenAbsent(agentName, reason);
109
+ },
110
+ });
111
+ const mgr = new SignalingManager({
112
+ connect,
113
+ logger,
114
+ maxReconnectAttempts: Number.MAX_SAFE_INTEGER,
115
+ maxBackoffMs: 30_000,
116
+ // Two things happen when this agent's directory signaling reaches 'connected' (the first
117
+ // connect AND every reconnect after a drop), and the ORDER is the contract — see
118
+ // reconnect-drain.ts.
119
+ //
120
+ // RE-REGISTER THE STANDING RECEIVER (2026-07-31 incident). The receiver's LIFETIME is tied to
121
+ // this daemon; its REGISTRATION is tied to this stream, and the stream turns over roughly
122
+ // every 70 seconds. ensureStandingReceiverForAgent ran only at agent start, so 46 of 48
123
+ // reconnects in one hour left every agent unregistered — the directory then answers
124
+ // `targetStreamFound: false` and a session request fails with `target_offline`, while
125
+ // `cello status`, `agent.online` and the directory's own agent_presence all still report the
126
+ // agent healthy. Only a daemon restart recovered it.
127
+ //
128
+ // THEN DRAIN (M8C-RELAYWAKE-1, "check relay on wakeup"): re-pull this agent's parked mailbox
129
+ // from every relay it has session history with, so a message parked while signaling was down
130
+ // is not left until the next agent start. The drain needs the node the ensure builds, which
131
+ // is why it no longer runs beside it.
132
+ //
133
+ // AND THIRD, DOD-M15-ENDORSE-RETRY-1: re-send any sealed submission that reached no node.
134
+ // Deliberately outside `createReconnectDrain`'s ensure→drain contract and after it: that
135
+ // ordering exists because the drain needs the standing receiver the ensure rebuilds, and a
136
+ // submission needs neither — it needs only the stream that just came up.
137
+ onConnected: () => {
138
+ onSignalingConnected(agentName);
139
+ submissionRetries.onSignalingConnected(agentName);
140
+ },
141
+ });
142
+ const entry = { signaling: mgr, getNode: () => nodeRef };
143
+ perAgentSignaling.set(agentName, entry);
144
+ logger.info("agent.signaling.created", { agentName, agentPubkey: agentPubkeyHex });
145
+ // DOD-SPINE-5: answer the directory's delegated-signing `ceremony_request` on THIS
146
+ // agent's stream (the session FROST ceremony — the per-agent counterpart to SPINE-4's
147
+ // registration routing). Unregistered implicitly when the manager is stopped.
148
+ wireSessionCeremonyHandler({
149
+ agentName,
150
+ persistence: getPersistence(agentName),
151
+ agentPubkeyHex,
152
+ // DOD-M15-SEALWIRE-1 bullet 2 (review F1): the co-sign path must check the root before this
153
+ // agent's key endorses it. Same predicate as the receiving path — one implementation, so the
154
+ // two halves cannot drift about what a mismatch is.
155
+ verifyCertifiedRoot: (pub, sid, root, leaves) => sessionNodeManager.verifyCertifiedRoot(pub, sid, root, leaves),
156
+ keyProvider: agentKeyProvider,
157
+ getNode: entry.getNode,
158
+ getDirectoryEndpoint: getFailoverEndpoint,
159
+ getConsortiumEndpoints: resolveConsortiumRoster,
160
+ signaling: mgr,
161
+ logger,
162
+ // DOD-M15-SEALPARTIES-1: where a dead seal ceremony leaves its mark, so `cello_sealed_receipt`
163
+ // can say it FAILED and why instead of falling through to "no receipt yet".
164
+ recordSealFailure: (name, sid, reason) => sealFailures.record(name, sid, reason, new Date().toISOString(), "unresolved"),
165
+ });
166
+ // DOD-SPINE-7: coordinate the SEAL FROST ceremony on this agent's stream too.
167
+ wireSealCeremonyHandler({
168
+ agentName,
169
+ persistence: getPersistence(agentName),
170
+ agentPubkeyHex,
171
+ // DOD-M15-SEALWIRE-1 bullet 2 (review F1): the co-sign path must check the root before this
172
+ // agent's key endorses it. Same predicate as the receiving path — one implementation, so the
173
+ // two halves cannot drift about what a mismatch is.
174
+ verifyCertifiedRoot: (pub, sid, root, leaves) => sessionNodeManager.verifyCertifiedRoot(pub, sid, root, leaves),
175
+ keyProvider: agentKeyProvider,
176
+ getNode: entry.getNode,
177
+ getDirectoryEndpoint: getFailoverEndpoint,
178
+ getConsortiumEndpoints: resolveConsortiumRoster,
179
+ signaling: mgr,
180
+ logger,
181
+ // DOD-M15-SEALPARTIES-1: where a dead seal ceremony leaves its mark, so `cello_sealed_receipt`
182
+ // can say it FAILED and why instead of falling through to "no receipt yet".
183
+ recordSealFailure: (name, sid, reason) => sealFailures.record(name, sid, reason, new Date().toISOString(), "unresolved"),
184
+ });
185
+ // DOD-SPINE-7: and resolve session_sealed for this agent's sessions on its own stream.
186
+ registerSealListeners(mgr, agentName, agentPubkeyHex);
187
+ // WIRE-002: answer the directory's session_offer on this agent's stream (advertise the
188
+ // standing-receiver session endpoint so the assignment carries a reachable counterparty).
189
+ wireSessionOfferHandler({
190
+ agentName,
191
+ getStandingReceiverEndpoint: () => sessionNodeManager.getStandingReceiverInfo(agentName),
192
+ admitOfferedDialer: (peerId, sessionIdHex) => sessionNodeManager.admitOfferedDialer(agentName, peerId, sessionIdHex),
193
+ // DOD-M15-RELAYONLY-1: lets the handler tell "no addresses because relay-only filtered them"
194
+ // from "no addresses yet", which need opposite answers — a refusal, and the pre-existing path.
195
+ isRelayOnly: () => relayOnlyState((key) => sessionNodeManager.getSetting(agentName, key), sessionNodeManager.hasDatabase()) !== "off",
196
+ signaling: mgr,
197
+ logger,
198
+ });
199
+ // CELLO-M8-TRUST-001: receive sealed trust signals pushed from the directory pickup queue on
200
+ // THIS agent's stream. Open with k_local, verify the recomputed hash against the directory
201
+ // anchor, store locally, then ACK (so the directory deletes the ciphertext). The daemon is the
202
+ // ONLY party that can open the seal (SI-001); a hash mismatch is rejected without storing/ACKing.
203
+ mgr.registerInboundHandler((frame) => {
204
+ if (frame["type"] !== "trust_signal_pickup")
205
+ return;
206
+ void getHandleTrustSignalPickup()(frame, agentKeyProvider, mgr, agentName);
207
+ });
208
+ /**
209
+ * DOD-M15-SEALPARTIES-1 Part 0: take the relay credential off `register_success`.
210
+ *
211
+ * `onOnlineToken` above catches every signaling auth and reconnect, and misses the one case that
212
+ * matters most: a brand-new agent. Its daemon opens this very stream in order TO register (the
213
+ * DKG runs over it), so the auth that created the stream happened while the directory still had
214
+ * no profile for the key and correctly issued nothing. A healthy stream never re-authenticates,
215
+ * so without this the agent holds no relay credential for the life of the daemon — no circuit
216
+ * reservation, unwitnessed leaves, and a close that fails with `seal_persist_failed`.
217
+ *
218
+ * A frame with no token is left alone rather than clearing what is held: the directory that
219
+ * issues here is the same one whose auth_ok issues, so overwriting a good token with an absence
220
+ * would turn one directory's minting failure into a reachability outage the operator cannot
221
+ * explain. The absence is already reported by the directory's own `online_token.failed`.
222
+ */
223
+ mgr.registerInboundHandler((frame) => {
224
+ if (frame["type"] !== "register_success")
225
+ return;
226
+ const raw = frame["online_token"];
227
+ const token = raw instanceof Uint8Array ? raw : Buffer.isBuffer(raw) ? new Uint8Array(raw) : undefined;
228
+ if (token && token.length > 0) {
229
+ sessionNodeManager.setDirectoryOnlineToken(agentName, token);
230
+ logger.info("directory.online_token.received", { agentName, source: "register_success", bytes: token.length });
231
+ return;
232
+ }
233
+ logger.warn("directory.online_token.absent", {
234
+ agentName,
235
+ source: "register_success",
236
+ impact: "this agent just registered and was handed no relay online token, so no relay will " +
237
+ "let it hold a circuit reservation until its directory signaling stream reconnects and " +
238
+ "re-issues one. Until then it is reachable only over a direct connection, and a session " +
239
+ "it does hold cannot get its leaves witnessed.",
240
+ });
241
+ });
242
+ // CELLO-M7-CONN-001 (DOD-CONN-2): inbound session_assignment + seal_interrupted_request
243
+ // on THIS agent's own stream, so a non-primary agent receives inbound sessions (SPINE-5).
244
+ getWirePerAgentSessionInbound()(mgr, agentName);
245
+ return entry;
246
+ }
247
+ /** Resolve once `mgr` reaches "connected", or false on timeout. */
248
+ async function waitForSignalingConnected(mgr, timeoutMs) {
249
+ const deadline = Date.now() + timeoutMs;
250
+ while (mgr.status !== "connected" && Date.now() < deadline) {
251
+ await new Promise((r) => setTimeout(r, 100));
252
+ }
253
+ return mgr.status === "connected";
254
+ }
255
+ /**
256
+ * Stop and forget a dedicated per-agent signaling manager. Called when an agent's
257
+ * registration fails terminally — otherwise the lazily-created manager (and its
258
+ * libp2p node + effectively-unbounded reconnect loop) would keep reconnecting forever
259
+ * for an agent that is not registered/online. No-op on the test path (the shared manager is not
260
+ * stored in perAgentSignaling) and for agents with no dedicated manager. On a later retry,
261
+ * getAgentSignaling re-creates it.
262
+ */
263
+ async function dropAgentSignaling(agentName) {
264
+ const entry = perAgentSignaling.get(agentName);
265
+ if (!entry)
266
+ return;
267
+ perAgentSignaling.delete(agentName);
268
+ await entry.signaling.stop();
269
+ logger.info("agent.signaling.dropped", { agentName });
270
+ }
271
+ // CONN-001: wire a manager's session/seal/offer handlers for `agent`. Used ONLY for the
272
+ // in-process test path's shared manager — production wires these PER-AGENT in getAgentSignaling.
273
+ function wireSharedHandlers(agent, mgr) {
274
+ wireSessionCeremonyHandler({
275
+ agentName: agent.name,
276
+ persistence: getPersistence(agent.name),
277
+ agentPubkeyHex: agent.pubkey,
278
+ // DOD-M15-SEALWIRE-1 bullet 2 (review F1): gate the co-signature on the root check.
279
+ verifyCertifiedRoot: (pub, sid, root, leaves) => sessionNodeManager.verifyCertifiedRoot(pub, sid, root, leaves),
280
+ keyProvider: agent.keyProvider,
281
+ getNode: noSharedDirectoryNode,
282
+ getDirectoryEndpoint: getFailoverEndpoint,
283
+ getConsortiumEndpoints: resolveConsortiumRoster,
284
+ signaling: mgr,
285
+ logger,
286
+ // DOD-M15-SEALPARTIES-1: where a dead seal ceremony leaves its mark, so `cello_sealed_receipt`
287
+ // can say it FAILED and why instead of falling through to "no receipt yet".
288
+ recordSealFailure: (name, sid, reason) => sealFailures.record(name, sid, reason, new Date().toISOString(), "unresolved"),
289
+ });
290
+ wireSealCeremonyHandler({
291
+ agentName: agent.name,
292
+ persistence: getPersistence(agent.name),
293
+ agentPubkeyHex: agent.pubkey,
294
+ // DOD-M15-SEALWIRE-1 bullet 2 (review F1): gate the co-signature on the root check.
295
+ verifyCertifiedRoot: (pub, sid, root, leaves) => sessionNodeManager.verifyCertifiedRoot(pub, sid, root, leaves),
296
+ keyProvider: agent.keyProvider,
297
+ getNode: noSharedDirectoryNode,
298
+ getDirectoryEndpoint: getFailoverEndpoint,
299
+ getConsortiumEndpoints: resolveConsortiumRoster,
300
+ signaling: mgr,
301
+ logger,
302
+ // DOD-M15-SEALPARTIES-1: where a dead seal ceremony leaves its mark, so `cello_sealed_receipt`
303
+ // can say it FAILED and why instead of falling through to "no receipt yet".
304
+ recordSealFailure: (name, sid, reason) => sealFailures.record(name, sid, reason, new Date().toISOString(), "unresolved"),
305
+ });
306
+ wireSessionOfferHandler({
307
+ agentName: agent.name,
308
+ getStandingReceiverEndpoint: () => sessionNodeManager.getStandingReceiverInfo(agent.name),
309
+ admitOfferedDialer: (peerId, sessionIdHex) => sessionNodeManager.admitOfferedDialer(agent.name, peerId, sessionIdHex),
310
+ // DOD-M15-RELAYONLY-1 — see the note on the sibling call site above.
311
+ isRelayOnly: () => relayOnlyState((key) => sessionNodeManager.getSetting(agent.name, key), sessionNodeManager.hasDatabase()) !== "off",
312
+ signaling: mgr,
313
+ logger,
314
+ });
315
+ registerSealListeners(mgr, agent.name, agent.pubkey);
316
+ }
317
+ // CONN-001: the directory signaling manager that OWNS operations for `agentName`. In production
318
+ // that is the agent's OWN per-agent manager (authenticated as itself); on the in-process test
319
+ // path it is the single shared manager (agentName ignored). Returns undefined only when the agent
320
+ // is not loaded in production (e.g. removed mid-flow) — callers treat that as a send failure.
321
+ function signalingFor(agentName) {
322
+ if (sharedSignaling)
323
+ return sharedSignaling;
324
+ const kp = keyProviders.get(agentName);
325
+ const agent = loadedAgents.find((a) => a.name === agentName);
326
+ if (!kp || !agent)
327
+ return undefined;
328
+ return getAgentSignaling(agentName, kp, agent.pubkey).signaling;
329
+ }
330
+ // CONN-001: send a frame over the OWNING agent's directory manager (per-agent in production, the
331
+ // shared manager in tests). If the agent has no manager (e.g. removed mid-flow), return a send
332
+ // failure rather than throw — callers already branch on `!result.ok`.
333
+ async function sendOver(agentName, frame) {
334
+ const mgr = signalingFor(agentName);
335
+ if (!mgr)
336
+ return { ok: false, reason: "directory_unreachable" };
337
+ return mgr.sendRaw(frame);
338
+ }
339
+ // CONN-001: aggregate directory signaling status for `cello status`. Test path → the shared
340
+ // manager's status. Production → connected if ANY online agent's connection is connected; else
341
+ // reconnecting if any per-agent connection exists; else disconnected (no agents online → no
342
+ // connections, which is correct — there is no shared connection to be "reconnecting").
343
+ function directorySignalingStatus() {
344
+ if (sharedSignaling)
345
+ return sharedSignaling.status;
346
+ const managers = [...perAgentSignaling.values()];
347
+ // CONN-001 (fallback-finder MED): a single daemon-level field cannot fully represent N independent
348
+ // per-agent connections, but it must NOT show "connected" while any agent is severed (that would
349
+ // mask a partial directory outage — the severed agent silently never receives inbound). So report
350
+ // "connected" ONLY when every per-agent manager is connected; otherwise "reconnecting" (degraded or
351
+ // none). No managers (no agent online) → "reconnecting", matching pre-CONN-001 fresh-install
352
+ // behavior. (Per-agent connection state is the future faithful surface.)
353
+ if (managers.length === 0)
354
+ return "reconnecting";
355
+ return managers.every((m) => m.signaling.status === "connected") ? "connected" : "reconnecting";
356
+ }
357
+ // CONN-001: stop every directory signaling connection on shutdown — the shared test manager AND
358
+ // every per-agent manager — so no reconnect loop is orphaned past shutdown.
359
+ async function stopAllSignaling() {
360
+ if (sharedSignaling) {
361
+ try {
362
+ await sharedSignaling.stop();
363
+ }
364
+ catch { /* best-effort */ }
365
+ }
366
+ for (const entry of perAgentSignaling.values()) {
367
+ try {
368
+ await entry.signaling.stop();
369
+ }
370
+ catch { /* best-effort */ }
371
+ }
372
+ }
373
+ // CONN-001: test path only — wire the shared manager's session/seal handlers for the first loaded
374
+ // agent. Production wires them per-agent (getAgentSignaling). There is NO keystone identity to
375
+ // elect and no re-election machinery: the shared test manager is never removed, and in production
376
+ // a fresh create-agent brings up that agent's OWN connection (no shared door to elect into).
377
+ if (sharedSignaling && loadedAgents.length > 0) {
378
+ const first = [...loadedAgents].sort((a, b) => a.name.localeCompare(b.name))[0];
379
+ wireSharedHandlers(first, sharedSignaling);
380
+ }
381
+ return {
382
+ perAgentSignaling,
383
+ getAgentSignaling,
384
+ waitForSignalingConnected,
385
+ dropAgentSignaling,
386
+ signalingFor,
387
+ sendOver,
388
+ directorySignalingStatus,
389
+ stopAllSignaling,
390
+ };
391
+ }
392
+ //# sourceMappingURL=signaling-wiring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signaling-wiring.js","sourceRoot":"","sources":["../src/signaling-wiring.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAW7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrH,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AA8CjD,MAAM,UAAU,qBAAqB,CAAC,IAAyB;IAC7D,MAAM,EACJ,MAAM,EAAE,kBAAkB,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,qBAAqB,EAC9F,uBAAuB,EAAE,cAAc,EAAE,oBAAoB,EAAE,uBAAuB,EACtF,wBAAwB,EAAE,mBAAmB,EAAE,YAAY,EAAE,iBAAiB,EAC9E,iBAAiB,EAAE,yBAAyB,EAAE,qBAAqB,EACnE,6BAA6B,EAAE,0BAA0B,GAC1D,GAAG,IAAI,CAAC;IAET,kFAAkF;IAClF,+EAA+E;IAC/E,wFAAwF;IACxF,2FAA2F;IAC3F,0FAA0F;IAC1F,yFAAyF;IACzF,2FAA2F;IAC3F,+FAA+F;IAE/F,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAA0B,CAAC;IAE5D;;;;;;;;;OASG;IACH,SAAS,iBAAiB,CACxB,SAAiB,EACjB,gBAA8D,EAC9D,cAAsB;QAEtB,2FAA2F;QAC3F,4FAA4F;QAC5F,gDAAgD;QAChD,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;QACxE,CAAC;QACD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC9B,mGAAmG;QACnG,oGAAoG;QACpG,4BAA4B;QAC5B,IAAI,CAAC,yBAAyB,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,sFAAsF,CAAC,CAAC;QAC1G,CAAC;QACD,uFAAuF;QACvF,sFAAsF;QACtF,uFAAuF;QACvF,MAAM,QAAQ,GAAG,wBAAwB,IAAI,yBAAyB,CAAC;QACvE,IAAI,OAAO,GAAqB,IAAI,CAAC;QACrC,MAAM,OAAO,GAAG,sBAAsB,CAAC;YACrC,oBAAoB,EAAE,QAAQ;YAC9B,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,gBAAgB,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;YACrF,MAAM;YACN,iBAAiB;YACjB,kBAAkB,EAAE,GAAG,EAAE,CAAC,uBAAuB;YACjD,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;gBACjB,OAAO,GAAG,CAAC,CAAC;YACd,CAAC;YACD,4EAA4E;YAC5E,0EAA0E;YAC1E,2EAA2E;YAC3E,0DAA0D;YAC1D,gBAAgB,EAAE,CAAC,SAAS,EAAE,EAAE;gBAC9B,kBAAkB,CAAC,0BAA0B,CAC3C,SAAS,EACT,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CACvE,CAAC;YACJ,CAAC;YACD,6FAA6F;YAC7F,4FAA4F;YAC5F,mFAAmF;YACnF,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;gBACvB,kBAAkB,CAAC,uBAAuB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC/D,CAAC;YACD,2FAA2F;YAC3F,4FAA4F;YAC5F,uBAAuB;YACvB,mBAAmB,EAAE,CAAC,MAAM,EAAE,EAAE;gBAC9B,kBAAkB,CAAC,6BAA6B,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACtE,CAAC;SACF,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,gBAAgB,CAAC;YAC/B,OAAO;YACP,MAAM;YACN,oBAAoB,EAAE,MAAM,CAAC,gBAAgB;YAC7C,YAAY,EAAE,MAAM;YACpB,yFAAyF;YACzF,iFAAiF;YACjF,sBAAsB;YACtB,EAAE;YACF,8FAA8F;YAC9F,0FAA0F;YAC1F,wFAAwF;YACxF,oFAAoF;YACpF,sFAAsF;YACtF,6FAA6F;YAC7F,qDAAqD;YACrD,EAAE;YACF,6FAA6F;YAC7F,6FAA6F;YAC7F,4FAA4F;YAC5F,sCAAsC;YACtC,EAAE;YACF,0FAA0F;YAC1F,yFAAyF;YACzF,2FAA2F;YAC3F,yEAAyE;YACzE,WAAW,EAAE,GAAG,EAAE;gBAChB,oBAAoB,CAAC,SAAS,CAAC,CAAC;gBAChC,iBAAiB,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;YACpD,CAAC;SACF,CAAC,CAAC;QACH,MAAM,KAAK,GAAmB,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;QACzE,iBAAiB,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CAAC;QACnF,mFAAmF;QACnF,sFAAsF;QACtF,8EAA8E;QAC9E,0BAA0B,CAAC;YACzB,SAAS;YACT,WAAW,EAAE,cAAc,CAAC,SAAS,CAAC;YACtC,cAAc;YACd,4FAA4F;YAC5F,6FAA6F;YAC7F,oDAAoD;YACpD,mBAAmB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC;YAC/G,WAAW,EAAE,gBAAgB;YAC7B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,oBAAoB,EAAE,mBAAmB;YACzC,sBAAsB,EAAE,uBAAuB;YAC/C,SAAS,EAAE,GAAG;YACd,MAAM;YACN,+FAA+F;YAC/F,4EAA4E;YAC5E,iBAAiB,EAAE,CAAC,IAAY,EAAE,GAAW,EAAE,MAAc,EAAE,EAAE,CAC/D,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,YAAY,CAAC;SACjF,CAAC,CAAC;QACH,8EAA8E;QAC9E,uBAAuB,CAAC;YACtB,SAAS;YACT,WAAW,EAAE,cAAc,CAAC,SAAS,CAAC;YACtC,cAAc;YACd,4FAA4F;YAC5F,6FAA6F;YAC7F,oDAAoD;YACpD,mBAAmB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC;YAC/G,WAAW,EAAE,gBAAgB;YAC7B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,oBAAoB,EAAE,mBAAmB;YACzC,sBAAsB,EAAE,uBAAuB;YAC/C,SAAS,EAAE,GAAG;YACd,MAAM;YACN,+FAA+F;YAC/F,4EAA4E;YAC5E,iBAAiB,EAAE,CAAC,IAAY,EAAE,GAAW,EAAE,MAAc,EAAE,EAAE,CAC/D,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,YAAY,CAAC;SACjF,CAAC,CAAC;QACH,uFAAuF;QACvF,qBAAqB,CAAC,GAAG,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;QACtD,uFAAuF;QACvF,0FAA0F;QAC1F,uBAAuB,CAAC;YACtB,SAAS;YACT,2BAA2B,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,SAAS,CAAC;YACxF,kBAAkB,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC;YACpH,6FAA6F;YAC7F,+FAA+F;YAC/F,WAAW,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,kBAAkB,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,kBAAkB,CAAC,WAAW,EAAE,CAAC,KAAK,KAAK;YACrI,SAAS,EAAE,GAAG;YACd,MAAM;SACP,CAAC,CAAC;QACH,6FAA6F;QAC7F,2FAA2F;QAC3F,+FAA+F;QAC/F,kGAAkG;QAClG,GAAG,CAAC,sBAAsB,CAAC,CAAC,KAAK,EAAE,EAAE;YACnC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,qBAAqB;gBAAE,OAAO;YACpD,KAAK,0BAA0B,EAAE,CAAC,KAAgC,EAAE,gBAAgB,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACxG,CAAC,CAAC,CAAC;QACH;;;;;;;;;;;;;;WAcG;QACH,GAAG,CAAC,sBAAsB,CAAC,CAAC,KAAK,EAAE,EAAE;YACnC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,kBAAkB;gBAAE,OAAO;YACjD,MAAM,GAAG,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;YAClC,MAAM,KAAK,GAAG,GAAG,YAAY,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACvG,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,kBAAkB,CAAC,uBAAuB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBAC7D,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC/G,OAAO;YACT,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,+BAA+B,EAAE;gBAC3C,SAAS;gBACT,MAAM,EAAE,kBAAkB;gBAC1B,MAAM,EAAE,oFAAoF;oBAC1F,wFAAwF;oBACxF,yFAAyF;oBACzF,+CAA+C;aAClD,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,wFAAwF;QACxF,0FAA0F;QAC1F,6BAA6B,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,mEAAmE;IACnE,KAAK,UAAU,yBAAyB,CAAC,GAAqB,EAAE,SAAiB;QAC/E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,OAAO,GAAG,CAAC,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YAC3D,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,GAAG,CAAC,MAAM,KAAK,WAAW,CAAC;IACpC,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,UAAU,kBAAkB,CAAC,SAAiB;QACjD,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACpC,MAAM,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,wFAAwF;IACxF,iGAAiG;IACjG,SAAS,kBAAkB,CAAC,KAAkB,EAAE,GAAqB;QACnE,0BAA0B,CAAC;YACzB,SAAS,EAAE,KAAK,CAAC,IAAI;YACrB,WAAW,EAAE,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC;YACvC,cAAc,EAAE,KAAK,CAAC,MAAM;YAC5B,oFAAoF;YACpF,mBAAmB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC;YAC/G,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,OAAO,EAAE,qBAAqB;YAC9B,oBAAoB,EAAE,mBAAmB;YACzC,sBAAsB,EAAE,uBAAuB;YAC/C,SAAS,EAAE,GAAG;YACd,MAAM;YACN,+FAA+F;YAC/F,4EAA4E;YAC5E,iBAAiB,EAAE,CAAC,IAAY,EAAE,GAAW,EAAE,MAAc,EAAE,EAAE,CAC/D,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,YAAY,CAAC;SACjF,CAAC,CAAC;QACH,uBAAuB,CAAC;YACtB,SAAS,EAAE,KAAK,CAAC,IAAI;YACrB,WAAW,EAAE,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC;YACvC,cAAc,EAAE,KAAK,CAAC,MAAM;YAC5B,oFAAoF;YACpF,mBAAmB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC;YAC/G,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,OAAO,EAAE,qBAAqB;YAC9B,oBAAoB,EAAE,mBAAmB;YACzC,sBAAsB,EAAE,uBAAuB;YAC/C,SAAS,EAAE,GAAG;YACd,MAAM;YACN,+FAA+F;YAC/F,4EAA4E;YAC5E,iBAAiB,EAAE,CAAC,IAAY,EAAE,GAAW,EAAE,MAAc,EAAE,EAAE,CAC/D,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,YAAY,CAAC;SACjF,CAAC,CAAC;QACH,uBAAuB,CAAC;YACtB,SAAS,EAAE,KAAK,CAAC,IAAI;YACrB,2BAA2B,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAC;YACzF,kBAAkB,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC;YACrH,qEAAqE;YACrE,WAAW,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,kBAAkB,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,kBAAkB,CAAC,WAAW,EAAE,CAAC,KAAK,KAAK;YACtI,SAAS,EAAE,GAAG;YACd,MAAM;SACP,CAAC,CAAC;QACH,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACvD,CAAC;IAED,gGAAgG;IAChG,8FAA8F;IAC9F,kGAAkG;IAClG,8FAA8F;IAC9F,SAAS,YAAY,CAAC,SAAiB;QACrC,IAAI,eAAe;YAAE,OAAO,eAAe,CAAC;QAC5C,MAAM,EAAE,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QAC7D,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QACpC,OAAO,iBAAiB,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC;IAClE,CAAC;IAED,iGAAiG;IACjG,+FAA+F;IAC/F,sEAAsE;IACtE,KAAK,UAAU,QAAQ,CAAC,SAAiB,EAAE,KAA8B;QACvE,MAAM,GAAG,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC;QAChE,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,4FAA4F;IAC5F,+FAA+F;IAC/F,4FAA4F;IAC5F,uFAAuF;IACvF,SAAS,wBAAwB;QAC/B,IAAI,eAAe;YAAE,OAAO,eAAe,CAAC,MAAM,CAAC;QACnD,MAAM,QAAQ,GAAG,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC;QACjD,mGAAmG;QACnG,iGAAiG;QACjG,kGAAkG;QAClG,oGAAoG;QACpG,6FAA6F;QAC7F,yEAAyE;QACzE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,cAAc,CAAC;QACjD,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC;IAClG,CAAC;IAED,gGAAgG;IAChG,4EAA4E;IAC5E,KAAK,UAAU,gBAAgB;QAC7B,IAAI,eAAe,EAAE,CAAC;YAAC,IAAI,CAAC;gBAAC,MAAM,eAAe,CAAC,IAAI,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;QAAC,CAAC;QAC1F,KAAK,MAAM,KAAK,IAAI,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC;YAC/C,IAAI,CAAC;gBAAC,MAAM,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,kGAAkG;IAClG,+FAA+F;IAC/F,kGAAkG;IAClG,6FAA6F;IAC7F,IAAI,eAAe,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChF,kBAAkB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO;QACL,iBAAiB;QACjB,iBAAiB;QACjB,yBAAyB;QACzB,kBAAkB;QAClB,YAAY;QACZ,QAAQ;QACR,wBAAwB;QACxB,gBAAgB;KACjB,CAAC;AACJ,CAAC"}