@agentshouse/mdruntime 0.1.0-cebcd51f70ed1 → 0.1.0-cec6690d5712e

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 (156) hide show
  1. package/AGENTS.md +82 -27
  2. package/README.md +13 -3
  3. package/dist/adapter.d.ts +13 -3
  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 +57 -0
  10. package/dist/bootstrap.d.ts +17 -5
  11. package/dist/bootstrap.d.ts.map +1 -1
  12. package/dist/bootstrap.js +88 -35
  13. package/dist/change-set.d.ts.map +1 -1
  14. package/dist/change-set.js +13 -7
  15. package/dist/change.d.ts +4 -0
  16. package/dist/change.d.ts.map +1 -1
  17. package/dist/chat/acts.d.ts +34 -0
  18. package/dist/chat/acts.d.ts.map +1 -0
  19. package/dist/chat/acts.js +36 -0
  20. package/dist/chat/context.d.ts +3 -0
  21. package/dist/chat/context.d.ts.map +1 -0
  22. package/dist/chat/context.js +10 -0
  23. package/dist/chat/input.d.ts +9 -0
  24. package/dist/chat/input.d.ts.map +1 -0
  25. package/dist/chat/input.js +99 -0
  26. package/dist/chat/kit.d.ts +60 -0
  27. package/dist/chat/kit.d.ts.map +1 -0
  28. package/dist/chat/kit.js +123 -0
  29. package/dist/chat/lasting.d.ts +6 -0
  30. package/dist/chat/lasting.d.ts.map +1 -0
  31. package/dist/chat/lasting.js +19 -0
  32. package/dist/chat/list.d.ts +20 -0
  33. package/dist/chat/list.d.ts.map +1 -0
  34. package/dist/chat/list.js +59 -0
  35. package/dist/chat/markdown.d.ts +19 -0
  36. package/dist/chat/markdown.d.ts.map +1 -0
  37. package/dist/chat/markdown.js +187 -0
  38. package/dist/chat/message.d.ts +6 -0
  39. package/dist/chat/message.d.ts.map +1 -0
  40. package/dist/chat/message.js +192 -0
  41. package/dist/chat/messages.d.ts +21 -0
  42. package/dist/chat/messages.d.ts.map +1 -0
  43. package/dist/chat/messages.js +151 -0
  44. package/dist/chat/name.d.ts +6 -0
  45. package/dist/chat/name.d.ts.map +1 -0
  46. package/dist/chat/name.js +37 -0
  47. package/dist/chat/opened.d.ts +11 -0
  48. package/dist/chat/opened.d.ts.map +1 -0
  49. package/dist/chat/opened.js +17 -0
  50. package/dist/chat/overlay.d.ts +31 -0
  51. package/dist/chat/overlay.d.ts.map +1 -0
  52. package/dist/chat/overlay.js +97 -0
  53. package/dist/chat/parts.d.ts +57 -0
  54. package/dist/chat/parts.d.ts.map +1 -0
  55. package/dist/chat/parts.js +119 -0
  56. package/dist/chat/process.d.ts +20 -0
  57. package/dist/chat/process.d.ts.map +1 -0
  58. package/dist/chat/process.js +32 -0
  59. package/dist/chat/provider.d.ts +63 -0
  60. package/dist/chat/provider.d.ts.map +1 -0
  61. package/dist/chat/provider.js +645 -0
  62. package/dist/chat/question.d.ts +9 -0
  63. package/dist/chat/question.d.ts.map +1 -0
  64. package/dist/chat/question.js +80 -0
  65. package/dist/chat/questions.d.ts +31 -0
  66. package/dist/chat/questions.d.ts.map +1 -0
  67. package/dist/chat/questions.js +111 -0
  68. package/dist/chat/read.d.ts +5 -0
  69. package/dist/chat/read.d.ts.map +1 -0
  70. package/dist/chat/read.js +13 -0
  71. package/dist/chat/ready.d.ts +33 -0
  72. package/dist/chat/ready.d.ts.map +1 -0
  73. package/dist/chat/ready.js +91 -0
  74. package/dist/chat/style.d.ts +4 -0
  75. package/dist/chat/style.d.ts.map +1 -0
  76. package/dist/chat/style.js +302 -0
  77. package/dist/chat.d.ts +14 -0
  78. package/dist/chat.d.ts.map +1 -0
  79. package/dist/chat.js +8 -0
  80. package/dist/client.d.ts +9 -5
  81. package/dist/client.d.ts.map +1 -1
  82. package/dist/client.js +61 -15
  83. package/dist/collection.d.ts +6 -11
  84. package/dist/collection.d.ts.map +1 -1
  85. package/dist/collection.js +56 -19
  86. package/dist/connection.d.ts +14 -7
  87. package/dist/connection.d.ts.map +1 -1
  88. package/dist/connection.js +239 -102
  89. package/dist/conversation.d.ts +11 -3
  90. package/dist/conversation.d.ts.map +1 -1
  91. package/dist/conversation.js +47 -7
  92. package/dist/expectation.d.ts +21 -0
  93. package/dist/expectation.d.ts.map +1 -0
  94. package/dist/expectation.js +70 -0
  95. package/dist/failure.d.ts +13 -0
  96. package/dist/failure.d.ts.map +1 -0
  97. package/dist/failure.js +19 -0
  98. package/dist/host.d.ts +1 -0
  99. package/dist/host.d.ts.map +1 -1
  100. package/dist/host.js +5 -8
  101. package/dist/identity.d.ts +2 -0
  102. package/dist/identity.d.ts.map +1 -1
  103. package/dist/identity.js +10 -1
  104. package/dist/index.d.ts +7 -4
  105. package/dist/index.d.ts.map +1 -1
  106. package/dist/index.js +2 -0
  107. package/dist/memory.d.ts +2 -1
  108. package/dist/memory.d.ts.map +1 -1
  109. package/dist/memory.js +31 -11
  110. package/dist/model.d.ts +10 -2
  111. package/dist/model.d.ts.map +1 -1
  112. package/dist/model.js +2 -0
  113. package/dist/open.d.ts +2 -0
  114. package/dist/open.d.ts.map +1 -0
  115. package/dist/open.js +1 -0
  116. package/dist/outcome.d.ts +22 -3
  117. package/dist/outcome.d.ts.map +1 -1
  118. package/dist/outcome.js +35 -1
  119. package/dist/overlay.d.ts +1 -1
  120. package/dist/overlay.d.ts.map +1 -1
  121. package/dist/overlay.js +19 -15
  122. package/dist/query.d.ts +2 -0
  123. package/dist/query.d.ts.map +1 -1
  124. package/dist/query.js +5 -31
  125. package/dist/reach.d.ts.map +1 -1
  126. package/dist/reach.js +21 -19
  127. package/dist/react.d.ts +25 -16
  128. package/dist/react.d.ts.map +1 -1
  129. package/dist/react.js +8 -6
  130. package/dist/refresh.d.ts +10 -0
  131. package/dist/refresh.d.ts.map +1 -1
  132. package/dist/refresh.js +33 -24
  133. package/dist/replica.d.ts +5 -5
  134. package/dist/replica.d.ts.map +1 -1
  135. package/dist/replica.js +44 -29
  136. package/dist/room-draft.d.ts +8 -8
  137. package/dist/room-draft.d.ts.map +1 -1
  138. package/dist/room-draft.js +13 -22
  139. package/dist/rows.d.ts +2 -0
  140. package/dist/rows.d.ts.map +1 -1
  141. package/dist/rows.js +7 -1
  142. package/dist/save.d.ts +3 -1
  143. package/dist/save.d.ts.map +1 -1
  144. package/dist/save.js +38 -21
  145. package/dist/search.d.ts +3 -2
  146. package/dist/search.d.ts.map +1 -1
  147. package/dist/status.d.ts +2 -2
  148. package/dist/status.d.ts.map +1 -1
  149. package/dist/status.js +0 -8
  150. package/dist/store.d.ts +25 -1
  151. package/dist/store.d.ts.map +1 -1
  152. package/dist/store.js +206 -90
  153. package/dist/wire.d.ts +5 -3
  154. package/dist/wire.d.ts.map +1 -1
  155. package/dist/wire.js +13 -2
  156. package/package.json +17 -9
