@agentshouse/mdruntime 0.1.0-c2af3ddcc243b → 0.1.0-c2e433921a4d5

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 (172) hide show
  1. package/README.md +14 -13
  2. package/dist/acceptance.js +1 -1
  3. package/dist/adapter.d.ts +55 -9
  4. package/dist/adapter.d.ts.map +1 -1
  5. package/dist/attached-model.d.ts +0 -1
  6. package/dist/attached-model.d.ts.map +1 -1
  7. package/dist/attached-model.js +0 -5
  8. package/dist/authored.d.ts +88 -0
  9. package/dist/authored.d.ts.map +1 -0
  10. package/dist/authored.js +345 -0
  11. package/dist/change.d.ts +4 -0
  12. package/dist/change.d.ts.map +1 -1
  13. package/dist/change.js +3 -0
  14. package/dist/chat-types.d.ts +0 -2
  15. package/dist/chat-types.d.ts.map +1 -1
  16. package/dist/chat-types.js +0 -2
  17. package/dist/client.d.ts +5 -3
  18. package/dist/client.d.ts.map +1 -1
  19. package/dist/client.js +4 -7
  20. package/dist/collection.d.ts +4 -1
  21. package/dist/collection.d.ts.map +1 -1
  22. package/dist/collection.js +7 -0
  23. package/dist/column.d.ts +5 -0
  24. package/dist/column.d.ts.map +1 -0
  25. package/dist/column.js +9 -0
  26. package/dist/compile.d.ts.map +1 -1
  27. package/dist/compile.js +2 -3
  28. package/dist/connection.d.ts.map +1 -1
  29. package/dist/connection.js +6 -4
  30. package/dist/context.d.ts.map +1 -1
  31. package/dist/context.js +1 -1
  32. package/dist/conversation-live.d.ts +16 -6
  33. package/dist/conversation-live.d.ts.map +1 -1
  34. package/dist/conversation-live.js +15 -6
  35. package/dist/conversation-row.d.ts +8 -1
  36. package/dist/conversation-row.d.ts.map +1 -1
  37. package/dist/conversation-row.js +20 -7
  38. package/dist/conversation.d.ts +9 -5
  39. package/dist/conversation.d.ts.map +1 -1
  40. package/dist/conversation.js +155 -123
  41. package/dist/figures.d.ts.map +1 -1
  42. package/dist/figures.js +4 -2
  43. package/dist/file.d.ts.map +1 -1
  44. package/dist/file.js +2 -1
  45. package/dist/host.d.ts +1 -0
  46. package/dist/host.d.ts.map +1 -1
  47. package/dist/host.js +14 -8
  48. package/dist/index.d.ts +4 -3
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +2 -1
  51. package/dist/install.d.ts +8 -2
  52. package/dist/install.d.ts.map +1 -1
  53. package/dist/install.js +40 -33
  54. package/dist/lifecycle.d.ts.map +1 -1
  55. package/dist/lifecycle.js +15 -10
  56. package/dist/listing.d.ts +7 -3
  57. package/dist/listing.d.ts.map +1 -1
  58. package/dist/listing.js +26 -13
  59. package/dist/live.d.ts +5 -3
  60. package/dist/live.d.ts.map +1 -1
  61. package/dist/live.js +71 -30
  62. package/dist/loaded.d.ts +5 -0
  63. package/dist/loaded.d.ts.map +1 -0
  64. package/dist/loaded.js +40 -0
  65. package/dist/locks.d.ts.map +1 -1
  66. package/dist/locks.js +2 -2
  67. package/dist/lost.js +1 -1
  68. package/dist/media.d.ts +5 -0
  69. package/dist/media.d.ts.map +1 -1
  70. package/dist/media.js +65 -14
  71. package/dist/memory.d.ts +3 -1
  72. package/dist/memory.d.ts.map +1 -1
  73. package/dist/memory.js +17 -8
  74. package/dist/messages.d.ts +3 -1
  75. package/dist/messages.d.ts.map +1 -1
  76. package/dist/messages.js +5 -3
  77. package/dist/models.d.ts.map +1 -1
  78. package/dist/models.js +3 -3
  79. package/dist/observation.d.ts +27 -12
  80. package/dist/observation.d.ts.map +1 -1
  81. package/dist/observation.js +173 -69
  82. package/dist/outcome.d.ts +4 -0
  83. package/dist/outcome.d.ts.map +1 -1
  84. package/dist/outcome.js +8 -2
  85. package/dist/overlay.d.ts +1 -1
  86. package/dist/overlay.d.ts.map +1 -1
  87. package/dist/overlay.js +3 -5
  88. package/dist/preparation.d.ts +27 -6
  89. package/dist/preparation.d.ts.map +1 -1
  90. package/dist/preparation.js +131 -44
  91. package/dist/presence.d.ts +8 -2
  92. package/dist/presence.d.ts.map +1 -1
  93. package/dist/presence.js +24 -13
  94. package/dist/queries.d.ts +1 -1
  95. package/dist/queries.d.ts.map +1 -1
  96. package/dist/queries.js +43 -17
  97. package/dist/questions.d.ts +1 -0
  98. package/dist/questions.d.ts.map +1 -1
  99. package/dist/questions.js +1 -0
  100. package/dist/queue.d.ts.map +1 -1
  101. package/dist/queue.js +51 -21
  102. package/dist/reach.d.ts +2 -3
  103. package/dist/reach.d.ts.map +1 -1
  104. package/dist/reach.js +20 -7
  105. package/dist/react.d.ts +3 -1
  106. package/dist/react.d.ts.map +1 -1
  107. package/dist/readiness.d.ts +8 -2
  108. package/dist/readiness.d.ts.map +1 -1
  109. package/dist/readiness.js +3 -5
  110. package/dist/reads.d.ts +1 -1
  111. package/dist/reads.d.ts.map +1 -1
  112. package/dist/reads.js +2 -2
  113. package/dist/replica.d.ts.map +1 -1
  114. package/dist/replica.js +2 -2
  115. package/dist/room-draft.d.ts +28 -3
  116. package/dist/room-draft.d.ts.map +1 -1
  117. package/dist/room-draft.js +230 -12
  118. package/dist/room-drafts.d.ts.map +1 -1
  119. package/dist/room-drafts.js +5 -2
  120. package/dist/room-list.d.ts +10 -0
  121. package/dist/room-list.d.ts.map +1 -0
  122. package/dist/room-list.js +45 -0
  123. package/dist/rows.d.ts +2 -1
  124. package/dist/rows.d.ts.map +1 -1
  125. package/dist/rows.js +6 -6
  126. package/dist/save.d.ts.map +1 -1
  127. package/dist/save.js +17 -86
  128. package/dist/saves.d.ts.map +1 -1
  129. package/dist/saves.js +23 -7
  130. package/dist/seed.d.ts.map +1 -1
  131. package/dist/seed.js +2 -2
  132. package/dist/shown.d.ts +1 -1
  133. package/dist/shown.d.ts.map +1 -1
  134. package/dist/shown.js +51 -37
  135. package/dist/source.d.ts +5 -0
  136. package/dist/source.d.ts.map +1 -1
  137. package/dist/source.js +13 -2
  138. package/dist/store/installs.d.ts +2 -2
  139. package/dist/store/installs.d.ts.map +1 -1
  140. package/dist/store/installs.js +10 -4
  141. package/dist/store/readiness.d.ts +5 -4
  142. package/dist/store/readiness.d.ts.map +1 -1
  143. package/dist/store/readiness.js +28 -12
  144. package/dist/store/records.d.ts +10 -1
  145. package/dist/store/records.d.ts.map +1 -1
  146. package/dist/store/records.js +46 -19
  147. package/dist/store/rooms-shown.d.ts +8 -0
  148. package/dist/store/rooms-shown.d.ts.map +1 -0
  149. package/dist/store/rooms-shown.js +13 -0
  150. package/dist/store.d.ts +12 -8
  151. package/dist/store.d.ts.map +1 -1
  152. package/dist/store.js +8 -4
  153. package/dist/stored.d.ts +23 -13
  154. package/dist/stored.d.ts.map +1 -1
  155. package/dist/stored.js +73 -22
  156. package/dist/surface.d.ts +4 -2
  157. package/dist/surface.d.ts.map +1 -1
  158. package/dist/surface.js +7 -2
  159. package/dist/sync.d.ts +1 -1
  160. package/dist/sync.d.ts.map +1 -1
  161. package/dist/sync.js +8 -7
  162. package/dist/tables.d.ts +10 -49
  163. package/dist/tables.d.ts.map +1 -1
  164. package/dist/tables.js +60 -322
  165. package/dist/tallies.d.ts.map +1 -1
  166. package/dist/tallies.js +1 -2
  167. package/dist/validation.d.ts.map +1 -1
  168. package/dist/validation.js +3 -9
  169. package/dist/wire.d.ts +2 -8
  170. package/dist/wire.d.ts.map +1 -1
  171. package/dist/wire.js +2 -2
  172. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,8 +1,9 @@
