@agentshouse/mdruntime 0.1.0-alpha.9 → 0.1.0-c0105dbd22806

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 (214) hide show
  1. package/AGENTS.md +299 -0
  2. package/README.md +54 -0
  3. package/dist/adapter.d.ts +246 -40
  4. package/dist/adapter.d.ts.map +1 -1
  5. package/dist/adapter.js +1 -10
  6. package/dist/attached-model.d.ts +11 -0
  7. package/dist/attached-model.d.ts.map +1 -0
  8. package/dist/attached-model.js +47 -0
  9. package/dist/attempt.d.ts +16 -0
  10. package/dist/attempt.d.ts.map +1 -0
  11. package/dist/attempt.js +70 -0
  12. package/dist/binary.d.ts +23 -0
  13. package/dist/binary.d.ts.map +1 -0
  14. package/dist/binary.js +8 -0
  15. package/dist/bootstrap.d.ts +17 -7
  16. package/dist/bootstrap.d.ts.map +1 -1
  17. package/dist/bootstrap.js +97 -41
  18. package/dist/change-set.d.ts +33 -0
  19. package/dist/change-set.d.ts.map +1 -0
  20. package/dist/change-set.js +90 -0
  21. package/dist/change.d.ts +24 -0
  22. package/dist/change.d.ts.map +1 -1
  23. package/dist/change.js +31 -5
  24. package/dist/chat/acts.d.ts +34 -0
  25. package/dist/chat/acts.d.ts.map +1 -0
  26. package/dist/chat/acts.js +36 -0
  27. package/dist/chat/context.d.ts +3 -0
  28. package/dist/chat/context.d.ts.map +1 -0
  29. package/dist/chat/context.js +10 -0
  30. package/dist/chat/input.d.ts +9 -0
  31. package/dist/chat/input.d.ts.map +1 -0
  32. package/dist/chat/input.js +99 -0
  33. package/dist/chat/kit.d.ts +60 -0
  34. package/dist/chat/kit.d.ts.map +1 -0
  35. package/dist/chat/kit.js +123 -0
  36. package/dist/chat/lasting.d.ts +6 -0
  37. package/dist/chat/lasting.d.ts.map +1 -0
  38. package/dist/chat/lasting.js +19 -0
  39. package/dist/chat/list.d.ts +26 -0
  40. package/dist/chat/list.d.ts.map +1 -0
  41. package/dist/chat/list.js +62 -0
  42. package/dist/chat/markdown.d.ts +20 -0
  43. package/dist/chat/markdown.d.ts.map +1 -0
  44. package/dist/chat/markdown.js +188 -0
  45. package/dist/chat/message.d.ts +6 -0
  46. package/dist/chat/message.d.ts.map +1 -0
  47. package/dist/chat/message.js +192 -0
  48. package/dist/chat/messages.d.ts +21 -0
  49. package/dist/chat/messages.d.ts.map +1 -0
  50. package/dist/chat/messages.js +151 -0
  51. package/dist/chat/name.d.ts +6 -0
  52. package/dist/chat/name.d.ts.map +1 -0
  53. package/dist/chat/name.js +37 -0
  54. package/dist/chat/opened.d.ts +11 -0
  55. package/dist/chat/opened.d.ts.map +1 -0
  56. package/dist/chat/opened.js +17 -0
  57. package/dist/chat/overlay.d.ts +31 -0
  58. package/dist/chat/overlay.d.ts.map +1 -0
  59. package/dist/chat/overlay.js +97 -0
  60. package/dist/chat/parts.d.ts +57 -0
  61. package/dist/chat/parts.d.ts.map +1 -0
  62. package/dist/chat/parts.js +119 -0
  63. package/dist/chat/process.d.ts +20 -0
  64. package/dist/chat/process.d.ts.map +1 -0
  65. package/dist/chat/process.js +32 -0
  66. package/dist/chat/provider.d.ts +63 -0
  67. package/dist/chat/provider.d.ts.map +1 -0
  68. package/dist/chat/provider.js +645 -0
  69. package/dist/chat/question.d.ts +9 -0
  70. package/dist/chat/question.d.ts.map +1 -0
  71. package/dist/chat/question.js +80 -0
  72. package/dist/chat/questions.d.ts +31 -0
  73. package/dist/chat/questions.d.ts.map +1 -0
  74. package/dist/chat/questions.js +111 -0
  75. package/dist/chat/read.d.ts +5 -0
  76. package/dist/chat/read.d.ts.map +1 -0
  77. package/dist/chat/read.js +13 -0
  78. package/dist/chat/ready.d.ts +33 -0
  79. package/dist/chat/ready.d.ts.map +1 -0
  80. package/dist/chat/ready.js +91 -0
  81. package/dist/chat/style.d.ts +4 -0
  82. package/dist/chat/style.d.ts.map +1 -0
  83. package/dist/chat/style.js +302 -0
  84. package/dist/chat.d.ts +14 -0
  85. package/dist/chat.d.ts.map +1 -0
  86. package/dist/chat.js +8 -0
  87. package/dist/client.d.ts +49 -33
  88. package/dist/client.d.ts.map +1 -1
  89. package/dist/client.js +164 -183
  90. package/dist/collection.d.ts +9 -17
  91. package/dist/collection.d.ts.map +1 -1
  92. package/dist/collection.js +83 -89
  93. package/dist/connection.d.ts +66 -48
  94. package/dist/connection.d.ts.map +1 -1
  95. package/dist/connection.js +1964 -1173
  96. package/dist/conversation.d.ts +65 -24
  97. package/dist/conversation.d.ts.map +1 -1
  98. package/dist/conversation.js +675 -334
  99. package/dist/durability.js +6 -6
  100. package/dist/entry.d.ts +17 -0
  101. package/dist/entry.d.ts.map +1 -0
  102. package/dist/entry.js +156 -0
  103. package/dist/expectation.d.ts +21 -0
  104. package/dist/expectation.d.ts.map +1 -0
  105. package/dist/expectation.js +70 -0
  106. package/dist/failure.d.ts +13 -0
  107. package/dist/failure.d.ts.map +1 -0
  108. package/dist/failure.js +19 -0
  109. package/dist/fence.d.ts +6 -0
  110. package/dist/fence.d.ts.map +1 -0
  111. package/dist/fence.js +10 -0
  112. package/dist/file.d.ts +2 -2
  113. package/dist/file.d.ts.map +1 -1
  114. package/dist/file.js +48 -71
  115. package/dist/host.d.ts +15 -3
  116. package/dist/host.d.ts.map +1 -1
  117. package/dist/host.js +109 -127
  118. package/dist/identity.d.ts +4 -0
  119. package/dist/identity.d.ts.map +1 -1
  120. package/dist/identity.js +22 -9
  121. package/dist/index.d.ts +17 -11
  122. package/dist/index.d.ts.map +1 -1
  123. package/dist/index.js +4 -3
  124. package/dist/log.js +5 -6
  125. package/dist/memory.d.ts +19 -8
  126. package/dist/memory.d.ts.map +1 -1
  127. package/dist/memory.js +304 -216
  128. package/dist/model.d.ts +16 -30
  129. package/dist/model.d.ts.map +1 -1
  130. package/dist/model.js +21 -21
  131. package/dist/observation.d.ts +27 -0
  132. package/dist/observation.d.ts.map +1 -0
  133. package/dist/observation.js +95 -0
  134. package/dist/open.d.ts +2 -0
  135. package/dist/open.d.ts.map +1 -0
  136. package/dist/open.js +1 -0
  137. package/dist/outcome.d.ts +37 -31
  138. package/dist/outcome.d.ts.map +1 -1
  139. package/dist/outcome.js +36 -18
  140. package/dist/overlay.d.ts +22 -4
  141. package/dist/overlay.d.ts.map +1 -1
  142. package/dist/overlay.js +236 -54
  143. package/dist/paths.d.ts +0 -2
  144. package/dist/paths.d.ts.map +1 -1
  145. package/dist/paths.js +6 -29
  146. package/dist/query.d.ts +219 -10
  147. package/dist/query.d.ts.map +1 -1
  148. package/dist/query.js +462 -15
  149. package/dist/reach.d.ts +42 -0
  150. package/dist/reach.d.ts.map +1 -0
  151. package/dist/reach.js +294 -0
  152. package/dist/react.d.ts +41 -0
  153. package/dist/react.d.ts.map +1 -0
  154. package/dist/react.js +64 -0
  155. package/dist/read-side.d.ts +18 -0
  156. package/dist/read-side.d.ts.map +1 -0
  157. package/dist/read-side.js +440 -0
  158. package/dist/refresh.d.ts +15 -5
  159. package/dist/refresh.d.ts.map +1 -1
  160. package/dist/refresh.js +64 -41
  161. package/dist/replica.d.ts +28 -5
  162. package/dist/replica.d.ts.map +1 -1
  163. package/dist/replica.js +249 -40
  164. package/dist/room-draft.d.ts +144 -0
  165. package/dist/room-draft.d.ts.map +1 -0
  166. package/dist/room-draft.js +438 -0
  167. package/dist/rows.d.ts +46 -0
  168. package/dist/rows.d.ts.map +1 -0
  169. package/dist/rows.js +145 -0
  170. package/dist/save.d.ts +33 -5
  171. package/dist/save.d.ts.map +1 -1
  172. package/dist/save.js +630 -366
  173. package/dist/search.d.ts +62 -0
  174. package/dist/search.d.ts.map +1 -0
  175. package/dist/search.js +125 -0
  176. package/dist/status.d.ts +6 -8
  177. package/dist/status.d.ts.map +1 -1
  178. package/dist/status.js +8 -20
  179. package/dist/store.d.ts +89 -34
  180. package/dist/store.d.ts.map +1 -1
  181. package/dist/store.js +513 -132
  182. package/dist/transfer.d.ts +5 -0
  183. package/dist/transfer.d.ts.map +1 -1
  184. package/dist/transfer.js +1 -5
  185. package/dist/wire.d.ts +59 -19
  186. package/dist/wire.d.ts.map +1 -1
  187. package/dist/wire.js +88 -105
  188. package/package.json +34 -16
  189. package/dist/adapter.js.map +0 -1
  190. package/dist/bootstrap.js.map +0 -1
  191. package/dist/change.js.map +0 -1
  192. package/dist/client.js.map +0 -1
  193. package/dist/collection.js.map +0 -1
  194. package/dist/connection.js.map +0 -1
  195. package/dist/conversation.js.map +0 -1
  196. package/dist/durability.js.map +0 -1
  197. package/dist/file.js.map +0 -1
  198. package/dist/host.js.map +0 -1
  199. package/dist/identity.js.map +0 -1
  200. package/dist/index.js.map +0 -1
  201. package/dist/log.js.map +0 -1
  202. package/dist/memory.js.map +0 -1
  203. package/dist/model.js.map +0 -1
  204. package/dist/outcome.js.map +0 -1
  205. package/dist/overlay.js.map +0 -1
  206. package/dist/paths.js.map +0 -1
  207. package/dist/query.js.map +0 -1
  208. package/dist/refresh.js.map +0 -1
  209. package/dist/replica.js.map +0 -1
  210. package/dist/save.js.map +0 -1
  211. package/dist/status.js.map +0 -1
  212. package/dist/store.js.map +0 -1
  213. package/dist/transfer.js.map +0 -1
  214. package/dist/wire.js.map +0 -1