package/dist/save.js CHANGED
@@ -1,15 +1,16 @@
1
1
  import { definitionOf } from './model.js';
2
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
7
  import { covered, normalize } from './paths.js';
8
- function refuse(rule, file, location) {
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
  },
@@ -90,7 +91,8 @@ function relinks(path, moved, before, moves) {
90
91
  return {
91
92
  kind: 'refused',
92
93
  refusal: {
93
- rule: applied.refusal.rule,
94
+ code: applied.refusal.rule,
95
+ retryable: false,
94
96
  file: path,
95
97
  ...(applied.refusal.location === undefined ? {} : { location: applied.refusal.location }),
96
98
  },
@@ -130,7 +132,7 @@ function rewrites(changes, visible) {
130
132
  return { kind: 'changes', changes };
131
133
  const merged = [...changes];
132
134
  const added = [];
133
- for (const [path, document] of Object.entries(visible.collection.documents)) {
135
+ for (const [path, document] of documentsOf(visible.collection)) {
134
136
  if (settled.has(path))
135
137
  continue;
136
138
  const moved = moves.get(path) ?? path;
@@ -181,7 +183,7 @@ function incoming(collection, removed) {
181
183
  referrers.add(file);
182
184
  found.set(target, referrers);
183
185
  };
184
- for (const [path, document] of Object.entries(collection.documents)) {
186
+ for (const [path, document] of documentsOf(collection)) {
185
187
  const definition = definitionOf(governing(collection.composition, path), document.type);
186
188
  for (const { value, to } of definition === undefined ? [] : references(document, definition)) {
187
189
  if (to.includes(ATTACHMENT))
@@ -200,7 +202,12 @@ function incoming(collection, removed) {
200
202
  every.add(file);
201
203
  return {
202
204
  kind: 'refused',
203
- 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
+ },
204
211
  };
205
212
  }
206
213
  function affected(change) {
@@ -220,7 +227,7 @@ function guard(changes, input) {
220
227
  return refuse('provider-owned-path', normalized);
221
228
  }
222
229
  const operation = change.kind === 'remove' ? 'delete' : 'write';
223
- if (!covered(input.operations[operation], normalized))
230
+ if (!input.local && !covered(input.operations[operation], normalized))
224
231
  return refuse(`${operation}-grant`, normalized);
225
232
  }
226
233
  if (change.kind === 'create') {
@@ -234,7 +241,7 @@ function guard(changes, input) {
234
241
  return refuse('path-absent', change.path);
235
242
  if (existing.has(change.to))
236
243
  return refuse('path-collision', change.to);
237
- if (unrevisionedDocument(input.visible, change.path)) {
244
+ if (!input.local && unrevisionedDocument(input.visible, change.path)) {
238
245
  return refuse('unknown-revision', change.path);
239
246
  }
240
247
  existing.delete(change.path);
@@ -244,19 +251,19 @@ function guard(changes, input) {
244
251
  if (!existing.has(change.path))
245
252
  return refuse('path-absent', change.path);
246
253
  if (change.kind === 'remove') {
247
- if (unrevisionedDocument(input.visible, change.path)) {
254
+ if (!input.local && unrevisionedDocument(input.visible, change.path)) {
248
255
  return refuse('unknown-revision', change.path);
249
256
  }
250
257
  existing.delete(change.path);
251
258
  continue;
252
259
  }
253
260
  if (change.kind === 'replace') {
254
- if (input.visible.revisions[change.path] === undefined) {
261
+ if (!input.local && input.visible.revisions[change.path] === undefined) {
255
262
  return refuse('unknown-revision', change.path);
256
263
  }
257
264
  continue;
258
265
  }
259
- if (input.visible.collection.documents[change.path] === undefined) {
266
+ if (input.visible.collection.document(change.path) === undefined) {
260
267
  return refuse('path-absent', change.path);
261
268
  }
262
269
  }
@@ -267,7 +274,10 @@ function unrevisionedDocument(visible, path) {
267
274
  }
268
275
  function existence(visible, path) {
269
276
  const revision = visible.revisions[path];
270
- 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 };
271
281
  }
272
282
  function sameTarget(precondition, change) {
273
283
  if (precondition.kind !== change.kind || precondition.path !== change.path)
@@ -293,7 +303,7 @@ function preconditionsOf(changes, visible, bases) {
293
303
  add(based);
294
304
  continue;
295
305
  }
296
- const document = visible.collection.documents[change.path];
306
+ const document = visible.collection.document(change.path);
297
307
  if (change.kind === 'field') {
298
308
  add({
299
309
  kind: 'field',
@@ -389,7 +399,7 @@ function relativeChanges(input) {
389
399
  return input.changes.map((change) => {
390
400
  const definition = typed(change.path);
391
401
  if (change.kind === 'field') {
392
- const type = visible.collection.documents[change.path]?.type;
402
+ const type = visible.collection.document(change.path)?.type;
393
403
  const value = relativeField(change.path, change.name, change.value, handle, definition(type));
394
404
  return value === change.value ? change : { ...change, value };
395
405
  }
@@ -412,13 +422,19 @@ function relativeChanges(input) {
412
422
  return { ...change, fields, sections };
413
423
  });
414
424
  }
425
+ function unmodeledType(collection, composition) {
426
+ for (const [path, document] of documentsOf(collection)) {
427
+ if (document.type !== undefined &&
428
+ document.type !== 'any' &&
429
+ governing(composition, path).status === 'unavailable')
430
+ return true;
431
+ }
432
+ return false;
433
+ }
415
434
  export function buildBatch(input) {
416
435
  const changes = relativeChanges(input);
417
436
  const structural = changes.find((change) => change.kind === 'move' || change.kind === 'remove');
418
- if (structural !== undefined &&
419
- Object.entries(input.visible.collection.documents).some(([path, document]) => document.type !== undefined &&
420
- document.type !== 'any' &&
421
- governing(input.composition, path).status === 'unavailable'))
437
+ if (structural !== undefined && unmodeledType(input.visible.collection, input.composition))
422
438
  return refuse('model-unavailable', structural.path);
423
439
  if (changes.length === 0)
424
440
  return refuse('no-change');
@@ -435,7 +451,7 @@ export function buildBatch(input) {
435
451
  ]);
436
452
  const removed = new Set(changes.filter((change) => change.kind === 'remove').map((change) => change.path));
437
453
  if (removed.size > 0) {
438
- const referenced = incoming(parseCollection(resulting.documents, input.composition), removed);
454
+ const referenced = incoming(collectionOf(resulting.documents, input.composition), removed);
439
455
  if (referenced !== null)
440
456
  return referenced;
441
457
  }
@@ -458,7 +474,8 @@ export function buildBatch(input) {
458
474
  return {
459
475
  kind: 'refused',
460
476
  refusal: {
461
- rule: verdict.rule,
477
+ code: verdict.rule,
478
+ retryable: false,
462
479
  file: verdict.file,
463
480
  ...(verdict.location === undefined ? {} : { location: verdict.location }),
464
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,10 +1,11 @@
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;
@@ -16,6 +17,7 @@ export type ReplicaRecord = {
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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"}