@agentshouse/mdruntime 0.1.0-cc294e382554d → 0.1.0-cc2e934017fb1

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 (385) hide show
  1. package/README.md +19 -16
  2. package/dist/acceptance.d.ts +3 -0
  3. package/dist/acceptance.d.ts.map +1 -0
  4. package/dist/acceptance.js +308 -0
  5. package/dist/actions.d.ts +20 -0
  6. package/dist/actions.d.ts.map +1 -0
  7. package/dist/actions.js +251 -0
  8. package/dist/adapter.d.ts +148 -122
  9. package/dist/adapter.d.ts.map +1 -1
  10. package/dist/attached-model.d.ts +7 -10
  11. package/dist/attached-model.d.ts.map +1 -1
  12. package/dist/attached-model.js +40 -41
  13. package/dist/binary.d.ts +0 -5
  14. package/dist/binary.d.ts.map +1 -1
  15. package/dist/binary.js +1 -1
  16. package/dist/bootstrap.d.ts +30 -11
  17. package/dist/bootstrap.d.ts.map +1 -1
  18. package/dist/bootstrap.js +309 -113
  19. package/dist/cell.d.ts +6 -0
  20. package/dist/cell.d.ts.map +1 -0
  21. package/dist/cell.js +9 -0
  22. package/dist/chain.d.ts +12 -0
  23. package/dist/chain.d.ts.map +1 -0
  24. package/dist/chain.js +64 -0
  25. package/dist/change-set.d.ts +10 -16
  26. package/dist/change-set.d.ts.map +1 -1
  27. package/dist/change-set.js +17 -94
  28. package/dist/change.d.ts +32 -1
  29. package/dist/change.d.ts.map +1 -1
  30. package/dist/change.js +14 -3
  31. package/dist/chat-types.d.ts +5 -0
  32. package/dist/chat-types.d.ts.map +1 -0
  33. package/dist/chat-types.js +13 -0
  34. package/dist/client.d.ts +33 -19
  35. package/dist/client.d.ts.map +1 -1
  36. package/dist/client.js +108 -17
  37. package/dist/collection.d.ts +29 -22
  38. package/dist/collection.d.ts.map +1 -1
  39. package/dist/collection.js +47 -354
  40. package/dist/compile.d.ts +16 -0
  41. package/dist/compile.d.ts.map +1 -0
  42. package/dist/compile.js +711 -0
  43. package/dist/connection.d.ts +7 -137
  44. package/dist/connection.d.ts.map +1 -1
  45. package/dist/connection.js +105 -3623
  46. package/dist/context.d.ts +2 -0
  47. package/dist/context.d.ts.map +1 -0
  48. package/dist/{chat/context.js → context.js} +1 -4
  49. package/dist/conversation-live.d.ts +136 -0
  50. package/dist/conversation-live.d.ts.map +1 -0
  51. package/dist/conversation-live.js +249 -0
  52. package/dist/conversation-row.d.ts +33 -0
  53. package/dist/conversation-row.d.ts.map +1 -0
  54. package/dist/conversation-row.js +53 -0
  55. package/dist/conversation.d.ts +56 -46
  56. package/dist/conversation.d.ts.map +1 -1
  57. package/dist/conversation.js +964 -828
  58. package/dist/declaration.d.ts +10 -0
  59. package/dist/declaration.d.ts.map +1 -0
  60. package/dist/declaration.js +24 -0
  61. package/dist/digest.d.ts +7 -0
  62. package/dist/digest.d.ts.map +1 -0
  63. package/dist/digest.js +113 -0
  64. package/dist/discovery.d.ts +10 -0
  65. package/dist/discovery.d.ts.map +1 -0
  66. package/dist/discovery.js +148 -0
  67. package/dist/durability.d.ts +16 -4
  68. package/dist/durability.d.ts.map +1 -1
  69. package/dist/durability.js +5 -0
  70. package/dist/entry.d.ts +5 -2
  71. package/dist/entry.d.ts.map +1 -1
  72. package/dist/entry.js +33 -29
  73. package/dist/expectation.d.ts +4 -2
  74. package/dist/expectation.d.ts.map +1 -1
  75. package/dist/expectation.js +33 -11
  76. package/dist/failure.d.ts +1 -0
  77. package/dist/failure.d.ts.map +1 -1
  78. package/dist/failure.js +3 -0
  79. package/dist/figures.d.ts +49 -0
  80. package/dist/figures.d.ts.map +1 -0
  81. package/dist/figures.js +197 -0
  82. package/dist/file.d.ts +2 -19
  83. package/dist/file.d.ts.map +1 -1
  84. package/dist/file.js +7 -122
  85. package/dist/holdings.d.ts +29 -0
  86. package/dist/holdings.d.ts.map +1 -0
  87. package/dist/holdings.js +95 -0
  88. package/dist/host.d.ts +20 -8
  89. package/dist/host.d.ts.map +1 -1
  90. package/dist/host.js +99 -41
  91. package/dist/identity.d.ts +0 -2
  92. package/dist/identity.d.ts.map +1 -1
  93. package/dist/identity.js +0 -6
  94. package/dist/index.d.ts +35 -13
  95. package/dist/index.d.ts.map +1 -1
  96. package/dist/index.js +14 -2
  97. package/dist/install.d.ts +54 -0
  98. package/dist/install.d.ts.map +1 -0
  99. package/dist/install.js +538 -0
  100. package/dist/lifecycle.d.ts +7 -0
  101. package/dist/lifecycle.d.ts.map +1 -0
  102. package/dist/lifecycle.js +272 -0
  103. package/dist/listing.d.ts +48 -0
  104. package/dist/listing.d.ts.map +1 -0
  105. package/dist/listing.js +139 -0
  106. package/dist/live.d.ts +23 -0
  107. package/dist/live.d.ts.map +1 -0
  108. package/dist/live.js +165 -0
  109. package/dist/locks.d.ts +7 -0
  110. package/dist/locks.d.ts.map +1 -0
  111. package/dist/locks.js +33 -0
  112. package/dist/log.d.ts +1 -0
  113. package/dist/log.d.ts.map +1 -1
  114. package/dist/lost.d.ts +5 -0
  115. package/dist/lost.d.ts.map +1 -0
  116. package/dist/lost.js +50 -0
  117. package/dist/media.d.ts +8 -0
  118. package/dist/media.d.ts.map +1 -0
  119. package/dist/media.js +218 -0
  120. package/dist/memory.d.ts +17 -7
  121. package/dist/memory.d.ts.map +1 -1
  122. package/dist/memory.js +257 -111
  123. package/dist/messages.d.ts +49 -0
  124. package/dist/messages.d.ts.map +1 -0
  125. package/dist/messages.js +150 -0
  126. package/dist/model.d.ts +8 -11
  127. package/dist/model.d.ts.map +1 -1
  128. package/dist/model.js +6 -23
  129. package/dist/models.d.ts +10 -0
  130. package/dist/models.d.ts.map +1 -0
  131. package/dist/models.js +156 -0
  132. package/dist/name.d.ts +4 -0
  133. package/dist/name.d.ts.map +1 -0
  134. package/dist/name.js +122 -0
  135. package/dist/observation.d.ts +15 -2
  136. package/dist/observation.d.ts.map +1 -1
  137. package/dist/observation.js +98 -14
  138. package/dist/opened.d.ts +22 -0
  139. package/dist/opened.d.ts.map +1 -0
  140. package/dist/opened.js +107 -0
  141. package/dist/opening.d.ts +4 -0
  142. package/dist/opening.d.ts.map +1 -0
  143. package/dist/opening.js +59 -0
  144. package/dist/outcome.d.ts +44 -9
  145. package/dist/outcome.d.ts.map +1 -1
  146. package/dist/outcome.js +41 -2
  147. package/dist/overlay.d.ts +4 -5
  148. package/dist/overlay.d.ts.map +1 -1
  149. package/dist/overlay.js +65 -169
  150. package/dist/page-metadata.d.ts +8 -0
  151. package/dist/page-metadata.d.ts.map +1 -0
  152. package/dist/page-metadata.js +19 -0
  153. package/dist/parts.d.ts +11 -0
  154. package/dist/parts.d.ts.map +1 -0
  155. package/dist/parts.js +21 -0
  156. package/dist/paths.d.ts +2 -0
  157. package/dist/paths.d.ts.map +1 -1
  158. package/dist/paths.js +26 -0
  159. package/dist/preparation.d.ts +20 -0
  160. package/dist/preparation.d.ts.map +1 -0
  161. package/dist/preparation.js +233 -0
  162. package/dist/presence.d.ts +52 -0
  163. package/dist/presence.d.ts.map +1 -0
  164. package/dist/presence.js +220 -0
  165. package/dist/queries.d.ts +16 -0
  166. package/dist/queries.d.ts.map +1 -0
  167. package/dist/queries.js +270 -0
  168. package/dist/query.d.ts +21 -207
  169. package/dist/query.d.ts.map +1 -1
  170. package/dist/query.js +3 -493
  171. package/dist/{chat/questions.d.ts → questions.d.ts} +5 -2
  172. package/dist/questions.d.ts.map +1 -0
  173. package/dist/{chat/questions.js → questions.js} +13 -2
  174. package/dist/queue.d.ts +40 -0
  175. package/dist/queue.d.ts.map +1 -0
  176. package/dist/queue.js +455 -0
  177. package/dist/reach.d.ts +20 -9
  178. package/dist/reach.d.ts.map +1 -1
  179. package/dist/reach.js +300 -106
  180. package/dist/react.d.ts +14 -2
  181. package/dist/react.d.ts.map +1 -1
  182. package/dist/react.js +10 -1
  183. package/dist/{chat/read.d.ts → read.d.ts} +2 -0
  184. package/dist/read.d.ts.map +1 -0
  185. package/dist/{chat/read.js → read.js} +4 -0
  186. package/dist/readiness.d.ts +13 -17
  187. package/dist/readiness.d.ts.map +1 -1
  188. package/dist/readiness.js +2 -8
  189. package/dist/reads.d.ts +36 -10
  190. package/dist/reads.d.ts.map +1 -1
  191. package/dist/reads.js +159 -83
  192. package/dist/recovery.d.ts +3 -2
  193. package/dist/recovery.d.ts.map +1 -1
  194. package/dist/recovery.js +43 -8
  195. package/dist/refresh.d.ts +18 -15
  196. package/dist/refresh.d.ts.map +1 -1
  197. package/dist/refresh.js +145 -79
  198. package/dist/refusal.d.ts +5 -0
  199. package/dist/refusal.d.ts.map +1 -0
  200. package/dist/refusal.js +57 -0
  201. package/dist/replica.d.ts +50 -39
  202. package/dist/replica.d.ts.map +1 -1
  203. package/dist/replica.js +319 -208
  204. package/dist/room-draft.d.ts +28 -11
  205. package/dist/room-draft.d.ts.map +1 -1
  206. package/dist/room-draft.js +185 -113
  207. package/dist/room-drafts.d.ts +24 -0
  208. package/dist/room-drafts.d.ts.map +1 -0
  209. package/dist/room-drafts.js +217 -0
  210. package/dist/rows.d.ts +31 -31
  211. package/dist/rows.d.ts.map +1 -1
  212. package/dist/rows.js +60 -125
  213. package/dist/runtime.d.ts +34 -0
  214. package/dist/runtime.d.ts.map +1 -0
  215. package/dist/runtime.js +1 -0
  216. package/dist/save.d.ts +42 -50
  217. package/dist/save.d.ts.map +1 -1
  218. package/dist/save.js +571 -188
  219. package/dist/saves.d.ts +32 -0
  220. package/dist/saves.d.ts.map +1 -0
  221. package/dist/saves.js +413 -0
  222. package/dist/search.d.ts +12 -95
  223. package/dist/search.d.ts.map +1 -1
  224. package/dist/search.js +10 -266
  225. package/dist/seed.d.ts +11 -2
  226. package/dist/seed.d.ts.map +1 -1
  227. package/dist/seed.js +71 -1
  228. package/dist/shared.d.ts +4 -9
  229. package/dist/shared.d.ts.map +1 -1
  230. package/dist/shared.js +61 -120
  231. package/dist/shown.d.ts +32 -0
  232. package/dist/shown.d.ts.map +1 -0
  233. package/dist/shown.js +290 -0
  234. package/dist/socket/admission.d.ts +7 -0
  235. package/dist/socket/admission.d.ts.map +1 -0
  236. package/dist/socket/admission.js +39 -0
  237. package/dist/socket/answers.d.ts +6 -0
  238. package/dist/socket/answers.d.ts.map +1 -0
  239. package/dist/socket/answers.js +20 -0
  240. package/dist/socket/lanes.d.ts +20 -0
  241. package/dist/socket/lanes.d.ts.map +1 -0
  242. package/dist/socket/lanes.js +77 -0
  243. package/dist/socket/reads.d.ts +10 -0
  244. package/dist/socket/reads.d.ts.map +1 -0
  245. package/dist/socket/reads.js +31 -0
  246. package/dist/socket/session.d.ts +38 -0
  247. package/dist/socket/session.d.ts.map +1 -0
  248. package/dist/socket/session.js +23 -0
  249. package/dist/socket.d.ts +67 -0
  250. package/dist/socket.d.ts.map +1 -0
  251. package/dist/socket.js +170 -0
  252. package/dist/source.d.ts +61 -0
  253. package/dist/source.d.ts.map +1 -0
  254. package/dist/source.js +82 -0
  255. package/dist/status.d.ts +4 -5
  256. package/dist/status.d.ts.map +1 -1
  257. package/dist/status.js +3 -7
  258. package/dist/store/installs.d.ts +30 -0
  259. package/dist/store/installs.d.ts.map +1 -0
  260. package/dist/store/installs.js +34 -0
  261. package/dist/store/readiness.d.ts +10 -0
  262. package/dist/store/readiness.d.ts.map +1 -0
  263. package/dist/store/readiness.js +52 -0
  264. package/dist/store/records.d.ts +212 -0
  265. package/dist/store/records.d.ts.map +1 -0
  266. package/dist/store/records.js +430 -0
  267. package/dist/store/room-held.d.ts +8 -0
  268. package/dist/store/room-held.d.ts.map +1 -0
  269. package/dist/store/room-held.js +17 -0
  270. package/dist/store/space.d.ts +11 -0
  271. package/dist/store/space.d.ts.map +1 -0
  272. package/dist/store/space.js +41 -0
  273. package/dist/store/watchers.d.ts +17 -0
  274. package/dist/store/watchers.d.ts.map +1 -0
  275. package/dist/store/watchers.js +56 -0
  276. package/dist/store/writes.d.ts +24 -0
  277. package/dist/store/writes.d.ts.map +1 -0
  278. package/dist/store/writes.js +125 -0
  279. package/dist/store.d.ts +109 -166
  280. package/dist/store.d.ts.map +1 -1
  281. package/dist/store.js +153 -797
  282. package/dist/stored.d.ts +156 -0
  283. package/dist/stored.d.ts.map +1 -0
  284. package/dist/stored.js +649 -0
  285. package/dist/surface.d.ts +88 -0
  286. package/dist/surface.d.ts.map +1 -0
  287. package/dist/surface.js +223 -0
  288. package/dist/sync.d.ts +19 -0
  289. package/dist/sync.d.ts.map +1 -0
  290. package/dist/sync.js +521 -0
  291. package/dist/tables.d.ts +412 -0
  292. package/dist/tables.d.ts.map +1 -0
  293. package/dist/tables.js +737 -0
  294. package/dist/tallies.d.ts +18 -0
  295. package/dist/tallies.d.ts.map +1 -0
  296. package/dist/tallies.js +129 -0
  297. package/dist/transfer.d.ts +0 -5
  298. package/dist/transfer.d.ts.map +1 -1
  299. package/dist/turn.d.ts +1 -1
  300. package/dist/turn.d.ts.map +1 -1
  301. package/dist/turn.js +31 -20
  302. package/dist/validation.d.ts +29 -0
  303. package/dist/validation.d.ts.map +1 -0
  304. package/dist/validation.js +104 -0
  305. package/dist/windows.d.ts +1 -16
  306. package/dist/windows.d.ts.map +1 -1
  307. package/dist/windows.js +2 -79
  308. package/dist/wire.d.ts +72 -8
  309. package/dist/wire.d.ts.map +1 -1
  310. package/dist/wire.js +24 -5
  311. package/package.json +19 -19
  312. package/AGENTS.md +0 -299
  313. package/dist/chat/acts.d.ts +0 -33
  314. package/dist/chat/acts.d.ts.map +0 -1
  315. package/dist/chat/acts.js +0 -36
  316. package/dist/chat/context.d.ts +0 -3
  317. package/dist/chat/context.d.ts.map +0 -1
  318. package/dist/chat/earlier.d.ts +0 -10
  319. package/dist/chat/earlier.d.ts.map +0 -1
  320. package/dist/chat/earlier.js +0 -54
  321. package/dist/chat/input.d.ts +0 -9
  322. package/dist/chat/input.d.ts.map +0 -1
  323. package/dist/chat/input.js +0 -99
  324. package/dist/chat/kit.d.ts +0 -61
  325. package/dist/chat/kit.d.ts.map +0 -1
  326. package/dist/chat/kit.js +0 -123
  327. package/dist/chat/lasting.d.ts +0 -6
  328. package/dist/chat/lasting.d.ts.map +0 -1
  329. package/dist/chat/lasting.js +0 -19
  330. package/dist/chat/list.d.ts +0 -28
  331. package/dist/chat/list.d.ts.map +0 -1
  332. package/dist/chat/list.js +0 -103
  333. package/dist/chat/markdown.d.ts +0 -21
  334. package/dist/chat/markdown.d.ts.map +0 -1
  335. package/dist/chat/markdown.js +0 -246
  336. package/dist/chat/message.d.ts +0 -7
  337. package/dist/chat/message.d.ts.map +0 -1
  338. package/dist/chat/message.js +0 -202
  339. package/dist/chat/messages.d.ts +0 -24
  340. package/dist/chat/messages.d.ts.map +0 -1
  341. package/dist/chat/messages.js +0 -187
  342. package/dist/chat/name.d.ts +0 -6
  343. package/dist/chat/name.d.ts.map +0 -1
  344. package/dist/chat/name.js +0 -37
  345. package/dist/chat/opened.d.ts +0 -11
  346. package/dist/chat/opened.d.ts.map +0 -1
  347. package/dist/chat/opened.js +0 -17
  348. package/dist/chat/overlay.d.ts +0 -32
  349. package/dist/chat/overlay.d.ts.map +0 -1
  350. package/dist/chat/overlay.js +0 -107
  351. package/dist/chat/parts.d.ts +0 -57
  352. package/dist/chat/parts.d.ts.map +0 -1
  353. package/dist/chat/parts.js +0 -119
  354. package/dist/chat/pieces.d.ts +0 -62
  355. package/dist/chat/pieces.d.ts.map +0 -1
  356. package/dist/chat/pieces.js +0 -1110
  357. package/dist/chat/process.d.ts +0 -20
  358. package/dist/chat/process.d.ts.map +0 -1
  359. package/dist/chat/process.js +0 -32
  360. package/dist/chat/provider.d.ts +0 -64
  361. package/dist/chat/provider.d.ts.map +0 -1
  362. package/dist/chat/provider.js +0 -638
  363. package/dist/chat/question.d.ts +0 -9
  364. package/dist/chat/question.d.ts.map +0 -1
  365. package/dist/chat/question.js +0 -69
  366. package/dist/chat/questions.d.ts.map +0 -1
  367. package/dist/chat/read.d.ts.map +0 -1
  368. package/dist/chat/ready.d.ts +0 -34
  369. package/dist/chat/ready.d.ts.map +0 -1
  370. package/dist/chat/ready.js +0 -91
  371. package/dist/chat/steady.d.ts +0 -3
  372. package/dist/chat/steady.d.ts.map +0 -1
  373. package/dist/chat/steady.js +0 -26
  374. package/dist/chat/style.d.ts +0 -4
  375. package/dist/chat/style.d.ts.map +0 -1
  376. package/dist/chat/style.js +0 -302
  377. package/dist/chat.d.ts +0 -14
  378. package/dist/chat.d.ts.map +0 -1
  379. package/dist/chat.js +0 -8
  380. package/dist/fence.d.ts +0 -6
  381. package/dist/fence.d.ts.map +0 -1
  382. package/dist/fence.js +0 -10
  383. package/dist/read-side.d.ts +0 -27
  384. package/dist/read-side.d.ts.map +0 -1
  385. package/dist/read-side.js +0 -826
