@agentshouse/mdruntime 0.1.0-cfcbb238a5fa0 → 0.1.0-cfe148b32e3d8

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 (211) hide show
  1. package/AGENTS.md +229 -211
  2. package/README.md +9 -8
  3. package/dist/adapter.d.ts +69 -35
  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/binary.d.ts +0 -5
  9. package/dist/binary.d.ts.map +1 -1
  10. package/dist/binary.js +1 -1
  11. package/dist/bootstrap.d.ts +24 -6
  12. package/dist/bootstrap.d.ts.map +1 -1
  13. package/dist/bootstrap.js +167 -82
  14. package/dist/chain.d.ts +11 -0
  15. package/dist/chain.d.ts.map +1 -0
  16. package/dist/chain.js +64 -0
  17. package/dist/change-set.d.ts +9 -16
  18. package/dist/change-set.d.ts.map +1 -1
  19. package/dist/change-set.js +11 -89
  20. package/dist/change.d.ts +31 -1
  21. package/dist/change.d.ts.map +1 -1
  22. package/dist/change.js +10 -1
  23. package/dist/chat/earlier.d.ts +10 -0
  24. package/dist/chat/earlier.d.ts.map +1 -0
  25. package/dist/chat/earlier.js +54 -0
  26. package/dist/chat/house.d.ts +25 -0
  27. package/dist/chat/house.d.ts.map +1 -0
  28. package/dist/chat/house.js +38 -0
  29. package/dist/chat/input.d.ts +3 -1
  30. package/dist/chat/input.d.ts.map +1 -1
  31. package/dist/chat/input.js +11 -18
  32. package/dist/chat/list.d.ts +2 -1
  33. package/dist/chat/list.d.ts.map +1 -1
  34. package/dist/chat/list.js +45 -5
  35. package/dist/chat/markdown.d.ts +2 -2
  36. package/dist/chat/markdown.d.ts.map +1 -1
  37. package/dist/chat/markdown.js +80 -39
  38. package/dist/chat/message.d.ts +1 -0
  39. package/dist/chat/message.d.ts.map +1 -1
  40. package/dist/chat/message.js +73 -11
  41. package/dist/chat/messages.d.ts +14 -1
  42. package/dist/chat/messages.d.ts.map +1 -1
  43. package/dist/chat/messages.js +79 -24
  44. package/dist/chat/name.d.ts +1 -0
  45. package/dist/chat/name.d.ts.map +1 -1
  46. package/dist/chat/name.js +1 -1
  47. package/dist/chat/opened.d.ts +1 -0
  48. package/dist/chat/opened.d.ts.map +1 -1
  49. package/dist/chat/opened.js +2 -0
  50. package/dist/chat/overlay.d.ts +1 -0
  51. package/dist/chat/overlay.d.ts.map +1 -1
  52. package/dist/chat/overlay.js +11 -5
  53. package/dist/chat/parts.d.ts +1 -0
  54. package/dist/chat/parts.d.ts.map +1 -1
  55. package/dist/chat/parts.js +3 -2
  56. package/dist/chat/pieces.d.ts +62 -0
  57. package/dist/chat/pieces.d.ts.map +1 -0
  58. package/dist/chat/pieces.js +1110 -0
  59. package/dist/chat/provider.d.ts +8 -1
  60. package/dist/chat/provider.d.ts.map +1 -1
  61. package/dist/chat/provider.js +98 -92
  62. package/dist/chat/question.d.ts +1 -1
  63. package/dist/chat/question.d.ts.map +1 -1
  64. package/dist/chat/question.js +7 -18
  65. package/dist/chat/ready.d.ts +5 -2
  66. package/dist/chat/ready.d.ts.map +1 -1
  67. package/dist/chat/ready.js +7 -5
  68. package/dist/chat/room-file.d.ts +8 -0
  69. package/dist/chat/room-file.d.ts.map +1 -0
  70. package/dist/chat/room-file.js +72 -0
  71. package/dist/chat/steady.d.ts +3 -0
  72. package/dist/chat/steady.d.ts.map +1 -0
  73. package/dist/chat/steady.js +26 -0
  74. package/dist/chat/style.d.ts.map +1 -1
  75. package/dist/chat/style.js +6 -1
  76. package/dist/chat.d.ts +3 -2
  77. package/dist/chat.d.ts.map +1 -1
  78. package/dist/chat.js +2 -2
  79. package/dist/client.d.ts +11 -4
  80. package/dist/client.d.ts.map +1 -1
  81. package/dist/client.js +35 -5
  82. package/dist/collection.d.ts +6 -19
  83. package/dist/collection.d.ts.map +1 -1
  84. package/dist/collection.js +30 -287
  85. package/dist/compile.d.ts +16 -0
  86. package/dist/compile.d.ts.map +1 -0
  87. package/dist/compile.js +721 -0
  88. package/dist/connection.d.ts +19 -9
  89. package/dist/connection.d.ts.map +1 -1
  90. package/dist/connection.js +2392 -848
  91. package/dist/conversation.d.ts +14 -3
  92. package/dist/conversation.d.ts.map +1 -1
  93. package/dist/conversation.js +198 -89
  94. package/dist/digest.d.ts +7 -0
  95. package/dist/digest.d.ts.map +1 -0
  96. package/dist/digest.js +113 -0
  97. package/dist/durability.d.ts +3 -1
  98. package/dist/durability.d.ts.map +1 -1
  99. package/dist/entry.d.ts +3 -1
  100. package/dist/entry.d.ts.map +1 -1
  101. package/dist/entry.js +18 -23
  102. package/dist/file.d.ts +2 -10
  103. package/dist/file.d.ts.map +1 -1
  104. package/dist/file.js +3 -120
  105. package/dist/fulltext.d.ts +27 -0
  106. package/dist/fulltext.d.ts.map +1 -0
  107. package/dist/fulltext.js +368 -0
  108. package/dist/host.d.ts +1 -4
  109. package/dist/host.d.ts.map +1 -1
  110. package/dist/host.js +21 -8
  111. package/dist/identity.d.ts +0 -1
  112. package/dist/identity.d.ts.map +1 -1
  113. package/dist/identity.js +0 -3
  114. package/dist/index.d.ts +11 -8
  115. package/dist/index.d.ts.map +1 -1
  116. package/dist/index.js +3 -0
  117. package/dist/live.d.ts +22 -0
  118. package/dist/live.d.ts.map +1 -0
  119. package/dist/live.js +123 -0
  120. package/dist/memory.d.ts +3 -2
  121. package/dist/memory.d.ts.map +1 -1
  122. package/dist/memory.js +30 -20
  123. package/dist/messages.d.ts +28 -0
  124. package/dist/messages.d.ts.map +1 -0
  125. package/dist/messages.js +90 -0
  126. package/dist/name.d.ts +4 -0
  127. package/dist/name.d.ts.map +1 -0
  128. package/dist/name.js +122 -0
  129. package/dist/observation.d.ts +14 -0
  130. package/dist/observation.d.ts.map +1 -1
  131. package/dist/observation.js +93 -3
  132. package/dist/opened.d.ts +22 -0
  133. package/dist/opened.d.ts.map +1 -0
  134. package/dist/opened.js +107 -0
  135. package/dist/outcome.d.ts +34 -4
  136. package/dist/outcome.d.ts.map +1 -1
  137. package/dist/outcome.js +25 -0
  138. package/dist/overlay.d.ts +2 -5
  139. package/dist/overlay.d.ts.map +1 -1
  140. package/dist/overlay.js +87 -172
  141. package/dist/query.d.ts +26 -2
  142. package/dist/query.d.ts.map +1 -1
  143. package/dist/query.js +41 -6
  144. package/dist/reach.d.ts +5 -3
  145. package/dist/reach.d.ts.map +1 -1
  146. package/dist/reach.js +158 -57
  147. package/dist/react.d.ts +1 -2
  148. package/dist/react.d.ts.map +1 -1
  149. package/dist/react.js +2 -14
  150. package/dist/readiness.d.ts +18 -3
  151. package/dist/readiness.d.ts.map +1 -1
  152. package/dist/readiness.js +1 -1
  153. package/dist/reads.d.ts.map +1 -1
  154. package/dist/reads.js +4 -2
  155. package/dist/recovery.d.ts +2 -2
  156. package/dist/recovery.d.ts.map +1 -1
  157. package/dist/recovery.js +8 -7
  158. package/dist/refresh.d.ts +11 -13
  159. package/dist/refresh.d.ts.map +1 -1
  160. package/dist/refresh.js +78 -51
  161. package/dist/replica.d.ts +57 -33
  162. package/dist/replica.d.ts.map +1 -1
  163. package/dist/replica.js +295 -186
  164. package/dist/room-draft.d.ts +3 -1
  165. package/dist/room-draft.d.ts.map +1 -1
  166. package/dist/room-draft.js +29 -22
  167. package/dist/rows.d.ts +29 -30
  168. package/dist/rows.d.ts.map +1 -1
  169. package/dist/rows.js +113 -64
  170. package/dist/save.d.ts +51 -14
  171. package/dist/save.d.ts.map +1 -1
  172. package/dist/save.js +518 -180
  173. package/dist/search.d.ts +23 -42
  174. package/dist/search.d.ts.map +1 -1
  175. package/dist/search.js +28 -182
  176. package/dist/seed.d.ts.map +1 -1
  177. package/dist/seed.js +18 -4
  178. package/dist/shared.d.ts +8 -3
  179. package/dist/shared.d.ts.map +1 -1
  180. package/dist/shared.js +129 -66
  181. package/dist/store.d.ts +97 -88
  182. package/dist/store.d.ts.map +1 -1
  183. package/dist/store.js +335 -659
  184. package/dist/stored.d.ts +145 -0
  185. package/dist/stored.d.ts.map +1 -0
  186. package/dist/stored.js +567 -0
  187. package/dist/tables.d.ts +342 -0
  188. package/dist/tables.d.ts.map +1 -0
  189. package/dist/tables.js +576 -0
  190. package/dist/turn.d.ts +5 -3
  191. package/dist/turn.d.ts.map +1 -1
  192. package/dist/turn.js +51 -21
  193. package/dist/validation.d.ts +30 -0
  194. package/dist/validation.d.ts.map +1 -0
  195. package/dist/validation.js +162 -0
  196. package/dist/windows.d.ts +22 -0
  197. package/dist/windows.d.ts.map +1 -0
  198. package/dist/windows.js +89 -0
  199. package/dist/wire.d.ts +29 -1
  200. package/dist/wire.d.ts.map +1 -1
  201. package/dist/wire.js +8 -1
  202. package/dist/words.d.ts +19 -0
  203. package/dist/words.d.ts.map +1 -0
  204. package/dist/words.js +150 -0
  205. package/package.json +10 -4
  206. package/dist/acquisition.d.ts +0 -14
  207. package/dist/acquisition.d.ts.map +0 -1
  208. package/dist/acquisition.js +0 -24
  209. package/dist/read-side.d.ts +0 -25
  210. package/dist/read-side.d.ts.map +0 -1
  211. package/dist/read-side.js +0 -642
