@agentshouse/mdruntime 0.1.0-cff1b70c6ad46 → 0.1.0-cffcba9cd9c2f

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 (134) hide show
  1. package/dist/acceptance.d.ts +0 -3
  2. package/dist/acceptance.d.ts.map +1 -1
  3. package/dist/acceptance.js +48 -124
  4. package/dist/actions.js +2 -2
  5. package/dist/adapter.d.ts +16 -44
  6. package/dist/adapter.d.ts.map +1 -1
  7. package/dist/bootstrap.d.ts +1 -1
  8. package/dist/bootstrap.d.ts.map +1 -1
  9. package/dist/bootstrap.js +6 -19
  10. package/dist/change-set.d.ts +4 -0
  11. package/dist/change-set.d.ts.map +1 -1
  12. package/dist/change-set.js +6 -0
  13. package/dist/client.d.ts +3 -1
  14. package/dist/client.d.ts.map +1 -1
  15. package/dist/client.js +5 -3
  16. package/dist/collection.d.ts +22 -4
  17. package/dist/collection.d.ts.map +1 -1
  18. package/dist/collection.js +12 -2
  19. package/dist/connection.d.ts.map +1 -1
  20. package/dist/connection.js +13 -13
  21. package/dist/conversation-live.d.ts +3 -4
  22. package/dist/conversation-live.d.ts.map +1 -1
  23. package/dist/conversation-live.js +2 -3
  24. package/dist/conversation.d.ts +4 -6
  25. package/dist/conversation.d.ts.map +1 -1
  26. package/dist/conversation.js +43 -71
  27. package/dist/declaration.d.ts +10 -0
  28. package/dist/declaration.d.ts.map +1 -0
  29. package/dist/declaration.js +24 -0
  30. package/dist/discovery.d.ts.map +1 -1
  31. package/dist/discovery.js +5 -3
  32. package/dist/failure.d.ts +1 -0
  33. package/dist/failure.d.ts.map +1 -1
  34. package/dist/failure.js +3 -0
  35. package/dist/host.d.ts +17 -2
  36. package/dist/host.d.ts.map +1 -1
  37. package/dist/host.js +16 -4
  38. package/dist/index.d.ts +3 -2
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +2 -1
  41. package/dist/install.d.ts +0 -1
  42. package/dist/install.d.ts.map +1 -1
  43. package/dist/install.js +46 -57
  44. package/dist/job.d.ts +1 -29
  45. package/dist/job.d.ts.map +1 -1
  46. package/dist/job.js +2 -49
  47. package/dist/lifecycle.d.ts.map +1 -1
  48. package/dist/lifecycle.js +9 -6
  49. package/dist/listing.d.ts +3 -4
  50. package/dist/listing.d.ts.map +1 -1
  51. package/dist/listing.js +14 -22
  52. package/dist/live.d.ts.map +1 -1
  53. package/dist/live.js +3 -1
  54. package/dist/locks.d.ts.map +1 -1
  55. package/dist/locks.js +2 -1
  56. package/dist/lost.d.ts.map +1 -1
  57. package/dist/lost.js +3 -3
  58. package/dist/memory.d.ts +4 -2
  59. package/dist/memory.d.ts.map +1 -1
  60. package/dist/memory.js +8 -6
  61. package/dist/messages.d.ts +0 -3
  62. package/dist/messages.d.ts.map +1 -1
  63. package/dist/messages.js +0 -14
  64. package/dist/model.d.ts +0 -1
  65. package/dist/model.d.ts.map +1 -1
  66. package/dist/model.js +0 -5
  67. package/dist/models.d.ts +4 -8
  68. package/dist/models.d.ts.map +1 -1
  69. package/dist/models.js +101 -126
  70. package/dist/opening.d.ts.map +1 -1
  71. package/dist/opening.js +6 -4
  72. package/dist/overlay.d.ts +2 -1
  73. package/dist/overlay.d.ts.map +1 -1
  74. package/dist/overlay.js +32 -21
  75. package/dist/parts.d.ts +3 -52
  76. package/dist/parts.d.ts.map +1 -1
  77. package/dist/parts.js +15 -120
  78. package/dist/preparation.d.ts.map +1 -1
  79. package/dist/preparation.js +10 -3
  80. package/dist/queue.d.ts +32 -0
  81. package/dist/queue.d.ts.map +1 -0
  82. package/dist/queue.js +402 -0
  83. package/dist/reach.d.ts.map +1 -1
  84. package/dist/reach.js +5 -4
  85. package/dist/reads.d.ts.map +1 -1
  86. package/dist/reads.js +4 -1
  87. package/dist/refresh.js +2 -2
  88. package/dist/refusal.d.ts.map +1 -1
  89. package/dist/refusal.js +3 -1
  90. package/dist/replica.d.ts +5 -11
  91. package/dist/replica.d.ts.map +1 -1
  92. package/dist/replica.js +12 -14
  93. package/dist/room-draft.d.ts +3 -2
  94. package/dist/room-draft.d.ts.map +1 -1
  95. package/dist/room-draft.js +33 -20
  96. package/dist/room-drafts.js +3 -3
  97. package/dist/rows.d.ts.map +1 -1
  98. package/dist/rows.js +3 -4
  99. package/dist/runtime.d.ts +5 -16
  100. package/dist/runtime.d.ts.map +1 -1
  101. package/dist/save.d.ts +5 -10
  102. package/dist/save.d.ts.map +1 -1
  103. package/dist/save.js +59 -56
  104. package/dist/saves.d.ts +2 -40
  105. package/dist/saves.d.ts.map +1 -1
  106. package/dist/saves.js +23 -349
  107. package/dist/shown.d.ts +2 -1
  108. package/dist/shown.d.ts.map +1 -1
  109. package/dist/shown.js +13 -6
  110. package/dist/socket/rooms.d.ts +1 -4
  111. package/dist/socket/rooms.d.ts.map +1 -1
  112. package/dist/socket.d.ts +0 -1
  113. package/dist/socket.d.ts.map +1 -1
  114. package/dist/store/records.d.ts +0 -2
  115. package/dist/store/records.d.ts.map +1 -1
  116. package/dist/store/records.js +0 -3
  117. package/dist/store.d.ts +1 -1
  118. package/dist/store.d.ts.map +1 -1
  119. package/dist/store.js +1 -1
  120. package/dist/stored.d.ts.map +1 -1
  121. package/dist/stored.js +3 -3
  122. package/dist/surface.d.ts.map +1 -1
  123. package/dist/surface.js +2 -1
  124. package/dist/sync.d.ts.map +1 -1
  125. package/dist/sync.js +18 -20
  126. package/dist/tables.d.ts +0 -4
  127. package/dist/tables.d.ts.map +1 -1
  128. package/dist/tables.js +1 -4
  129. package/dist/validation.d.ts.map +1 -1
  130. package/dist/validation.js +2 -2
  131. package/dist/wire.d.ts +4 -4
  132. package/dist/wire.d.ts.map +1 -1
  133. package/dist/wire.js +3 -3
  134. package/package.json +3 -2