package/dist/host.js CHANGED
@@ -1,42 +1,44 @@
1
- import { createMdRuntime } from './connection.js';
1
+ import { composeRuntime, } from './connection.js';
2
+ import { described } from './failure.js';
2
3
  import { removeRuntimeStore } from './store.js';
3
- import { AUTHORIZATION_ENDED, carried, envelope, PROTOCOL_MISMATCH, request } from './wire.js';
4
- function answered(md, app, member, input) {
5
- switch(member){
4
+ import { AUTHORIZATION_ENDED, request, WIRE_REACH, } from './wire.js';
5
+ const NARROWED = new Set(['within', 'whole']);
6
+ function answered(md, app, writtenBy, member, input) {
7
+ switch (member) {
6
8
  case 'rooms':
7
9
  return md.rooms();
8
10
  case 'query':
9
11
  return md.query(input[0]);
12
+ case 'search':
13
+ return md.search(input[0]);
10
14
  case 'types':
11
15
  return md.types(input[0]);
12
- case 'syncStatus':
13
- return md.syncStatus();
14
16
  case 'save':
15
- return md.save(input[0], input[1], input[2]);
16
- case 'outcome':
17
- return md.outcome(input[0]);
17
+ return md.save(input[0], input[1], writtenBy);
18
18
  case 'history':
19
19
  return md.history(input[0], input[1], input[2]);
20
+ case 'binaryFile.read':
21
+ return md.binaryFile.read(input[0], input[1], input[2]);
22
+ case 'binaryFile.readReference':
23
+ return md.binaryFile.readReference(input[0]);
20
24
  case 'call':
21
25
  return md.call(input[0], input[1]);
26
+ case 'reached':
27
+ return md.reached(input[0], input[1], input[2]);
22
28
  case 'log':
23
29
  return md.log();
24
- case 'storageLoss':
25
- return md.storageLoss();
26
30
  case 'persistence':
27
31
  return md.persistence();
28
32
  case 'reauthorize':
29
33
  return md.reauthorize();
30
- case 'draft.list':
31
- return md.draft.list();
32
- case 'draft.read':
33
- return md.draft.read(input[0], input[1]);
34
- case 'draft.replace':
35
- return md.draft.replace(input[0], input[1], input[2]);
36
- case 'draft.discard':
37
- return md.draft.discard(input[0], input[1]);
38
- case 'queue.discard':
39
- return md.queue.discard(input[0], input[1]);
34
+ case 'roomDraft.list':
35
+ return md.roomDraft.list();
36
+ case 'roomDraft.read':
37
+ return md.roomDraft.read(input[0], input[1]);
38
+ case 'roomDraft.write':
39
+ return md.roomDraft.write(input[0], input[1], input[2], input[3]);
40
+ case 'roomDraft.discard':
41
+ return md.roomDraft.discard(input[0], input[1], input[2]);
40
42
  case 'presentation.read':
41
43
  return md.presentation.read(app);
42
44
  case 'presentation.write':
@@ -44,13 +46,7 @@ function answered(md, app, member, input) {
44
46
  case 'conversation.list':
45
47
  return md.conversation.list();
46
48
  case 'conversation.read':
47
- return md.conversation.read(input[0]);
48
- case 'conversation.older':
49
- return md.conversation.older(input[0]);
50
- case 'conversation.compose':
51
- return md.conversation.compose(input[0], input[1]);
52
- case 'conversation.discard':
53
- return md.conversation.discard(input[0]);
49
+ return md.conversation.read(input[0], input[1]);
54
50
  case 'conversation.create':
55
51
  return md.conversation.create(input[0]);
56
52
  case 'conversation.send':
@@ -65,136 +61,122 @@ function answered(md, app, member, input) {
65
61
  return md.conversation.cancel(input[0], input[1]);
66
62
  case 'conversation.delete':
67
63
  return md.conversation.delete(input[0]);
68
- }
69
- }
70
- function subscribed(md, app, topic, input, deliver) {
71
- switch(topic){
72
- case 'rooms':
73
- return md.observe('rooms', deliver);
74
- case 'connection-refusal':
75
- return md.observe('connection-refusal', deliver);
76
- case 'storage-loss':
77
- return md.observe('storage-loss', deliver);
78
- case 'sync-status':
79
- return md.observe('sync-status', deliver);
80
- case 'drafts':
81
- return md.observe('drafts', deliver);
82
- case 'queue':
83
- return md.observe('queue', input[0], deliver);
84
- case 'query':
85
- return md.observe('query', input[0], deliver);
86
- case 'presentation':
87
- return md.observe('presentation', app, deliver);
88
- case 'conversation':
89
- return md.observe('conversation', input[0], deliver);
64
+ case 'chatDraft.write':
65
+ return md.chatDraft.write(input[0], input[1], input[2]);
66
+ case 'chatDraft.discard':
67
+ return md.chatDraft.discard(input[0]);
90
68
  }
91
69
  }
92
70
  export function serveMdRuntime(options) {
93
- const stopping = new AbortController();
94
- const stop = ()=>{
95
- stopping.abort();
71
+ const deploymentFacts = structuredClone(options.deploymentFacts);
72
+ const closing = new AbortController();
73
+ const close = () => {
74
+ closing.abort();
96
75
  };
97
- options.signal?.addEventListener('abort', stop, {
98
- once: true
99
- });
100
- if (options.signal?.aborted === true) stop();
101
- const md = createMdRuntime({
102
- ...options,
103
- signal: stopping.signal
104
- });
76
+ options.signal?.addEventListener('abort', close, { once: true });
77
+ if (options.signal?.aborted === true)
78
+ close();
79
+ const runtime = composeRuntime({ ...options, signal: closing.signal });
80
+ const { md } = runtime;
105
81
  const attachments = new Map();
106
82
  let authorized = true;
107
- function attach(port, app) {
108
- if (!authorized) throw new Error(AUTHORIZATION_ENDED);
109
- const subscriptions = new Map();
83
+ const watchFacts = (deliver) => {
84
+ deliver(structuredClone(deploymentFacts));
85
+ return () => { };
86
+ };
87
+ function attach(port, app, release, reach) {
88
+ if (!authorized)
89
+ throw new Error(AUTHORIZATION_ENDED);
90
+ const writtenBy = release === undefined ? undefined : { app, release };
91
+ const view = runtime.within(reach ?? null);
92
+ const observations = new Map();
110
93
  let serving = true;
111
- const send = (message)=>{
112
- port.postMessage(envelope(message));
94
+ const send = (message) => {
95
+ port.postMessage(message);
113
96
  };
114
- const detach = ()=>{
115
- if (!serving) return;
97
+ const detach = () => {
98
+ if (!serving)
99
+ return;
116
100
  serving = false;
117
- for (const end of subscriptions.values())end();
118
- subscriptions.clear();
101
+ for (const end of observations.values())
102
+ end();
103
+ observations.clear();
119
104
  attachments.delete(detach);
120
105
  };
121
- const serve = async (message)=>{
122
- if (message.kind === 'hello') return;
106
+ const observe = (id, topic, input) => {
107
+ let resolved = false;
108
+ const deliver = (value) => {
109
+ if (!serving)
110
+ return;
111
+ send(resolved ? { kind: 'event', id, value } : { kind: 'result', id, value });
112
+ resolved = true;
113
+ };
114
+ observations.set(id, topic === 'deployment-facts'
115
+ ? watchFacts(deliver)
116
+ : (NARROWED.has(WIRE_REACH.topics[topic]) ? view : runtime).watch(topic, topic === 'presentation' ? [app] : input, deliver));
117
+ };
118
+ const serve = async (message) => {
119
+ if (message.kind === 'hello')
120
+ return;
123
121
  if (message.kind === 'stop') {
124
- subscriptions.get(message.id)?.();
125
- subscriptions.delete(message.id);
122
+ observations.get(message.id)?.();
123
+ observations.delete(message.id);
126
124
  return;
127
125
  }
128
126
  try {
127
+ if (message.kind !== 'observe' || message.topic !== 'room-drafts')
128
+ await md.loaded();
129
129
  if (message.kind === 'observe') {
130
- subscriptions.set(message.id, subscribed(md, app, message.topic, message.input, (value)=>{
131
- if (serving) send({
132
- kind: 'event',
133
- id: message.id,
134
- value
135
- });
136
- }));
137
- if (serving) send({
138
- kind: 'result',
139
- id: message.id,
140
- value: null
141
- });
130
+ if (serving)
131
+ observe(message.id, message.topic, message.input);
142
132
  return;
143
133
  }
144
- const value = await answered(md, app, message.member, message.input);
145
- if (serving) send({
146
- kind: 'result',
147
- id: message.id,
148
- value
149
- });
150
- } catch (error) {
151
- if (serving) {
152
- send({
153
- kind: 'failure',
154
- id: message.id,
155
- message: error instanceof Error ? error.message : String(error)
156
- });
157
- }
134
+ const value = await answered(NARROWED.has(WIRE_REACH.members[message.member]) ? view.md : md, app, writtenBy, message.member, message.input);
135
+ if (serving)
136
+ send({ kind: 'result', id: message.id, value });
137
+ }
138
+ catch (error) {
139
+ if (serving)
140
+ send({ kind: 'failure', id: message.id, ...described(error) });
158
141
  }
159
142
  };
160
- port.addEventListener('message', (event)=>{
161
- if (!serving) return;
162
- const wire = carried(event.data);
163
- if (wire === null) return;
164
- if (!wire.matching) {
165
- send({
166
- kind: 'refusal',
167
- refusal: PROTOCOL_MISMATCH
168
- });
169
- detach();
143
+ port.addEventListener('message', (event) => {
144
+ if (!serving)
145
+ return;
146
+ const message = request(event.data);
147
+ if (message === null)
170
148
  return;
171
- }
172
- const message = request(wire.message);
173
- if (message === null) return;
174
149
  void serve(message);
175
150
  });
176
151
  port.addEventListener('close', detach);
177
152
  port.start();
178
153
  attachments.set(detach, send);
179
- return detach;
154
+ return {
155
+ detach,
156
+ narrow(next) {
157
+ if (serving)
158
+ view.narrow(next);
159
+ },
160
+ };
180
161
  }
181
162
  return {
182
163
  attach,
183
- async endAuthorization () {
164
+ async endAuthorization(holder) {
184
165
  authorized = false;
185
- for (const [detach, send] of [
186
- ...attachments
187
- ]){
188
- send({
189
- kind: 'ended'
190
- });
166
+ for (const [detach, send] of [...attachments]) {
167
+ send({ kind: 'ended' });
191
168
  detach();
192
169
  }
193
- stop();
194
- await removeRuntimeStore();
195
- await options.shell.dropGeneration();
196
- }
170
+ close();
171
+ if (!(await removeRuntimeStore(holder)))
172
+ await options.shell.dropGeneration();
173
+ },
174
+ lose(locators) {
175
+ return runtime.lose(locators);
176
+ },
177
+ stop() {
178
+ return runtime.stop();
179
+ },
197
180
  };
198
181
  }
199
-
200
- //# sourceMappingURL=host.js.map
182
+ export { AUTHORED_SCHEMA, authoredBy, authoredHolder, STORE_SCHEMA } from './store.js';
@@ -1,2 +1,6 @@
1
1
  export declare function changeBatchIdentity(at?: number): string;
2
+ export declare function roomDraftRevision(): string;
3
+ export declare function chatDraftRevision(): string;
4
+ export declare function transferIdentity(): string;
5
+ export declare function binaryLocalId(): string;
2
6
  //# sourceMappingURL=identity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA,wBAAgB,mBAAmB,CAAC,EAAE,GAAE,MAAmB,GAAG,MAAM,CAWnE"}
1
+ {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA,wBAAgB,mBAAmB,CAAC,EAAE,GAAE,MAAmB,GAAG,MAAM,CAWnE;AAQD,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC"}
package/dist/identity.js CHANGED
@@ -2,15 +2,28 @@ export function changeBatchIdentity(at = Date.now()) {
2
2
  const bytes = new Uint8Array(16);
3
3
  crypto.getRandomValues(bytes);
4
4
  const time = BigInt(at);
5
- for(let index = 0; index < 6; index += 1){
6
- bytes[index] = Number(time >> BigInt(8 * (5 - index)) & 0xffn);
5
+ for (let index = 0; index < 6; index += 1) {
6
+ bytes[index] = Number((time >> BigInt(8 * (5 - index))) & 0xffn);
7
7
  }
8
- bytes[6] = bytes[6] & 0x0f | 0x70;
9
- bytes[8] = bytes[8] & 0x3f | 0x80;
10
- const hex = [
11
- ...bytes
12
- ].map((byte)=>byte.toString(16).padStart(2, '0')).join('');
8
+ bytes[6] = (bytes[6] & 0x0f) | 0x70;
9
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
10
+ const hex = [...bytes].map((byte) => byte.toString(16).padStart(2, '0')).join('');
13
11
  return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
14
12
  }
15
-
16
- //# sourceMappingURL=identity.js.map
13
+ function randomIdentity() {
14
+ const bytes = new Uint8Array(16);
15
+ crypto.getRandomValues(bytes);
16
+ return [...bytes].map((byte) => byte.toString(16).padStart(2, '0')).join('');
17
+ }
18
+ export function roomDraftRevision() {
19
+ return randomIdentity();
20
+ }
21
+ export function chatDraftRevision() {
22
+ return randomIdentity();
23
+ }
24
+ export function transferIdentity() {
25
+ return randomIdentity();
26
+ }
27
+ export function binaryLocalId() {
28
+ return randomIdentity();
29
+ }
package/dist/index.d.ts CHANGED
@@ -1,16 +1,22 @@
1
- export type { ActionDeclaration, ActionRequest, ActionResult, Adapter, AdapterFailure, Authorization, BootstrapPage, BootstrapRequest, BootstrapResult, Capability, ContractUnavailable, ConversationAction, ConversationCards, ConversationEvent, ConversationMessage, DiscoverResult, DiscoveredRoom, Discovery, HistoryRequest, HistoryResult, HistoryRetention, HistoryRevision, MdModelIdentity, ModelRequest, MutationRequest, MutationResult, PageToken, ProviderLimit, ProviderRefusal, RefreshPage, RefreshRequest, RefreshResult, Retention, RetryableRefusal, RevokedAuthorization, RoomNotReadable, RoomVersionNotification, SelectedRooms, TransportUncertainty, TypedSelection, ViewedConversations, } from './adapter.js';
2
- export type { Change, ChangeBatch, Precondition } from './change.js';
3
- export type { ConversationEntry, ConversationSurface, ConversationView, GrowingText, UnsentInstruction, } from './conversation.js';
4
- export type { FileDeclaration, InstructionFile } from './file.js';
5
- export type { MdType } from './collection.js';
6
- export type { AppRoom, AppTypedSelection, ConnectionRefusal, ConnectionRefusalReason, DraftEntry, DraftSurface, HistoryQuery, MdRuntime, MdRuntimeOptions, PresentationSurface, QueueSurface, RoomTypes, SaveResult, } from './connection.js';
7
- export type { AcceptedOutcome, AffectedState, CallResult, QueueEntry, QueueOutcome, SubmissionOutcome, } from './outcome.js';
1
+ export type { AcceptedMessage, ActionDeclaration, ActionRequest, ActionResult, Adapter, AdapterFailure, Authorization, BinaryFile, BinaryRequest, BinaryResult, ReferrerScope, BootstrapPage, BootstrapRequest, BootstrapResult, Capability, ChangeAuthor, ContractUnavailable, ConversationAction, ConversationAgents, ConversationEvent, ConversationHistories, ConversationHistoryPage, ConversationHistoryRequest, ConversationMessage, ConversationStream, DiscoverResult, DiscoveredRoom, Discovery, HistoryAuthor, HistoryRequest, HistoryResult, HistoryRetention, HistoryRevision, HeldRoom, ListedConversation, MdModelIdentity, Member, MutationRequest, MutationResult, PageToken, ProviderLimit, ProviderRefusal, RefreshPage, RefreshRequest, RefreshResult, Retention, RetryableRefusal, RevokedAuthorization, RoomModels, RoomNotReadable, RoomStream, RoomStreamEvent, RoomVersionAt, ServiceMode, ServiceModeSignal, TransportUncertainty, TurnContext, TurnOperation, TypedSelection, } from './adapter.js';
2
+ export type { Change, ChangeBatch, Precondition, WrittenBy } from './change.js';
3
+ export type { ChatDraft, ChatDraftSurface, ConversationAgent, ConversationEntry, ConversationOptions, ConversationState, ConversationSurface, ConversationView, RunningTurn, } from './conversation.js';
4
+ export type { ChatDraftFile, FileDeclaration } from './file.js';
5
+ export type { AppRoom, AppTypedSelection, BinaryFileSurface, ConnectionRefusal, ConnectionRefusalCode, HistoryQuery, MdRuntime, MdRuntimeOptions, PresentationSurface, RoomDraftSurface, RoomSchemas, SavedRoomDraft, SaveResult, } from './connection.js';
6
+ export type { Observation } from './observation.js';
7
+ export type { BinaryAnswer, CallResult, Failure, HistoryAnswer, QueueEntry, Submission, } from './outcome.js';
8
+ export type { BinaryFileRecord, BinaryReference } from './binary.js';
9
+ export type { RuntimeError } from './failure.js';
10
+ export type { ChangedPart, FieldValue, ReturnReason, RoomDraft, RoomDraftCreation, RoomDraftParts, RoomDraftWrite, } from './room-draft.js';
8
11
  export type { SaveRefusal } from './save.js';
9
- export { createMdRuntime } from './connection.js';
12
+ export type { DocumentHit, DocumentPart, MessageHit, SearchRequest, SearchResult, } from './search.js';
13
+ export { departure } from './change.js';
14
+ export { changeBatchIdentity } from './identity.js';
15
+ export { attempts, identities, intentOf, type Answered, type Attempt, type Attempts, type Identities, } from './attempt.js';
16
+ export { expectedList, expecting, type ExpectedOf, type Expecting } from './expectation.js';
10
17
  export type { RuntimeShell } from './durability.js';
11
18
  export type { AttentionEntry, SyncStatus } from './status.js';
12
- export type { Backlink, QueryDocument, QueryGroup, QueryOptions, QueryResult, Selector, } from '@agentshouse/query';
13
- export type { AttachedModelBinding, ModelIdentity, ModelSnapshot, ModelState, ModelResult, ModelValidation, TypesResult, ValidationReceipt, } from './model.js';
19
+ export type { Backlink, Direction, DocumentQuery, DocumentResult, Filter, GroupQuery, GroupResult, Key, LocalQuery, OrderOptions, Predicate, QueryDocument, QueryGroup, QueryResult, Related, Select, Value, Where, } from './query.js';
20
+ export type { MdType, ModelIdentity, ModelSnapshot, ModelState, ModelResult, TypesResult, ValidationReceipt, } from './model.js';
14
21
  export type { OperationScopes, ReplicaAdmission, ScopedRefusal } from './adapter.js';
15
- export type { QueryBinding, QueryInput } from './query.js';
16
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,OAAO,EACP,cAAc,EACd,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,SAAS,EACT,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,YAAY,EACZ,eAAe,EACf,cAAc,EACd,SAAS,EACT,aAAa,EACb,eAAe,EACf,WAAW,EACX,cAAc,EACd,aAAa,EACb,SAAS,EACT,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,uBAAuB,EACvB,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,mBAAmB,GACpB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACrE,YAAY,EACV,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,WAAW,EACX,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAClE,YAAY,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,YAAY,EACV,OAAO,EACP,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,SAAS,EACT,UAAU,GACX,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,eAAe,EACf,aAAa,EACb,UAAU,EACV,UAAU,EACV,YAAY,EACZ,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9D,YAAY,EACV,QAAQ,EACR,aAAa,EACb,UAAU,EACV,YAAY,EACZ,WAAW,EACX,QAAQ,GACT,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,oBAAoB,EACpB,aAAa,EACb,aAAa,EACb,UAAU,EACV,WAAW,EACX,eAAe,EACf,WAAW,EACX,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACrF,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
- export { createMdRuntime } from './connection.js';
2
-
3
- //# sourceMappingURL=index.js.map
1
+ export { departure } from './change.js';
2
+ export { changeBatchIdentity } from './identity.js';
3
+ export { attempts, identities, intentOf, } from './attempt.js';
4
+ export { expectedList, expecting } from './expectation.js';
package/dist/log.js CHANGED
@@ -2,14 +2,13 @@ const BOUND = 256;
2
2
  export function createLog() {
3
3
  const events = [];
4
4
  return {
5
- record (event) {
5
+ record(event) {
6
6
  events.push(event);
7
- if (events.length > BOUND) events.splice(0, events.length - BOUND);
7
+ if (events.length > BOUND)
8
+ events.splice(0, events.length - BOUND);
8
9
  },
9
- export () {
10
+ export() {
10
11
  return events.join('\n');
11
- }
12
+ },
12
13
  };
13
14
  }
14
-
15
- //# sourceMappingURL=log.js.map
package/dist/memory.d.ts CHANGED
@@ -1,15 +1,18 @@
1
1
  import type { ModelResult } from './model.js';
2
- import { type ActionResult, type Adapter, type Capability, type ConversationAction, type ConversationEvent, type ConversationMessage, type DiscoveredRoom, type MdModelIdentity, type ProviderLimit, type Retention, type RoomVersionNotification } from './adapter.js';
2
+ import { type AcceptedMessage, type ActionResult, type Adapter, type BinaryFile, type Capability, type ConversationAction, type ConversationEvent, type DiscoveredRoom, type HeadChange, type ListedConversation, type Member, type ProviderLimit, type Retention, type ServiceMode } from './adapter.js';
3
3
  export type MemoryRoom = DiscoveredRoom & {
4
4
  model?: ModelResult;
5
5
  selectionModel?: ModelResult;
6
6
  documents?: Readonly<Record<string, string>>;
7
7
  revisions?: Readonly<Record<string, string>>;
8
- binaryTargets?: readonly string[];
8
+ changes?: Readonly<Record<string, HeadChange>>;
9
+ binaryFiles?: Readonly<Record<string, BinaryFile>>;
10
+ blobs?: Readonly<Record<string, Blob>>;
9
11
  };
10
12
  export type MemoryConversation = {
11
13
  conversation: string;
12
- messages?: readonly ConversationMessage[];
14
+ listed?: Omit<ListedConversation, 'conversation'>;
15
+ messages?: readonly AcceptedMessage[];
13
16
  outcomes?: Partial<Record<ConversationAction, ActionResult>>;
14
17
  };
15
18
  export type MemoryAdapterOptions = {
@@ -17,20 +20,28 @@ export type MemoryAdapterOptions = {
17
20
  conversations?: readonly MemoryConversation[];
18
21
  historyPageSize?: number;
19
22
  pageSize?: number;
20
- mdModel?: MdModelIdentity;
21
- supportedVersions?: readonly number[];
22
23
  capabilities?: readonly Capability[];
23
24
  providerLimits?: readonly ProviderLimit[];
24
25
  retention?: Retention;
26
+ member?: Member;
27
+ unopened?: boolean;
28
+ exhaustiveDiscovery?: true;
25
29
  };
26
30
  export type MemoryAdapter = Adapter & {
27
31
  setRooms(rooms: readonly MemoryRoom[]): void;
28
32
  setConversations(conversations: readonly MemoryConversation[]): void;
29
33
  script(operation: keyof Adapter, answer: unknown): void;
30
- notifyRoomVersion(notification: RoomVersionNotification): void;
34
+ open(): void;
35
+ close(revoked?: boolean): void;
36
+ expire(locators: readonly string[]): void;
37
+ notifyRoomVersion(notification: {
38
+ locator: string;
39
+ roomVersion: string;
40
+ }): void;
31
41
  notifyConversation(event: ConversationEvent): void;
32
- selectedRooms(): readonly string[];
33
- viewedConversations(): readonly string[];
42
+ notifyServiceMode(mode: ServiceMode): void;
43
+ heldRooms(): readonly string[];
44
+ replicatedConversations(): readonly string[];
34
45
  };
35
46
  export declare function createMemoryAdapter(options?: MemoryAdapterOptions): MemoryAdapter;
36
47
  //# sourceMappingURL=memory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,OAAO,EAIZ,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EAExB,KAAK,cAAc,EAGnB,KAAK,eAAe,EAGpB,KAAK,aAAa,EAGlB,KAAK,SAAS,EACd,KAAK,uBAAuB,EAC7B,MAAM,cAAc,CAAC;AAkBtB,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG;IACxC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7C,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7C,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC,CAAC;CAC9D,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IAC9B,aAAa,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,YAAY,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IACrC,cAAc,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IAC1C,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG;IACpC,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,IAAI,CAAC;IAC7C,gBAAgB,CAAC,aAAa,EAAE,SAAS,kBAAkB,EAAE,GAAG,IAAI,CAAC;IACrE,MAAM,CAAC,SAAS,EAAE,MAAM,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACxD,iBAAiB,CAAC,YAAY,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAC/D,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACnD,aAAa,IAAI,SAAS,MAAM,EAAE,CAAC;IACnC,mBAAmB,IAAI,SAAS,MAAM,EAAE,CAAC;CAC1C,CAAC;AA+BF,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,oBAAyB,GAAG,aAAa,CAwUrF"}
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"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"}