@@ -0,0 +1,72 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useMemo, useState } from 'react';
3
+ import FileGlyph from 'lucide-react/dist/esm/icons/file.mjs';
4
+ import { useObserve } from '../react.js';
5
+ import { Name } from './kit.js';
6
+ import { useChatScope } from './provider.js';
7
+ const ROOM_PATH = /^\/rooms\/([^/]+)\/(.+)$/u;
8
+ const INLINE_IMAGE = /^image\/(?:png|jpeg|gif|webp)$/u;
9
+ const NOTHING = { rooms: [], select: {} };
10
+ export function isRoomPath(href) {
11
+ return ROOM_PATH.test(href);
12
+ }
13
+ function useHeld(href) {
14
+ const { client } = useChatScope();
15
+ const rooms = useObserve(client, 'rooms');
16
+ const [, handle, path] = ROOM_PATH.exec(href) ?? [];
17
+ const locator = rooms.state === 'ready'
18
+ ? (rooms.value.find((room) => room.handle === handle)?.locator ?? null)
19
+ : null;
20
+ const query = useMemo(() => locator === null || path === undefined
21
+ ? null
22
+ : { rooms: [locator], paths: [path], select: {} }, [locator, path]);
23
+ const found = useObserve(query === null ? null : client, 'query', query ?? NOTHING);
24
+ if (locator === null || path === undefined || found.state !== 'ready')
25
+ return null;
26
+ const held = 'documents' in found.value ? found.value.documents[0]?.binaryFile : undefined;
27
+ return held?.state === 'accepted'
28
+ ? { locator, path, revision: held.revision, mediaType: held.mediaType }
29
+ : null;
30
+ }
31
+ function Picture({ held, name }) {
32
+ const { client } = useChatScope();
33
+ const [address, setAddress] = useState(null);
34
+ useEffect(() => {
35
+ let live = true;
36
+ let made = null;
37
+ void client.binaryFile
38
+ .read(held.locator, held.path, held.revision)
39
+ .then((answer) => answer.kind === 'binary'
40
+ ? new Response(answer.stream, { headers: { 'content-type': answer.mediaType } }).blob()
41
+ : null)
42
+ .then((blob) => {
43
+ if (!live || blob === null)
44
+ return;
45
+ made = URL.createObjectURL(blob);
46
+ setAddress(made);
47
+ });
48
+ return () => {
49
+ live = false;
50
+ if (made !== null)
51
+ URL.revokeObjectURL(made);
52
+ };
53
+ }, [client, held.locator, held.path, held.revision]);
54
+ return address === null ? null : _jsx("img", { className: "ahc-picture", src: address, alt: name });
55
+ }
56
+ function Opened({ held, name }) {
57
+ const { client } = useChatScope();
58
+ const open = () => void client.binaryFile.link(held.locator, held.path, held.revision).then((answer) => {
59
+ if (answer.kind !== 'link')
60
+ return;
61
+ const anchor = document.createElement('a');
62
+ anchor.href = answer.url;
63
+ anchor.click();
64
+ });
65
+ return (_jsxs("button", { type: "button", className: "ahc-chip", onClick: open, children: [_jsx(FileGlyph, { "aria-hidden": "true" }), _jsx(Name, { text: name })] }));
66
+ }
67
+ export function RoomFile({ href, name, otherwise, }) {
68
+ const held = useHeld(href);
69
+ if (held === null)
70
+ return otherwise;
71
+ return INLINE_IMAGE.test(held.mediaType) ? (_jsx(Picture, { held: held, name: name })) : (_jsx(Opened, { held: held, name: name }));
72
+ }
@@ -0,0 +1,3 @@
1
+ import type { ConversationView } from '../conversation.js';
2
+ export declare function useSteady(held: ConversationView | null): ConversationView | null;
3
+ //# sourceMappingURL=steady.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"steady.d.ts","sourceRoot":"","sources":["../../src/chat/steady.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAwB3D,wBAAgB,SAAS,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,GAAG,gBAAgB,GAAG,IAAI,CAMhF"}
@@ -0,0 +1,26 @@
1
+ import { useState } from 'react';
2
+ function same(held, now) {
3
+ return (held.turn === now.turn &&
4
+ held.text === now.text &&
5
+ JSON.stringify(held.message) === JSON.stringify(now.message));
6
+ }
7
+ function steadied(before, after) {
8
+ if (before === null || before.conversation !== after.conversation)
9
+ return after;
10
+ const held = new Map(before.messages.map((one) => [one.identity, one]));
11
+ return {
12
+ ...after,
13
+ messages: after.messages.map((one) => {
14
+ const was = held.get(one.identity);
15
+ return was !== undefined && same(was, one) ? was : one;
16
+ }),
17
+ };
18
+ }
19
+ export function useSteady(held) {
20
+ const [steady, setSteady] = useState({ from: held, view: held });
21
+ if (steady.from === held)
22
+ return steady.view;
23
+ const view = held === null ? null : steadied(steady.view, held);
24
+ setSteady({ from: held, view });
25
+ return view;
26
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../../src/chat/style.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,MAAM,CAAC;AAEnC,eAAO,MAAM,kBAAkB,QAAsB,CAAC;AA2StD,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CASrD"}
1
+ {"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../../src/chat/style.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,MAAM,CAAC;AAEnC,eAAO,MAAM,kBAAkB,QAAsB,CAAC;AAgTtD,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CASrD"}
@@ -209,7 +209,7 @@ const CSS = `
209
209
  .ahc-deleted__icon { flex: none; display: flex; padding-top: 2px; }
210
210
 
211
211
  .ahc-thread { flex: 1; min-height: 0; display: flex; flex-direction: column; }
212
- .ahc-viewport { flex: 1; min-height: 0; overflow-y: auto; display: flex; flex-direction: column; }
212
+ .ahc-viewport { flex: 1; min-height: 0; overflow-y: auto; overflow-anchor: none; display: flex; flex-direction: column; }
213
213
  .ahc-column { max-width: var(--ahc-column); margin: 0 var(--ahc-gutter); display: flex; flex-direction: column; font-size: var(--ahc-read); line-height: var(--ahc-read-lead); }
214
214
  .ahc-messages { flex: 1; }
215
215
  .ahc-footer { position: sticky; z-index: 2; bottom: 0; padding-bottom: var(--ahc-block); background: var(--ahc-bg); }
@@ -223,6 +223,11 @@ const CSS = `
223
223
  .ahc-you { align-self: flex-end; max-width: 85%; display: flex; flex-direction: column; align-items: flex-end; }
224
224
  .ahc-bubble { max-width: 100%; padding: 10px var(--ahc-stack); border-radius: var(--ahc-r-bubble); background: var(--ahc-well); font-size: var(--ahc-read); line-height: var(--ahc-read-lead); text-wrap: pretty; }
225
225
  .ahc-said { white-space: pre-wrap; }
226
+ .ahc-transcript { display: block; margin-block: var(--ahc-unit); }
227
+ .ahc-picture { display: block; max-width: 100%; max-height: 320px; border-radius: var(--ahc-r-control); }
228
+ .ahc-house { display: flex; flex-direction: column; gap: var(--ahc-unit); padding: var(--ahc-inset) var(--ahc-stack); border: 1px solid var(--ahc-line); border-radius: var(--ahc-r-tile); font-size: var(--ahc-read); line-height: var(--ahc-read-lead); }
229
+ .ahc-house__from { display: flex; flex-direction: column; }
230
+ .ahc-house__title { font-size: var(--ahc-meta); line-height: var(--ahc-meta-lead); font-weight: 500; }
226
231
  .ahc-turn { position: relative; display: flex; flex-direction: column; min-width: 0; }
227
232
  .ahc-text { margin: 0; font-size: var(--ahc-read); line-height: var(--ahc-read-lead); text-wrap: pretty; }
228
233
  .ahc-text > :first-child { margin-top: 0; }
package/dist/chat.d.ts CHANGED
@@ -1,13 +1,14 @@
1
1
  export { ChatProvider, useChat, type ChatActing, type ChatOpened, type ChatProviderProps, type ChatQueued, type ChatState, } from './chat/provider.js';
2
- export { chatMessages } from './chat/messages.js';
2
+ export { awaitsTurn, chatMessages } from './chat/messages.js';
3
3
  export { Chat, mountChat, type ChatProps, type ChatWidth, type MountedChat } from './chat/ready.js';
4
4
  export { ChatMessageList, type ChatMessageListProps } from './chat/list.js';
5
5
  export { ChatInput, type ChatInputProps } from './chat/input.js';
6
6
  export { ChatQuestionCard, type ChatQuestionCardProps } from './chat/question.js';
7
7
  export type { ChatNoteProps } from './chat/kit.js';
8
8
  export { ChatName } from './chat/name.js';
9
- export { Markdown, anchorOf, plainText, slugOf, type FileReference, type MarkdownProps, } from './chat/markdown.js';
9
+ export { Markdown, anchorOf, plainText, revealed, slugOf, type FileReference, type MarkdownProps, } from './chat/markdown.js';
10
10
  export type { ChatOutcome } from './chat/acts.js';
11
+ export type { ChatRequest } from './chat/house.js';
11
12
  export type { ChatWork } from './chat/parts.js';
12
13
  export type { ChatCommand, ChatOption, ChatOptionValue } from './chat/process.js';
13
14
  export type { ChatAnswer, ChatChoice, ChatField, ChatLone, ChatQuestion, } from './chat/questions.js';
@@ -1 +1 @@
1
- {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../src/chat.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,OAAO,EACP,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,SAAS,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACpG,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAClF,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,MAAM,EACN,KAAK,aAAa,EAClB,KAAK,aAAa,GACnB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,YAAY,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAClF,YAAY,EACV,UAAU,EACV,UAAU,EACV,SAAS,EACT,QAAQ,EACR,YAAY,GACb,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../src/chat.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,OAAO,EACP,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,SAAS,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACpG,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAClF,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,MAAM,EACN,KAAK,aAAa,EAClB,KAAK,aAAa,GACnB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,YAAY,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAClF,YAAY,EACV,UAAU,EACV,UAAU,EACV,SAAS,EACT,QAAQ,EACR,YAAY,GACb,MAAM,qBAAqB,CAAC"}
package/dist/chat.js CHANGED
@@ -1,8 +1,8 @@
1
1
  export { ChatProvider, useChat, } from './chat/provider.js';
2
- export { chatMessages } from './chat/messages.js';
2
+ export { awaitsTurn, chatMessages } from './chat/messages.js';
3
3
  export { Chat, mountChat } from './chat/ready.js';
4
4
  export { ChatMessageList } from './chat/list.js';
5
5
  export { ChatInput } from './chat/input.js';
6
6
  export { ChatQuestionCard } from './chat/question.js';
7
7
  export { ChatName } from './chat/name.js';
8
- export { Markdown, anchorOf, plainText, slugOf, } from './chat/markdown.js';
8
+ export { Markdown, anchorOf, plainText, revealed, slugOf, } from './chat/markdown.js';
package/dist/client.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- import type { AppRoom, ConnectionRefusal, HistoryQuery, RoomSchemas, SavedRoomDraft, SaveResult } from './connection.js';
1
+ import type { AppRoom, ConnectionRefusal, HistoryQuery, RoomSchemas, SavedParts, SavedRoomDraft, SaveResult } from './connection.js';
2
2
  import type { Member, ServiceMode } from './adapter.js';
3
3
  import type { ChatDraft, ConversationAgent, ConversationEntry, ConversationOptions, ConversationView } from './conversation.js';
4
4
  import { type Observation } from './observation.js';
5
- import type { BinaryReference } from './binary.js';
6
- import type { BinaryAnswer, CallResult, HistoryAnswer, Offline, QueueEntry } from './outcome.js';
5
+ import type { ChosenFile } from './file.js';
6
+ import type { BinaryAnswer, BinaryLinkAnswer, CallResult, HistoryAnswer, Offline, QueueEntry, Resolution } from './outcome.js';
7
7
  import type { DocumentQuery, DocumentResult, GroupQuery, GroupResult, PendingResult } from './query.js';
8
8
  import type { RoomDraft, RoomDraftParts, RoomDraftWrite } from './room-draft.js';
9
9
  import type { SearchRequest, SearchResult } from './search.js';
@@ -25,15 +25,18 @@ export type MdRuntimeClient = {
25
25
  discard(room: string, path: string, revision: string): Promise<RoomDraftWrite>;
26
26
  };
27
27
  save(room: string, roomDrafts: readonly SavedRoomDraft[]): Promise<SaveResult>;
28
+ saveParts(room: string, parts: readonly SavedParts[]): Promise<SaveResult>;
28
29
  presentation: {
29
30
  read(): Promise<unknown>;
30
31
  write(value: unknown): Promise<void>;
32
+ edit(members: Readonly<Record<string, unknown>>): Promise<void>;
31
33
  };
32
34
  conversation: {
33
35
  list(): Promise<readonly ConversationEntry[]>;
34
36
  read(conversation: string, options?: ConversationOptions): Promise<ConversationView>;
35
37
  create(input: unknown): Promise<CallResult>;
36
38
  send(conversation: string, operation?: string, draft?: ChatDraft): Promise<CallResult | Offline>;
39
+ attach(room: string, file: ChosenFile): Promise<CallResult | Offline>;
37
40
  answer(conversation: string, answer: unknown): Promise<CallResult>;
38
41
  interrupt(conversation: string): Promise<CallResult>;
39
42
  kill(conversation: string): Promise<CallResult>;
@@ -42,18 +45,21 @@ export type MdRuntimeClient = {
42
45
  };
43
46
  chatDraft: {
44
47
  write(conversation: string, draft: ChatDraft, revision?: string): Promise<void>;
48
+ prepend(conversation: string, draft: ChatDraft): Promise<void>;
45
49
  discard(conversation: string): Promise<void>;
46
50
  };
47
51
  history(locator: string, path: string, query?: HistoryQuery): Promise<HistoryAnswer>;
52
+ resolve(room: string, path: string, destination: string): Promise<Resolution>;
48
53
  binaryFile: {
49
54
  read(room: string, path: string, revision?: string): Promise<BinaryAnswer>;
50
- readReference(reference: BinaryReference): Promise<BinaryAnswer>;
55
+ link(room: string, path: string, revision?: string): Promise<BinaryLinkAnswer>;
51
56
  };
52
57
  call(name: string, input: unknown): Promise<CallResult>;
53
58
  reached(locator: string, roomVersion: string, path?: string): Promise<boolean>;
54
59
  log(): Promise<string>;
55
60
  persistence(): Promise<boolean>;
56
61
  retry(): Promise<void>;
62
+ cleanUp(): Promise<number>;
57
63
  observe: {
58
64
  (topic: 'deployment-facts'): Promise<Observation<unknown>>;
59
65
  (topic: 'rooms'): Promise<Observation<readonly AppRoom[]>>;
@@ -77,6 +83,7 @@ export type MdRuntimeClient = {
77
83
  };
78
84
  export declare function connectMdRuntime(port: RuntimePort): MdRuntimeClient;
79
85
  export declare function inTurn(client: MdRuntimeClient, work: () => Promise<void>): Promise<void>;
86
+ export { chainedWindows, type WindowAnswer, type WindowChain } from './chain.js';
80
87
  export type { Observation } from './observation.js';
81
88
  export type { Open } from './open.js';
82
89
  export { unanswered, type RuntimePort, type WireMember } from './wire.js';
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -133,6 +133,29 @@ export function connectMdRuntime(port) {
133
133
  drawing?.();
134
134
  });
135
135
  }
136
+ function streamed(answer) {
137
+ if (answer.kind !== 'binary')
138
+ return answer;
139
+ const { file, byteLength, mediaType } = answer;
140
+ let part = 0;
141
+ let received = 0;
142
+ const stream = new ReadableStream({
143
+ async pull(controller) {
144
+ const bytes = await ask('binaryFile.part', [file, part]);
145
+ if (bytes === null) {
146
+ if (received === byteLength)
147
+ controller.close();
148
+ else
149
+ controller.error(runtimeError('binary-file-absent', 'The file ended early'));
150
+ return;
151
+ }
152
+ part += 1;
153
+ received += bytes.byteLength;
154
+ controller.enqueue(bytes);
155
+ },
156
+ }, { highWaterMark: 0 });
157
+ return { kind: 'binary', stream, byteLength, mediaType };
158
+ }
136
159
  function settled() {
137
160
  if (settling !== null)
138
161
  return settling;
@@ -174,15 +197,18 @@ export function connectMdRuntime(port) {
174
197
  discard: (room, path, revision) => ask('roomDraft.discard', [room, path, revision]),
175
198
  },
176
199
  save: (room, roomDrafts) => ask('save', [room, roomDrafts]),
200
+ saveParts: (room, parts) => ask('saveParts', [room, parts]),
177
201
  presentation: {
178
202
  read: () => ask('presentation.read', []),
179
203
  write: (value) => ask('presentation.write', [value]),
204
+ edit: (members) => ask('presentation.edit', [members]),
180
205
  },
181
206
  conversation: {
182
207
  list: () => ask('conversation.list', []),
183
208
  read: (conversation, options) => ask('conversation.read', [conversation, options]),
184
209
  create: (input) => ask('conversation.create', [input]),
185
210
  send: (conversation, operation, draft) => ask('conversation.send', [conversation, operation, draft]),
211
+ attach: (room, file) => ask('conversation.attach', [room, file]),
186
212
  answer: (conversation, answer) => ask('conversation.answer', [conversation, answer]),
187
213
  interrupt: (conversation) => ask('conversation.interrupt', [conversation]),
188
214
  kill: (conversation) => ask('conversation.kill', [conversation]),
@@ -191,18 +217,21 @@ export function connectMdRuntime(port) {
191
217
  },
192
218
  chatDraft: {
193
219
  write: (conversation, draft, revision) => ask('chatDraft.write', [conversation, draft, revision]),
220
+ prepend: (conversation, draft) => ask('chatDraft.prepend', [conversation, draft]),
194
221
  discard: (conversation) => ask('chatDraft.discard', [conversation]),
195
222
  },
196
223
  history: (locator, path, query) => ask('history', [locator, path, query]),
224
+ resolve: (room, path, destination) => ask('resolve', [room, path, destination]),
197
225
  binaryFile: {
198
- read: (room, path, revision) => ask('binaryFile.read', [room, path, revision]),
199
- readReference: (reference) => ask('binaryFile.readReference', [reference]),
226
+ read: (room, path, revision) => ask('binaryFile.read', [room, path, revision]).then(streamed),
227
+ link: (room, path, revision) => ask('binaryFile.link', [room, path, revision]),
200
228
  },
201
229
  call: (name, input) => ask('call', [name, input]),
202
230
  reached: (locator, roomVersion, path) => ask('reached', [locator, roomVersion, path]),
203
231
  log: () => ask('log', []),
204
232
  persistence: () => ask('persistence', []),
205
233
  retry: () => ask('retry', []),
234
+ cleanUp: () => ask('cleanUp', []),
206
235
  observe: ((topic, ...input) => watch(topic, input)),
207
236
  reauthorize: () => ask('reauthorize', []),
208
237
  settled,
@@ -210,8 +239,9 @@ export function connectMdRuntime(port) {
210
239
  }
211
240
  const turns = new WeakMap();
212
241
  export function inTurn(client, work) {
213
- const next = (turns.get(client) ?? Promise.resolve()).then(work).catch(() => undefined);
214
- turns.set(client, next);
215
- return next;
242
+ const turn = (turns.get(client) ?? Promise.resolve()).then(work);
243
+ turns.set(client, turn.then(() => undefined, () => undefined));
244
+ return turn;
216
245
  }
246
+ export { chainedWindows } from './chain.js';
217
247
  export { unanswered } from './wire.js';
@@ -1,9 +1,8 @@
1
- import { type Document, type Frontmatter, type Validation } from '@agentshouse/mdmodel';
2
- import { type ModelState } from './model.js';
1
+ import { type Document } from '@agentshouse/mdmodel';
2
+ import type { ModelState } from './model.js';
3
3
  import type { MdModelIdentity } from './adapter.js';
4
4
  import { type Paths } from './shared.js';
5
5
  import type { Refused } from './transfer.js';
6
- import { type Later } from './turn.js';
7
6
  export declare const MD_MODEL: MdModelIdentity;
8
7
  export type Collection = {
9
8
  text: Readonly<Record<string, string>>;
@@ -17,23 +16,11 @@ export type Composition = {
17
16
  model: ModelState;
18
17
  } | null;
19
18
  };
19
+ export declare function selected(composition: Composition, path: string): boolean;
20
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 passingFrontmatter(collection: Collection, path: string): Frontmatter | undefined;
23
- export declare function documentsOf(collection: Collection): Generator<readonly [string, Document]>;
24
- export declare function unreadable(text: Readonly<Record<string, string>>, previous?: Readonly<Record<string, string>>): Refused | null;
21
+ export declare function collectionOf(text: Readonly<Record<string, string>>, composition: Composition): Collection;
22
+ export declare function documentsOf(collection: Collection): Generator<number, Iterable<readonly [string, Document]>, void>;
23
+ export declare function unreadable(text: Paths<string>, paths?: Iterable<string> | null): Generator<number, Refused | null, void>;
25
24
  export declare function validRoot(root: unknown): root is string;
26
- export declare function validateCollection(text: Readonly<Record<string, string>>, binaryTargets: readonly string[], composition: Composition): Validation;
27
- type Held = {
28
- text: Paths<string>;
29
- binaries: Paths<unknown>;
30
- };
31
- export declare function indexReferrers(held: Held, composition: Composition): Later<void>;
32
- export declare function referencesIndexed(held: Held, composition: Composition): boolean;
33
- export declare function referring(held: Held, composition: Composition, targets: Iterable<string>): ReadonlySet<string> | null;
34
25
  export declare function available(composition: Composition): boolean;
35
- export declare function changedCleanly(next: Held, previous: Held & {
36
- composition: Composition;
37
- }, composition: Composition): boolean;
38
- export {};
39
26
  //# 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,EAAkB,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAsB,KAAK,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,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;CACnE,CAAC;AAEF,wBAAgB,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAKxE;AAED,wBAAgB,SAAS,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAI5E;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,wBAAiB,UAAU,CACzB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EACnB,KAAK,GAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAW,GACpC,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,EAAE,IAAI,CAAC,CAazC;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,MAAM,CAEvD;AAED,wBAAgB,SAAS,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAK3D"}