borgmcp 5.5.0 → 5.7.0

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 (85) hide show
  1. package/README.md +7 -4
  2. package/dist/claude.d.ts.map +1 -1
  3. package/dist/claude.js +12 -0
  4. package/dist/claude.js.map +1 -1
  5. package/dist/cli-help.d.ts.map +1 -1
  6. package/dist/cli-help.js +16 -6
  7. package/dist/cli-help.js.map +1 -1
  8. package/dist/docs-sections.js +1 -1
  9. package/dist/docs-sections.js.map +1 -1
  10. package/dist/hermes-plugin-install.d.ts +19 -0
  11. package/dist/hermes-plugin-install.d.ts.map +1 -0
  12. package/dist/hermes-plugin-install.js +131 -0
  13. package/dist/hermes-plugin-install.js.map +1 -0
  14. package/dist/local-server-cursor.d.ts +9 -0
  15. package/dist/local-server-cursor.d.ts.map +1 -1
  16. package/dist/local-server-cursor.js +50 -1
  17. package/dist/local-server-cursor.js.map +1 -1
  18. package/dist/log-stream.d.ts +13 -0
  19. package/dist/log-stream.d.ts.map +1 -1
  20. package/dist/log-stream.js +45 -13
  21. package/dist/log-stream.js.map +1 -1
  22. package/dist/remote-client.d.ts +3 -0
  23. package/dist/remote-client.d.ts.map +1 -1
  24. package/dist/remote-client.js +7 -1
  25. package/dist/remote-client.js.map +1 -1
  26. package/dist/representative-cmd.d.ts +11 -0
  27. package/dist/representative-cmd.d.ts.map +1 -1
  28. package/dist/representative-cmd.js +48 -15
  29. package/dist/representative-cmd.js.map +1 -1
  30. package/dist/representative-core.d.ts +53 -7
  31. package/dist/representative-core.d.ts.map +1 -1
  32. package/dist/representative-core.js +229 -43
  33. package/dist/representative-core.js.map +1 -1
  34. package/dist/representative-delivery-store.d.ts +79 -0
  35. package/dist/representative-delivery-store.d.ts.map +1 -0
  36. package/dist/representative-delivery-store.js +233 -0
  37. package/dist/representative-delivery-store.js.map +1 -0
  38. package/dist/representative-listener-store.d.ts +46 -0
  39. package/dist/representative-listener-store.d.ts.map +1 -0
  40. package/dist/representative-listener-store.js +119 -0
  41. package/dist/representative-listener-store.js.map +1 -0
  42. package/dist/representative-listener.d.ts +32 -0
  43. package/dist/representative-listener.d.ts.map +1 -0
  44. package/dist/representative-listener.js +293 -0
  45. package/dist/representative-listener.js.map +1 -0
  46. package/dist/representative-mcp.d.ts +10 -3
  47. package/dist/representative-mcp.d.ts.map +1 -1
  48. package/dist/representative-mcp.js +48 -19
  49. package/dist/representative-mcp.js.map +1 -1
  50. package/dist/representative-store.d.ts +7 -0
  51. package/dist/representative-store.d.ts.map +1 -1
  52. package/dist/representative-store.js +17 -2
  53. package/dist/representative-store.js.map +1 -1
  54. package/dist/seat-probe.d.ts +1 -0
  55. package/dist/seat-probe.d.ts.map +1 -1
  56. package/dist/seat-probe.js +1 -1
  57. package/dist/seat-probe.js.map +1 -1
  58. package/dist/server-trust.d.ts +10 -0
  59. package/dist/server-trust.d.ts.map +1 -1
  60. package/dist/server-trust.js +23 -6
  61. package/dist/server-trust.js.map +1 -1
  62. package/dist/stream-owner.d.ts.map +1 -1
  63. package/dist/stream-owner.js +32 -3
  64. package/dist/stream-owner.js.map +1 -1
  65. package/docs/HUMAN_REPRESENTATIVE.md +310 -36
  66. package/hermes-plugin/borg-representative-push/__init__.py +743 -0
  67. package/hermes-plugin/borg-representative-push/plugin.yaml +39 -0
  68. package/package.json +3 -1
  69. package/src/claude.ts +12 -0
  70. package/src/cli-help.ts +16 -6
  71. package/src/docs-sections.ts +1 -1
  72. package/src/hermes-plugin-install.ts +147 -0
  73. package/src/local-server-cursor.ts +45 -1
  74. package/src/log-stream.ts +47 -14
  75. package/src/remote-client.ts +9 -1
  76. package/src/representative-cmd.ts +52 -20
  77. package/src/representative-core.ts +255 -46
  78. package/src/representative-delivery-store.ts +235 -0
  79. package/src/representative-listener-store.ts +115 -0
  80. package/src/representative-listener.ts +215 -0
  81. package/src/representative-mcp.ts +58 -17
  82. package/src/representative-store.ts +18 -2
  83. package/src/seat-probe.ts +1 -1
  84. package/src/server-trust.ts +25 -6
  85. package/src/stream-owner.ts +34 -2
@@ -15,15 +15,19 @@
15
15
  import { ErrorCode, type Role, type RosterDrone as ProtocolDrone, type EnrichedStreamEntry, type DocumentCitation } from 'borgmcp-shared/protocol';
16
16
  import type { ActiveCube } from './cubes.js';
17
17
  import { type RepresentativeBinding, type RepresentativeStore } from './representative-store.js';
18
+ import { type LocalServerCursor } from './local-server-cursor.js';
18
19
  export declare const REPRESENTATIVE_MESSAGE_LIMIT_BYTES = 3000;
19
20
  export declare const REPRESENTATIVE_DELIVERY_NOTE: string;
