@cello-protocol/daemon 0.0.223 → 0.0.225

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 (58) hide show
  1. package/dist/daemon-status-report.d.ts +3 -1
  2. package/dist/daemon-status-report.d.ts.map +1 -1
  3. package/dist/daemon-status-report.js +12 -12
  4. package/dist/daemon-status-report.js.map +1 -1
  5. package/dist/daemon.js +3 -3
  6. package/dist/daemon.js.map +1 -1
  7. package/dist/db-identity-store.d.ts +20 -0
  8. package/dist/db-identity-store.d.ts.map +1 -1
  9. package/dist/db-identity-store.js +42 -2
  10. package/dist/db-identity-store.js.map +1 -1
  11. package/dist/inbound-sessions.d.ts +5 -0
  12. package/dist/inbound-sessions.d.ts.map +1 -1
  13. package/dist/inbound-sessions.js +27 -1
  14. package/dist/inbound-sessions.js.map +1 -1
  15. package/dist/initiate-session-handler.d.ts +5 -0
  16. package/dist/initiate-session-handler.d.ts.map +1 -1
  17. package/dist/initiate-session-handler.js +15 -1
  18. package/dist/initiate-session-handler.js.map +1 -1
  19. package/dist/notification-handlers.d.ts.map +1 -1
  20. package/dist/notification-handlers.js +11 -1
  21. package/dist/notification-handlers.js.map +1 -1
  22. package/dist/park-recovery.d.ts.map +1 -1
  23. package/dist/park-recovery.js +17 -0
  24. package/dist/park-recovery.js.map +1 -1
  25. package/dist/refusal-reasons.d.ts +6 -0
  26. package/dist/refusal-reasons.d.ts.map +1 -1
  27. package/dist/refusal-reasons.js +11 -0
  28. package/dist/refusal-reasons.js.map +1 -1
  29. package/dist/register-handler.d.ts.map +1 -1
  30. package/dist/register-handler.js +17 -1
  31. package/dist/register-handler.js.map +1 -1
  32. package/dist/registration-manager.d.ts +7 -1
  33. package/dist/registration-manager.d.ts.map +1 -1
  34. package/dist/registration-manager.js +81 -5
  35. package/dist/registration-manager.js.map +1 -1
  36. package/dist/registration-persistence.d.ts +28 -0
  37. package/dist/registration-persistence.d.ts.map +1 -1
  38. package/dist/registration-persistence.js +23 -0
  39. package/dist/registration-persistence.js.map +1 -1
  40. package/dist/screening-status.d.ts +15 -0
  41. package/dist/screening-status.d.ts.map +1 -0
  42. package/dist/screening-status.js +65 -0
  43. package/dist/screening-status.js.map +1 -0
  44. package/dist/session-ceremony.d.ts +6 -0
  45. package/dist/session-ceremony.d.ts.map +1 -1
  46. package/dist/session-ceremony.js +13 -0
  47. package/dist/session-ceremony.js.map +1 -1
  48. package/dist/session-content-ingest.d.ts.map +1 -1
  49. package/dist/session-content-ingest.js +18 -0
  50. package/dist/session-content-ingest.js.map +1 -1
  51. package/dist/signaling-wiring.d.ts +1 -1
  52. package/dist/signaling-wiring.d.ts.map +1 -1
  53. package/dist/signaling-wiring.js +4 -3
  54. package/dist/signaling-wiring.js.map +1 -1
  55. package/dist/types.d.ts +17 -0
  56. package/dist/types.d.ts.map +1 -1
  57. package/dist/types.js.map +1 -1
  58. package/package.json +5 -5