package/dist/client.js CHANGED
@@ -1,12 +1,31 @@
1
+ import { shownBy } from './media.js';
2
+ import { pageMetadataBlock } from './page-metadata.js';
1
3
  import { observed } from './observation.js';
2
4
  import { runtimeError } from './failure.js';
3
- import { answer, AUTHORIZATION_ENDED, PORT_CLOSED, } from './wire.js';
5
+ import { AUTHORIZATION_ENDED, PORT_CLOSED, wireAnswer, } from './wire.js';
4
6
  // React renders an arrived value in a later task and opens what that render observes as it commits, so this many frames opening nothing mean the page drew what it observes.
5
7
  const SETTLED_FRAMES = 2;
8
+ // A browser reads a download's address only after the click that hands it returns, so a copy's address is released a minute later.
9
+ const HANDED_COPY_MS = 60_000;
10
+ const PAGE = /\.html?$/iu;
11
+ const STARTED = { kind: 'started' };
12
+ const BLOCKED = {
13
+ kind: 'blocked',
14
+ code: 'popup-blocked',
15
+ fields: {},
16
+ retryable: true,
17
+ };
18
+ function handed(url, name) {
19
+ const anchor = document.createElement('a');
20
+ anchor.href = url;
21
+ anchor.download = name;
22
+ anchor.click();
23
+ }
6
24
  function refused(refusal) {
7
- return runtimeError(refusal.code, refusal.code, refusal.retryable);
25
+ return runtimeError(refusal.code);
8
26
  }
