@agentshouse/mdruntime 0.1.0-c2aaa9c0e3ca4 → 0.1.0-c2c52158b7381

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 (199) hide show
  1. package/AGENTS.md +285 -276
  2. package/README.md +9 -8
  3. package/dist/adapter.d.ts +80 -21
  4. package/dist/adapter.d.ts.map +1 -1
  5. package/dist/attached-model.d.ts +4 -1
  6. package/dist/attached-model.d.ts.map +1 -1
  7. package/dist/attached-model.js +13 -3
  8. package/dist/attempt.d.ts.map +1 -1
  9. package/dist/attempt.js +14 -1
  10. package/dist/bootstrap.d.ts +3 -2
  11. package/dist/bootstrap.d.ts.map +1 -1
  12. package/dist/bootstrap.js +83 -26
  13. package/dist/change-set.d.ts +7 -2
  14. package/dist/change-set.d.ts.map +1 -1
  15. package/dist/change-set.js +37 -10
  16. package/dist/change.d.ts +31 -1
  17. package/dist/change.d.ts.map +1 -1
  18. package/dist/change.js +10 -1
  19. package/dist/chat/acts.d.ts +3 -4
  20. package/dist/chat/acts.d.ts.map +1 -1
  21. package/dist/chat/acts.js +10 -10
  22. package/dist/chat/earlier.d.ts +10 -0
  23. package/dist/chat/earlier.d.ts.map +1 -0
  24. package/dist/chat/earlier.js +54 -0
  25. package/dist/chat/house.d.ts +25 -0
  26. package/dist/chat/house.d.ts.map +1 -0
  27. package/dist/chat/house.js +38 -0
  28. package/dist/chat/input.d.ts +3 -1
  29. package/dist/chat/input.d.ts.map +1 -1
  30. package/dist/chat/input.js +11 -18
  31. package/dist/chat/kit.d.ts +2 -1
  32. package/dist/chat/kit.d.ts.map +1 -1
  33. package/dist/chat/kit.js +3 -3
  34. package/dist/chat/list.d.ts +9 -1
  35. package/dist/chat/list.d.ts.map +1 -1
  36. package/dist/chat/list.js +53 -9
  37. package/dist/chat/markdown.d.ts +3 -1
  38. package/dist/chat/markdown.d.ts.map +1 -1
  39. package/dist/chat/markdown.js +85 -26
  40. package/dist/chat/message.d.ts +1 -0
  41. package/dist/chat/message.d.ts.map +1 -1
  42. package/dist/chat/message.js +57 -12
  43. package/dist/chat/messages.d.ts +9 -1
  44. package/dist/chat/messages.d.ts.map +1 -1
  45. package/dist/chat/messages.js +67 -28
  46. package/dist/chat/name.d.ts +1 -0
  47. package/dist/chat/name.d.ts.map +1 -1
  48. package/dist/chat/name.js +1 -1
  49. package/dist/chat/opened.d.ts +1 -0
  50. package/dist/chat/opened.d.ts.map +1 -1
  51. package/dist/chat/opened.js +2 -0
  52. package/dist/chat/overlay.d.ts +1 -0
  53. package/dist/chat/overlay.d.ts.map +1 -1
  54. package/dist/chat/overlay.js +11 -5
  55. package/dist/chat/parts.d.ts +1 -0
  56. package/dist/chat/parts.d.ts.map +1 -1
  57. package/dist/chat/parts.js +3 -2
  58. package/dist/chat/pieces.d.ts +62 -0
  59. package/dist/chat/pieces.d.ts.map +1 -0
  60. package/dist/chat/pieces.js +1110 -0
  61. package/dist/chat/provider.d.ts +7 -2
  62. package/dist/chat/provider.d.ts.map +1 -1
  63. package/dist/chat/provider.js +129 -155
  64. package/dist/chat/question.d.ts +1 -1
  65. package/dist/chat/question.d.ts.map +1 -1
  66. package/dist/chat/question.js +7 -18
  67. package/dist/chat/ready.d.ts +5 -1
  68. package/dist/chat/ready.d.ts.map +1 -1
  69. package/dist/chat/ready.js +9 -7
  70. package/dist/chat/room-file.d.ts +8 -0
  71. package/dist/chat/room-file.d.ts.map +1 -0
  72. package/dist/chat/room-file.js +72 -0
  73. package/dist/chat/steady.d.ts +3 -0
  74. package/dist/chat/steady.d.ts.map +1 -0
  75. package/dist/chat/steady.js +26 -0
  76. package/dist/chat/style.d.ts.map +1 -1
  77. package/dist/chat/style.js +8 -4
  78. package/dist/chat.d.ts +3 -2
  79. package/dist/chat.d.ts.map +1 -1
  80. package/dist/chat.js +2 -2
  81. package/dist/client.d.ts +21 -9
  82. package/dist/client.d.ts.map +1 -1
  83. package/dist/client.js +47 -8
  84. package/dist/collection.d.ts +21 -6
  85. package/dist/collection.d.ts.map +1 -1
  86. package/dist/collection.js +332 -40
  87. package/dist/connection.d.ts +39 -11
  88. package/dist/connection.d.ts.map +1 -1
  89. package/dist/connection.js +2294 -492
  90. package/dist/conversation.d.ts +28 -9
  91. package/dist/conversation.d.ts.map +1 -1
  92. package/dist/conversation.js +500 -165
  93. package/dist/digest.d.ts +7 -0
  94. package/dist/digest.d.ts.map +1 -0
  95. package/dist/digest.js +113 -0
  96. package/dist/durability.d.ts +8 -1
  97. package/dist/durability.d.ts.map +1 -1
  98. package/dist/entry.d.ts +18 -0
  99. package/dist/entry.d.ts.map +1 -0
  100. package/dist/entry.js +157 -0
  101. package/dist/fence.d.ts +6 -0
  102. package/dist/fence.d.ts.map +1 -0
  103. package/dist/fence.js +10 -0
  104. package/dist/file.d.ts +2 -10
  105. package/dist/file.d.ts.map +1 -1
  106. package/dist/file.js +3 -120
  107. package/dist/host.d.ts +15 -3
  108. package/dist/host.d.ts.map +1 -1
  109. package/dist/host.js +103 -13
  110. package/dist/identity.d.ts +2 -0
  111. package/dist/identity.d.ts.map +1 -1
  112. package/dist/identity.js +6 -0
  113. package/dist/index.d.ts +15 -9
  114. package/dist/index.d.ts.map +1 -1
  115. package/dist/index.js +5 -0
  116. package/dist/memory.d.ts +8 -2
  117. package/dist/memory.d.ts.map +1 -1
  118. package/dist/memory.js +43 -12
  119. package/dist/model.d.ts +4 -2
  120. package/dist/model.d.ts.map +1 -1
  121. package/dist/model.js +10 -1
  122. package/dist/name.d.ts +4 -0
  123. package/dist/name.d.ts.map +1 -0
  124. package/dist/name.js +122 -0
  125. package/dist/observation.d.ts +7 -2
  126. package/dist/observation.d.ts.map +1 -1
  127. package/dist/observation.js +29 -12
  128. package/dist/opened.d.ts +22 -0
  129. package/dist/opened.d.ts.map +1 -0
  130. package/dist/opened.js +107 -0
  131. package/dist/outcome.d.ts +39 -4
  132. package/dist/outcome.d.ts.map +1 -1
  133. package/dist/outcome.js +29 -0
  134. package/dist/overlay.d.ts +6 -4
  135. package/dist/overlay.d.ts.map +1 -1
  136. package/dist/overlay.js +229 -161
  137. package/dist/query.d.ts +57 -4
  138. package/dist/query.d.ts.map +1 -1
  139. package/dist/query.js +37 -7
  140. package/dist/reach.d.ts +11 -4
  141. package/dist/reach.d.ts.map +1 -1
  142. package/dist/reach.js +192 -41
  143. package/dist/react.d.ts +8 -6
  144. package/dist/react.d.ts.map +1 -1
  145. package/dist/react.js +7 -17
  146. package/dist/read-side.d.ts +18 -9
  147. package/dist/read-side.d.ts.map +1 -1
  148. package/dist/read-side.js +894 -155
  149. package/dist/readiness.d.ts +53 -0
  150. package/dist/readiness.d.ts.map +1 -0
  151. package/dist/readiness.js +33 -0
  152. package/dist/reads.d.ts +11 -0
  153. package/dist/reads.d.ts.map +1 -0
  154. package/dist/reads.js +98 -0
  155. package/dist/recovery.d.ts +25 -0
  156. package/dist/recovery.d.ts.map +1 -0
  157. package/dist/recovery.js +198 -0
  158. package/dist/refresh.d.ts +4 -4
  159. package/dist/refresh.d.ts.map +1 -1
  160. package/dist/refresh.js +46 -20
  161. package/dist/replica.d.ts +12 -7
  162. package/dist/replica.d.ts.map +1 -1
  163. package/dist/replica.js +151 -64
  164. package/dist/room-draft.d.ts +16 -2
  165. package/dist/room-draft.d.ts.map +1 -1
  166. package/dist/room-draft.js +32 -25
  167. package/dist/rows.d.ts +6 -13
  168. package/dist/rows.d.ts.map +1 -1
  169. package/dist/rows.js +10 -13
  170. package/dist/save.d.ts +52 -10
  171. package/dist/save.d.ts.map +1 -1
  172. package/dist/save.js +519 -159
  173. package/dist/search.d.ts +49 -6
  174. package/dist/search.d.ts.map +1 -1
  175. package/dist/search.js +242 -46
  176. package/dist/seed.d.ts +16 -0
  177. package/dist/seed.d.ts.map +1 -0
  178. package/dist/seed.js +75 -0
  179. package/dist/shared.d.ts +19 -0
  180. package/dist/shared.d.ts.map +1 -0
  181. package/dist/shared.js +461 -0
  182. package/dist/status.d.ts +4 -0
  183. package/dist/status.d.ts.map +1 -1
  184. package/dist/store.d.ts +61 -17
  185. package/dist/store.d.ts.map +1 -1
  186. package/dist/store.js +581 -310
  187. package/dist/tables.d.ts +242 -0
  188. package/dist/tables.d.ts.map +1 -0
  189. package/dist/tables.js +406 -0
  190. package/dist/turn.d.ts +9 -0
  191. package/dist/turn.d.ts.map +1 -0
  192. package/dist/turn.js +67 -0
  193. package/dist/windows.d.ts +21 -0
  194. package/dist/windows.d.ts.map +1 -0
  195. package/dist/windows.js +84 -0
  196. package/dist/wire.d.ts +168 -32
  197. package/dist/wire.d.ts.map +1 -1
  198. package/dist/wire.js +56 -31
  199. package/package.json +10 -2