20
- export type RepresentativeErrorCode = typeof ErrorCode.INVALID_INPUT | 'DECISION_REQUIRES_USER_AUTHORIZATION' | 'REQUEST_ID_CONFLICT' | 'AMBIGUOUS_SEND_UNRESOLVED' | 'SEND_REJECTED' | 'REPRESENTATIVE_OWNERSHIP_REQUIRED' | 'NOT_PREPARED' | 'SEAT_UNAVAILABLE' | 'BINDING_MISMATCH' | 'BINDING_CONFLICT' | 'COORDINATOR_NOT_FOUND' | 'COORDINATOR_AMBIGUOUS' | 'COORDINATOR_NOT_HUMAN_SEAT' | 'COORDINATOR_IS_SELF' | 'COORDINATOR_UNAVAILABLE' | 'REPRESENTATIVE_ROLE_NOT_PERMITTED' | 'REPRESENTATIVE_ROLE_MISMATCH' | 'NOT_A_COORDINATOR_REPLY';
21
+ export type RepresentativeErrorCode = typeof ErrorCode.INVALID_INPUT | 'DECISION_REQUIRES_USER_AUTHORIZATION' | 'REQUEST_ID_CONFLICT' | 'AMBIGUOUS_SEND_UNRESOLVED' | 'SEND_REJECTED' | 'REPRESENTATIVE_OWNERSHIP_REQUIRED' | 'NOT_PREPARED' | 'SEAT_UNAVAILABLE' | 'BINDING_MISMATCH' | 'BINDING_CONFLICT' | 'COORDINATOR_NOT_FOUND' | 'COORDINATOR_AMBIGUOUS' | 'COORDINATOR_NOT_HUMAN_SEAT' | 'COORDINATOR_IS_SELF' | 'COORDINATOR_UNAVAILABLE' | 'REPRESENTATIVE_ROLE_NOT_PERMITTED' | 'REPRESENTATIVE_ROLE_MISMATCH' | 'NOT_A_COORDINATOR_REPLY' | 'REPRESENTATIVE_DELIVER_UNKNOWN_ENTRY' | 'REPRESENTATIVE_READ_OVERSIZE';
21
22
  export interface RepresentativeErrorDetails {
22
23
  owner?: import('./stream-owner.js').StreamOwnershipSnapshot;
23
24
  request_id?: string;
24
25
  cause_code?: string;
25
26
  cause_message?: string;
26
27
  recovery?: string;
28
+ entry_id?: string;
29
+ measured_bytes?: number;
30
+ bound?: number;
27
31
  }
28
32
  export declare class RepresentativeError extends Error {
29
33
  readonly code: RepresentativeErrorCode;
@@ -65,14 +69,15 @@ export interface RepresentativeBackend {
65
69
  }>;
66
70
  }>;
67
71
  /**
68
- * Drains THIS seat's own unread cursor only (no other drone's cursor exists
69
- * here) — the WHOLE returned page, including entries the caller then filters
70
- * out. `limit` is a page-size hint: the client's digest mode may return more.
72
+ * One stateless page of the cube log strictly after an exact (created_at, id)
73
+ * cursor, ascending. Reads and advances no unread cursor; never digest mode.
71
74
  */
