@agentshouse/mdruntime 0.1.0-c454894e67f74 → 0.1.0-c49444f2a8fc6

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 (243) hide show
  1. package/README.md +19 -16
  2. package/dist/adapter.d.ts +148 -79
  3. package/dist/adapter.d.ts.map +1 -1
  4. package/dist/attached-model.d.ts +7 -10
  5. package/dist/attached-model.d.ts.map +1 -1
  6. package/dist/attached-model.js +40 -41
  7. package/dist/binary.d.ts +0 -5
  8. package/dist/binary.d.ts.map +1 -1
  9. package/dist/binary.js +1 -1
  10. package/dist/bootstrap.d.ts +31 -11
  11. package/dist/bootstrap.d.ts.map +1 -1
  12. package/dist/bootstrap.js +319 -107
  13. package/dist/chain.d.ts +12 -0
  14. package/dist/chain.d.ts.map +1 -0
  15. package/dist/chain.js +64 -0
  16. package/dist/change-set.d.ts +9 -16
  17. package/dist/change-set.d.ts.map +1 -1
  18. package/dist/change-set.js +11 -88
  19. package/dist/change.d.ts +32 -1
  20. package/dist/change.d.ts.map +1 -1
  21. package/dist/change.js +10 -1
  22. package/dist/client.d.ts +22 -10
  23. package/dist/client.d.ts.map +1 -1
  24. package/dist/client.js +97 -11
  25. package/dist/collection.d.ts +11 -21
  26. package/dist/collection.d.ts.map +1 -1
  27. package/dist/collection.js +39 -291
  28. package/dist/compile.d.ts +11 -0
  29. package/dist/compile.d.ts.map +1 -0
  30. package/dist/compile.js +586 -0
  31. package/dist/connection.d.ts +34 -18
  32. package/dist/connection.d.ts.map +1 -1
  33. package/dist/connection.js +3742 -1778
  34. package/dist/context.d.ts +2 -0
  35. package/dist/context.d.ts.map +1 -0
  36. package/dist/{chat/context.js → context.js} +1 -4
  37. package/dist/conversation-row.d.ts +33 -0
  38. package/dist/conversation-row.d.ts.map +1 -0
  39. package/dist/conversation-row.js +47 -0
  40. package/dist/conversation.d.ts +41 -18
  41. package/dist/conversation.d.ts.map +1 -1
  42. package/dist/conversation.js +715 -312
  43. package/dist/digest.d.ts +7 -0
  44. package/dist/digest.d.ts.map +1 -0
  45. package/dist/digest.js +113 -0
  46. package/dist/durability.d.ts +7 -4
  47. package/dist/durability.d.ts.map +1 -1
  48. package/dist/durability.js +5 -0
  49. package/dist/entry.d.ts +5 -2
  50. package/dist/entry.d.ts.map +1 -1
  51. package/dist/entry.js +33 -28
  52. package/dist/file.d.ts +2 -19
  53. package/dist/file.d.ts.map +1 -1
  54. package/dist/file.js +7 -122
  55. package/dist/host.d.ts +6 -8
  56. package/dist/host.d.ts.map +1 -1
  57. package/dist/host.js +97 -23
  58. package/dist/identity.d.ts +0 -2
  59. package/dist/identity.d.ts.map +1 -1
  60. package/dist/identity.js +0 -6
  61. package/dist/index.d.ts +22 -13
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +9 -1
  64. package/dist/job.d.ts +33 -0
  65. package/dist/job.d.ts.map +1 -0
  66. package/dist/job.js +54 -0
  67. package/dist/live.d.ts +23 -0
  68. package/dist/live.d.ts.map +1 -0
  69. package/dist/live.js +165 -0
  70. package/dist/media.d.ts +8 -0
  71. package/dist/media.d.ts.map +1 -0
  72. package/dist/media.js +218 -0
  73. package/dist/memory.d.ts +19 -7
  74. package/dist/memory.d.ts.map +1 -1
  75. package/dist/memory.js +248 -103
  76. package/dist/messages.d.ts +52 -0
  77. package/dist/messages.d.ts.map +1 -0
  78. package/dist/messages.js +168 -0
  79. package/dist/model.d.ts +8 -10
  80. package/dist/model.d.ts.map +1 -1
  81. package/dist/model.js +6 -18
  82. package/dist/name.d.ts +4 -0
  83. package/dist/name.d.ts.map +1 -0
  84. package/dist/name.js +122 -0
  85. package/dist/observation.d.ts +17 -2
  86. package/dist/observation.d.ts.map +1 -1
  87. package/dist/observation.js +100 -5
  88. package/dist/opened.d.ts +22 -0
  89. package/dist/opened.d.ts.map +1 -0
  90. package/dist/opened.js +107 -0
  91. package/dist/outcome.d.ts +45 -7
  92. package/dist/outcome.d.ts.map +1 -1
  93. package/dist/outcome.js +39 -0
  94. package/dist/overlay.d.ts +4 -5
  95. package/dist/overlay.d.ts.map +1 -1
  96. package/dist/overlay.js +106 -156
  97. package/dist/{chat/parts.d.ts → parts.d.ts} +11 -9
  98. package/dist/parts.d.ts.map +1 -0
  99. package/dist/{chat/parts.js → parts.js} +45 -46
  100. package/dist/paths.d.ts +1 -0
  101. package/dist/paths.d.ts.map +1 -1
  102. package/dist/paths.js +4 -0
  103. package/dist/query.d.ts +16 -185
  104. package/dist/query.d.ts.map +1 -1
  105. package/dist/query.js +3 -464
  106. package/dist/{chat/questions.d.ts → questions.d.ts} +3 -2
  107. package/dist/questions.d.ts.map +1 -0
  108. package/dist/{chat/questions.js → questions.js} +8 -1
  109. package/dist/reach.d.ts +17 -9
  110. package/dist/reach.d.ts.map +1 -1
  111. package/dist/reach.js +276 -99
  112. package/dist/react.d.ts +6 -4
  113. package/dist/react.d.ts.map +1 -1
  114. package/dist/react.js +7 -17
  115. package/dist/{chat/read.d.ts → read.d.ts} +2 -0
  116. package/dist/read.d.ts.map +1 -0
  117. package/dist/{chat/read.js → read.js} +4 -0
  118. package/dist/readiness.d.ts +14 -17
  119. package/dist/readiness.d.ts.map +1 -1
  120. package/dist/readiness.js +2 -8
  121. package/dist/recovery.d.ts +3 -2
  122. package/dist/recovery.d.ts.map +1 -1
  123. package/dist/recovery.js +43 -8
  124. package/dist/refresh.d.ts +17 -14
  125. package/dist/refresh.d.ts.map +1 -1
  126. package/dist/refresh.js +143 -52
  127. package/dist/replica.d.ts +58 -33
  128. package/dist/replica.d.ts.map +1 -1
  129. package/dist/replica.js +331 -181
  130. package/dist/room-draft.d.ts +37 -6
  131. package/dist/room-draft.d.ts.map +1 -1
  132. package/dist/room-draft.js +161 -74
  133. package/dist/rows.d.ts +31 -29
  134. package/dist/rows.d.ts.map +1 -1
  135. package/dist/rows.js +59 -116
  136. package/dist/save.d.ts +53 -14
  137. package/dist/save.d.ts.map +1 -1
  138. package/dist/save.js +534 -187
  139. package/dist/search.d.ts +15 -77
  140. package/dist/search.d.ts.map +1 -1
  141. package/dist/search.js +10 -184
  142. package/dist/seed.d.ts +16 -0
  143. package/dist/seed.d.ts.map +1 -0
  144. package/dist/seed.js +75 -0
  145. package/dist/shared.d.ts +7 -3
  146. package/dist/shared.d.ts.map +1 -1
  147. package/dist/shared.js +119 -66
  148. package/dist/source.d.ts +61 -0
  149. package/dist/source.d.ts.map +1 -0
  150. package/dist/source.js +81 -0
  151. package/dist/status.d.ts +4 -5
  152. package/dist/status.d.ts.map +1 -1
  153. package/dist/status.js +3 -7
  154. package/dist/store.d.ts +159 -108
  155. package/dist/store.d.ts.map +1 -1
  156. package/dist/store.js +365 -686
  157. package/dist/stored.d.ts +156 -0
  158. package/dist/stored.d.ts.map +1 -0
  159. package/dist/stored.js +635 -0
  160. package/dist/tables.d.ts +388 -0
  161. package/dist/tables.d.ts.map +1 -0
  162. package/dist/tables.js +706 -0
  163. package/dist/transfer.d.ts +0 -5
  164. package/dist/transfer.d.ts.map +1 -1
  165. package/dist/turn.d.ts +5 -3
  166. package/dist/turn.d.ts.map +1 -1
  167. package/dist/turn.js +51 -21
  168. package/dist/validation.d.ts +29 -0
  169. package/dist/validation.d.ts.map +1 -0
  170. package/dist/validation.js +104 -0
  171. package/dist/windows.d.ts +11 -0
  172. package/dist/windows.d.ts.map +1 -0
  173. package/dist/windows.js +16 -0
  174. package/dist/wire.d.ts +42 -5
  175. package/dist/wire.d.ts.map +1 -1
  176. package/dist/wire.js +12 -2
  177. package/package.json +18 -19
  178. package/AGENTS.md +0 -302
  179. package/dist/acquisition.d.ts +0 -14
  180. package/dist/acquisition.d.ts.map +0 -1
  181. package/dist/acquisition.js +0 -24
  182. package/dist/chat/acts.d.ts +0 -33
  183. package/dist/chat/acts.d.ts.map +0 -1
  184. package/dist/chat/acts.js +0 -36
  185. package/dist/chat/context.d.ts +0 -3
  186. package/dist/chat/context.d.ts.map +0 -1
  187. package/dist/chat/input.d.ts +0 -9
  188. package/dist/chat/input.d.ts.map +0 -1
  189. package/dist/chat/input.js +0 -99
  190. package/dist/chat/kit.d.ts +0 -61
  191. package/dist/chat/kit.d.ts.map +0 -1
  192. package/dist/chat/kit.js +0 -123
  193. package/dist/chat/lasting.d.ts +0 -6
  194. package/dist/chat/lasting.d.ts.map +0 -1
  195. package/dist/chat/lasting.js +0 -19
  196. package/dist/chat/list.d.ts +0 -27
  197. package/dist/chat/list.d.ts.map +0 -1
  198. package/dist/chat/list.js +0 -63
  199. package/dist/chat/markdown.d.ts +0 -20
  200. package/dist/chat/markdown.d.ts.map +0 -1
  201. package/dist/chat/markdown.js +0 -188
  202. package/dist/chat/message.d.ts +0 -6
  203. package/dist/chat/message.d.ts.map +0 -1
  204. package/dist/chat/message.js +0 -192
  205. package/dist/chat/messages.d.ts +0 -22
  206. package/dist/chat/messages.d.ts.map +0 -1
  207. package/dist/chat/messages.js +0 -155
  208. package/dist/chat/name.d.ts +0 -6
  209. package/dist/chat/name.d.ts.map +0 -1
  210. package/dist/chat/name.js +0 -37
  211. package/dist/chat/opened.d.ts +0 -11
  212. package/dist/chat/opened.d.ts.map +0 -1
  213. package/dist/chat/opened.js +0 -17
  214. package/dist/chat/overlay.d.ts +0 -31
  215. package/dist/chat/overlay.d.ts.map +0 -1
  216. package/dist/chat/overlay.js +0 -97
  217. package/dist/chat/parts.d.ts.map +0 -1
  218. package/dist/chat/process.d.ts +0 -20
  219. package/dist/chat/process.d.ts.map +0 -1
  220. package/dist/chat/process.js +0 -32
  221. package/dist/chat/provider.d.ts +0 -63
  222. package/dist/chat/provider.d.ts.map +0 -1
  223. package/dist/chat/provider.js +0 -629
  224. package/dist/chat/question.d.ts +0 -9
  225. package/dist/chat/question.d.ts.map +0 -1
  226. package/dist/chat/question.js +0 -80
  227. package/dist/chat/questions.d.ts.map +0 -1
  228. package/dist/chat/read.d.ts.map +0 -1
  229. package/dist/chat/ready.d.ts +0 -34
  230. package/dist/chat/ready.d.ts.map +0 -1
  231. package/dist/chat/ready.js +0 -91
  232. package/dist/chat/style.d.ts +0 -4
  233. package/dist/chat/style.d.ts.map +0 -1
  234. package/dist/chat/style.js +0 -302
  235. package/dist/chat.d.ts +0 -14
  236. package/dist/chat.d.ts.map +0 -1
  237. package/dist/chat.js +0 -8
  238. package/dist/fence.d.ts +0 -6
  239. package/dist/fence.d.ts.map +0 -1
  240. package/dist/fence.js +0 -10
  241. package/dist/read-side.d.ts +0 -25
  242. package/dist/read-side.d.ts.map +0 -1
  243. package/dist/read-side.js +0 -639
