@agentshouse/mdruntime 0.1.0-ca9afacd5aebd → 0.1.0-caee7332d2235

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 (155) hide show
  1. package/AGENTS.md +271 -290
  2. package/README.md +8 -8
  3. package/dist/adapter.d.ts +52 -10
  4. package/dist/adapter.d.ts.map +1 -1
  5. package/dist/attempt.d.ts.map +1 -1
  6. package/dist/attempt.js +14 -1
  7. package/dist/bootstrap.d.ts +3 -2
  8. package/dist/bootstrap.d.ts.map +1 -1
  9. package/dist/bootstrap.js +33 -7
  10. package/dist/change-set.d.ts +7 -2
  11. package/dist/change-set.d.ts.map +1 -1
  12. package/dist/change-set.js +41 -10
  13. package/dist/chat/acts.d.ts +3 -4
  14. package/dist/chat/acts.d.ts.map +1 -1
  15. package/dist/chat/acts.js +10 -10
  16. package/dist/chat/earlier.d.ts +10 -0
  17. package/dist/chat/earlier.d.ts.map +1 -0
  18. package/dist/chat/earlier.js +54 -0
  19. package/dist/chat/kit.d.ts +2 -1
  20. package/dist/chat/kit.d.ts.map +1 -1
  21. package/dist/chat/kit.js +3 -3
  22. package/dist/chat/list.d.ts +8 -1
  23. package/dist/chat/list.d.ts.map +1 -1
  24. package/dist/chat/list.js +48 -8
  25. package/dist/chat/markdown.d.ts +3 -1
  26. package/dist/chat/markdown.d.ts.map +1 -1
  27. package/dist/chat/markdown.js +85 -26
  28. package/dist/chat/message.d.ts.map +1 -1
  29. package/dist/chat/message.js +3 -3
  30. package/dist/chat/messages.d.ts +1 -0
  31. package/dist/chat/messages.d.ts.map +1 -1
  32. package/dist/chat/messages.js +35 -15
  33. package/dist/chat/pieces.d.ts +62 -0
  34. package/dist/chat/pieces.d.ts.map +1 -0
  35. package/dist/chat/pieces.js +1110 -0
  36. package/dist/chat/provider.d.ts +1 -1
  37. package/dist/chat/provider.d.ts.map +1 -1
  38. package/dist/chat/provider.js +65 -80
  39. package/dist/chat/question.d.ts +1 -1
  40. package/dist/chat/question.d.ts.map +1 -1
  41. package/dist/chat/question.js +7 -18
  42. package/dist/chat/ready.d.ts +1 -0
  43. package/dist/chat/ready.d.ts.map +1 -1
  44. package/dist/chat/ready.js +4 -4
  45. package/dist/chat/steady.d.ts +3 -0
  46. package/dist/chat/steady.d.ts.map +1 -0
  47. package/dist/chat/steady.js +26 -0
  48. package/dist/chat/style.js +4 -4
  49. package/dist/chat.d.ts +1 -1
  50. package/dist/chat.d.ts.map +1 -1
  51. package/dist/chat.js +1 -1
  52. package/dist/client.d.ts +17 -9
  53. package/dist/client.d.ts.map +1 -1
  54. package/dist/client.js +19 -6
  55. package/dist/collection.d.ts +20 -5
  56. package/dist/collection.d.ts.map +1 -1
  57. package/dist/collection.js +309 -33
  58. package/dist/connection.d.ts +31 -9
  59. package/dist/connection.d.ts.map +1 -1
  60. package/dist/connection.js +1602 -386
  61. package/dist/conversation.d.ts +20 -7
  62. package/dist/conversation.d.ts.map +1 -1
  63. package/dist/conversation.js +474 -163
  64. package/dist/durability.d.ts +7 -1
  65. package/dist/durability.d.ts.map +1 -1
  66. package/dist/entry.d.ts +17 -0
  67. package/dist/entry.d.ts.map +1 -0
  68. package/dist/entry.js +157 -0
  69. package/dist/fence.d.ts +6 -0
  70. package/dist/fence.d.ts.map +1 -0
  71. package/dist/fence.js +10 -0
  72. package/dist/host.d.ts +15 -3
  73. package/dist/host.d.ts.map +1 -1
  74. package/dist/host.js +94 -12
  75. package/dist/identity.d.ts +2 -0
  76. package/dist/identity.d.ts.map +1 -1
  77. package/dist/identity.js +6 -0
  78. package/dist/index.d.ts +10 -7
  79. package/dist/index.d.ts.map +1 -1
  80. package/dist/index.js +2 -0
  81. package/dist/memory.d.ts +8 -2
  82. package/dist/memory.d.ts.map +1 -1
  83. package/dist/memory.js +33 -6
  84. package/dist/model.d.ts +4 -2
  85. package/dist/model.d.ts.map +1 -1
  86. package/dist/model.js +10 -1
  87. package/dist/observation.d.ts +7 -2
  88. package/dist/observation.d.ts.map +1 -1
  89. package/dist/observation.js +29 -12
  90. package/dist/outcome.d.ts +12 -2
  91. package/dist/outcome.d.ts.map +1 -1
  92. package/dist/outcome.js +4 -0
  93. package/dist/overlay.d.ts +5 -3
  94. package/dist/overlay.d.ts.map +1 -1
  95. package/dist/overlay.js +203 -159
  96. package/dist/query.d.ts +56 -4
  97. package/dist/query.d.ts.map +1 -1
  98. package/dist/query.js +36 -7
  99. package/dist/reach.d.ts +6 -3
  100. package/dist/reach.d.ts.map +1 -1
  101. package/dist/reach.js +30 -5
  102. package/dist/react.d.ts +8 -6
  103. package/dist/react.d.ts.map +1 -1
  104. package/dist/react.js +7 -17
  105. package/dist/read-side.d.ts +16 -7
  106. package/dist/read-side.d.ts.map +1 -1
  107. package/dist/read-side.js +486 -100
  108. package/dist/readiness.d.ts +53 -0
  109. package/dist/readiness.d.ts.map +1 -0
  110. package/dist/readiness.js +33 -0
  111. package/dist/reads.d.ts +11 -0
  112. package/dist/reads.d.ts.map +1 -0
  113. package/dist/reads.js +98 -0
  114. package/dist/recovery.d.ts +25 -0
  115. package/dist/recovery.d.ts.map +1 -0
  116. package/dist/recovery.js +197 -0
  117. package/dist/refresh.d.ts +4 -4
  118. package/dist/refresh.d.ts.map +1 -1
  119. package/dist/refresh.js +44 -18
  120. package/dist/replica.d.ts +11 -5
  121. package/dist/replica.d.ts.map +1 -1
  122. package/dist/replica.js +111 -56
  123. package/dist/room-draft.d.ts +13 -1
  124. package/dist/room-draft.d.ts.map +1 -1
  125. package/dist/room-draft.js +11 -12
  126. package/dist/rows.d.ts +6 -13
  127. package/dist/rows.d.ts.map +1 -1
  128. package/dist/rows.js +10 -13
  129. package/dist/save.d.ts +10 -4
  130. package/dist/save.d.ts.map +1 -1
  131. package/dist/save.js +216 -108
  132. package/dist/search.d.ts +49 -6
  133. package/dist/search.d.ts.map +1 -1
  134. package/dist/search.js +192 -47
  135. package/dist/seed.d.ts +16 -0
  136. package/dist/seed.d.ts.map +1 -0
  137. package/dist/seed.js +75 -0
  138. package/dist/shared.d.ts +15 -0
  139. package/dist/shared.d.ts.map +1 -0
  140. package/dist/shared.js +398 -0
  141. package/dist/status.d.ts +4 -0
  142. package/dist/status.d.ts.map +1 -1
  143. package/dist/store.d.ts +61 -12
  144. package/dist/store.d.ts.map +1 -1
  145. package/dist/store.js +580 -268
  146. package/dist/turn.d.ts +9 -0
  147. package/dist/turn.d.ts.map +1 -0
  148. package/dist/turn.js +64 -0
  149. package/dist/windows.d.ts +26 -0
  150. package/dist/windows.d.ts.map +1 -0
  151. package/dist/windows.js +93 -0
  152. package/dist/wire.d.ts +152 -32
  153. package/dist/wire.d.ts.map +1 -1
  154. package/dist/wire.js +52 -31
  155. package/package.json +12 -8
