@agentshouse/mdruntime 0.1.0-ca68e8b4bbebc → 0.1.0-ca6edc1abd618
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.
- package/README.md +18 -15
- package/dist/adapter.d.ts +70 -36
- package/dist/adapter.d.ts.map +1 -1
- package/dist/attached-model.d.ts +5 -1
- package/dist/attached-model.d.ts.map +1 -1
- package/dist/attached-model.js +21 -4
- package/dist/binary.d.ts +0 -5
- package/dist/binary.d.ts.map +1 -1
- package/dist/binary.js +1 -1
- package/dist/bootstrap.d.ts +25 -8
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +150 -85
- package/dist/chain.d.ts +11 -0
- package/dist/chain.d.ts.map +1 -0
- package/dist/chain.js +64 -0
- package/dist/change-set.d.ts +9 -16
- package/dist/change-set.d.ts.map +1 -1
- package/dist/change-set.js +11 -89
- package/dist/change.d.ts +31 -1
- package/dist/change.d.ts.map +1 -1
- package/dist/change.js +10 -1
- package/dist/client.d.ts +13 -5
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +37 -6
- package/dist/collection.d.ts +6 -19
- package/dist/collection.d.ts.map +1 -1
- package/dist/collection.js +31 -289
- package/dist/compile.d.ts +16 -0
- package/dist/compile.d.ts.map +1 -0
- package/dist/compile.js +721 -0
- package/dist/connection.d.ts +22 -12
- package/dist/connection.d.ts.map +1 -1
- package/dist/connection.js +2485 -1036
- package/dist/conversation.d.ts +16 -3
- package/dist/conversation.d.ts.map +1 -1
- package/dist/conversation.js +238 -96
- package/dist/digest.d.ts +7 -0
- package/dist/digest.d.ts.map +1 -0
- package/dist/digest.js +113 -0
- package/dist/durability.d.ts +3 -5
- package/dist/durability.d.ts.map +1 -1
- package/dist/durability.js +5 -0
- package/dist/entry.d.ts +3 -1
- package/dist/entry.d.ts.map +1 -1
- package/dist/entry.js +18 -23
- package/dist/file.d.ts +2 -10
- package/dist/file.d.ts.map +1 -1
- package/dist/file.js +3 -120
- package/dist/fulltext.d.ts +27 -0
- package/dist/fulltext.d.ts.map +1 -0
- package/dist/fulltext.js +368 -0
- package/dist/host.d.ts +4 -7
- package/dist/host.d.ts.map +1 -1
- package/dist/host.js +51 -18
- package/dist/identity.d.ts +0 -1
- package/dist/identity.d.ts.map +1 -1
- package/dist/identity.js +0 -3
- package/dist/index.d.ts +13 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/live.d.ts +22 -0
- package/dist/live.d.ts.map +1 -0
- package/dist/live.js +123 -0
- package/dist/memory.d.ts +4 -3
- package/dist/memory.d.ts.map +1 -1
- package/dist/memory.js +32 -26
- package/dist/messages.d.ts +28 -0
- package/dist/messages.d.ts.map +1 -0
- package/dist/messages.js +90 -0
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js +1 -1
- package/dist/name.d.ts +4 -0
- package/dist/name.d.ts.map +1 -0
- package/dist/name.js +122 -0
- package/dist/observation.d.ts +14 -0
- package/dist/observation.d.ts.map +1 -1
- package/dist/observation.js +93 -3
- package/dist/opened.d.ts +22 -0
- package/dist/opened.d.ts.map +1 -0
- package/dist/opened.js +107 -0
- package/dist/outcome.d.ts +34 -4
- package/dist/outcome.d.ts.map +1 -1
- package/dist/outcome.js +25 -0
- package/dist/overlay.d.ts +2 -5
- package/dist/overlay.d.ts.map +1 -1
- package/dist/overlay.js +87 -172
- package/dist/query.d.ts +26 -2
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +41 -6
- package/dist/reach.d.ts +5 -3
- package/dist/reach.d.ts.map +1 -1
- package/dist/reach.js +167 -59
- package/dist/react.d.ts +1 -2
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +2 -14
- package/dist/readiness.d.ts +20 -9
- package/dist/readiness.d.ts.map +1 -1
- package/dist/readiness.js +6 -6
- package/dist/reads.d.ts.map +1 -1
- package/dist/reads.js +4 -2
- package/dist/recovery.d.ts +2 -2
- package/dist/recovery.d.ts.map +1 -1
- package/dist/recovery.js +8 -7
- package/dist/refresh.d.ts +15 -14
- package/dist/refresh.d.ts.map +1 -1
- package/dist/refresh.js +113 -56
- package/dist/replica.d.ts +56 -33
- package/dist/replica.d.ts.map +1 -1
- package/dist/replica.js +297 -188
- package/dist/room-draft.d.ts +4 -1
- package/dist/room-draft.d.ts.map +1 -1
- package/dist/room-draft.js +62 -22
- package/dist/rows.d.ts +29 -30
- package/dist/rows.d.ts.map +1 -1
- package/dist/rows.js +113 -64
- package/dist/save.d.ts +51 -14
- package/dist/save.d.ts.map +1 -1
- package/dist/save.js +518 -180
- package/dist/search.d.ts +23 -42
- package/dist/search.d.ts.map +1 -1
- package/dist/search.js +28 -182
- package/dist/seed.d.ts.map +1 -1
- package/dist/seed.js +18 -4
- package/dist/shared.d.ts +8 -3
- package/dist/shared.d.ts.map +1 -1
- package/dist/shared.js +129 -66
- package/dist/store.d.ts +89 -89
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +329 -669
- package/dist/stored.d.ts +145 -0
- package/dist/stored.d.ts.map +1 -0
- package/dist/stored.js +567 -0
- package/dist/tables.d.ts +354 -0
- package/dist/tables.d.ts.map +1 -0
- package/dist/tables.js +624 -0
- package/dist/turn.d.ts +5 -3
- package/dist/turn.d.ts.map +1 -1
- package/dist/turn.js +51 -21
- package/dist/validation.d.ts +30 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +162 -0
- package/dist/windows.d.ts +22 -0
- package/dist/windows.d.ts.map +1 -0
- package/dist/windows.js +89 -0
- package/dist/wire.d.ts +29 -1
- package/dist/wire.d.ts.map +1 -1
- package/dist/wire.js +8 -1
- package/dist/words.d.ts +19 -0
- package/dist/words.d.ts.map +1 -0
- package/dist/words.js +150 -0
- package/package.json +18 -19
- package/AGENTS.md +0 -299
- package/dist/acquisition.d.ts +0 -14
- package/dist/acquisition.d.ts.map +0 -1
- package/dist/acquisition.js +0 -24
- package/dist/chat/acts.d.ts +0 -33
- package/dist/chat/acts.d.ts.map +0 -1
- package/dist/chat/acts.js +0 -36
- package/dist/chat/context.d.ts +0 -3
- package/dist/chat/context.d.ts.map +0 -1
- package/dist/chat/context.js +0 -10
- package/dist/chat/input.d.ts +0 -9
- package/dist/chat/input.d.ts.map +0 -1
- package/dist/chat/input.js +0 -99
- package/dist/chat/kit.d.ts +0 -61
- package/dist/chat/kit.d.ts.map +0 -1
- package/dist/chat/kit.js +0 -123
- package/dist/chat/lasting.d.ts +0 -6
- package/dist/chat/lasting.d.ts.map +0 -1
- package/dist/chat/lasting.js +0 -19
- package/dist/chat/list.d.ts +0 -27
- package/dist/chat/list.d.ts.map +0 -1
- package/dist/chat/list.js +0 -63
- package/dist/chat/markdown.d.ts +0 -20
- package/dist/chat/markdown.d.ts.map +0 -1
- package/dist/chat/markdown.js +0 -188
- package/dist/chat/message.d.ts +0 -6
- package/dist/chat/message.d.ts.map +0 -1
- package/dist/chat/message.js +0 -192
- package/dist/chat/messages.d.ts +0 -22
- package/dist/chat/messages.d.ts.map +0 -1
- package/dist/chat/messages.js +0 -155
- package/dist/chat/name.d.ts +0 -6
- package/dist/chat/name.d.ts.map +0 -1
- package/dist/chat/name.js +0 -37
- package/dist/chat/opened.d.ts +0 -11
- package/dist/chat/opened.d.ts.map +0 -1
- package/dist/chat/opened.js +0 -17
- package/dist/chat/overlay.d.ts +0 -31
- package/dist/chat/overlay.d.ts.map +0 -1
- package/dist/chat/overlay.js +0 -97
- package/dist/chat/parts.d.ts +0 -57
- package/dist/chat/parts.d.ts.map +0 -1
- package/dist/chat/parts.js +0 -119
- package/dist/chat/process.d.ts +0 -20
- package/dist/chat/process.d.ts.map +0 -1
- package/dist/chat/process.js +0 -32
- package/dist/chat/provider.d.ts +0 -63
- package/dist/chat/provider.d.ts.map +0 -1
- package/dist/chat/provider.js +0 -629
- package/dist/chat/question.d.ts +0 -9
- package/dist/chat/question.d.ts.map +0 -1
- package/dist/chat/question.js +0 -80
- package/dist/chat/questions.d.ts +0 -31
- package/dist/chat/questions.d.ts.map +0 -1
- package/dist/chat/questions.js +0 -111
- package/dist/chat/read.d.ts +0 -5
- package/dist/chat/read.d.ts.map +0 -1
- package/dist/chat/read.js +0 -13
- package/dist/chat/ready.d.ts +0 -34
- package/dist/chat/ready.d.ts.map +0 -1
- package/dist/chat/ready.js +0 -91
- package/dist/chat/style.d.ts +0 -4
- package/dist/chat/style.d.ts.map +0 -1
- package/dist/chat/style.js +0 -302
- package/dist/chat.d.ts +0 -14
- package/dist/chat.d.ts.map +0 -1
- package/dist/chat.js +0 -8
- package/dist/read-side.d.ts +0 -25
- package/dist/read-side.d.ts.map +0 -1
- package/dist/read-side.js +0 -642
package/dist/shared.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { finished, ROW_WEIGHT } from './turn.js';
|
|
1
2
|
const BITS = 5;
|
|
2
3
|
const MASK = (1 << BITS) - 1;
|
|
3
4
|
const roots = new WeakMap();
|
|
4
|
-
const tallies = new WeakMap();
|
|
5
5
|
function hashOf(key) {
|
|
6
6
|
let hash = 0x811c9dc5;
|
|
7
7
|
for (let index = 0; index < key.length; index += 1) {
|
|
@@ -179,33 +179,94 @@ function facade(root) {
|
|
|
179
179
|
roots.set(map, root);
|
|
180
180
|
return map;
|
|
181
181
|
}
|
|
182
|
-
function
|
|
182
|
+
export function* entriesIn(map) {
|
|
183
|
+
const root = roots.get(map);
|
|
184
|
+
if (root === undefined) {
|
|
185
|
+
for (const key of Object.keys(map))
|
|
186
|
+
yield [key, map[key]];
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
for (const leaf of leavesOf(root.node))
|
|
190
|
+
yield [leaf.key, leaf.value];
|
|
191
|
+
}
|
|
192
|
+
function* rooted(map) {
|
|
183
193
|
const held = roots.get(map);
|
|
184
194
|
if (held !== undefined)
|
|
185
195
|
return held;
|
|
186
196
|
let node;
|
|
187
197
|
let size = 0;
|
|
188
|
-
for (const [key, value] of
|
|
198
|
+
for (const [key, value] of entriesIn(map)) {
|
|
189
199
|
node = put(node, { key, hash: hashOf(key), value }, 0);
|
|
190
200
|
size += 1;
|
|
201
|
+
yield ROW_WEIGHT;
|
|
191
202
|
}
|
|
192
203
|
return { node, size };
|
|
193
204
|
}
|
|
205
|
+
export function* keysIn(...maps) {
|
|
206
|
+
const keys = new Set();
|
|
207
|
+
for (const map of maps) {
|
|
208
|
+
for (const [key] of entriesIn(map)) {
|
|
209
|
+
keys.add(key);
|
|
210
|
+
yield ROW_WEIGHT;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
return keys;
|
|
214
|
+
}
|
|
215
|
+
const RUN = 1 << 10;
|
|
216
|
+
function* merged(left, right) {
|
|
217
|
+
const into = [];
|
|
218
|
+
let at = 0;
|
|
219
|
+
let from = 0;
|
|
220
|
+
while (at < left.length || from < right.length) {
|
|
221
|
+
into.push(from === right.length || (at < left.length && left[at] < right[from])
|
|
222
|
+
? left[at++]
|
|
223
|
+
: right[from++]);
|
|
224
|
+
yield ROW_WEIGHT;
|
|
225
|
+
}
|
|
226
|
+
return into;
|
|
227
|
+
}
|
|
228
|
+
function* pathsOf(map) {
|
|
229
|
+
for (const [key] of entriesIn(map))
|
|
230
|
+
yield key;
|
|
231
|
+
}
|
|
232
|
+
export function* sortedKeys(map) {
|
|
233
|
+
return yield* sorting(pathsOf(map));
|
|
234
|
+
}
|
|
235
|
+
export function* sorting(keys) {
|
|
236
|
+
let runs = [];
|
|
237
|
+
let run = [];
|
|
238
|
+
for (const key of keys) {
|
|
239
|
+
run.push(key);
|
|
240
|
+
yield ROW_WEIGHT;
|
|
241
|
+
if (run.length === RUN) {
|
|
242
|
+
runs.push(run.sort());
|
|
243
|
+
run = [];
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
if (run.length > 0)
|
|
247
|
+
runs.push(run.sort());
|
|
248
|
+
while (runs.length > 1) {
|
|
249
|
+
const next = [];
|
|
250
|
+
for (let at = 0; at < runs.length; at += 2) {
|
|
251
|
+
next.push(at + 1 === runs.length ? runs[at] : yield* merged(runs[at], runs[at + 1]));
|
|
252
|
+
}
|
|
253
|
+
runs = next;
|
|
254
|
+
}
|
|
255
|
+
return runs[0] ?? [];
|
|
256
|
+
}
|
|
257
|
+
export function* sharing(map) {
|
|
258
|
+
return roots.has(map) ? map : facade(yield* rooted(map));
|
|
259
|
+
}
|
|
194
260
|
export function shared(map) {
|
|
195
|
-
return
|
|
261
|
+
return finished(sharing(map));
|
|
196
262
|
}
|
|
197
263
|
export function patched(base, set, removed = []) {
|
|
198
|
-
|
|
199
|
-
|
|
264
|
+
return finished(patching(base, set, removed));
|
|
265
|
+
}
|
|
266
|
+
export function* patching(base, set, removed = []) {
|
|
267
|
+
const root = yield* rooted(base);
|
|
200
268
|
let node = root.node;
|
|
201
269
|
let size = root.size;
|
|
202
|
-
const shift = (key, before, after) => {
|
|
203
|
-
for (const entry of weighed) {
|
|
204
|
-
entry[1] +=
|
|
205
|
-
(after === undefined ? 0 : entry[0](key, after)) -
|
|
206
|
-
(before === undefined ? 0 : entry[0](key, before.value));
|
|
207
|
-
}
|
|
208
|
-
};
|
|
209
270
|
for (const key of removed) {
|
|
210
271
|
if (node === undefined)
|
|
211
272
|
break;
|
|
@@ -214,88 +275,86 @@ export function patched(base, set, removed = []) {
|
|
|
214
275
|
continue;
|
|
215
276
|
node = taken(node, before.hash, key, 0);
|
|
216
277
|
size -= 1;
|
|
217
|
-
|
|
278
|
+
yield ROW_WEIGHT;
|
|
218
279
|
}
|
|
219
280
|
for (const [key, value] of set) {
|
|
220
281
|
const before = lookup({ node, size }, key);
|
|
221
282
|
node = put(node, { key, hash: hashOf(key), value }, 0);
|
|
222
283
|
if (before === undefined)
|
|
223
284
|
size += 1;
|
|
224
|
-
|
|
285
|
+
yield ROW_WEIGHT;
|
|
225
286
|
}
|
|
226
287
|
if (node === root.node && roots.has(base))
|
|
227
288
|
return base;
|
|
228
|
-
|
|
229
|
-
if (weighed.length > 0)
|
|
230
|
-
tallies.set(map, new Map(weighed));
|
|
231
|
-
return map;
|
|
232
|
-
}
|
|
233
|
-
export function tally(map, weigh) {
|
|
234
|
-
const held = tallies.get(map);
|
|
235
|
-
const known = held?.get(weigh);
|
|
236
|
-
if (known !== undefined)
|
|
237
|
-
return known;
|
|
238
|
-
let total = 0;
|
|
239
|
-
for (const [key, value] of Object.entries(map))
|
|
240
|
-
total += weigh(key, value);
|
|
241
|
-
if (roots.has(map)) {
|
|
242
|
-
const kept = held ?? new Map();
|
|
243
|
-
kept.set(weigh, total);
|
|
244
|
-
tallies.set(map, kept);
|
|
245
|
-
}
|
|
246
|
-
return total;
|
|
289
|
+
return facade({ node, size });
|
|
247
290
|
}
|
|
248
291
|
export function sizeOf(map) {
|
|
249
292
|
return roots.get(map)?.size ?? Object.keys(map).length;
|
|
250
293
|
}
|
|
251
|
-
function
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
294
|
+
function* compared(left, right, same, into) {
|
|
295
|
+
const pending = [[left, right]];
|
|
296
|
+
for (let pair = pending.pop(); pair !== undefined; pair = pending.pop()) {
|
|
297
|
+
const [one, other] = pair;
|
|
298
|
+
if (one === other)
|
|
299
|
+
continue;
|
|
300
|
+
if (one !== undefined &&
|
|
301
|
+
other !== undefined &&
|
|
302
|
+
!isLeaf(one) &&
|
|
303
|
+
!isCollision(one) &&
|
|
304
|
+
!isLeaf(other) &&
|
|
305
|
+
!isCollision(other)) {
|
|
306
|
+
const children = [];
|
|
307
|
+
for (let remaining = one.bitmap | other.bitmap; remaining !== 0; remaining &= remaining - 1) {
|
|
308
|
+
const bit = remaining & -remaining;
|
|
309
|
+
children.push([
|
|
310
|
+
(one.bitmap & bit) === 0 ? undefined : one.children[slot(one.bitmap, bit)],
|
|
311
|
+
(other.bitmap & bit) === 0 ? undefined : other.children[slot(other.bitmap, bit)],
|
|
312
|
+
]);
|
|
313
|
+
}
|
|
314
|
+
pending.push(...children.reverse());
|
|
315
|
+
continue;
|
|
267
316
|
}
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
317
|
+
const before = new Map();
|
|
318
|
+
for (const leaf of leavesOf(one)) {
|
|
319
|
+
before.set(leaf.key, leaf.value);
|
|
320
|
+
yield ROW_WEIGHT;
|
|
321
|
+
}
|
|
322
|
+
for (const leaf of leavesOf(other)) {
|
|
323
|
+
const held = before.get(leaf.key);
|
|
324
|
+
before.delete(leaf.key);
|
|
325
|
+
if (held === undefined || !same(held, leaf.value))
|
|
326
|
+
into.add(leaf.key);
|
|
327
|
+
yield ROW_WEIGHT;
|
|
328
|
+
}
|
|
329
|
+
for (const key of before.keys())
|
|
330
|
+
into.add(key);
|
|
276
331
|
}
|
|
277
|
-
for (const key of before.keys())
|
|
278
|
-
into.add(key);
|
|
279
332
|
}
|
|
280
|
-
export function
|
|
333
|
+
export function* differences(left, right, same = Object.is) {
|
|
281
334
|
const into = new Set();
|
|
282
335
|
if (left === right)
|
|
283
336
|
return into;
|
|
284
337
|
const leftRoot = roots.get(left);
|
|
285
338
|
const rightRoot = roots.get(right);
|
|
286
339
|
if (leftRoot !== undefined && rightRoot !== undefined) {
|
|
287
|
-
compared(leftRoot.node, rightRoot.node,
|
|
340
|
+
yield* compared(leftRoot.node, rightRoot.node, same, into);
|
|
288
341
|
return into;
|
|
289
342
|
}
|
|
290
|
-
for (const key of
|
|
291
|
-
if (!Object.hasOwn(right, key) || !same(
|
|
343
|
+
for (const [key, value] of entriesIn(left)) {
|
|
344
|
+
if (!Object.hasOwn(right, key) || !same(value, right[key]))
|
|
292
345
|
into.add(key);
|
|
346
|
+
yield ROW_WEIGHT;
|
|
293
347
|
}
|
|
294
|
-
for (const key of
|
|
348
|
+
for (const [key] of entriesIn(right)) {
|
|
295
349
|
if (!Object.hasOwn(left, key))
|
|
296
350
|
into.add(key);
|
|
351
|
+
yield ROW_WEIGHT;
|
|
352
|
+
}
|
|
297
353
|
return into;
|
|
298
354
|
}
|
|
355
|
+
export function differing(left, right, same = Object.is) {
|
|
356
|
+
return finished(differences(left, right, same));
|
|
357
|
+
}
|
|
299
358
|
const drafts = new WeakMap();
|
|
300
359
|
const GONE = Symbol('gone');
|
|
301
360
|
export function drafted(base) {
|
|
@@ -355,6 +414,9 @@ export function drafted(base) {
|
|
|
355
414
|
return draft;
|
|
356
415
|
}
|
|
357
416
|
export function settled(draft) {
|
|
417
|
+
return finished(settling(draft));
|
|
418
|
+
}
|
|
419
|
+
export function* settling(draft) {
|
|
358
420
|
const held = drafts.get(draft);
|
|
359
421
|
const set = [];
|
|
360
422
|
const removed = [];
|
|
@@ -363,6 +425,7 @@ export function settled(draft) {
|
|
|
363
425
|
removed.push(key);
|
|
364
426
|
else
|
|
365
427
|
set.push([key, value]);
|
|
428
|
+
yield ROW_WEIGHT;
|
|
366
429
|
}
|
|
367
|
-
return
|
|
430
|
+
return yield* patching(held.base, set, removed);
|
|
368
431
|
}
|
package/dist/store.d.ts
CHANGED
|
@@ -1,44 +1,32 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { Capability, HeadChange, Member, OperationScopes, ProviderLimit, ReplicaAdmission, TypedSelection } from './adapter.js';
|
|
3
|
-
import type { AcceptedMessage, KeptReceipt } from './adapter.js';
|
|
1
|
+
import type { BootstrapInventory, Capability, KeptReceipt, Member, ProviderLimit } from './adapter.js';
|
|
4
2
|
import type { ChangeBatch } from './change.js';
|
|
5
|
-
import {
|
|
6
|
-
import type {
|
|
3
|
+
import type { Composition } from './collection.js';
|
|
4
|
+
import type { Plan } from './query.js';
|
|
5
|
+
import type { ReplicaRecord } from './replica.js';
|
|
7
6
|
import type { Submission } from './outcome.js';
|
|
8
7
|
import type { RoomDraftRecord, SavedDraft } from './room-draft.js';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
replica: ReplicaAdmission;
|
|
17
|
-
model: ModelState;
|
|
18
|
-
typedSelection: TypedSelection | null;
|
|
19
|
-
selectionModel: ModelState;
|
|
20
|
-
providerOwnedPaths: readonly string[];
|
|
21
|
-
roomVersion: string;
|
|
22
|
-
transfer: string;
|
|
23
|
-
documents: Readonly<Record<string, string>>;
|
|
24
|
-
binaries: Readonly<Record<string, HeldBinary>>;
|
|
25
|
-
revisions: Readonly<Record<string, string>>;
|
|
26
|
-
fileIds: Readonly<Record<string, string>>;
|
|
27
|
-
changes: Readonly<Record<string, HeadChange>>;
|
|
28
|
-
written: Readonly<Record<string, string>>;
|
|
8
|
+
import type { ModelState } from './model.js';
|
|
9
|
+
import type { SearchWindow } from './search.js';
|
|
10
|
+
import type { CommittedWrite, ConversationWrite, CountedRoom, HeldConversation, HeldEntry, MessageWindow, QueryAnswer, QueryRoom, Referrer, RoomCommit, RuntimeDatabase, SearchAsk, StoredEntry, StoredFile, TypedEntry, View, Walked } from './tables.js';
|
|
11
|
+
export type { ConversationWrite, HeldConversation, MessageWindow } from './tables.js';
|
|
12
|
+
export type TransferWriting = {
|
|
13
|
+
readonly token: string | null;
|
|
14
|
+
readonly written: number;
|
|
29
15
|
};
|
|
30
|
-
export type StagedLayer = Pick<ReplicaRecord, 'documents' | 'binaries' | 'revisions' | 'fileIds' | 'changes' | 'written'>;
|
|
31
16
|
export type TransferRecord = {
|
|
32
|
-
locator: string;
|
|
33
|
-
transfer: string;
|
|
34
|
-
selection: string;
|
|
35
|
-
from: string;
|
|
36
|
-
last: string;
|
|
37
|
-
pageToken: string | null;
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
17
|
+
readonly locator: string;
|
|
18
|
+
readonly transfer: string;
|
|
19
|
+
readonly selection: string;
|
|
20
|
+
readonly from: string;
|
|
21
|
+
readonly last: string;
|
|
22
|
+
readonly pageToken: string | null;
|
|
23
|
+
readonly writing: TransferWriting | null;
|
|
24
|
+
readonly inventory: BootstrapInventory | null;
|
|
25
|
+
readonly done: BootstrapInventory;
|
|
26
|
+
readonly models: {
|
|
27
|
+
readonly collection: ModelState;
|
|
41
28
|
};
|
|
29
|
+
readonly key: number | null;
|
|
42
30
|
};
|
|
43
31
|
export type PendingState = {
|
|
44
32
|
readonly drafts: readonly SavedDraft[];
|
|
@@ -61,29 +49,14 @@ export type PresentationRecord = {
|
|
|
61
49
|
app: string;
|
|
62
50
|
value: unknown;
|
|
63
51
|
};
|
|
64
|
-
export type HeldConversation = {
|
|
65
|
-
conversation: string;
|
|
66
|
-
read: string | null | undefined;
|
|
67
|
-
partial: boolean;
|
|
68
|
-
};
|
|
69
|
-
export type ConversationWrite = {
|
|
70
|
-
conversation: string;
|
|
71
|
-
messages: readonly AcceptedMessage[];
|
|
72
|
-
read?: {
|
|
73
|
-
at: string | null;
|
|
74
|
-
partial: boolean;
|
|
75
|
-
};
|
|
76
|
-
};
|
|
77
52
|
export type ChatSubmission = {
|
|
78
53
|
readonly operation: string;
|
|
79
54
|
readonly text: string;
|
|
80
|
-
readonly files: readonly ChatDraftFile[];
|
|
81
55
|
readonly turn: string | null;
|
|
82
56
|
};
|
|
83
57
|
export type ChatDraftRecord = {
|
|
84
58
|
conversation: string;
|
|
85
59
|
text: string;
|
|
86
|
-
files: readonly ChatDraftFile[];
|
|
87
60
|
revision: string;
|
|
88
61
|
submitted?: readonly ChatSubmission[];
|
|
89
62
|
moves?: readonly string[];
|
|
@@ -93,44 +66,83 @@ export type CallRecord = {
|
|
|
93
66
|
readonly name: string;
|
|
94
67
|
readonly input: unknown;
|
|
95
68
|
};
|
|
96
|
-
export type RecordWrite = {
|
|
97
|
-
next: ReplicaRecord;
|
|
98
|
-
previous: ReplicaRecord | null;
|
|
99
|
-
stored?: StagedLayer;
|
|
100
|
-
};
|
|
101
69
|
export type AuthoredWrite = {
|
|
102
70
|
locator: string;
|
|
103
|
-
queue
|
|
71
|
+
queue?: readonly ChangeBatch[];
|
|
72
|
+
founded?: readonly ChangeBatch[];
|
|
104
73
|
saved?: ReadonlyMap<string, readonly SavedDraft[]>;
|
|
105
74
|
roomDrafts?: readonly RoomDraftRecord[];
|
|
106
75
|
consumedRoomDrafts?: readonly string[];
|
|
76
|
+
accepted?: readonly {
|
|
77
|
+
readonly id: string;
|
|
78
|
+
readonly roomVersion: string;
|
|
79
|
+
}[];
|
|
80
|
+
};
|
|
81
|
+
export type StagedPage = {
|
|
82
|
+
readonly entries: readonly StoredEntry[];
|
|
83
|
+
readonly folders: readonly string[];
|
|
84
|
+
};
|
|
85
|
+
export type RefreshedPage = StagedPage & {
|
|
86
|
+
readonly removals: readonly string[];
|
|
87
|
+
readonly folderRemovals: readonly string[];
|
|
88
|
+
};
|
|
89
|
+
export type Opened = {
|
|
90
|
+
readonly rooms: ReadonlyMap<string, ReplicaRecord>;
|
|
91
|
+
readonly transfers: ReadonlyMap<string, TransferRecord>;
|
|
92
|
+
readonly unindexed: ReadonlySet<number>;
|
|
93
|
+
readonly overlaid: ReadonlyMap<number, ReadonlySet<string>>;
|
|
94
|
+
readonly erasing: boolean;
|
|
95
|
+
readonly orphans: readonly number[];
|
|
96
|
+
readonly lastCompleted: string | null;
|
|
97
|
+
readonly providerLimits: readonly ProviderLimit[];
|
|
98
|
+
readonly capabilities: readonly Capability[];
|
|
99
|
+
readonly member: Member | null;
|
|
100
|
+
readonly targets: Readonly<Record<string, TargetRecord>>;
|
|
101
|
+
readonly presentation: readonly PresentationRecord[];
|
|
102
|
+
};
|
|
103
|
+
export type Commit = {
|
|
104
|
+
readonly rooms: readonly RoomCommit[];
|
|
105
|
+
readonly writes?: readonly AuthoredWrite[];
|
|
106
|
+
readonly files?: readonly StoredFile[];
|
|
107
|
+
readonly whole?: boolean;
|
|
108
|
+
readonly discards?: readonly string[];
|
|
107
109
|
};
|
|
108
110
|
export type RuntimeStore = {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
111
|
+
opened(): Promise<Opened>;
|
|
112
|
+
counts(rooms: readonly CountedRoom[]): Promise<readonly number[]>;
|
|
113
|
+
query(plan: Plan, rooms: readonly QueryRoom[], budget: number | null): Promise<QueryAnswer>;
|
|
114
|
+
changes(keys: readonly number[]): number;
|
|
115
|
+
entries(key: number, view: View, paths: readonly string[]): Promise<readonly HeldEntry[]>;
|
|
116
|
+
typed(key: number, view: View, paths: readonly string[]): Promise<readonly TypedEntry[]>;
|
|
117
|
+
referrers(key: number, view: View, targets: readonly string[], kinds: readonly string[]): Promise<readonly Referrer[]>;
|
|
118
|
+
walk(key: number, view: View, after: string | null, bytes: number): Promise<Walked>;
|
|
119
|
+
files(key: number, view: View, after: string | null, limit: number): Promise<readonly {
|
|
120
|
+
readonly path: string;
|
|
121
|
+
readonly revision: string;
|
|
122
|
+
}[]>;
|
|
123
|
+
typedWithin(key: number, view: View, roots: readonly string[], within: boolean): Promise<boolean>;
|
|
124
|
+
search(ask: SearchAsk): Promise<SearchWindow>;
|
|
125
|
+
stage(record: TransferRecord, composition: Composition, page: StagedPage, written?: string): Promise<number | null>;
|
|
126
|
+
transferPart(locator: string, token: string): Promise<Uint8Array | null>;
|
|
127
|
+
keepPart(locator: string, token: string, part: Uint8Array): Promise<void>;
|
|
128
|
+
refresh(key: number, page: RefreshedPage): Promise<void>;
|
|
129
|
+
unrefresh(key: number): Promise<void>;
|
|
130
|
+
commit(commit: Commit): Promise<CommittedWrite>;
|
|
131
|
+
fence(locators: readonly string[]): Promise<void>;
|
|
132
|
+
erase(locator: string | null, limit: number): Promise<boolean>;
|
|
133
|
+
abandon(locator: string, kept?: boolean): Promise<number | null>;
|
|
134
|
+
release(key: number): Promise<void>;
|
|
135
|
+
rederive(key: number, limit: number): Promise<boolean>;
|
|
136
|
+
fact(name: string, value: unknown): Promise<void>;
|
|
122
137
|
queues(): Promise<readonly QueueRecord[]>;
|
|
123
138
|
submit(locator: string, id: string, submission: Submission, lost: boolean): Promise<void>;
|
|
124
|
-
accept(locator: string, id: string, roomVersion: string): Promise<void>;
|
|
125
139
|
keepUpload(locator: string, id: string, upload: unknown): Promise<void>;
|
|
126
140
|
roomDrafts(): Promise<readonly RoomDraftRecord[]>;
|
|
127
|
-
presentation(): Promise<readonly PresentationRecord[]>;
|
|
128
141
|
present(record: PresentationRecord): Promise<void>;
|
|
129
142
|
conversations(): Promise<readonly HeldConversation[]>;
|
|
130
143
|
keepMessages(write: ConversationWrite): Promise<void>;
|
|
131
|
-
messageWindow(conversation: string, limit: number |
|
|
132
|
-
|
|
133
|
-
messageIdentities(conversation: string): Promise<readonly string[]>;
|
|
144
|
+
messageWindow(conversation: string, limit: number, before: readonly [string, string] | null): Promise<MessageWindow>;
|
|
145
|
+
messageCount(conversation: string): Promise<number>;
|
|
134
146
|
turnArrived(conversation: string, turn: string): Promise<boolean>;
|
|
135
147
|
dropConversations(conversations: readonly string[]): Promise<void>;
|
|
136
148
|
chatDrafts(): Promise<readonly ChatDraftRecord[]>;
|
|
@@ -139,15 +151,9 @@ export type RuntimeStore = {
|
|
|
139
151
|
calls(): Promise<readonly CallRecord[]>;
|
|
140
152
|
keepCall(record: CallRecord): Promise<void>;
|
|
141
153
|
dropCall(operation: string): Promise<void>;
|
|
142
|
-
keepRoomDraft(record: RoomDraftRecord): Promise<void>;
|
|
154
|
+
keepRoomDraft(record: RoomDraftRecord, files: readonly StoredFile[]): Promise<void>;
|
|
143
155
|
discardRoomDraft(locator: string, path: string): Promise<void>;
|
|
144
156
|
fences(): Promise<readonly string[]>;
|
|
145
|
-
erase(locators: readonly string[]): Promise<void>;
|
|
146
|
-
discard(locator: string): Promise<void>;
|
|
147
|
-
transfers(): Promise<readonly TransferRecord[]>;
|
|
148
|
-
staged(record: TransferRecord): Promise<StagedLayer>;
|
|
149
|
-
stage(record: TransferRecord, page: StagedLayer): Promise<void>;
|
|
150
|
-
abandon(locator: string): Promise<void>;
|
|
151
157
|
receivedHeads(): Promise<readonly KeptReceipt[]>;
|
|
152
158
|
receivedParts(key: string, count: number): Promise<readonly unknown[]>;
|
|
153
159
|
keepReceived(key: string, head: unknown, part?: {
|
|
@@ -157,13 +163,7 @@ export type RuntimeStore = {
|
|
|
157
163
|
dropReceived(keys: readonly string[]): Promise<void>;
|
|
158
164
|
generation(): Promise<string | null>;
|
|
159
165
|
rememberGeneration(value: string): Promise<void>;
|
|
160
|
-
|
|
166
|
+
file(key: string, type: string): Promise<Blob>;
|
|
161
167
|
};
|
|
162
|
-
export declare function
|
|
163
|
-
export declare function authoredBy(holder: string): Promise<boolean>;
|
|
164
|
-
export declare function authoredBinding(): Promise<string | null>;
|
|
165
|
-
export declare function bindAuthored(binding: string): Promise<void>;
|
|
166
|
-
export declare function removeRuntimeStore(holder?: string): Promise<boolean>;
|
|
167
|
-
export declare function openDatabase(name: string, version: number, upgrade: (opening: IDBOpenDBRequest, oldVersion: number) => void): Promise<IDBDatabase>;
|
|
168
|
-
export declare function openRuntimeStore(fenced: (locator: string) => boolean): Promise<RuntimeStore>;
|
|
168
|
+
export declare function openRuntimeStore(fenced: (locator: string) => boolean, authored: RuntimeDatabase): RuntimeStore;
|
|
169
169
|
//# sourceMappingURL=store.d.ts.map
|
package/dist/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|