@agentshouse/mdruntime 0.1.0-c69ca0e865e0b → 0.1.0-c6fd2cbbff187

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 (143) hide show
  1. package/AGENTS.md +275 -275
  2. package/dist/acquisition.d.ts +14 -0
  3. package/dist/acquisition.d.ts.map +1 -0
  4. package/dist/acquisition.js +24 -0
  5. package/dist/adapter.d.ts +50 -9
  6. package/dist/adapter.d.ts.map +1 -1
  7. package/dist/bootstrap.d.ts +3 -2
  8. package/dist/bootstrap.d.ts.map +1 -1
  9. package/dist/bootstrap.js +26 -4
  10. package/dist/change-set.d.ts +2 -0
  11. package/dist/change-set.d.ts.map +1 -1
  12. package/dist/change-set.js +36 -10
  13. package/dist/chat/acts.d.ts +3 -4
  14. package/dist/chat/acts.d.ts.map +1 -1
  15. package/dist/chat/acts.js +10 -10
  16. package/dist/chat/earlier.d.ts +10 -0
  17. package/dist/chat/earlier.d.ts.map +1 -0
  18. package/dist/chat/earlier.js +54 -0
  19. package/dist/chat/kit.d.ts +2 -1
  20. package/dist/chat/kit.d.ts.map +1 -1
  21. package/dist/chat/kit.js +3 -3
  22. package/dist/chat/list.d.ts +2 -1
  23. package/dist/chat/list.d.ts.map +1 -1
  24. package/dist/chat/list.js +42 -5
  25. package/dist/chat/message.d.ts.map +1 -1
  26. package/dist/chat/message.js +2 -2
  27. package/dist/chat/messages.d.ts +1 -0
  28. package/dist/chat/messages.d.ts.map +1 -1
  29. package/dist/chat/messages.js +4 -0
  30. package/dist/chat/provider.d.ts +1 -1
  31. package/dist/chat/provider.d.ts.map +1 -1
  32. package/dist/chat/provider.js +59 -69
  33. package/dist/chat/question.d.ts +1 -1
  34. package/dist/chat/question.d.ts.map +1 -1
  35. package/dist/chat/question.js +7 -18
  36. package/dist/chat/ready.d.ts +1 -0
  37. package/dist/chat/ready.d.ts.map +1 -1
  38. package/dist/chat/ready.js +2 -2
  39. package/dist/chat/style.js +1 -1
  40. package/dist/client.d.ts +14 -8
  41. package/dist/client.d.ts.map +1 -1
  42. package/dist/client.js +17 -6
  43. package/dist/collection.d.ts +17 -3
  44. package/dist/collection.d.ts.map +1 -1
  45. package/dist/collection.js +230 -19
  46. package/dist/connection.d.ts +27 -8
  47. package/dist/connection.d.ts.map +1 -1
  48. package/dist/connection.js +1567 -362
  49. package/dist/conversation.d.ts +19 -7
  50. package/dist/conversation.d.ts.map +1 -1
  51. package/dist/conversation.js +438 -152
  52. package/dist/durability.d.ts +7 -1
  53. package/dist/durability.d.ts.map +1 -1
  54. package/dist/entry.d.ts +2 -2
  55. package/dist/entry.d.ts.map +1 -1
  56. package/dist/entry.js +3 -3
  57. package/dist/fence.d.ts +6 -0
  58. package/dist/fence.d.ts.map +1 -0
  59. package/dist/fence.js +10 -0
  60. package/dist/host.d.ts +17 -2
  61. package/dist/host.d.ts.map +1 -1
  62. package/dist/host.js +90 -9
  63. package/dist/identity.d.ts +2 -0
  64. package/dist/identity.d.ts.map +1 -1
  65. package/dist/identity.js +6 -0
  66. package/dist/index.d.ts +9 -6
  67. package/dist/index.d.ts.map +1 -1
  68. package/dist/index.js +2 -0
  69. package/dist/memory.d.ts +9 -2
  70. package/dist/memory.d.ts.map +1 -1
  71. package/dist/memory.js +36 -7
  72. package/dist/model.d.ts +4 -2
  73. package/dist/model.d.ts.map +1 -1
  74. package/dist/model.js +10 -1
  75. package/dist/observation.d.ts +7 -2
  76. package/dist/observation.d.ts.map +1 -1
  77. package/dist/observation.js +29 -12
  78. package/dist/outcome.d.ts +12 -2
  79. package/dist/outcome.d.ts.map +1 -1
  80. package/dist/outcome.js +4 -0
  81. package/dist/overlay.d.ts +2 -0
  82. package/dist/overlay.d.ts.map +1 -1
  83. package/dist/overlay.js +58 -55
  84. package/dist/query.d.ts +56 -4
  85. package/dist/query.d.ts.map +1 -1
  86. package/dist/query.js +36 -7
  87. package/dist/reach.d.ts +6 -3
  88. package/dist/reach.d.ts.map +1 -1
  89. package/dist/reach.js +20 -5
  90. package/dist/react.d.ts +7 -4
  91. package/dist/react.d.ts.map +1 -1
  92. package/dist/react.js +6 -4
  93. package/dist/read-side.d.ts +13 -6
  94. package/dist/read-side.d.ts.map +1 -1
  95. package/dist/read-side.js +419 -92
  96. package/dist/readiness.d.ts +53 -0
  97. package/dist/readiness.d.ts.map +1 -0
  98. package/dist/readiness.js +33 -0
  99. package/dist/reads.d.ts +11 -0
  100. package/dist/reads.d.ts.map +1 -0
  101. package/dist/reads.js +98 -0
  102. package/dist/recovery.d.ts +25 -0
  103. package/dist/recovery.d.ts.map +1 -0
  104. package/dist/recovery.js +197 -0
  105. package/dist/refresh.d.ts +4 -4
  106. package/dist/refresh.d.ts.map +1 -1
  107. package/dist/refresh.js +17 -10
  108. package/dist/replica.d.ts +6 -2
  109. package/dist/replica.d.ts.map +1 -1
  110. package/dist/replica.js +76 -23
  111. package/dist/room-draft.d.ts +13 -1
  112. package/dist/room-draft.d.ts.map +1 -1
  113. package/dist/room-draft.js +2 -2
  114. package/dist/rows.d.ts +6 -13
  115. package/dist/rows.d.ts.map +1 -1
  116. package/dist/rows.js +10 -13
  117. package/dist/save.d.ts +6 -0
  118. package/dist/save.d.ts.map +1 -1
  119. package/dist/save.js +53 -14
  120. package/dist/search.d.ts +49 -6
  121. package/dist/search.d.ts.map +1 -1
  122. package/dist/search.js +192 -47
  123. package/dist/seed.d.ts +16 -0
  124. package/dist/seed.d.ts.map +1 -0
  125. package/dist/seed.js +75 -0
  126. package/dist/shared.d.ts +11 -0
  127. package/dist/shared.d.ts.map +1 -0
  128. package/dist/shared.js +368 -0
  129. package/dist/status.d.ts +4 -0
  130. package/dist/status.d.ts.map +1 -1
  131. package/dist/store.d.ts +56 -11
  132. package/dist/store.d.ts.map +1 -1
  133. package/dist/store.js +311 -84
  134. package/dist/turn.d.ts +7 -0
  135. package/dist/turn.d.ts.map +1 -0
  136. package/dist/turn.js +45 -0
  137. package/dist/windows.d.ts +19 -0
  138. package/dist/windows.d.ts.map +1 -0
  139. package/dist/windows.js +83 -0
  140. package/dist/wire.d.ts +144 -32
  141. package/dist/wire.d.ts.map +1 -1
  142. package/dist/wire.js +50 -31
  143. package/package.json +2 -2