9
- export function connectMdRuntime(port) {
27
+ const UNBUILT = () => Promise.resolve(null);
28
+ export function connectMdRuntime(port, buildFile = UNBUILT) {
10
29
  let sequence = 0;
11
30
  let refusal = null;
12
31
  let ended = null;
@@ -18,13 +37,13 @@ export function connectMdRuntime(port) {
18
37
  const send = (message) => {
19
38
  port.postMessage(message);
20
39
  };
21
- function begin(id, topic, first) {
40
+ function begin(id, topic, input, first) {
22
41
  const handle = observed(first, () => {
23
42
  observations.delete(id);
24
43
  if (refusal === null)
25
44
  send({ kind: 'stop', id });
26
45
  }, topic === 'query');
27
- observations.set(id, { topic, handle });
46
+ observations.set(id, { topic, input, handle });
28
47
  return handle.observation;
29
48
  }
30
49
  function refuse(reported) {
@@ -36,7 +55,7 @@ export function connectMdRuntime(port) {
36
55
  const failure = refused(reported);
37
56
  for (const [id, waiting] of opening) {
38
57
  if (waiting.topic === 'connection-refusal')
39
- waiting.settle(begin(id, waiting.topic, reported));
58
+ waiting.settle(begin(id, waiting.topic, waiting.input, reported));
40
59
  else
41
60
  waiting.fail(failure);
42
61
  }
@@ -62,7 +81,7 @@ export function connectMdRuntime(port) {
62
81
  drawing?.();
63
82
  }
64
83
  port.addEventListener('message', (event) => {
65
- const message = answer(event.data);
84
+ const message = wireAnswer(event.data);
66
85
  if (message === null)
67
86
  return;
68
87
  if (message.kind === 'refusal') {
@@ -88,7 +107,7 @@ export function connectMdRuntime(port) {
88
107
  waiting.fail(runtimeError(message.code, message.message, message.retryable));
89
108
  }
90
109
  else
91
- waiting.settle(begin(message.id, waiting.topic, message.value));
110
+ waiting.settle(begin(message.id, waiting.topic, waiting.input, message.value));
92
111
  drawing?.();
93
112
  return;
94
113
  }
@@ -124,15 +143,66 @@ export function connectMdRuntime(port) {
124
143
  const id = (sequence += 1);
125
144
  if (refusal !== null) {
126
145
  return topic === 'connection-refusal'
127
- ? Promise.resolve(begin(id, topic, refusal))
146
+ ? Promise.resolve(begin(id, topic, input, refusal))
128
147
  : Promise.reject(refused(refusal));
129
148
  }
130
149
  return new Promise((settle, fail) => {
131
- opening.set(id, { topic, settle, fail });
150
+ opening.set(id, { topic, input, settle, fail });
132
151
  send({ kind: 'observe', id, topic, input });
133
152
  drawing?.();
134
153
  });
135
154
  }
155
+ function streamed(answer) {
156
+ if (answer.kind !== 'binary')
157
+ return answer;
158
+ const { file, byteLength, mediaType } = answer;
159
+ let part = 0;
160
+ let received = 0;
161
+ const stream = new ReadableStream({
162
+ async pull(controller) {
163
+ const bytes = await ask('binaryFile.part', [file, part]);
164
+ if (bytes === null) {
165
+ if (received === byteLength)
166
+ controller.close();
167
+ else
168
+ controller.error(runtimeError('binary-file-absent', 'The file ended early'));
169
+ return;
170
+ }
171
+ part += 1;
172
+ received += bytes.byteLength;
173
+ controller.enqueue(bytes);
174
+ },
175
+ }, { highWaterMark: 0 });
176
+ return { kind: 'binary', stream, byteLength, mediaType };
177
+ }
178
+ async function download(room, path, revision) {
179
+ const tab = PAGE.test(path) ? globalThis.open('', '_blank') : null;
180
+ const linked = await ask('binaryFile.link', [room, path, revision]);
181
+ if (linked.kind === 'link' && PAGE.test(linked.name)) {
182
+ const away = tab ?? globalThis.open('', '_blank');
183
+ if (away === null)
184
+ return BLOCKED;
185
+ away.location.replace(linked.url);
186
+ return STARTED;
187
+ }
188
+ tab?.close();
189
+ if (linked.kind === 'link') {
190
+ handed(linked.url, linked.name);
191
+ return STARTED;
192
+ }
193
+ if (linked.kind !== 'absent')
194
+ return linked;
195
+ const read = streamed(await ask('binaryFile.read', [room, path, revision]));
196
+ if (read.kind !== 'binary')
197
+ return read;
198
+ const copy = await new Response(read.stream, {
199
+ headers: { 'content-type': read.mediaType },
200
+ }).blob();
201
+ const url = URL.createObjectURL(copy);
202
+ handed(url, path.slice(path.lastIndexOf('/') + 1));
203
+ setTimeout(() => URL.revokeObjectURL(url), HANDED_COPY_MS);
204
+ return STARTED;
205
+ }
136
206
  function settled() {
137
207
  if (settling !== null)
138
208
  return settling;
@@ -162,7 +232,9 @@ export function connectMdRuntime(port) {
162
232
  });
163
233
  return settling;
164
234
  }
165
- return {
235
+ const show = (room, path, revision) => ask('binaryFile.show', [room, path, revision]).then((shown) => streamed(shown));
236
+ return shownBy(show, {
237
+ buildFile,
166
238
  rooms: () => ask('rooms', []),
167
239
  query: ((query) => ask('query', [query])),
168
240
  search: (request) => ask('search', [request]),
@@ -170,7 +242,7 @@ export function connectMdRuntime(port) {
170
242
  roomDraft: {
171
243
  list: () => ask('roomDraft.list', []),
172
244
  read: (room, path) => ask('roomDraft.read', [room, path]),
173
- write: (room, path, revision, parts) => ask('roomDraft.write', [room, path, revision, parts]),
245
+ write: (room, path, revision, parts, next) => ask('roomDraft.write', next === undefined ? [room, path, revision, parts] : [room, path, revision, parts, next]),
174
246
  discard: (room, path, revision) => ask('roomDraft.discard', [room, path, revision]),
175
247
  },
176
248
  save: (room, roomDrafts) => ask('save', [room, roomDrafts]),
@@ -188,8 +260,19 @@ export function connectMdRuntime(port) {
188
260
  answer: (conversation, answer) => ask('conversation.answer', [conversation, answer]),
189
261
  interrupt: (conversation) => ask('conversation.interrupt', [conversation]),
190
262
  kill: (conversation) => ask('conversation.kill', [conversation]),
191
- cancel: (conversation, turn) => ask('conversation.cancel', [conversation, turn]),
192
263
  delete: (conversation) => ask('conversation.delete', [conversation]),
264
+ takeOut: (conversation, message, operation) => ask('conversation.takeOut', [conversation, message, operation]),
265
+ decide: (request, decision, operation) => ask('conversation.decide', [request, decision, operation]),
266
+ rename: (conversation, name, operation) => ask('conversation.rename', [conversation, name, operation]),
267
+ option: (conversation, option, value, operation) => ask('conversation.option', [conversation, option, value, operation]),
268
+ retry: (conversation, message, operation) => ask('conversation.retry', [conversation, message, operation]),
269
+ pins: () => ask('conversation.pins', []),
270
+ pin: (figures) => ask('conversation.pin', [figures]),
271
+ openedTurns: () => ask('conversation.openedTurns', []),
272
+ openTurn: (conversation, turn) => ask('conversation.openTurn', [conversation, turn]),
273
+ pageMetadata: async (app, address) => pageMetadataBlock(app, address, [...observations]
274
+ .sort(([left], [right]) => left - right)
275
+ .flatMap(([, { topic, input }]) => (topic === 'query' ? [input[0]] : []))),
193
276
  },
194
277
  chatDraft: {
195
278
  write: (conversation, draft, revision) => ask('chatDraft.write', [conversation, draft, revision]),
@@ -197,20 +280,25 @@ export function connectMdRuntime(port) {
197
280
  discard: (conversation) => ask('chatDraft.discard', [conversation]),
198
281
  },
199
282
  history: (locator, path, query) => ask('history', [locator, path, query]),
283
+ resolve: (room, path, destination) => ask('resolve', [room, path, destination]),
200
284
  binaryFile: {
201
- read: (room, path, revision) => ask('binaryFile.read', [room, path, revision]),
202
- link: (room, path, revision) => ask('binaryFile.link', [room, path, revision]),
203
- readReference: (reference) => ask('binaryFile.readReference', [reference]),
285
+ read: (room, path, revision) => ask('binaryFile.read', [room, path, revision]).then((read) => streamed(read)),
286
+ attach: (room, file) => ask('binaryFile.attach', [room, file]),
287
+ download,
204
288
  },
205
289
  call: (name, input) => ask('call', [name, input]),
206
290
  reached: (locator, roomVersion, path) => ask('reached', [locator, roomVersion, path]),
207
291
  log: () => ask('log', []),
208
292
  persistence: () => ask('persistence', []),
209
293
  retry: () => ask('retry', []),
294
+ cleanUp: () => ask('cleanUp', []),
295
+ unsent: () => ask('unsent', []),
296
+ reset: () => ask('reset', []),
297
+ readAgain: () => ask('readAgain', []),
210
298
  observe: ((topic, ...input) => watch(topic, input)),
211
299
  reauthorize: () => ask('reauthorize', []),
212
300
  settled,
213
- };
301
+ });
214
302
  }
215
303
  const turns = new WeakMap();
216
304
  export function inTurn(client, work) {
@@ -218,4 +306,7 @@ export function inTurn(client, work) {
218
306
  turns.set(client, turn.then(() => undefined, () => undefined));
219
307
  return turn;
220
308
  }
309
+ export { chainedWindows } from './chain.js';
310
+ export { roomDraftRevision } from './identity.js';
311
+ export { defineRoomMedia, ROOM_MEDIA } from './media.js';
221
312
  export { unanswered } from './wire.js';
@@ -1,9 +1,7 @@
1
- import { type Document, type Frontmatter, type Validation } from '@agentshouse/mdmodel';
2
- import { type ModelState } from './model.js';
1
+ import { type DefinitionOf, type Document, type TypedPath } from '@agentshouse/mdmodel';
2
+ import type { ModelState, TypesResult } from './model.js';
3
+ import type { AppTypedSelection } from './listing.js';
3
4
  import type { MdModelIdentity } from './adapter.js';
4
- import { type Paths } from './shared.js';
5
- import type { Refused } from './transfer.js';
6
- import { type Later } from './turn.js';
7
5
  export declare const MD_MODEL: MdModelIdentity;
8
6
  export type Collection = {
9
7
  text: Readonly<Record<string, string>>;
@@ -16,25 +14,34 @@ export type Composition = {
16
14
  roots: readonly string[];
17
15
  model: ModelState;
18
16
  } | null;
17
+ typedPaths: readonly TypedPath[];
19
18
  };
20
- export declare function governing(composition: Composition, path: string): ModelState;
21
- export declare function collectionOf(text: Readonly<Record<string, string>>, composition: Composition, previous?: Collection): Collection;
22
- export declare function collecting(text: Readonly<Record<string, string>>, composition: Composition, previous?: Collection): Generator<number, Collection, void>;
23
- export declare function passingFrontmatter(collection: Collection, path: string): Frontmatter | undefined;
24
- export declare function documentsOf(collection: Collection): Generator<readonly [string, Document]>;
25
- export declare function unreadable(text: Readonly<Record<string, string>>, previous?: Readonly<Record<string, string>>): Generator<number, Refused | null, void>;
26
- export declare function validRoot(root: unknown): root is string;
27
- export declare function validateCollection(text: Readonly<Record<string, string>>, binaryTargets: readonly string[], composition: Composition): Generator<number, Validation, void>;
28
- type Held = {
29
- text: Paths<string>;
30
- binaries: Paths<unknown>;
19
+ export type Composed = {
20
+ readonly composition: Composition;
21
+ readonly fingerprint: string;
22
+ };
23
+ export declare function composedOf(composition: Composition): Composed;
24
+ type Selecting<M> = {
25
+ readonly model: M;
26
+ readonly selection: {
27
+ readonly roots: readonly string[];
28
+ readonly model: M;
29
+ } | null;
31
30
  };
32
- export declare function indexReferrers(held: Held, composition: Composition): Later<void>;
33
- export declare function referencesIndexed(held: Held, composition: Composition): boolean;
34
- export declare function referring(held: Held, composition: Composition, targets: Iterable<string>): ReadonlySet<string> | null;
31
+ export declare function selected(composition: {
32
+ readonly selection: {
33
+ readonly roots: readonly string[];
34
+ } | null;
35
+ }, path: string): boolean;
36
+ export declare function governing<M>(composition: Selecting<M>, path: string): M;
37
+ export declare function definitionsAt(composition: Composition, path: string): DefinitionOf;
38
+ export declare function definitionsIn(room: {
39
+ readonly model: TypesResult;
40
+ readonly typedSelection: AppTypedSelection | null;
41
+ }, path: string, typedPaths: readonly TypedPath[]): DefinitionOf;
42
+ export declare function collectionOf(text: Readonly<Record<string, string>>, composition: Composition): Collection;
43
+ export declare function documentsOf(collection: Collection): Generator<number, Iterable<readonly [string, Document]>, void>;
44
+ export declare function validRoot(root: unknown): root is string;
35
45
  export declare function available(composition: Composition): boolean;
36
- export declare function changedCleanly(next: Held, previous: Held & {
37
- composition: Composition;
38
- }, composition: Composition): Generator<number, boolean, void>;
39
46
  export {};
40
47
  //# sourceMappingURL=collection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../src/collection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../src/collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,SAAS,EAEf,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAIpD,eAAO,MAAM,QAAQ,EAAE,eAAwE,CAAC;AAEhG,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvC,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE;QAAE,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,UAAU,CAAA;KAAE,GAAG,IAAI,CAAC;IAClE,UAAU,EAAE,SAAS,SAAS,EAAE,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IAAE,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAc3F,wBAAgB,UAAU,CAAC,WAAW,EAAE,WAAW,GAAG,QAAQ,CAS7D;AAED,KAAK,SAAS,CAAC,CAAC,IAAI;IAClB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,QAAQ,CAAC,SAAS,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;CACrF,CAAC;AAEF,wBAAgB,QAAQ,CACtB,WAAW,EAAE;IAAE,QAAQ,CAAC,SAAS,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,GAAG,IAAI,CAAA;CAAE,EACjF,IAAI,EAAE,MAAM,GACX,OAAO,CAKT;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAIvE;AAYD,wBAAgB,aAAa,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,CAIlF;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,cAAc,EAAE,iBAAiB,GAAG,IAAI,CAAA;CAAE,EACxF,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,SAAS,SAAS,EAAE,GAC/B,YAAY,CAQd;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACtC,WAAW,EAAE,WAAW,GACvB,UAAU,CAcZ;AAED,wBAAiB,WAAW,CAC1B,UAAU,EAAE,UAAU,GACrB,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAQhE;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,MAAM,CAEvD;AAED,wBAAgB,SAAS,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAE3D"}