1
1
  export { heldFacts } from './conversation-row.js';
2
2
  export { PAGE_METADATA_WORDS } from './page-metadata.js';
3
3
  export { writeRule } from './declaration.js';
4
+ export { blobOf, declaredType } from './outcome.js';
4
5
  export { refusalError } from './failure.js';
5
- export { CHAT_MESSAGE_TYPE, CHAT_TYPE, keptFile, keptLines } from './chat-types.js';
6
+ export { keptFile, keptLines } from './chat-types.js';
6
7
  export { FIGURES_DAY_MS } from './figures.js';
7
8
  export { departure } from './change.js';
8
9
  export { definitionsIn, selected } from './collection.js';
package/dist/install.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { AdapterFailure, Authorization, DiscoveredRoom, NotReady, RetryableRefusal } from './adapter.js';
2
2
  import { type Reads } from './bootstrap.js';
3
- import type { Installation, RoomCoverage } from './readiness.js';
3
+ import type { Installation, InstallationAmount, RoomCoverage } from './readiness.js';
4
4
  import { advancement, type Refresher } from './refresh.js';
5
5
  import type { ReplicaRecord } from './replica.js';
6
6
  import type { Runtime } from './runtime.js';
@@ -33,7 +33,13 @@ type Refreshed = {
33
33
  kind: 'advanced';
34
34
  }>;
