@agentshouse/mdruntime 0.1.0-c2aaa9c0e3ca4 → 0.1.0-c2c52158b7381

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. package/AGENTS.md +285 -276
  2. package/README.md +9 -8
  3. package/dist/adapter.d.ts +80 -21
  4. package/dist/adapter.d.ts.map +1 -1
  5. package/dist/attached-model.d.ts +4 -1
  6. package/dist/attached-model.d.ts.map +1 -1
  7. package/dist/attached-model.js +13 -3
  8. package/dist/attempt.d.ts.map +1 -1
  9. package/dist/attempt.js +14 -1
  10. package/dist/bootstrap.d.ts +3 -2
  11. package/dist/bootstrap.d.ts.map +1 -1
  12. package/dist/bootstrap.js +83 -26
  13. package/dist/change-set.d.ts +7 -2
  14. package/dist/change-set.d.ts.map +1 -1
  15. package/dist/change-set.js +37 -10
  16. package/dist/change.d.ts +31 -1
  17. package/dist/change.d.ts.map +1 -1
  18. package/dist/change.js +10 -1
  19. package/dist/chat/acts.d.ts +3 -4
  20. package/dist/chat/acts.d.ts.map +1 -1
  21. package/dist/chat/acts.js +10 -10
  22. package/dist/chat/earlier.d.ts +10 -0
  23. package/dist/chat/earlier.d.ts.map +1 -0
  24. package/dist/chat/earlier.js +54 -0
  25. package/dist/chat/house.d.ts +25 -0
  26. package/dist/chat/house.d.ts.map +1 -0
  27. package/dist/chat/house.js +38 -0
  28. package/dist/chat/input.d.ts +3 -1
  29. package/dist/chat/input.d.ts.map +1 -1
  30. package/dist/chat/input.js +11 -18
  31. package/dist/chat/kit.d.ts +2 -1
  32. package/dist/chat/kit.d.ts.map +1 -1
  33. package/dist/chat/kit.js +3 -3
  34. package/dist/chat/list.d.ts +9 -1
  35. package/dist/chat/list.d.ts.map +1 -1
  36. package/dist/chat/list.js +53 -9
  37. package/dist/chat/markdown.d.ts +3 -1
  38. package/dist/chat/markdown.d.ts.map +1 -1
  39. package/dist/chat/markdown.js +85 -26
  40. package/dist/chat/message.d.ts +1 -0
  41. package/dist/chat/message.d.ts.map +1 -1
  42. package/dist/chat/message.js +57 -12
  43. package/dist/chat/messages.d.ts +9 -1
  44. package/dist/chat/messages.d.ts.map +1 -1
  45. package/dist/chat/messages.js +67 -28
  46. package/dist/chat/name.d.ts +1 -0
  47. package/dist/chat/name.d.ts.map +1 -1
  48. package/dist/chat/name.js +1 -1
  49. package/dist/chat/opened.d.ts +1 -0
  50. package/dist/chat/opened.d.ts.map +1 -1
  51. package/dist/chat/opened.js +2 -0
  52. package/dist/chat/overlay.d.ts +1 -0
  53. package/dist/chat/overlay.d.ts.map +1 -1
  54. package/dist/chat/overlay.js +11 -5
  55. package/dist/chat/parts.d.ts +1 -0
  56. package/dist/chat/parts.d.ts.map +1 -1
  57. package/dist/chat/parts.js +3 -2
  58. package/dist/chat/pieces.d.ts +62 -0
  59. package/dist/chat/pieces.d.ts.map +1 -0
  60. package/dist/chat/pieces.js +1110 -0
  61. package/dist/chat/provider.d.ts +7 -2
  62. package/dist/chat/provider.d.ts.map +1 -1
  63. package/dist/chat/provider.js +129 -155
  64. package/dist/chat/question.d.ts +1 -1
  65. package/dist/chat/question.d.ts.map +1 -1
  66. package/dist/chat/question.js +7 -18
  67. package/dist/chat/ready.d.ts +5 -1
  68. package/dist/chat/ready.d.ts.map +1 -1
  69. package/dist/chat/ready.js +9 -7
  70. package/dist/chat/room-file.d.ts +8 -0
  71. package/dist/chat/room-file.d.ts.map +1 -0
  72. package/dist/chat/room-file.js +72 -0
  73. package/dist/chat/steady.d.ts +3 -0
  74. package/dist/chat/steady.d.ts.map +1 -0
  75. package/dist/chat/steady.js +26 -0
  76. package/dist/chat/style.d.ts.map +1 -1
  77. package/dist/chat/style.js +8 -4
  78. package/dist/chat.d.ts +3 -2
  79. package/dist/chat.d.ts.map +1 -1
  80. package/dist/chat.js +2 -2
  81. package/dist/client.d.ts +21 -9
  82. package/dist/client.d.ts.map +1 -1
  83. package/dist/client.js +47 -8
  84. package/dist/collection.d.ts +21 -6
  85. package/dist/collection.d.ts.map +1 -1
  86. package/dist/collection.js +332 -40
  87. package/dist/connection.d.ts +39 -11
  88. package/dist/connection.d.ts.map +1 -1
  89. package/dist/connection.js +2294 -492
  90. package/dist/conversation.d.ts +28 -9
  91. package/dist/conversation.d.ts.map +1 -1
  92. package/dist/conversation.js +500 -165
  93. package/dist/digest.d.ts +7 -0
  94. package/dist/digest.d.ts.map +1 -0
  95. package/dist/digest.js +113 -0
  96. package/dist/durability.d.ts +8 -1
  97. package/dist/durability.d.ts.map +1 -1
  98. package/dist/entry.d.ts +18 -0
  99. package/dist/entry.d.ts.map +1 -0
  100. package/dist/entry.js +157 -0
  101. package/dist/fence.d.ts +6 -0
  102. package/dist/fence.d.ts.map +1 -0
  103. package/dist/fence.js +10 -0
  104. package/dist/file.d.ts +2 -10
  105. package/dist/file.d.ts.map +1 -1
  106. package/dist/file.js +3 -120
  107. package/dist/host.d.ts +15 -3
  108. package/dist/host.d.ts.map +1 -1
  109. package/dist/host.js +103 -13
  110. package/dist/identity.d.ts +2 -0
  111. package/dist/identity.d.ts.map +1 -1
  112. package/dist/identity.js +6 -0
  113. package/dist/index.d.ts +15 -9
  114. package/dist/index.d.ts.map +1 -1
  115. package/dist/index.js +5 -0
  116. package/dist/memory.d.ts +8 -2
  117. package/dist/memory.d.ts.map +1 -1
  118. package/dist/memory.js +43 -12
  119. package/dist/model.d.ts +4 -2
  120. package/dist/model.d.ts.map +1 -1
  121. package/dist/model.js +10 -1
  122. package/dist/name.d.ts +4 -0
  123. package/dist/name.d.ts.map +1 -0
  124. package/dist/name.js +122 -0
  125. package/dist/observation.d.ts +7 -2
  126. package/dist/observation.d.ts.map +1 -1
  127. package/dist/observation.js +29 -12
  128. package/dist/opened.d.ts +22 -0
  129. package/dist/opened.d.ts.map +1 -0
  130. package/dist/opened.js +107 -0
  131. package/dist/outcome.d.ts +39 -4
  132. package/dist/outcome.d.ts.map +1 -1
  133. package/dist/outcome.js +29 -0
  134. package/dist/overlay.d.ts +6 -4
  135. package/dist/overlay.d.ts.map +1 -1
  136. package/dist/overlay.js +229 -161
  137. package/dist/query.d.ts +57 -4
  138. package/dist/query.d.ts.map +1 -1
  139. package/dist/query.js +37 -7
  140. package/dist/reach.d.ts +11 -4
  141. package/dist/reach.d.ts.map +1 -1
  142. package/dist/reach.js +192 -41
  143. package/dist/react.d.ts +8 -6
  144. package/dist/react.d.ts.map +1 -1
  145. package/dist/react.js +7 -17
  146. package/dist/read-side.d.ts +18 -9
  147. package/dist/read-side.d.ts.map +1 -1
  148. package/dist/read-side.js +894 -155
  149. package/dist/readiness.d.ts +53 -0
  150. package/dist/readiness.d.ts.map +1 -0
  151. package/dist/readiness.js +33 -0
  152. package/dist/reads.d.ts +11 -0
  153. package/dist/reads.d.ts.map +1 -0
  154. package/dist/reads.js +98 -0
  155. package/dist/recovery.d.ts +25 -0
  156. package/dist/recovery.d.ts.map +1 -0
  157. package/dist/recovery.js +198 -0
  158. package/dist/refresh.d.ts +4 -4
  159. package/dist/refresh.d.ts.map +1 -1
  160. package/dist/refresh.js +46 -20
  161. package/dist/replica.d.ts +12 -7
  162. package/dist/replica.d.ts.map +1 -1
  163. package/dist/replica.js +151 -64
  164. package/dist/room-draft.d.ts +16 -2
  165. package/dist/room-draft.d.ts.map +1 -1
  166. package/dist/room-draft.js +32 -25
  167. package/dist/rows.d.ts +6 -13
  168. package/dist/rows.d.ts.map +1 -1
  169. package/dist/rows.js +10 -13
  170. package/dist/save.d.ts +52 -10
  171. package/dist/save.d.ts.map +1 -1
  172. package/dist/save.js +519 -159
  173. package/dist/search.d.ts +49 -6
  174. package/dist/search.d.ts.map +1 -1
  175. package/dist/search.js +242 -46
  176. package/dist/seed.d.ts +16 -0
  177. package/dist/seed.d.ts.map +1 -0
  178. package/dist/seed.js +75 -0
  179. package/dist/shared.d.ts +19 -0
  180. package/dist/shared.d.ts.map +1 -0
  181. package/dist/shared.js +461 -0
  182. package/dist/status.d.ts +4 -0
  183. package/dist/status.d.ts.map +1 -1
  184. package/dist/store.d.ts +61 -17
  185. package/dist/store.d.ts.map +1 -1
  186. package/dist/store.js +581 -310
  187. package/dist/tables.d.ts +242 -0
  188. package/dist/tables.d.ts.map +1 -0
  189. package/dist/tables.js +406 -0
  190. package/dist/turn.d.ts +9 -0
  191. package/dist/turn.d.ts.map +1 -0
  192. package/dist/turn.js +67 -0
  193. package/dist/windows.d.ts +21 -0
  194. package/dist/windows.d.ts.map +1 -0
  195. package/dist/windows.js +84 -0
  196. package/dist/wire.d.ts +168 -32
  197. package/dist/wire.d.ts.map +1 -1
  198. package/dist/wire.js +56 -31
  199. package/package.json +10 -2
