@agentshouse/mdruntime 0.1.0-cc7bd7a53214e → 0.1.0-cd3486bd400ed

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 (127) hide show
  1. package/AGENTS.md +106 -31
  2. package/README.md +11 -10
  3. package/dist/adapter.d.ts +65 -28
  4. package/dist/adapter.d.ts.map +1 -1
  5. package/dist/adapter.js +1 -9
  6. package/dist/attached-model.d.ts +11 -0
  7. package/dist/attached-model.d.ts.map +1 -0
  8. package/dist/attached-model.js +47 -0
  9. package/dist/attempt.d.ts +16 -0
  10. package/dist/attempt.d.ts.map +1 -0
  11. package/dist/attempt.js +57 -0
  12. package/dist/bootstrap.d.ts +20 -6
  13. package/dist/bootstrap.d.ts.map +1 -1
  14. package/dist/bootstrap.js +89 -35
  15. package/dist/change-set.d.ts.map +1 -1
  16. package/dist/change-set.js +13 -7
  17. package/dist/change.d.ts +4 -0
  18. package/dist/change.d.ts.map +1 -1
  19. package/dist/chat/acts.d.ts +34 -0
  20. package/dist/chat/acts.d.ts.map +1 -0
  21. package/dist/chat/acts.js +36 -0
  22. package/dist/chat/messages.d.ts +21 -0
  23. package/dist/chat/messages.d.ts.map +1 -0
  24. package/dist/chat/messages.js +151 -0
  25. package/dist/chat/overlay.d.ts +31 -0
  26. package/dist/chat/overlay.d.ts.map +1 -0
  27. package/dist/chat/overlay.js +97 -0
  28. package/dist/chat/parts.d.ts +57 -0
  29. package/dist/chat/parts.d.ts.map +1 -0
  30. package/dist/chat/parts.js +119 -0
  31. package/dist/chat/process.d.ts +20 -0
  32. package/dist/chat/process.d.ts.map +1 -0
  33. package/dist/chat/process.js +32 -0
  34. package/dist/chat/provider.d.ts +57 -0
  35. package/dist/chat/provider.d.ts.map +1 -0
  36. package/dist/chat/provider.js +637 -0
  37. package/dist/chat/questions.d.ts +31 -0
  38. package/dist/chat/questions.d.ts.map +1 -0
  39. package/dist/chat/questions.js +111 -0
  40. package/dist/chat/read.d.ts +5 -0
  41. package/dist/chat/read.d.ts.map +1 -0
  42. package/dist/chat/read.js +13 -0
  43. package/dist/chat.d.ts +7 -0
  44. package/dist/chat.d.ts.map +1 -0
  45. package/dist/chat.js +2 -0
  46. package/dist/client.d.ts +11 -7
  47. package/dist/client.d.ts.map +1 -1
  48. package/dist/client.js +58 -25
  49. package/dist/collection.d.ts +6 -11
  50. package/dist/collection.d.ts.map +1 -1
  51. package/dist/collection.js +56 -19
  52. package/dist/connection.d.ts +18 -13
  53. package/dist/connection.d.ts.map +1 -1
  54. package/dist/connection.js +679 -568
  55. package/dist/conversation.d.ts +27 -8
  56. package/dist/conversation.d.ts.map +1 -1
  57. package/dist/conversation.js +210 -81
  58. package/dist/expectation.d.ts +21 -0
  59. package/dist/expectation.d.ts.map +1 -0
  60. package/dist/expectation.js +70 -0
  61. package/dist/failure.d.ts +13 -0
  62. package/dist/failure.d.ts.map +1 -0
  63. package/dist/failure.js +19 -0
  64. package/dist/host.d.ts +1 -0
  65. package/dist/host.d.ts.map +1 -1
  66. package/dist/host.js +8 -19
  67. package/dist/identity.d.ts +2 -0
  68. package/dist/identity.d.ts.map +1 -1
  69. package/dist/identity.js +10 -1
  70. package/dist/index.d.ts +7 -4
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +2 -0
  73. package/dist/memory.d.ts +12 -5
  74. package/dist/memory.d.ts.map +1 -1
  75. package/dist/memory.js +108 -36
  76. package/dist/model.d.ts +13 -12
  77. package/dist/model.d.ts.map +1 -1
  78. package/dist/model.js +6 -3
  79. package/dist/open.d.ts +2 -0
  80. package/dist/open.d.ts.map +1 -0
  81. package/dist/open.js +1 -0
  82. package/dist/outcome.d.ts +22 -3
  83. package/dist/outcome.d.ts.map +1 -1
  84. package/dist/outcome.js +35 -1
  85. package/dist/overlay.d.ts +1 -1
  86. package/dist/overlay.d.ts.map +1 -1
  87. package/dist/overlay.js +19 -15
  88. package/dist/paths.d.ts +0 -1
  89. package/dist/paths.d.ts.map +1 -1
  90. package/dist/paths.js +0 -16
  91. package/dist/query.d.ts +3 -1
  92. package/dist/query.d.ts.map +1 -1
  93. package/dist/query.js +74 -33
  94. package/dist/reach.d.ts.map +1 -1
  95. package/dist/reach.js +29 -35
  96. package/dist/react.d.ts +41 -0
  97. package/dist/react.d.ts.map +1 -0
  98. package/dist/react.js +64 -0
  99. package/dist/read-side.d.ts.map +1 -1
  100. package/dist/read-side.js +102 -46
  101. package/dist/refresh.d.ts +12 -1
  102. package/dist/refresh.d.ts.map +1 -1
  103. package/dist/refresh.js +35 -22
  104. package/dist/replica.d.ts +6 -6
  105. package/dist/replica.d.ts.map +1 -1
  106. package/dist/replica.js +53 -39
  107. package/dist/room-draft.d.ts +8 -8
  108. package/dist/room-draft.d.ts.map +1 -1
  109. package/dist/room-draft.js +13 -22
  110. package/dist/rows.d.ts +4 -1
  111. package/dist/rows.d.ts.map +1 -1
  112. package/dist/rows.js +82 -39
  113. package/dist/save.d.ts +4 -3
  114. package/dist/save.d.ts.map +1 -1
  115. package/dist/save.js +127 -68
  116. package/dist/search.d.ts +3 -2
  117. package/dist/search.d.ts.map +1 -1
  118. package/dist/status.d.ts +2 -2
  119. package/dist/status.d.ts.map +1 -1
  120. package/dist/status.js +0 -8
  121. package/dist/store.d.ts +26 -2
  122. package/dist/store.d.ts.map +1 -1
  123. package/dist/store.js +206 -90
  124. package/dist/wire.d.ts +6 -15
  125. package/dist/wire.d.ts.map +1 -1
  126. package/dist/wire.js +14 -17
  127. package/package.json +14 -2
