@agentshouse/mdruntime 0.1.0-c2aaa9c0e3ca4 → 0.1.0-c2c52158b7381

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 (199) hide show
  1. package/AGENTS.md +285 -276
  2. package/README.md +9 -8
  3. package/dist/adapter.d.ts +80 -21
  4. package/dist/adapter.d.ts.map +1 -1
  5. package/dist/attached-model.d.ts +4 -1
  6. package/dist/attached-model.d.ts.map +1 -1
  7. package/dist/attached-model.js +13 -3
  8. package/dist/attempt.d.ts.map +1 -1
  9. package/dist/attempt.js +14 -1
  10. package/dist/bootstrap.d.ts +3 -2
  11. package/dist/bootstrap.d.ts.map +1 -1
  12. package/dist/bootstrap.js +83 -26
  13. package/dist/change-set.d.ts +7 -2
  14. package/dist/change-set.d.ts.map +1 -1
  15. package/dist/change-set.js +37 -10
  16. package/dist/change.d.ts +31 -1
  17. package/dist/change.d.ts.map +1 -1
  18. package/dist/change.js +10 -1
  19. package/dist/chat/acts.d.ts +3 -4
  20. package/dist/chat/acts.d.ts.map +1 -1
  21. package/dist/chat/acts.js +10 -10
  22. package/dist/chat/earlier.d.ts +10 -0
  23. package/dist/chat/earlier.d.ts.map +1 -0
  24. package/dist/chat/earlier.js +54 -0
  25. package/dist/chat/house.d.ts +25 -0
  26. package/dist/chat/house.d.ts.map +1 -0
  27. package/dist/chat/house.js +38 -0
  28. package/dist/chat/input.d.ts +3 -1
  29. package/dist/chat/input.d.ts.map +1 -1
  30. package/dist/chat/input.js +11 -18
  31. package/dist/chat/kit.d.ts +2 -1
  32. package/dist/chat/kit.d.ts.map +1 -1
  33. package/dist/chat/kit.js +3 -3
  34. package/dist/chat/list.d.ts +9 -1
  35. package/dist/chat/list.d.ts.map +1 -1
  36. package/dist/chat/list.js +53 -9
  37. package/dist/chat/markdown.d.ts +3 -1
  38. package/dist/chat/markdown.d.ts.map +1 -1
  39. package/dist/chat/markdown.js +85 -26
  40. package/dist/chat/message.d.ts +1 -0
  41. package/dist/chat/message.d.ts.map +1 -1
  42. package/dist/chat/message.js +57 -12
  43. package/dist/chat/messages.d.ts +9 -1
  44. package/dist/chat/messages.d.ts.map +1 -1
  45. package/dist/chat/messages.js +67 -28
  46. package/dist/chat/name.d.ts +1 -0
  47. package/dist/chat/name.d.ts.map +1 -1
  48. package/dist/chat/name.js +1 -1
  49. package/dist/chat/opened.d.ts +1 -0
  50. package/dist/chat/opened.d.ts.map +1 -1
  51. package/dist/chat/opened.js +2 -0
  52. package/dist/chat/overlay.d.ts +1 -0
  53. package/dist/chat/overlay.d.ts.map +1 -1
  54. package/dist/chat/overlay.js +11 -5
  55. package/dist/chat/parts.d.ts +1 -0
  56. package/dist/chat/parts.d.ts.map +1 -1
  57. package/dist/chat/parts.js +3 -2
  58. package/dist/chat/pieces.d.ts +62 -0
  59. package/dist/chat/pieces.d.ts.map +1 -0
  60. package/dist/chat/pieces.js +1110 -0
  61. package/dist/chat/provider.d.ts +7 -2
  62. package/dist/chat/provider.d.ts.map +1 -1
  63. package/dist/chat/provider.js +129 -155
  64. package/dist/chat/question.d.ts +1 -1
  65. package/dist/chat/question.d.ts.map +1 -1
  66. package/dist/chat/question.js +7 -18
  67. package/dist/chat/ready.d.ts +5 -1
  68. package/dist/chat/ready.d.ts.map +1 -1
  69. package/dist/chat/ready.js +9 -7
  70. package/dist/chat/room-file.d.ts +8 -0
  71. package/dist/chat/room-file.d.ts.map +1 -0
  72. package/dist/chat/room-file.js +72 -0
  73. package/dist/chat/steady.d.ts +3 -0
  74. package/dist/chat/steady.d.ts.map +1 -0
  75. package/dist/chat/steady.js +26 -0
  76. package/dist/chat/style.d.ts.map +1 -1
  77. package/dist/chat/style.js +8 -4
  78. package/dist/chat.d.ts +3 -2
  79. package/dist/chat.d.ts.map +1 -1
  80. package/dist/chat.js +2 -2
  81. package/dist/client.d.ts +21 -9
  82. package/dist/client.d.ts.map +1 -1
  83. package/dist/client.js +47 -8
  84. package/dist/collection.d.ts +21 -6
  85. package/dist/collection.d.ts.map +1 -1
  86. package/dist/collection.js +332 -40
  87. package/dist/connection.d.ts +39 -11
  88. package/dist/connection.d.ts.map +1 -1
  89. package/dist/connection.js +2294 -492
  90. package/dist/conversation.d.ts +28 -9
  91. package/dist/conversation.d.ts.map +1 -1
  92. package/dist/conversation.js +500 -165
  93. package/dist/digest.d.ts +7 -0
  94. package/dist/digest.d.ts.map +1 -0
  95. package/dist/digest.js +113 -0
  96. package/dist/durability.d.ts +8 -1
  97. package/dist/durability.d.ts.map +1 -1
  98. package/dist/entry.d.ts +18 -0
  99. package/dist/entry.d.ts.map +1 -0
  100. package/dist/entry.js +157 -0
  101. package/dist/fence.d.ts +6 -0
  102. package/dist/fence.d.ts.map +1 -0
  103. package/dist/fence.js +10 -0
  104. package/dist/file.d.ts +2 -10
  105. package/dist/file.d.ts.map +1 -1
  106. package/dist/file.js +3 -120
  107. package/dist/host.d.ts +15 -3
  108. package/dist/host.d.ts.map +1 -1
  109. package/dist/host.js +103 -13
  110. package/dist/identity.d.ts +2 -0
  111. package/dist/identity.d.ts.map +1 -1
  112. package/dist/identity.js +6 -0
  113. package/dist/index.d.ts +15 -9
  114. package/dist/index.d.ts.map +1 -1
  115. package/dist/index.js +5 -0
  116. package/dist/memory.d.ts +8 -2
  117. package/dist/memory.d.ts.map +1 -1
  118. package/dist/memory.js +43 -12
  119. package/dist/model.d.ts +4 -2
  120. package/dist/model.d.ts.map +1 -1
  121. package/dist/model.js +10 -1
  122. package/dist/name.d.ts +4 -0
  123. package/dist/name.d.ts.map +1 -0
  124. package/dist/name.js +122 -0
  125. package/dist/observation.d.ts +7 -2
  126. package/dist/observation.d.ts.map +1 -1
  127. package/dist/observation.js +29 -12
  128. package/dist/opened.d.ts +22 -0
  129. package/dist/opened.d.ts.map +1 -0
  130. package/dist/opened.js +107 -0
  131. package/dist/outcome.d.ts +39 -4
  132. package/dist/outcome.d.ts.map +1 -1
  133. package/dist/outcome.js +29 -0
  134. package/dist/overlay.d.ts +6 -4
  135. package/dist/overlay.d.ts.map +1 -1
  136. package/dist/overlay.js +229 -161
  137. package/dist/query.d.ts +57 -4
  138. package/dist/query.d.ts.map +1 -1
  139. package/dist/query.js +37 -7
  140. package/dist/reach.d.ts +11 -4
  141. package/dist/reach.d.ts.map +1 -1
  142. package/dist/reach.js +192 -41
  143. package/dist/react.d.ts +8 -6
  144. package/dist/react.d.ts.map +1 -1
  145. package/dist/react.js +7 -17
  146. package/dist/read-side.d.ts +18 -9
  147. package/dist/read-side.d.ts.map +1 -1
  148. package/dist/read-side.js +894 -155
  149. package/dist/readiness.d.ts +53 -0
  150. package/dist/readiness.d.ts.map +1 -0
  151. package/dist/readiness.js +33 -0
  152. package/dist/reads.d.ts +11 -0
  153. package/dist/reads.d.ts.map +1 -0
  154. package/dist/reads.js +98 -0
  155. package/dist/recovery.d.ts +25 -0
  156. package/dist/recovery.d.ts.map +1 -0
  157. package/dist/recovery.js +198 -0
  158. package/dist/refresh.d.ts +4 -4
  159. package/dist/refresh.d.ts.map +1 -1
  160. package/dist/refresh.js +46 -20
  161. package/dist/replica.d.ts +12 -7
  162. package/dist/replica.d.ts.map +1 -1
  163. package/dist/replica.js +151 -64
  164. package/dist/room-draft.d.ts +16 -2
  165. package/dist/room-draft.d.ts.map +1 -1
  166. package/dist/room-draft.js +32 -25
  167. package/dist/rows.d.ts +6 -13
  168. package/dist/rows.d.ts.map +1 -1
  169. package/dist/rows.js +10 -13
  170. package/dist/save.d.ts +52 -10
  171. package/dist/save.d.ts.map +1 -1
  172. package/dist/save.js +519 -159
  173. package/dist/search.d.ts +49 -6
  174. package/dist/search.d.ts.map +1 -1
  175. package/dist/search.js +242 -46
  176. package/dist/seed.d.ts +16 -0
  177. package/dist/seed.d.ts.map +1 -0
  178. package/dist/seed.js +75 -0
  179. package/dist/shared.d.ts +19 -0
  180. package/dist/shared.d.ts.map +1 -0
  181. package/dist/shared.js +461 -0
  182. package/dist/status.d.ts +4 -0
  183. package/dist/status.d.ts.map +1 -1
  184. package/dist/store.d.ts +61 -17
  185. package/dist/store.d.ts.map +1 -1
  186. package/dist/store.js +581 -310
  187. package/dist/tables.d.ts +242 -0
  188. package/dist/tables.d.ts.map +1 -0
  189. package/dist/tables.js +406 -0
  190. package/dist/turn.d.ts +9 -0
  191. package/dist/turn.d.ts.map +1 -0
  192. package/dist/turn.js +67 -0
  193. package/dist/windows.d.ts +21 -0
  194. package/dist/windows.d.ts.map +1 -0
  195. package/dist/windows.js +84 -0
  196. package/dist/wire.d.ts +168 -32
  197. package/dist/wire.d.ts.map +1 -1
  198. package/dist/wire.js +56 -31
  199. package/package.json +10 -2