72
- readUnread(limit?: number, continuationGuard?: () => Promise<void>): Promise<{
75
+ readAfter(cursor: LocalServerCursor | null, limit: number, continuationGuard?: () => Promise<void>): Promise<{
73
76
  entries: LogEntry[];
74
77
  has_more?: boolean;
75
78
  }>;
79
+ /** This seat's client-owned unread cursor, read only; the slice 2 migration input. */
80
+ unreadCursor(): Promise<LocalServerCursor | null>;
76
81
  readEntry(entryId: string): Promise<{
77
82
  entry: LogEntry;
78
83
  }>;
@@ -83,6 +88,8 @@ export interface RepresentativeContext {
83
88
  backend: RepresentativeBackend;
84
89
  store: RepresentativeStore;
85
90
  now?: () => Date;
91
+ /** Checked immediately before each private delivery-state write (the tools lease in MCP). */
92
+ guard?: () => Promise<void>;
86
93
  }
87
94
  /** Real backend: the existing seat-scoped client calls for one hydrated seat. */
88
95
  export declare function createSeatBackend(active: ActiveCube): Promise<RepresentativeBackend>;
@@ -107,6 +114,11 @@ export declare function resolveCoordinator(roster: {
107
114
  drone: RosterDrone;
108
115
  role: RosterRole;
109
116
  };
117
+ /** Re-prove, against the live cube, that this seat and the bound Coordinator are still the bound ones. */
118
+ export declare function verifyLiveBinding(ctx: RepresentativeContext): Promise<{
119
+ coordinator: RosterDrone;
120
+ self: RosterDrone;
121
+ }>;
110
122
  export type RepresentativeKind = 'request' | 'question' | 'decision';
111
123
  export type RepresentativeAuthorization = 'user_authorized' | 'model_advice';
112
124
  export interface RepresentativeSendInput {
@@ -139,7 +151,9 @@ export interface SendFailureCause {
139
151
  /** Sanitized, bounded underlying message. Never a credential: client errors carry none. */
140
152
  message: string;
141
153
  }
142
- export declare function sendRepresentativeMessage(ctx: RepresentativeContext, raw: unknown): Promise<RepresentativeSendResult>;
154
+ export declare function sendRepresentativeMessage(ctx: RepresentativeContext, raw: unknown): Promise<RepresentativeSendResult & {
155
+ binding_fingerprint: string;
156
+ }>;
143
157
  export interface RepresentativeReply {
144
158
  documents?: DocumentCitation[];
145
159
  document_delivery?: string;
@@ -151,13 +165,39 @@ export interface RepresentativeReply {
151
165
  /** A ledger request id quoted in the reply text. Textual correlation only. */
152
166
  in_reply_to: string | null;
153
167
  message: string;
168
+ /** This entry alone exceeds max_bytes; it is returned whole and alone. */
169
+ oversize?: true;
170
+ /** Oversize and still above the envelope bound: citations were reduced to ids. */
171
+ documents_reduced?: true;
154
172
  }
173
+ /** The exact text an MCP tool result carries; `max_bytes` measures this. */
174
+ export declare function serializeRepresentativeResult(body: unknown): string;
175
+ /**
176
+ * A serialized read result never exceeds max(max_bytes, this). An oversize
177
+ * entry is returned alone; if it still exceeds the bound, its citations are
178
+ * reduced to ids. Message text is never cut: the server caps a post (4096
179
+ * bytes by default), so the reduced entry fits.
180
+ */
181
+ export declare const REPRESENTATIVE_ENVELOPE_FLOOR = 16384;
155
182
  export declare function readRepresentativeReplies(ctx: RepresentativeContext, raw: unknown): Promise<{
156
183
  replies: RepresentativeReply[];
157
- ignored_entries: number;
184
+ checkpoint: {
185
+ entry_id: string | null;
186
+ created_at: string | null;
187
+ };
158
188
  has_more: boolean;
189
+ ignored_entries: number;
190
+ binding_fingerprint: string;
159
191
  delivery: string;
160
192
  }>;
193
+ export declare function deliverRepresentativeReplies(ctx: RepresentativeContext, raw: unknown): Promise<{
194
+ checkpoint: {
195
+ entry_id: string | null;
196
+ created_at: string | null;
197
+ };
198
+ advanced: boolean;
199
+ binding_fingerprint: string;
200
+ }>;
161
201
  export declare function ackRepresentativeReply(ctx: RepresentativeContext, raw: unknown): Promise<{
162
202
  acknowledged: string;
163
203
  }>;
@@ -192,6 +232,12 @@ export declare function representativeStatus(ctx: RepresentativeContext): Promis
192
232
  }>;
193
233
  delivery: string;
194
234
  authority: string;
235
+ binding_fingerprint: string;
236
+ checkpoint_problem?: {
237
+ code: string;
238
+ message: string;
239
+ };
240
+ envelope_floor: number;
195
241
  }>;
196
242
  export {};
197
243
  //# sourceMappingURL=representative-core.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"representative-core.d.ts","sourceRoot":"","sources":["../src/representative-core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"representative-core.d.ts","sourceRoot":"","sources":["../src/representative-core.ts"],"names":[],"mappings":"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"}
@@ -17,18 +17,17 @@ import { Buffer } from 'node:buffer';
17
17
  import { ErrorCode, ProtocolContractError, decodeAppendLogRequest } from 'borgmcp-shared/protocol';
18
18
  import { CUBE_DELETED_CODE, CubeDeletedError, DRONE_EVICTED_CODE, DroneEvictedError } from './drone-lifecycle.js';
19
19
  import { BorgProtocolMismatchError, BorgServerError, BorgServerHttpError, BorgServerTrustError, BorgServerUnreachableError, } from './server-errors.js';
20
- import { representativeRecoveryCommand, isRepresentativeUuid } from './representative-store.js';
20
+ import { bindingFingerprint, representativeRecoveryCommand, isRepresentativeUuid } from './representative-store.js';
21
+ import { comparePoints, createDeliveryStore } from './representative-delivery-store.js';
22
+ import { readPrivateLocalServerCursor } from './local-server-cursor.js';
23
+ import { validatePrivateDirectory } from './representative-listener-store.js';
24
+ import { borgConfigRoot } from './private-root.js';
21
25
  const UUID_SCAN_RE = /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/gi;
22
26
  export const REPRESENTATIVE_MESSAGE_LIMIT_BYTES = 3000;
23
- export const REPRESENTATIVE_DELIVERY_NOTE = 'Explicit send/read round trips only: this connection has no background wake or push delivery. ' +
24
- 'Coordinator replies are seen only when borg_representative-read is called. Each read consumes the unread view of ' +
25
- 'everything it fetched. The host must persist each read result before relaying it, map request_id to its conversation, ' +
26
- 'route replies by in_reply_to, and hold replies with an unknown or missing request_id for the human. An already-read ' +
27
- 'reply cannot be retrieved through this connection. The first send/read/ack takes an exclusive process lease for this ' +
28
- 'representative drone; other processes refuse those calls without ledger, cursor or network activity. Status stays ' +
29
- 'read-only and reports ownership. After owner exit, death or lease expiry another process can take over. ' +
30
- 'A process that loses its lease refuses further calls until restarted. Ownership does not route conversations inside the host. ' +
31
- 'A local lease cannot cancel an in-flight request; retry an ambiguous send with its original request_id.';
27
+ export const REPRESENTATIVE_DELIVERY_NOTE = 'read returns undelivered replies without consuming them; persist, route by in_reply_to (unknown: hold for the ' +
28
+ 'human), then deliver through the last persisted entry_id. ack only notifies the Coordinator. A separate ' +
29
+ 'borg representative listen process emits body-free wake hints. One process at a time owns send/read/deliver/ack; ' +
30
+ 'status is read-only. Stop routing if binding_fingerprint changes.';
32
31
  export class RepresentativeError extends Error {
33
32
  code;
34
33
  details;
@@ -49,7 +48,21 @@ export async function createSeatBackend(active) {
49
48
  append: ({ postId, message, to }) => client.appendLog(active.sessionToken, active.apiUrl, message, {
50
49
  to, postId, transportRetry: false, serverTrustIdentity: trust,
51
50
  }),
52
- readUnread: (limit, continuationGuard) => client.readLog(active.sessionToken, active.apiUrl, { unreadOnly: true, limit, serverTrustIdentity: trust, continuationGuard }),
51
+ readAfter: (cursor, limit, continuationGuard) => client.readLog(active.sessionToken, active.apiUrl, { cursor, limit, serverTrustIdentity: trust, continuationGuard }),
52
+ // Migration input only: an unsafe private root or cursor file is no cursor,
53
+ // so the checkpoint starts empty and replays instead of trusting it.
54
+ unreadCursor: async () => {
55
+ try {
56
+ if (!await validatePrivateDirectory(borgConfigRoot(), false))
57
+ return null;
58
+ }
59
+ catch {
60
+ return null;
61
+ }
62
+ return readPrivateLocalServerCursor({
63
+ origin: active.apiUrl, trustIdentity: trust, cubeId: active.cubeId, droneId: active.droneId,
64
+ });
65
+ },
53
66
  readEntry: (entryId) => client.readLogEntry(active.sessionToken, active.apiUrl, { entry_id: entryId }, trust),
54
67
  ack: (entryId) => client.ackLogEntry(active.sessionToken, active.apiUrl, entryId, 'ack', trust),
55
68
  };
@@ -84,7 +97,7 @@ export function resolveCoordinator(roster, selector) {
84
97
  return { drone, role };
85
98
  }
86
99
  /** Re-prove, against the live cube, that this seat and the bound Coordinator are still the bound ones. */
87
- async function verifyLiveBinding(ctx) {
100
+ export async function verifyLiveBinding(ctx) {
88
101
  const { binding, backend } = ctx;
89
102
  const me = await backend.whoami();
90
103
  if (me.cube_id !== binding.cubeId || me.drone_id !== binding.representativeDroneId) {
@@ -239,6 +252,9 @@ function classifyAppendFailure(error, binding) {
239
252
  };
240
253
  }
241
254
  export async function sendRepresentativeMessage(ctx, raw) {
255
+ return { ...await sendOnce(ctx, raw), binding_fingerprint: bindingFingerprint(ctx.binding) };
256
+ }
257
+ async function sendOnce(ctx, raw) {
242
258
  const input = validateSendInput(raw);
243
259
  const { binding, store } = ctx;
244
260
  const now = () => (ctx.now?.() ?? new Date()).toISOString();
@@ -399,46 +415,206 @@ function isAddressedCoordinatorEntry(binding, entry) {
399
415
  }
400
416
  return 'broadcast';
401
417
  }
418
+ /** The exact text an MCP tool result carries; `max_bytes` measures this. */
419
+ export function serializeRepresentativeResult(body) {
420
+ return JSON.stringify(body, null, 2);
421
+ }
422
+ const READ_SCAN_PAGE = 500;
423
+ /**
424
+ * A serialized read result never exceeds max(max_bytes, this). An oversize
425
+ * entry is returned alone; if it still exceeds the bound, its citations are
426
+ * reduced to ids. Message text is never cut: the server caps a post (4096
427
+ * bytes by default), so the reduced entry fits.
428
+ */
429
+ export const REPRESENTATIVE_ENVELOPE_FLOOR = 16384;
430
+ /**
431
+ * Run `use` with this generation's delivery state. On the first call for a
432
+ * generation, `use` runs alone in the per-seat queue with the proposed start,
433
+ * and nothing is written until it calls `commit`: a read refused as oversize
434
+ * leaves no tombstone and no checkpoint behind.
435
+ */
436
+ async function withDeliveryState(ctx, use) {
437
+ const store = createDeliveryStore(ctx.binding);
438
+ const saved = await store.load();
439
+ if (saved) {
440
+ // A checkpoint always implies an upgraded seat; restore a lost tombstone.
441
+ if (!await store.migrated())
442
+ await store.markMigrated(ctx.guard);
443
+ return use(saved, async () => { });
444
+ }
445
+ return store.initialize(async () => {
446
+ const again = await store.load();
447
+ if (again)
448
+ return use(again, async () => { });
449
+ // The seat already upgraded (a tombstone or a sibling generation exists):
450
+ // this generation (rebind, new Coordinator, or a removed invalid checkpoint)
451
+ // starts empty and replays its addressed history. Nothing on disk is ever
452
+ // read back as a position, and the legacy cursor is never imported again.
453
+ const upgraded = await store.migrated() || await store.otherGenerationExists();
454
+ // One-time upgrade: start where the pre-checkpoint destructive read left
455
+ // the unread view. The cursor is used only in memory.
456
+ const cursor = upgraded ? null : await ctx.backend.unreadCursor();
457
+ return use({ checkpoint: cursor, readThrough: cursor, returned: [] }, async () => {
458
+ // The tombstone is created exclusively first, so an interruption before
459
+ // the checkpoint replays (duplicates the host dedupes). An initializer in
460
+ // another process that won the create (excluded by the tools lease in
461
+ // practice) makes this one start empty.
462
+ const start = !upgraded && await store.markMigrated(ctx.guard) ? cursor : null;
463
+ if (upgraded)
464
+ await store.markMigrated(ctx.guard);
465
+ await store.advance({ checkpoint: start, readThrough: start }, ctx.guard);
466
+ });
467
+ });
468
+ }
469
+ const checkpointView = (point) => ({ entry_id: point?.id ?? null, created_at: point?.created_at ?? null });
402
470
  export async function readRepresentativeReplies(ctx, raw) {
403
471
  const input = (raw ?? {});
404
- const unknown = Object.keys(input).filter((key) => key !== 'include_broadcast' && key !== 'limit' && input[key] !== undefined);
472
+ const allowed = ['include_broadcast', 'limit', 'max_bytes'];
473
+ const unknown = Object.keys(input).filter((key) => !allowed.includes(key) && input[key] !== undefined);
405
474
  if (unknown.length > 0)
406
475
  throw new RepresentativeError(ErrorCode.INVALID_INPUT, `Unsupported field(s): ${unknown.join(', ')}.`);
407
476
  if (input.include_broadcast !== undefined && typeof input.include_broadcast !== 'boolean') {
408
477
  throw new RepresentativeError(ErrorCode.INVALID_INPUT, 'include_broadcast must be a boolean.');
409
478
  }
410
- if (input.limit !== undefined && (!Number.isInteger(input.limit) || input.limit < 1 || input.limit > 200)) {
411
- throw new RepresentativeError(ErrorCode.INVALID_INPUT, 'limit must be an integer from 1 to 200.');
412
- }
479
+ const bounded = (name, min, max, fallback) => {
480
+ const value = input[name];
481
+ if (value === undefined)
482
+ return fallback;
483
+ if (!Number.isInteger(value) || value < min || value > max) {
484
+ throw new RepresentativeError(ErrorCode.INVALID_INPUT, `${name} must be an integer from ${min} to ${max}.`);
485
+ }
486
+ return value;
487
+ };
488
+ const limit = bounded('limit', 1, 50, 10);
489
+ const maxBytes = bounded('max_bytes', 4096, 60000, 32768);
413
490
  await verifyLiveBinding(ctx);
414
- const page = await ctx.backend.readUnread(input.limit);
415
- const requestIds = await ctx.store.transactRequests(ctx.binding.worktree, (records) => new Set(records.map((record) => record.requestId)));
416
- const replies = [];
417
- for (const entry of page.entries) {
418
- const addressed = isAddressedCoordinatorEntry(ctx.binding, entry);
419
- if (addressed === null || (addressed === 'broadcast' && input.include_broadcast !== true))
420
- continue;
421
- const quoted = (entry.message.match(UUID_SCAN_RE) ?? []).map((id) => id.toLowerCase());
422
- replies.push({
423
- entry_id: entry.id,
424
- created_at: entry.created_at,
425
- from_drone_id: ctx.binding.coordinatorDroneId,
426
- from_label: ctx.binding.coordinatorLabel,
427
- addressed,
428
- in_reply_to: quoted.find((id) => requestIds.has(id)) ?? null,
429
- message: entry.message,
430
- ...(entry.documents?.length ? {
431
- documents: entry.documents,
432
- document_delivery: 'Document bodies are not included and cannot be fetched through this connection. Ask the Coordinator to provide the content through a supported channel.',
433
- } : {}),
434
- });
491
+ return withDeliveryState(ctx, async (state, commit) => {
492
+ const requestIds = await ctx.store.transactRequests(ctx.binding.worktree, (records) => new Set(records.map((record) => record.requestId)));
493
+ // Deliberate ceiling: every read scans the cube log from the checkpoint,
494
+ // including entries not addressed here, so an undelivered backlog costs a
495
+ // growing scan. Upgrade path: a separate scan hint that deliver advances.
496
+ // One addressed entry beyond `limit` is collected only to answer has_more.
497
+ const candidates = [];
498
+ let ignored = 0;
499
+ let cursor = state.checkpoint;
500
+ let last = state.checkpoint;
501
+ scan: for (;;) {
502
+ const page = await ctx.backend.readAfter(cursor, READ_SCAN_PAGE);
503
+ for (const entry of page.entries) {
504
+ const point = { id: entry.id, created_at: entry.created_at };
505
+ // Client-side (created_at, id) filter: never repeat or regress.
506
+ if (comparePoints(point, last) <= 0)
507
+ continue;
508
+ last = point;
509
+ const addressed = isAddressedCoordinatorEntry(ctx.binding, entry);
510
+ if (addressed === null || (addressed === 'broadcast' && input.include_broadcast !== true)) {
511
+ ignored += 1;
512
+ continue;
513
+ }
514
+ const quoted = (entry.message.match(UUID_SCAN_RE) ?? []).map((id) => id.toLowerCase());
515
+ candidates.push({ point, ignoredBefore: ignored, reply: {
516
+ entry_id: entry.id,
517
+ created_at: entry.created_at,
518
+ from_drone_id: ctx.binding.coordinatorDroneId,
519
+ from_label: ctx.binding.coordinatorLabel,
520
+ addressed,
521
+ in_reply_to: quoted.find((id) => requestIds.has(id)) ?? null,
522
+ message: entry.message,
523
+ ...(entry.documents?.length ? {
524
+ documents: entry.documents,
525
+ document_delivery: 'Document bodies are not included and cannot be fetched through this connection. Ask the Coordinator to provide the content through a supported channel.',
526
+ } : {}),
527
+ } });
528
+ if (candidates.length > limit)
529
+ break scan;
530
+ }
531
+ const tail = page.entries.at(-1);
532
+ if (!page.has_more || !tail)
533
+ break;
534
+ cursor = { id: tail.id, created_at: tail.created_at };
535
+ }
536
+ const result = (count, oversize = false) => {
537
+ const taken = candidates.slice(0, count);
538
+ const replies = taken.map(({ reply }, index) => (oversize && index === 0 ? { ...reply, oversize: true } : reply));
539
+ return {
540
+ replies,
541
+ checkpoint: checkpointView(state.checkpoint),
542
+ has_more: candidates.length > count,
543
+ ignored_entries: count < candidates.length ? candidates[count].ignoredBefore : ignored,
544
+ binding_fingerprint: bindingFingerprint(ctx.binding),
545
+ delivery: REPRESENTATIVE_DELIVERY_NOTE,
546
+ };
547
+ };
548
+ // Measure the real serialized result; entries are whole or omitted.
549
+ let count = 0;
550
+ while (count < Math.min(limit, candidates.length) &&
551
+ Buffer.byteLength(serializeRepresentativeResult(result(count + 1))) <= maxBytes)
552
+ count += 1;
553
+ const oversize = count === 0 && candidates.length > 0;
554
+ let final = result(oversize ? 1 : count, oversize);
555
+ const bound = Math.max(maxBytes, REPRESENTATIVE_ENVELOPE_FLOOR);
556
+ if (oversize && final.replies[0].documents?.length &&
557
+ Buffer.byteLength(serializeRepresentativeResult(final)) > bound) {
558
+ const reply = final.replies[0];
559
+ final = { ...final, replies: [{
560
+ ...reply, documents: reply.documents.map(({ id }) => ({ id })), documents_reduced: true,
561
+ }] };
562
+ }
563
+ const measured = Buffer.byteLength(serializeRepresentativeResult(final));
564
+ if (oversize && measured > bound) {
565
+ // Nothing is cut or overrun, and nothing moves: no content, no deliver.
566
+ throw new RepresentativeError('REPRESENTATIVE_READ_OVERSIZE', `The next reply does not fit ${bound} bytes even alone with its citations reduced to ids. Nothing was read or ` +
567
+ 'advanced. Raise max_bytes (up to 60000); beyond that the operator must reduce the server post limit.', { entry_id: final.replies[0].entry_id, measured_bytes: measured, bound });
568
+ }
569
+ await commit();
570
+ const window = candidates.slice(0, final.replies.length).map(({ point }) => point);
571
+ if (window.length > 0) {
572
+ // The deliver fence and membership widen before the caller sees the entries.
573
+ await createDeliveryStore(ctx.binding).advance({ readThrough: window.at(-1), returned: window }, ctx.guard);
574
+ }
575
+ return final;
576
+ });
577
+ }
578
+ export async function deliverRepresentativeReplies(ctx, raw) {
579
+ const input = (raw ?? {});
580
+ const unknown = Object.keys(input).filter((key) => key !== 'through');
581
+ if (unknown.length > 0 || !isRepresentativeUuid(input.through)) {
582
+ throw new RepresentativeError(ErrorCode.INVALID_INPUT, 'through must be the full UUID of a reply returned by borg_representative-read.');
435
583
  }
436
- return {
437
- replies,
438
- ignored_entries: page.entries.length - replies.length,
439
- has_more: page.has_more === true,
440
- delivery: REPRESENTATIVE_DELIVERY_NOTE,
441
- };
584
+ const through = input.through;
585
+ await verifyLiveBinding(ctx);
586
+ return withDeliveryState(ctx, async (state, commit) => {
587
+ await commit();
588
+ const outside = () => new RepresentativeError('REPRESENTATIVE_DELIVER_UNKNOWN_ENTRY', 'That entry is not in the current read window: deliver only a reply that borg_representative-read returned. Nothing changed.');
589
+ let entry;
590
+ try {
591
+ ({ entry } = await ctx.backend.readEntry(through));
592
+ }
593
+ catch (error) {
594
+ if (error?.status === 404)
595
+ throw outside();
596
+ throw error;
597
+ }
598
+ if (entry.id !== through || isAddressedCoordinatorEntry(ctx.binding, entry) === null)
599
+ throw outside();
600
+ const point = { id: entry.id, created_at: entry.created_at };
601
+ const fingerprint = bindingFingerprint(ctx.binding);
602
+ if (state.checkpoint && comparePoints(point, state.checkpoint) <= 0) {
603
+ return { checkpoint: checkpointView(state.checkpoint), advanced: false, binding_fingerprint: fingerprint };
604
+ }
605
+ // Membership of the full tuple, not the range or the id alone: only an entry
606
+ // a read actually returned, as the server reports it now, inside the window.
607
+ if (!state.returned.some((returned) => returned.id === point.id && returned.created_at === point.created_at) ||
608
+ state.readThrough === null || comparePoints(point, state.readThrough) > 0)
609
+ throw outside();
610
+ const { before, after } = await createDeliveryStore(ctx.binding).advance({ checkpoint: point }, ctx.guard);
611
+ return {
612
+ checkpoint: checkpointView(after.checkpoint),
613
+ // The serialized transition, not this call's earlier snapshot.
614
+ advanced: comparePoints(after.checkpoint, before?.checkpoint ?? null) > 0,
615
+ binding_fingerprint: fingerprint,
616
+ };
617
+ });
442
618
  }
443
619
  export async function ackRepresentativeReply(ctx, raw) {
444
620
  const input = (raw ?? {});
@@ -466,6 +642,13 @@ export async function representativeStatus(ctx) {
466
642
  message: error instanceof Error ? error.message : 'Unknown error',
467
643
  };
468
644
  }
645
+ let checkpointProblem;
646
+ try {
647
+ await createDeliveryStore(binding).load();
648
+ }
649
+ catch (error) {
650
+ checkpointProblem = { code: error.code ?? 'BACKEND_ERROR', message: error instanceof Error ? error.message : 'Unknown error' };
651
+ }
469
652
  const unresolved = (await ctx.store.readRequests(binding.worktree))
470
653
  .filter((record) => record.state === 'pending' || record.state === 'ambiguous')
471
654
  .map((record) => ({
@@ -488,6 +671,9 @@ export async function representativeStatus(ctx) {
488
671
  delivery: REPRESENTATIVE_DELIVERY_NOTE,
489
672
  authority: 'Borg records these messages as posts from the representative drone. The user-authorized / model-advice label is this ' +
490
673
  'connection\'s own attribution and is not verified or enforced by the Borg server.',
674
+ binding_fingerprint: bindingFingerprint(binding),
675
+ ...(checkpointProblem ? { checkpoint_problem: checkpointProblem } : {}),
676
+ envelope_floor: REPRESENTATIVE_ENVELOPE_FLOOR,
491
677
  };
492
678
  }
493
679
  //# sourceMappingURL=representative-core.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"representative-core.js","sourceRoot":"","sources":["../src/representative-core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,sBAAsB,EAAiG,MAAM,yBAAyB,CAAC;AAElM,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAClH,OAAO,EACL,yBAAyB,EACzB,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,6BAA6B,EAAE,oBAAoB,EAAwD,MAAM,2BAA2B,CAAC;AAEtJ,MAAM,YAAY,GAAG,gEAAgE,CAAC;AACtF,MAAM,CAAC,MAAM,kCAAkC,GAAG,IAAI,CAAC;AAEvD,MAAM,CAAC,MAAM,4BAA4B,GACvC,gGAAgG;IAChG,mHAAmH;IACnH,wHAAwH;IACxH,sHAAsH;IACtH,uHAAuH;IACvH,oHAAoH;IACpH,0GAA0G;IAC1G,gIAAgI;IAChI,yGAAyG,CAAC;AA8B5G,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAEjC;IAEA;IAHX,YACW,IAA6B,EACtC,OAAe,EACN,OAAoC;QAE7C,KAAK,CAAC,OAAO,CAAC,CAAC;QAJN,SAAI,GAAJ,IAAI,CAAyB;QAE7B,YAAO,GAAP,OAAO,CAA6B;QAG7C,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAqCD,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAkB;IACxD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,MAAM,CAAC,mBAAmB,CAAC;IACzC,OAAO;QACL,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QACnC,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;QACtC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,CAClC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE;YAC5D,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK;SAC9D,CAAC;QACJ,UAAU,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,EAAE,CACvC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,mBAAmB,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;QAChI,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CACrB,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,CAAC;QACvF,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC;KAChG,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,IAAoE,EACpE,KAAoC;IAEpC,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,OAAO,IAAI,KAAK,EAAE,cAAc,KAAK,IAAI,EAAE,CAAC;QACjG,MAAM,IAAI,mBAAmB,CAC3B,mCAAmC,EACnC,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,oFAAoF;YACnH,qFAAqF,CACxF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAsD,EACtD,QAAgD;IAEhD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,mBAAmB,CAC3B,uBAAuB,EACvB,4BAA4B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,yEAAyE,CACpI,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,mBAAmB,CAC3B,uBAAuB,EACvB,GAAG,OAAO,CAAC,MAAM,+BAA+B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,oCAAoC,CACnH,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,IAAI,mBAAmB,CAAC,qBAAqB,EAAE,yDAAyD,CAAC,CAAC;IAClH,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC;IAC9E,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;QACzC,MAAM,IAAI,mBAAmB,CAC3B,4BAA4B,EAC5B,SAAS,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,2DAA2D;YAChG,8EAA8E,CACjF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC;AAED,0GAA0G;AAC1G,KAAK,UAAU,iBAAiB,CAAC,GAA0B;IACzD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;IACjC,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;IAClC,IAAI,EAAE,CAAC,OAAO,KAAK,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,QAAQ,KAAK,OAAO,CAAC,qBAAqB,EAAE,CAAC;QACnF,MAAM,IAAI,mBAAmB,CAC3B,kBAAkB,EAClB,0DAA0D,6BAA6B,CAAC,OAAO,CAAC,kCAAkC,CACnI,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;IACtC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACvF,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,EAAE,OAAO,CAAC,CAAC;IACxE,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvB,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,EAAE,2DAA2D,CAAC,CAAC;IACjH,CAAC;IACD,wBAAwB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACzC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC3F,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,WAAW,EAAE,OAAO,CAAC,CAAC;IACtF,IAAI,CAAC,WAAW,IAAI,eAAe,EAAE,aAAa,KAAK,IAAI,EAAE,CAAC;QAC5D,MAAM,IAAI,mBAAmB,CAC3B,yBAAyB,EACzB,yBAAyB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,gBAAgB,CAAC,wDAAwD;YACvH,gFAAgF,6BAA6B,CAAC,OAAO,CAAC,kFAAkF,CAC3M,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AAC/B,CAAC;AA2BD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC,CAAC;AAEhF,SAAS,iBAAiB,CAAC,GAAY;IACrC,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAClE,MAAM,IAAI,mBAAmB,CAAC,SAAS,CAAC,aAAa,EAAE,8BAA8B,CAAC,CAAC;IACzF,CAAC;IACD,MAAM,KAAK,GAAG,GAA8B,CAAC;IAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC;IACtG,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,mBAAmB,CAC3B,SAAS,CAAC,aAAa,EACvB,yBAAyB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,qDAAqD;YAC9F,0EAA0E,CAC7E,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACvF,MAAM,IAAI,mBAAmB,CAAC,SAAS,CAAC,aAAa,EAAE,mDAAmD,CAAC,CAAC;IAC9G,CAAC;IACD,IAAI,KAAK,CAAC,aAAa,KAAK,iBAAiB,IAAI,KAAK,CAAC,aAAa,KAAK,cAAc,EAAE,CAAC;QACxF,MAAM,IAAI,mBAAmB,CAAC,SAAS,CAAC,aAAa,EAAE,4DAA4D,CAAC,CAAC;IACvH,CAAC;IACD,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACrE,MAAM,IAAI,mBAAmB,CAAC,SAAS,CAAC,aAAa,EAAE,qCAAqC,CAAC,CAAC;IAChG,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,kCAAkC,EAAE,CAAC;QAClF,MAAM,IAAI,mBAAmB,CAAC,SAAS,CAAC,aAAa,EAAE,mBAAmB,kCAAkC,SAAS,CAAC,CAAC;IACzH,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI;QAC7D,CAAC,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QACpF,MAAM,IAAI,mBAAmB,CAAC,SAAS,CAAC,aAAa,EAAE,yEAAyE,CAAC,CAAC;IACpI,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,aAAa,KAAK,iBAAiB,EAAE,CAAC;QAC3E,MAAM,IAAI,mBAAmB,CAC3B,sCAAsC,EACtC,8IAA8I,CAC/I,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,GAAG,CAAC,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChG,CAAC;AACJ,CAAC;AAED,MAAM,mBAAmB,GAAgD;IACvE,eAAe,EACb,8GAA8G;QAC9G,uEAAuE;IACzE,YAAY,EACV,6GAA6G;CAChH,CAAC;AAEF,MAAM,UAAU,2BAA2B,CACzC,OAA8B,EAC9B,SAAiB,EACjB,KAA8B;IAE9B,OAAO;QACL,+CAA+C,OAAO,CAAC,mBAAmB,4BAA4B;QACtG,eAAe,SAAS,EAAE;QAC1B,SAAS,KAAK,CAAC,IAAI,EAAE;QACrB,mBAAmB,CAAC,KAAK,CAAC,aAAa,CAAC;QACxC,oBAAoB,OAAO,CAAC,mBAAmB,2BAA2B;QAC1E,KAAK;QACL,KAAK,CAAC,OAAO;KACd,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,OAA8B,EAAE,KAA8B;IACnF,OAAO,UAAU,CAAC,QAAQ,CAAC;SACxB,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC/G,MAAM,CAAC,KAAK,CAAC,CAAC;AACnB,CAAC;AASD,SAAS,cAAc,CAAC,KAAc;IACpC,MAAM,IAAI,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACpE,OAAO,IAAI,CAAC,OAAO,CAAC,gCAAgC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAClF,CAAC;AAED,MAAM,aAAa,GACjB,uHAAuH;IACvH,iHAAiH;IACjH,0FAA0F,CAAC;AAE7F;;;;;;;GAOG;AACH,SAAS,qBAAqB,CAAC,KAAc,EAAE,OAA8B;IAC3E,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,eAAe,GAAG,oDAAoD,6BAA6B,CAAC,OAAO,CAAC,mCAAmC,CAAC;IACtJ,IAAI,KAAK,YAAY,eAAe;QAClC,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,gBAAgB,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,eAAe,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,CAAC,EAAE,CAAC;QAClI,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC7F,CAAC;IACD,IAAI,KAAK,YAAY,iBAAiB,IAAI,KAAK,YAAY,gBAAgB,EAAE,CAAC;QAC5E,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,YAAY,iBAAiB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,EAAE,OAAO,EAAE;YACrG,QAAQ,EAAE,eAAe;SAC1B,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;QAC1H,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAC9C,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,KAAK,GAAG;gBACnC,CAAC,CAAC,0GAA0G;gBAC5G,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,GAAG;oBACpB,CAAC,CAAC,8HAA8H;oBAChI,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG;wBAC5C,CAAC,CAAC,iCAAiC,eAAe,EAAE;wBACpD,CAAC,CAAC,gGAAgG,CAAC;YACzG,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC;QAChE,CAAC;QACD,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;YACxB,QAAQ,EAAE,iHAAiH;SAC5H,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,YAAY,0BAA0B,EAAE,CAAC;QAChD,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE;YAC9C,QAAQ,EAAE,2HAA2H;SACtI,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,YAAY,yBAAyB,IAAI,KAAK,YAAY,qBAAqB,EAAE,CAAC;QACzF,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,YAAY,yBAAyB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,EAAE,OAAO,EAAE;YAChH,QAAQ,EACN,8GAA8G;gBAC9G,0EAA0E;SAC7E,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,YAAY,oBAAoB,EAAE,CAAC;QAC1C,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE;YACxC,QAAQ,EAAE,iHAAiH;SAC5H,CAAC;IACJ,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE;QACnC,QAAQ,EAAE,+FAA+F;KAC1G,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,GAA0B,EAC1B,GAAY;IAEZ,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;IAC/B,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5D,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC7C,MAAM,cAAc,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,kBAAkB,EAAE,KAAK,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAEjG,4EAA4E;IAC5E,iDAAiD;IACjD,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,IAAI,UAAU,EAAE,CAAC;IACrD,MAAM,OAAO,GAAG,2BAA2B,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IACzE,IAAI,CAAC;QACH,sBAAsB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAC9F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,mBAAmB,CAAC,SAAS,CAAC,aAAa,EAAE,0CAA0C,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC5H,CAAC;IAED,yEAAyE;IACzE,8EAA8E;IAC9E,oEAAoE;IACpE,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE;QAC7E,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU;YAC7B,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,KAAK,KAAK,CAAC,UAAU,CAAC;YACvE,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,MAAM,IAAI,MAAM,CAAC,aAAa,KAAK,MAAM,EAAE,CAAC;YAC9C,MAAM,IAAI,mBAAmB,CAC3B,qBAAqB,EACrB,4FAA4F,CAC7F,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,EAAE,KAAK,KAAK,MAAM;YAAE,OAAO,EAAE,IAAI,EAAE,cAAuB,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QAChG,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YAC3C,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAC5C,SAAS,CAAC,aAAa,KAAK,MAAM;gBAClC,CAAC,SAAS,CAAC,KAAK,KAAK,WAAW,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,CAAC;gBAClE,SAAS,CAAC,SAAS,KAAK,WAAW,CAAC,CAAC;YACvC,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,IAAI,mBAAmB,CAC3B,2BAA2B,EAC3B,kFAAkF,UAAU,CAAC,SAAS,IAAI;oBACxG,oFAAoF,CACvF,CAAC;YACJ,CAAC;QACH,CAAC;QACD,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC;QACpB,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC3B,yEAAyE;YACzE,uEAAuE;YACvE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,WAAW;gBAAE,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;YAC5E,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC;YACzB,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;YACzB,OAAO,EAAE,IAAI,EAAE,UAAmB,EAAE,KAAK,EAAE,CAAC;QAC9C,CAAC;QACD,OAAO,CAAC,IAAI,CAAC;YACX,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa;YACnG,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK;SACrD,CAAC,CAAC;QACH,OAAO,EAAE,IAAI,EAAE,UAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACpD,CAAC,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,WAAW,CAAC;IAC9B,IAAI,WAAW,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QACxC,OAAO;YACL,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,OAAO;YACrE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc;SACjE,CAAC;IACJ,CAAC;IAED,yEAAyE;IACzE,8EAA8E;IAC9E,MAAM,MAAM,GAAG,CAAC,KAAwC,EAAE,OAAgB,EAAE,EAAE,CAC5E,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE;QACnD,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC;QACpB,IAAI,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;QAC5E,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG;gBACP,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa;gBACtF,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK;aAC1C,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,KAAK,MAAM;YAAE,OAAO,MAAM,CAAC,KAAK,CAAC;QACjD,IAAI,KAAK,KAAK,WAAW;YAAE,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;QACrD,MAAM,CAAC,KAAK,GAAG,KAAK,KAAK,UAAU,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;QAChF,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACrB,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;YACzB,OAAO,MAAM,CAAC,WAAW,CAAC;QAC5B,CAAC;QACD,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC,CAAC,CAAC;IAEL,8EAA8E;IAC9E,8EAA8E;IAC9E,4EAA4E;IAC5E,8EAA8E;IAC9E,8EAA8E;IAC9E,uEAAuE;IACvE,IAAI,CAAC;QACH,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE;YACzD,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;YAClF,IAAI,KAAK,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,SAAS;gBAAE,OAAO;YAC5D,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC/B,2FAA2F;gBAC3F,IAAI,WAAW,CAAC,KAAK,KAAK,WAAW;oBAAE,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,WAAW,CAAC;gBAC1E,OAAO;YACT,CAAC;YACD,IAAI,WAAW,CAAC,KAAK,KAAK,IAAI;gBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;;gBACpD,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,MAAM,KAAK,CAAC;IACd,CAAC;IAED,IAAI,MAA4D,CAAC;IACjE,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;IACtG,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACtD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;YAC1C,MAAM,IAAI,mBAAmB,CAC3B,eAAe,EACf,yCAAyC,OAAO,CAAC,KAAK,CAAC,IAAI,yCAAyC,OAAO,CAAC,QAAQ,EAAE;gBACpH,CAAC,QAAQ,KAAK,WAAW;oBACvB,CAAC,CAAC,2GAA2G;oBAC7G,CAAC,CAAC,EAAE,CAAC,EACT,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAC5H,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QAC1B,OAAO;YACL,OAAO,EAAE,WAAW;YACpB,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,cAAc;YAC3B,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,QAAQ,EAAE,2BAA2B,OAAO,CAAC,KAAK,CAAC,IAAI,MAAM,OAAO,CAAC,QAAQ,IAAI,aAAa,EAAE;SACjG,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC;IAC1D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,kBAAkB,EAAE,CAAC;QACpH,QAAQ,CAAC,IAAI,CAAC,iGAAiG,CAAC,CAAC;IACnH,CAAC;IACD,IAAI,MAAM,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACnG,QAAQ,CAAC,IAAI,CAAC,gHAAgH,CAAC,CAAC;IAClI,CAAC;IACD,OAAO;QACL,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,SAAS;QACrB,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;QACzB,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,KAAK;QAChB,WAAW,EAAE,cAAc;QAC3B,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChE,CAAC;AACJ,CAAC;AAeD,SAAS,2BAA2B,CAAC,OAA8B,EAAE,KAAe;IAClF,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC,kBAAkB;QAAE,OAAO,IAAI,CAAC;IAC/D,IAAI,KAAK,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IACrG,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,GAA0B,EAC1B,GAAY;IAEZ,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,EAAE,CAA4B,CAAC;IACrD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,mBAAmB,IAAI,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC;IAC/H,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,mBAAmB,CAAC,SAAS,CAAC,aAAa,EAAE,yBAAyB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/H,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAC1F,MAAM,IAAI,mBAAmB,CAAC,SAAS,CAAC,aAAa,EAAE,sCAAsC,CAAC,CAAC;IACjG,CAAC;IACD,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,IAAK,KAAK,CAAC,KAAgB,GAAG,CAAC,IAAK,KAAK,CAAC,KAAgB,GAAG,GAAG,CAAC,EAAE,CAAC;QAClI,MAAM,IAAI,mBAAmB,CAAC,SAAS,CAAC,aAAa,EAAE,yCAAyC,CAAC,CAAC;IACpG,CAAC;IACD,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,KAA2B,CAAC,CAAC;IAC7E,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,CACpF,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACtD,MAAM,OAAO,GAA0B,EAAE,CAAC;IAC1C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,2BAA2B,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAClE,IAAI,SAAS,KAAK,IAAI,IAAI,CAAC,SAAS,KAAK,WAAW,IAAI,KAAK,CAAC,iBAAiB,KAAK,IAAI,CAAC;YAAE,SAAS;QACpG,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QACvF,OAAO,CAAC,IAAI,CAAC;YACX,QAAQ,EAAE,KAAK,CAAC,EAAE;YAClB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,aAAa,EAAE,GAAG,CAAC,OAAO,CAAC,kBAAkB;YAC7C,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,gBAAgB;YACxC,SAAS;YACT,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI;YAC5D,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;gBAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,iBAAiB,EAAE,yJAAyJ;aAC7K,CAAC,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;IACL,CAAC;IACD,OAAO;QACL,OAAO;QACP,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM;QACrD,QAAQ,EAAE,IAAI,CAAC,QAAQ,KAAK,IAAI;QAChC,QAAQ,EAAE,4BAA4B;KACvC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,GAA0B,EAC1B,GAAY;IAEZ,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,EAAE,CAA4B,CAAC;IACrD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,UAAU,CAAC,CAAC;IACvE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtG,MAAM,IAAI,mBAAmB,CAAC,SAAS,CAAC,aAAa,EAAE,iFAAiF,CAAC,CAAC;IAC5I,CAAC;IACD,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9D,IAAI,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,QAAQ,IAAI,2BAA2B,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,QAAQ,EAAE,CAAC;QAChG,MAAM,IAAI,mBAAmB,CAC3B,yBAAyB,EACzB,iGAAiG,CAClG,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAChC,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,GAA0B;IAanE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;IACxB,IAAI,OAAsD,CAAC;IAC3D,IAAI,CAAC;QACH,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,GAAG;YACR,IAAI,EAAE,KAAK,YAAY,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe;YACzE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAClE,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SAC9D,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,WAAW,CAAC;SAC9E,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,SAAS;KACnG,CAAC,CAAC,CAAC;IACR,OAAO;QACL,IAAI,EAAE,mHAAmH;QACzH,SAAS,EAAE,OAAO,KAAK,SAAS;QAChC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE;QACpD,iBAAiB,EAAE,OAAO,CAAC,gBAAgB,IAAI,IAAI;QACnD,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,cAAc,EAAE;YACd,QAAQ,EAAE,OAAO,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,CAAC,mBAAmB,EAAE,IAAI,EAAE,OAAO,CAAC,sBAAsB;SAClH;QACD,WAAW,EAAE;YACX,QAAQ,EAAE,OAAO,CAAC,kBAAkB,EAAE,KAAK,EAAE,OAAO,CAAC,gBAAgB,EAAE,IAAI,EAAE,OAAO,CAAC,mBAAmB;SACzG;QACD,mBAAmB,EAAE,UAAU;QAC/B,QAAQ,EAAE,4BAA4B;QACtC,SAAS,EACP,uHAAuH;YACvH,mFAAmF;KACtF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"representative-core.js","sourceRoot":"","sources":["../src/representative-core.ts"],"names":[],"mappings":"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"}