package/dist/client.d.ts CHANGED
@@ -3,17 +3,18 @@ import type { Member, ServiceMode } from './adapter.js';
3
3
  import type { ChatDraft, ConversationAgent, ConversationEntry, ConversationOptions, ConversationView } from './conversation.js';
4
4
  import { type Observation } from './observation.js';
5
5
  import type { BinaryReference } from './binary.js';
6
- import type { BinaryAnswer, CallResult, HistoryAnswer, QueueEntry } from './outcome.js';
7
- import type { DocumentQuery, DocumentResult, GroupQuery, GroupResult } from './query.js';
6
+ import type { BinaryAnswer, BinaryLinkAnswer, CallResult, HistoryAnswer, Offline, QueueEntry } from './outcome.js';
7
+ import type { DocumentQuery, DocumentResult, GroupQuery, GroupResult, PendingResult } from './query.js';
8
8
  import type { RoomDraft, RoomDraftParts, RoomDraftWrite } from './room-draft.js';
9
9
  import type { SearchRequest, SearchResult } from './search.js';
10
+ import type { Readiness } from './readiness.js';
10
11
  import type { SyncStatus } from './status.js';
11
12
  import { type RuntimePort } from './wire.js';
12
13
  export type MdRuntimeClient = {
13
14
  rooms(): Promise<readonly AppRoom[]>;
14
15
  query: {
15
- (query: DocumentQuery): Promise<DocumentResult>;
16
- (query: GroupQuery): Promise<GroupResult>;
16
+ (query: DocumentQuery): Promise<DocumentResult | PendingResult>;
17
+ (query: GroupQuery): Promise<GroupResult | PendingResult>;
17
18
  };
18
19
  search(request: SearchRequest): Promise<SearchResult>;
19
20
  types(locator: string): Promise<RoomSchemas>;
@@ -27,12 +28,13 @@ export type MdRuntimeClient = {
27
28
  presentation: {
28
29
  read(): Promise<unknown>;
29
30
  write(value: unknown): Promise<void>;
31
+ edit(members: Readonly<Record<string, unknown>>): Promise<void>;
30
32
  };
31
33
  conversation: {
32
34
  list(): Promise<readonly ConversationEntry[]>;
33
35
  read(conversation: string, options?: ConversationOptions): Promise<ConversationView>;
34
36
  create(input: unknown): Promise<CallResult>;
35
- send(conversation: string): Promise<CallResult>;
37
+ send(conversation: string, operation?: string, draft?: ChatDraft): Promise<CallResult | Offline>;
36
38
  answer(conversation: string, answer: unknown): Promise<CallResult>;
37
39
  interrupt(conversation: string): Promise<CallResult>;
38
40
  kill(conversation: string): Promise<CallResult>;
@@ -46,22 +48,25 @@ export type MdRuntimeClient = {
46
48
  history(locator: string, path: string, query?: HistoryQuery): Promise<HistoryAnswer>;
47
49
  binaryFile: {
48
50
  read(room: string, path: string, revision?: string): Promise<BinaryAnswer>;
51
+ link(room: string, path: string, revision?: string): Promise<BinaryLinkAnswer>;
49
52
  readReference(reference: BinaryReference): Promise<BinaryAnswer>;
50
53
  };
51
54
  call(name: string, input: unknown): Promise<CallResult>;
52
55
  reached(locator: string, roomVersion: string, path?: string): Promise<boolean>;
53
56
  log(): Promise<string>;
54
57
  persistence(): Promise<boolean>;
58
+ retry(): Promise<void>;
55
59
  observe: {
56
60
  (topic: 'deployment-facts'): Promise<Observation<unknown>>;
57
61
  (topic: 'rooms'): Promise<Observation<readonly AppRoom[]>>;
62
+ (topic: 'readiness'): Promise<Observation<Readiness>>;
58
63
  (topic: 'connection-refusal'): Promise<Observation<ConnectionRefusal | null>>;
59
64
  (topic: 'storage-loss'): Promise<Observation<string | null>>;
60
65
  (topic: 'sync-status'): Promise<Observation<SyncStatus>>;
61
66
  (topic: 'service-mode'): Promise<Observation<ServiceMode>>;
62
67
  (topic: 'member'): Promise<Observation<Member | null>>;
63
- (topic: 'query', query: DocumentQuery): Promise<Observation<DocumentResult>>;
64
- (topic: 'query', query: GroupQuery): Promise<Observation<GroupResult>>;
68
+ (topic: 'query', query: DocumentQuery): Promise<Observation<DocumentResult | PendingResult>>;
69
+ (topic: 'query', query: GroupQuery): Promise<Observation<GroupResult | PendingResult>>;
65
70
  (topic: 'queue', locator: string): Promise<Observation<readonly QueueEntry[]>>;
66
71
  (topic: 'room-drafts'): Promise<Observation<readonly RoomDraft[]>>;
67
72
  (topic: 'presentation'): Promise<Observation<unknown>>;
@@ -75,5 +80,6 @@ export type MdRuntimeClient = {
75
80
  export declare function connectMdRuntime(port: RuntimePort): MdRuntimeClient;
76
81
  export declare function inTurn(client: MdRuntimeClient, work: () => Promise<void>): Promise<void>;
77
82
  export type { Observation } from './observation.js';
78
- export type { RuntimePort } from './wire.js';
83
+ export type { Open } from './open.js';
84
+ export { unanswered, type RuntimePort, type WireMember } from './wire.js';
79
85
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -1,6 +1,8 @@
1
1
  import { observed } from './observation.js';
2
2
  import { runtimeError } from './failure.js';
3
3
  import { answer, AUTHORIZATION_ENDED, PORT_CLOSED, } from './wire.js';
4
+ // React renders an arrived value in a later task and opens what that render observes as it commits, so this many frames opening nothing mean the page drew what it observes.
5
+ const SETTLED_FRAMES = 2;
4
6
  function refused(refusal) {
5
7
  return runtimeError(refusal.code, refusal.code, refusal.retryable);
6
8
  }
@@ -141,14 +143,19 @@ export function connectMdRuntime(port) {
141
143
  if (opening.size > 0)
142
144
  return;
143
145
  const at = moved;
144
- requestAnimationFrame(() => {
146
+ const waited = (frames) => {
145
147
  requestAnimationFrame(() => {
148
+ if (frames < SETTLED_FRAMES) {
149
+ waited(frames + 1);
150
+ return;
151
+ }
146
152
  if (moved !== at || opening.size > 0)
147
153
  return;
148
154
  drawing = null;
149
155
  resolve();
150
156
  });
151
- });
157
+ };
158
+ waited(1);
152
159
  };
153
160
  drawing = check;
154
161
  check();
@@ -170,12 +177,13 @@ export function connectMdRuntime(port) {
170
177
  presentation: {
171
178
  read: () => ask('presentation.read', []),
172
179
  write: (value) => ask('presentation.write', [value]),
180
+ edit: (members) => ask('presentation.edit', [members]),
173
181
  },
174
182
  conversation: {
175
183
  list: () => ask('conversation.list', []),
176
184
  read: (conversation, options) => ask('conversation.read', [conversation, options]),
177
185
  create: (input) => ask('conversation.create', [input]),
178
- send: (conversation) => ask('conversation.send', [conversation]),
186
+ send: (conversation, operation, draft) => ask('conversation.send', [conversation, operation, draft]),
179
187
  answer: (conversation, answer) => ask('conversation.answer', [conversation, answer]),
180
188
  interrupt: (conversation) => ask('conversation.interrupt', [conversation]),
181
189
  kill: (conversation) => ask('conversation.kill', [conversation]),
@@ -189,12 +197,14 @@ export function connectMdRuntime(port) {
189
197
  history: (locator, path, query) => ask('history', [locator, path, query]),
190
198
  binaryFile: {
191
199
  read: (room, path, revision) => ask('binaryFile.read', [room, path, revision]),
200
+ link: (room, path, revision) => ask('binaryFile.link', [room, path, revision]),
192
201
  readReference: (reference) => ask('binaryFile.readReference', [reference]),
193
202
  },
194
203
  call: (name, input) => ask('call', [name, input]),
195
204
  reached: (locator, roomVersion, path) => ask('reached', [locator, roomVersion, path]),
196
205
  log: () => ask('log', []),
197
206
  persistence: () => ask('persistence', []),
207
+ retry: () => ask('retry', []),
198
208
  observe: ((topic, ...input) => watch(topic, input)),
199
209
  reauthorize: () => ask('reauthorize', []),
200
210
  settled,
@@ -202,7 +212,8 @@ export function connectMdRuntime(port) {
202
212
  }
203
213
  const turns = new WeakMap();
204
214
  export function inTurn(client, work) {
205
- const next = (turns.get(client) ?? Promise.resolve()).then(work).catch(() => undefined);
206
- turns.set(client, next);
207
- return next;
215
+ const turn = (turns.get(client) ?? Promise.resolve()).then(work);
216
+ turns.set(client, turn.then(() => undefined, () => undefined));
217
+ return turn;
208
218
  }
219
+ export { unanswered } from './wire.js';
@@ -1,7 +1,9 @@
1
- import { type Document, type Validation } from '@agentshouse/mdmodel';
2
- import type { ModelState } from './model.js';
1
+ import { type Document, type Frontmatter, type Validation } from '@agentshouse/mdmodel';
2
+ import { type ModelState } from './model.js';
3
3
  import type { MdModelIdentity } from './adapter.js';
4
+ import { type Paths } from './shared.js';
4
5
  import type { Refused } from './transfer.js';
6
+ import { type Later } from './turn.js';
5
7
  export declare const MD_MODEL: MdModelIdentity;
6
8
  export type Collection = {
7
9
  text: Readonly<Record<string, string>>;
@@ -17,9 +19,21 @@ export type Composition = {
17
19
  };
18
20
  export declare function governing(composition: Composition, path: string): ModelState;
19
21
  export declare function collectionOf(text: Readonly<Record<string, string>>, composition: Composition, previous?: Collection): Collection;
20
- export declare function passingDocument(collection: Collection, path: string): Document | undefined;
22
+ export declare function passingFrontmatter(collection: Collection, path: string): Frontmatter | undefined;
21
23
  export declare function documentsOf(collection: Collection): Generator<readonly [string, Document]>;
22
24
  export declare function unreadable(text: Readonly<Record<string, string>>, previous?: Readonly<Record<string, string>>): Refused | null;
23
25
  export declare function validRoot(root: unknown): root is string;
24
26
  export declare function validateCollection(text: Readonly<Record<string, string>>, binaryTargets: readonly string[], composition: Composition): Validation;
27
+ type Held = {
28
+ text: Paths<string>;
29
+ binaries: Paths<unknown>;
30
+ };
31
+ export declare function indexReferrers(held: Held, composition: Composition): Later<void>;
32
+ export declare function referencesIndexed(held: Held, composition: Composition): boolean;
33
+ export declare function referring(held: Held, composition: Composition, targets: Iterable<string>): ReadonlySet<string> | null;
34
+ export declare function available(composition: Composition): boolean;
35
+ export declare function changedCleanly(next: Held, previous: Held & {
36
+ composition: Composition;
37
+ }, composition: Composition): boolean;
38
+ export {};
25
39
  //# sourceMappingURL=collection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../src/collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,QAAQ,EACb,KAAK,UAAU,EAEhB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,eAAO,MAAM,QAAQ,EAAE,eAAwE,CAAC;AAIhG,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvC,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE;QAAE,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,UAAU,CAAA;KAAE,GAAG,IAAI,CAAC;CACnE,CAAC;AASF,wBAAgB,SAAS,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAI5E;AAID,wBAAgB,YAAY,CAC1B,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACtC,WAAW,EAAE,WAAW,EACxB,QAAQ,CAAC,EAAE,UAAU,GACpB,UAAU,CAsBZ;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAO1F;AAED,wBAAiB,WAAW,CAAC,UAAU,EAAE,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAY3F;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACtC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAC1C,OAAO,GAAG,IAAI,CAOhB;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,MAAM,CAEvD;AAwBD,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACtC,aAAa,EAAE,SAAS,MAAM,EAAE,EAChC,WAAW,EAAE,WAAW,GACvB,UAAU,CA0BZ"}
1
+ {"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../src/collection.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
- import { parse, validate, VERSION, } from '@agentshouse/mdmodel';
1
+ import { checkDocument, parseFrontmatter, references, sectionReferences, target, parse, resolves, validate, VERSION, } from '@agentshouse/mdmodel';
2
2
  import { beneath, normalize } from './paths.js';
3
+ import { sameTyping } from './model.js';
4
+ import { differing, patched, shared } from './shared.js';
5
+ import { 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) {
@@ -12,46 +15,59 @@ export function governing(composition, path) {
12
15
  : composition.model;
13
16
  }
14
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 = patched(held.base, held.added);
23
+ held.base = kept;
24
+ held.added = new Map();
25
+ return patched(kept, [], differing(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
+ }
15
35
  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
- }
36
+ const parsed = {
37
+ base: previous === undefined ? shared({}) : carried(previous, text),
38
+ added: new Map(),
39
+ };
23
40
  const collection = {
24
41
  text,
25
42
  composition,
26
43
  document(path) {
27
- const held = parsed.get(path);
44
+ const held = cachedIn(collection, path);
28
45
  if (held !== undefined)
29
46
  return held ?? undefined;
30
47
  const content = text[path];
31
48
  if (content === undefined)
32
49
  return undefined;
33
50
  const read = parse(content, path);
34
- parsed.set(path, read.ok ? read.document : null);
51
+ parsed.added.set(path, read.ok ? read.document : null);
35
52
  return read.ok ? read.document : undefined;
36
53
  },
37
54
  };
38
55
  parsedIn.set(collection, parsed);
39
56
  return collection;
40
57
  }
41
- export function passingDocument(collection, path) {
42
- const held = parsedIn.get(collection)?.get(path);
58
+ export function passingFrontmatter(collection, path) {
59
+ const held = cachedIn(collection, path);
43
60
  if (held !== undefined)
44
61
  return held ?? undefined;
45
62
  const content = collection.text[path];
46
63
  if (content === undefined)
47
64
  return undefined;
48
- const read = parse(content, path);
49
- return read.ok ? read.document : undefined;
65
+ const read = parseFrontmatter(content, path);
66
+ return read.ok ? read.frontmatter : undefined;
50
67
  }
51
68
  export function* documentsOf(collection) {
52
- const parsed = parsedIn.get(collection);
53
69
  for (const path of Object.keys(collection.text).sort()) {
54
- const held = parsed?.get(path);
70
+ const held = cachedIn(collection, path);
55
71
  if (held === null)
56
72
  continue;
57
73
  if (held !== undefined) {
@@ -64,9 +80,10 @@ export function* documentsOf(collection) {
64
80
  }
65
81
  }
66
82
  export function unreadable(text, previous) {
67
- for (const path of Object.keys(text).sort()) {
68
- if (previous?.[path] === text[path])
69
- continue;
83
+ const paths = previous === undefined
84
+ ? Object.keys(text)
85
+ : [...differing(previous, text)].filter((path) => text[path] !== undefined);
86
+ for (const path of paths.sort()) {
70
87
  const read = parse(text[path], path);
71
88
  if (!read.ok)
72
89
  return { kind: 'refused', refusal: read.refusal };
@@ -107,3 +124,197 @@ export function validateCollection(text, binaryTargets, composition) {
107
124
  return verdicts[0];
108
125
  return refusals.find((refusal) => refusal.rule !== 'model-unavailable') ?? refusals[0];
109
126
  }
127
+ const referrersOf = new WeakMap();
128
+ function typing(left, right) {
129
+ return (sameTyping(left.model, right.model) &&
130
+ (left.selection === null || right.selection === null
131
+ ? left.selection === right.selection
132
+ : sameTyping(left.selection.model, right.selection.model)) &&
133
+ JSON.stringify(left.selection?.roots ?? null) === JSON.stringify(right.selection?.roots ?? null));
134
+ }
135
+ function declared(content) {
136
+ if (content === undefined)
137
+ return undefined;
138
+ const read = parseFrontmatter(content);
139
+ return read.ok ? (read.frontmatter.type ?? 'any') : undefined;
140
+ }
141
+ function typedIn(content) {
142
+ const type = declared(content);
143
+ return type !== undefined && type !== 'any';
144
+ }
145
+ function modelOf(composition, path) {
146
+ const model = governing(composition, path);
147
+ return model.status === 'unavailable' ? null : { types: model.types };
148
+ }
149
+ function checked(path, content, composition) {
150
+ return checkDocument(path, content, modelOf(composition, path) ?? NO_TYPES);
151
+ }
152
+ function targetsOf(check) {
153
+ if (!check.ok)
154
+ return [];
155
+ return [...new Set(check.references.flatMap(({ target }) => (target === null ? [] : [target])))];
156
+ }
157
+ function referencedBy(path, content, composition) {
158
+ const model = modelOf(composition, path);
159
+ if (model === null)
160
+ return [];
161
+ const read = parseFrontmatter(content, path);
162
+ const type = read.ok ? read.frontmatter.type : undefined;
163
+ if (!read.ok || type === undefined || !Object.hasOwn(model.types, type))
164
+ return [];
165
+ const definition = model.types[type];
166
+ return [
167
+ ...new Set([
168
+ ...references(read.frontmatter, definition).flatMap(({ value }) => {
169
+ const found = target(path, value);
170
+ return found === null ? [] : [found];
171
+ }),
172
+ ...sectionReferences(path, content, definition).flatMap(({ target }) => target === null ? [] : [target]),
173
+ ]),
174
+ ];
175
+ }
176
+ function reindexed(index, changed) {
177
+ const referrers = new Map();
178
+ const touch = (target) => {
179
+ let held = referrers.get(target);
180
+ if (held === undefined) {
181
+ held = new Set(Object.hasOwn(index.referrers, target) ? index.referrers[target] : []);
182
+ referrers.set(target, held);
183
+ }
184
+ return held;
185
+ };
186
+ for (const [path, found] of changed) {
187
+ const before = Object.hasOwn(index.targets, path) ? index.targets[path] : [];
188
+ for (const target of before)
189
+ touch(target).delete(path);
190
+ for (const target of found)
191
+ touch(target).add(path);
192
+ }
193
+ const emptied = [...referrers].filter(([, held]) => held.size === 0).map(([target]) => target);
194
+ return {
195
+ composition: index.composition,
196
+ targets: patched(index.targets, [...changed].filter(([, found]) => found.length > 0), [...changed].filter(([, found]) => found.length === 0).map(([path]) => path)),
197
+ referrers: patched(index.referrers, [...referrers]
198
+ .filter(([, held]) => held.size > 0)
199
+ .map(([target, held]) => [target, [...held]]), emptied),
200
+ };
201
+ }
202
+ function heldIndex(held, composition) {
203
+ const index = referrersOf.get(held.text);
204
+ return index !== undefined && typing(index.composition, composition) ? index : null;
205
+ }
206
+ const indexing = new WeakMap();
207
+ export function indexReferrers(held, composition) {
208
+ if (heldIndex(held, composition) !== null)
209
+ return;
210
+ const running = indexing.get(held.text);
211
+ if (running !== undefined)
212
+ return running;
213
+ const targets = new Map();
214
+ const referrers = new Map();
215
+ const filled = inUnits(Object.keys(held.text), (path) => {
216
+ const content = held.text[path];
217
+ const found = referencedBy(path, content, composition);
218
+ if (found.length > 0)
219
+ targets.set(path, found);
220
+ for (const target of found)
221
+ referrers.set(target, [...(referrers.get(target) ?? []), path]);
222
+ return ROW_WEIGHT + content.length;
223
+ });
224
+ const indexed = () => {
225
+ referrersOf.set(held.text, {
226
+ composition,
227
+ targets: patched(shared({}), targets),
228
+ referrers: patched(shared({}), referrers),
229
+ });
230
+ };
231
+ if (!(filled instanceof Promise))
232
+ return indexed();
233
+ const building = filled.then(indexed).finally(() => indexing.delete(held.text));
234
+ indexing.set(held.text, building);
235
+ return building;
236
+ }
237
+ export function referencesIndexed(held, composition) {
238
+ return heldIndex(held, composition) !== null;
239
+ }
240
+ export function referring(held, composition, targets) {
241
+ const index = heldIndex(held, composition);
242
+ if (index === null)
243
+ return null;
244
+ const found = new Set();
245
+ for (const target of targets) {
246
+ if (!Object.hasOwn(index.referrers, target))
247
+ continue;
248
+ for (const file of index.referrers[target])
249
+ found.add(file);
250
+ }
251
+ return found;
252
+ }
253
+ export function available(composition) {
254
+ return (composition.model.status !== 'unavailable' &&
255
+ (composition.selection === null || composition.selection.model.status !== 'unavailable'));
256
+ }
257
+ export function changedCleanly(next, previous, composition) {
258
+ if (!typing(previous.composition, composition))
259
+ return false;
260
+ const paths = new Set([
261
+ ...differing(previous.text, next.text),
262
+ ...differing(previous.binaries, next.binaries, () => true),
263
+ ]);
264
+ const binary = (path) => Object.hasOwn(next.binaries, path);
265
+ const within = (file) => (path) => selected(composition, path) === selected(composition, file);
266
+ const reaching = (file, check) => {
267
+ if (!check.ok)
268
+ return false;
269
+ const part = within(file);
270
+ return check.references.every((reference) => resolves(reference, (path) => (part(path) ? declared(next.text[path]) : undefined), (path) => part(path) && binary(path)));
271
+ };
272
+ const changedTargets = new Map();
273
+ const shifted = [];
274
+ for (const path of paths) {
275
+ const now = next.text[path];
276
+ const was = previous.text[path];
277
+ const modeled = modelOf(composition, path) !== null;
278
+ if ((now === undefined) !== (was === undefined) ||
279
+ declared(now) !== declared(was) ||
280
+ binary(path) !== Object.hasOwn(previous.binaries, path)) {
281
+ shifted.push(path);
282
+ }
283
+ if (!modeled && typedIn(was) && !typedIn(now))
284
+ return false;
285
+ if (now === undefined) {
286
+ if (modeled)
287
+ changedTargets.set(path, []);
288
+ continue;
289
+ }
290
+ if (binary(path))
291
+ return false;
292
+ if (!modeled) {
293
+ if (declared(now) === undefined)
294
+ return false;
295
+ if (!typedIn(now) && !checked(path, now, composition).ok)
296
+ return false;
297
+ continue;
298
+ }
299
+ const check = checked(path, now, composition);
300
+ if (!reaching(path, check))
301
+ return false;
302
+ changedTargets.set(path, targetsOf(check));
303
+ }
304
+ const index = heldIndex(previous, composition);
305
+ if (index === null && shifted.length > 0)
306
+ return false;
307
+ for (const target of shifted) {
308
+ const files = index !== null && Object.hasOwn(index.referrers, target) ? index.referrers[target] : [];
309
+ for (const file of files) {
310
+ if (paths.has(file))
311
+ continue;
312
+ if (!reaching(file, checked(file, next.text[file], composition)))
313
+ return false;
314
+ }
315
+ }
316
+ if (index !== null) {
317
+ referrersOf.set(next.text, changedTargets.size === 0 ? index : reindexed(index, changedTargets));
318
+ }
319
+ return true;
320
+ }
@@ -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 BinaryAnswer, type BinaryLinkAnswer, type CallResult, type HistoryAnswer, type QueueEntry } from './outcome.js';
12
+ import { type Recovery } from './recovery.js';
11
13
  import { type SaveRefusal } from './save.js';
12
14
  import { type RoomDraft, 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 RuntimeDemand } from './acquisition.js';
18
+ import { type CapacityCause, type CodeAvailability, type Persistence, type Readiness, type SearchObligation } from './readiness.js';
15
19
  import { type NarrowedView, type PortReach, type RuntimeView } from './reach.js';
16
20
  export type AppTypedSelection = {
17
21
  roots: readonly string[];
@@ -48,6 +52,7 @@ export type MdRuntimeOptions = {
48
52
  shell: RuntimeShell;
49
53
  authorization?: Authorization;
50
54
  signal?: AbortSignal;
55
+ recovery?: Recovery;
51
56
  };
52
57
  export type SaveResult = {
53
58
  outcome: 'saved';
@@ -68,9 +73,11 @@ export type RoomDraftSurface = {
68
73
  export type PresentationSurface = {
69
74
  read(app: string): Promise<unknown>;
70
75
  write(app: string, value: unknown): Promise<void>;
76
+ edit(app: string, members: Readonly<Record<string, unknown>>): Promise<void>;
71
77
  };
72
78
  export type BinaryFileSurface = {
73
79
  read(room: string, path: string, revision?: string): Promise<BinaryAnswer>;
80
+ link(room: string, path: string, revision?: string): Promise<BinaryLinkAnswer>;
74
81
  readReference(reference: BinaryReference): Promise<BinaryAnswer>;
75
82
  };
76
83
  export type HistoryQuery = {
@@ -81,8 +88,8 @@ export type MdRuntime = {
81
88
  loaded(): Promise<void>;
82
89
  rooms(): readonly AppRoom[];
83
90
  query: {
84
- (query: DocumentQuery): Promise<DocumentResult>;
85
- (query: GroupQuery): Promise<GroupResult>;
91
+ (query: DocumentQuery): Promise<DocumentResult | PendingResult>;
92
+ (query: GroupQuery): Promise<GroupResult | PendingResult>;
86
93
  };
87
94
  search(request: SearchRequest): Promise<SearchResult>;
88
95
  types(locator: string): RoomSchemas;
@@ -97,15 +104,17 @@ export type MdRuntime = {
97
104
  reached(locator: string, roomVersion: string, path?: string): boolean;
98
105
  log(): string;
99
106
  persistence(): boolean;
107
+ retry(): Promise<void>;
100
108
  observe: {
101
109
  (topic: 'rooms'): Promise<Observation<readonly AppRoom[]>>;
110
+ (topic: 'readiness'): Promise<Observation<Readiness>>;
102
111
  (topic: 'connection-refusal'): Promise<Observation<ConnectionRefusal | null>>;
103
112
  (topic: 'storage-loss'): Promise<Observation<string | null>>;
104
113
  (topic: 'sync-status'): Promise<Observation<SyncStatus>>;
105
114
  (topic: 'service-mode'): Promise<Observation<ServiceMode>>;
106
115
  (topic: 'member'): Promise<Observation<Member | null>>;
107
- (topic: 'query', query: DocumentQuery): Promise<Observation<DocumentResult>>;
108
- (topic: 'query', query: GroupQuery): Promise<Observation<GroupResult>>;
116
+ (topic: 'query', query: DocumentQuery): Promise<Observation<DocumentResult | PendingResult>>;
117
+ (topic: 'query', query: GroupQuery): Promise<Observation<GroupResult | PendingResult>>;
109
118
  (topic: 'queue', locator: string): Promise<Observation<readonly QueueEntry[]>>;
110
119
  (topic: 'room-drafts'): Promise<Observation<readonly RoomDraft[]>>;
111
120
  (topic: 'presentation', app: string): Promise<Observation<unknown>>;
@@ -115,10 +124,20 @@ export type MdRuntime = {
115
124
  };
116
125
  reauthorize(): Promise<void>;
117
126
  };
118
- export type RuntimeTopic = 'rooms' | 'connection-refusal' | 'storage-loss' | 'sync-status' | 'service-mode' | 'member' | 'query' | 'queue' | 'room-drafts' | 'presentation' | 'conversation' | 'conversations' | 'agents';
127
+ export type RuntimeTopic = 'rooms' | 'readiness' | 'connection-refusal' | 'storage-loss' | 'sync-status' | 'service-mode' | 'member' | 'query' | 'queue' | 'room-drafts' | 'presentation' | 'conversation' | 'conversations' | 'agents';
128
+ export type ReadinessPort = {
129
+ readonly target: string;
130
+ readonly code: CodeAvailability;
131
+ readonly capacity: CapacityCause | null;
132
+ readonly search: SearchObligation;
133
+ };
119
134
  export type ComposedRuntime = RuntimeView & {
135
+ seed(entry: EntrySeed): void;
120
136
  stop(): Promise<void>;
121
- within(reach: PortReach | null): NarrowedView;
137
+ lose(locators: readonly string[]): Promise<void>;
138
+ acquire(demand: RuntimeDemand): void;
139
+ persisted(answer: Persistence): void;
140
+ within(reach: PortReach | null, port: ReadinessPort): NarrowedView;
122
141
  };
123
142
  export declare function composeRuntime(options: MdRuntimeOptions): ComposedRuntime;
124
143
  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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"}