package/dist/save.js CHANGED
@@ -1,35 +1,49 @@
1
1
  import { definitionOf } from './model.js';
2
- import { apply, links, parse, retarget, serialize, target, } from '@agentshouse/mdmodel';
2
+ import { apply, ATTACHMENT, links, parse, pointerSegments, references, relative, relativize, retarget, serialize, target, } from '@agentshouse/mdmodel';
3
3
  import { immutable, } from './change.js';
4
- import { governing, parseCollection, validateCollection, } from './collection.js';
4
+ import { collectionOf, documentsOf, governing, validateCollection, } from './collection.js';
5
5
  import { changeBatchIdentity } from './identity.js';
6
6
  import { overlay } from './overlay.js';
7
- import { covered, normalize, relative } from './paths.js';
8
- function refuse(rule, file, location) {
7
+ import { covered, normalize } from './paths.js';
8
+ function refuse(code, file, location) {
9
9
  return {
10
10
  kind: 'refused',
11
11
  refusal: {
12
- rule,
12
+ code,
13
+ retryable: false,
13
14
  ...(file === undefined ? {} : { file }),
14
15
  ...(location === undefined ? {} : { location }),
15
16
  },
16
17
  };
17
18
  }
18
- function referenceField(spec) {
19
- return spec.kind === 'reference' || (spec.kind === 'list' && spec.of.kind === 'reference');
20
- }
21
- function repointed(value, from, to, moves) {
22
- if (Array.isArray(value)) {
23
- const next = value.map((item) => repointed(item, from, to, moves) ?? item);
24
- return next.some((item, index) => item !== value[index]) ? next : undefined;
19
+ function repointed(document, definition, from, to, moves, settled) {
20
+ const parsed = parse(document.content, from);
21
+ if (!parsed.ok)
22
+ return [];
23
+ let next = parsed.document;
24
+ const names = new Set();
25
+ for (const { pointer, value } of definition === undefined
26
+ ? []
27
+ : references(document, definition)) {
28
+ const [name = ''] = pointerSegments(pointer);
29
+ const named = target(from, value);
30
+ if (named === null || settled.has(`${from} ${name}`))
31
+ continue;
32
+ const destination = moves.get(named) ?? named;
33
+ if (target(to, value) === destination)
34
+ continue;
35
+ const applied = apply(next, {
36
+ kind: 'reference',
37
+ pointer,
38
+ value: retarget(value, relative(to, destination)),
39
+ prior: value,
40
+ });
41
+ if (applied.outcome !== 'applied')
42
+ continue;
43
+ next = applied.document;
44
+ names.add(name);
25
45
  }
26
- if (typeof value !== 'string')
27
- return undefined;
28
- const named = target(from, value);
29
- if (named === null)
30
- return undefined;
31
- const destination = moves.get(named) ?? named;
32
- return target(to, value) === destination ? undefined : retarget(value, relative(to, destination));
46
+ return [...names].map((name) => ({ kind: 'field', path: from, name, value: next.fields[name] }));
33
47
  }
34
48
  function edited(document, path, changes) {
35
49
  let next = document;
@@ -77,7 +91,8 @@ function relinks(path, moved, before, moves) {
77
91
  return {
78
92
  kind: 'refused',
79
93
  refusal: {
80
- rule: applied.refusal.rule,
94
+ code: applied.refusal.rule,
95
+ retryable: false,
81
96
  file: path,
82
97
  ...(applied.refusal.location === undefined ? {} : { location: applied.refusal.location }),
83
98
  },
@@ -117,19 +132,12 @@ function rewrites(changes, visible) {
117
132
  return { kind: 'changes', changes };
118
133
  const merged = [...changes];
119
134
  const added = [];
120
- for (const [path, document] of Object.entries(visible.collection.documents)) {
135
+ for (const [path, document] of documentsOf(visible.collection)) {
121
136
  if (settled.has(path))
122
137
  continue;
123
138
  const moved = moves.get(path) ?? path;
124
139
  const definition = definitionOf(governing(visible.collection.composition, path), document.type);
125
- for (const [name, spec] of Object.entries(definition?.fields ?? {})) {
126
- if (!referenceField(spec) || settled.has(`${path} ${name}`))
127
- continue;
128
- const value = repointed(document.fields[name], path, moved, moves);
129
- if (value === undefined)
130
- continue;
131
- added.push({ kind: 'field', path, name, value });
132
- }
140
+ added.push(...repointed(document, definition, path, moved, moves, settled));
133
141
  const relinked = relinks(path, moved, edited(document, path, merged), moves);
134
142
  if (relinked.kind === 'refused')
135
143
  return relinked;
@@ -166,18 +174,6 @@ export function providerRewritten(batch, visible) {
166
174
  ...anticipated(batch.changes, batch.preconditions, rewritten.changes, visible),
167
175
  };
168
176
  }
169
- function targets(value, from) {
170
- const values = Array.isArray(value) ? value : [value];
171
- const resolved = [];
172
- for (const item of values) {
173
- if (typeof item !== 'string')
174
- continue;
175
- const named = target(from, item);
176
- if (named !== null)
177
- resolved.push(named);
178
- }
179
- return resolved;
180
- }
181
177
  function incoming(collection, removed) {
182
178
  const found = new Map();
183
179
  const note = (target, file) => {
@@ -187,16 +183,15 @@ function incoming(collection, removed) {
187
183
  referrers.add(file);
188
184
  found.set(target, referrers);
189
185
  };
190
- for (const [path, document] of Object.entries(collection.documents)) {
186
+ for (const [path, document] of documentsOf(collection)) {
191
187
  const definition = definitionOf(governing(collection.composition, path), document.type);
192
- for (const [name, spec] of Object.entries(definition?.fields ?? {})) {
193
- if (!referenceField(spec))
188
+ for (const { value, to } of definition === undefined ? [] : references(document, definition)) {
189
+ if (to.includes(ATTACHMENT))
194
190
  continue;
195
- for (const named of targets(document.fields[name], path))
191
+ const named = target(path, value);
192
+ if (named !== null)
196
193
  note(named, path);
197
194
  }
198
- for (const link of links(document, path))
199
- note(link.target, path);
200
195
  }
201
196
  const [first] = [...found.keys()].sort();
202
197
  if (first === undefined)
@@ -207,7 +202,12 @@ function incoming(collection, removed) {
207
202
  every.add(file);
208
203
  return {
209
204
  kind: 'refused',
210
- refusal: { rule: 'referenced-missing-file', file: first, referrers: [...every].sort() },
205
+ refusal: {
206
+ code: 'referenced-missing-file',
207
+ retryable: false,
208
+ file: first,
209
+ referrers: [...every].sort(),
210
+ },
211
211
  };
212
212
  }
213
213
  function affected(change) {
@@ -227,7 +227,7 @@ function guard(changes, input) {
227
227
  return refuse('provider-owned-path', normalized);
228
228
  }
229
229
  const operation = change.kind === 'remove' ? 'delete' : 'write';
230
- if (!covered(input.operations[operation], normalized))
230
+ if (!input.local && !covered(input.operations[operation], normalized))
231
231
  return refuse(`${operation}-grant`, normalized);
232
232
  }
233
233
  if (change.kind === 'create') {
@@ -241,7 +241,7 @@ function guard(changes, input) {
241
241
  return refuse('path-absent', change.path);
242
242
  if (existing.has(change.to))
243
243
  return refuse('path-collision', change.to);
244
- if (unrevisionedDocument(input.visible, change.path)) {
244
+ if (!input.local && unrevisionedDocument(input.visible, change.path)) {
245
245
  return refuse('unknown-revision', change.path);
246
246
  }
247
247
  existing.delete(change.path);
@@ -251,19 +251,19 @@ function guard(changes, input) {
251
251
  if (!existing.has(change.path))
252
252
  return refuse('path-absent', change.path);
253
253
  if (change.kind === 'remove') {
254
- if (unrevisionedDocument(input.visible, change.path)) {
254
+ if (!input.local && unrevisionedDocument(input.visible, change.path)) {
255
255
  return refuse('unknown-revision', change.path);
256
256
  }
257
257
  existing.delete(change.path);
258
258
  continue;
259
259
  }
260
260
  if (change.kind === 'replace') {
261
- if (input.visible.revisions[change.path] === undefined) {
261
+ if (!input.local && input.visible.revisions[change.path] === undefined) {
262
262
  return refuse('unknown-revision', change.path);
263
263
  }
264
264
  continue;
265
265
  }
266
- if (input.visible.collection.documents[change.path] === undefined) {
266
+ if (input.visible.collection.document(change.path) === undefined) {
267
267
  return refuse('path-absent', change.path);
268
268
  }
269
269
  }
@@ -274,7 +274,10 @@ function unrevisionedDocument(visible, path) {
274
274
  }
275
275
  function existence(visible, path) {
276
276
  const revision = visible.revisions[path];
277
- return revision === undefined ? { kind: 'present', path } : { kind: 'revision', path, revision };
277
+ if (revision !== undefined)
278
+ return { kind: 'revision', path, revision };
279
+ const content = visible.documents[path];
280
+ return content === undefined ? { kind: 'present', path } : { kind: 'content', path, content };
278
281
  }
279
282
  function sameTarget(precondition, change) {
280
283
  if (precondition.kind !== change.kind || precondition.path !== change.path)
@@ -300,7 +303,7 @@ function preconditionsOf(changes, visible, bases) {
300
303
  add(based);
301
304
  continue;
302
305
  }
303
- const document = visible.collection.documents[change.path];
306
+ const document = visible.collection.document(change.path);
304
307
  if (change.kind === 'field') {
305
308
  add({
306
309
  kind: 'field',
@@ -368,32 +371,87 @@ function exceeded(limits, changes, resulting) {
368
371
  }
369
372
  return null;
370
373
  }
371
- export function buildBatch(input) {
372
- const structural = input.changes.find((change) => change.kind === 'move' || change.kind === 'remove');
373
- if (structural !== undefined &&
374
- Object.entries(input.visible.collection.documents).some(([path, document]) => document.type !== undefined &&
374
+ function shellRelative(text, path, handle, definition) {
375
+ if (!text.includes(`/rooms/${handle}/`))
376
+ return null;
377
+ const parsed = parse(text, path);
378
+ if (!parsed.ok)
379
+ return null;
380
+ const result = relativize(parsed.document, path, handle, definition(parsed.document.type));
381
+ return result.outcome === 'applied' && result.document.content !== text ? result.document : null;
382
+ }
383
+ function relativeField(path, name, value, handle, definition) {
384
+ const opened = parse('---\n---\n');
385
+ if (definition === undefined ||
386
+ !opened.ok ||
387
+ !JSON.stringify(value ?? null).includes(`/rooms/${handle}/`))
388
+ return value;
389
+ const held = apply(opened.document, { kind: 'field', name, value, prior: undefined });
390
+ if (held.outcome !== 'applied')
391
+ return value;
392
+ const result = relativize(held.document, path, handle, definition);
393
+ return result.outcome === 'applied' ? result.document.fields[name] : value;
394
+ }
395
+ function relativeChanges(input) {
396
+ const { handle, composition, visible } = input;
397
+ const typed = (path) => (type) => definitionOf(governing(composition, path), type);
398
+ const body = (path, text) => shellRelative(text, path, handle, () => undefined)?.content ?? text;
399
+ return input.changes.map((change) => {
400
+ const definition = typed(change.path);
401
+ if (change.kind === 'field') {
402
+ const type = visible.collection.document(change.path)?.type;
403
+ const value = relativeField(change.path, change.name, change.value, handle, definition(type));
404
+ return value === change.value ? change : { ...change, value };
405
+ }
406
+ if (change.kind === 'section' || change.kind === 'preamble') {
407
+ const value = body(change.path, change.value);
408
+ return value === change.value ? change : { ...change, value };
409
+ }
410
+ if (change.kind === 'replace' || (change.kind === 'create' && 'content' in change)) {
411
+ const content = shellRelative(change.content, change.path, handle, definition)?.content ?? change.content;
412
+ return content === change.content ? change : { ...change, content };
413
+ }
414
+ if (change.kind !== 'create')
415
+ return change;
416
+ const type = typeof change.fields.type === 'string' ? change.fields.type : undefined;
417
+ const fields = Object.fromEntries(Object.entries(change.fields).map(([name, value]) => [
418
+ name,
419
+ relativeField(change.path, name, value, handle, definition(type)),
420
+ ]));
421
+ const sections = Object.fromEntries(Object.entries(change.sections).map(([name, value]) => [name, body(change.path, value)]));
422
+ return { ...change, fields, sections };
423
+ });
424
+ }
425
+ function unmodeledType(collection, composition) {
426
+ for (const [path, document] of documentsOf(collection)) {
427
+ if (document.type !== undefined &&
375
428
  document.type !== 'any' &&
376
- governing(input.composition, path).status === 'unavailable'))
429
+ governing(composition, path).status === 'unavailable')
430
+ return true;
431
+ }
432
+ return false;
433
+ }
434
+ export function buildBatch(input) {
435
+ const changes = relativeChanges(input);
436
+ const structural = changes.find((change) => change.kind === 'move' || change.kind === 'remove');
437
+ if (structural !== undefined && unmodeledType(input.visible.collection, input.composition))
377
438
  return refuse('model-unavailable', structural.path);
378
- if (input.changes.length === 0)
439
+ if (changes.length === 0)
379
440
  return refuse('no-change');
380
- const rewritten = rewrites(input.changes, input.visible);
441
+ const rewritten = rewrites(changes, input.visible);
381
442
  if (rewritten.kind === 'refused')
382
443
  return rewritten;
383
- const changes = input.rewriting === 'provider' ? input.changes : rewritten.changes;
384
444
  const refusal = guard(changes, input);
385
445
  if (refusal !== null)
386
446
  return refusal;
387
447
  const preconditions = preconditionsOf(changes, input.visible, input.bases);
388
- const predicted = input.rewriting === 'provider'
389
- ? anticipated(changes, preconditions, rewritten.changes, input.visible)
390
- : { changes, preconditions };
448
+ const predicted = anticipated(changes, preconditions, rewritten.changes, input.visible);
391
449
  const resulting = overlay(input.visible, [
392
450
  { id: '', baseRoomVersion: input.baseRoomVersion, ...predicted },
393
451
  ]);
394
452
  const removed = new Set(changes.filter((change) => change.kind === 'remove').map((change) => change.path));
395
453
  if (removed.size > 0) {
396
- const referenced = incoming(parseCollection(resulting.documents, input.composition), removed);
454
+ const referenced = incoming(collectionOf(resulting.documents, input.composition), removed);
397
455
  if (referenced !== null)
398
456
  return referenced;
399
457
  }
@@ -416,7 +474,8 @@ export function buildBatch(input) {
416
474
  return {
417
475
  kind: 'refused',
418
476
  refusal: {
419
- rule: verdict.rule,
477
+ code: verdict.rule,
478
+ retryable: false,
420
479
  file: verdict.file,
421
480
  ...(verdict.location === undefined ? {} : { location: verdict.location }),
422
481
  ...(verdict.referrers === undefined ? {} : { referrers: verdict.referrers }),
package/dist/search.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import type { ChangeSet } from './change-set.js';
2
2
  import { type Filter } from './query.js';
3
- export type DocumentPart = 'fields' | 'sections' | 'preamble' | 'path';
3
+ import type { Open } from './open.js';
4
+ export type DocumentPart = Open<'fields' | 'sections' | 'preamble' | 'path'>;
4
5
  export type SearchRequest = {
5
6
  text: string;
6
7
  documents?: Filter;
@@ -18,7 +19,7 @@ export type MessageHit = {
18
19
  conversation: string;
19
20
  identity: string;
20
21
  score: number;
21
- matches: Readonly<Record<string, readonly 'text'[]>>;
22
+ matches: Readonly<Record<string, readonly Open<'text'>[]>>;
22
23
  };
23
24
  export type SearchResult = {
24
25
  documents: readonly DocumentHit[];
@@ -1 +1 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAkC,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzE,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;AAEvE,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC,CAAC,CAAC;CAC5D,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;CACtD,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,SAAS,WAAW,EAAE,CAAC;IAClC,QAAQ,EAAE,SAAS,UAAU,EAAE,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvF,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,IAAI,SAAS,gBAAgB,EAAE,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAAC;IAC9D,QAAQ,IAAI,SAAS,eAAe,EAAE,CAAC;IACvC,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAAC;CACzE,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IACxC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;IAC9B,MAAM,CACJ,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,SAAS;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,IAAI,GAC1D,YAAY,CAAC;CACjB,CAAC;AA4BF,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,CAiBvD;AAMD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,WAAW,CAyGnE"}
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"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"}
package/dist/status.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type { Open } from './open.js';
1
2
  import type { ReturnReason } from './room-draft.js';
2
3
  export type AttentionEntry = {
3
4
  room: string;
@@ -5,7 +6,7 @@ export type AttentionEntry = {
5
6
  returned: ReturnReason;
6
7
  };
7
8
  export type SyncStatus = {
8
- state: 'pending' | 'syncing' | 'synced';
9
+ state: Open<'pending' | 'syncing' | 'synced'>;
9
10
  lastCompleted: string | null;
10
11
  providerUnreachable: boolean;
11
12
  attentionRequired: readonly AttentionEntry[];
@@ -17,7 +18,6 @@ export type CycleProgress = {
17
18
  };
18
19
  export declare const STARTING: SyncStatus;
19
20
  export declare function transferring(status: SyncStatus): SyncStatus;
20
- export declare function settled(status: SyncStatus, progress: CycleProgress, at: string | null, queued: boolean, attention: Pick<SyncStatus, 'attentionRequired' | 'reset'>): SyncStatus;
21
21
  export declare function saving(status: SyncStatus): SyncStatus;
22
22
  export declare function same(one: SyncStatus, other: SyncStatus): boolean;
23
23
  //# sourceMappingURL=status.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,YAAY,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACxC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,iBAAiB,EAAE,SAAS,cAAc,EAAE,CAAC;IAC7C,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,UAMtB,CAAC;AAEF,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAE3D;AAED,wBAAgB,OAAO,CACrB,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,aAAa,EACvB,EAAE,EAAE,MAAM,GAAG,IAAI,EACjB,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO,CAAC,GACzD,UAAU,CAOZ;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAErD;AAED,wBAAgB,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAQhE"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../src/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,YAAY,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,IAAI,CAAC,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC,CAAC;IAC9C,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,iBAAiB,EAAE,SAAS,cAAc,EAAE,CAAC;IAC7C,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,UAMtB,CAAC;AAEF,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAE3D;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAErD;AAED,wBAAgB,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAQhE"}
package/dist/status.js CHANGED
@@ -8,14 +8,6 @@ export const STARTING = {
8
8
  export function transferring(status) {
9
9
  return { ...status, state: 'syncing' };
10
10
  }
11
- export function settled(status, progress, at, queued, attention) {
12
- return {
13
- state: queued ? 'pending' : progress.complete ? 'synced' : status.state,
14
- lastCompleted: progress.complete ? at : status.lastCompleted,
15
- providerUnreachable: !progress.reachable,
16
- ...attention,
17
- };
18
- }
19
11
  export function saving(status) {
20
12
  return { ...status, state: 'pending' };
21
13
  }
package/dist/store.d.ts CHANGED
@@ -1,21 +1,23 @@
1
1
  import type { ModelState } from './model.js';
2
- import type { Capability, HeadChange, OperationScopes, ProviderLimit, ReplicaAdmission, RoomAttachment, TypedSelection } from './adapter.js';
2
+ import type { Capability, HeadChange, Member, OperationScopes, ProviderLimit, ReplicaAdmission, RoomAttachment, TypedSelection } from './adapter.js';
3
3
  import type { AcceptedMessage } from './adapter.js';
4
4
  import type { ChangeBatch } from './change.js';
5
5
  import type { ChatDraftFile } from './file.js';
6
6
  import type { Submission } from './outcome.js';
7
7
  import type { RoomDraftRecord, SavedDraft } from './room-draft.js';
8
+ export declare const STORE_SCHEMA = 21;
8
9
  export type ReplicaRecord = {
9
10
  locator: string;
10
11
  name: string;
12
+ handle: string;
11
13
  operations: OperationScopes;
12
14
  replica: ReplicaAdmission;
13
15
  model: ModelState;
14
- attachedModel: import('./model.js').ModelIdentity | null;
15
16
  typedSelection: TypedSelection | null;
16
17
  selectionModel: ModelState;
17
18
  providerOwnedPaths: readonly string[];
18
19
  roomVersion: string;
20
+ transfer: string;
19
21
  documents: Readonly<Record<string, string>>;
20
22
  binaryTargets: readonly string[];
21
23
  revisions: Readonly<Record<string, string>>;
@@ -23,6 +25,20 @@ export type ReplicaRecord = {
23
25
  written: Readonly<Record<string, string>>;
24
26
  attachments: readonly RoomAttachment[];
25
27
  };
28
+ export type StagedLayer = Pick<ReplicaRecord, 'documents' | 'binaryTargets' | 'revisions' | 'changes' | 'written'>;
29
+ export type TransferRecord = {
30
+ locator: string;
31
+ transfer: string;
32
+ selection: string;
33
+ from: string;
34
+ last: string;
35
+ pageToken: string | null;
36
+ models: {
37
+ collection: ModelState;
38
+ selection: ModelState;
39
+ };
40
+ attachments: readonly (readonly RoomAttachment[])[];
41
+ };
26
42
  export type PendingState = {
27
43
  readonly drafts: readonly SavedDraft[];
28
44
  readonly submission: Submission;
@@ -57,10 +73,12 @@ export type ChatDraftRecord = {
57
73
  text: string;
58
74
  files: readonly ChatDraftFile[];
59
75
  turn: string | null;
76
+ revision: string;
60
77
  };
61
78
  export type RecordWrite = {
62
79
  next: ReplicaRecord;
63
80
  previous: ReplicaRecord | null;
81
+ stored?: StagedLayer;
64
82
  queue: readonly ChangeBatch[];
65
83
  previousQueue?: readonly ChangeBatch[];
66
84
  saved?: readonly SavedDraft[];
@@ -79,6 +97,8 @@ export type RuntimeStore = {
79
97
  providerLimits(): Promise<readonly ProviderLimit[]>;
80
98
  capabilities(): Promise<readonly Capability[]>;
81
99
  declare(limits: readonly ProviderLimit[], capabilities: readonly Capability[]): Promise<void>;
100
+ member(): Promise<Member | null>;
101
+ keepMember(member: Member | null): Promise<void>;
82
102
  queues(): Promise<readonly QueueRecord[]>;
83
103
  submit(locator: string, id: string, submission: Submission, lost: boolean): Promise<void>;
84
104
  accept(locator: string, id: string, roomVersion: string): Promise<void>;
@@ -95,6 +115,10 @@ export type RuntimeStore = {
95
115
  keepRoomDraft(record: RoomDraftRecord): Promise<void>;
96
116
  discardRoomDraft(locator: string, path: string): Promise<void>;
97
117
  dropRooms(locators: readonly string[]): Promise<void>;
118
+ transfers(): Promise<readonly TransferRecord[]>;
119
+ staged(record: TransferRecord): Promise<StagedLayer>;
120
+ stage(record: TransferRecord, page: StagedLayer): Promise<void>;
121
+ abandon(locator: string): Promise<void>;
98
122
  generation(): Promise<string | null>;
99
123
  rememberGeneration(value: string): Promise<void>;
100
124
  close(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}