package/dist/turn.js ADDED
@@ -0,0 +1,67 @@
1
+ export function yielded() {
2
+ return new Promise((resolve) => {
3
+ const channel = new MessageChannel();
4
+ channel.port1.onmessage = () => {
5
+ channel.port1.close();
6
+ resolve();
7
+ };
8
+ structuredClone(channel.port2, { transfer: [channel.port2] }).postMessage(null);
9
+ });
10
+ }
11
+ const UNIT = 1 << 20;
12
+ export const ROW_WEIGHT = 256;
13
+ export function after(value, next) {
14
+ return value instanceof Promise ? value.then(next) : next(value);
15
+ }
16
+ async function resumed(iterator, each, ended, paused) {
17
+ for (let spent = UNIT;;) {
18
+ if (spent >= UNIT) {
19
+ await paused();
20
+ spent = 0;
21
+ }
22
+ const next = iterator.next();
23
+ if (next.done === true)
24
+ break;
25
+ spent += each(next.value);
26
+ if (spent >= UNIT)
27
+ ended();
28
+ }
29
+ ended();
30
+ }
31
+ export function inUnits(items, each, ended = () => { }, paused = yielded) {
32
+ const iterator = items[Symbol.iterator]();
33
+ let spent = 0;
34
+ for (let next = iterator.next(); next.done !== true; next = iterator.next()) {
35
+ spent += each(next.value);
36
+ if (spent >= UNIT) {
37
+ ended();
38
+ return resumed(iterator, each, ended, paused);
39
+ }
40
+ }
41
+ ended();
42
+ }
43
+ export function finished(steps) {
44
+ for (let step = steps.next();; step = steps.next()) {
45
+ if (step.done === true)
46
+ return step.value;
47
+ }
48
+ }
49
+ export function stepped(steps) {
50
+ let result;
51
+ const driven = function* () {
52
+ result = yield* steps;
53
+ };
54
+ return after(inUnits(driven(), (weight) => weight), () => result);
55
+ }
56
+ export async function inChunks(items, weigh, each) {
57
+ const iterator = items[Symbol.iterator]();
58
+ for (let next = iterator.next(); next.done !== true;) {
59
+ await yielded();
60
+ const chunk = [];
61
+ for (let spent = 0; next.done !== true && spent < UNIT; next = iterator.next()) {
62
+ chunk.push(next.value);
63
+ spent += weigh(next.value);
64
+ }
65
+ await each(chunk);
66
+ }
67
+ }
@@ -0,0 +1,21 @@
1
+ export declare const MAXIMUM_WINDOW = 1000;
2
+ export declare const FROM_START = "[]";
3
+ export declare function capped(limit: number | null | undefined): number;
4
+ export type Ordering = {
5
+ readonly direction: 'asc' | 'desc';
6
+ readonly nulls: 'first' | 'last';
7
+ readonly stringSort: 'lexical' | 'locale';
8
+ readonly locale: string | undefined;
9
+ readonly localeOptions: Intl.CollatorOptions | undefined;
10
+ };
11
+ interface Placed {
12
+ readonly position: string;
13
+ readonly identity: string;
14
+ }
15
+ export declare function messageOrder(left: Placed, right: Placed): number;
16
+ export declare function precedes(message: Placed, before: readonly [string, string] | null): boolean;
17
+ export declare function beyond(values: readonly unknown[], cursor: readonly unknown[], orderings: readonly Ordering[]): boolean;
18
+ export declare function cursorOf(values: readonly unknown[]): string;
19
+ export declare function decodedCursor(text: string): readonly unknown[] | null;
20
+ export {};
21
+ //# sourceMappingURL=windows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"windows.d.ts","sourceRoot":"","sources":["../src/windows.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,OAAO,CAAC;AAEnC,eAAO,MAAM,UAAU,OAAO,CAAC;AAE/B,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAE/D;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,CAAC,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;CAC1D,CAAC;AAEF,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;AA0CD,wBAAgB,MAAM,CACpB,MAAM,EAAE,SAAS,OAAO,EAAE,EAC1B,MAAM,EAAE,SAAS,OAAO,EAAE,EAC1B,SAAS,EAAE,SAAS,QAAQ,EAAE,GAC7B,OAAO,CAMT;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM,CAE3D;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,OAAO,EAAE,GAAG,IAAI,CAOrE"}
@@ -0,0 +1,84 @@
1
+ export const MAXIMUM_WINDOW = 1000;
2
+ export const FROM_START = '[]';
3
+ export function capped(limit) {
4
+ return limit == null ? MAXIMUM_WINDOW : Math.min(limit, MAXIMUM_WINDOW);
5
+ }
6
+ export function messageOrder(left, right) {
7
+ if (left.position !== right.position)
8
+ return left.position < right.position ? -1 : 1;
9
+ if (left.identity !== right.identity)
10
+ return left.identity < right.identity ? -1 : 1;
11
+ return 0;
12
+ }
13
+ export function precedes(message, before) {
14
+ return before === null || messageOrder(message, { position: before[0], identity: before[1] }) < 0;
15
+ }
16
+ function ascending(left, right, ordering) {
17
+ if (left == null && right == null)
18
+ return 0;
19
+ if (left == null)
20
+ return ordering.nulls === 'first' ? -1 : 1;
21
+ if (right == null)
22
+ return ordering.nulls === 'first' ? 1 : -1;
23
+ if (typeof left === 'string' && typeof right === 'string' && ordering.stringSort === 'locale') {
24
+ return left.localeCompare(right, ordering.locale, ordering.localeOptions);
25
+ }
26
+ if (Array.isArray(left) && Array.isArray(right)) {
27
+ for (let at = 0; at < Math.min(left.length, right.length); at += 1) {
28
+ const result = ascending(left[at], right[at], ordering);
29
+ if (result !== 0)
30
+ return result;
31
+ }
32
+ return left.length - right.length;
33
+ }
34
+ if (typeof left === 'object')
35
+ return typeof right === 'object' ? 0 : 1;
36
+ if (typeof right === 'object')
37
+ return -1;
38
+ const held = left;
39
+ const other = right;
40
+ if (held < other)
41
+ return -1;
42
+ if (held > other)
43
+ return 1;
44
+ return 0;
45
+ }
46
+ function compared(left, right, ordering) {
47
+ if (ordering.direction === 'asc')
48
+ return ascending(left, right, ordering);
49
+ return ascending(right, left, {
50
+ ...ordering,
51
+ nulls: ordering.nulls === 'first' ? 'last' : 'first',
52
+ });
53
+ }
54
+ function keyCompared(left, right) {
55
+ if (typeof left !== typeof right)
56
+ return typeof left === 'string' ? -1 : 1;
57
+ const held = left;
58
+ const other = right;
59
+ if (held < other)
60
+ return -1;
61
+ if (held > other)
62
+ return 1;
63
+ return 0;
64
+ }
65
+ export function beyond(values, cursor, orderings) {
66
+ for (let at = 0; at < orderings.length; at += 1) {
67
+ const result = compared(values[at], cursor[at], orderings[at]);
68
+ if (result !== 0)
69
+ return result > 0;
70
+ }
71
+ return keyCompared(values[orderings.length], cursor[orderings.length]) > 0;
72
+ }
73
+ export function cursorOf(values) {
74
+ return JSON.stringify(values);
75
+ }
76
+ export function decodedCursor(text) {
77
+ try {
78
+ const decoded = JSON.parse(text);
79
+ return Array.isArray(decoded) ? decoded : null;
80
+ }
81
+ catch {
82
+ return null;
83
+ }
84
+ }
package/dist/wire.d.ts CHANGED
@@ -8,40 +8,172 @@ export type RuntimePort = {
8
8
  start(): void;
9
9
  };
