@cello-protocol/daemon 0.0.197 → 0.0.199

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 (190) 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 +10 -1
  8. package/dist/agent-handlers.js.map +1 -1
  9. package/dist/agent-selection-root.d.ts +29 -0
  10. package/dist/agent-selection-root.d.ts.map +1 -0
  11. package/dist/agent-selection-root.js +126 -0
  12. package/dist/agent-selection-root.js.map +1 -0
  13. package/dist/attendance-wiring.d.ts +44 -0
  14. package/dist/attendance-wiring.d.ts.map +1 -0
  15. package/dist/attendance-wiring.js +432 -0
  16. package/dist/attendance-wiring.js.map +1 -0
  17. package/dist/backup-restore-handlers.d.ts +10 -0
  18. package/dist/backup-restore-handlers.d.ts.map +1 -0
  19. package/dist/backup-restore-handlers.js +82 -0
  20. package/dist/backup-restore-handlers.js.map +1 -0
  21. package/dist/boot-agents.d.ts +64 -0
  22. package/dist/boot-agents.d.ts.map +1 -0
  23. package/dist/boot-agents.js +241 -0
  24. package/dist/boot-agents.js.map +1 -0
  25. package/dist/boot-connection-state.d.ts +40 -0
  26. package/dist/boot-connection-state.d.ts.map +1 -0
  27. package/dist/boot-connection-state.js +136 -0
  28. package/dist/boot-connection-state.js.map +1 -0
  29. package/dist/boot-core.d.ts +36 -0
  30. package/dist/boot-core.d.ts.map +1 -0
  31. package/dist/boot-core.js +292 -0
  32. package/dist/boot-core.js.map +1 -0
  33. package/dist/boot-parked-content.d.ts +34 -0
  34. package/dist/boot-parked-content.d.ts.map +1 -0
  35. package/dist/boot-parked-content.js +527 -0
  36. package/dist/boot-parked-content.js.map +1 -0
  37. package/dist/boot-sweeps.d.ts +22 -0
  38. package/dist/boot-sweeps.d.ts.map +1 -0
  39. package/dist/boot-sweeps.js +50 -0
  40. package/dist/boot-sweeps.js.map +1 -0
  41. package/dist/connection-agents.d.ts +16 -0
  42. package/dist/connection-agents.d.ts.map +1 -0
  43. package/dist/connection-agents.js +68 -0
  44. package/dist/connection-agents.js.map +1 -0
  45. package/dist/content-park.d.ts.map +1 -1
  46. package/dist/content-park.js +274 -25
  47. package/dist/content-park.js.map +1 -1
  48. package/dist/daemon-handle.d.ts +57 -0
  49. package/dist/daemon-handle.d.ts.map +1 -0
  50. package/dist/daemon-handle.js +2 -0
  51. package/dist/daemon-handle.js.map +1 -0
  52. package/dist/daemon-status-report.d.ts +40 -0
  53. package/dist/daemon-status-report.d.ts.map +1 -0
  54. package/dist/daemon-status-report.js +78 -0
  55. package/dist/daemon-status-report.js.map +1 -0
  56. package/dist/daemon.d.ts +5 -66
  57. package/dist/daemon.d.ts.map +1 -1
  58. package/dist/daemon.js +332 -4894
  59. package/dist/daemon.js.map +1 -1
  60. package/dist/delivery-open-registry.d.ts +1 -1
  61. package/dist/delivery-open-registry.js +1 -1
  62. package/dist/directory-connect.d.ts +27 -0
  63. package/dist/directory-connect.d.ts.map +1 -0
  64. package/dist/directory-connect.js +98 -0
  65. package/dist/directory-connect.js.map +1 -0
  66. package/dist/disconnect-cleanup.d.ts +45 -0
  67. package/dist/disconnect-cleanup.d.ts.map +1 -0
  68. package/dist/disconnect-cleanup.js +65 -0
  69. package/dist/disconnect-cleanup.js.map +1 -0
  70. package/dist/document-surface.d.ts +32 -0
  71. package/dist/document-surface.d.ts.map +1 -0
  72. package/dist/document-surface.js +150 -0
  73. package/dist/document-surface.js.map +1 -0
  74. package/dist/document-wiring.d.ts +53 -0
  75. package/dist/document-wiring.d.ts.map +1 -0
  76. package/dist/document-wiring.js +323 -0
  77. package/dist/document-wiring.js.map +1 -0
  78. package/dist/inbound-sessions.d.ts +9 -1
  79. package/dist/inbound-sessions.d.ts.map +1 -1
  80. package/dist/inbound-sessions.js +9 -1
  81. package/dist/inbound-sessions.js.map +1 -1
  82. package/dist/index.d.ts +2 -2
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/index.js +4 -2
  85. package/dist/index.js.map +1 -1
  86. package/dist/ipc-surface.d.ts +44 -0
  87. package/dist/ipc-surface.d.ts.map +1 -0
  88. package/dist/ipc-surface.js +106 -0
  89. package/dist/ipc-surface.js.map +1 -0
  90. package/dist/network-directory-node.d.ts +0 -18
  91. package/dist/network-directory-node.d.ts.map +1 -1
  92. package/dist/network-directory-node.js +1 -38
  93. package/dist/network-directory-node.js.map +1 -1
  94. package/dist/notification-handlers.d.ts.map +1 -1
  95. package/dist/notification-handlers.js +2 -0
  96. package/dist/notification-handlers.js.map +1 -1
  97. package/dist/onboarding-guidance.d.ts +79 -0
  98. package/dist/onboarding-guidance.d.ts.map +1 -0
  99. package/dist/onboarding-guidance.js +95 -0
  100. package/dist/onboarding-guidance.js.map +1 -0
  101. package/dist/operator-guidance.d.ts +25 -0
  102. package/dist/operator-guidance.d.ts.map +1 -0
  103. package/dist/operator-guidance.js +50 -0
  104. package/dist/operator-guidance.js.map +1 -0
  105. package/dist/park-recovery.d.ts +22 -1
  106. package/dist/park-recovery.d.ts.map +1 -1
  107. package/dist/park-recovery.js.map +1 -1
  108. package/dist/park-refusals.d.ts +147 -0
  109. package/dist/park-refusals.d.ts.map +1 -0
  110. package/dist/park-refusals.js +331 -0
  111. package/dist/park-refusals.js.map +1 -0
  112. package/dist/refusal-notices.d.ts.map +1 -1
  113. package/dist/refusal-notices.js +22 -2
  114. package/dist/refusal-notices.js.map +1 -1
  115. package/dist/refusal-reasons.d.ts +13 -0
  116. package/dist/refusal-reasons.d.ts.map +1 -1
  117. package/dist/refusal-reasons.js +19 -0
  118. package/dist/refusal-reasons.js.map +1 -1
  119. package/dist/register-handler.d.ts +8 -7
  120. package/dist/register-handler.d.ts.map +1 -1
  121. package/dist/register-handler.js.map +1 -1
  122. package/dist/session-content-handlers.d.ts.map +1 -1
  123. package/dist/session-content-handlers.js +2 -0
  124. package/dist/session-content-handlers.js.map +1 -1
  125. package/dist/session-content-ingest.d.ts +1 -0
  126. package/dist/session-content-ingest.d.ts.map +1 -1
  127. package/dist/session-content-ingest.js +2 -2
  128. package/dist/session-content-ingest.js.map +1 -1
  129. package/dist/session-node-factory.d.ts +18 -0
  130. package/dist/session-node-factory.d.ts.map +1 -0
  131. package/dist/session-node-factory.js +182 -0
  132. package/dist/session-node-factory.js.map +1 -0
  133. package/dist/session-node-manager.d.ts +1 -0
  134. package/dist/session-node-manager.d.ts.map +1 -1
  135. package/dist/session-node-manager.js.map +1 -1
  136. package/dist/session-node-types.d.ts +8 -0
  137. package/dist/session-node-types.d.ts.map +1 -1
  138. package/dist/session-node-types.js.map +1 -1
  139. package/dist/session-notify.d.ts +46 -0
  140. package/dist/session-notify.d.ts.map +1 -0
  141. package/dist/session-notify.js +115 -0
  142. package/dist/session-notify.js.map +1 -0
  143. package/dist/session-read-handlers.d.ts.map +1 -1
  144. package/dist/session-read-handlers.js +0 -1
  145. package/dist/session-read-handlers.js.map +1 -1
  146. package/dist/session-salt-agreement.d.ts +0 -7
  147. package/dist/session-salt-agreement.d.ts.map +1 -1
  148. package/dist/session-salt-agreement.js +0 -7
  149. package/dist/session-salt-agreement.js.map +1 -1
  150. package/dist/session-views.d.ts +46 -0
  151. package/dist/session-views.d.ts.map +1 -0
  152. package/dist/session-views.js +197 -0
  153. package/dist/session-views.js.map +1 -0
  154. package/dist/signal-handlers.d.ts +66 -0
  155. package/dist/signal-handlers.d.ts.map +1 -0
  156. package/dist/signal-handlers.js +975 -0
  157. package/dist/signal-handlers.js.map +1 -0
  158. package/dist/signaling-wiring.d.ts +100 -0
  159. package/dist/signaling-wiring.d.ts.map +1 -0
  160. package/dist/signaling-wiring.js +392 -0
  161. package/dist/signaling-wiring.js.map +1 -0
  162. package/dist/start-agent.d.ts +64 -0
  163. package/dist/start-agent.d.ts.map +1 -0
  164. package/dist/start-agent.js +136 -0
  165. package/dist/start-agent.js.map +1 -0
  166. package/dist/status-handler.d.ts +46 -0
  167. package/dist/status-handler.d.ts.map +1 -0
  168. package/dist/status-handler.js +58 -0
  169. package/dist/status-handler.js.map +1 -0
  170. package/dist/test-handlers.d.ts +62 -0
  171. package/dist/test-handlers.d.ts.map +1 -0
  172. package/dist/test-handlers.js +239 -0
  173. package/dist/test-handlers.js.map +1 -0
  174. package/dist/types.d.ts +0 -11
  175. package/dist/types.d.ts.map +1 -1
  176. package/dist/types.js +0 -12
  177. package/dist/types.js.map +1 -1
  178. package/dist/unresolved-nodes-report.d.ts +14 -0
  179. package/dist/unresolved-nodes-report.d.ts.map +1 -0
  180. package/dist/unresolved-nodes-report.js +96 -0
  181. package/dist/unresolved-nodes-report.js.map +1 -0
  182. package/dist/who-resolver.d.ts +15 -0
  183. package/dist/who-resolver.d.ts.map +1 -0
  184. package/dist/who-resolver.js +46 -0
  185. package/dist/who-resolver.js.map +1 -0
  186. package/dist/wire-content-hash.d.ts +0 -2
  187. package/dist/wire-content-hash.d.ts.map +1 -1
  188. package/dist/wire-content-hash.js +0 -4
  189. package/dist/wire-content-hash.js.map +1 -1
  190. package/package.json +5 -5
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Two verbs an operator runs ON an agent rather than through it: rotate its signing shares, and read
3
+ * the relay's ordering receipts for it. Both resolve an agent by name and then reach the consortium
4
+ * on that agent's own signaling connection, which is why they share a module.
5
+ *
6
+ * ⚠️ THE WORK ORDER PUT FOUR VERBS AND `cello_status` IN THIS UNIT. They are three modules, and the
7
+ * split is a measurement rather than taste. Counting every member of each shipped interface,
8
+ * `handlers` and `logger` included: one module for all of it needs **22**. Split by what each
9
+ * surface touches — **12** here, **10** for `cello_status`, **3** for backup/restore, overlapping on
10
+ * `handlers` and `logger` alone. 22 is the shape the order calls "the root with an extra hop".
11
+ *
12
+ * ⚠️ AND THIS MODULE IS AT THE BOUND, NOT UNDER IT. Twelve is exactly the order's ~12 ceiling. A
13
+ * first draft of this note said eleven, which reads like room to spare; unit 7 calibrates against
14
+ * these numbers, so the real one is written here. Anything else that wants to live in this file
15
+ * needs a member it does not already have — which means it does not live in this file.
16
+ */
17
+ import type { IpcHandler } from "./ipc-server.js";
18
+ import type { SessionNodeManager } from "./session-node-manager.js";
19
+ import type { Logger } from "./types.js";
20
+ import type { KeyProvider } from "@cello-protocol/crypto";
21
+ import type { SignalingManager } from "@cello-protocol/transport";
22
+ import type { LoadedAgent } from "./agent-loader.js";
23
+ import type { SealFailureStore } from "./seal-failure-store.js";
24
+ import { runAgentRefresh } from "./session-ceremony.js";
25
+ /** `runAgentRefresh`'s own parameter object — the source of truth for the types below, never a copy. */
26
+ type RefreshArgs = Parameters<typeof runAgentRefresh>[0];
27
+ /** The per-connection agent selection, as these verbs need to read it. */
28
+ export interface AdminConnState {
29
+ currentAgent: string | null;
30
+ clearedAgent?: string;
31
+ }
32
+ export interface AgentAdminDeps {
33
+ handlers: Map<string, IpcHandler>;
34
+ logger: Logger;
35
+ sessionNodeManager: SessionNodeManager;
36
+ /** Every agent this daemon has loaded — both verbs resolve a name through it. */
37
+ loadedAgents: ReadonlyArray<LoadedAgent>;
38
+ /** Read this connection's agent selection. The READ, not the container. */
39
+ getConnState: (connectionId: string) => AdminConnState | undefined;
40
+ /** The daemon's single agent-selection rule. Injected, never re-implemented here. */
41
+ resolveCurrentAgent: (connState: AdminConnState | undefined, explicitAgent?: string) => string | null;
42
+ getPersistence: (agentName: string) => RefreshArgs["persistence"];
43
+ /** ⚠️ NOT a getter — for an agent with no manager this CONSTRUCTS one and dials. */
44
+ getAgentSignaling: (agentName: string, agentKeyProvider: KeyProvider, agentPubkeyHex: string) => {
45
+ signaling: SignalingManager;
46
+ getNode: RefreshArgs["getNode"];
47
+ };
48
+ waitForSignalingConnected: (mgr: SignalingManager, timeoutMs: number) => Promise<boolean>;
49
+ resolveConsortiumRoster: RefreshArgs["getConsortiumEndpoints"];
50
+ getFailoverEndpoint: RefreshArgs["getDirectoryEndpoint"];
51
+ /** Where a dead seal ceremony leaves its mark, so a receipt can say it FAILED and why. */
52
+ sealFailures: SealFailureStore;
53
+ }
54
+ export declare function registerAgentAdminHandlers(deps: AgentAdminDeps): void;
55
+ export {};
56
+ //# sourceMappingURL=agent-admin-handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-admin-handlers.d.ts","sourceRoot":"","sources":["../src/agent-admin-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,wGAAwG;AACxG,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;AAEzD,0EAA0E;AAC1E,MAAM,WAAW,cAAc;IAAG,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAAE;AAEvF,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,iFAAiF;IACjF,YAAY,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IACzC,2EAA2E;IAC3E,YAAY,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,cAAc,GAAG,SAAS,CAAC;IACnE,qFAAqF;IACrF,mBAAmB,EAAE,CAAC,SAAS,EAAE,cAAc,GAAG,SAAS,EAAE,aAAa,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IACtG,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,WAAW,CAAC,aAAa,CAAC,CAAC;IAClE,oFAAoF;IACpF,iBAAiB,EAAE,CACjB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,WAAW,EAC7B,cAAc,EAAE,MAAM,KACnB;QAAE,SAAS,EAAE,gBAAgB,CAAC;QAAC,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,CAAA;KAAE,CAAC;IACtE,yBAAyB,EAAE,CAAC,GAAG,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1F,uBAAuB,EAAE,WAAW,CAAC,wBAAwB,CAAC,CAAC;IAC/D,mBAAmB,EAAE,WAAW,CAAC,sBAAsB,CAAC,CAAC;IACzD,0FAA0F;IAC1F,YAAY,EAAE,gBAAgB,CAAC;CAChC;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CA0ErE"}
@@ -0,0 +1,70 @@
1
+ import { runAgentRefresh } from "./session-ceremony.js";
2
+ export function registerAgentAdminHandlers(deps) {
3
+ const { handlers, logger, sessionNodeManager, loadedAgents, getConnState, resolveCurrentAgent, getPersistence, getAgentSignaling, waitForSignalingConnected, resolveConsortiumRoster, getFailoverEndpoint, sealFailures, } = deps;
4
+ // ─── M8B DOD-REFRESH-1: cello_refresh_shares — proactive share refresh / epoch rollover ───
5
+ handlers.set("cello_refresh_shares", async (params, connectionId) => {
6
+ const connState = getConnState(connectionId);
7
+ const agentName = resolveCurrentAgent(connState, params?.agent); // M8C-AUTOSTART-1 F18: sole-online fallback
8
+ if (!agentName) {
9
+ // Not an MCP tool — the CLI is the only real caller, and its gesture is the POSITIONAL
10
+ // `cello refresh <name>`, not a JSON param. The old text said "pass { name }", which stopped
11
+ // working at the rename and never worked on this surface anyway. cello_use_agent stays: it is
12
+ // the other real remedy, and renderForSurface rewrites it to `cello use-agent` for a CLI caller.
13
+ return { ok: false, reason: "no_current_agent", guidance: "Name the agent: cello refresh <name>. Or select one for this connection with cello_use_agent." };
14
+ }
15
+ const loaded = loadedAgents.find((a) => a.name === agentName);
16
+ if (!loaded) {
17
+ return { ok: false, reason: "agent_not_found", guidance: `No agent named '${agentName}'. Create + register it first.` };
18
+ }
19
+ // The refresh ceremony reaches the consortium over the agent's signaling node — ensure it is up.
20
+ const entry = getAgentSignaling(agentName, loaded.keyProvider, loaded.pubkey);
21
+ const connected = await waitForSignalingConnected(entry.signaling, 15_000);
22
+ if (!connected) {
23
+ return { ok: false, reason: "directory_unreachable", guidance: "The agent's directory signaling is not connected; start the agent and retry." };
24
+ }
25
+ const result = await runAgentRefresh({
26
+ agentName,
27
+ persistence: getPersistence(agentName),
28
+ agentPubkeyHex: loaded.pubkey,
29
+ // DOD-M15-SEALWIRE-1 bullet 2 (review F1): gate the co-signature on the root check.
30
+ verifyCertifiedRoot: (pub, sid, root, leaves) => sessionNodeManager.verifyCertifiedRoot(pub, sid, root, leaves),
31
+ keyProvider: loaded.keyProvider,
32
+ getNode: entry.getNode,
33
+ getDirectoryEndpoint: getFailoverEndpoint,
34
+ getConsortiumEndpoints: resolveConsortiumRoster,
35
+ signaling: entry.signaling,
36
+ logger,
37
+ // DOD-M15-SEALPARTIES-1: where a dead seal ceremony leaves its mark, so `cello_sealed_receipt`
38
+ // can say it FAILED and why instead of falling through to "no receipt yet".
39
+ recordSealFailure: (name, sid, reason) => sealFailures.record(name, sid, reason, new Date().toISOString(), "unresolved"),
40
+ });
41
+ if (!result.ok) {
42
+ return { ok: false, reason: result.reason, guidance: "Share refresh did not complete — see the daemon log (refresh.ceremony.*) for the cause." };
43
+ }
44
+ return { ok: true, epoch: result.toEpochN, primary_pubkey: result.primaryPubkey, verifying_shares_digest: result.verifyingSharesDigest };
45
+ });
46
+ // ─── M8B DOD-RELAYSIG-1: cello_get_relay_receipts — the agent's stored relay ordering receipts ───
47
+ handlers.set("cello_get_relay_receipts", async (params, connectionId) => {
48
+ const connState = getConnState(connectionId);
49
+ const agentName = resolveCurrentAgent(connState, params?.agent); // M8C-AUTOSTART-1 F18: sole-online fallback
50
+ if (!agentName) {
51
+ // Not an MCP tool either — same reasoning as cello_refresh_shares above.
52
+ return { ok: false, reason: "no_current_agent", guidance: "Name the agent: cello relay-receipts <name>. Or select one for this connection with cello_use_agent." };
53
+ }
54
+ const loaded = loadedAgents.find((a) => a.name === agentName);
55
+ if (!loaded) {
56
+ return { ok: false, reason: "agent_not_found", guidance: `No agent named '${agentName}'.` };
57
+ }
58
+ const sessionIdHex = typeof params?.session_id === "string" ? params.session_id : undefined;
59
+ const receipts = sessionNodeManager.getRelayReceipts(loaded.pubkey, sessionIdHex).map((r) => ({
60
+ hash_hex: r.hashHex,
61
+ session_id: r.sessionIdHex,
62
+ relay_id: r.relayId,
63
+ sequence_number: r.sequenceNumber,
64
+ timestamp: r.timestamp,
65
+ signature_hex: r.signatureHex,
66
+ }));
67
+ return { ok: true, receipts };
68
+ });
69
+ }
70
+ //# sourceMappingURL=agent-admin-handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-admin-handlers.js","sourceRoot":"","sources":["../src/agent-admin-handlers.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@
11
11
  * "the only agent online" — that is how a write lands on the wrong agent (fixed in f00b534, and
12
12
  * the reason resolveCurrentAgent distinguishes "never chose" from "choice taken away").