@@ -1,10 +1,5 @@
1
- import type { Refusal } from '@agentshouse/mdmodel';
2
1
  export type Unconfirmed = {
3
2
  kind: 'unconfirmed';
4
3
  };
5
- export type Refused = {
6
- kind: 'refused';
7
- refusal: Refusal;
8
- };
9
4
  export declare const unconfirmed: Unconfirmed;
10
5
  //# sourceMappingURL=transfer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transfer.d.ts","sourceRoot":"","sources":["../src/transfer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,MAAM,WAAW,GAAG;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC;AAElD,MAAM,MAAM,OAAO,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAE5D,eAAO,MAAM,WAAW,EAAE,WAAqC,CAAC"}
1
+ {"version":3,"file":"transfer.d.ts","sourceRoot":"","sources":["../src/transfer.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC;AAElD,eAAO,MAAM,WAAW,EAAE,WAAqC,CAAC"}
package/dist/turn.d.ts CHANGED
@@ -1,7 +1,9 @@
1
1
  export declare function yielded(): Promise<void>;
2
2
  export declare const ROW_WEIGHT = 256;
3
3
  export type Later<T> = T | Promise<T>;
4
- export declare function after<T, R>(value: Later<T>, next: (value: T) => R): Later<R>;
5
- export declare function inUnits<T>(items: Iterable<T>, each: (item: T) => number): Later<void>;
6
- export declare function inChunks<T>(items: readonly T[], weigh: (item: T) => number, each: (chunk: readonly T[]) => void): Promise<void>;
4
+ export declare function after<T, R>(value: Later<T>, next: (value: T) => Later<R>): Later<R>;
5
+ export declare function paced(): (weight: number) => Later<void>;
6
+ export declare function inUnits<T>(items: Iterable<T>, each: (item: T) => number, ended?: () => void, paused?: () => Promise<void>): Later<void>;
7
+ export declare function finished<R>(steps: Generator<number, R, void>): R;
8
+ export declare function stepped<R>(steps: Generator<number, R, void>): Later<R>;
7
9
  //# sourceMappingURL=turn.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"turn.d.ts","sourceRoot":"","sources":["../src/turn.ts"],"names":[],"mappings":"AAAA,wBAAgB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CASvC;AAID,eAAO,MAAM,UAAU,MAAM,CAAC;AAE9B,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEtC,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAE5E;AAaD,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAOrF;AAED,wBAAsB,QAAQ,CAAC,CAAC,EAC9B,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,EAC1B,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,KAAK,IAAI,GAClC,OAAO,CAAC,IAAI,CAAC,CAUf"}
1
+ {"version":3,"file":"turn.d.ts","sourceRoot":"","sources":["../src/turn.ts"],"names":[],"mappings":"AAAA,wBAAgB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CASvC;AAOD,eAAO,MAAM,UAAU,MAAM,CAAC;AAE9B,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEtC,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAEnF;AAmBD,wBAAgB,KAAK,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,KAAK,CAAC,IAAI,CAAC,CAGvD;AAsBD,wBAAgB,OAAO,CAAC,CAAC,EACvB,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAClB,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,EACzB,KAAK,GAAE,MAAM,IAAe,EAC5B,MAAM,GAAE,MAAM,OAAO,CAAC,IAAI,CAAW,GACpC,KAAK,CAAC,IAAI,CAAC,CAUb;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAIhE;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAStE"}
package/dist/turn.js CHANGED
@@ -5,41 +5,71 @@ export function yielded() {
5
5
  channel.port1.close();
6
6
  resolve();
7
7
  };
8
- channel.port2.postMessage(null);
8
+ structuredClone(channel.port2, { transfer: [channel.port2] }).postMessage(null);
9
9
  });