package/dist/saves.js CHANGED
@@ -1,345 +1,26 @@
1
1
  import { parseFrontmatter } from '@agentshouse/mdmodel';
2
2
  import { binaryRecord } from './binary.js';
3
3
  import { changeSet, mergeChangeSets } from './change-set.js';
4
- import { leaving as leavingIn, partnerOf, queuedFile, } from './change.js';
4
+ import { queuedFile } from './change.js';
5
5
  import { available, composedOf } from './collection.js';
6
6
  import { runtimeError } from './failure.js';
7
7
  import { attachedFile } from './file.js';
8
8
  import { roomDraftRevision } from './identity.js';
9
- import { confirmedAgain } from './install.js';
10
9
  import { compositionFor } from './listing.js';
10
+ import { scoped } from './models.js';
11
11
  import { absentBinary, attachAnswer, binaryAnswer, binaryLinkAnswer, failure, OFFLINE, UNCERTAIN, } from './outcome.js';
12
12
  import { sameBinary } from './overlay.js';
13
13
  import { ancestors } from './paths.js';
14
- import { connectionNow, prepare } from './preparation.js';
15
- import { entryAt, landed, movedBy, overlayOf, replaying, slicing, slicingWith, standing, storedRecord, touchedBy, } from './replica.js';
16
- import { binaryBase, changedParts, changesOf, held, heldFile, joinedDraft, moveTarget, readSavedParts, returnedBy, returnedInto, withdrawnDrafts, } from './room-draft.js';
14
+ import { connectionNow } from './preparation.js';
15
+ import { overlayDiff, replayed, sliceAt, withdrawable } from './queue.js';
16
+ import { entryAt, replaying, slicing, } from './replica.js';
17
+ import { binaryBase, changedParts, changesOf, held, heldFile, joinedDraft, moveTarget, readSavedParts, withdrawnDrafts, } from './room-draft.js';
17
18
  import { refuse } from './refusal.js';
18
19
  import { visibleOf } from './room-drafts.js';
19
- import { documentKey } from './rows.js';
20
20
  import { buildBatch, buildMove, joined, limiting, queuedDocuments, requeuing, } from './save.js';
21
21
  import { pendingShown } from './shown.js';
22
22
  import { paced, ROW_WEIGHT, stepped } from './turn.js';
23
23
  import { validatedNeighbourhood } from './validation.js';