35
35
  export declare const ERASE_BATCH = 512;
36
- export declare function installationOf(store: Store, coverage: readonly RoomCoverage[], held: ReadonlyMap<string, CoveredRoom>): Installation;
36
+ export type InstallShare = {
37
+ readonly installing: boolean;
38
+ readonly downloading: boolean;
39
+ readonly bytes: InstallationAmount;
40
+ };
41
+ export declare function installShare(store: Store, { room, state }: RoomCoverage, held: ReadonlyMap<string, CoveredRoom>): InstallShare;
42
+ export declare function installationOf(installing: number, downloading: number, bytes: InstallationAmount): Installation;
37
43
  export declare function roomInFlight(store: Store, locator: string): boolean;
38
44
  export declare function sweep({ store, socket }: Runtime): void;
39
45
  export declare function caughtUpTo(runtime: Runtime, locator: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
package/dist/install.js CHANGED
@@ -79,28 +79,32 @@ function batchEnd(entries, from, bytes) {
79
79
  }
80
80
  return end;
81
81
  }
82
- export function installationOf(store, coverage, held) {
83
- const bytes = { done: 0, total: 0 };
84
- let installing = 0;
85
- let downloading = false;
86
- for (const { room, state } of coverage) {
87
- if (state === 'unadmitted')
88
- continue;
89
- const install = store.installs.of(room);
90
- const underway = state === 'acquiring' || (install.installing && state !== 'complete');
91
- if (underway)
92
- installing += 1;
93
- if (underway && (install.streaming || install.arrived === null))
94
- downloading = true;
95
- const kept = underway ? NOTHING_HELD.bytes : (held.get(room)?.bytes ?? NOTHING_HELD.bytes);
96
- const now = amountOf(install, kept);
97
- const earlier = underway ? install.startedOver : null;
98
- bytes.done += Math.max(now.done, earlier?.done ?? 0);
99
- bytes.total += Math.max(now.total, earlier?.total ?? 0);
100
- }
82
+ const UNSHARED = {
83
+ installing: false,
84
+ downloading: false,
85
+ bytes: { done: 0, total: 0 },
86
+ };
87
+ export function installShare(store, { room, state }, held) {
88
+ if (state === 'unadmitted')
89
+ return UNSHARED;
90
+ const install = store.installs.of(room);
91
+ const underway = state === 'acquiring' || (install.installing && state !== 'complete');
92
+ const kept = underway ? NOTHING_HELD.bytes : (held.get(room)?.bytes ?? NOTHING_HELD.bytes);
93
+ const now = amountOf(install, kept);
94
+ const earlier = underway ? install.startedOver : null;
95
+ return {
96
+ installing: underway,
97
+ downloading: underway && (install.streaming || install.arrived === null),
98
+ bytes: {
99
+ done: Math.max(now.done, earlier?.done ?? 0),
100
+ total: Math.max(now.total, earlier?.total ?? 0),
101
+ },
102
+ };
103
+ }
104
+ export function installationOf(installing, downloading, bytes) {
101
105
  const step = installing === 0
102
106
  ? null
103
- : downloading
107
+ : downloading > 0
104
108
  ? 'downloading'
105
109
  : bytes.done < bytes.total
106
110
  ? 'writing'
@@ -113,13 +117,13 @@ export function roomInFlight(store, locator) {
113
117
  }
114
118
  function installing(runtime, locator) {
115
119
  runtime.store.installs.change(locator, (held) => ({ ...held, installing: true }));
116
- runtime.store.readiness.queue();
120
+ runtime.store.readiness.queue([locator]);
117
121
  }
118
122
  function installed(runtime, locator) {
119
123
  if (!runtime.store.installs.of(locator).installing)
120
124
  return;
121
125
  runtime.store.installs.change(locator, (held) => ({ ...held, installing: false }));
122
- runtime.store.readiness.queue();
126
+ runtime.store.readiness.queue([locator]);
123
127
  }
124
128
  export function sweep({ store, socket }) {
125
129
  if (store.device.now().sweeping || socket.closed())
@@ -143,7 +147,7 @@ export function caughtUpTo(runtime, locator) {
143
147
  if (!runtime.store.installs.of(locator).catching)
144
148
  return;
145
149
  runtime.store.installs.change(locator, (held) => ({ ...held, catching: false }));
146
- recoverReads(runtime);
150
+ recoverReads(runtime, [locator]);
147
151
  }
148
152
  export function catching(store, locator) {
149
153
  store.installs.change(locator, (held) => ({ ...held, catching: true }));
@@ -294,7 +298,8 @@ export async function pullRefresh(runtime, authorized, record, liveness, hold, r
294
298
  async function abandoned(runtime, local, locator) {
295
299
  await local.abandon(locator);
296
300
  runtime.store.installs.change(locator, (held) => transferGone(setBack(held)));
297
- recoverReads(runtime);
301
+ recoverReads(runtime, [locator]);
302
+ runtime.store.readiness.queue([locator]);
298
303
  sweep(runtime);
299
304
  }
300
305
  function staging(runtime, local, liveness, unheld) {
@@ -308,7 +313,7 @@ function staging(runtime, local, liveness, unheld) {
308
313
  if (done === null)
309
314
  return false;
310
315
  store.installs.change(locator, (held) => built(held, done.done, done.text));
311
- runtime.store.readiness.queue();
316
+ runtime.store.readiness.queue([locator]);
312
317
  if (done.done)
313
318
  return true;
314
319
  }
@@ -332,9 +337,9 @@ function staging(runtime, local, liveness, unheld) {
332
337
  arrived: bytes,
333
338
  streaming: true,
334
339
  }));
335
- if (!store.installs.arrivalDue(performance.now(), ARRIVAL_REPORT_MS))
336
- return;
337
- runtime.store.readiness.queue();
340
+ const due = store.installs.arrivalsDue(locator, performance.now(), ARRIVAL_REPORT_MS);
341
+ if (due.length > 0)
342
+ runtime.store.readiness.queue(due);
338
343
  },
339
344
  end() {
340
345
  if (ended)
@@ -343,7 +348,7 @@ function staging(runtime, local, liveness, unheld) {
343
348
  if (!store.installs.of(locator).streaming)
344
349
  return;
345
350
  store.installs.change(locator, (held) => ({ ...held, streaming: false }));
346
- runtime.store.readiness.queue();
351
+ runtime.store.readiness.queue([locator]);
347
352
  },
348
353
  };
349
354
  },
@@ -371,7 +376,7 @@ function staging(runtime, local, liveness, unheld) {
371
376
  underived: owed,
372
377
  }));