package/dist/overlay.js CHANGED
@@ -1,4 +1,6 @@
1
- import { apply, parse, serialize } from '@agentshouse/mdmodel';
1
+ import { apply, frontmatterValue, parse, serialize, } from '@agentshouse/mdmodel';
2
+ import { differences, drafted, patching, settling } from './shared.js';
3
+ import { ROW_WEIGHT } from './turn.js';
2
4
  export function acceptedBinaries(files) {
3
5
  return Object.fromEntries(Object.entries(files).map(([path, file]) => [path, { state: 'accepted', ...file }]));
4
6
  }
@@ -22,10 +24,13 @@ export function sameChange(left, right) {
22
24
  left.author?.name === right.author?.name);
23
25
  }
24
26
  const EMPTY_FRONTMATTER = '---\n---\n';
27
+ function isPart(change) {
28
+ return change.kind === 'field' || change.kind === 'section' || change.kind === 'preamble';
29
+ }
25
30
  function at(path, name) {
26
31
  return `${path} ${name}`;
27
32
  }
28
- function priorsOf(preconditions) {
33
+ function* priorsOf(preconditions) {
29
34
  const fields = new Map();
30
35
  const sections = new Map();
31
36
  const preambles = new Map();
@@ -39,6 +44,7 @@ function priorsOf(preconditions) {
39
44
  if (precondition.kind === 'preamble') {
40
45
  preambles.set(precondition.path, precondition.value);
41
46
  }
47
+ yield ROW_WEIGHT;
42
48
  }
43
49
  return {
44
50
  field: (path, name) => fields.get(at(path, name)),
@@ -54,51 +60,50 @@ function compose(fields, sections) {
54
60
  const opened = parse(skeleton);
55
61
  if (!opened.ok)
56
62
  return skeleton;
57
- let document = opened.document;
58
- for (const [name, value] of Object.entries(fields)) {
59
- const next = apply(document, { kind: 'field', name, value, prior: undefined });
60
- if (next.outcome === 'applied')
61
- document = next.document;
62
- }
63
- return serialize(document);
63
+ const next = apply(opened.document, Object.entries(fields).flatMap(([name, value]) => frontmatterValue(value) ? [{ kind: 'field', name, value, prior: undefined }] : []));
64
+ return serialize(next.outcome === 'applied' ? next.document : opened.document);
64
65
  }
65
- function edited(document, change, priors) {
66
- if (change.kind === 'field') {
67
- return apply(document, {
66
+ function edited(change, priors) {
67
+ if (change.kind === 'field')
68
+ return {
68
69
  kind: 'field',
69
70
  name: change.name,
70
71
  value: change.value,
71
72
  prior: priors.field(change.path, change.name),
72
- });
73
- }
74
- if (change.kind === 'preamble') {
75
- return apply(document, {
76
- kind: 'preamble',
77
- value: change.value,
78
- prior: priors.preamble(change.path),
79
- });
80
- }
81
- if (change.kind !== 'section')
82
- return null;
83
- return apply(document, {
73
+ };
74
+ if (change.kind === 'preamble')
75
+ return { kind: 'preamble', value: change.value, prior: priors.preamble(change.path) };
76
+ return {
84
77
  kind: 'section',
85
78
  name: change.name,
86
79
  value: change.value,
87
80
  prior: priors.section(change.path, change.name),
88
- });
81
+ };
89
82
  }
90
- function edit(staged, change, priors) {
91
- const text = staged.documents[change.path];
83
+ function edit(staged, changes, priors) {
84
+ const path = changes[0].path;
85
+ delete staged.revisions[path];
86
+ const text = staged.documents[path];
92
87
  if (text === undefined)
93
- return false;
94
- const parsed = parse(text, change.path);
88
+ return changes.length;
89
+ const parsed = parse(text, path);
95
90
  if (!parsed.ok)
96
- return false;
97
- const next = edited(parsed.document, change, priors);
98
- if (next?.outcome !== 'applied')
99
- return false;
100
- staged.documents[change.path] = serialize(next.document);
101
- return true;
91
+ return changes.length;
92
+ const wanted = changes.map((change) => edited(change, priors));
93
+ const first = apply(parsed.document, wanted);
94
+ if (first.outcome === 'refuse')
95
+ return changes.length;
96
+ if (first.outcome === 'applied') {
97
+ staged.documents[path] = serialize(first.document);
98
+ return 0;
99
+ }
100
+ const stale = new Set(first.stale);
101
+ const kept = wanted.filter((_, at) => !stale.has(at));
102
+ const rest = apply(parsed.document, kept);
103
+ if (rest.outcome !== 'applied')
104
+ return changes.length;
105
+ staged.documents[path] = serialize(rest.document);
106
+ return first.stale.length;
102
107
  }
103
108
  function relocate(staged, from, to) {
104
109
  const text = staged.documents[from];
@@ -118,32 +123,37 @@ function relocate(staged, from, to) {
118
123
  }
119
124
  function moveHead(heads, from, to) {
120
125
  const revision = heads.revisions[from];
126
+ const fileId = heads.fileIds[from];
121
127
  const change = heads.changes[from];
122
128
  delete heads.revisions[from];
129
+ delete heads.fileIds[from];
123
130
  delete heads.changes[from];
131
+ delete heads.fileIds[to];
124
132
  delete heads.changes[to];
125
133
  if (revision !== undefined)
126
134
  heads.revisions[to] = revision;
135
+ if (fileId !== undefined)
136
+ heads.fileIds[to] = fileId;
127
137
  if (change !== undefined)
128
138
  heads.changes[to] = change;
129
139
  }
130
140
  function erase(staged, path) {
131
141
  delete staged.documents[path];
132
142
  delete staged.revisions[path];
143
+ delete staged.fileIds[path];
133
144
  delete staged.changes[path];
134
145
  delete staged.binaries[path];
135
146
  }
136
- function stage(staged, change, priors) {
137
- if (change.kind === 'field' || change.kind === 'section' || change.kind === 'preamble') {
138
- return edit(staged, change, priors);
139
- }
147
+ function stage(staged, change) {
140
148
  if (change.kind === 'create') {
141
149
  staged.documents[change.path] =
142
150
  'content' in change ? change.content : compose(change.fields, change.sections);
151
+ delete staged.fileIds[change.path];
143
152
  delete staged.changes[change.path];
144
153
  return true;
145
154
  }
146
155
  if (change.kind === 'replace') {
156
+ delete staged.revisions[change.path];
147
157
  if (staged.documents[change.path] === undefined)
148
158
  return false;
149
159
  staged.documents[change.path] = change.content;
@@ -169,153 +179,187 @@ function stage(staged, change, priors) {
169
179
  erase(staged, change.path);
170
180
  return true;
171
181
  }
172
- export function overlay(base, queue, unapplied) {
182
+ export function* overlaying(base, queue, unapplied) {
173
183
  const staged = {
174
- documents: { ...base.documents },
175
- binaries: { ...base.binaries },
176
- revisions: { ...base.revisions },
177
- changes: { ...base.changes },
184
+ documents: drafted(base.documents),
185
+ binaries: drafted(base.binaries),
186
+ revisions: drafted(base.revisions),
187
+ fileIds: drafted(base.fileIds),
188
+ changes: drafted(base.changes),
178
189
  };
179
190
  for (const batch of queue) {
180
- const priors = priorsOf(batch.preconditions);
181
- for (const change of batch.changes) {
182
- if (!stage(staged, change, priors))
191
+ const priors = yield* priorsOf(batch.preconditions);
192
+ for (let index = 0; index < batch.changes.length; index += 1) {
193
+ const change = batch.changes[index];
194
+ if (!isPart(change)) {
195
+ if (!stage(staged, change))
196
+ unapplied?.();
197
+ yield ROW_WEIGHT;
198
+ continue;
199
+ }
200
+ const run = [change];
201
+ while (index + 1 < batch.changes.length) {
202
+ const next = batch.changes[index + 1];
203
+ if (!isPart(next) || next.path !== change.path)
204
+ break;
205
+ run.push(next);
206
+ index += 1;
207
+ }
208
+ const text = staged.documents[change.path] ?? '';
209
+ for (let left = edit(staged, run, priors); left > 0; left -= 1)
183
210
  unapplied?.();
211
+ yield ROW_WEIGHT + text.length;
184
212
  }
185
213
  }
186
214
  return {
187
- documents: staged.documents,
188
- binaries: staged.binaries,
189
- revisions: staged.revisions,
190
- changes: staged.changes,
215
+ documents: yield* settling(staged.documents),
216
+ binaries: yield* settling(staged.binaries),
217
+ revisions: yield* settling(staged.revisions),
218
+ fileIds: yield* settling(staged.fileIds),
219
+ changes: yield* settling(staged.changes),
191
220
  };
192
221
  }
193
- function pathsOf(batch) {
194
- return batch.changes.flatMap((change) => change.kind === 'move' ? [change.path, change.to] : [change.path]);
222
+ function* pathsOf(batch) {
223
+ const paths = new Set();
224
+ for (const change of batch.changes) {
225
+ paths.add(change.path);
226
+ if (change.kind === 'move')
227
+ paths.add(change.to);
228
+ yield ROW_WEIGHT;
229
+ }
230
+ return paths;
195
231
  }
196
- export function sameLayerText(left, right) {
197
- const paths = Object.keys(left.documents);
198
- return (paths.length === Object.keys(right.documents).length &&
199
- paths.every((path) => left.documents[path] === right.documents[path]) &&
200
- sameBinaries(left.binaries, right.binaries));
232
+ export function* sameText(left, right) {
233
+ return ((yield* differences(left.documents, right.documents)).size === 0 &&
234
+ (yield* differences(left.binaries, right.binaries, sameBinary)).size === 0);
201
235
  }
202
- function sameBinaries(left, right) {
203
- const paths = Object.keys(left);
204
- return (paths.length === Object.keys(right).length &&
205
- paths.every((path) => sameBinary(left[path], right[path])));
236
+ export function* changedPaths(left, right) {
237
+ return new Set([
238
+ ...(yield* differences(left.documents, right.documents)),
239
+ ...(yield* differences(left.revisions, right.revisions)),
240
+ ...(yield* differences(left.fileIds, right.fileIds)),
241
+ ...(yield* differences(left.changes, right.changes, sameChange)),
242
+ ...(yield* differences(left.binaries, right.binaries, sameBinary)),
243
+ ]);
206
244
  }
207
- function replayHeads(base, queue) {
208
- const heads = { revisions: { ...base.revisions }, changes: { ...base.changes } };
209
- for (const batch of queue) {
210
- for (const change of batch.changes) {
211
- if (change.kind === 'remove') {
212
- delete heads.revisions[change.path];
213
- delete heads.changes[change.path];
214
- }
215
- else if (change.kind === 'create') {
216
- delete heads.changes[change.path];
217
- }
218
- else if (change.kind === 'binary') {
219
- delete heads.revisions[change.path];
220
- delete heads.changes[change.path];
221
- }
222
- else if (change.kind === 'move') {
223
- moveHead(heads, change.path, change.to);
224
- }
245
+ function* sameItems(left, right) {
246
+ if (left.length !== right.length)
247
+ return false;
248
+ for (let index = 0; index < left.length; index += 1) {
249
+ const item = JSON.stringify(left[index]);
250
+ if (item !== JSON.stringify(right[index]))
251
+ return false;
252
+ yield ROW_WEIGHT + item.length;
253
+ }
254
+ return true;
255
+ }
256
+ function* sameBatch(left, right) {
257
+ if (left === right)
258
+ return true;
259
+ const { changes, preconditions, ...rest } = left;
260
+ const { changes: others, preconditions: priors, ...held } = right;
261
+ return (JSON.stringify(rest) === JSON.stringify(held) &&
262
+ (yield* sameItems(changes, others)) &&
263
+ (yield* sameItems(preconditions, priors)));
264
+ }
265
+ function* replayHeads(base, batch) {
266
+ const heads = {
267
+ revisions: drafted(base.revisions),
268
+ fileIds: drafted(base.fileIds),
269
+ changes: drafted(base.changes),
270
+ };
271
+ for (const change of batch.changes) {
272
+ if (change.kind === 'remove') {
273
+ delete heads.revisions[change.path];
274
+ delete heads.fileIds[change.path];
275
+ delete heads.changes[change.path];
225
276
  }
277
+ else if (change.kind === 'create') {
278
+ delete heads.fileIds[change.path];
279
+ delete heads.changes[change.path];
280
+ }
281
+ else if (change.kind === 'replace' ||
282
+ change.kind === 'field' ||
283
+ change.kind === 'section' ||
284
+ change.kind === 'preamble') {
285
+ delete heads.revisions[change.path];
286
+ }
287
+ else if (change.kind === 'binary') {
288
+ delete heads.revisions[change.path];
289
+ delete heads.changes[change.path];
290
+ }
291
+ else if (change.kind === 'move') {
292
+ moveHead(heads, change.path, change.to);
293
+ }
294
+ yield ROW_WEIGHT;
226
295
  }
227
- return heads;
296
+ return {
297
+ revisions: yield* settling(heads.revisions),
298
+ fileIds: yield* settling(heads.fileIds),
299
+ changes: yield* settling(heads.changes),
300
+ };
228
301
  }
229
- export function overlayChanged(base, queue, previousBase, previousQueue, previousVisible) {
230
- const before = previousQueue.map((batch) => JSON.stringify(batch));
231
- const after = queue.map((batch) => JSON.stringify(batch));
232
- if (before.length === after.length &&
233
- before.every((id, index) => id === after[index]) &&
234
- sameLayerText(base, previousBase)) {
302
+ function* repatched(held, paths, value) {
303
+ const set = [];
304
+ const removed = [];
305
+ for (const path of paths) {
306
+ const found = value(path);
307
+ if (found === undefined)
308
+ removed.push(path);
309
+ else
310
+ set.push([path, found]);
311
+ yield ROW_WEIGHT;
312
+ }
313
+ return yield* patching(held, set, removed);
314
+ }
315
+ export function* overlayChanged(base, batch, previousBase, previousBatch, previousVisible) {
316
+ const same = yield* sameBatch(batch, previousBatch);
317
+ if (same && (yield* sameText(base, previousBase))) {
235
318
  return {
236
319
  documents: previousVisible.documents,
237
320
  binaries: previousVisible.binaries,
238
- ...replayHeads(base, queue),
321
+ ...(yield* replayHeads(base, batch)),
239
322
  };
240
323
  }
241
- const affected = new Set();
242
- const paths = new Set([
243
- ...Object.keys(base.documents),
244
- ...Object.keys(previousBase.documents),
245
- ...Object.keys(base.revisions),
246
- ...Object.keys(previousBase.revisions),
247
- ...Object.keys(base.changes),
248
- ...Object.keys(previousBase.changes),
249
- ...Object.keys(base.binaries),
250
- ...Object.keys(previousBase.binaries),
251
- ]);
252
- for (const path of paths) {
253
- if (base.documents[path] !== previousBase.documents[path] ||
254
- base.revisions[path] !== previousBase.revisions[path] ||
255
- !sameChange(base.changes[path], previousBase.changes[path]) ||
256
- !sameBinary(base.binaries[path], previousBase.binaries[path]))
324
+ const affected = new Set(yield* changedPaths(base, previousBase));
325
+ const touched = yield* pathsOf(batch);
326
+ let replayed = !same;
327
+ if (replayed)
328
+ for (const path of yield* pathsOf(previousBatch))
257
329
  affected.add(path);
330
+ for (const path of touched) {
331
+ if (affected.has(path))
332
+ replayed = true;
333
+ yield ROW_WEIGHT;
258
334
  }
259
- const oldIds = new Set(before);
260
- const newIds = new Set(after);
261
- for (const batch of previousQueue) {
262
- if (!newIds.has(JSON.stringify(batch)))
263
- for (const path of pathsOf(batch))
264
- affected.add(path);
265
- }
266
- for (const batch of queue) {
267
- if (!oldIds.has(JSON.stringify(batch)))
268
- for (const path of pathsOf(batch))
269
- affected.add(path);
270
- }
271
- let expanded = true;
272
- while (expanded) {
273
- expanded = false;
274
- for (const batch of queue) {
275
- const touched = pathsOf(batch);
276
- if (!touched.some((path) => affected.has(path)))
277
- continue;
278
- for (const path of touched) {
279
- if (affected.has(path))
280
- continue;
281
- affected.add(path);
282
- expanded = true;
283
- }
284
- }
285
- }
286
- const documents = {};
287
- const revisions = {};
288
- const changes = {};
289
- const binaries = {};
290
- for (const path of affected) {
335
+ const restricted = {
336
+ documents: {},
337
+ revisions: {},
338
+ fileIds: {},
339
+ changes: {},
340
+ binaries: {},
341
+ };
342
+ for (const path of replayed ? touched : []) {
343
+ affected.add(path);
291
344
  if (base.documents[path] !== undefined)
292
- documents[path] = base.documents[path];
345
+ restricted.documents[path] = base.documents[path];
293
346
  if (base.revisions[path] !== undefined)
294
- revisions[path] = base.revisions[path];
347
+ restricted.revisions[path] = base.revisions[path];
348
+ if (base.fileIds[path] !== undefined)
349
+ restricted.fileIds[path] = base.fileIds[path];
295
350
  if (base.changes[path] !== undefined)
296
- changes[path] = base.changes[path];
351
+ restricted.changes[path] = base.changes[path];
297
352
  if (base.binaries[path] !== undefined)
298
- binaries[path] = base.binaries[path];
299
- }
300
- const staged = overlay({ documents, revisions, changes, binaries }, queue.filter((batch) => pathsOf(batch).some((path) => affected.has(path))));
301
- const mergedDocuments = { ...previousVisible.documents };
302
- const mergedRevisions = { ...previousVisible.revisions };
303
- const mergedChanges = { ...previousVisible.changes };
304
- const mergedBinaries = { ...previousVisible.binaries };
305
- for (const path of affected) {
306
- delete mergedDocuments[path];
307
- delete mergedRevisions[path];
308
- delete mergedChanges[path];
309
- delete mergedBinaries[path];
353
+ restricted.binaries[path] = base.binaries[path];
354
+ yield ROW_WEIGHT;
310
355
  }
311
- Object.assign(mergedDocuments, staged.documents);
312
- Object.assign(mergedRevisions, staged.revisions);
313
- Object.assign(mergedChanges, staged.changes);
314
- Object.assign(mergedBinaries, staged.binaries);
356
+ const staged = replayed ? yield* overlaying(restricted, [batch]) : base;
357
+ const from = (path) => (touched.has(path) ? staged : base);
315
358
  return {
316
- documents: mergedDocuments,
317
- revisions: mergedRevisions,
318
- changes: mergedChanges,
319
- binaries: mergedBinaries,
359
+ documents: yield* repatched(previousVisible.documents, affected, (path) => from(path).documents[path]),
360
+ revisions: yield* repatched(previousVisible.revisions, affected, (path) => from(path).revisions[path]),
361
+ fileIds: yield* repatched(previousVisible.fileIds, affected, (path) => from(path).fileIds[path]),
362
+ changes: yield* repatched(previousVisible.changes, affected, (path) => from(path).changes[path]),
363
+ binaries: yield* repatched(previousVisible.binaries, affected, (path) => from(path).binaries[path]),
320
364
  };
321
365
  }
package/dist/query.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { type Definition } from '@agentshouse/mdmodel';
2
2
  import type { HeadChange } from './adapter.js';
3
3
  import type { BinaryFileRecord } from './binary.js';
4
+ import type { Open } from './open.js';
4
5
  export type Value = string | number | boolean | null;
5
6
  export type Predicate = Value | {
6
7
  $eq: Value;
@@ -37,6 +38,8 @@ export type Filter = {
37
38
  types?: readonly string[];
38
39
  where?: Where;
39
40
  pathPrefix?: string;
41
+ folder?: string;
42
+ paths?: readonly string[];
40
43
  hop?: Related & {
41
44
  field: string;
42
45
  };
@@ -44,7 +47,7 @@ export type Filter = {
44
47
  field?: string;
45
48
  };
46
49
  };
47
- export type Key = 'room' | 'path' | 'type' | {
50
+ export type Key = 'room' | 'path' | 'type' | 'folder' | {
48
51
  field: string;
49
52
  };
50
53
  export type Select = 'all' | {
@@ -54,6 +57,7 @@ export type Select = 'all' | {
54
57
  markdown?: true;
55
58
  backlinks?: true;
56
59
  change?: true;
60
+ fileId?: true;
57
61
  };
58
62
  export type OrderOptions = {
59
63
  nulls?: 'first' | 'last';
@@ -69,6 +73,8 @@ export type DocumentQuery = Filter & {
69
73
  direction?: Direction;
70
74
  } & OrderOptions)[];
71
75
  limit?: number;
76
+ after?: string;
77
+ total?: true;
72
78
  };
73
79
  export type GroupQuery = Filter & {
74
80
  groupBy: readonly Exclude<Key, 'path'>[];
@@ -77,6 +83,8 @@ export type GroupQuery = Filter & {
77
83
  direction?: Direction;
78
84
  }[];
79
85
  limit?: number;
86
+ after?: string;
87
+ total?: true;
80
88
  };
81
89
  export type LocalQuery = DocumentQuery | GroupQuery;
82
90
  export type Backlink = {
@@ -94,19 +102,49 @@ export type QueryDocument = {
94
102
  markdown?: string;
95
103
  backlinks?: readonly Backlink[];
96
104
  change?: HeadChange | null;
105
+ fileId?: string | null;
97
106
  binaryFile?: BinaryFileRecord;
98
107
  };
99
108
  export type QueryGroup = {
100
109
  key: readonly unknown[];
101
110
  count: number;
102
111
  };
103
- export type DocumentResult = {
112
+ export type CoveredRoom = {
113
+ room: string;
114
+ generation: string;
115
+ current: boolean;
116
+ };
117
+ export type QueryCoverage = {
118
+ rooms: readonly CoveredRoom[];
119
+ indexes: readonly string[];
120
+ overlay: readonly string[];
121
+ };
122
+ export type Awaits = Open<'acquisition' | 'preparation' | 'index'>;
123
+ export type PendingRoom = {
124
+ room: string;
125
+ awaits: Awaits;
126
+ };
127
+ export type PendingResult = {
128
+ pending: readonly PendingRoom[];
129
+ };
130
+ export type DocumentRows = {
104
131
  documents: readonly QueryDocument[];
132
+ next?: string;
133
+ total?: number;
105
134
  };
106
- export type GroupResult = {
135
+ export type GroupRows = {
107
136
  groups: readonly QueryGroup[];
137
+ next?: string;
138
+ total?: number;
139
+ };
140
+ export type QueryRows = DocumentRows | GroupRows;
141
+ export type DocumentResult = DocumentRows & {
142
+ coverage: QueryCoverage;
143
+ };
144
+ export type GroupResult = GroupRows & {
145
+ coverage: QueryCoverage;
108
146
  };
109
- export type QueryResult = DocumentResult | GroupResult;
147
+ export type QueryResult = DocumentResult | GroupResult | PendingResult;
110
148
  export type QueryErrorCode = 'invalid-query' | 'unknown-type' | 'unknown-field' | 'wrong-kind';
111
149
  export type RoomFacts = {
112
150
  locator: string;
@@ -161,6 +199,8 @@ export type KeyPlan = {
161
199
  of: 'path';
162
200
  } | {
163
201
  of: 'type';
202
+ } | {
203
+ of: 'folder';
164
204
  } | {
165
205
  of: 'field';
166
206
  field: string;
@@ -173,6 +213,7 @@ export type DocumentShape = {
173
213
  markdown: boolean;
174
214
  backlinks: boolean;
175
215
  change: boolean;
216
+ fileId: boolean;
176
217
  orderBy: readonly {
177
218
  key: KeyPlan;
178
219
  options: OrderOptions & {
@@ -192,10 +233,17 @@ export type PlanReach = {
192
233
  rooms: readonly string[];
193
234
  documents: readonly string[];
194
235
  };
236
+ export type Continuation = {
237
+ text: string;
238
+ values: readonly unknown[] | null;
239
+ };
195
240
  export type Plan = {
241
+ key: string;
196
242
  rooms: readonly string[] | null;
197
243
  reach: PlanReach | null;
198
244
  root: Scope;
245
+ folder: string | null;
246
+ paths: readonly string[] | null;
199
247
  hop: (Scope & {
200
248
  field: string;
201
249
  }) | null;
@@ -204,6 +252,8 @@ export type Plan = {
204
252
  }) | null;
205
253
  shape: DocumentShape | GroupShape;
206
254
  limit: number | null;
255
+ after: Continuation | null;
256
+ total: boolean;
207
257
  };
208
258
  export declare class QueryError extends Error {
209
259
  readonly code: QueryErrorCode;
@@ -214,9 +264,11 @@ type Entries = Readonly<Record<string, unknown>>;
214
264
  export declare function invalid(at: string, problem: string): never;
215
265
  export declare function plain(value: unknown): value is Entries;
216
266
  export declare function known(value: Entries, allowed: readonly string[], at: string): void;
267
+ export declare function flag(input: unknown, at: string): boolean;
217
268
  export declare function planOf(input: unknown, facts: HeldRooms, reach?: PlanReach | null): Plan;
218
269
  export declare function limitOf(input: unknown): number | null;
219
270
  export declare function filterOf(input: unknown, facts: HeldRooms, reach?: PlanReach | null): Plan;
271
+ export declare function queryKey(query: unknown): string;
220
272
  export declare function identityOf(plan: Plan): string;
221
273
  export {};
222
274
  //# sourceMappingURL=query.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}