24
- export function withdrawable(states) {
25
- return (batch) => {
26
- const state = states.get(batch.id);
27
- return state !== undefined && state.submission.state !== 'submitted' && !state.lost;
28
- };
29
- }
30
- export async function sliceAt(store, record, view, queue, extra = [], moved = []) {
31
- const local = await store.open();
32
- const needed = new Set([...touchedBy(queue), ...extra]);
33
- const movedPaths = [...new Set([...movedBy(queue, record.locator), ...moved])];
34
- if (movedPaths.length > 0) {
35
- for (const { path } of await local.referrers(record.key, view, movedPaths)) {
36
- needed.add(path);
37
- }
38
- }
39
- const paths = [...needed];
40
- return stepped(slicing(await local.entries(record.key, view, paths), paths));
41
- }
42
- export async function landedWhole(store, locator, batch, confirmedLayer, current) {
43
- if (!landed(batch, confirmedLayer, current))
44
- return false;
45
- const partner = partnerOf(batch, locator);
46
- if (partner === null)
47
- return true;
48
- const other = await store.replica(partner);
49
- const half = other?.queue.find((one) => one.id === batch.id);
50
- if (other === undefined || half === undefined)
51
- return false;
52
- return landed(half, await sliceAt(store, other.record, 'confirmed', [half]));
53
- }
54
- async function carriedBack(store, locator, unlanded, written) {
55
- const back = new Map();
56
- const taken = [];
57
- for (const batch of unlanded) {
58
- const between = batch.between;
59
- if (between === undefined)
60
- continue;
61
- const source = between.source.room;
62
- const destination = between.destination.room;
63
- const local = await store.open();
64
- const arrived = (await local.pending(destination, batch.id)).state?.drafts ?? [];
65
- for (const { path: to } of arrived) {
66
- const record = await store.draft(destination, to);
67
- const path = between.moves.find((move) => move.to === to)?.path;
68
- if (record === undefined || path === undefined)
69
- continue;
70
- const [into, key] = source === locator ? [written, path] : [back, documentKey(source, path)];
71
- const existing = into.get(key) ?? (await store.draft(source, path));
72
- taken.push({ locator: destination, path: to });
73
- into.set(key, {
74
- locator: source,
75
- path,
76
- revision: roomDraftRevision(),
77
- parts: returnedInto(existing?.parts, record.parts),
78
- returned: existing?.returned ?? null,
79
- });
80
- }
81
- }
82
- const records = [...back.values()];
83
- const elsewhere = taken.filter((one) => one.locator !== locator);
84
- const rooms = new Set([...records, ...elsewhere].map((one) => one.locator));
85
- return {
86
- taken: taken.filter((one) => one.locator === locator).map(({ path }) => path),
87
- writes: [...rooms].map((room) => ({
88
- locator: room,
89
- roomDrafts: records.filter((record) => record.locator === room),
90
- consumedRoomDrafts: elsewhere.filter((one) => one.locator === room).map(({ path }) => path),
91
- })),
92
- changes: [...rooms].map((room) => changeSet(room, {
93
- drafts: [...records, ...elsewhere]
94
- .filter((one) => one.locator === room)
95
- .map(({ path }) => path),
96
- })),
97
- };
98
- }
99
- export function preparedAfter(runtime, locator, answer) {
100
- if (answer.indexed[locator] === false)
101
- prepare(runtime, [locator]);
102
- }
103
- export function replayed(store, record, confirmedLayer, queue) {
104
- return stepped(replaying(confirmedLayer, queue, record.locator, store.composed(record)));
105
- }
106
- export async function overlayDiff(record, before, visible, touched) {
107
- const kept = before !== undefined && before.record.key === record.key ? before.overlaid : new Set();
108
- return {
109
- overlay: {
110
- set: await stepped(overlayOf(visible, touched)),
111
- cleared: [...kept].filter((path) => !touched.has(path)),
112
- },
113
- touched,
114
- };
115
- }
116
- export async function settle(runtime, local, locator, work, record, queue, settling = {}) {
117
- return together(runtime, local, [
118
- await settlement(runtime, local, locator, work, record, queue, settling),
119
- ]);
120
- }
121
- async function unpairedIn(store, locator, batch) {
122
- const { state } = await (await store.open()).pending(locator, batch.id);
123
- if (state === undefined)
124
- return false;
125
- return !leavingIn(batch, locator) || withdrawable(new Map([[batch.id, state]]))(batch);
126
- }
127
- export async function together(runtime, local, settlements) {
128
- const settled = new Set(settlements.map(({ locator }) => locator));
129
- const all = [...settlements];
130
- for (let wave = settlements; wave.length > 0;) {
131
- const partnered = new Map();
132
- for (const { locator, left } of wave) {
133
- for (const batch of left) {
134
- const partner = partnerOf(batch, locator);
135
- if (partner === null ||
136
- settled.has(partner) ||
137
- !(await unpairedIn(runtime.store, partner, batch))) {
138
- continue;
139
- }
140
- partnered.set(partner, [...(partnered.get(partner) ?? []), batch]);
141
- }
142
- }
143
- const partners = [];
144
- for (const [partner, batches] of partnered) {
145
- settled.add(partner);
146
- partners.push(await unpairing(runtime, local, partner, batches));
147
- }
148
- all.push(...partners);
149
- wave = partners;
150
- }
151
- const answer = await local.commit({
152
- rooms: all.flatMap(({ commit }) => commit.rooms),
153
- writes: all.flatMap(({ commit }) => commit.writes),
154
- });
155
- return mergeChangeSets(all.map((one) => one.apply(answer)));
156
- }
157
- export async function settlement(runtime, local, locator, work, record, queue, settling = {}) {
158
- const { store, journal, localSaves } = runtime;
159
- const before = work.replica;
160
- const view = settling.view ?? 'confirmed';
161
- const previousQueue = work.queue;
162
- const overrides = settling.changes;
163
- const read = await sliceAt(store, record, view, queue, [
164
- ...(before !== undefined && before.record.key === record.key ? before.overlaid : []),
165
- ...(overrides?.set.map(({ path }) => path) ?? []),
166
- ...(overrides?.removed ?? []),
167
- ]);
168
- const confirmedLayer = overrides === undefined
169
- ? read
170
- : await stepped(slicingWith(read, overrides.set, overrides.removed));
171
- const composition = store.composed(record);
172
- const shown = queue.filter((batch) => {
173
- const held = store.landed.of(locator, batch.id);
174
- return (held !== undefined &&
175
- Object.entries(held).some(([path, revision]) => confirmedLayer.revisions[path] !== revision));
176
- });
177
- const unshown = queue.filter((batch) => !shown.includes(batch));
178
- const { withdrawn, kept } = await stepped(standing(confirmedLayer, unshown, withdrawable(work.states), localSaves, locator, composition));
179
- const founded = kept.filter((batch) => !unshown.includes(batch));
180
- const queueChanged = kept.length !== previousQueue.length || founded.length > 0;
181
- const unqueued = shown.map((batch) => ({ batch, landed: true }));
182
- for (const batch of withdrawn) {
183
- unqueued.push({ batch, landed: await landedWhole(store, locator, batch, confirmedLayer) });
184
- }
185
- const returning = [
186
- ...[...unqueued].reverse().map(({ batch, landed: held }) => ({
187
- batch,
188
- returned: localSaves || held ? null : returnedBy(),
189
- })),
190
- ...(settling.leaving ?? []),
191
- ];
192
- const written = new Map();
193
- for (const { batch, returned: reason } of returning) {
194
- if (reason === null || batch.between?.destination.room === locator)
195
- continue;
196
- for (const saved of work.states.get(batch.id)?.drafts ?? []) {
197
- const existing = written.get(saved.path) ?? (await store.draft(locator, saved.path));
198
- written.set(saved.path, {
199
- locator,
200
- path: saved.path,
201
- revision: roomDraftRevision(),
202
- parts: returnedInto(existing?.parts, saved.parts),
203
- returned: reason,
204
- });
205
- }
206
- }
207
- const carried = await carriedBack(store, locator, [
208
- ...[...unqueued].reverse().flatMap(({ batch, landed: held }) => (held ? [] : [batch])),
209
- ...(settling.leaving ?? []).flatMap(({ batch, returned }) => returned === null ? [] : [batch]),
210
- ], written);
211
- const replayedLayer = await replayed(store, record, confirmedLayer, kept);
212
- const { overlay } = await overlayDiff(record, before, replayedLayer.visible, replayedLayer.touched);
213
- const commit = {
214
- rooms: [
215
- {
216
- locator,
217
- key: record.key,
218
- record: storedRecord(record),
219
- roots: record.typedSelection?.roots ?? [],
220
- composed: composedOf(composition),
221
- ...settling.commit,
222
- ...(overrides === undefined
223
- ? {}
224
- : { confirmed: { set: overrides.set, removed: overrides.removed } }),
225
- overlay,
226
- },
227
- ],
228
- writes: [
229
- {
230
- locator,
231
- queue: kept,
232
- stored: previousQueue,
233
- founded,
234
- roomDrafts: [...written.values()],
235
- consumedRoomDrafts: carried.taken,
236
- },
237
- ...carried.writes,
238
- ],
239
- };
240
- const staying = new Set(kept.map((batch) => batch.id));
241
- return {
242
- locator,
243
- left: previousQueue.filter((batch) => !staying.has(batch.id)),
244
- commit,
245
- apply: (answer) => {
246
- for (const batch of previousQueue) {
247
- if (!staying.has(batch.id))
248
- store.landed.drop(locator, batch.id);
249
- }
250
- const drafts = [...written.keys(), ...carried.taken];
251
- for (const { batch, landed: held } of unqueued) {
252
- const outcome = localSaves ? 'dropped' : held ? 'landed' : 'withdrawn';
253
- journal.record(`outcome ${locator} ${batch.id} ${outcome}`);
254
- }
255
- const changed = answer.changed[locator];
256
- if (settling.commit?.published !== undefined ||
257
- settling.commit?.refreshed === true ||
258
- overrides !== undefined) {
259
- confirmedAgain(store, locator);
260
- }
261
- preparedAfter(runtime, locator, answer);
262
- return mergeChangeSets([
263
- changeSet(locator, {
264
- documents: changed === undefined ? [] : changed,
265
- room: settling.room,
266
- queue: queueChanged,
267
- drafts,
268
- }),
269
- ...carried.changes,
270
- ]);
271
- },
272
- };
273
- }
274
- export async function unpairing(runtime, local, locator, batches) {
275
- const { store, journal, localSaves, submitLater } = runtime;
276
- const ids = new Set(batches.map(({ id }) => id));
277
- const leaving = batches.map((batch) => ({
278
- batch,
279
- returned: !localSaves && leavingIn(batch, locator) ? returnedBy() : null,
280
- }));
281
- const outcome = localSaves ? 'dropped' : 'unpaired';
282
- const work = await store.work(locator);
283
- const current = work.replica;
284
- if (current !== undefined) {
285
- const settled = await settlement(runtime, local, locator, work, current.record, current.queue.filter((one) => !ids.has(one.id)), { leaving });
286
- return {
287
- ...settled,
288
- apply(answer) {
289
- for (const batch of batches)
290
- journal.record(`outcome ${locator} ${batch.id} ${outcome}`);
291
- const set = settled.apply(answer);
292
- submitLater(locator);
293
- return set;
294
- },
295
- };
296
- }
297
- const queue = work.queue.filter((one) => !ids.has(one.id));
298
- const written = new Map();
299
- for (const { batch, returned } of leaving) {
300
- if (returned === null)
301
- continue;
302
- for (const saved of work.states.get(batch.id)?.drafts ?? []) {
303
- written.set(saved.path, {
304
- locator,
305
- path: saved.path,
306
- revision: roomDraftRevision(),
307
- parts: returnedInto((written.get(saved.path) ?? (await store.draft(locator, saved.path)))?.parts, saved.parts),
308
- returned,
309
- });
310
- }
311
- }
312
- const carried = await carriedBack(store, locator, leaving.flatMap(({ batch, returned }) => (returned === null ? [] : [batch])), written);
313
- return {
314
- locator,
315
- left: batches,
316
- commit: {
317
- rooms: [],
318
- writes: [
319
- {
320
- locator,
321
- queue,
322
- stored: work.queue,
323
- roomDrafts: [...written.values()],
324
- consumedRoomDrafts: carried.taken,
325
- },
326
- ...carried.writes,
327
- ],
328
- },
329
- apply() {
330
- for (const batch of batches)
331
- journal.record(`outcome ${locator} ${batch.id} ${outcome}`);
332
- submitLater(locator);
333
- return mergeChangeSets([
334
- changeSet(locator, {
335
- queue: true,
336
- drafts: [...written.keys(), ...carried.taken],
337
- }),
338
- ...carried.changes,
339
- ]);
340
- },
341
- };
342
- }
343
24
  async function savedRoom(store, locator) {
344
25
  const local = await store.open();
345
26
  const replica = await store.replica(locator);
@@ -426,7 +107,7 @@ async function unmodeledIn(runtime, record) {
426
107
  if (available(composition))
427
108
  return false;
428
109
  const local = await runtime.store.open();
429
- const roots = record.typedSelection?.roots ?? [];
110
+ const roots = record.declaration.typedSelection?.roots ?? [];
430
111
  return local.typedWithin(record.key, 'visible', roots, false);
431
112
  }
432
113
  function textDiffers(left, right) {
@@ -507,12 +188,10 @@ async function sideOf(runtime, locator, replica, saving) {
507
188
  const record = replica.record;
508
189
  return {
509
190
  room: locator,
510
- handle: record.handle,
191
+ handle: record.declaration.handle,
511
192
  baseRoomVersion: record.roomVersion,
512
193
  composition: compositionFor(runtime, record),
513
- operations: record.operations,
514
- providerOwnedPaths: record.providerOwnedPaths,
515
- authoredPaths: record.authoredPaths,
194
+ rule: runtime.writeRule(record.declaration),
516
195
  visible: saving.visible,
517
196
  folders: saving.folders,
518
197
  queued: queuedDocuments(replica.queue),
@@ -532,7 +211,7 @@ async function saveCommit(store, local, files, rooms) {
532
211
  commits.push({
533
212
  locator,
534
213
  key: saving.record.key,
535
- roots: saving.record.typedSelection?.roots ?? [],
214
+ roots: saving.record.declaration.typedSelection?.roots ?? [],
536
215
  composed: composedOf(store.composed(saving.record)),
537
216
  overlay: diff.overlay,
538
217
  });
@@ -570,7 +249,6 @@ async function committedMove(runtime, locator, destination, { local, replica },
570
249
  destination: await sideOf(runtime, destination, target, arriving),
571
250
  moves,
572
251
  providerLimits: (await local.facts()).providerLimits,
573
- pathRule: runtime.pathRule,
574
252
  local: localSaves,
575
253
  ...(writtenBy === undefined ? {} : { writtenBy }),
576
254
  });
@@ -634,28 +312,24 @@ async function committedMove(runtime, locator, destination, { local, replica },
634
312
  if (store.fences.has(locator) || store.fences.has(destination)) {
635
313
  throw runtimeError('unknown-room', `Unknown Room ${locator}`);
636
314
  }
637
- preparedAfter(runtime, locator, answer);
638
- preparedAfter(runtime, destination, answer);
639
315
  const shownNow = store.changed(mergeChangeSets([
640
316
  changeSet(locator, {
641
317
  documents: answer.changed[locator] ?? [],
642
318
  queue: true,
643
319
  drafts: left,
320
+ unindexed: answer.indexed[locator] === false,
321
+ due: true,
644
322
  }),
645
323
  changeSet(destination, {
646
324
  documents: answer.changed[destination] ?? [],
647
325
  queue: true,
648
326
  drafts: carried.map(({ path }) => path),
327
+ unindexed: answer.indexed[destination] === false,
649
328
  }),
650
329
  ]));
651
- await Promise.all([shownNow, queuedSave(runtime, locator)]);
330
+ await Promise.all([shownNow, pendingShown(runtime)]);
652
331
  return { outcome: 'saved', identifier: id };
653
332
  }
654
- function queuedSave(runtime, locator) {
655
- const shownNow = pendingShown(runtime);
656
- runtime.submitLater(locator);
657
- return shownNow;
658
- }
659
333
  async function committed(runtime, locator, target, saved, consumed, writtenBy, files = []) {
660
334
  const { store, localSaves } = runtime;
661
335
  if (store.space.full())
@@ -695,12 +369,9 @@ async function committed(runtime, locator, target, saved, consumed, writtenBy, f
695
369
  local: localSaves,
696
370
  baseRoomVersion: replica.record.roomVersion,
697
371
  composition: compositionFor(runtime, replica.record),
698
- operations: replica.record.operations,
699
- providerOwnedPaths: replica.record.providerOwnedPaths,
700
- authoredPaths: replica.record.authoredPaths,
372
+ rule: runtime.writeRule(replica.record.declaration),
701
373
  providerLimits,
702
- pathRule: runtime.pathRule,
703
- handle: replica.record.handle,
374
+ handle: replica.record.declaration.handle,
704
375
  visible: saving.visible,
705
376
  folders: saving.folders,
706
377
  changes,
@@ -740,7 +411,9 @@ async function committed(runtime, locator, target, saved, consumed, writtenBy, f
740
411
  if (built?.kind === 'refused')
741
412
  return { outcome: 'refused', ...built.refusal };
742
413
  const [owner] = owners;
743
- const join = built === null || owner === undefined ? null : joined(requeue.queue, owner.batch, built.batch);
414
+ const join = built === null || owner === undefined
415
+ ? null
416
+ : joined(requeue.queue, owner.batch, built.batch, input.composition);
744
417
  if (join?.kind === 'refused')
745
418
  return { outcome: 'refused', ...join.refusal };
746
419
  const withdrawn = new Map(requeue.withdrawn);
@@ -794,13 +467,14 @@ async function committed(runtime, locator, target, saved, consumed, writtenBy, f
794
467
  }
795
468
  if (store.fences.has(locator))
796
469
  throw runtimeError('unknown-room', `Unknown Room ${locator}`);
797
- preparedAfter(runtime, locator, answer);
798
470
  const shownNow = store.changed(changeSet(locator, {
799
471
  documents: answer.changed[locator] ?? [],
800
472
  queue: true,
801
473
  drafts: [...left, ...arrived.map(({ path }) => path)],
474
+ unindexed: answer.indexed[locator] === false,
475
+ due: true,
802
476
  }));
803
- await Promise.all([shownNow, queuedSave(runtime, locator)]);
477
+ await Promise.all([shownNow, pendingShown(runtime)]);
804
478
  const identifier = join?.batch.id ??
805
479
  built?.batch.id ??
806
480
  [...requeue.withdrawn].map(([origin, replaced]) => replaced?.id ?? origin).at(-1);
@@ -849,7 +523,7 @@ async function transferBinary(runtime, request, transfer, answer) {
849
523
  if (settled.kind === 'scoped-refusal') {
850
524
  const room = await store.record(settled.locator);
851
525
  if (room !== undefined)
852
- await runtime.scoped(settled, room, await store.open());
526
+ await scoped(runtime, settled, room.locator, room.declaration);
853
527
  }
854
528
  if (settled.kind === 'revoked-authorization')
855
529
  await refuse(runtime, 'revoked-authorization');
package/dist/shown.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { DiscoveredRoom, Member } from './adapter.js';
2
- import type { ChangeSet } from './change-set.js';
2
+ import { type ChangeSet } from './change-set.js';
3
3
  import type { QueueEntry } from './outcome.js';
4
4
  import type { Runtime } from './runtime.js';
5
5
  import type { Live, Moving } from './socket.js';
@@ -26,6 +26,7 @@ export declare function transferring({ socket }: Runtime): Moving;
26
26
  export declare function pendingShown(runtime: Runtime): Promise<void>;
27
27
  export declare function entriesOf(runtime: Runtime, locator: string): Promise<readonly QueueEntry[]>;
28
28
  export declare function publishChangeSet(runtime: Runtime, set: ChangeSet): Promise<void>;
29
+ export declare function submissionDue(runtime: Runtime, locators?: readonly string[]): Promise<void>;
29
30
  export declare function roomUnreadable(runtime: Runtime, room: DiscoveredRoom): void;
30
31
  export declare function rest(runtime: Runtime, progress: CycleProgress | null, live?: Live): Promise<void>;
31
32
  //# sourceMappingURL=shown.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shown.d.ts","sourceRoot":"","sources":["../src/shown.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAA6B,KAAK,aAAa,EAAmB,MAAM,aAAa,CAAC;AAiB7F,eAAO,MAAM,WAAW,UAAU,CAAC;AAEnC,eAAO,MAAM,YAAY,gBAAgB,CAAC;AAE1C,eAAO,MAAM,aAAa,uBAAuB,CAAC;AAElD,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AAEjD,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AAEjD,eAAO,MAAM,YAAY,WAAW,CAAC;AAErC,eAAO,MAAM,eAAe,sBAAsB,CAAC;AAEnD,eAAO,MAAM,WAAW,UAAU,CAAC;AAEnC,eAAO,MAAM,UAAU,YAAa,MAAM,WAA4B,CAAC;AA0CvE,wBAAgB,YAAY,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,OAAO,QAG7D;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAMtF;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,QAI9C;AA8ED,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,QAK3C;AAED,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,QAGjD;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,QAEnE;AAsBD,wBAAgB,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAepD;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIpE;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3D;AAED,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,GAAG,MAAM,CAExD;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAK5D;AAYD,wBAAsB,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,UAAU,EAAE,CAAC,CAGjG;AAcD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBhF;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,QAIpE;AAED,wBAAsB,IAAI,CACxB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,aAAa,GAAG,IAAI,EAC9B,IAAI,GAAE,IAAqC,iBAgC5C"}
1
+ {"version":3,"file":"shown.d.ts","sourceRoot":"","sources":["../src/shown.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,EAA8B,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI7E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAA6B,KAAK,aAAa,EAAmB,MAAM,aAAa,CAAC;AAiB7F,eAAO,MAAM,WAAW,UAAU,CAAC;AAEnC,eAAO,MAAM,YAAY,gBAAgB,CAAC;AAE1C,eAAO,MAAM,aAAa,uBAAuB,CAAC;AAElD,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AAEjD,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AAEjD,eAAO,MAAM,YAAY,WAAW,CAAC;AAErC,eAAO,MAAM,eAAe,sBAAsB,CAAC;AAEnD,eAAO,MAAM,WAAW,UAAU,CAAC;AAEnC,eAAO,MAAM,UAAU,YAAa,MAAM,WAA4B,CAAC;AA0CvE,wBAAgB,YAAY,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,OAAO,QAG7D;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAMtF;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,QAI9C;AA6ED,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,QAK3C;AAED,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,QAGjD;AAED,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,QAEnE;AAsBD,wBAAgB,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAepD;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIpE;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3D;AAED,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,OAAO,GAAG,MAAM,CAExD;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAK5D;AAYD,wBAAsB,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,UAAU,EAAE,CAAC,CAGjG;AAcD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBhF;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAQjG;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,QAIpE;AAED,wBAAsB,IAAI,CACxB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,aAAa,GAAG,IAAI,EAC9B,IAAI,GAAE,IAAqC,iBAgC5C"}
package/dist/shown.js CHANGED
@@ -1,4 +1,6 @@
1
+ import { changeSet, mergeChangeSets } from './change-set.js';
1
2
  import { conversationsChanged, conversationsLearned } from './conversation.js';
3
+ import { declared } from './declaration.js';
2
4
  import { listingNow, list, patchedListing, shownRooms } from './listing.js';
3
5
  import { emitPresentation, publishRoomDrafts } from './room-drafts.js';
4
6
  import { same } from './status.js';
@@ -88,9 +90,7 @@ async function deliverRooms(runtime, owed) {
88
90
  if (patched === null && owed.changed.size > 0)
89
91
  owed.all = true;
90
92
  if (patched === null && !owed.all && owed.counted.size > 0) {
91
- const held = await store.covering().catch(() => null);
92
- if (held === null)
93
- return;
93
+ const held = await store.covering();
94
94
  const { roomsShown } = store.device.now();
95
95
  owed.all = [...owed.counted].some((locator) => held.rooms.has(locator) &&
96
96
  roomsShown?.get(locator)?.documents !== held.rooms.get(locator).documents);
@@ -101,8 +101,8 @@ async function deliverRooms(runtime, owed) {
101
101
  else if (waiting().length === 0)
102
102
  return;
103
103
  }
104
- const listing = patched ?? (await listingNow(runtime).catch(() => null));
105
- if (listing === null || socket.closed())
104
+ const listing = patched ?? (await listingNow(runtime));
105
+ if (socket.closed())
106
106
  return;
107
107
  const { roomsListed, refusal, moving } = socket.session.now();
108
108
  const joining = waiting().length > 0 &&
@@ -250,9 +250,16 @@ export function publishChangeSet(runtime, set) {
250
250
  conversationsChanged(conversations, set);
251
251
  return Promise.all(shownNow).then(() => undefined);
252
252
  }
253
+ export async function submissionDue(runtime, locators) {
254
+ const { store } = runtime;
255
+ const due = (await (await store.open()).queued()).filter((locator) => (locators === undefined || locators.includes(locator)) && !store.fences.has(locator));
256
+ if (due.length === 0)
257
+ return;
258
+ await store.changed(mergeChangeSets(due.map((locator) => changeSet(locator, { due: true }))));
259
+ }
253
260
  export function roomUnreadable(runtime, room) {
254
261
  runtime.socket.rooms.stand(room.locator, { unreadable: true });
255
- list(runtime, room, false);
262
+ list(runtime, room.locator, declared(room), false);
256
263
  emitRooms(runtime);
257
264
  }
258
265
  export async function rest(runtime, progress, live = () => !runtime.socket.closed()) {
@@ -1,8 +1,5 @@
1
- import type { DiscoveredRoom, ProviderRefusal, TypedSelection } from '../adapter.js';
1
+ import type { DiscoveredRoom, ProviderRefusal, RoomDeclaration } from '../adapter.js';
2
2
  import type { ModelState } from '../model.js';
3
- export type RoomDeclaration = Omit<DiscoveredRoom, 'roomVersion' | 'typedSelection'> & {
4
- typedSelection?: TypedSelection | null;
5
- };
6
3
  export type Declared = {
7
4
  readonly room: RoomDeclaration | null;
8
5
  readonly available: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"rooms.d.ts","sourceRoot":"","sources":["../../src/socket/rooms.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACrF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,EAAE,aAAa,GAAG,gBAAgB,CAAC,GAAG;IACrF,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC;AAE9F,KAAK,YAAY,GAAG;IAClB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,WAAW,EAAE,UAAU,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,GAAG,IAAI,CAAC;IACnE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC,CAAC;AAcF,MAAM,MAAM,KAAK,GAAG;IAClB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IACnD,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IAChD,YAAY,IAAI,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC9C,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IACrC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IACxD,eAAe,IAAI,SAAS,cAAc,EAAE,CAAC;IAC7C,aAAa,IAAI,IAAI,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAAC;IACxC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;IAC5D,aAAa,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,OAAO,GAAG,SAAS,MAAM,EAAE,CAAC;IACxE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;IAC9C,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IACjD,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,IAAI,IAAI,CAAC;IAClB,cAAc,CAAC,MAAM,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IACzC,cAAc,IAAI,IAAI,CAAC;CACxB,CAAC;AAQF,wBAAgB,WAAW,IAAI,KAAK,CAsEnC"}
1
+ {"version":3,"file":"rooms.d.ts","sourceRoot":"","sources":["../../src/socket/rooms.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACtF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,MAAM,QAAQ,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC;AAE9F,KAAK,YAAY,GAAG;IAClB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,WAAW,EAAE,UAAU,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,GAAG,IAAI,CAAC;IACnE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC,CAAC;AAcF,MAAM,MAAM,KAAK,GAAG;IAClB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IACnD,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IAChD,YAAY,IAAI,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC9C,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IACrC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;IACxD,eAAe,IAAI,SAAS,cAAc,EAAE,CAAC;IAC7C,aAAa,IAAI,IAAI,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAAC;IACxC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;IAC5D,aAAa,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,OAAO,GAAG,SAAS,MAAM,EAAE,CAAC;IACxE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;IAC9C,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IACjD,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,IAAI,IAAI,CAAC;IAClB,cAAc,CAAC,MAAM,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IACzC,cAAc,IAAI,IAAI,CAAC;CACxB,CAAC;AAQF,wBAAgB,WAAW,IAAI,KAAK,CAsEnC"}
package/dist/socket.d.ts CHANGED
@@ -8,7 +8,6 @@ import { type Lanes } from './socket/lanes.js';
8
8
  import { type Rooms } from './socket/rooms.js';
9
9
  import { type Session } from './socket/session.js';
10
10
  export type { Live } from './socket/lanes.js';
11
- export type { RoomDeclaration } from './socket/rooms.js';
12
11
  export type { ConnectionRefusal, ConnectionRefusalCode, Moving, RefusalReason, } from './socket/session.js';
13
12
  type SocketEvent = {
14
13
  readonly kind: 'opened';
@@ -1 +1 @@
1
- {"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../src/socket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../src/socket.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,6 @@ import type { Submission } from '../outcome.js';
7
7
  import type { RoomDraftRecord, SavedDraft } from '../room-draft.js';
8
8
  import type { ModelState, StoredModel } from '../model.js';
9
9
  import type { CommittedWrite, ConversationWrite, HeldConversation, HeldRow, HeldEntry, MessageWindow, QueryAnswer, QueryRoom, Referrer, ReplicaOpened, RoomCommit, RuntimeDatabase, StoredEntry, StoredFile, TypedEntry, View } from '../tables.js';
10
- import type { JobMarker } from '../job.js';
11
10
  export type { ConversationWrite, HeldConversation, MessageWindow } from '../tables.js';
12
11
  export type TransferRecord = {
13
12
  readonly locator: string;
@@ -192,7 +191,6 @@ export type RuntimeStore = {
192
191
  messageCount(conversation: string, phrase?: string | null): Promise<number>;
193
192
  turnArrived(conversation: string, turn: string): Promise<boolean>;
194
193
  conversationRows(conversations: readonly string[]): Promise<readonly HeldRow[]>;
195
- jobMarkers(conversation: string): Promise<readonly JobMarker[]>;
196
194
  dropConversations(conversations: readonly string[]): Promise<void>;
197
195
  chatDrafts(): Promise<readonly ChatDraftRecord[]>;
198
196
  chatDraft(conversation: string): Promise<ChatDraftRecord | null>;