package/dist/shared.js ADDED
@@ -0,0 +1,461 @@
1
+ import { finished, ROW_WEIGHT } from './turn.js';
2
+ const BITS = 5;
3
+ const MASK = (1 << BITS) - 1;
4
+ const roots = new WeakMap();
5
+ const tallies = new WeakMap();
6
+ function hashOf(key) {
7
+ let hash = 0x811c9dc5;
8
+ for (let index = 0; index < key.length; index += 1) {
9
+ hash ^= key.charCodeAt(index);
10
+ hash = Math.imul(hash, 0x01000193);
11
+ }
12
+ return hash >>> 0;
13
+ }
14
+ function isLeaf(node) {
15
+ return 'key' in node;
16
+ }
17
+ function isCollision(node) {
18
+ return 'leaves' in node;
19
+ }
20
+ function fragment(hash, shift) {
21
+ return (hash >>> shift) & MASK;
22
+ }
23
+ function count(bits) {
24
+ let left = bits - ((bits >>> 1) & 0x55555555);
25
+ left = (left & 0x33333333) + ((left >>> 2) & 0x33333333);
26
+ return (((left + (left >>> 4)) & 0x0f0f0f0f) * 0x01010101) >>> 24;
27
+ }
28
+ function slot(bitmap, bit) {
29
+ return count(bitmap & (bit - 1));
30
+ }
31
+ function lookup(root, key) {
32
+ const hash = hashOf(key);
33
+ let node = root.node;
34
+ let shift = 0;
35
+ while (node !== undefined) {
36
+ if (isLeaf(node))
37
+ return node.key === key ? node : undefined;
38
+ if (isCollision(node))
39
+ return node.leaves.find((leaf) => leaf.key === key);
40
+ const bit = 1 << fragment(hash, shift);
41
+ if ((node.bitmap & bit) === 0)
42
+ return undefined;
43
+ node = node.children[slot(node.bitmap, bit)];
44
+ shift += BITS;
45
+ }
46
+ return undefined;
47
+ }
48
+ function branchOf(node, shift) {
49
+ return { bitmap: 1 << fragment(node.hash, shift), children: [node] };
50
+ }
51
+ function joined(left, right, shift) {
52
+ if (left.hash === right.hash) {
53
+ const leaves = isCollision(left) ? left.leaves : [left];
54
+ return { hash: right.hash, leaves: [...leaves, right] };
55
+ }
56
+ return put(branchOf(left, shift), right, shift);
57
+ }
58
+ function put(node, leaf, shift) {
59
+ if (node === undefined)
60
+ return leaf;
61
+ if (isLeaf(node)) {
62
+ if (node.key !== leaf.key)
63
+ return joined(node, leaf, shift);
64
+ return node.value === leaf.value ? node : leaf;
65
+ }
66
+ if (isCollision(node)) {
67
+ if (node.hash !== leaf.hash)
68
+ return joined(node, leaf, shift);
69
+ const at = node.leaves.findIndex((held) => held.key === leaf.key);
70
+ if (at === -1)
71
+ return { hash: node.hash, leaves: [...node.leaves, leaf] };
72
+ if (node.leaves[at].value === leaf.value)
73
+ return node;
74
+ return {
75
+ hash: node.hash,
76
+ leaves: node.leaves.map((held, index) => (index === at ? leaf : held)),
77
+ };
78
+ }
79
+ const bit = 1 << fragment(leaf.hash, shift);
80
+ const at = slot(node.bitmap, bit);
81
+ if ((node.bitmap & bit) === 0) {
82
+ return {
83
+ bitmap: node.bitmap | bit,
84
+ children: [...node.children.slice(0, at), leaf, ...node.children.slice(at)],
85
+ };
86
+ }
87
+ const child = node.children[at];
88
+ const next = put(child, leaf, shift + BITS);
89
+ if (next === child)
90
+ return node;
91
+ return {
92
+ bitmap: node.bitmap,
93
+ children: node.children.map((held, index) => (index === at ? next : held)),
94
+ };
95
+ }
96
+ function lone(node) {
97
+ if (node.children.length !== 1)
98
+ return null;
99
+ const [only] = node.children;
100
+ return isLeaf(only) || isCollision(only) ? only : null;
101
+ }
102
+ function taken(node, hash, key, shift) {
103
+ if (isLeaf(node))
104
+ return node.key === key ? undefined : node;
105
+ if (isCollision(node)) {
106
+ const leaves = node.leaves.filter((leaf) => leaf.key !== key);
107
+ if (leaves.length === node.leaves.length)
108
+ return node;
109
+ return leaves.length === 1 ? leaves[0] : { hash: node.hash, leaves };
110
+ }
111
+ const bit = 1 << fragment(hash, shift);
112
+ if ((node.bitmap & bit) === 0)
113
+ return node;
114
+ const at = slot(node.bitmap, bit);
115
+ const child = node.children[at];
116
+ const next = taken(child, hash, key, shift + BITS);
117
+ if (next === child)
118
+ return node;
119
+ if (next === undefined) {
120
+ if (node.children.length === 1)
121
+ return undefined;
122
+ const rest = {
123
+ bitmap: node.bitmap & ~bit,
124
+ children: node.children.filter((_, index) => index !== at),
125
+ };
126
+ return lone(rest) ?? rest;
127
+ }
128
+ const replaced = {
129
+ bitmap: node.bitmap,
130
+ children: node.children.map((held, index) => (index === at ? next : held)),
131
+ };
132
+ return lone(replaced) ?? replaced;
133
+ }
134
+ function* leavesOf(node) {
135
+ if (node === undefined)
136
+ return;
137
+ if (isLeaf(node)) {
138
+ yield node;
139
+ return;
140
+ }
141
+ if (isCollision(node)) {
142
+ yield* node.leaves;
143
+ return;
144
+ }
145
+ for (const child of node.children)
146
+ yield* leavesOf(child);
147
+ }
148
+ function facade(root) {
149
+ let keys;
150
+ const target = {};
151
+ const map = new Proxy(target, {
152
+ get(held, property, receiver) {
153
+ if (typeof property === 'string') {
154
+ const leaf = lookup(root, property);
155
+ if (leaf !== undefined)
156
+ return leaf.value;
157
+ }
158
+ return Reflect.get(held, property, receiver);
159
+ },
160
+ has(held, property) {
161
+ return ((typeof property === 'string' && lookup(root, property) !== undefined) ||
162
+ Reflect.has(held, property));
163
+ },
164
+ ownKeys() {
165
+ keys ??= [...leavesOf(root.node)].map((leaf) => leaf.key);
166
+ return keys;
167
+ },
168
+ getOwnPropertyDescriptor(_held, property) {
169
+ if (typeof property !== 'string')
170
+ return undefined;
171
+ const leaf = lookup(root, property);
172
+ if (leaf === undefined)
173
+ return undefined;
174
+ return { value: leaf.value, writable: false, enumerable: true, configurable: true };
175
+ },
176
+ set: () => false,
177
+ defineProperty: () => false,
178
+ deleteProperty: () => false,
179
+ });
180
+ roots.set(map, root);
181
+ return map;
182
+ }
183
+ export function* entriesIn(map) {
184
+ const root = roots.get(map);
185
+ if (root === undefined) {
186
+ for (const key of Object.keys(map))
187
+ yield [key, map[key]];
188
+ return;
189
+ }
190
+ for (const leaf of leavesOf(root.node))
191
+ yield [leaf.key, leaf.value];
192
+ }
193
+ function* rooted(map) {
194
+ const held = roots.get(map);
195
+ if (held !== undefined)
196
+ return held;
197
+ let node;
198
+ let size = 0;
199
+ for (const [key, value] of entriesIn(map)) {
200
+ node = put(node, { key, hash: hashOf(key), value }, 0);
201
+ size += 1;
202
+ yield ROW_WEIGHT;
203
+ }
204
+ return { node, size };
205
+ }
206
+ export function* keysIn(...maps) {
207
+ const keys = new Set();
208
+ for (const map of maps) {
209
+ for (const [key] of entriesIn(map)) {
210
+ keys.add(key);
211
+ yield ROW_WEIGHT;
212
+ }
213
+ }
214
+ return keys;
215
+ }
216
+ const RUN = 1 << 10;
217
+ function* merged(left, right) {
218
+ const into = [];
219
+ let at = 0;
220
+ let from = 0;
221
+ while (at < left.length || from < right.length) {
222
+ into.push(from === right.length || (at < left.length && left[at] < right[from])
223
+ ? left[at++]
224
+ : right[from++]);
225
+ yield ROW_WEIGHT;
226
+ }
227
+ return into;
228
+ }
229
+ function* pathsOf(map) {
230
+ for (const [key] of entriesIn(map))
231
+ yield key;
232
+ }
233
+ export function* sortedKeys(map) {
234
+ return yield* sorting(pathsOf(map));
235
+ }
236
+ export function* sorting(keys) {
237
+ let runs = [];
238
+ let run = [];
239
+ for (const key of keys) {
240
+ run.push(key);
241
+ yield ROW_WEIGHT;
242
+ if (run.length === RUN) {
243
+ runs.push(run.sort());
244
+ run = [];
245
+ }
246
+ }
247
+ if (run.length > 0)
248
+ runs.push(run.sort());
249
+ while (runs.length > 1) {
250
+ const next = [];
251
+ for (let at = 0; at < runs.length; at += 2) {
252
+ next.push(at + 1 === runs.length ? runs[at] : yield* merged(runs[at], runs[at + 1]));
253
+ }
254
+ runs = next;
255
+ }
256
+ return runs[0] ?? [];
257
+ }
258
+ export function* sharing(map) {
259
+ return roots.has(map) ? map : facade(yield* rooted(map));
260
+ }
261
+ export function shared(map) {
262
+ return finished(sharing(map));
263
+ }
264
+ export function patched(base, set, removed = []) {
265
+ return finished(patching(base, set, removed));
266
+ }
267
+ export function* patching(base, set, removed = []) {
268
+ const root = yield* rooted(base);
269
+ const weighed = [...(tallies.get(base) ?? [])];
270
+ let node = root.node;
271
+ let size = root.size;
272
+ const shift = (key, before, after) => {
273
+ for (const entry of weighed) {
274
+ entry[1] +=
275
+ (after === undefined ? 0 : entry[0](key, after)) -
276
+ (before === undefined ? 0 : entry[0](key, before.value));
277
+ }
278
+ };
279
+ for (const key of removed) {
280
+ if (node === undefined)
281
+ break;
282
+ const before = lookup({ node, size }, key);
283
+ if (before === undefined)
284
+ continue;
285
+ node = taken(node, before.hash, key, 0);
286
+ size -= 1;
287
+ shift(key, before, undefined);
288
+ yield ROW_WEIGHT;
289
+ }
290
+ for (const [key, value] of set) {
291
+ const before = lookup({ node, size }, key);
292
+ node = put(node, { key, hash: hashOf(key), value }, 0);
293
+ if (before === undefined)
294
+ size += 1;
295
+ shift(key, before, value);
296
+ yield ROW_WEIGHT;
297
+ }
298
+ if (node === root.node && roots.has(base))
299
+ return base;
300
+ const map = facade({ node, size });
301
+ if (weighed.length > 0)
302
+ tallies.set(map, new Map(weighed));
303
+ return map;
304
+ }
305
+ export function* tallying(map, weigh) {
306
+ const known = tallies.get(map)?.get(weigh);
307
+ if (known !== undefined)
308
+ return known;
309
+ let total = 0;
310
+ for (const [key, value] of entriesIn(map)) {
311
+ total += weigh(key, value);
312
+ yield ROW_WEIGHT;
313
+ }
314
+ if (roots.has(map)) {
315
+ const kept = tallies.get(map) ?? new Map();
316
+ kept.set(weigh, total);
317
+ tallies.set(map, kept);
318
+ }
319
+ return total;
320
+ }
321
+ export function sizeOf(map) {
322
+ return roots.get(map)?.size ?? Object.keys(map).length;
323
+ }
324
+ function* compared(left, right, same, into) {
325
+ const pending = [[left, right]];
326
+ for (let pair = pending.pop(); pair !== undefined; pair = pending.pop()) {
327
+ const [one, other] = pair;
328
+ if (one === other)
329
+ continue;
330
+ if (one !== undefined &&
331
+ other !== undefined &&
332
+ !isLeaf(one) &&
333
+ !isCollision(one) &&
334
+ !isLeaf(other) &&
335
+ !isCollision(other)) {
336
+ const children = [];
337
+ for (let remaining = one.bitmap | other.bitmap; remaining !== 0; remaining &= remaining - 1) {
338
+ const bit = remaining & -remaining;
339
+ children.push([
340
+ (one.bitmap & bit) === 0 ? undefined : one.children[slot(one.bitmap, bit)],
341
+ (other.bitmap & bit) === 0 ? undefined : other.children[slot(other.bitmap, bit)],
342
+ ]);
343
+ }
344
+ pending.push(...children.reverse());
345
+ continue;
346
+ }
347
+ const before = new Map();
348
+ for (const leaf of leavesOf(one)) {
349
+ before.set(leaf.key, leaf.value);
350
+ yield ROW_WEIGHT;
351
+ }
352
+ for (const leaf of leavesOf(other)) {
353
+ const held = before.get(leaf.key);
354
+ before.delete(leaf.key);
355
+ if (held === undefined || !same(held, leaf.value))
356
+ into.add(leaf.key);
357
+ yield ROW_WEIGHT;
358
+ }
359
+ for (const key of before.keys())
360
+ into.add(key);
361
+ }
362
+ }
363
+ export function* differences(left, right, same = Object.is) {
364
+ const into = new Set();
365
+ if (left === right)
366
+ return into;
367
+ const leftRoot = roots.get(left);
368
+ const rightRoot = roots.get(right);
369
+ if (leftRoot !== undefined && rightRoot !== undefined) {
370
+ yield* compared(leftRoot.node, rightRoot.node, same, into);
371
+ return into;
372
+ }
373
+ for (const [key, value] of entriesIn(left)) {
374
+ if (!Object.hasOwn(right, key) || !same(value, right[key]))
375
+ into.add(key);
376
+ yield ROW_WEIGHT;
377
+ }
378
+ for (const [key] of entriesIn(right)) {
379
+ if (!Object.hasOwn(left, key))
380
+ into.add(key);
381
+ yield ROW_WEIGHT;
382
+ }
383
+ return into;
384
+ }
385
+ export function differing(left, right, same = Object.is) {
386
+ return finished(differences(left, right, same));
387
+ }
388
+ const drafts = new WeakMap();
389
+ const GONE = Symbol('gone');
390
+ export function drafted(base) {
391
+ const written = new Map();
392
+ const read = (key) => {
393
+ const held = written.get(key);
394
+ if (held === GONE)
395
+ return undefined;
396
+ return held ?? (Object.hasOwn(base, key) ? base[key] : undefined);
397
+ };
398
+ const draft = new Proxy({}, {
399
+ get(held, property, receiver) {
400
+ if (typeof property === 'string') {
401
+ const value = read(property);
402
+ if (value !== undefined)
403
+ return value;
404
+ }
405
+ return Reflect.get(held, property, receiver);
406
+ },
407
+ has(held, property) {
408
+ return ((typeof property === 'string' && read(property) !== undefined) ||
409
+ Reflect.has(held, property));
410
+ },
411
+ ownKeys() {
412
+ const keys = new Set(Object.keys(base));
413
+ for (const [key, value] of written) {
414
+ if (value === GONE)
415
+ keys.delete(key);
416
+ else
417
+ keys.add(key);
418
+ }
419
+ return [...keys];
420
+ },
421
+ getOwnPropertyDescriptor(_held, property) {
422
+ if (typeof property !== 'string')
423
+ return undefined;
424
+ const value = read(property);
425
+ if (value === undefined)
426
+ return undefined;
427
+ return { value, writable: true, enumerable: true, configurable: true };
428
+ },
429
+ set(_held, property, value) {
430
+ if (typeof property !== 'string')
431
+ return false;
432
+ written.set(property, value);
433
+ return true;
434
+ },
435
+ deleteProperty(_held, property) {
436
+ if (typeof property !== 'string')
437
+ return false;
438
+ written.set(property, GONE);
439
+ return true;
440
+ },
441
+ defineProperty: () => false,
442
+ });
443
+ drafts.set(draft, { base, written });
444
+ return draft;
445
+ }
446
+ export function settled(draft) {
447
+ return finished(settling(draft));
448
+ }
449
+ export function* settling(draft) {
450
+ const held = drafts.get(draft);
451
+ const set = [];
452
+ const removed = [];
453
+ for (const [key, value] of held.written) {
454
+ if (value === GONE)
455
+ removed.push(key);
456
+ else
457
+ set.push([key, value]);
458
+ yield ROW_WEIGHT;
459
+ }
460
+ return yield* patching(held.base, set, removed);
461
+ }
package/dist/status.d.ts CHANGED
@@ -1,9 +1,13 @@
1
1
  import type { Open } from './open.js';