@@ -40,6 +40,22 @@ export function registerRegisterHandler(deps) {
40
40
  if (!preAuthToken) {
41
41
  return { ok: false, reason: "missing_preauth_token", guidance: "Registration requires a 'preAuthToken' issued by the CELLO Operations Agent (Telegram). Obtain one, then retry 'cello register-agent'." };
42
42
  }
43
+ // M16: a broadcast channel is registered with `channel: true` AND the administering agent's
44
+ // pubkey. The two travel together or not at all. The manager checks the pubkey's shape.
45
+ const channelParam = params?.channel;
46
+ const adminPubkeyParam = params?.adminPubkeyHex;
47
+ if (channelParam !== undefined && channelParam !== true) {
48
+ return { ok: false, reason: "invalid_channel_registration", guidance: "'channel' must be true to register a broadcast channel, or omitted for an ordinary agent." };
49
+ }
50
+ if (channelParam === true && typeof adminPubkeyParam !== "string") {
51
+ return { ok: false, reason: "invalid_channel_registration", guidance: "Registering a channel requires 'adminPubkeyHex': the public key of the agent that will administer it." };
52
+ }
53
+ if (channelParam === undefined && adminPubkeyParam !== undefined) {
54
+ return { ok: false, reason: "invalid_channel_registration", guidance: "'adminPubkeyHex' only applies to a channel registration. Pass 'channel: true' with it, or omit both for an ordinary agent." };
55
+ }
56
+ const channelOpts = channelParam === true
57
+ ? { channel: true, adminPubkeyHex: adminPubkeyParam }
58
+ : undefined;
43
59
  const keyProvider = keyProviders.get(name);
44
60
  if (!keyProvider) {
45
61
  return { ok: false, reason: "agent_not_found", guidance: `Agent '${name}' does not exist. Create it first with 'cello create-agent ${name}', then retry 'cello register-agent'.` };
@@ -197,7 +213,7 @@ export function registerRegisterHandler(deps) {
197
213
  logger,
198
214
  });
199
215
  try {
200
- const result = await new RegistrationManager(ctx).register(phoneStub, preAuthToken);
216
+ const result = await new RegistrationManager(ctx).register(phoneStub, preAuthToken, channelOpts);
201
217
  if ("error" in result) {
202
218
  logger.warn("registration.failed", { agentName: name, reason: result.error });
203
219
  // Terminal failure for THIS agent — drop its dedicated signaling manager so it
@@ -1 +1 @@
1
- {"version":3,"file":"register-handler.js","sourceRoot":"","sources":["../src/register-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register-handler.js","sourceRoot":"","sources":["../src/register-handler.ts"],"names":[],"mappings":"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"}
@@ -69,6 +69,12 @@ export interface RegistrationContext {
69
69
  setPendingDkgReadyResolve(resolve: ((frame: Record<string, unknown>) => void) | null): void;
70
70
  setPendingRegisterResolve(resolve: ((frame: Record<string, unknown>) => void) | null): void;
71
71
  }
72
+ /** M16: registering a broadcast channel. Both facts are fixed at registration and never change. */
73
+ export interface ChannelRegistrationOpts {
74
+ channel: true;
75
+ /** 64 lowercase hex chars: the pubkey of the agent that administers the channel. */
76
+ adminPubkeyHex: string;
77
+ }
72
78
  export declare class RegistrationManager {
73
79
  #private;
74
80
  constructor(ctx: RegistrationContext);
@@ -80,7 +86,7 @@ export declare class RegistrationManager {
80
86
  * Register this agent with the directory.
81
87
  * REG-001: ML-DSA keygen → signaling stream → register_request → DKG → register_success.
82
88
  */
83
- register(phoneStub?: string, preAuthToken?: string): Promise<RegistrationState | {
89
+ register(phoneStub?: string, preAuthToken?: string, channelOpts?: ChannelRegistrationOpts): Promise<RegistrationState | {
84
90
  error: string;
85
91
  detail?: string;
86
92
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"registration-manager.d.ts","sourceRoot":"","sources":["../src/registration-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAExE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AACnF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAG1D,yFAAyF;AACzF,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;gFAE4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,6BAA6B,GAAG,IAAI,CAAC;IAC3D,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C;;;;OAIG;IACH,OAAO,IAAI,SAAS,GAAG,IAAI,CAAC;IAC5B,cAAc,IAAI,MAAM,GAAG,IAAI,CAAC;IAChC,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,oBAAoB,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC;IACzE;;;;;;;;OAQG;IACH,sBAAsB,IAAI,kBAAkB,EAAE,GAAG,IAAI,CAAC;IACtD,kBAAkB,IAAI,gBAAgB,GAAG,SAAS,CAAC;IACnD,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACnD,kBAAkB,IAAI,UAAU,GAAG,IAAI,CAAC;IACxC,kBAAkB,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC7C,yFAAyF;IACzF,oBAAoB,IAAI,OAAO,CAAC;IAChC,kFAAkF;IAClF,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACjF,yBAAyB,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;IAC5F,yBAAyB,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;CAC7F;AAED,qBAAa,mBAAmB;;gBAOlB,GAAG,EAAE,mBAAmB;IAMpC,oBAAoB,IAAI,iBAAiB,GAAG,IAAI;IAIhD,oBAAoB,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,GAAG,IAAI;IAI3D,gBAAgB,IAAI,gBAAgB,GAAG,IAAI;IAI3C,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,GAAG,IAAI;IA6HzD;;;OAGG;IACG,QAAQ,CAAC,SAAS,GAAE,MAAW,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAsX/H"}
1
+ {"version":3,"file":"registration-manager.d.ts","sourceRoot":"","sources":["../src/registration-manager.ts"],"names":[],"mappings":"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"}
@@ -11,10 +11,12 @@
11
11
  * resolvers (see DaemonRegistrationContext). The register() control flow is
12
12
  * otherwise unchanged.
13
13
  */
14
+ import { randomUUID } from "node:crypto";
14
15
  import { encodeCbor } from "@cello-protocol/protocol-types";
15
16
  import { mlDsaKeygen, mlDsaKeygenWithBytes, FileMlDsaKeyProvider, buildKeyBindingTbs } from "@cello-protocol/crypto";
16
17
  import { NetworkDirectoryNode, runNetworkDkg } from "./network-directory-node.js";
17
18
  import { extractErrorMessage } from "./error-message.js";
19
+ const ADMIN_PUBKEY_HEX_RE = /^[0-9a-f]{64}$/;
18
20
  export class RegistrationManager {
19
21
  #ctx;
20
22
  // Registration state owned by this manager
@@ -62,7 +64,7 @@ export class RegistrationManager {
62
64
  * gated on the ml-dsa blob — so an agent is never left durably-unregistered when the blob is absent.
63
65
  * Requires `this.#ctx.persistence` to be present (callers check).
64
66
  */
65
- #identityPersistOps(state, mlDsaPubkeyHex, mlDsaSecretKeyBlob, keyBinding) {
67
+ #identityPersistOps(state, mlDsaPubkeyHex, mlDsaSecretKeyBlob, keyBinding, channelOpts) {
66
68
  const persistence = this.#ctx.persistence;
67
69
  const ops = [];
68
70
  if (mlDsaSecretKeyBlob) {
@@ -74,9 +76,52 @@ export class RegistrationManager {
74
76
  mlDsaPubkey: state.ml_dsa_pubkey,
75
77
  registeredAt: state.registered_at,
76
78
  keyBinding,
79
+ // Only ever reached after #channelEchoed passed, so a persisted channel is one the directory
80
+ // recorded as a channel.
81
+ ...(channelOpts ? { channel: true, adminPubkey: channelOpts.adminPubkeyHex } : {}),
77
82
  }));
78
83
  return ops;
79
84
  }
85
+ /**
86
+ * M16: a CHANNEL registration only counts when the directory says it stored a channel.
87
+ *
88
+ * ⚠️ NO SILENT DOWNGRADE. A directory that does not know the `channel` field ignores it and
89
+ * registers an ordinary agent. Accepting that answer would leave an identity this daemon treats as
90
+ * a channel and every directory treats as an agent that may converse, which nobody would notice.
91
+ * So a missing echo FAILS the registration: nothing persisted, nothing cached, one error event.
92
+ * This applies to every frame that ends a registration, including an `already_registered`
93
+ * answer, which hands back an existing profile without running a ceremony.
94
+ *
95
+ * Returns null when the registration may proceed, or the error to return verbatim.
96
+ */
97
+ #channelEchoed(channelOpts, frame, correlationId, kLocalPubkeyHex) {
98
+ // Immutability, the other direction: the directory holds this identity as a channel, and this
99
+ // registration asked for an ordinary agent. Accepting it would record the channel locally as an
100
+ // agent that may converse.
101
+ if (!channelOpts) {
102
+ if (frame["channel"] !== true)
103
+ return null;
104
+ return {
105
+ error: "channel_fields_immutable",
106
+ detail: "The directory holds this identity as a broadcast channel, and a channel stays a channel. Register it with its channel settings, or use a different agent for ordinary conversations.",
107
+ };
108
+ }
109
+ if (frame["channel"] === true)
110
+ return null;
111
+ this.#ctx.logger.error("registration.channel.echo_missing", {
112
+ correlationId,
113
+ k_local_pubkey: kLocalPubkeyHex,
114
+ frameType: frame["type"],
115
+ impact: "a channel registration was answered without channel: true, so the directory did not record this identity as a channel; the registration failed and no registration state was persisted",
116
+ });
117
+ // A `register_success` means the directory has just STORED this identity, as an ordinary agent.
118
+ // Retrying cannot change that: every later attempt gets `already_registered`. An
119
+ // `already_registered` answer can mean the same, or nodes that predate channel support.
120
+ const detail = frame["type"] === "register_success"
121
+ ? "The directory registered this identity as an ordinary agent, not a channel: its nodes do not support channels yet. That profile is now fixed, so this identity cannot become a channel. Once the directory supports channels, register the channel under a new identity."
122
+ : "The directory already holds this identity without a channel flag. Either it was registered as an ordinary agent, which cannot change, or the directory nodes do not support channels yet. Register the channel under a new identity once they do.";
123
+ return { error: "directory_missing_channel_support", detail };
124
+ }
80
125
  /**
81
126
  * 038-KEYBIND — sign the statement "this FROST group key is mine" with K_local.
82
127
  *
@@ -146,11 +191,12 @@ export class RegistrationManager {
146
191
  * Register this agent with the directory.
147
192
  * REG-001: ML-DSA keygen → signaling stream → register_request → DKG → register_success.
148
193
  */
149
- async register(phoneStub = "", preAuthToken) {
194
+ async register(phoneStub = "", preAuthToken, channelOpts) {
150
195
  // Step 1: already registered
151
196
  if (this.#registrationState) {
152
197
  return { error: "already_registered" };
153
198
  }
199
+ const correlationId = randomUUID();
154
200
  // Step 2: generate or load ML-DSA-44 keypair
155
201
  let mlDsaProvider;
156
202
  let mlDsaSecretKeyBlob = null;
@@ -178,6 +224,22 @@ export class RegistrationManager {
178
224
  this.#ctx.setMyPubkeyHex(Buffer.from(pubkey).toString("hex"));
179
225
  }
180
226
  const kLocalPubkeyHex = this.#ctx.getMyPubkeyHex();
227
+ // Step 4a (M16): a channel names its administrator, and cannot administer itself. Refused
228
+ // before anything reaches the directory.
229
+ if (channelOpts) {
230
+ if (!ADMIN_PUBKEY_HEX_RE.test(channelOpts.adminPubkeyHex)) {
231
+ return {
232
+ error: "invalid_channel_registration",
233
+ detail: "adminPubkeyHex must be exactly 64 lowercase hex characters (a 32-byte public key).",
234
+ };
235
+ }
236
+ if (channelOpts.adminPubkeyHex === kLocalPubkeyHex.toLowerCase()) {
237
+ return {
238
+ error: "invalid_channel_registration",
239
+ detail: "A channel cannot administer itself: adminPubkeyHex must be a different agent's public key.",
240
+ };
241
+ }
242
+ }
181
243
  // Step 5: send register_request (SignalingManager CBOR/lp-encodes the frame)
182
244
  // M8B quorum: include the nodeIds we can reach right now (our resolved roster) so the directory can
183
245
  // pick the DKG quorum Q = these ∩ its manifest, |Q| ≥ T=majority(N). getConsortiumEndpoints() is
@@ -190,6 +252,9 @@ export class RegistrationManager {
190
252
  k_local_pubkey: kLocalPubkeyHex,
191
253
  ml_dsa_pubkey: mlDsaPubkeyHex,
192
254
  ...(reachableNodeIds ? { reachable_node_ids: reachableNodeIds } : {}),
255
+ // M16: present only for a channel. An ordinary registration carries neither key — absent
256
+ // means not a channel, and there is no `channel: false` on the wire.
257
+ ...(channelOpts ? { channel: true, admin_pubkey: channelOpts.adminPubkeyHex } : {}),
193
258
  });
194
259
  if (!regSent.ok) {
195
260
  return { error: regSent.reason ?? "directory_unreachable" };
@@ -221,6 +286,9 @@ export class RegistrationManager {
221
286
  registered_at: Date.now(),
222
287
  status: "active",
223
288
  };
289
+ const echo = this.#channelEchoed(channelOpts, dkgReadyFrame, correlationId, kLocalPubkeyHex);
290
+ if (echo)
291
+ return echo;
224
292
  // SI-003: persist BEFORE caching the in-memory registered state, so a persist failure does
225
293
  // not leave a phantom "registered" manager (which would short-circuit a retry). Registration
226
294
  // state is persisted whenever persistence is present — NOT gated on the ml-dsa blob (so an
@@ -231,7 +299,7 @@ export class RegistrationManager {
231
299
  const minted = await this.#mintCorroboratedKeyBinding(kLocalPubkeyHex, state.primary_pubkey);
232
300
  if (!minted.ok)
233
301
  return { error: minted.error, detail: minted.detail };
234
- const ok = await this.#persistAll(this.#identityPersistOps(state, mlDsaPubkeyHex, mlDsaSecretKeyBlob, minted.keyBinding));
302
+ const ok = await this.#persistAll(this.#identityPersistOps(state, mlDsaPubkeyHex, mlDsaSecretKeyBlob, minted.keyBinding, channelOpts));
235
303
  if (!ok)
236
304
  return { error: "identity_persist_failed" };
237
305
  }
@@ -436,6 +504,9 @@ export class RegistrationManager {
436
504
  registered_at: Date.now(),
437
505
  status: "active",
438
506
  };
507
+ const echo = this.#channelEchoed(channelOpts, responseWithTimeout, correlationId, kLocalPubkeyHex);
508
+ if (echo)
509
+ return echo;
439
510
  // SI-003: persist before caching the registered state (see the dkg_ready branch).
440
511
  if (this.#ctx.persistence) {
441
512
  // 038-KEYBIND: the DKG ran, but the directory already held a profile and answered with
@@ -445,7 +516,7 @@ export class RegistrationManager {
445
516
  const minted = await this.#mintCorroboratedKeyBinding(kLocalPubkeyHex, state.primary_pubkey);
446
517
  if (!minted.ok)
447
518
  return { error: minted.error, detail: minted.detail };
448
- const ok = await this.#persistAll(this.#identityPersistOps(state, mlDsaPubkeyHex, mlDsaSecretKeyBlob, minted.keyBinding));
519
+ const ok = await this.#persistAll(this.#identityPersistOps(state, mlDsaPubkeyHex, mlDsaSecretKeyBlob, minted.keyBinding, channelOpts));
449
520
  if (!ok)
450
521
  return { error: "identity_persist_failed" };
451
522
  }
@@ -455,6 +526,11 @@ export class RegistrationManager {
455
526
  }
456
527
  return { error: reason };
457
528
  }
529
+ // Step 6a (M16): the echo check. A channel the directory did not store as a channel is a failed
530
+ // registration, not an ordinary agent.
531
+ const echo = this.#channelEchoed(channelOpts, responseWithTimeout, correlationId, kLocalPubkeyHex);
532
+ if (echo)
533
+ return echo;
458
534
  // Step 7: build RegistrationState and cache
459
535
  const agentId = responseWithTimeout["agent_id"];
460
536
  const primaryPubkey = responseWithTimeout["primary_pubkey"];
@@ -497,7 +573,7 @@ export class RegistrationManager {
497
573
  // SI-003: AWAIT the final identity persists before reporting success, and cache the registered
498
574
  // state only after they commit — a register-success guarantees a durable identity row.
499
575
  if (this.#ctx.persistence) {
500
- const ok = await this.#persistAll(this.#identityPersistOps(state, mlDsaPubkeyHex, mlDsaSecretKeyBlob, keyBinding));
576
+ const ok = await this.#persistAll(this.#identityPersistOps(state, mlDsaPubkeyHex, mlDsaSecretKeyBlob, keyBinding, channelOpts));
501
577
  if (!ok)
502
578
  return { error: "identity_persist_failed" };
503
579
  }
@@ -1 +1 @@
1
- {"version":3,"file":"registration-manager.js","sourceRoot":"","sources":["../src/registration-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registration-manager.js","sourceRoot":"","sources":["../src/registration-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAGrH,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAOlF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AA2DzD,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AAE7C,MAAM,OAAO,mBAAmB;IACrB,IAAI,CAAsB;IAEnC,2CAA2C;IAC3C,kBAAkB,GAA6B,IAAI,CAAC;IACpD,cAAc,GAA4B,IAAI,CAAC;IAE/C,YAAY,GAAwB;QAClC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;IAClB,CAAC;IAED,gFAAgF;IAEhF,oBAAoB;QAClB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED,oBAAoB,CAAC,KAA+B;QAClD,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;IAClC,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,gBAAgB,CAAC,QAAiC;QAChD,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,WAAW,CAAC,GAA+B;QAC/C,IAAI,CAAC;YACH,KAAK,MAAM,EAAE,IAAI,GAAG;gBAAE,MAAM,EAAE,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE;gBACxD,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC;aAChC,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,mBAAmB,CACjB,KAAwB,EACxB,cAAsB,EACtB,kBAAqC,EACrC,UAAkB,EAClB,WAAgD;QAEhD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAY,CAAC;QAC3C,MAAM,GAAG,GAA+B,EAAE,CAAC;QAC3C,IAAI,kBAAkB,EAAE,CAAC;YACvB,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,mBAAmB,CAAC,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC;QACtH,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,wBAAwB,CAAC;YAClD,OAAO,EAAE,KAAK,CAAC,QAAQ;YACvB,aAAa,EAAE,KAAK,CAAC,cAAc;YACnC,WAAW,EAAE,KAAK,CAAC,aAAa;YAChC,YAAY,EAAE,KAAK,CAAC,aAAa;YACjC,UAAU;YACV,6FAA6F;YAC7F,yBAAyB;YACzB,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnF,CAAC,CAAC,CAAC;QACJ,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;;;;;;;OAWG;IACH,cAAc,CACZ,WAAgD,EAChD,KAA8B,EAC9B,aAAqB,EACrB,eAAuB;QAEvB,8FAA8F;QAC9F,gGAAgG;QAChG,2BAA2B;QAC3B,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC;YAC3C,OAAO;gBACL,KAAK,EAAE,0BAA0B;gBACjC,MAAM,EACJ,sLAAsL;aACzL,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE;YAC1D,aAAa;YACb,cAAc,EAAE,eAAe;YAC/B,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC;YACxB,MAAM,EAAE,wLAAwL;SACjM,CAAC,CAAC;QACH,gGAAgG;QAChG,iFAAiF;QACjF,wFAAwF;QACxF,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,kBAAkB;YACjD,CAAC,CAAC,0QAA0Q;YAC5Q,CAAC,CAAC,mPAAmP,CAAC;QACxP,OAAO,EAAE,KAAK,EAAE,mCAAmC,EAAE,MAAM,EAAE,CAAC;IAChE,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,eAAe,CAAC,eAAuB,EAAE,gBAAwB;QACrE,MAAM,GAAG,GAAG,kBAAkB,CAC5B,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,EACnD,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC,CACrD,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,CAAC,2BAA2B,CAC/B,eAAuB,EACvB,kBAA0B;QAE1B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,uBAAuB,EAAE,CAAC;QACrE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE;gBAC1D,WAAW,EAAE,eAAe;gBAC5B,MAAM,EAAE,wOAAwO;aACjP,CAAC,CAAC;YACH,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,4BAA4B;gBACnC,MAAM,EACJ,sUAAsU;aACzU,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,KAAK,kBAAkB,CAAC,WAAW,EAAE,EAAE,CAAC;YAC3E,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,EAAE;gBAC7D,WAAW,EAAE,eAAe;gBAC5B,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;gBAC/C,cAAc,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;gBAC/C,MAAM,EAAE,mOAAmO;aAC5O,CAAC,CAAC;YACH,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,sCAAsC;gBAC7C,MAAM,EACJ,uRAAuR;aAC1R,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,kBAAkB,CAAC,EAAE,CAAC;IACnG,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,CACZ,YAAoB,EAAE,EACtB,YAAqB,EACrB,WAAqC;QAErC,6BAA6B;QAC7B,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,OAAO,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC;QACzC,CAAC;QACD,MAAM,aAAa,GAAG,UAAU,EAAE,CAAC;QAEnC,6CAA6C;QAC7C,IAAI,aAA+B,CAAC;QACpC,IAAI,kBAAkB,GAAsB,IAAI,CAAC;QACjD,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YAC3B,aAAa,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1E,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjC,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,MAAM,oBAAoB,EAAE,CAAC;YACjE,aAAa,GAAG,QAAQ,CAAC;YACzB,kBAAkB,GAAG,aAAa,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,aAAa,GAAG,MAAM,WAAW,EAAE,CAAC;QACtC,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,YAAY,EAAE,CAAC;QACvD,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAEhE,kEAAkE;QAClE,+EAA+E;QAC/E,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC;YACtC,OAAO,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC;QAC5C,CAAC;QAED,iCAAiC;QACjC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;YAC1D,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAChE,CAAC;QACD,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAG,CAAC;QAEpD,0FAA0F;QAC1F,yCAAyC;QACzC,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC1D,OAAO;oBACL,KAAK,EAAE,8BAA8B;oBACrC,MAAM,EAAE,oFAAoF;iBAC7F,CAAC;YACJ,CAAC;YACD,IAAI,WAAW,CAAC,cAAc,KAAK,eAAe,CAAC,WAAW,EAAE,EAAE,CAAC;gBACjE,OAAO;oBACL,KAAK,EAAE,8BAA8B;oBACrC,MAAM,EAAE,4FAA4F;iBACrG,CAAC;YACJ,CAAC;QACH,CAAC;QAED,6EAA6E;QAC7E,oGAAoG;QACpG,iGAAiG;QACjG,sFAAsF;QACtF,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC3D,MAAM,gBAAgB,GAAG,eAAe,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC;YACjD,IAAI,EAAE,kBAAkB;YACxB,UAAU,EAAE,SAAS;YACrB,cAAc,EAAE,eAAe;YAC/B,aAAa,EAAE,cAAc;YAC7B,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrE,yFAAyF;YACzF,qEAAqE;YACrE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpF,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;YAChB,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,IAAI,uBAAuB,EAAE,CAAC;QAC9D,CAAC;QAED,2BAA2B;QAC3B,MAAM,oBAAoB,GAAG,MAAM,CAAC;QACpC,IAAI,qBAAgE,CAAC;QACrE,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,IAAI,CAA0B;YAChE,IAAI,OAAO,CAA0B,CAAC,OAAO,EAAE,EAAE;gBAC/C,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;YAC/C,CAAC,CAAC;YACF,IAAI,OAAO,CAA0B,CAAC,OAAO,EAAE,EAAE;gBAC/C,qBAAqB,GAAG,UAAU,CAAC,GAAG,EAAE;oBACtC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;oBAC1C,OAAO,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;gBACzD,CAAC,EAAE,oBAAoB,CAAC,CAAC;YAC3B,CAAC,CAAC;SACH,CAAC,CAAC;QACH,YAAY,CAAC,qBAAqB,CAAC,CAAC;QAEpC,IAAI,aAAa,CAAC,MAAM,CAAC,KAAK,WAAW,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAI,aAAa,CAAC,QAAQ,CAAwB,IAAI,SAAS,CAAC;YAC5E,IACE,MAAM,KAAK,oBAAoB;gBAC/B,aAAa,CAAC,UAAU,CAAC;gBACzB,aAAa,CAAC,gBAAgB,CAAC,EAC/B,CAAC;gBACD,MAAM,KAAK,GAAsB;oBAC/B,QAAQ,EAAE,aAAa,CAAC,UAAU,CAAW;oBAC7C,cAAc,EAAE,aAAa,CAAC,gBAAgB,CAAW;oBACzD,aAAa,EAAG,aAAa,CAAC,eAAe,CAAwB,IAAI,cAAc;oBACvF,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE;oBACzB,MAAM,EAAE,QAAQ;iBACjB,CAAC;gBACF,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;gBAC7F,IAAI,IAAI;oBAAE,OAAO,IAAI,CAAC;gBACtB,2FAA2F;gBAC3F,6FAA6F;gBAC7F,2FAA2F;gBAC3F,wFAAwF;gBACxF,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;oBAC1B,0FAA0F;oBAC1F,sFAAsF;oBACtF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,eAAe,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;oBAC7F,IAAI,CAAC,MAAM,CAAC,EAAE;wBAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;oBACtE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;oBACvI,IAAI,CAAC,EAAE;wBAAE,OAAO,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC;gBACvD,CAAC;gBACD,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;gBAChC,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;gBACpC,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAC3B,CAAC;QAED,8BAA8B;QAC9B,MAAM,OAAO,GAAG,aAAa,CAAC,SAAS,CAAW,CAAC;QACnD,MAAM,YAAY,GAAG,aAAa,CAAC,cAAc,CAAW,CAAC;QAC7D,MAAM,SAAS,GAAG,aAAa,CAAC,WAAW,CAAW,CAAC;QACvD,mEAAmE;QACnE,0EAA0E;QAC1E,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACpC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb;;;;;;;;;;eAUG;YACH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mCAAmC,EAAE;gBACzD,MAAM,EAAE,4LAA4L;aACrM,CAAC,CAAC;YACH,6FAA6F;YAC7F,uDAAuD;YACvD,OAAO;gBACL,KAAK,EAAE,4BAA4B;gBACnC,MAAM,EACJ,6SAA6S;aAChT,CAAC;QACJ,CAAC;QACD,0FAA0F;QAC1F,2FAA2F;QAC3F,0FAA0F;QAC1F,4EAA4E;QAC5E,qFAAqF;QACrF,0FAA0F;QAC1F,yFAAyF;QACzF,sFAAsF;QACtF,wFAAwF;QACxF,6EAA6E;QAC7E,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAClD,IAAI,cAAsC,CAAC;QAC3C,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,kGAAkG;YAClG,kGAAkG;YAClG,kGAAkG;YAClG,2FAA2F;YAC3F,mGAAmG;YACnG,IAAI,MAAM,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;gBACnC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE;oBACxD,cAAc,EAAE,MAAM,CAAC,MAAM;oBAC7B,oBAAoB,EAAE,YAAY;iBACnC,CAAC,CAAC;gBACH,OAAO,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC;YAC1C,CAAC;YACD,cAAc,GAAG,MAAM,CAAC,GAAG,CACzB,CAAC,EAAE,EAAE,EAAE,CACL,IAAI,oBAAoB,CAAC;gBACvB,EAAE,EAAE,EAAE,CAAC,MAAM;gBACb,IAAI,EAAE,OAAO;gBACb,eAAe,EAAE,EAAE,CAAC,MAAM;gBAC1B,mBAAmB,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;gBACnC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;aACzB,CAAC,CACL,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,2EAA2E;YAC3E,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC3D,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACvB,OAAO,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC;YAC5C,CAAC;YACD,cAAc,GAAG;gBACf,IAAI,oBAAoB,CAAC;oBACvB,EAAE,EAAE,iBAAiB,CAAC,OAAO;oBAC7B,IAAI,EAAE,OAAO;oBACb,eAAe,EAAE,iBAAiB,CAAC,OAAO;oBAC1C,mBAAmB,EAAE,iBAAiB,CAAC,UAAU;oBACjD,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;iBACzB,CAAC;aACH,CAAC;QACJ,CAAC;QACD,KAAK,OAAO,CAAC;QACb,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QAC9D,IAAI,mBAA2B,CAAC;QAChC,6FAA6F;QAC7F,sFAAsF;QACtF,IAAI,cAAc,GAAgF,IAAI,CAAC;QACvG,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,iBAAiB,EAAE;gBACvD,SAAS;gBACT,YAAY;gBACZ,cAAc;gBACd,YAAY;gBACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ;aACzD,CAAC,CAAC;YACH,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC3E,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;YACtE,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC1B,cAAc,GAAG;oBACf,OAAO;oBACP,aAAa,EAAE,mBAAmB;oBAClC,UAAU,EAAE,SAAS,CAAC,UAAU;oBAChC,YAAY,EAAE,SAAS,CAAC,YAAY;oBACpC,SAAS,EAAE,SAAS,CAAC,SAAS;oBAC9B,YAAY,EAAE,SAAS,CAAC,YAAY;oBACpC,eAAe,EAAE,UAAU,CAAC,SAAS,CAAC,WAAW,CAAe;oBAChE,mBAAmB,EAAE,UAAU,CAAC,SAAS,CAAC,eAAe,CAAe;oBACxE,SAAS,EAAE,aAAa;oBACxB,gGAAgG;oBAChG,4FAA4F;oBAC5F,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;iBACnE,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,6FAA6F;YAC7F,6FAA6F;YAC7F,kFAAkF;YAClF,8EAA8E;YAC9E,kFAAkF;YAClF,4FAA4F;YAC5F,6FAA6F;YAC7F,8EAA8E;YAC9E,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE;gBAChD,MAAM,EAAE,mBAAmB,CAAC,GAAG,CAAC;gBAChC,0FAA0F;gBAC1F,mEAAmE;gBACnE,8FAA8F;gBAC9F,uFAAuF;gBACvF,WAAW,EAAE,eAAe;gBAC5B,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;gBAClE,6FAA6F;gBAC7F,6BAA6B;gBAC7B,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;aACpD,CAAC,CAAC;YACH,6FAA6F;YAC7F,wFAAwF;YACxF,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;QACnE,CAAC;QACD,iGAAiG;QACjG,0FAA0F;QAC1F,IAAI,cAAc,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;YAC1C,MAAM,KAAK,GAAG,cAAc,CAAC;YAC7B,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACnF,IAAI,CAAC,EAAE;gBAAE,OAAO,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC;QACvD,CAAC;QAED;;;;;;;;;;;WAWG;QACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;QAEpF,0EAA0E;QAC1E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC;YACjD,IAAI,EAAE,cAAc;YACpB,cAAc,EAAE,mBAAmB;YACnC,WAAW,EAAE,UAAU;SACxB,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;YAChB,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,IAAI,uBAAuB,EAAE,CAAC;QAC9D,CAAC;QAED,mDAAmD;QACnD,MAAM,mBAAmB,GAAG,MAAM,CAAC;QACnC,IAAI,aAAwD,CAAC;QAC7D,MAAM,mBAAmB,GAAG,MAAM,OAAO,CAAC,IAAI,CAA0B;YACtE,IAAI,OAAO,CAA0B,CAAC,OAAO,EAAE,EAAE;gBAC/C,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;YAC/C,CAAC,CAAC;YACF,IAAI,OAAO,CAA0B,CAAC,OAAO,EAAE,EAAE;gBAC/C,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC9B,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;oBAC1C,OAAO,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;gBACzD,CAAC,EAAE,mBAAmB,CAAC,CAAC;YAC1B,CAAC,CAAC;SACH,CAAC,CAAC;QACH,YAAY,CAAC,aAAa,CAAC,CAAC;QAE5B,IAAI,mBAAmB,CAAC,MAAM,CAAC,KAAK,kBAAkB,EAAE,CAAC;YACvD,MAAM,MAAM,GAAI,mBAAmB,CAAC,QAAQ,CAAwB,IAAI,SAAS,CAAC;YAClF,IACE,MAAM,KAAK,oBAAoB;gBAC/B,mBAAmB,CAAC,UAAU,CAAC;gBAC/B,mBAAmB,CAAC,gBAAgB,CAAC,EACrC,CAAC;gBACD,MAAM,KAAK,GAAsB;oBAC/B,QAAQ,EAAE,mBAAmB,CAAC,UAAU,CAAW;oBACnD,cAAc,EAAE,mBAAmB,CAAC,gBAAgB,CAAW;oBAC/D,aAAa,EAAG,mBAAmB,CAAC,eAAe,CAAwB,IAAI,cAAc;oBAC7F,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE;oBACzB,MAAM,EAAE,QAAQ;iBACjB,CAAC;gBACF,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,mBAAmB,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;gBACnG,IAAI,IAAI;oBAAE,OAAO,IAAI,CAAC;gBACtB,kFAAkF;gBAClF,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;oBAC1B,uFAAuF;oBACvF,qFAAqF;oBACrF,wFAAwF;oBACxF,4BAA4B;oBAC5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,eAAe,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;oBAC7F,IAAI,CAAC,MAAM,CAAC,EAAE;wBAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;oBACtE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;oBACvI,IAAI,CAAC,EAAE;wBAAE,OAAO,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC;gBACvD,CAAC;gBACD,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;gBAChC,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;gBACpC,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAC3B,CAAC;QAED,gGAAgG;QAChG,uCAAuC;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,mBAAmB,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;QACnG,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QAEtB,4CAA4C;QAC5C,MAAM,OAAO,GAAG,mBAAmB,CAAC,UAAU,CAAW,CAAC;QAC1D,MAAM,aAAa,GAAG,mBAAmB,CAAC,gBAAgB,CAAW,CAAC;QAEtE;;;;;;;;;;;;;;;;WAgBG;QACH,IAAI,aAAa,KAAK,mBAAmB,EAAE,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,EAAE;gBAC7D,WAAW,EAAE,eAAe;gBAC5B,aAAa,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;gBAC/C,cAAc,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;gBAC1C,MAAM,EAAE,+PAA+P;aACxQ,CAAC,CAAC;YACH,OAAO;gBACL,KAAK,EAAE,sCAAsC;gBAC7C,MAAM,EACJ,wRAAwR;aAC3R,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAsB;YAC/B,QAAQ,EAAE,OAAO;YACjB,cAAc,EAAE,aAAa;YAC7B,aAAa,EAAE,cAAc;YAC7B,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE;YACzB,MAAM,EAAE,QAAQ;SACjB,CAAC;QACF,+FAA+F;QAC/F,uFAAuF;QACvF,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1B,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB,CACxD,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,UAAU,EAAE,WAAW,CACnE,CAAC,CAAC;YACH,IAAI,CAAC,EAAE;gBAAE,OAAO,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC;QACvD,CAAC;QACD,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAChC,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
@@ -33,6 +33,13 @@ export interface RegistrationStateRecord {
33
33
  * re-upload does not have to re-derive it from a value a directory supplied.
34
34
  */
35
35
  keyBinding: string | null;
36
+ /**
37
+ * M16: true when this identity is a broadcast channel. Recorded at registration from what the
38
+ * directory ECHOED, never changed. False for an ordinary agent and for a record written without it.
39
+ */
40
+ channel: boolean;
41
+ /** M16: hex pubkey of the agent that administers this channel; "" when `channel` is false. */
42
+ adminPubkey: string;
36
43
  }
37
44
  export interface MlDsaKeypairRecord {
38
45
  mlDsaPubkey: string;
@@ -84,6 +91,9 @@ export interface DaemonRegistrationPersistence {
84
91
  * material that is only ever together on this machine.
85
92
  */
86
93
  keyBinding: string;
94
+ /** M16: set only for a channel the directory echoed as one. Absent means an ordinary agent. */
95
+ channel?: boolean;
96
+ adminPubkey?: string;
87
97
  }): Promise<void>;
88
98
  persistFrostKeyShare(opts: {
89
99
  epochId: string;
@@ -102,6 +112,22 @@ export interface DaemonRegistrationPersistence {
102
112
  loadMlDsaKeypair(): Promise<MlDsaKeypairRecord | null>;
103
113
  loadActiveFrostKeyShare(): Promise<FrostKeyShareRecord | null>;
104
114
  }
115
+ /**
116
+ * M16: the channel facts of a registration write, checked. A channel without an admin is refused,
117
+ * and so is any write that would CHANGE the facts already recorded for a registered identity:
118
+ * `channel` and `adminPubkey` are fixed at registration. Writing the same facts again is allowed.
119
+ * Shared by both stores so they cannot disagree.
120
+ */
121
+ export declare function checkChannelFacts(incoming: {
122
+ channel?: boolean;
123
+ adminPubkey?: string;
124
+ }, existing: {
125
+ channel: boolean;
126
+ adminPubkey: string;
127
+ } | null): {
128
+ channel: boolean;
129
+ adminPubkey: string;
130
+ };
105
131
  /**
106
132
  * File-backed implementation. One instance is scoped to a single agent's
107
133
  * directory (e.g. ~/.cello/agents/alice/). The directory is created on first
@@ -123,6 +149,8 @@ export declare class FileRegistrationPersistence implements DaemonRegistrationPe
123
149
  mlDsaPubkey: string;
124
150
  registeredAt: number;
125
151
  keyBinding: string;
152
+ channel?: boolean;
153
+ adminPubkey?: string;
126
154
  }): Promise<void>;
127
155
  persistFrostKeyShare(opts: {
128
156
  epochId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"registration-persistence.d.ts","sourceRoot":"","sources":["../src/registration-persistence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registration-persistence.d.ts","sourceRoot":"","sources":["../src/registration-persistence.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,24 @@ const FILE_MLDSA_KEYPAIR = "ml-dsa-keypair.json";
24
24
  const FILE_FROST_SHARE = "frost-share.json";
25
25
  const FILE_AGENT_USER_LINK = "agent-user-link.json";
26
26
  const SECRET_FILE_MODE = 0o600;
27
+ /**
28
+ * M16: the channel facts of a registration write, checked. A channel without an admin is refused,
29
+ * and so is any write that would CHANGE the facts already recorded for a registered identity:
30
+ * `channel` and `adminPubkey` are fixed at registration. Writing the same facts again is allowed.
31
+ * Shared by both stores so they cannot disagree.
32
+ */
33
+ export function checkChannelFacts(incoming, existing) {
34
+ const channel = incoming.channel === true;
35
+ const adminPubkey = channel ? (incoming.adminPubkey ?? "") : "";
36
+ if (channel && adminPubkey === "") {
37
+ throw new Error("invalid_channel_registration: a channel must name its admin pubkey");
38
+ }
39
+ if (existing && (existing.channel !== channel || existing.adminPubkey !== adminPubkey)) {
40
+ throw new Error(`channel_fields_immutable: this identity is registered with channel=${existing.channel}` +
41
+ `${existing.channel ? ` and admin ${existing.adminPubkey}` : ""}; a registration write cannot change that`);
42
+ }
43
+ return { channel, adminPubkey };
44
+ }
27
45
  const hex = (b) => Buffer.from(b).toString("hex");
28
46
  const unhex = (s) => new Uint8Array(Buffer.from(s, "hex"));
29
47
  /**
@@ -70,6 +88,7 @@ export class FileRegistrationPersistence {
70
88
  this.#logger.info("registration.mldsa.persisted", { mlDsaPubkey: opts.mlDsaPubkey });
71
89
  }
72
90
  async persistRegistrationState(opts) {
91
+ const facts = checkChannelFacts(opts, await this.loadRegistrationState());
73
92
  await this.#writeJsonAtomic(FILE_REGISTRATION_STATE, {
74
93
  agentId: opts.agentId,
75
94
  primaryPubkey: opts.primaryPubkey,
@@ -78,6 +97,8 @@ export class FileRegistrationPersistence {
78
97
  // 038-KEYBIND: a public signature, not a secret — but it lives with the rest of the
79
98
  // registration record because it is meaningless apart from the two keys it names.
80
99
  keyBinding: opts.keyBinding,
100
+ channel: facts.channel,
101
+ adminPubkey: facts.adminPubkey,
81
102
  status: "active",
82
103
  });
83
104
  this.#logger.info("registration.state.persisted", {
@@ -135,6 +156,8 @@ export class FileRegistrationPersistence {
135
156
  // NOT `reqStr`: a file written before 038-KEYBIND has no such field, and that is a value to
136
157
  // report (null), not a corrupt-file throw that would make the agent unloadable.
137
158
  keyBinding: typeof obj["keyBinding"] === "string" ? obj["keyBinding"] : null,
159
+ channel: obj["channel"] === true,
160
+ adminPubkey: obj["channel"] === true && typeof obj["adminPubkey"] === "string" ? obj["adminPubkey"] : "",
138
161
  };
139
162
  }
140
163
  async loadMlDsaKeypair() {
@@ -1 +1 @@
1
- {"version":3,"file":"registration-persistence.js","sourceRoot":"","sources":["../src/registration-persistence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registration-persistence.js","sourceRoot":"","sources":["../src/registration-persistence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { ScreeningStatusInfo } from "./types.js";
2
+ /**
3
+ * Never throws: a screener check that could break `cello status` would be a worse defect than the
4
+ * gap it reports. A failure is REPORTED as `unknown` with its cause, never omitted.
5
+ *
6
+ */
7
+ export declare function screeningStatus(): Promise<ScreeningStatusInfo>;
8
+ /**
9
+ * The line an agent sees on a session while the classifier is absent — essential when the caller is
10
+ * a stranger. Empty when both layers are running, so a healthy inbox stays quiet.
11
+ */
12
+ export declare function screeningSessionNotice(): Promise<string | undefined>;
13
+ /** The decision, with its source injected — so the states can be tested without a model on disk. */
14
+ export declare function screeningSessionNoticeFrom(read: () => Promise<ScreeningStatusInfo | undefined>): Promise<string | undefined>;
15
+ //# sourceMappingURL=screening-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screening-status.d.ts","sourceRoot":"","sources":["../src/screening-status.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAetD;;;;GAIG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAepE;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAE1E;AAED,oGAAoG;AACpG,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,MAAM,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,GACnD,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAU7B"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * DOD-M9C-SCREENINSTALL-1 — which screening layers are actually running, for `cello_status`.
3
+ *
4
+ * Its own module because `daemon-status-report.ts` is at its line cap, and because the answer has
5
+ * exactly one source: the gateway's `screenerState`, the same function the CLI prints and the
6
+ * gateway's startup line carries. Three surfaces computing this three ways is how "installed" came
7
+ * to mean three different things.
8
+ */
9
+ import { screenerState, screenerModelDir, runtimeAvailable, describeScreenerState } from "@cello-protocol/gateway";
10
+ import { extractErrorMessage } from "./error-message.js";
11
+ /**
12
+ * Verifying digests means hashing 131 MB, which is too much for a poll that fires on a timer — so
13
+ * the VERDICT is cached for a minute and every surface serves the cached one.
14
+ *
15
+ * What it must never do is compute a CHEAPER answer for the poll. It did: the notification path
16
+ * skipped digests, so five right-sized, wrong-byte files read as `ready` and the inbox stayed
17
+ * silent while `cello status` called the same install `broken`. A surface that answers a question
18
+ * it did not ask is worse than one that stays quiet.
19
+ */
20
+ const CACHE_MS = 60_000;
21
+ let cached;
22
+ /**
23
+ * Never throws: a screener check that could break `cello status` would be a worse defect than the
24
+ * gap it reports. A failure is REPORTED as `unknown` with its cause, never omitted.
25
+ *
26
+ */
27
+ export async function screeningStatus() {
28
+ const now = Date.now();
29
+ if (cached && now - cached.at < CACHE_MS && cached.value)
30
+ return cached.value;
31
+ try {
32
+ const s = await screenerState({ dir: screenerModelDir(), runtimePresent: await runtimeAvailable() });
33
+ const value = { classifier: s.state, summary: describeScreenerState(s), ...(s.problem ? { problem: s.problem } : {}) };
34
+ cached = { at: now, value };
35
+ return value;
36
+ }
37
+ catch (err) {
38
+ // ABSENT IS NOT FINE. Omitting the block made a permissions error on ~/.cello/screener render
39
+ // exactly like a build that does not report screening at all — and this block exists precisely
40
+ // so that absence cannot be read as health.
41
+ const message = extractErrorMessage(err);
42
+ return { classifier: "unknown", summary: `Screening: state UNKNOWN — the screener check failed: ${message}`, problem: message };
43
+ }
44
+ }
45
+ /**
46
+ * The line an agent sees on a session while the classifier is absent — essential when the caller is
47
+ * a stranger. Empty when both layers are running, so a healthy inbox stays quiet.
48
+ */
49
+ export async function screeningSessionNotice() {
50
+ return screeningSessionNoticeFrom(() => screeningStatus());
51
+ }
52
+ /** The decision, with its source injected — so the states can be tested without a model on disk. */
53
+ export async function screeningSessionNoticeFrom(read) {
54
+ const s = await read();
55
+ if (!s || s.classifier === "ready")
56
+ return undefined;
57
+ if (s.classifier === "broken") {
58
+ return `Screening: the classifier is BROKEN and did NOT judge this content: ${s.problem ?? "unknown fault"}. Fix it with: cello screener install --repair`;
59
+ }
60
+ if (s.classifier === "unknown") {
61
+ return `Screening: state UNKNOWN — ${s.problem ?? "the check failed"}. This content may have been judged by one layer only.`;
62
+ }
63
+ return "Screening: 1 of 2 layers active (classifier not installed). Recommended: cello screener install";
64
+ }
65
+ //# sourceMappingURL=screening-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screening-status.js","sourceRoot":"","sources":["../src/screening-status.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEnH,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD;;;;;;;;GAQG;AACH,MAAM,QAAQ,GAAG,MAAM,CAAC;AACxB,IAAI,MAA0E,CAAC;AAE/E;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,EAAE,GAAG,QAAQ,IAAI,MAAM,CAAC,KAAK;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC;IAC9E,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,aAAa,CAAC,EAAE,GAAG,EAAE,gBAAgB,EAAE,EAAE,cAAc,EAAE,MAAM,gBAAgB,EAAE,EAAE,CAAC,CAAC;QACrG,MAAM,KAAK,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QACvH,MAAM,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,8FAA8F;QAC9F,+FAA+F;QAC/F,4CAA4C;QAC5C,MAAM,OAAO,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACzC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,yDAAyD,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAClI,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB;IAC1C,OAAO,0BAA0B,CAAC,GAAG,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,oGAAoG;AACpG,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,IAAoD;IAEpD,MAAM,CAAC,GAAG,MAAM,IAAI,EAAE,CAAC;IACvB,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,KAAK,OAAO;QAAE,OAAO,SAAS,CAAC;IACrD,IAAI,CAAC,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,uEAAuE,CAAC,CAAC,OAAO,IAAI,eAAe,gDAAgD,CAAC;IAC7J,CAAC;IACD,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,8BAA8B,CAAC,CAAC,OAAO,IAAI,kBAAkB,wDAAwD,CAAC;IAC/H,CAAC;IACD,OAAO,iGAAiG,CAAC;AAC3G,CAAC"}
@@ -68,6 +68,12 @@ export declare function wireSessionOfferHandler(deps: {
68
68
  * does not reserve.
69
69
  */
70
70
  reserveOnDemand: (circuitAddr: string, sessionIdHex: string) => Promise<boolean>;
71
+ /**
72
+ * M16: is THIS agent a broadcast channel? A channel never holds a session, so it rejects the offer
73
+ * before taking a relay slot or advertising where it can be dialled. Required, so no caller can
74
+ * forget it (the lesson of `reserveOnDemand` above).
75
+ */
76
+ isChannelAgent: () => boolean;
71
77
  signaling: SignalingSeam;
72
78
  logger: Logger;
73
79
  }): () => void;