10
10
  export type WireReach = 'within' | 'app' | 'runtime' | 'actions' | 'whole';
11
+ export type WireEffect = 'read' | 'write' | 'action';
12
+ export type WireCall = {
13
+ readonly reach: WireReach;
14
+ readonly effect: WireEffect;
15
+ };
11
16
  declare const MEMBERS: {
12
- readonly rooms: 'within';
13
- readonly query: 'within';
14
- readonly search: 'within';
15
- readonly types: 'within';
16
- readonly save: 'within';
17
- readonly history: 'within';
18
- readonly 'binaryFile.read': 'within';
19
- readonly 'binaryFile.readReference': 'within';
20
- readonly call: 'actions';
21
- readonly reached: 'within';
22
- readonly log: 'whole';
23
- readonly persistence: 'runtime';
24
- readonly reauthorize: 'runtime';
25
- readonly 'roomDraft.list': 'within';
26
- readonly 'roomDraft.read': 'within';
27
- readonly 'roomDraft.write': 'within';
28
- readonly 'roomDraft.discard': 'within';
29
- readonly 'presentation.read': 'app';
30
- readonly 'presentation.write': 'app';
31
- readonly 'conversation.list': 'within';
32
- readonly 'conversation.read': 'within';
33
- readonly 'conversation.create': 'within';
34
- readonly 'conversation.send': 'within';
35
- readonly 'conversation.answer': 'within';
36
- readonly 'conversation.interrupt': 'within';
37
- readonly 'conversation.kill': 'within';
38
- readonly 'conversation.cancel': 'within';
39
- readonly 'conversation.delete': 'within';
40
- readonly 'chatDraft.write': 'within';
41
- readonly 'chatDraft.discard': 'within';
17
+ readonly rooms: {
18
+ readonly reach: 'within';
19
+ readonly effect: 'read';
20
+ };
21
+ readonly query: {
22
+ readonly reach: 'within';
23
+ readonly effect: 'read';
24
+ };
25
+ readonly search: {
26
+ readonly reach: 'within';
27
+ readonly effect: 'read';
28
+ };
29
+ readonly types: {
30
+ readonly reach: 'within';
31
+ readonly effect: 'read';
32
+ };
33
+ readonly save: {
34
+ readonly reach: 'within';
35
+ readonly effect: 'write';
36
+ };
37
+ readonly saveParts: {
38
+ readonly reach: 'within';
39
+ readonly effect: 'write';
40
+ };
41
+ readonly history: {
42
+ readonly reach: 'within';
43
+ readonly effect: 'read';
44
+ };
45
+ readonly resolve: {
46
+ readonly reach: 'within';
47
+ readonly effect: 'read';
48
+ };
49
+ readonly 'binaryFile.read': {
50
+ readonly reach: 'within';
51
+ readonly effect: 'read';
52
+ };
53
+ readonly 'binaryFile.link': {
54
+ readonly reach: 'within';
55
+ readonly effect: 'read';
56
+ };
57
+ readonly 'binaryFile.readReference': {
58
+ readonly reach: 'within';
59
+ readonly effect: 'read';
60
+ };
61
+ readonly 'binaryFile.part': {
62
+ readonly reach: 'within';
63
+ readonly effect: 'read';
64
+ };
65
+ readonly call: {
66
+ readonly reach: 'actions';
67
+ readonly effect: 'action';
68
+ };
69
+ readonly reached: {
70
+ readonly reach: 'within';
71
+ readonly effect: 'read';
72
+ };
73
+ readonly log: {
74
+ readonly reach: 'whole';
75
+ readonly effect: 'read';
76
+ };
77
+ readonly cleanUp: {
78
+ readonly reach: 'whole';
79
+ readonly effect: 'write';
80
+ };
81
+ readonly persistence: {
82
+ readonly reach: 'runtime';
83
+ readonly effect: 'read';
84
+ };
85
+ readonly retry: {
86
+ readonly reach: 'runtime';
87
+ readonly effect: 'write';
88
+ };
89
+ readonly reauthorize: {
90
+ readonly reach: 'runtime';
91
+ readonly effect: 'write';
92
+ };
93
+ readonly 'roomDraft.list': {
94
+ readonly reach: 'within';
95
+ readonly effect: 'read';
96
+ };
97
+ readonly 'roomDraft.read': {
98
+ readonly reach: 'within';
99
+ readonly effect: 'read';
100
+ };
101
+ readonly 'roomDraft.write': {
102
+ readonly reach: 'within';
103
+ readonly effect: 'write';
104
+ };
105
+ readonly 'roomDraft.discard': {
106
+ readonly reach: 'within';
107
+ readonly effect: 'write';
108
+ };
109
+ readonly 'presentation.read': {
110
+ readonly reach: 'app';
111
+ readonly effect: 'read';
112
+ };
113
+ readonly 'presentation.write': {
114
+ readonly reach: 'app';
115
+ readonly effect: 'write';
116
+ };
117
+ readonly 'presentation.edit': {
118
+ readonly reach: 'app';
119
+ readonly effect: 'write';
120
+ };
121
+ readonly 'conversation.list': {
122
+ readonly reach: 'within';
123
+ readonly effect: 'read';
124
+ };
125
+ readonly 'conversation.read': {
126
+ readonly reach: 'within';
127
+ readonly effect: 'read';
128
+ };
129
+ readonly 'conversation.create': {
130
+ readonly reach: 'within';
131
+ readonly effect: 'action';
132
+ };
133
+ readonly 'conversation.send': {
134
+ readonly reach: 'within';
135
+ readonly effect: 'action';
136
+ };
137
+ readonly 'conversation.attach': {
138
+ readonly reach: 'within';
139
+ readonly effect: 'action';
140
+ };
141
+ readonly 'conversation.answer': {
142
+ readonly reach: 'within';
143
+ readonly effect: 'action';
144
+ };
145
+ readonly 'conversation.interrupt': {
146
+ readonly reach: 'within';
147
+ readonly effect: 'action';
148
+ };
149
+ readonly 'conversation.kill': {
150
+ readonly reach: 'within';
151
+ readonly effect: 'action';
152
+ };
153
+ readonly 'conversation.cancel': {
154
+ readonly reach: 'within';
155
+ readonly effect: 'action';
156
+ };
157
+ readonly 'conversation.delete': {
158
+ readonly reach: 'within';
159
+ readonly effect: 'action';
160
+ };
161
+ readonly 'chatDraft.write': {
162
+ readonly reach: 'within';
163
+ readonly effect: 'write';
164
+ };
165
+ readonly 'chatDraft.prepend': {
166
+ readonly reach: 'within';
167
+ readonly effect: 'write';
168
+ };
169
+ readonly 'chatDraft.discard': {
170
+ readonly reach: 'within';
171
+ readonly effect: 'write';
172
+ };
42
173
  };