2
+ import type { ProviderRefusal } from './adapter.js';
2
3
  import type { ReturnReason } from './room-draft.js';
3
4
  export type AttentionEntry = {
4
5
  room: string;
5
6
  path: string;
6
7
  returned: ReturnReason;
8
+ } | {
9
+ room: string;
10
+ refusal: ProviderRefusal;
7
11
  };
8
12
  export type SyncStatus = {
9
13
  state: Open<'pending' | 'syncing' | 'synced'>;
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,YAAY,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,IAAI,CAAC,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC,CAAC;IAC9C,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,iBAAiB,EAAE,SAAS,cAAc,EAAE,CAAC;IAC7C,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,UAMtB,CAAC;AAEF,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAE3D;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAErD;AAED,wBAAgB,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAQhE"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAA;CAAE,GACtD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,eAAe,CAAA;CAAE,CAAC;AAE/C,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,IAAI,CAAC,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC,CAAC;IAC9C,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,iBAAiB,EAAE,SAAS,cAAc,EAAE,CAAC;IAC7C,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,UAMtB,CAAC;AAEF,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAE3D;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAErD;AAED,wBAAgB,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAQhE"}
package/dist/store.d.ts CHANGED
@@ -1,13 +1,13 @@
1
1
  import type { ModelState } from './model.js';