10
10
  }
11
11
  const UNIT = 1 << 20;
12
+ // A unit of runtime work ends within one 60 Hz frame so a port's next message waits at most a frame.
13
+ const SLICE_MS = 16;
12
14
  export const ROW_WEIGHT = 256;
13
15
  export function after(value, next) {
14
16
  return value instanceof Promise ? value.then(next) : next(value);
15
17
  }
16
- async function resumed(iterator, each) {
17
- let spent = UNIT;
18
- for (let next = iterator.next(); next.done !== true; next = iterator.next()) {
19
- if (spent >= UNIT) {
20
- await yielded();
18
+ function spending() {
19
+ let spent = 0;
20
+ let since = performance.now();
21
+ return {
22
+ spend(weight) {
23
+ spent += weight;
24
+ return spent >= UNIT || performance.now() - since >= SLICE_MS;
25
+ },
26
+ restart() {
21
27
  spent = 0;
28
+ since = performance.now();
29
+ },
30
+ };
31
+ }
32
+ export function paced() {
33
+ const spent = spending();
34
+ return (weight) => (spent.spend(weight) ? yielded().then(() => spent.restart()) : undefined);
35
+ }
36
+ async function resumed(iterator, each, ended, paused) {
37
+ const spent = spending();
38
+ for (let due = true;;) {
39
+ if (due) {
40
+ await paused();
41
+ spent.restart();
22
42
  }
23
- spent += each(next.value);
43
+ const next = iterator.next();
44
+ if (next.done === true)
45
+ break;
46
+ due = spent.spend(each(next.value));
47
+ if (due)
48
+ ended();
24
49
  }
50
+ ended();
25
51
  }
26
- export function inUnits(items, each) {
52
+ export function inUnits(items, each, ended = () => { }, paused = yielded) {
27
53
  const iterator = items[Symbol.iterator]();
28
- let spent = 0;
54
+ const spent = spending();
29
55
  for (let next = iterator.next(); next.done !== true; next = iterator.next()) {
30
- spent += each(next.value);
31
- if (spent >= UNIT)
32
- return resumed(iterator, each);
56
+ if (spent.spend(each(next.value))) {
57
+ ended();
58
+ return resumed(iterator, each, ended, paused);
59
+ }
33
60
  }
61
+ ended();
34
62
  }
35
- export async function inChunks(items, weigh, each) {
36
- for (let at = 0; at < items.length;) {
37
- await yielded();
38
- const chunk = [];
39
- for (let spent = 0; at < items.length && spent < UNIT; at += 1) {
40
- chunk.push(items[at]);
41
- spent += weigh(items[at]);
42
- }
43
- each(chunk);
63
+ export function finished(steps) {
64
+ for (let step = steps.next();; step = steps.next()) {
65
+ if (step.done === true)
66
+ return step.value;
44
67
  }
45
68
  }
69
+ export function stepped(steps) {
70
+ let result;
71
+ const driven = function* () {
72
+ result = yield* steps;
73
+ };
74
+ return after(inUnits(driven(), (weight) => weight), () => result);
75
+ }
@@ -0,0 +1,29 @@
1
+ import { type Validation } from '@agentshouse/mdmodel';
2
+ import { type Composition } from './collection.js';
3
+ type Examined = {
4
+ readonly path: string;
5
+ readonly content: string | null;
6
+ };
7
+ export type Typed = {
8
+ readonly type: string | undefined;
9
+ readonly binary: boolean;
10
+ };
11
+ export type Walk = (after: string | null) => Promise<{
12
+ readonly entries: readonly Examined[];
13
+ readonly next: string | null;
14
+ }>;
15
+ export type Lookup = (paths: readonly string[]) => Promise<ReadonlyMap<string, Typed>>;
16
+ export declare function validatedCollection(walk: Walk, lookup: Lookup, composition: Composition): Promise<Validation>;
17
+ export type Changed = {
18
+ readonly path: string;
19
+ readonly was: string | null | undefined;
20
+ readonly now: string | null | undefined;
21
+ };
22
+ type Neighbourhood = {
23
+ readonly lookup: Lookup;
24
+ readonly texts: (paths: readonly string[]) => Promise<ReadonlyMap<string, string | null>>;
25
+ readonly referrers: (targets: readonly string[]) => Promise<readonly string[]>;
26
+ };
27
+ export declare function validatedNeighbourhood(changes: readonly Changed[], composition: Composition, source: Neighbourhood): Promise<Validation>;
28
+ export {};
29
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,UAAU,EAGhB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAY,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAM7D,KAAK,QAAQ,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAE3E,MAAM,MAAM,KAAK,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC;AAEpF,MAAM,MAAM,IAAI,GAAG,CACjB,KAAK,EAAE,MAAM,GAAG,IAAI,KACjB,OAAO,CAAC;IAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAAC;AAEtF,MAAM,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAwBvF,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,UAAU,CAAC,CA6CrB;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACzC,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;IAC1F,QAAQ,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;CAChF,CAAC;AAkBF,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,SAAS,OAAO,EAAE,EAC3B,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,UAAU,CAAC,CAgCrB"}
@@ -0,0 +1,104 @@
1
+ import { assess, parse, parseFrontmatter, verdicts, } from '@agentshouse/mdmodel';
2
+ import { selected } from './collection.js';
3
+ import { paced, ROW_WEIGHT, yielded } from './turn.js';
4
+ const NO_TYPES = { types: {} };
5
+ function modelOf(model) {
6
+ return model.status === 'unavailable' ? NO_TYPES : { types: model.types };
7
+ }
8
+ function typedText(read) {
9
+ return read.ok && read.document.type !== undefined && read.document.type !== 'any';
10
+ }
11
+ function partVerdict(part) {
12
+ return part.unmodeled !== null
13
+ ? { verdict: 'refuse', rule: 'model-unavailable', file: part.unmodeled }
14
+ : part.judged.verdict();
15
+ }
16
+ export async function validatedCollection(walk, lookup, composition) {
17
+ const collection = { model: composition.model, judged: verdicts(), unmodeled: null };
18
+ const selection = composition.selection === null
19
+ ? null
20
+ : { model: composition.selection.model, judged: verdicts(), unmodeled: null };
21
+ const partOf = (path) => selection !== null && selected(composition, path) ? selection : collection;
22
+ const pace = paced();
23
+ for (let after = null;;) {
24
+ const { entries, next } = await walk(after);
25
+ const assessed = [];
26
+ for (const { path, content } of entries) {
27
+ if (content === null)
28
+ continue;
29
+ const part = partOf(path);
30
+ const parsed = parse(content, path);
31
+ if (part.model.status === 'unavailable' && part.unmodeled === null && typedText(parsed)) {
32
+ part.unmodeled = path;
33
+ }
34
+ const assessment = assess(path, parsed, false, modelOf(part.model), {
35
+ anyRoom: true,
36
+ typedPaths: composition.typedPaths,
37
+ });
38
+ assessed.push({ part, assessment });
39
+ await pace(content.length + assessment.targets.length * ROW_WEIGHT);
40
+ }
41
+ const targets = [...new Set(assessed.flatMap(({ assessment }) => assessment.targets))];
42
+ const known = await lookup(targets);
43
+ for (const { part, assessment } of assessed) {
44
+ const within = (path) => partOf(path) === part;
45
+ part.judged.add(assessment, (path) => (within(path) ? known.get(path)?.type : undefined), (path) => within(path) && known.get(path)?.binary === true);
46
+ await pace((assessment.targets.length + 1) * ROW_WEIGHT);
47
+ }
48
+ if (next === null)
49
+ break;
50
+ after = next;
51
+ await yielded();
52
+ }
53
+ const judged = [partVerdict(collection), ...(selection === null ? [] : [partVerdict(selection)])];
54
+ const refusals = judged.filter((verdict) => verdict.verdict === 'refuse');
55
+ if (refusals.length === 0)
56
+ return judged[0];
57
+ return refusals.find((refusal) => refusal.rule !== 'model-unavailable') ?? refusals[0];
58
+ }
59
+ function declared(content) {
60
+ if (content === undefined || content === null)
61
+ return undefined;
62
+ const read = parseFrontmatter(content);
63
+ return read.ok ? (read.frontmatter.type ?? 'any') : undefined;
64
+ }
65
+ function shifted({ was, now }) {
66
+ return ((now === undefined) !== (was === undefined) ||
67
+ (now === null) !== (was === null) ||
68
+ declared(now) !== declared(was));
69
+ }
70
+ const PAGE_TEXT = 1 << 20;
71
+ export async function validatedNeighbourhood(changes, composition, source) {
72
+ const pace = paced();
73
+ const changedAt = new Set();
74
+ const moved = [];
75
+ for (const change of changes) {
76
+ changedAt.add(change.path);
77
+ if (shifted(change))
78
+ moved.push(change.path);
79
+ await pace((change.now?.length ?? 0) + (change.was?.length ?? 0) + ROW_WEIGHT);
80
+ }
81
+ const referring = moved.length === 0
82
+ ? []
83
+ : (await source.referrers(moved)).filter((path) => !changedAt.has(path));
84
+ const texts = await source.texts(referring);
85
+ const total = changes.length + referring.length;
86
+ let at = 0;
87
+ const walk = async () => {
88
+ const entries = [];
89
+ let text = 0;
90
+ while (at < total && text < PAGE_TEXT) {
91
+ const change = changes[at];
92
+ const path = change?.path ?? referring[at - changes.length];
93
+ const content = change === undefined ? texts.get(path) : change.now;
94
+ at += 1;
95
+ text += ROW_WEIGHT;
96
+ if (content === undefined || content === null)
97
+ continue;
98
+ entries.push({ path, content });
99
+ text += content.length;
100
+ }
101
+ return { entries, next: at < total ? String(at) : null };
102
+ };
103
+ return validatedCollection(walk, source.lookup, composition);
104
+ }
@@ -0,0 +1,11 @@
1
+ export declare const MAXIMUM_WINDOW = 1000;
2
+ export declare const FROM_START: string;
3
+ export declare function capped(limit: number | null | undefined): number;
4
+ interface Placed {
5
+ readonly position: string;
6
+ readonly identity: string;
7
+ }
8
+ export declare function messageOrder(left: Placed, right: Placed): number;
9
+ export declare function precedes(message: Placed, before: readonly [string, string] | null): boolean;
10
+ export {};
11
+ //# sourceMappingURL=windows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"windows.d.ts","sourceRoot":"","sources":["../src/windows.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,OAAO,CAAC;AAEnC,eAAO,MAAM,UAAU,QAAe,CAAC;AAEvC,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAE/D;AAED,UAAU,MAAM;IACd,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIhE;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,GAAG,OAAO,CAE3F"}
@@ -0,0 +1,16 @@
1
+ import { cursorOf } from '@agentshouse/mdmodel';
2
+ export const MAXIMUM_WINDOW = 1000;
3
+ export const FROM_START = cursorOf([]);
4
+ export function capped(limit) {
5
+ return limit == null ? MAXIMUM_WINDOW : Math.min(limit, MAXIMUM_WINDOW);
6
+ }
7
+ export function messageOrder(left, right) {
8
+ if (left.position !== right.position)
9
+ return left.position < right.position ? -1 : 1;
10
+ if (left.identity !== right.identity)
11
+ return left.identity < right.identity ? -1 : 1;
12
+ return 0;
13
+ }
14
+ export function precedes(message, before) {
15
+ return before === null || messageOrder(message, { position: before[0], identity: before[1] }) < 0;
16
+ }
package/dist/wire.d.ts CHANGED
@@ -34,15 +34,35 @@ declare const MEMBERS: {
34
34
  readonly reach: 'within';
35
35
  readonly effect: 'write';
36
36
  };
37
+ readonly saveParts: {
38
+ readonly reach: 'within';
39
+ readonly effect: 'write';
40
+ };
37
41
  readonly history: {
38
42
  readonly reach: 'within';
39
43
  readonly effect: 'read';
40
44
  };
45
+ readonly resolve: {
46
+ readonly reach: 'within';
47
+ readonly effect: 'read';
48
+ };
41
49
  readonly 'binaryFile.read': {
42
50
  readonly reach: 'within';
43
51
  readonly effect: 'read';
44
52
  };
45
- readonly 'binaryFile.readReference': {
53
+ readonly 'binaryFile.link': {
54
+ readonly reach: 'within';
55
+ readonly effect: 'read';
56
+ };
57
+ readonly 'binaryFile.show': {
58
+ readonly reach: 'within';
59
+ readonly effect: 'read';
60
+ };
61
+ readonly 'binaryFile.attach': {
62
+ readonly reach: 'within';
63
+ readonly effect: 'action';
64
+ };
65
+ readonly 'binaryFile.part': {
46
66
  readonly reach: 'within';
47
67
  readonly effect: 'read';
48
68
  };
@@ -58,6 +78,18 @@ declare const MEMBERS: {
58
78
  readonly reach: 'whole';
59
79
  readonly effect: 'read';
60
80
  };
81
+ readonly cleanUp: {
82
+ readonly reach: 'whole';
83
+ readonly effect: 'write';
84
+ };
85
+ readonly unsent: {
86
+ readonly reach: 'whole';
87
+ readonly effect: 'read';
88
+ };
89
+ readonly reset: {
90
+ readonly reach: 'whole';
91
+ readonly effect: 'write';
92
+ };
61
93
  readonly persistence: {
62
94
  readonly reach: 'runtime';
63
95
  readonly effect: 'read';
@@ -94,6 +126,10 @@ declare const MEMBERS: {
94
126
  readonly reach: 'app';
95
127
  readonly effect: 'write';
96
128
  };
129
+ readonly 'presentation.edit': {
130
+ readonly reach: 'app';
131
+ readonly effect: 'write';
132
+ };
97
133
  readonly 'conversation.list': {
98
134
  readonly reach: 'within';
99
135
  readonly effect: 'read';
@@ -122,10 +158,6 @@ declare const MEMBERS: {
122
158
  readonly reach: 'within';
123
159
  readonly effect: 'action';
124
160
  };
125
- readonly 'conversation.cancel': {
126
- readonly reach: 'within';
127
- readonly effect: 'action';
128
- };
129
161
  readonly 'conversation.delete': {
130
162
  readonly reach: 'within';
131
163
  readonly effect: 'action';
@@ -134,6 +166,10 @@ declare const MEMBERS: {
134
166
  readonly reach: 'within';
135
167
  readonly effect: 'write';
136
168
  };
169
+ readonly 'chatDraft.prepend': {
170
+ readonly reach: 'within';
171
+ readonly effect: 'write';
172
+ };
137
173
  readonly 'chatDraft.discard': {
138
174
  readonly reach: 'within';
139
175
  readonly effect: 'write';
@@ -148,6 +184,7 @@ declare const TOPICS: {
148
184
  readonly 'sync-status': 'within';
149
185
  readonly 'service-mode': 'runtime';
150
186
  readonly member: 'runtime';
187
+ readonly 'authority-changes': 'runtime';
151
188
  readonly query: 'within';
152
189
  readonly queue: 'within';
153
190
  readonly 'room-drafts': 'within';
@@ -1 +1 @@
1
- {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../src/wire.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../src/wire.ts"],"names":[],"mappings":"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"}
package/dist/wire.js CHANGED
@@ -5,12 +5,20 @@ const MEMBERS = {
5
5
  search: { reach: 'within', effect: 'read' },
6
6
  types: { reach: 'within', effect: 'read' },
7
7
  save: { reach: 'within', effect: 'write' },
8
+ saveParts: { reach: 'within', effect: 'write' },
8
9
  history: { reach: 'within', effect: 'read' },
10
+ resolve: { reach: 'within', effect: 'read' },
9
11
  'binaryFile.read': { reach: 'within', effect: 'read' },
10
- 'binaryFile.readReference': { reach: 'within', effect: 'read' },
12
+ 'binaryFile.link': { reach: 'within', effect: 'read' },
13
+ 'binaryFile.show': { reach: 'within', effect: 'read' },
14
+ 'binaryFile.attach': { reach: 'within', effect: 'action' },
15
+ 'binaryFile.part': { reach: 'within', effect: 'read' },
11
16
  call: { reach: 'actions', effect: 'action' },
12
17
  reached: { reach: 'within', effect: 'read' },
13
18
  log: { reach: 'whole', effect: 'read' },
19
+ cleanUp: { reach: 'whole', effect: 'write' },
20
+ unsent: { reach: 'whole', effect: 'read' },
21
+ reset: { reach: 'whole', effect: 'write' },
14
22
  persistence: { reach: 'runtime', effect: 'read' },
15
23
  retry: { reach: 'runtime', effect: 'write' },
16
24
  reauthorize: { reach: 'runtime', effect: 'write' },
@@ -20,6 +28,7 @@ const MEMBERS = {
20
28
  'roomDraft.discard': { reach: 'within', effect: 'write' },
21
29
  'presentation.read': { reach: 'app', effect: 'read' },
22
30
  'presentation.write': { reach: 'app', effect: 'write' },
31
+ 'presentation.edit': { reach: 'app', effect: 'write' },
23
32
  'conversation.list': { reach: 'within', effect: 'read' },
24
33
  'conversation.read': { reach: 'within', effect: 'read' },
25
34
  'conversation.create': { reach: 'within', effect: 'action' },
@@ -27,9 +36,9 @@ const MEMBERS = {
27
36
  'conversation.answer': { reach: 'within', effect: 'action' },
28
37
  'conversation.interrupt': { reach: 'within', effect: 'action' },
29
38
  'conversation.kill': { reach: 'within', effect: 'action' },
30
- 'conversation.cancel': { reach: 'within', effect: 'action' },
31
39
  'conversation.delete': { reach: 'within', effect: 'action' },
32
40
  'chatDraft.write': { reach: 'within', effect: 'write' },
41
+ 'chatDraft.prepend': { reach: 'within', effect: 'write' },
33
42
  'chatDraft.discard': { reach: 'within', effect: 'write' },
34
43
  };
35
44
  const TOPICS = {
@@ -41,6 +50,7 @@ const TOPICS = {
41
50
  'sync-status': 'within',
42
51
  'service-mode': 'runtime',
43
52
  member: 'runtime',
53
+ 'authority-changes': 'runtime',
44
54
  query: 'within',
45
55
  queue: 'within',
46
56
  'room-drafts': 'within',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentshouse/mdruntime",
3
- "version": "0.1.0-c454894e67f74",
3
+ "version": "0.1.0-c49444f2a8fc6",
4
4
  "description": "The headless core of MD App",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -9,7 +9,7 @@
9
9
  "access": "public"
10
10
  },
11
11
  "engines": {
12
- "node": ">=24.21.0"
12
+ "node": ">=24.22.1"
13
13
  },
14
14
  "exports": {
15
15
  ".": {
@@ -32,37 +32,36 @@
32
32
  "types": "./dist/memory.d.ts",
33
33
  "default": "./dist/memory.js"
34
34
  },
35
+ "./tables": {
36
+ "types": "./dist/tables.d.ts",
37
+ "default": "./dist/tables.js"
38
+ },
35
39
  "./react": {
36
40
  "types": "./dist/react.d.ts",
37
41
  "default": "./dist/react.js"
38
42
  },
39
- "./chat": {
40
- "types": "./dist/chat.d.ts",
41
- "default": "./dist/chat.js"
43
+ "./digest": {
44
+ "types": "./dist/digest.d.ts",
45
+ "default": "./dist/digest.js"
42
46
  },
43
47
  "./package.json": "./package.json"
44
48
  },
45
49
  "files": [
46
50
  "dist",
47
- "AGENTS.md",
51
+ "!dist/chat.*",
52
+ "!dist/chat/",
48
53
  "README.md",
49
54
  "LICENSE"
50
55
  ],
51
56
  "dependencies": {
52
- "@agentshouse/mdmodel": "0.1.0-cad192ab63d5f",
53
- "@assistant-ui/react-markdown": "0.14.20",
54
- "@tanstack/db": "0.9.2",
55
- "lucide-react": "1.47.0",
56
- "mdast-util-from-markdown": "2.0.3",
57
- "mdast-util-gfm": "3.1.0",
58
- "micromark-extension-gfm": "3.0.0",
59
- "minisearch": "7.2.0",
60
- "radix-ui": "1.8.0",
61
- "remark-gfm": "4.0.1"
57
+ "@agentshouse/mdmodel": "0.1.0-c69a8c1d0563b"
62
58
  },
63
59
  "peerDependencies": {
64
- "@assistant-ui/react": "^0.15.22",
65
- "react": ">=18",
66
- "react-dom": ">=18"
60
+ "react": ">=18"
61
+ },
62
+ "repository": {
63
+ "type": "git",
64
+ "url": "git+https://github.com/agentshouse/core.git",
65
+ "directory": "mdruntime/packages/mdruntime"
67
66
  }
68
67
  }