@@ -1,6 +1,10 @@
1
- import { parse, validate, VERSION, } from '@agentshouse/mdmodel';
1
+ import { checkDocument, parseFrontmatter, references, sectionReferences, target, parse, resolves, validating, VERSION, } from '@agentshouse/mdmodel';
2
2
  import { beneath, normalize } from './paths.js';
3
+ import { sameTyping } from './model.js';
4
+ import { differences, entriesIn, keysIn, patched, patching, shared, sizeOf, sortedKeys, } from './shared.js';
5
+ import { after, finished, inUnits, ROW_WEIGHT } from './turn.js';
3
6
  export const MD_MODEL = { identity: '@agentshouse/mdmodel', version: VERSION };
7
+ const REFERENCE_WEIGHT = 4 * ROW_WEIGHT;
4
8
  const NO_TYPES = { types: {} };
5
9
  function selected(composition, path) {
6
10
  return (composition.selection !== null &&
@@ -12,46 +16,62 @@ export function governing(composition, path) {
12
16
  : composition.model;
13
17
  }
14
18
  const parsedIn = new WeakMap();
19
+ function* carried(previous, text) {
20
+ const held = parsedIn.get(previous);
21
+ if (held === undefined)
22
+ return shared({});
23
+ const kept = yield* patching(held.base, held.added);
24
+ held.base = kept;
25
+ held.added = new Map();
26
+ return yield* patching(kept, [], yield* differences(previous.text, text));
27
+ }
28
+ function cachedIn(collection, path) {
29
+ const held = parsedIn.get(collection);
30
+ if (held === undefined)
31
+ return undefined;
32
+ if (held.added.has(path))
33
+ return held.added.get(path);
34
+ return Object.hasOwn(held.base, path) ? held.base[path] : undefined;
35
+ }
15
36
  export function collectionOf(text, composition, previous) {
16
- const parsed = new Map();
17
- if (previous !== undefined) {
18
- for (const [path, held] of parsedIn.get(previous) ?? []) {
19
- if (previous.text[path] === text[path])
20
- parsed.set(path, held);
21
- }
22
- }
37
+ return finished(collecting(text, composition, previous));
38
+ }
39
+ export function* collecting(text, composition, previous) {
40
+ const parsed = {
41
+ base: previous === undefined ? shared({}) : yield* carried(previous, text),
42
+ added: new Map(),
43
+ };
23
44
  const collection = {
24
45
  text,
25
46
  composition,
26
47
  document(path) {
27
- const held = parsed.get(path);
48
+ const held = cachedIn(collection, path);
28
49
  if (held !== undefined)
29
50
  return held ?? undefined;
30
51
  const content = text[path];
31
52
  if (content === undefined)
32
53
  return undefined;
33
54
  const read = parse(content, path);
34
- parsed.set(path, read.ok ? read.document : null);
55
+ parsed.added.set(path, read.ok ? read.document : null);
35
56
  return read.ok ? read.document : undefined;
36
57
  },
37
58
  };
38
59
  parsedIn.set(collection, parsed);
39
60
  return collection;
40
61
  }
41
- export function passingDocument(collection, path) {
42
- const held = parsedIn.get(collection)?.get(path);
62
+ export function passingFrontmatter(collection, path) {
63
+ const held = cachedIn(collection, path);
43
64
  if (held !== undefined)
44
65
  return held ?? undefined;
45
66
  const content = collection.text[path];
46
67
  if (content === undefined)
47
68
  return undefined;
48
- const read = parse(content, path);
49
- return read.ok ? read.document : undefined;
69
+ const read = parseFrontmatter(content, path);
70
+ return read.ok ? read.frontmatter : undefined;
50
71
  }
51
- export function* documentsOf(collection) {
52
- const parsed = parsedIn.get(collection);
53
- for (const path of Object.keys(collection.text).sort()) {
54
- const held = parsed?.get(path);
72
+ function* readIn(collection, paths) {
73
+ for (const path of paths) {
74
+ const held = cachedIn(collection, path);
55
75
  if (held === null)
56
76
  continue;
57
77
  if (held !== undefined) {
@@ -63,47 +83,319 @@ export function* documentsOf(collection) {
63
83
  yield [path, read.document];
64
84
  }
65
85
  }
66
- export function unreadable(text, previous) {
67
- for (const path of Object.keys(text).sort()) {
68
- if (previous?.[path] === text[path])
86
+ export function* documentsOf(collection) {
87
+ return readIn(collection, yield* sortedKeys(collection.text));
88
+ }
89
+ export function* unreadable(text, previous) {
90
+ const paths = previous === undefined ? yield* keysIn(text) : yield* differences(previous, text);
91
+ let least = null;
92
+ for (const path of paths) {
93
+ const content = text[path];
94
+ if (content === undefined)
69
95
  continue;
70
- const read = parse(text[path], path);
71
- if (!read.ok)
72
- return { kind: 'refused', refusal: read.refusal };
96
+ const read = parse(content, path);
97
+ if (!read.ok && (least === null || path < least.path)) {
98
+ least = { path, refused: { kind: 'refused', refusal: read.refusal } };
99
+ }
100
+ yield ROW_WEIGHT + content.length;
73
101
  }
74
- return null;
102
+ return least?.refused ?? null;
75
103
  }
76
104
  export function validRoot(root) {
77
105
  return typeof root === 'string' && normalize(root) === root;
78
106
  }
79
- function validateAgainst(documents, binaryTargets, model) {
107
+ function* validateAgainst(documents, binaryTargets, model) {
80
108
  if (model.status === 'unavailable') {
81
- const typed = Object.entries(documents).find(([, content]) => {
109
+ for (const [path, content] of documents) {
82
110
  const parsed = parse(content);
83
- return parsed.ok && parsed.document.type !== undefined && parsed.document.type !== 'any';
84
- });
85
- if (typed !== undefined)
86
- return { verdict: 'refuse', rule: 'model-unavailable', file: typed[0] };
111
+ if (parsed.ok && parsed.document.type !== undefined && parsed.document.type !== 'any')
112
+ return { verdict: 'refuse', rule: 'model-unavailable', file: path };
113
+ yield ROW_WEIGHT + content.length;
114
+ }
115
+ }
116
+ const steps = validating(documents, { binaryTargets, anyRoom: true }, model.status === 'unavailable' ? NO_TYPES : { types: model.types });
117
+ for (let step = steps.next();; step = steps.next()) {
118
+ if (step.done === true)
119
+ return step.value;
120
+ const { path, resolved } = step.value;
121
+ yield ROW_WEIGHT + documents.get(path).length + REFERENCE_WEIGHT * resolved;
87
122
  }
88
- return validate(documents, { binaryTargets }, model.status === 'unavailable' ? NO_TYPES : { types: model.types });
89
123
  }
90
- export function validateCollection(text, binaryTargets, composition) {
91
- const collection = {};
92
- const selection = {};
93
- for (const [path, content] of Object.entries(text)) {
124
+ export function* validateCollection(text, binaryTargets, composition) {
125
+ const collection = new Map();
126
+ const selection = new Map();
127
+ for (const [path, content] of entriesIn(text)) {
94
128
  if (selected(composition, path))
95
- selection[path] = content;
129
+ selection.set(path, content);
96
130
  else
97
- collection[path] = content;
131
+ collection.set(path, content);
132
+ yield ROW_WEIGHT;
98
133
  }
99
134
  const verdicts = [
100
- validateAgainst(collection, binaryTargets.filter((path) => !selected(composition, path)), composition.model),
135
+ yield* validateAgainst(collection, binaryTargets.filter((path) => !selected(composition, path)), composition.model),
101
136
  ];
102
137
  if (composition.selection !== null) {
103
- verdicts.push(validateAgainst(selection, binaryTargets.filter((path) => selected(composition, path)), composition.selection.model));
138
+ verdicts.push(yield* validateAgainst(selection, binaryTargets.filter((path) => selected(composition, path)), composition.selection.model));
104
139
  }
105
140
  const refusals = verdicts.filter((verdict) => verdict.verdict === 'refuse');
106
141
  if (refusals.length === 0)
107
142
  return verdicts[0];
108
143
  return refusals.find((refusal) => refusal.rule !== 'model-unavailable') ?? refusals[0];
109
144
  }
145
+ const NO_REFERRERS = shared({});
146
+ const referrersOf = new WeakMap();
147
+ function typing(left, right) {
148
+ return (sameTyping(left.model, right.model) &&
149
+ (left.selection === null || right.selection === null
150
+ ? left.selection === right.selection
151
+ : sameTyping(left.selection.model, right.selection.model)) &&
152
+ JSON.stringify(left.selection?.roots ?? null) === JSON.stringify(right.selection?.roots ?? null));
153
+ }
154
+ function declared(content) {
155
+ if (content === undefined)
156
+ return undefined;
157
+ const read = parseFrontmatter(content);
158
+ return read.ok ? (read.frontmatter.type ?? 'any') : undefined;
159
+ }
160
+ function typedIn(content) {
161
+ const type = declared(content);
162
+ return type !== undefined && type !== 'any';
163
+ }
164
+ function modelOf(composition, path) {
165
+ const model = governing(composition, path);
166
+ return model.status === 'unavailable' ? null : { types: model.types };
167
+ }
168
+ function checked(path, content, composition) {
169
+ return checkDocument(path, content, modelOf(composition, path) ?? NO_TYPES, { anyRoom: true });
170
+ }
171
+ function resolvedBy(check) {
172
+ return check.ok ? check.references.length : 0;
173
+ }
174
+ function targetsOf(check) {
175
+ if (!check.ok)
176
+ return [];
177
+ return [...new Set(check.references.flatMap(({ target }) => (target === null ? [] : [target])))];
178
+ }
179
+ function referencedBy(path, content, composition) {
180
+ const model = modelOf(composition, path);
181
+ if (model === null)
182
+ return [];
183
+ const read = parseFrontmatter(content, path);
184
+ const type = read.ok ? read.frontmatter.type : undefined;
185
+ if (!read.ok || type === undefined || !Object.hasOwn(model.types, type))
186
+ return [];
187
+ const definition = model.types[type];
188
+ return [
189
+ ...new Set([
190
+ ...references(read.frontmatter, definition).flatMap(({ value }) => {
191
+ const found = target(path, value);
192
+ return found === null ? [] : [found];
193
+ }),
194
+ ...sectionReferences(path, content, definition).flatMap(({ target }) => target === null ? [] : [target]),
195
+ ]),
196
+ ];
197
+ }
198
+ function referrersOfTarget(index, target) {
199
+ return Object.hasOwn(index.referrers, target) ? index.referrers[target] : NO_REFERRERS;
200
+ }
201
+ function* reindexed(index, changed) {
202
+ const moved = new Map();
203
+ const movesOf = (target) => {
204
+ const held = moved.get(target) ?? { gained: [], lost: [] };
205
+ moved.set(target, held);
206
+ return held;
207
+ };
208
+ const targeting = [];
209
+ const targetless = [];
210
+ for (const [path, found] of changed) {
211
+ const before = Object.hasOwn(index.targets, path) ? index.targets[path] : [];
212
+ for (const target of before)
213
+ if (!found.includes(target))
214
+ movesOf(target).lost.push(path);
215
+ for (const target of found) {
216
+ if (!before.includes(target))
217
+ movesOf(target).gained.push([path, true]);
218
+ }
219
+ if (found.length > 0)
220
+ targeting.push([path, found]);
221
+ else
222
+ targetless.push(path);
223
+ yield ROW_WEIGHT * (1 + before.length + found.length);
224
+ }
225
+ const referred = [];
226
+ const unreferred = [];
227
+ for (const [target, { gained, lost }] of moved) {
228
+ const files = yield* patching(referrersOfTarget(index, target), gained, lost);
229
+ if (sizeOf(files) > 0)
230
+ referred.push([target, files]);
231
+ else
232
+ unreferred.push(target);
233
+ }
234
+ return {
235
+ composition: index.composition,
236
+ targets: yield* patching(index.targets, targeting, targetless),
237
+ referrers: yield* patching(index.referrers, referred, unreferred),
238
+ };
239
+ }
240
+ function storedIn(entries) {
241
+ let stored = shared({});
242
+ let unit = [];
243
+ return after(inUnits(entries, (entry) => {
244
+ unit.push(entry);
245
+ return ROW_WEIGHT;
246
+ }, () => {
247
+ stored = patched(stored, unit);
248
+ unit = [];
249
+ }), () => stored);
250
+ }
251
+ function storedReferrers(referrers) {
252
+ const sets = new Map();
253
+ let unit = new Map();
254
+ const pairs = function* () {
255
+ for (const [target, files] of referrers)
256
+ for (const file of files)
257
+ yield [target, file];
258
+ };
259
+ return after(inUnits(pairs(), ([target, file]) => {
260
+ const files = unit.get(target);
261
+ if (files === undefined)
262
+ unit.set(target, [file]);
263
+ else
264
+ files.push(file);
265
+ return ROW_WEIGHT;
266
+ }, () => {
267
+ for (const [target, files] of unit) {
268
+ sets.set(target, patched(sets.get(target) ?? NO_REFERRERS, files.map((file) => [file, true])));
269
+ }
270
+ unit = new Map();
271
+ }), () => storedIn(sets));
272
+ }
273
+ function heldIndex(held, composition) {
274
+ const index = referrersOf.get(held.text);
275
+ return index !== undefined && typing(index.composition, composition) ? index : null;
276
+ }
277
+ const indexing = new WeakMap();
278
+ export function indexReferrers(held, composition) {
279
+ if (heldIndex(held, composition) !== null)
280
+ return;
281
+ const running = indexing.get(held.text);
282
+ if (running !== undefined)
283
+ return running;
284
+ const targets = new Map();
285
+ const referrers = new Map();
286
+ const filled = inUnits(entriesIn(held.text), ([path, content]) => {
287
+ const found = referencedBy(path, content, composition);
288
+ if (found.length > 0)
289
+ targets.set(path, found);
290
+ for (const target of found) {
291
+ const files = referrers.get(target);
292
+ if (files === undefined)
293
+ referrers.set(target, [path]);
294
+ else
295
+ files.push(path);
296
+ }
297
+ return ROW_WEIGHT + content.length + REFERENCE_WEIGHT * found.length;
298
+ });
299
+ const indexed = after(filled, () => after(storedIn(targets), (storedTargets) => after(storedReferrers(referrers), (stored) => {
300
+ referrersOf.set(held.text, { composition, targets: storedTargets, referrers: stored });
301
+ })));
302
+ if (!(indexed instanceof Promise))
303
+ return;
304
+ const building = indexed.finally(() => indexing.delete(held.text));
305
+ indexing.set(held.text, building);
306
+ return building;
307
+ }
308
+ export function referencesIndexed(held, composition) {
309
+ return heldIndex(held, composition) !== null;
310
+ }
311
+ export function* referring(held, composition, targets) {
312
+ const index = heldIndex(held, composition);
313
+ if (index === null)
314
+ return null;
315
+ const found = new Set();
316
+ for (const target of targets) {
317
+ for (const [file] of entriesIn(referrersOfTarget(index, target))) {
318
+ found.add(file);
319
+ yield ROW_WEIGHT;
320
+ }
321
+ }
322
+ return found;
323
+ }
324
+ export function available(composition) {
325
+ return (composition.model.status !== 'unavailable' &&
326
+ (composition.selection === null || composition.selection.model.status !== 'unavailable'));
327
+ }
328
+ export function* changedCleanly(next, previous, composition) {
329
+ if (!typing(previous.composition, composition))
330
+ return false;
331
+ const paths = new Set([
332
+ ...(yield* differences(previous.text, next.text)),
333
+ ...(yield* differences(previous.binaries, next.binaries, () => true)),
334
+ ]);
335
+ const binary = (path) => Object.hasOwn(next.binaries, path);
336
+ const within = (file) => (path) => selected(composition, path) === selected(composition, file);
337
+ const reaching = (file, check) => {
338
+ if (!check.ok)
339
+ return false;
340
+ const part = within(file);
341
+ return check.references.every((reference) => resolves(reference, (path) => (part(path) ? declared(next.text[path]) : undefined), (path) => part(path) && binary(path)));
342
+ };
343
+ const changedTargets = new Map();
344
+ const shifted = [];
345
+ const admitted = (path) => {
346
+ const now = next.text[path];
347
+ const was = previous.text[path];
348
+ const modeled = modelOf(composition, path) !== null;
349
+ if ((now === undefined) !== (was === undefined) ||
350
+ declared(now) !== declared(was) ||
351
+ binary(path) !== Object.hasOwn(previous.binaries, path)) {
352
+ shifted.push(path);
353
+ }
354
+ if (!modeled && typedIn(was) && !typedIn(now))
355
+ return null;
356
+ if (now === undefined) {
357
+ if (modeled)
358
+ changedTargets.set(path, []);
359
+ return 0;
360
+ }
361
+ if (binary(path))
362
+ return null;
363
+ if (!modeled) {
364
+ if (declared(now) === undefined)
365
+ return null;
366
+ if (typedIn(now))
367
+ return 0;
368
+ const check = checked(path, now, composition);
369
+ return check.ok ? resolvedBy(check) : null;
370
+ }
371
+ const check = checked(path, now, composition);
372
+ if (!reaching(path, check))
373
+ return null;
374
+ changedTargets.set(path, targetsOf(check));
375
+ return resolvedBy(check);
376
+ };
377
+ for (const path of paths) {
378
+ const resolved = admitted(path);
379
+ if (resolved === null)
380
+ return false;
381
+ yield ROW_WEIGHT + (next.text[path]?.length ?? 0) + REFERENCE_WEIGHT * resolved;
382
+ }
383
+ const index = heldIndex(previous, composition);
384
+ if (index === null && shifted.length > 0)
385
+ return false;
386
+ for (const target of shifted) {
387
+ const files = index === null ? NO_REFERRERS : referrersOfTarget(index, target);
388
+ for (const [file] of entriesIn(files)) {
389
+ if (paths.has(file))
390
+ continue;
391
+ const check = checked(file, next.text[file], composition);
392
+ if (!reaching(file, check))
393
+ return false;
394
+ yield ROW_WEIGHT + next.text[file].length + REFERENCE_WEIGHT * resolvedBy(check);
395
+ }
396
+ }
397
+ if (index !== null) {
398
+ referrersOf.set(next.text, changedTargets.size === 0 ? index : yield* reindexed(index, changedTargets));
399
+ }
400
+ return true;
401
+ }
@@ -1,17 +1,21 @@
1
1
  import { type TypesResult } from './model.js';
2
2
  import { type Observation } from './observation.js';
3
- import { type DocumentQuery, type DocumentResult, type GroupQuery, type GroupResult } from './query.js';
3
+ import { type DocumentQuery, type DocumentResult, type GroupQuery, type GroupResult, type PendingResult } from './query.js';
4
+ import { type EntrySeed } from './seed.js';
4
5
  import { type SearchRequest, type SearchResult } from './search.js';
5
6
  import { type Adapter, type Authorization, type Member, type ProviderRefusal, type ServiceMode } from './adapter.js';
6
7
  import { type ChatDraftSurface, type ConversationAgent, type ConversationEntry, type ConversationOptions, type ConversationSurface, type ConversationView } from './conversation.js';
7
8
  import { type WrittenBy } from './change.js';
8
9
  import type { Open } from './open.js';
9
10
  import { type BinaryReference } from './binary.js';
10
- import { type BinaryAnswer, type CallResult, type HistoryAnswer, type QueueEntry } from './outcome.js';
11
+ import { type BinaryLinkAnswer, type CallResult, type HeldBinaryAnswer, type HistoryAnswer, type QueueEntry, type Resolution } from './outcome.js';
12
+ import { type Recovery } from './recovery.js';
11
13
  import { type SaveRefusal } from './save.js';
12
- import { type RoomDraft, type RoomDraftWrite } from './room-draft.js';
14
+ import { type RoomDraft, type RoomDraftParts, type RoomDraftWrite } from './room-draft.js';
13
15
  import { type SyncStatus } from './status.js';
14
16
  import { type RuntimeShell } from './durability.js';
17
+ import { type CapacityCause, type CodeAvailability, type Persistence, type Readiness, type SearchObligation } from './readiness.js';
18
+ import type { RuntimeDatabase } from './tables.js';
15
19
  import { type NarrowedView, type PortReach, type RuntimeView } from './reach.js';
16
20
  export type AppTypedSelection = {
17
21
  roots: readonly string[];
@@ -30,6 +34,7 @@ export type AppRoom = {
30
34
  documents: number;
31
35
  synchronizationAvailable: boolean;
32
36
  refusal: ProviderRefusal | null;
37
+ locked: boolean;
33
38
  };
34
39
  export type RoomSchemas = {
35
40
  collection: TypesResult;
@@ -46,8 +51,10 @@ export type ConnectionRefusal = {
46
51
  export type MdRuntimeOptions = {
47
52
  adapter: Adapter;
48
53
  shell: RuntimeShell;
54
+ database: RuntimeDatabase;
49
55
  authorization?: Authorization;
50
56
  signal?: AbortSignal;
57
+ recovery?: Recovery;
51
58
  };
52
59
  export type SaveResult = {
53
60
  outcome: 'saved';
@@ -59,6 +66,10 @@ export type SavedRoomDraft = {
59
66
  readonly path: string;
60
67
  readonly revision: string;
61
68
  };
69
+ export type SavedParts = {
70
+ readonly path: string;
71
+ readonly parts: RoomDraftParts;
72
+ };
62
73
  export type RoomDraftSurface = {
63
74
  list(): Promise<readonly RoomDraft[]>;
64
75
  read(room: string, path: string): RoomDraft | null;
@@ -68,10 +79,13 @@ export type RoomDraftSurface = {
68
79
  export type PresentationSurface = {
69
80
  read(app: string): Promise<unknown>;
70
81
  write(app: string, value: unknown): Promise<void>;
82
+ edit(app: string, members: Readonly<Record<string, unknown>>): Promise<void>;
71
83
  };
72
84
  export type BinaryFileSurface = {
73
- read(room: string, path: string, revision?: string): Promise<BinaryAnswer>;
74
- readReference(reference: BinaryReference): Promise<BinaryAnswer>;
85
+ read(room: string, path: string, revision?: string): Promise<HeldBinaryAnswer>;
86
+ link(room: string, path: string, revision?: string): Promise<BinaryLinkAnswer>;
87
+ readReference(reference: BinaryReference): Promise<HeldBinaryAnswer>;
88
+ part(file: string, part: number): Promise<Uint8Array | null>;
75
89
  };
76
90
  export type HistoryQuery = {
77
91
  revision?: string;
@@ -81,8 +95,8 @@ export type MdRuntime = {
81
95
  loaded(): Promise<void>;
82
96
  rooms(): readonly AppRoom[];
83
97
  query: {
84
- (query: DocumentQuery): Promise<DocumentResult>;
85
- (query: GroupQuery): Promise<GroupResult>;
98
+ (query: DocumentQuery): Promise<DocumentResult | PendingResult>;
99
+ (query: GroupQuery): Promise<GroupResult | PendingResult>;
86
100
  };
87
101
  search(request: SearchRequest): Promise<SearchResult>;
88
102
  types(locator: string): RoomSchemas;
@@ -91,21 +105,26 @@ export type MdRuntime = {
91
105
  chatDraft: ChatDraftSurface;
92
106
  presentation: PresentationSurface;
93
107
  save(room: string, roomDrafts: readonly SavedRoomDraft[], writtenBy?: WrittenBy): Promise<SaveResult>;
108
+ saveParts(room: string, parts: readonly SavedParts[], writtenBy?: WrittenBy): Promise<SaveResult>;
94
109
  history(locator: string, path: string, query?: HistoryQuery): Promise<HistoryAnswer>;
110
+ resolve(room: string, path: string, destination: string): Promise<Resolution>;
95
111
  binaryFile: BinaryFileSurface;
96
112
  call(name: string, input: unknown): Promise<CallResult>;
97
113
  reached(locator: string, roomVersion: string, path?: string): boolean;
98
114
  log(): string;
99
115
  persistence(): boolean;
116
+ retry(): Promise<void>;
117
+ cleanUp(): Promise<number>;
100
118
  observe: {
101
119
  (topic: 'rooms'): Promise<Observation<readonly AppRoom[]>>;
120
+ (topic: 'readiness'): Promise<Observation<Readiness>>;
102
121
  (topic: 'connection-refusal'): Promise<Observation<ConnectionRefusal | null>>;
103
122
  (topic: 'storage-loss'): Promise<Observation<string | null>>;
104
123
  (topic: 'sync-status'): Promise<Observation<SyncStatus>>;
105
124
  (topic: 'service-mode'): Promise<Observation<ServiceMode>>;
106
125
  (topic: 'member'): Promise<Observation<Member | null>>;
107
- (topic: 'query', query: DocumentQuery): Promise<Observation<DocumentResult>>;
108
- (topic: 'query', query: GroupQuery): Promise<Observation<GroupResult>>;
126
+ (topic: 'query', query: DocumentQuery): Promise<Observation<DocumentResult | PendingResult>>;
127
+ (topic: 'query', query: GroupQuery): Promise<Observation<GroupResult | PendingResult>>;
109
128
  (topic: 'queue', locator: string): Promise<Observation<readonly QueueEntry[]>>;
110
129
  (topic: 'room-drafts'): Promise<Observation<readonly RoomDraft[]>>;
111
130
  (topic: 'presentation', app: string): Promise<Observation<unknown>>;
@@ -115,10 +134,19 @@ export type MdRuntime = {
115
134
  };
116
135
  reauthorize(): Promise<void>;
117
136
  };
118
- export type RuntimeTopic = 'rooms' | 'connection-refusal' | 'storage-loss' | 'sync-status' | 'service-mode' | 'member' | 'query' | 'queue' | 'room-drafts' | 'presentation' | 'conversation' | 'conversations' | 'agents';
137
+ export type RuntimeTopic = 'rooms' | 'readiness' | 'connection-refusal' | 'storage-loss' | 'sync-status' | 'service-mode' | 'member' | 'query' | 'queue' | 'room-drafts' | 'presentation' | 'conversation' | 'conversations' | 'agents';
138
+ export type ReadinessPort = {
139
+ readonly target: string;
140
+ readonly code: CodeAvailability;
141
+ readonly capacity: CapacityCause | null;
142
+ readonly search: SearchObligation;
143
+ };
119
144
  export type ComposedRuntime = RuntimeView & {
145
+ seed(entry: EntrySeed): void;
120
146
  stop(): Promise<void>;
121
- within(reach: PortReach | null): NarrowedView;
147
+ lose(locators: readonly string[]): Promise<void>;
148
+ persisted(answer: Persistence): void;
149
+ within(reach: PortReach | null, port: ReadinessPort): NarrowedView;
122
150
  };
123
151
  export declare function composeRuntime(options: MdRuntimeOptions): ComposedRuntime;
124
152
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}