2
2
  import type { Capability, HeadChange, Member, OperationScopes, ProviderLimit, ReplicaAdmission, TypedSelection } from './adapter.js';
3
- import type { AcceptedMessage } from './adapter.js';
3
+ import type { AcceptedMessage, KeptReceipt } from './adapter.js';
4
4
  import type { ChangeBatch } from './change.js';
5
5
  import { type HeldBinary } from './overlay.js';
6
- import type { ChatDraftFile } from './file.js';
6
+ import { type Later } from './turn.js';
7
7
  import type { Submission } from './outcome.js';
8
8
  import type { RoomDraftRecord, SavedDraft } from './room-draft.js';
9
- export declare const STORE_SCHEMA = 23;
10
- export declare const AUTHORED_SCHEMA = 1;
9
+ import type { RuntimeDatabase, StoredFile } from './tables.js';
10
+ export declare const STORE_SCHEMA = 25;
11
11
  export type ReplicaRecord = {
12
12
  locator: string;
13
13
  name: string;
@@ -23,10 +23,11 @@ export type ReplicaRecord = {
23
23
  documents: Readonly<Record<string, string>>;
24
24
  binaries: Readonly<Record<string, HeldBinary>>;
25
25
  revisions: Readonly<Record<string, string>>;
26
+ fileIds: Readonly<Record<string, string>>;
26
27
  changes: Readonly<Record<string, HeadChange>>;
27
28
  written: Readonly<Record<string, string>>;
28
29
  };
29
- export type StagedLayer = Pick<ReplicaRecord, 'documents' | 'binaries' | 'revisions' | 'changes' | 'written'>;
30
+ export type StagedLayer = Pick<ReplicaRecord, 'documents' | 'binaries' | 'revisions' | 'fileIds' | 'changes' | 'written'>;
30
31
  export type TransferRecord = {
31
32
  locator: string;
32
33
  transfer: string;
@@ -46,6 +47,9 @@ export type PendingState = {
46
47
  readonly upload?: unknown;
47
48
  readonly accepted?: string;
48
49
  };
50
+ export type TargetRecord = {
51
+ established: boolean;
52
+ };
49
53
  export type QueueRecord = {
50
54
  locator: string;
51
55
  pending: readonly {
@@ -60,20 +64,36 @@ export type PresentationRecord = {
60
64
  export type HeldConversation = {
61
65
  conversation: string;
62
66
  read: string | null | undefined;
63
- messages: readonly AcceptedMessage[];
67
+ partial: boolean;
68
+ };
69
+ export type MessageWindow = {
70
+ messages: AcceptedMessage[];
71
+ more: boolean;
64
72
  };
65
73
  export type ConversationWrite = {
66
74
  conversation: string;
67
75
  messages: readonly AcceptedMessage[];
68
- read?: string | null;
69
- sealed?: boolean;
76
+ read?: {
77
+ at: string | null;
78
+ partial: boolean;
79
+ };
80
+ };
81
+ export type ChatSubmission = {
82
+ readonly operation: string;
83
+ readonly text: string;
84
+ readonly turn: string | null;
70
85
  };
71
86
  export type ChatDraftRecord = {
72
87
  conversation: string;
73
88
  text: string;
74
- files: readonly ChatDraftFile[];
75
- turn: string | null;
76
89
  revision: string;
90
+ submitted?: readonly ChatSubmission[];
91
+ moves?: readonly string[];
92
+ };
93
+ export type CallRecord = {
94
+ readonly operation: string;
95
+ readonly name: string;
96
+ readonly input: unknown;
77
97
  };
78
98
  export type RecordWrite = {
79
99
  next: ReplicaRecord;
@@ -82,14 +102,16 @@ export type RecordWrite = {
82
102
  };
83
103
  export type AuthoredWrite = {
84
104
  locator: string;
85
- queue: readonly ChangeBatch[];
105
+ queue?: readonly ChangeBatch[];
106
+ founded?: readonly ChangeBatch[];
86
107
  saved?: ReadonlyMap<string, readonly SavedDraft[]>;
87
108
  roomDrafts?: readonly RoomDraftRecord[];
88
109
  consumedRoomDrafts?: readonly string[];
89
110
  };
90
111
  export type RuntimeStore = {
91
112
  all(): Promise<readonly ReplicaRecord[]>;
92
- keepAuthored(input: AuthoredWrite): Promise<void>;
113
+ keepAuthored(...writes: readonly AuthoredWrite[]): Promise<void>;
114
+ saveAuthored(files: readonly StoredFile[], ...writes: readonly AuthoredWrite[]): Promise<string | null>;
93
115
  write(input: RecordWrite): Promise<void>;
94
116
  revokeModels(records: readonly ReplicaRecord[]): Promise<void>;
95
117
  lastCompleted(): Promise<string | null>;
@@ -99,6 +121,8 @@ export type RuntimeStore = {
99
121
  declare(limits: readonly ProviderLimit[], capabilities: readonly Capability[]): Promise<void>;
100
122
  member(): Promise<Member | null>;
101
123
  keepMember(member: Member | null): Promise<void>;
124
+ targets(): Promise<Readonly<Record<string, TargetRecord>>>;
125
+ keepTargets(targets: Readonly<Record<string, TargetRecord>>): Promise<void>;
102
126
  queues(): Promise<readonly QueueRecord[]>;
103
127
  submit(locator: string, id: string, submission: Submission, lost: boolean): Promise<void>;
104
128
  accept(locator: string, id: string, roomVersion: string): Promise<void>;
@@ -108,21 +132,41 @@ export type RuntimeStore = {
108
132
  present(record: PresentationRecord): Promise<void>;
109
133
  conversations(): Promise<readonly HeldConversation[]>;
110
134
  keepMessages(write: ConversationWrite): Promise<void>;
135
+ messageWindow(conversation: string, limit: number, before: readonly [string, string] | null): Promise<MessageWindow>;
136
+ messageCount(conversation: string): Promise<number>;
137
+ messagesAfter(conversation: string, identity: string | null): Promise<AcceptedMessage[]>;
138
+ messageIdentities(conversation: string): Promise<readonly string[]>;
139
+ turnArrived(conversation: string, turn: string): Promise<boolean>;
111
140
  dropConversations(conversations: readonly string[]): Promise<void>;
112
141
  chatDrafts(): Promise<readonly ChatDraftRecord[]>;
113
- keepChatDraft(record: ChatDraftRecord): Promise<void>;
142
+ keepChatDrafts(records: readonly ChatDraftRecord[]): Promise<void>;
114
143
  dropChatDraft(conversation: string): Promise<void>;
115
- keepRoomDraft(record: RoomDraftRecord): Promise<void>;
144
+ calls(): Promise<readonly CallRecord[]>;
145
+ keepCall(record: CallRecord): Promise<void>;
146
+ dropCall(operation: string): Promise<void>;
147
+ keepRoomDraft(record: RoomDraftRecord, files: readonly StoredFile[]): Promise<void>;
116
148
  discardRoomDraft(locator: string, path: string): Promise<void>;
117
- dropRooms(locators: readonly string[]): Promise<void>;
149
+ fences(): Promise<readonly string[]>;
150
+ erase(locators: readonly string[]): Promise<void>;
151
+ discard(locator: string): Promise<void>;
118
152
  transfers(): Promise<readonly TransferRecord[]>;
119
153
  staged(record: TransferRecord): Promise<StagedLayer>;
120
154
  stage(record: TransferRecord, page: StagedLayer): Promise<void>;
121
155
  abandon(locator: string): Promise<void>;
156
+ receivedHeads(): Promise<readonly KeptReceipt[]>;
157
+ receivedParts(key: string, count: number): Promise<readonly unknown[]>;
158
+ keepReceived(key: string, head: unknown, part?: {
159
+ index: number;
160
+ value: unknown;
161
+ }): Promise<void>;
162
+ dropReceived(keys: readonly string[]): Promise<void>;
122
163
  generation(): Promise<string | null>;
123
164
  rememberGeneration(value: string): Promise<void>;
165
+ file(key: string, type: string): Promise<Blob>;
124
166
  close(): void;
125
167
  };
126
- export declare function removeRuntimeStore(): Promise<void>;
127
- export declare function openRuntimeStore(): Promise<RuntimeStore>;
168
+ export declare function transacted<T>(database: IDBDatabase, stores: string | readonly string[], mode: IDBTransactionMode, work: (transaction: IDBTransaction) => Later<T>): Promise<T>;
169
+ export declare function endRuntimeStore(database: RuntimeDatabase, holder: string | undefined): Promise<boolean>;
170
+ export declare function openDatabase(name: string, version: number, upgrade: (opening: IDBOpenDBRequest, oldVersion: number) => void): Promise<IDBDatabase>;
171
+ export declare function openRuntimeStore(fenced: (locator: string) => boolean, authored: RuntimeDatabase): Promise<RuntimeStore>;
128
172
  //# sourceMappingURL=store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}