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