43
174
  declare const TOPICS: {
44
175
  readonly rooms: 'within';
176
+ readonly readiness: 'within';
45
177
  readonly 'connection-refusal': 'runtime';
46
178
  readonly 'storage-loss': 'runtime';
47
179
  readonly 'deployment-facts': 'runtime';
@@ -56,8 +188,8 @@ declare const TOPICS: {
56
188
  readonly conversations: 'within';
57
189
  readonly agents: 'within';
58
190
  };
59
- export declare const WIRE_REACH: {
60
- readonly members: Readonly<Record<string, WireReach>>;
191
+ export declare const WIRE: {
192
+ readonly members: Readonly<Record<string, WireCall>>;
61
193
  readonly topics: Readonly<Record<string, WireReach>>;
62
194
  };
63
195
  export type WireMember = keyof typeof MEMBERS;
@@ -95,6 +227,10 @@ export type WireAnswer = {
95
227
  } | {
96
228
  kind: 'ended';
97
229
  };
230
+ export declare function unanswered(call: {
231
+ readonly id: number;
232
+ readonly member: WireMember;
233
+ }): WireAnswer | null;
98
234
  export declare const AUTHORIZATION_ENDED = "the host authorization ended";
99
235
  export declare const PORT_CLOSED = "the port closed";
100
236
  export declare function request(message: unknown): WireRequest | null;
@@ -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
@@ -1,37 +1,48 @@
1
+ import { UNCERTAIN } from './outcome.js';
1
2
  const MEMBERS = {
2
- rooms: 'within',
3
- query: 'within',
4
- search: 'within',
5
- types: 'within',
6
- save: 'within',
7
- history: 'within',
8
- 'binaryFile.read': 'within',
9
- 'binaryFile.readReference': 'within',
10
- call: 'actions',
11
- reached: 'within',
12
- log: 'whole',
13
- persistence: 'runtime',
14
- reauthorize: 'runtime',
15
- 'roomDraft.list': 'within',
16
- 'roomDraft.read': 'within',
17
- 'roomDraft.write': 'within',
18
- 'roomDraft.discard': 'within',
19
- 'presentation.read': 'app',
20
- 'presentation.write': 'app',
21
- 'conversation.list': 'within',
22
- 'conversation.read': 'within',
23
- 'conversation.create': 'within',
24
- 'conversation.send': 'within',
25
- 'conversation.answer': 'within',
26
- 'conversation.interrupt': 'within',
27
- 'conversation.kill': 'within',
28
- 'conversation.cancel': 'within',
29
- 'conversation.delete': 'within',
30
- 'chatDraft.write': 'within',
31
- 'chatDraft.discard': 'within',
3
+ rooms: { reach: 'within', effect: 'read' },
4
+ query: { reach: 'within', effect: 'read' },
5
+ search: { reach: 'within', effect: 'read' },
6
+ types: { reach: 'within', effect: 'read' },
7
+ save: { reach: 'within', effect: 'write' },
8
+ saveParts: { reach: 'within', effect: 'write' },
9
+ history: { reach: 'within', effect: 'read' },
10
+ resolve: { reach: 'within', effect: 'read' },
11
+ 'binaryFile.read': { reach: 'within', effect: 'read' },
12
+ 'binaryFile.link': { reach: 'within', effect: 'read' },
13
+ 'binaryFile.readReference': { reach: 'within', effect: 'read' },
14
+ 'binaryFile.part': { reach: 'within', effect: 'read' },
15
+ call: { reach: 'actions', effect: 'action' },
16
+ reached: { reach: 'within', effect: 'read' },
17
+ log: { reach: 'whole', effect: 'read' },
18
+ cleanUp: { reach: 'whole', effect: 'write' },
19
+ persistence: { reach: 'runtime', effect: 'read' },
20
+ retry: { reach: 'runtime', effect: 'write' },
21
+ reauthorize: { reach: 'runtime', effect: 'write' },
22
+ 'roomDraft.list': { reach: 'within', effect: 'read' },
23
+ 'roomDraft.read': { reach: 'within', effect: 'read' },
24
+ 'roomDraft.write': { reach: 'within', effect: 'write' },
25
+ 'roomDraft.discard': { reach: 'within', effect: 'write' },
26
+ 'presentation.read': { reach: 'app', effect: 'read' },
27
+ 'presentation.write': { reach: 'app', effect: 'write' },
28
+ 'presentation.edit': { reach: 'app', effect: 'write' },
29
+ 'conversation.list': { reach: 'within', effect: 'read' },
30
+ 'conversation.read': { reach: 'within', effect: 'read' },
31
+ 'conversation.create': { reach: 'within', effect: 'action' },
32
+ 'conversation.send': { reach: 'within', effect: 'action' },
33
+ 'conversation.attach': { reach: 'within', effect: 'action' },
34
+ 'conversation.answer': { reach: 'within', effect: 'action' },
35
+ 'conversation.interrupt': { reach: 'within', effect: 'action' },
36
+ 'conversation.kill': { reach: 'within', effect: 'action' },
37
+ 'conversation.cancel': { reach: 'within', effect: 'action' },
38
+ 'conversation.delete': { reach: 'within', effect: 'action' },
39
+ 'chatDraft.write': { reach: 'within', effect: 'write' },
40
+ 'chatDraft.prepend': { reach: 'within', effect: 'write' },
41
+ 'chatDraft.discard': { reach: 'within', effect: 'write' },
32
42
  };
33
43
  const TOPICS = {
34
44
  rooms: 'within',
45
+ readiness: 'within',
35
46
  'connection-refusal': 'runtime',
36
47
  'storage-loss': 'runtime',
37
48
  'deployment-facts': 'runtime',
@@ -46,7 +57,21 @@ const TOPICS = {
46
57
  conversations: 'within',
47
58
  agents: 'within',
48
59
  };
49
- export const WIRE_REACH = { members: MEMBERS, topics: TOPICS };
60
+ export const WIRE = { members: MEMBERS, topics: TOPICS };
61
+ export function unanswered(call) {
62
+ const { effect } = MEMBERS[call.member];
63
+ if (effect === 'read')
64
+ return null;
65
+ if (effect === 'action')
66
+ return { kind: 'result', id: call.id, value: UNCERTAIN };
67
+ return {
68
+ kind: 'failure',
69
+ id: call.id,
70
+ message: UNCERTAIN.code,
71
+ code: UNCERTAIN.code,
72
+ retryable: UNCERTAIN.retryable,
73
+ };
74
+ }
50
75
  export const AUTHORIZATION_ENDED = 'the host authorization ended';
51
76
  export const PORT_CLOSED = 'the port closed';
52
77
  function body(message) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentshouse/mdruntime",
3
- "version": "0.1.0-c2aaa9c0e3ca4",
3
+ "version": "0.1.0-c2c52158b7381",
4
4
  "description": "The headless core of MD App",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -24,10 +24,18 @@
24
24
  "types": "./dist/client.d.ts",
25
25
  "default": "./dist/client.js"
26
26
  },
27
+ "./entry": {
28
+ "types": "./dist/entry.d.ts",
29
+ "default": "./dist/entry.js"
30
+ },
27
31
  "./memory": {
28
32
  "types": "./dist/memory.d.ts",
29
33
  "default": "./dist/memory.js"
30
34
  },
35
+ "./tables": {
36
+ "types": "./dist/tables.d.ts",
37
+ "default": "./dist/tables.js"
38
+ },
31
39
  "./react": {
32
40
  "types": "./dist/react.d.ts",
33
41
  "default": "./dist/react.js"
@@ -45,7 +53,7 @@
45
53
  "LICENSE"
46
54
  ],
47
55
  "dependencies": {
48
- "@agentshouse/mdmodel": "0.1.0-c2f6f07c18cad",
56
+ "@agentshouse/mdmodel": "0.1.0-c5808814f72d9",
49
57
  "@assistant-ui/react-markdown": "0.14.20",
50
58
  "@tanstack/db": "0.9.2",
51
59
  "lucide-react": "1.47.0",