373
378
  installing(runtime, locator);
374
- recoverReads(runtime);
379
+ recoverReads(runtime, [locator]);
375
380
  if (owed < store.deriveBytes())
376
381
  return held;
377
382
  return (await derived(locator, key, composition)) ? held : null;
@@ -406,7 +411,8 @@ function staging(runtime, local, liveness, unheld) {
406
411
  done: { bytes },
407
412
  };
408
413
  store.installs.change(locator, (room) => ({ ...room, transfer: held }));
409
- recoverReads(runtime);
414
+ recoverReads(runtime, [locator]);
415
+ store.readiness.queue([locator]);
410
416
  return { record: held, staged: parted };
411
417
  },
412
418
  derive: derived,
@@ -422,7 +428,8 @@ function staging(runtime, local, liveness, unheld) {
422
428
  if (!liveness())
423
429
  return;
424
430
  store.installs.change(locator, (held) => transferGone(setBack(held)));
425
- recoverReads(runtime);
431
+ recoverReads(runtime, [locator]);
432
+ store.readiness.queue([locator]);
426
433
  },
427
434
  release: (key) => store.exclusive(async () => {
428
435
  await local.release(key);
@@ -436,7 +443,7 @@ export async function pullBootstrap(runtime, authorized, room, local, liveness,
436
443
  const { store } = runtime;
437
444
  if (prior !== undefined) {
438
445
  catching(store, room.locator);
439
- recoverReads(runtime);
446
+ recoverReads(runtime, [room.locator]);
440
447
  }
441
448
  try {
442
449
  const result = await bootstrapRoom(from, authorized, room, {
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAgO5C,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,QAOhD;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,QAQ1C;AAED,wBAAgB,KAAK,CAAC,EACpB,KAAK,EACL,MAAM,EACN,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,WAAW,EACX,OAAO,GACR,EAAE,OAAO,QAST;AAED,wBAAsB,IAAI,CAAC,OAAO,EAAE,OAAO,iBAS1C;AAED,wBAAgB,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,GAAG,SAAS,QAyCtE"}
1
+ {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAoO5C,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,QAOhD;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,QAQ1C;AAED,wBAAgB,KAAK,CAAC,EACpB,KAAK,EACL,MAAM,EACN,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,WAAW,EACX,OAAO,GACR,EAAE,OAAO,QAST;AAED,wBAAsB,IAAI,CAAC,OAAO,EAAE,OAAO,iBAS1C;AAED,wBAAgB,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,GAAG,SAAS,QA2CtE"}
package/dist/lifecycle.js CHANGED
@@ -6,6 +6,7 @@ import { connectionLost } from './locks.js';
6
6
  import { fenceLive } from './lost.js';
7
7
  import { cachedModels, revoked, settleModels } from './models.js';
8
8
  import { refuse } from './refusal.js';
9
+ import { roomsListed } from './room-list.js';
9
10
  import { moveTo, recoverReads, rest, SERVICE_MODE_TOPIC, show, submissionDue, transferring, } from './shown.js';
10
11
  import { applyRoom, changeAuthority, countAuthorityChange, finishOpening, loadRoom, OPENING_LANE, reload, resynchronize, sync, } from './sync.js';
11
12
  const CONVERSATION_LANE = 'conversations';
@@ -52,13 +53,13 @@ function owedReloads(runtime, expired, held) {
52
53
  .map((room) => room.locator);
53
54
  for (const locator of reloading)
54
55
  catching(store, locator);
55
- recoverReads(runtime);
56
+ recoverReads(runtime, reloading);
56
57
  return reloading;
57
58
  }
58
- async function reloadNow(runtime, replacing, progress, held, installing) {
59
+ async function reloadNow(runtime, among, replacing, progress, held, installing) {
59
60
  const { store, socket, presence } = runtime;
60
61
  const { lanes } = socket;
61
- const discovered = presence.rooms();
62
+ const discovered = among === null ? presence.rooms() : among.flatMap((locator) => presence.room(locator) ?? []);
62
63
  const reloaded = discovered.filter((room) => held.has(room.locator) && !installing.has(room.locator) && replacing(room));
63
64
  const acquired = discovered.filter((room) => (!held.has(room.locator) || installing.has(room.locator)) &&
64
65
  room.replica.admission === 'admitted' &&
@@ -96,12 +97,13 @@ function caughtUpRooms(runtime, expired) {
96
97
  socket.named();
97
98
  const cycle = progress ?? { complete: true, reachable: true };
98
99
  replaced(store, expired);
99
- const installing = store.installs.underway();
100
- const held = progress === null ? store.rooms(expired) : store.rooms();
100
+ const among = progress === null ? expired : null;
101
+ const installing = store.installs.underway(among);
102
+ const held = among === null ? store.rooms() : store.rooms(among);
101
103
  const reloading = progress === null
102
104
  ? Promise.resolve([])
103
105
  : held.then((stored) => owedReloads(runtime, expired, stored));
104
- const replacing = Promise.all([held, reloading]).then(([stored, owed]) => reloadNow(runtime, (room) => expired.includes(room.locator) || owed.includes(room.locator), cycle, stored, installing));
106
+ const replacing = Promise.all([held, reloading]).then(([stored, owed]) => reloadNow(runtime, among, (room) => expired.includes(room.locator) || owed.includes(room.locator), cycle, stored, installing));
105
107
  return socket.lanes.task(OPENING_LANE, async (live) => {
106
108
  if (!live())
107
109
  return;
@@ -147,7 +149,7 @@ function signalled(runtime, mode) {
147
149
  session.set({ haltedRefusal: false });
148
150
  if (mode !== serviceMode) {
149
151
  session.set({ serviceMode: mode });
150
- store.readiness.queue();
152
+ store.readiness.queue([]);
151
153
  store.tell(SERVICE_MODE_TOPIC, mode);
152
154
  }
153
155
  if (releasing)
@@ -162,7 +164,7 @@ async function runCurrency(runtime, live) {
162
164
  return;
163
165
  await reconcileConversations(conversations);
164
166
  if (conversations.current()) {
165
- show(runtime);
167
+ await rest(runtime, null, live);
166
168
  return;
167
169
  }
168
170
  const progress = {
@@ -227,7 +229,7 @@ export function start(runtime, signal) {
227
229
  socket.observeServiceMode((mode) => signalled(runtime, mode));
228
230
  socket.observeConversations((event) => {
229
231
  if (event.kind === 'list' || event.kind === 'listed' || event.kind === 'unlisted')
230
- store.readiness.queue();
232
+ store.readiness.queue([]);
231
233
  receiveConversationEvent(conversations, event);
232
234
  if (event.kind !== 'gap' || conversations.current())
233
235
  return;
@@ -245,8 +247,9 @@ export function start(runtime, signal) {
245
247
  recovery.resume();
246
248
  }
247
249
  else if (event.kind === 'discovered') {
250
+ const listed = roomsListed(runtime, event.discovery.roomList);
248
251
  if (event.missed)
249
- countAuthorityChange(runtime);
252
+ countAuthorityChange(runtime, listed);
250
253
  void sync(runtime, 'opened', event.discovery);
251
254
  }
252
255
  else if (event.kind === 'closed') {
@@ -254,6 +257,8 @@ export function start(runtime, signal) {
254
257
  }
255
258
  else if (event.kind === 'caught-up')
256
259
  void caughtUpRooms(runtime, event.expired);
260
+ else if (event.kind === 'reported')
261
+ lastAnswers.again();
257
262
  else if (event.kind === 'authority-changed') {
258
263
  if (socket.isAnnounced() && socket.isOpen())
259
264
  fenceLive(runtime, event.left);
package/dist/listing.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import type { HeldRooms } from '@agentshouse/mdmodel';
2
2
  import type { DiscoveredRoom, HeldRoom, OperationScopes, ProviderRefusal, ReplicaAdmission, RoomDeclaration } from './adapter.js';
3
3
  import type { Composition } from './collection.js';
4
+ import type { KeyedChange } from './observation.js';
4
5
  import { type ModelState, type TypesResult } from './model.js';
5
6
  import { type PortReach } from './reach.js';
6
7
  import type { ReplicaRecord } from './replica.js';
@@ -27,10 +28,11 @@ export type AppRoom = {
27
28
  locked: boolean;
28
29
  };
29
30
  type ListedRoom = Omit<AppRoom, 'documents' | 'locked'>;
30
- type ListedEntry = ListedRoom & {
31
+ export type ListedEntry = ListedRoom & {
31
32
  readonly documents: number;
32
33
  };
33
34
  export type Listing = ReadonlyMap<string, ListedEntry>;
35
+ export type RoomsChange = KeyedChange<string, AppRoom>;
34
36
  export declare function modelIn({ socket, presence }: Runtime, locator: string, stored: Stored | undefined): ModelState;
35
37
  export declare function compositionFor(runtime: Runtime, record: ReplicaRecord): Composition;
36
38
  export declare function declarationOf({ presence }: Runtime, locator: string, stored: Stored | undefined): {
@@ -38,9 +40,11 @@ export declare function declarationOf({ presence }: Runtime, locator: string, st
38
40
  readonly available: boolean;
39
41
  } | undefined;
40
42
  export declare function listedLocators({ presence }: Runtime, held: ReadonlyMap<string, unknown>): string[];
41
- export declare function patchedListing(runtime: Runtime, changed: ReadonlySet<string>): Promise<Listing | null>;
43
+ export declare function listedOrHeld({ presence }: Runtime, held: ReadonlyMap<string, unknown>, locator: string): boolean;
44
+ export declare function listedEntries(runtime: Runtime, touched: readonly string[]): Promise<readonly ListedEntry[] | null>;
42
45
  export declare function listingNow(runtime: Runtime): Promise<Listing>;
43
- export declare function shownRooms({ presence }: Runtime, listing: Listing): readonly AppRoom[];
46
+ export declare function shownRooms(runtime: Runtime, listing: Listing): readonly AppRoom[];
47
+ export declare function shownChange(runtime: Runtime, entries: readonly ListedEntry[]): RoomsChange;
44
48
  export declare function roomFacts(runtime: Runtime, reach?: PortReach | null): Promise<HeldRooms>;
45
49
  export declare function heldRooms({ store }: Runtime, listed: readonly DiscoveredRoom[]): Promise<HeldRoom[]>;
46
50
  export declare function name(runtime: Runtime, locator: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"listing.d.ts","sourceRoot":"","sources":["../src/listing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EACV,cAAc,EACd,QAAQ,EACR,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,eAAe,EAChB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAAwB,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,KAAK,EAAE,WAAW,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,eAAe,CAAC;IAC5B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,KAAK,EAAE,WAAW,CAAC;IACnB,cAAc,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACzC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,wBAAwB,EAAE,OAAO,CAAC;IAClC,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IAChC,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,KAAK,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,QAAQ,CAAC,CAAC;AAExD,KAAK,WAAW,GAAG,UAAU,GAAG;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/D,MAAM,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAEvD,wBAAgB,OAAO,CACrB,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,OAAO,EAC7B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,UAAU,CAIZ;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,GAAG,WAAW,CAKnF;AAED,wBAAgB,aAAa,CAC3B,EAAE,QAAQ,EAAE,EAAE,OAAO,EACrB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,CAQ7E;AAED,wBAAgB,cAAc,CAC5B,EAAE,QAAQ,EAAE,EAAE,OAAO,EACrB,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,MAAM,EAAE,CAGV;AA8CD,wBAAsB,cAAc,CAClC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,GAC3B,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAYzB;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAEnE;AAED,wBAAgB,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS,OAAO,EAAE,CAmBtF;AAED,wBAAsB,SAAS,CAC7B,OAAO,EAAE,OAAO,EAChB,KAAK,GAAE,SAAS,GAAG,IAAW,GAC7B,OAAO,CAAC,SAAS,CAAC,CAoBpB;AAED,wBAAsB,SAAS,CAC7B,EAAE,KAAK,EAAE,EAAE,OAAO,EAClB,MAAM,EAAE,SAAS,cAAc,EAAE,GAChC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAYrB;AAED,wBAAsB,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAO3D"}
1
+ {"version":3,"file":"listing.d.ts","sourceRoot":"","sources":["../src/listing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EACV,cAAc,EACd,QAAQ,EACR,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,eAAe,EAChB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAwB,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,KAAK,EAAE,WAAW,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,eAAe,CAAC;IAC5B,OAAO,EAAE,gBAAgB,CAAC;IAC1B,KAAK,EAAE,WAAW,CAAC;IACnB,cAAc,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACzC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,wBAAwB,EAAE,OAAO,CAAC;IAClC,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IAChC,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,KAAK,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,QAAQ,CAAC,CAAC;AAExD,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtE,MAAM,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAEvD,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEvD,wBAAgB,OAAO,CACrB,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,OAAO,EAC7B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,UAAU,CAIZ;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,GAAG,WAAW,CAKnF;AAED,wBAAgB,aAAa,CAC3B,EAAE,QAAQ,EAAE,EAAE,OAAO,EACrB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,CAQ7E;AAED,wBAAgB,cAAc,CAC5B,EAAE,QAAQ,EAAE,EAAE,OAAO,EACrB,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,MAAM,EAAE,CAGV;AAED,wBAAgB,YAAY,CAC1B,EAAE,QAAQ,EAAE,EAAE,OAAO,EACrB,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,OAAO,EAAE,MAAM,GACd,OAAO,CAET;AA8CD,wBAAsB,aAAa,CACjC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,SAAS,MAAM,EAAE,GACzB,OAAO,CAAC,SAAS,WAAW,EAAE,GAAG,IAAI,CAAC,CAYxC;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAEnE;AAcD,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,SAAS,OAAO,EAAE,CAEjF;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,WAAW,EAAE,GAAG,WAAW,CAM1F;AAED,wBAAsB,SAAS,CAC7B,OAAO,EAAE,OAAO,EAChB,KAAK,GAAE,SAAS,GAAG,IAAW,GAC7B,OAAO,CAAC,SAAS,CAAC,CAoBpB;AAED,wBAAsB,SAAS,CAC7B,EAAE,KAAK,EAAE,EAAE,OAAO,EAClB,MAAM,EAAE,SAAS,cAAc,EAAE,GAChC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAYrB;AAED,wBAAsB,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAO3D"}
package/dist/listing.js CHANGED
@@ -26,6 +26,9 @@ export function listedLocators({ presence }, held) {
26
26
  const listed = presence.rooms().map(({ locator }) => locator);
27
27
  return [...new Set([...listed, ...held.keys()])];
28
28
  }
29
+ export function listedOrHeld({ presence }, held, locator) {
30
+ return presence.room(locator) !== undefined || held.has(locator);
31
+ }
29
32
  function selectionModel({ socket, builtIn }) {
30
33
  return socket.session.now().refusal?.code === 'revoked-authorization'
31
34
  ? { status: 'unavailable', reason: 'revoked' }
@@ -64,27 +67,27 @@ function listingOf(runtime, held) {
64
67
  }
65
68
  return listing;
66
69
  }
67
- export async function patchedListing(runtime, changed) {
70
+ export async function listedEntries(runtime, touched) {
68
71
  const { store } = runtime;
69
- const { roomsShown } = store.device.now();
70
- if (roomsShown === null)
72
+ if (store.roomsShown.now() === null)
71
73
  return null;
72
- const held = await store.rooms([...changed]);
73
- const listing = new Map(roomsShown);
74
- for (const locator of changed) {
74
+ if (touched.length === 0)
75
+ return [];
76
+ const held = await store.rooms(touched);
77
+ const entries = [];
78
+ for (const locator of touched) {
75
79
  const room = listedRoom(runtime, locator, held.get(locator));
76
- if (room === undefined || !listing.has(locator))
80
+ if (room === undefined || store.roomsShown.now()?.has(locator) !== true)
77
81
  return null;
78
- listing.set(locator, room);
82
+ entries.push(room);
79
83
  }
80
- return listing;
84
+ return entries;
81
85
  }
82
86
  export async function listingNow(runtime) {
83
87
  return listingOf(runtime, await runtime.store.rooms());
84
88
  }
85
- export function shownRooms({ presence }, listing) {
86
- const locked = new Set(presence.lockedAmong(new Map([...listing].map(([locator, room]) => [locator, room.replica.offline]))));
87
- return structuredClone([...listing.values()].map(({ documents, ...room }) => locked.has(room.locator)
89
+ function shownRoom({ presence }, { documents, ...room }) {
90
+ return presence.lockedAs(room.locator, room.replica.offline)
88
91
  ? {
89
92
  ...room,
90
93
  model: modelTypes(NO_MODEL),
@@ -92,7 +95,17 @@ export function shownRooms({ presence }, listing) {
92
95
  documents: 0,
93
96
  locked: true,
94
97
  }
95
- : { ...room, documents, locked: false }));
98
+ : { ...room, documents, locked: false };
99
+ }
100
+ export function shownRooms(runtime, listing) {
101
+ return structuredClone([...listing.values()].map((entry) => shownRoom(runtime, entry)));
102
+ }
103
+ export function shownChange(runtime, entries) {
104
+ return {
105
+ changed: structuredClone(entries.map((entry) => [entry.locator, shownRoom(runtime, entry)])),
106
+ removed: [],
107
+ order: null,
108
+ };
96
109
  }
97
110
  export async function roomFacts(runtime, reach = null) {
98
111
  const { store, socket, builtIn } = runtime;
package/dist/live.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { ChangeSet } from './change-set.js';
2
2
  import { type KeyedResult, type QueryMessage } from './observation.js';
3
- import type { PendingResult, Plan, QueryCoverage } from './query.js';
3
+ import type { PendingResult, PendingRoom, Plan, QueryCoverage } from './query.js';
4
4
  import type { Fail } from './reach.js';
5
5
  import type { QueryRoom } from './tables.js';
6
6
  export type Cover = {
@@ -11,13 +11,15 @@ export type Ran = KeyedResult & {
11
11
  readonly current: () => boolean;
12
12
  };
13
13
  export type Run = (plan: Plan, cover: () => Promise<Cover>) => Promise<Ran>;
14
+ export type PendingAt<H> = (held: H, rooms: readonly string[]) => ReadonlyMap<string, PendingRoom | null> | null;
14
15
  type Listener = (message: QueryMessage) => void;
15
16
  export type LiveQueries<H> = {
16
17
  touched(set: ChangeSet): void;
17
- recover(): void;
18
- watch(plan: Plan, identity: string, cover: (held: H) => Cover, deliver: Listener, failed: Fail): () => void;
18
+ recover(locators?: readonly string[]): void;
19
+ watch(plan: Plan, identity: string, cover: (held: H) => Cover, pendingAt: PendingAt<H>, deliver: Listener, failed: Fail): () => void;
19
20
  close(): void;
20
21
  };
22
+ export declare function readerOf(plan: Plan): (locator: string) => boolean;
21
23
  export declare function createLiveQueries<H>(run: Run, holding: () => Promise<H>): LiveQueries<H>;
22
24
  export {};
23
25
  //# sourceMappingURL=live.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../src/live.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,MAAM,KAAK,GAAG;IAAE,QAAQ,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAA;CAAE,GAAG,aAAa,CAAC;AAE7F,MAAM,MAAM,GAAG,GAAG,WAAW,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAA;CAAE,CAAC;AAEpE,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAE5E,KAAK,QAAQ,GAAG,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;AAchD,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC3B,OAAO,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;IAC9B,OAAO,IAAI,IAAI,CAAC;IAChB,KAAK,CACH,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,KAAK,EACzB,OAAO,EAAE,QAAQ,EACjB,MAAM,EAAE,IAAI,GACX,MAAM,IAAI,CAAC;IACd,KAAK,IAAI,IAAI,CAAC;CACf,CAAC;AAmCF,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CA2HxF"}
1
+ {"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../src/live.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAQL,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAClF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,MAAM,KAAK,GAAG;IAAE,QAAQ,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAA;CAAE,GAAG,aAAa,CAAC;AAE7F,MAAM,MAAM,GAAG,GAAG,WAAW,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,OAAO,CAAA;CAAE,CAAC;AAEpE,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAE5E,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CACzB,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,SAAS,MAAM,EAAE,KACrB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;AAEpD,KAAK,QAAQ,GAAG,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;AAiBhD,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC3B,OAAO,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;IAC9B,OAAO,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5C,KAAK,CACH,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,KAAK,EACzB,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,EACvB,OAAO,EAAE,QAAQ,EACjB,MAAM,EAAE,IAAI,GACX,MAAM,IAAI,CAAC;IACd,KAAK,IAAI,IAAI,CAAC;CACf,CAAC;AAWF,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAQjE;AAeD,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CA4JxF"}