13
13
  */
14
+ import type { StartAgentResult } from "./start-agent.js";
14
15
  import type { IpcHandler } from "./ipc-server.js";
15
16
  import type { SessionNodeManager } from "./session-node-manager.js";
16
17
  import type { AgentInfo, Logger } from "./types.js";
@@ -37,13 +38,13 @@ export interface AgentHandlerDeps {
37
38
  clientType: string;
38
39
  }>;
39
40
  getAgentsForConnection: (connectionId: string) => AgentInfo[];
40
- startAgentInternal: (name: string) => {
41
- ok: true;
42
- } | {
43
- ok: false;
44
- reason: string;
45
- guidance: string;
46
- };
41
+ /**
42
+ * ⚠️ THE THREE-WAY UNION, NOT `{ ok: true }`. The readiness half is the point: an agent can be
43
+ * online and DEAF — marked started while its standing receiver never came up — and the two states
44
+ * render identically at every surface without it. Declared narrow, dropping it is invisible to the
45
+ * type checker.
46
+ */
47
+ startAgentInternal: (name: string) => StartAgentResult;
47
48
  dropAgentSignaling: (agentName: string) => Promise<void>;
48
49
  awayAckSent: Set<string>;
49
50
  keyProviders: Map<string, KeyProvider>;
@@ -1 +1 @@
1
- {"version":3,"file":"agent-handlers.d.ts","sourceRoot":"","sources":["../src/agent-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAG3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAM7E,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,gGAAgG;IAChG,uBAAuB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrC;uFACmF;IACnF,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;IACxD,YAAY,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,SAAS,GAAG,SAAS,CAAC;IAC9D,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5G,sBAAsB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;IAC9D,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK;QAAE,EAAE,EAAE,IAAI,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,KAAK,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACrG,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACvC,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,KAAK;QAAE,SAAS,EAAE,gBAAgB,CAAC;QAAC,OAAO,EAAE,MAAM,SAAS,GAAG,IAAI,CAAA;KAAE,CAAC;IACxJ,yBAAyB,EAAE,CAAC,GAAG,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1F,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAyiBlE"}
1
+ {"version":3,"file":"agent-handlers.d.ts","sourceRoot":"","sources":["../src/agent-handlers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAG3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAO7E,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,gGAAgG;IAChG,uBAAuB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrC;uFACmF;IACnF,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;IACxD,YAAY,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,SAAS,GAAG,SAAS,CAAC;IAC9D,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5G,sBAAsB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;IAC9D;;;;;OAKG;IACH,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,gBAAgB,CAAC;IACvD,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACvC,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,KAAK;QAAE,SAAS,EAAE,gBAAgB,CAAC;QAAC,OAAO,EAAE,MAAM,SAAS,GAAG,IAAI,CAAA;KAAE,CAAC;IACxJ,yBAAyB,EAAE,CAAC,GAAG,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1F,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAgjBlE"}
@@ -3,6 +3,7 @@ import { DbIdentityStore, DbRegistrationPersistence } from "./db-identity-store.
3
3
  import { generateKLocalSeed, InMemoryKeyProvider } from "@cello-protocol/crypto";
4
4
  import { TrustSignalStore } from "./trust-signal-store.js";
5
5
  import { countAttendance } from "./co-attendance.js";
6
+ import { noAgentsGuidance } from "./onboarding-guidance.js";
6
7
  export function registerAgentHandlers(deps) {
7
8
  const { handlers, logger, sessionNodeManager, agents, onlineAgents, explicitlyOfflineAgents, getNotificationDispatcher, getConnState, perConnectionState, getAgentsForConnection, startAgentInternal, dropAgentSignaling, awayAckSent, keyProviders, loadedAgents, getAgentSignaling, waitForSignalingConnected, perAgentSignaling, } = deps;
8
9
  // ─── MCP-001: cello_start_agent handler ───
@@ -527,7 +528,15 @@ export function registerAgentHandlers(deps) {
527
528
  });
528
529
  // ─── MCP-001: cello_list_agents handler ───
529
530
  handlers.set("cello_list_agents", async (_params, connectionId) => {
530
- return { agents: getAgentsForConnection(connectionId) };
531
+ const agents = getAgentsForConnection(connectionId);
532
+ // An empty roster is the one answer that needs words rather than data. The CLI imports
533
+ // NO_AGENTS_GUIDANCE directly (cli depends on daemon), but `connect` depends on no
534
+ // @cello-protocol package at all — so the shim can only learn this over the wire, and an
535
+ // operator who never opens a terminal would otherwise get an empty list and no explanation
536
+ // of the cohort gate standing between them and a registration token.
537
+ if (agents.length === 0)
538
+ return { agents, onboarding: noAgentsGuidance() };
539
+ return { agents };
531
540
  });
532
541
  // ─── M7-REGISTRATION (Action 2): cello_register handler ───
533
542
  // Registers a LOADED agent (one with a K_local `key` under ~/.cello/agents/<name>/)
@@ -1 +1 @@
1
- {"version":3,"file":"agent-handlers.js","sourceRoot":"","sources":["../src/agent-handlers.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACtG,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAIpF,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAEjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AA0BrD,MAAM,UAAU,qBAAqB,CAAC,IAAsB;IAC1D,MAAM,EACJ,QAAQ,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,YAAY,EAAE,uBAAuB,EAAE,yBAAyB,EAC9G,YAAY,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,kBAAkB,EAC5E,kBAAkB,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAC9E,yBAAyB,EAAE,iBAAiB,GAC7C,GAAG,IAAI,CAAC;IAET,6CAA6C;IAC7C,0FAA0F;IAC1F,QAAQ,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE;QAChE,MAAM,IAAI,GAAG,MAAM,EAAE,IAA0B,CAAC;QAChD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,wDAAwD,EAAE,CAAC;QACrH,CAAC;QACD,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,2DAA2D;IAC3D,kGAAkG;IAClG,kGAAkG;IAClG,qGAAqG;IACrG,QAAQ,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE;QACjE,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC3C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,EAAE,QAAQ,EAAE,oEAAoE,UAAU,CAAC,MAAM,sBAAsB,EAAE,CAAC;QAC5K,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,kBAAkB,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;QACtE,IAAI,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACtE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,sBAAsB,EAAE,QAAQ,EAAE,UAAU,IAAI,iEAAiE,EAAE,CAAC;QAClJ,CAAC;QACD,IAAI,SAAiB,CAAC;QACtB,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,kBAAkB,EAAE,CAAC;YAClC,MAAM,WAAW,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAClD,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC1E,+FAA+F;YAC/F,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YACnD,4FAA4F;YAC5F,+FAA+F;YAC/F,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YACpC,MAAM,MAAM,GAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;YACrE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1B,gFAAgF;YAChF,+FAA+F;YAC/F,2FAA2F;YAC3F,yFAAyF;YACzF,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YAC3D,+FAA+F;YAC/F,6FAA6F;YAC7F,2FAA2F;YAC3F,2FAA2F;YAC3F,kGAAkG;YAClG,8CAA8C;YAC9C,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;YAChD,+FAA+F;YAC/F,6FAA6F;YAC7F,MAAM,CAAC,IAAI,CAAC,sCAAsC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;QACnG,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC9H,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,QAAQ,EAAE,wGAAwG,EAAE,CAAC;QAC1K,CAAC;QACD,8FAA8F;QAC9F,sDAAsD;QACtD,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;QACnF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,yEAAyE;IACzE,iGAAiG;IACjG,qGAAqG;IACrG,qGAAqG;IACrG,oGAAoG;IACpG,6DAA6D;IAC7D,iGAAiG;IACjG,mGAAmG;IACnG,uGAAuG;IACvG,kGAAkG;IAClG,oEAAoE;IACpE,KAAK,UAAU,qBAAqB,CAAC,IAKpC;QACC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QAChE,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,WAAW,CAAC;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,uBAAuB,CAAC,UAAU,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAC7F,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAEnE,qGAAqG;QACrG,mGAAmG;QACnG,MAAM,YAAY,GAAG,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACtD,MAAM,EAAE,SAAS,EAAE,GAAG,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;QAC5E,oGAAoG;QACpG,uGAAuG;QACvG,MAAM,gBAAgB,GAAG,CAAC,YAAY,IAAI,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3E,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,yBAAyB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACrE,IAAI,CAAC,SAAS;gBAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC;YAC5E,IAAI,YAAmD,CAAC;YACxD,MAAM,OAAO,GAAG,IAAI,OAAO,CAA0B,CAAC,CAAC,EAAE,EAAE,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnF,iGAAiG;YACjG,MAAM,UAAU,GAAG,SAAS,CAAC,sBAAsB,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC5D,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;gBACxB,IAAI,CAAC,CAAC,KAAK,sBAAsB,IAAI,CAAC,KAAK,wBAAwB,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,UAAU;oBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;YAChI,CAAC,CAAC,CAAC;YACH,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC1J,IAAI,CAAC,IAAI,CAAC,EAAE;oBAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,uBAAuB,EAAE,CAAC;gBACzF,IAAI,KAAqC,CAAC;gBAC1C,MAAM,QAAQ,GAAG,IAAI,OAAO,CAA0B,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChI,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;gBACtD,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,aAAa;oBAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;gBACnF,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,wBAAwB;oBAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC;gBAC1H,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;gBAC9E,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC5B,CAAC;oBAAS,CAAC;gBACT,UAAU,EAAE,CAAC;YACf,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,gBAAgB,EAAE,CAAC;gBACrB,MAAM,kBAAkB,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;oBAChD,MAAM,CAAC,IAAI,CAAC,4CAA4C,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACpI,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE;QACjE,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC3C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,EAAE,QAAQ,EAAE,6FAA6F,UAAU,CAAC,MAAM,IAAI,EAAE,CAAC;QACnL,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,kBAAkB,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;QACtE,sGAAsG;QACtG,wFAAwF;QACxF,MAAM,MAAM,GAAG,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,mBAAmB,IAAI,wBAAwB,EAAE,CAAC;QAC7G,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC;QAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC;QAEpC,mGAAmG;QACnG,kGAAkG;QAClG,kGAAkG;QAClG,iBAAiB;QACjB,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACrC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,0BAA0B,IAAI,2BAA2B,IAAI,uBAAuB,EAAE,CAAC;QAClJ,CAAC;QAED,oGAAoG;QACpG,mGAAmG;QACnG,kGAAkG;QAClG,0EAA0E;QAC1E,IAAI,mBAAmB,GAAwC,SAAS,CAAC;QACzE,IAAI,gBAAoC,CAAC;QACzC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC1D,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACjF,MAAM,GAAG,GAAG,MAAM,qBAAqB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YACrH,mBAAmB,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;YAC7D,gBAAgB,GAAG,GAAG,CAAC,MAAM,CAAC;YAC9B,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;gBAClB,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,IAAI,uBAAuB,EAAE,CAAC,CAAC;YAC1G,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;YACzC,sFAAsF;YACtF,0FAA0F;YAC1F,oFAAoF;YACpF,gBAAgB,GAAG,iCAAiC,CAAC;YACrD,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,iCAAiC,EAAE,CAAC,CAAC;QACtG,CAAC;QAED,qGAAqG;QACrG,mDAAmD;QACnD,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACxB,gGAAgG;YAChG,+FAA+F;YAC/F,0BAA0B;YAC1B,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3B,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC1B,MAAM,kBAAkB,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC1E,MAAM,CAAC,IAAI,CAAC,wCAAwC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC/I,CAAC,CAAC,CAAC;YACL,CAAC;YACD,yFAAyF;YACzF,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC3C,MAAM,CAAC,IAAI,CAAC,yCAAyC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChJ,CAAC,CAAC,CAAC;YACH,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC1B,MAAM,EAAE,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YAC1D,IAAI,EAAE,IAAI,CAAC;gBAAE,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACxC,MAAM,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YACpD,IAAI,EAAE,IAAI,CAAC;gBAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAClC,6FAA6F;YAC7F,gGAAgG;YAChG,kGAAkG;YAClG,wFAAwF;YACxF,MAAM,CAAC,IAAI,CAAC,oCAAoC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;YACzG,4DAA4D;YAC5D,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,kBAAkB,EAAE,CAAC;gBACjD,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;oBAChC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;oBAC1B,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,4DAA4D;oBACvF,yBAAyB,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;oBAC1D,yBAAyB,EAAE,CAAC,2BAA2B,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC9E,CAAC;YACH,CAAC;YACD,4FAA4F;YAC5F,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YACnE,yBAAyB,EAAE,CAAC,yBAAyB,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACpF,CAAC;QAED,MAAM,QAAQ,GAAG,SAAS;YACxB,CAAC,CAAC,4KAA4K;YAC9K,CAAC,CAAC,oCAAoC,CAAC;QACzC,MAAM,OAAO,GACX,mBAAmB,KAAK,UAAU;YAChC,CAAC,CAAC,oFAAoF;YACtF,CAAC,CAAC,mBAAmB,KAAK,UAAU;gBAClC,CAAC,CAAC,iEAAiE,gBAAgB,IAAI,uBAAuB,sEAAsE,IAAI,+CAA+C;gBACvO,CAAC,CAAC,gBAAgB,KAAK,iCAAiC;oBACtD,CAAC,CAAC,8MAA8M;oBAChN,CAAC,CAAC,2FAA2F,CAAC;QACtG,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,EAAE,CAAC;IACtG,CAAC,CAAC,CAAC;IAEH,mFAAmF;IACnF,EAAE;IACF,6FAA6F;IAC7F,8FAA8F;IAC9F,8FAA8F;IAC9F,4FAA4F;IAC5F,yFAAyF;IACzF,WAAW;IACX,EAAE;IACF,+EAA+E;IAC/E,kGAAkG;IAClG,wFAAwF;IACxF,EAAE;IACF,8FAA8F;IAC9F,iEAAiE;IACjE,EAAE;IACF,oFAAoF;IACpF,2FAA2F;IAC3F,EAAE;IACF,gGAAgG;IAChG,gGAAgG;IAChG,iGAAiG;IACjG,gGAAgG;IAChG,qEAAqE;IACrE,EAAE;IACF,gGAAgG;IAChG,iGAAiG;IACjG,oEAAoE;IACpE,QAAQ,CAAC,GAAG,CAAC,yBAAyB,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE;QACtE,MAAM,IAAI,GAAG,MAAM,EAAE,IAA0B,CAAC;QAChD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,uDAAuD,EAAE,CAAC;QACpH,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;YAC5C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,UAAU,IAAI,wDAAwD,EAAE,CAAC;QACpI,CAAC;QACD,+FAA+F;QAC/F,kGAAkG;QAClG,4FAA4F;QAC5F,4FAA4F;QAC5F,iGAAiG;QACjG,+CAA+C;QAC/C,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,oDAAoD;YACpD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACtB,CAAC;QACD,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1B,qFAAqF;QACrF,8FAA8F;QAC9F,8FAA8F;QAC9F,+FAA+F;QAC/F,MAAM,kBAAkB,CAAC,8BAA8B,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YAC1E,MAAM,CAAC,IAAI,CAAC,qCAAqC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnI,CAAC,CAAC,CAAC;QAEH,uCAAuC;QACvC,EAAE;QACF,8FAA8F;QAC9F,+FAA+F;QAC/F,8FAA8F;QAC9F,gGAAgG;QAChG,gGAAgG;QAChG,iGAAiG;QACjG,oBAAoB;QACpB,EAAE;QACF,4FAA4F;QAC5F,+FAA+F;QAC/F,6FAA6F;QAC7F,4FAA4F;QAC5F,2CAA2C;QAC3C,MAAM,WAAW,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC;QAC1G,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,kBAAkB,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;YACjF,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,0FAA0F;gBAC1F,2FAA2F;gBAC3F,MAAM,CAAC,KAAK,CAAC,oCAAoC,EAAE;oBACjD,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,UAAU;oBACxC,MAAM,EAAE,6FAA6F;oBACrG,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;iBACxD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;QACjG,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACrE,4DAA4D;QAC5D,yBAAyB,EAAE,CAAC,yBAAyB,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAElF,yEAAyE;QACzE,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,kBAAkB,EAAE,CAAC;YACjD,IAAI,KAAK,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;gBAChC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;gBAC1B,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,4DAA4D;gBACvF,yBAAyB,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAC1D,yBAAyB,EAAE,CAAC,2BAA2B,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC5E,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAClG,CAAC;QACH,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,+EAA+E;IAC/E,EAAE;IACF,kGAAkG;IAClG,mGAAmG;IACnG,uFAAuF;IACvF,EAAE;IACF,kGAAkG;IAClG,kGAAkG;IAClG,iGAAiG;IACjG,6FAA6F;IAC7F,EAAE;IACF,iGAAiG;IACjG,gGAAgG;IAChG,wFAAwF;IACxF,QAAQ,CAAC,GAAG,CAAC,wBAAwB,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE;QACrE,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,2BAA2B,EAAE,QAAQ,EAAE,oDAAoD,EAAE,CAAC;QAC5H,CAAC;QACD,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC;QAEzC,gGAAgG;QAChG,8FAA8F;QAC9F,4FAA4F;QAC5F,6FAA6F;QAC7F,8FAA8F;QAC9F,+FAA+F;QAC/F,2FAA2F;QAC3F,qBAAqB;QACrB,OAAO,SAAS,CAAC,YAAY,CAAC;QAE9B,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,2FAA2F;YAC3F,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,kEAAkE,EAAE,CAAC;QACpH,CAAC;QACD,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC;QAC9B,yBAAyB,EAAE,CAAC,eAAe,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAChE,yBAAyB,EAAE,CAAC,2BAA2B,CAAC,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QACvF,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,CAAC;QACnE,OAAO;YACL,EAAE,EAAE,IAAI;YACR,QAAQ,EAAE,SAAS;YACnB,4FAA4F;YAC5F,8FAA8F;YAC9F,+FAA+F;YAC/F,uFAAuF;YACvF,QAAQ,EACN,wBAAwB,SAAS,8DAA8D;gBAC/F,+FAA+F;gBAC/F,6FAA6F;gBAC7F,yEAAyE;SAC5E,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,2CAA2C;IAC3C,QAAQ,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE;QAC7D,MAAM,IAAI,GAAG,MAAM,EAAE,IAA0B,CAAC;QAChD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,sDAAsD,EAAE,CAAC;QACnH,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;YAC5C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,UAAU,IAAI,wDAAwD,IAAI,gEAAgE,EAAE,CAAC;QACxM,CAAC;QACD,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,2BAA2B,EAAE,QAAQ,EAAE,oDAAoD,EAAE,CAAC;QAC5H,CAAC;QACD,+FAA+F;QAC/F,uFAAuF;QACvF,6FAA6F;QAC7F,mFAAmF;QACnF,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5E,MAAM,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,2FAA2F;gBAC3F,0FAA0F;gBAC1F,0FAA0F;gBAC1F,kFAAkF;gBAClF,0FAA0F;gBAC1F,wFAAwF;gBACxF,iDAAiD;gBACjD,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;gBAClG,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,oBAAoB;oBAC5B,YAAY,EAAE,QAAQ,CAAC,MAAM;oBAC7B,QAAQ,EAAE,0BAA0B,IAAI,mBAAmB,QAAQ,CAAC,QAAQ,mCAAmC;iBAChH,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,SAAS,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;YACpC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,uBAAuB,EAAE,QAAQ,EAAE,UAAU,IAAI,iHAAiH,EAAE,CAAC;QACnM,CAAC;QACD,MAAM,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC;QACzC,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC;QAC9B,gGAAgG;QAChG,6FAA6F;QAC7F,qCAAqC;QACrC,OAAO,SAAS,CAAC,YAAY,CAAC;QAC9B,6FAA6F;QAC7F,6FAA6F;QAC7F,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAC1C,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC;gBAAE,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1D,CAAC;QACD,2FAA2F;QAC3F,yBAAyB,EAAE,CAAC,eAAe,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAChE,yBAAyB,EAAE,CAAC,2BAA2B,CAAC,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QACvF,+FAA+F;QAC/F,uFAAuF;QACvF,+FAA+F;QAC/F,oFAAoF;QACpF,EAAE;QACF,+FAA+F;QAC/F,gEAAgE;QAChE,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,CAAC;QAChC,MAAM,OAAO,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC;QACtG,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC3F,yFAAyF;QACzF,EAAE;QACF,8FAA8F;QAC9F,0FAA0F;QAC1F,8FAA8F;QAC9F,0FAA0F;QAC1F,gEAAgE;QAChE,MAAM,UAAU,GAAG,eAAe,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;QAC7D,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;QACxF,CAAC;QACD,8FAA8F;QAC9F,+FAA+F;QAC/F,oFAAoF;QACpF,MAAM,MAAM,GAA4B,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QACjE,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACnB,4FAA4F;YAC5F,4FAA4F;YAC5F,qFAAqF;YACrF,2FAA2F;YAC3F,yFAAyF;YACzF,MAAM,CAAC,wBAAwB,CAAC;gBAC9B,GAAG,UAAU,4BAA4B,IAAI,mDAAmD;oBAChG,+FAA+F;oBAC/F,gGAAgG;oBAChG,gGAAgG,CAAC;QACrG,CAAC;QACD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,yBAAyB,CAAC,EAAE,EAAE,EAAE,kBAAkB,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,qBAAqB,EAAE,CAAC;YACrI,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACpC,MAAM,CAAC,SAAS,CAAC,GAAG,gBAAgB,CAAC;gBACrC,MAAM,CAAC,kBAAkB,CAAC,GAAG,UAAU,IAAI,0FAA0F,IAAI,qFAAqF,CAAC;YACjO,CAAC;QACH,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,4FAA4F;YAC5F,+FAA+F;YAC/F,4FAA4F;YAC5F,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7H,MAAM,CAAC,SAAS,CAAC,GAAG,sBAAsB,CAAC;YAC3C,MAAM,CAAC,kBAAkB,CAAC,GAAG,UAAU,IAAI,yIAAyI,CAAC;QACvL,CAAC;QACD,8FAA8F;QAC9F,iGAAiG;QACjG,EAAE;QACF,6FAA6F;QAC7F,+FAA+F;QAC/F,yGAAyG;QACzG,qFAAqF;QACrF,EAAE;QACF,gGAAgG;QAChG,+FAA+F;QAC/F,8FAA8F;QAC9F,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YACtD,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,kBAAkB,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC5G,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;oBAChB,MAAM,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC;oBACpC,MAAM,CAAC,0BAA0B,CAAC;wBAChC,GAAG,OAAO,QAAQ,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,gCAAgC,IAAI,KAAK;4BACnF,8CAA8C,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,wBAAwB,CAAC;gBACxG,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE;gBACzC,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aAC1E,CAAC,CAAC;YACH,MAAM,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC;YACtC,MAAM,CAAC,0BAA0B,CAAC;gBAChC,6CAA6C,IAAI,2DAA2D,CAAC;QACjH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,6CAA6C;IAC7C,QAAQ,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE;QAChE,OAAO,EAAE,MAAM,EAAE,sBAAsB,CAAC,YAAY,CAAC,EAAE,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,6DAA6D;IAC7D,oFAAoF;IACpF,uFAAuF;IACvF,uFAAuF;IACvF,kFAAkF;IAClF,sEAAsE;IACtE,gFAAgF;IAChF,8EAA8E;IAC9E,+EAA+E;IAC/E,gFAAgF;IAChF,uEAAuE;IACvE,8EAA8E;IAC9E,+BAA+B;AACjC,CAAC"}
1
+ {"version":3,"file":"agent-handlers.js","sourceRoot":"","sources":["../src/agent-handlers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Which agent a call is FOR, and how a caller learns it fell back.
3
+ *
4
+ * One rule, in one place, because the alternative has already happened: several handlers each
5
+ * deciding what "the current agent" means is how a call lands on an agent the operator did not
6
+ * choose. The fallback notice rides an AsyncLocalStorage so an answer can carry WHY it fell back
7
+ * without every caller having to thread it through.
8
+ *
9
+ * The registration guidance stayed in the root: it is written between this block and the agent
10
+ * lifecycle handlers, and moving it would have meant moving the handler registration with it.
11
+ */
12
+ import { AsyncLocalStorage } from "node:async_hooks";
13
+ import type { Logger } from "./types.js";
14
+ export interface AgentSelectionDeps {
15
+ logger: Logger;
16
+ /** The live set — a copy would freeze at boot and the single-online-agent fallback would never fire. */
17
+ onlineAgents: ReadonlySet<string>;
18
+ }
19
+ export declare function createAgentSelection(deps: AgentSelectionDeps): {
20
+ fallbackNoticeStore: AsyncLocalStorage<{
21
+ notice?: Record<string, unknown>;
22
+ }>;
23
+ resolveCurrentAgent: (connState: {
24
+ currentAgent: string | null;
25
+ clearedAgent?: string;
26
+ clientType?: string;
27
+ } | undefined, explicitAgent?: string) => string | null;
28
+ };
29
+ //# sourceMappingURL=agent-selection-root.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-selection-root.d.ts","sourceRoot":"","sources":["../src/agent-selection-root.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,wGAAwG;IACxG,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACnC;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,kBAAkB;;iBAwDE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;qCAGvE;QAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,kBAClF,MAAM,KACrB,MAAM,GAAG,IAAI;EA0DjB"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * Which agent a call is FOR, and how a caller learns it fell back.
3
+ *
4
+ * One rule, in one place, because the alternative has already happened: several handlers each
5
+ * deciding what "the current agent" means is how a call lands on an agent the operator did not
6
+ * choose. The fallback notice rides an AsyncLocalStorage so an answer can carry WHY it fell back
7
+ * without every caller having to thread it through.
8
+ *
9
+ * The registration guidance stayed in the root: it is written between this block and the agent
10
+ * lifecycle handlers, and moving it would have meant moving the handler registration with it.
11
+ */
12
+ import { AsyncLocalStorage } from "node:async_hooks";
13
+ import { resolveCurrentAgentFor } from "./agent-selection.js";
14
+ export function createAgentSelection(deps) {
15
+ const { logger, onlineAgents } = deps;
16
+ // M8C-AUTOSTART-1 (F18): resolve which agent an agent-defaulting tool should act on for this
17
+ // connection: an explicit { agent } wins; else the connection's current agent; else — when EXACTLY one
18
+ // agent is online daemon-wide — that sole agent (removes the "why did it forget my agent" moment
19
+ // after a /mcp reconnect). Two-or-more online with none selected stays ambiguous → null (the
20
+ // caller returns no_current_agent), because guessing between peers would misroute.
21
+ /**
22
+ * Which agent does this call act as?
23
+ *
24
+ * An explicit { agent } wins, then this connection's selection. Only with NEITHER does the daemon fall back
25
+ * to the sole online agent — a convenience for a caller that never chose, where "the online one"
26
+ * cannot mean anyone else.
27
+ *
28
+ * The fallback is REFUSED for a connection whose selection was taken away (`clearedAgent`): it
29
+ * chose an agent, that agent was stopped or retired, and the choice is gone. Falling back there
30
+ * silently re-targets the next call at whoever else happens to be online — the caller asked for
31
+ * alice, alice was stopped, and the work lands on bob reporting success. A lost intent is not the
32
+ * same as no intent, and it must fail loud (no_current_agent) rather than be guessed at.
33
+ */
34
+ /**
35
+ * Which agent this call acts as — `DOD-M15-SELECTION-1`, logic in `agent-selection.ts`.
36
+ *
37
+ * It used to end with `if (onlineAgents.size === 1) return [...onlineAgents][0]`, so a connection
38
+ * that had selected nothing acted as whichever agent happened to be the only one online. On a
39
+ * shared daemon that can be a DIFFERENT operator's agent, and a live MCP session was being bound
40
+ * to an identity it never asked for.
41
+ *
42
+ * The resolution is now attributable: every path reports how it was reached, and `fallback` — the
43
+ * one that was invisible — is logged at INFO. `DOD-M15-IPCVISIBLE-1`.
44
+ */
45
+ /**
46
+ * The fallback notice owed to THIS REQUEST's response — `DOD-M15-SELECTION-1` clause 2.
47
+ *
48
+ * ─── Why an AsyncLocalStorage and not a per-connection map ─────────────────────────────────────
49
+ *
50
+ * The first cut keyed a `WeakMap` on the per-connection state object, so the notice belonged to
51
+ * the CONNECTION and was read back at the response boundary. Review found that hands the notice to
52
+ * whichever response finishes first, and Claude Code issues tool calls in parallel:
53
+ *
54
+ * 1. the agent calls `cello_receive` — nothing selected, so the fallback resolves and records
55
+ * the notice, then the handler BLOCKS for up to 30 s waiting for content;
56
+ * 2. in the same turn it calls `cello_sessions {agent: "bob"}`, which names an agent explicitly
57
+ * and never falls back;
58
+ * 3. `cello_sessions` returns first and takes the notice on its way out.
59
+ *
60
+ * Bob's response now says *"no agent was selected, so 'solo' was used"* — false, on the one call
61
+ * that did name an agent — and `cello_receive`, the call that actually fell back, says nothing.
62
+ * Exactly inverted.
63
+ *
64
+ * A notice is a fact about ONE CALL, so it is stored in that call's async context. The store is
65
+ * created per request in `renderedHandlers` and dies with it, which also means a handler that
66
+ * THROWS cannot leave a notice behind to attach itself to some later, unrelated response — the
67
+ * other half of the same review finding.
68
+ */
69
+ const fallbackNoticeStore = new AsyncLocalStorage();
70
+ function resolveCurrentAgent(connState, explicitAgent) {
71
+ return resolveCurrentAgentFor({
72
+ connState,
73
+ onlineAgents,
74
+ ...(explicitAgent !== undefined ? { explicitAgent } : {}),
75
+ onResolved: (agent, trigger) => {
76
+ // Only the FALLBACK is announced. `explicit` and `selected` are the ordinary cases and
77
+ // logging them would bury the one that matters — a signal that fires on the normal case is
78
+ // not a signal.
79
+ if (trigger !== "fallback")
80
+ return;
81
+ /**
82
+ * RECORDED FOR THE RESPONSE, not just the log — `DOD-M15-SELECTION-1` clause 2.
83
+ *
84
+ * The log tells whoever reads the daemon log. The RESPONSE tells the agent that just acted
85
+ * as an identity it never selected, which is the one that stops the half-attended state
86
+ * being read as the protocol dropping messages.
87
+ */
88
+ /**
89
+ * No `connState` guard. The first cut wrote the notice only `if (agent && connState)`, and
90
+ * `perConnectionState` is populated at `ipc.connect` — which `withIpc` in the CLI
91
+ * (`core/cli/src/commands.ts`) does not send. So every plain `cello` invocation fell back
92
+ * and got a response that said nothing, while the log line below fired regardless: the
93
+ * clause asks for explicit IN THE RESPONSE, and those callers had it explicit in the log
94
+ * only. The store is per-REQUEST, so it exists whether or not the connection ever
95
+ * handshook.
96
+ */
97
+ const store = fallbackNoticeStore.getStore();
98
+ if (agent && store) {
99
+ store.notice = {
100
+ acting_as: agent,
101
+ agent_selection: "fallback",
102
+ agent_selection_guidance: `No agent was selected on this connection, so '${agent}' was used because it is the ` +
103
+ `only one online. This is a per-call subject, NOT an attendance: doorbells route by ` +
104
+ `the connection's registered agent and this does not set it. Two things follow — ` +
105
+ `this session will not WAKE on an incoming message even though sending and reading ` +
106
+ `work, and anyone who opens a session with you is sent an AWAY auto-reply while you ` +
107
+ `sit here able to answer. Run cello_use_agent to fix both. Naming the agent on each ` +
108
+ `call is NOT a remedy for either: it settles which agent a call is about and leaves ` +
109
+ `the connection just as unattended.`,
110
+ };
111
+ }
112
+ logger.info("agent.current.fallback", {
113
+ agentName: agent,
114
+ clientType: connState?.clientType ?? "cli",
115
+ impact: "this call had no selected agent and exactly one was online, so that one was used. It " +
116
+ "is a per-call subject, NOT an attendance: doorbells route by the connection's " +
117
+ "registered agent, which this does not set.",
118
+ guidance: "If this was not the intended agent, name it explicitly, or run cello_use_agent to " +
119
+ "select one for the connection.",
120
+ });
121
+ },
122
+ });
123
+ }
124
+ return { fallbackNoticeStore, resolveCurrentAgent };
125
+ }
126
+ //# sourceMappingURL=agent-selection-root.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-selection-root.js","sourceRoot":"","sources":["../src/agent-selection-root.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAS9D,MAAM,UAAU,oBAAoB,CAAC,IAAwB;IAC3D,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAEtC,6FAA6F;IAC7F,uGAAuG;IACvG,iGAAiG;IACjG,6FAA6F;IAC7F,mFAAmF;IACnF;;;;;;;;;;;;OAYG;IACH;;;;;;;;;;OAUG;IACH;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,MAAM,mBAAmB,GAAG,IAAI,iBAAiB,EAAwC,CAAC;IAE1F,SAAS,mBAAmB,CAC1B,SAAkG,EAClG,aAAsB;QAEtB,OAAO,sBAAsB,CAAC;YAC5B,SAAS;YACT,YAAY;YACZ,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;gBAC7B,uFAAuF;gBACvF,2FAA2F;gBAC3F,gBAAgB;gBAChB,IAAI,OAAO,KAAK,UAAU;oBAAE,OAAO;gBACnC;;;;;;mBAMG;gBACH;;;;;;;;mBAQG;gBACH,MAAM,KAAK,GAAG,mBAAmB,CAAC,QAAQ,EAAE,CAAC;gBAC7C,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC;oBACnB,KAAK,CAAC,MAAM,GAAG;wBACb,SAAS,EAAE,KAAK;wBAChB,eAAe,EAAE,UAAU;wBAC3B,wBAAwB,EACtB,iDAAiD,KAAK,+BAA+B;4BACrF,qFAAqF;4BACrF,kFAAkF;4BAClF,oFAAoF;4BACpF,qFAAqF;4BACrF,qFAAqF;4BACrF,qFAAqF;4BACrF,oCAAoC;qBACvC,CAAC;gBACJ,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE;oBACpC,SAAS,EAAE,KAAK;oBAChB,UAAU,EAAE,SAAS,EAAE,UAAU,IAAI,KAAK;oBAC1C,MAAM,EACJ,uFAAuF;wBACvF,gFAAgF;wBAChF,4CAA4C;oBAC9C,QAAQ,EACN,oFAAoF;wBACpF,gCAAgC;iBACnC,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,CAAC;AACtD,CAAC"}
@@ -0,0 +1,44 @@
1
+ import type { SessionNodeManager } from "./session-node-manager.js";
2
+ import type { Logger, SessionRecord } from "./types.js";
3
+ import type { ActiveSealResult } from "./seal-flows.js";
4
+ import type { KeyProvider } from "@cello-protocol/crypto";
5
+ import type { SecurityGatewayClient } from "@cello-protocol/gateway";
6
+ import { ContentTakeLedger } from "./co-attendance.js";
7
+ import type { UnilateralResult } from "./seal-coordinator.js";
8
+ import type { SealCompletion } from "./seal-coordinator.js";
9
+ export interface AttendanceWiringDeps {
10
+ logger: Logger;
11
+ sessionNodeManager: SessionNodeManager;
12
+ /**
13
+ * The per-connection agent selection, read whole: "is anyone attending X" is a scan of the live
14
+ * selections, and the count is the same scan. Read-only — this surface never changes a selection.
15
+ */
16
+ perConnectionState: ReadonlyMap<string, {
17
+ currentAgent: string | null;
18
+ }>;
19
+ keyProviders: Map<string, KeyProvider>;
20
+ /** The away reply is outbound content and takes the same screen every other send takes. */
21
+ securityGateway: SecurityGatewayClient;
22
+ /**
23
+ * The seal machinery a one-shot rejection hands off to once it has closed the conversation. All
24
+ * four come from the seal coordinator, which is built ABOVE this wiring, so they are values.
25
+ */
26
+ sealKey: (agentName: string, sessionId: string) => string;
27
+ sealInterruptedInProgress: Set<string>;
28
+ pendingSealWaiters: Map<string, (completion: SealCompletion) => void>;
29
+ pendingUnilateralWaiters: Map<string, (r: UnilateralResult) => void>;
30
+ /** Sends a frame over the OWNING agent's directory manager. */
31
+ sendOver: (agentName: string, frame: Record<string, unknown>) => Promise<{
32
+ ok: boolean;
33
+ reason?: string;
34
+ }>;
35
+ handleActiveSealFlow: (sessionId: string, record: SessionRecord, correlationId: string) => Promise<ActiveSealResult>;
36
+ }
37
+ export declare function createAttendanceWiring(deps: AttendanceWiringDeps): {
38
+ attendanceCount: (agentName: string) => number;
39
+ sendAwayResponse: (agentName: string, sessionId: string, kind: "request" | "message") => Promise<void>;
40
+ contentTakes: ContentTakeLedger;
41
+ backgroundSeals: Set<Promise<unknown>>;
42
+ awayAckSent: Set<string>;
43
+ };
44
+ //# sourceMappingURL=attendance-wiring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attendance-wiring.d.ts","sourceRoot":"","sources":["../src/attendance-wiring.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAmB,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAKxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,kBAAkB,CAAC;IACvC;;;OAGG;IACH,kBAAkB,EAAE,WAAW,CAAC,MAAM,EAAE;QAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IACzE,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACvC,2FAA2F;IAC3F,eAAe,EAAE,qBAAqB,CAAC;IACvC;;;OAGG;IACH,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IAC1D,yBAAyB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACvC,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,cAAc,KAAK,IAAI,CAAC,CAAC;IACtE,wBAAwB,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC,CAAC;IACrE,+DAA+D;IAC/D,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,oBAAoB,EAAE,CACpB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,MAAM,KAClB,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAChC;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,oBAAoB;iCAyB3B,MAAM,KAAG,MAAM;kCAiCR,MAAM,aAAa,MAAM,QAAQ,SAAS,GAAG,SAAS,KAAG,OAAO,CAAC,IAAI,CAAC;;;;EAuWlH"}