@agentshouse/mdruntime 0.1.0-c210758b77baa → 0.1.0-c23f4c9bf3e36

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 (372) hide show
  1. package/README.md +19 -17
  2. package/dist/acceptance.d.ts +6 -0
  3. package/dist/acceptance.d.ts.map +1 -0
  4. package/dist/acceptance.js +387 -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 +106 -99
  9. package/dist/adapter.d.ts.map +1 -1
  10. package/dist/attached-model.d.ts +5 -11
  11. package/dist/attached-model.d.ts.map +1 -1
  12. package/dist/attached-model.js +36 -47
  13. package/dist/bootstrap.d.ts +16 -15
  14. package/dist/bootstrap.d.ts.map +1 -1
  15. package/dist/bootstrap.js +274 -131
  16. package/dist/cell.d.ts +6 -0
  17. package/dist/cell.d.ts.map +1 -0
  18. package/dist/cell.js +9 -0
  19. package/dist/chain.d.ts +2 -1
  20. package/dist/chain.d.ts.map +1 -1
  21. package/dist/change.d.ts +1 -0
  22. package/dist/change.d.ts.map +1 -1
  23. package/dist/change.js +4 -2
  24. package/dist/chat-types.d.ts +5 -0
  25. package/dist/chat-types.d.ts.map +1 -0
  26. package/dist/chat-types.js +13 -0
  27. package/dist/client.d.ts +28 -11
  28. package/dist/client.d.ts.map +1 -1
  29. package/dist/client.js +61 -10
  30. package/dist/collection.d.ts +28 -7
  31. package/dist/collection.d.ts.map +1 -1
  32. package/dist/collection.js +36 -21
  33. package/dist/compile.d.ts +6 -6
  34. package/dist/compile.d.ts.map +1 -1
  35. package/dist/compile.js +287 -297
  36. package/dist/connection.d.ts +6 -141
  37. package/dist/connection.d.ts.map +1 -1
  38. package/dist/connection.js +105 -5016
  39. package/dist/context.d.ts +2 -0
  40. package/dist/context.d.ts.map +1 -0
  41. package/dist/{chat/context.js → context.js} +1 -4
  42. package/dist/conversation-live.d.ts +135 -0
  43. package/dist/conversation-live.d.ts.map +1 -0
  44. package/dist/conversation-live.js +247 -0
  45. package/dist/conversation-row.d.ts +33 -0
  46. package/dist/conversation-row.d.ts.map +1 -0
  47. package/dist/conversation-row.js +53 -0
  48. package/dist/conversation.d.ts +41 -47
  49. package/dist/conversation.d.ts.map +1 -1
  50. package/dist/conversation.js +885 -829
  51. package/dist/discovery.d.ts +10 -0
  52. package/dist/discovery.d.ts.map +1 -0
  53. package/dist/discovery.js +175 -0
  54. package/dist/durability.d.ts +15 -1
  55. package/dist/durability.d.ts.map +1 -1
  56. package/dist/entry.d.ts +3 -2
  57. package/dist/entry.d.ts.map +1 -1
  58. package/dist/entry.js +18 -8
  59. package/dist/expectation.d.ts +4 -2
  60. package/dist/expectation.d.ts.map +1 -1
  61. package/dist/expectation.js +33 -11
  62. package/dist/failure.d.ts +1 -0
  63. package/dist/failure.d.ts.map +1 -1
  64. package/dist/failure.js +3 -0
  65. package/dist/figures.d.ts +49 -0
  66. package/dist/figures.d.ts.map +1 -0
  67. package/dist/figures.js +197 -0
  68. package/dist/file.d.ts +2 -11
  69. package/dist/file.d.ts.map +1 -1
  70. package/dist/file.js +6 -4
  71. package/dist/holdings.d.ts +29 -0
  72. package/dist/holdings.d.ts.map +1 -0
  73. package/dist/holdings.js +95 -0
  74. package/dist/host.d.ts +20 -8
  75. package/dist/host.d.ts.map +1 -1
  76. package/dist/host.js +48 -36
  77. package/dist/identity.d.ts +0 -1
  78. package/dist/identity.d.ts.map +1 -1
  79. package/dist/identity.js +0 -3
  80. package/dist/index.d.ts +28 -10
  81. package/dist/index.d.ts.map +1 -1
  82. package/dist/index.js +9 -1
  83. package/dist/install.d.ts +56 -0
  84. package/dist/install.d.ts.map +1 -0
  85. package/dist/install.js +556 -0
  86. package/dist/job.d.ts +5 -0
  87. package/dist/job.d.ts.map +1 -0
  88. package/dist/job.js +7 -0
  89. package/dist/lifecycle.d.ts +7 -0
  90. package/dist/lifecycle.d.ts.map +1 -0
  91. package/dist/lifecycle.js +270 -0
  92. package/dist/listing.d.ts +53 -0
  93. package/dist/listing.d.ts.map +1 -0
  94. package/dist/listing.js +176 -0
  95. package/dist/live.d.ts +5 -4
  96. package/dist/live.d.ts.map +1 -1
  97. package/dist/live.js +63 -21
  98. package/dist/locks.d.ts +9 -0
  99. package/dist/locks.d.ts.map +1 -0
  100. package/dist/locks.js +62 -0
  101. package/dist/log.d.ts +1 -0
  102. package/dist/log.d.ts.map +1 -1
  103. package/dist/lost.d.ts +5 -0
  104. package/dist/lost.d.ts.map +1 -0
  105. package/dist/lost.js +61 -0
  106. package/dist/media.d.ts +8 -0
  107. package/dist/media.d.ts.map +1 -0
  108. package/dist/media.js +218 -0
  109. package/dist/memory.d.ts +13 -6
  110. package/dist/memory.d.ts.map +1 -1
  111. package/dist/memory.js +222 -92
  112. package/dist/messages.d.ts +24 -3
  113. package/dist/messages.d.ts.map +1 -1
  114. package/dist/messages.js +89 -31
  115. package/dist/model.d.ts +8 -11
  116. package/dist/model.d.ts.map +1 -1
  117. package/dist/model.js +6 -23
  118. package/dist/models.d.ts +14 -0
  119. package/dist/models.d.ts.map +1 -0
  120. package/dist/models.js +197 -0
  121. package/dist/observation.d.ts +3 -2
  122. package/dist/observation.d.ts.map +1 -1
  123. package/dist/observation.js +15 -15
  124. package/dist/opened.js +3 -3
  125. package/dist/opening.d.ts +4 -0
  126. package/dist/opening.d.ts.map +1 -0
  127. package/dist/opening.js +60 -0
  128. package/dist/outcome.d.ts +17 -6
  129. package/dist/outcome.d.ts.map +1 -1
  130. package/dist/outcome.js +19 -2
  131. package/dist/overlay.d.ts +3 -1
  132. package/dist/overlay.d.ts.map +1 -1
  133. package/dist/overlay.js +43 -21
  134. package/dist/parts.d.ts +11 -0
  135. package/dist/parts.d.ts.map +1 -0
  136. package/dist/parts.js +21 -0
  137. package/dist/paths.d.ts +2 -0
  138. package/dist/paths.d.ts.map +1 -1
  139. package/dist/paths.js +26 -0
  140. package/dist/preparation.d.ts +20 -0
  141. package/dist/preparation.d.ts.map +1 -0
  142. package/dist/preparation.js +233 -0
  143. package/dist/queries.d.ts +16 -0
  144. package/dist/queries.d.ts.map +1 -0
  145. package/dist/queries.js +272 -0
  146. package/dist/query.d.ts +18 -208
  147. package/dist/query.d.ts.map +1 -1
  148. package/dist/query.js +3 -505
  149. package/dist/{chat/questions.d.ts → questions.d.ts} +5 -2
  150. package/dist/questions.d.ts.map +1 -0
  151. package/dist/{chat/questions.js → questions.js} +13 -2
  152. package/dist/reach.d.ts +20 -11
  153. package/dist/reach.d.ts.map +1 -1
  154. package/dist/reach.js +210 -129
  155. package/dist/react.d.ts +14 -2
  156. package/dist/react.d.ts.map +1 -1
  157. package/dist/react.js +10 -1
  158. package/dist/{chat/read.d.ts → read.d.ts} +2 -0
  159. package/dist/read.d.ts.map +1 -0
  160. package/dist/{chat/read.js → read.js} +4 -0
  161. package/dist/readiness.d.ts +3 -18
  162. package/dist/readiness.d.ts.map +1 -1
  163. package/dist/readiness.js +4 -10
  164. package/dist/reads.d.ts +36 -10
  165. package/dist/reads.d.ts.map +1 -1
  166. package/dist/reads.js +159 -85
  167. package/dist/recovery.d.ts +1 -0
  168. package/dist/recovery.d.ts.map +1 -1
  169. package/dist/recovery.js +35 -1
  170. package/dist/refresh.d.ts +7 -5
  171. package/dist/refresh.d.ts.map +1 -1
  172. package/dist/refresh.js +34 -10
  173. package/dist/refusal.d.ts +5 -0
  174. package/dist/refusal.d.ts.map +1 -0
  175. package/dist/refusal.js +57 -0
  176. package/dist/replica.d.ts +13 -14
  177. package/dist/replica.d.ts.map +1 -1
  178. package/dist/replica.js +65 -32
  179. package/dist/room-draft.d.ts +24 -9
  180. package/dist/room-draft.d.ts.map +1 -1
  181. package/dist/room-draft.js +133 -73
  182. package/dist/room-drafts.d.ts +24 -0
  183. package/dist/room-drafts.d.ts.map +1 -0
  184. package/dist/room-drafts.js +217 -0
  185. package/dist/rows.d.ts +18 -16
  186. package/dist/rows.d.ts.map +1 -1
  187. package/dist/rows.js +46 -155
  188. package/dist/runtime.d.ts +43 -0
  189. package/dist/runtime.d.ts.map +1 -0
  190. package/dist/runtime.js +1 -0
  191. package/dist/save.d.ts +8 -2
  192. package/dist/save.d.ts.map +1 -1
  193. package/dist/save.js +81 -62
  194. package/dist/saves.d.ts +70 -0
  195. package/dist/saves.d.ts.map +1 -0
  196. package/dist/saves.js +1008 -0
  197. package/dist/search.d.ts +12 -63
  198. package/dist/search.d.ts.map +1 -1
  199. package/dist/search.js +9 -52
  200. package/dist/seed.d.ts +11 -2
  201. package/dist/seed.d.ts.map +1 -1
  202. package/dist/seed.js +71 -1
  203. package/dist/shared.d.ts +1 -7
  204. package/dist/shared.d.ts.map +1 -1
  205. package/dist/shared.js +13 -105
  206. package/dist/shown.d.ts +31 -0
  207. package/dist/shown.d.ts.map +1 -0
  208. package/dist/shown.js +290 -0
  209. package/dist/socket/admission.d.ts +7 -0
  210. package/dist/socket/admission.d.ts.map +1 -0
  211. package/dist/socket/admission.js +39 -0
  212. package/dist/socket/answers.d.ts +6 -0
  213. package/dist/socket/answers.d.ts.map +1 -0
  214. package/dist/socket/answers.js +20 -0
  215. package/dist/socket/lanes.d.ts +20 -0
  216. package/dist/socket/lanes.d.ts.map +1 -0
  217. package/dist/socket/lanes.js +77 -0
  218. package/dist/socket/reads.d.ts +10 -0
  219. package/dist/socket/reads.d.ts.map +1 -0
  220. package/dist/socket/reads.js +31 -0
  221. package/dist/socket/rooms.d.ts +44 -0
  222. package/dist/socket/rooms.d.ts.map +1 -0
  223. package/dist/socket/rooms.js +90 -0
  224. package/dist/socket/session.d.ts +38 -0
  225. package/dist/socket/session.d.ts.map +1 -0
  226. package/dist/socket/session.js +23 -0
  227. package/dist/socket.d.ts +70 -0
  228. package/dist/socket.d.ts.map +1 -0
  229. package/dist/socket.js +175 -0
  230. package/dist/source.d.ts +61 -0
  231. package/dist/source.d.ts.map +1 -0
  232. package/dist/source.js +82 -0
  233. package/dist/status.d.ts +4 -5
  234. package/dist/status.d.ts.map +1 -1
  235. package/dist/status.js +3 -7
  236. package/dist/store/fences.d.ts +16 -0
  237. package/dist/store/fences.d.ts.map +1 -0
  238. package/dist/store/fences.js +26 -0
  239. package/dist/store/installs.d.ts +30 -0
  240. package/dist/store/installs.d.ts.map +1 -0
  241. package/dist/store/installs.js +34 -0
  242. package/dist/store/readiness.d.ts +10 -0
  243. package/dist/store/readiness.d.ts.map +1 -0
  244. package/dist/store/readiness.js +52 -0
  245. package/dist/store/records.d.ts +210 -0
  246. package/dist/store/records.d.ts.map +1 -0
  247. package/dist/store/records.js +428 -0
  248. package/dist/store/room-held.d.ts +8 -0
  249. package/dist/store/room-held.d.ts.map +1 -0
  250. package/dist/store/room-held.js +17 -0
  251. package/dist/store/space.d.ts +11 -0
  252. package/dist/store/space.d.ts.map +1 -0
  253. package/dist/store/space.js +41 -0
  254. package/dist/store/watchers.d.ts +17 -0
  255. package/dist/store/watchers.d.ts.map +1 -0
  256. package/dist/store/watchers.js +56 -0
  257. package/dist/store/writes.d.ts +24 -0
  258. package/dist/store/writes.d.ts.map +1 -0
  259. package/dist/store/writes.js +125 -0
  260. package/dist/store.d.ts +105 -158
  261. package/dist/store.d.ts.map +1 -1
  262. package/dist/store.js +143 -401
  263. package/dist/stored.d.ts +66 -55
  264. package/dist/stored.d.ts.map +1 -1
  265. package/dist/stored.js +355 -273
  266. package/dist/surface.d.ts +88 -0
  267. package/dist/surface.d.ts.map +1 -0
  268. package/dist/surface.js +224 -0
  269. package/dist/sync.d.ts +19 -0
  270. package/dist/sync.d.ts.map +1 -0
  271. package/dist/sync.js +532 -0
  272. package/dist/tables.d.ts +127 -69
  273. package/dist/tables.d.ts.map +1 -1
  274. package/dist/tables.js +218 -105
  275. package/dist/tallies.d.ts +18 -0
  276. package/dist/tallies.d.ts.map +1 -0
  277. package/dist/tallies.js +129 -0
  278. package/dist/transfer.d.ts +0 -5
  279. package/dist/transfer.d.ts.map +1 -1
  280. package/dist/validation.d.ts +3 -4
  281. package/dist/validation.d.ts.map +1 -1
  282. package/dist/validation.js +42 -100
  283. package/dist/windows.d.ts +1 -12
  284. package/dist/windows.d.ts.map +1 -1
  285. package/dist/windows.js +2 -75
  286. package/dist/wire.d.ts +29 -13
  287. package/dist/wire.d.ts.map +1 -1
  288. package/dist/wire.js +12 -5
  289. package/package.json +11 -17
  290. package/AGENTS.md +0 -317
  291. package/dist/chat/acts.d.ts +0 -33
  292. package/dist/chat/acts.d.ts.map +0 -1
  293. package/dist/chat/acts.js +0 -36
  294. package/dist/chat/context.d.ts +0 -3
  295. package/dist/chat/context.d.ts.map +0 -1
  296. package/dist/chat/earlier.d.ts +0 -10
  297. package/dist/chat/earlier.d.ts.map +0 -1
  298. package/dist/chat/earlier.js +0 -54
  299. package/dist/chat/house.d.ts +0 -25
  300. package/dist/chat/house.d.ts.map +0 -1
  301. package/dist/chat/house.js +0 -38
  302. package/dist/chat/input.d.ts +0 -11
  303. package/dist/chat/input.d.ts.map +0 -1
  304. package/dist/chat/input.js +0 -92
  305. package/dist/chat/kit.d.ts +0 -61
  306. package/dist/chat/kit.d.ts.map +0 -1
  307. package/dist/chat/kit.js +0 -123
  308. package/dist/chat/lasting.d.ts +0 -6
  309. package/dist/chat/lasting.d.ts.map +0 -1
  310. package/dist/chat/lasting.js +0 -19
  311. package/dist/chat/list.d.ts +0 -28
  312. package/dist/chat/list.d.ts.map +0 -1
  313. package/dist/chat/list.js +0 -103
  314. package/dist/chat/markdown.d.ts +0 -20
  315. package/dist/chat/markdown.d.ts.map +0 -1
  316. package/dist/chat/markdown.js +0 -231
  317. package/dist/chat/message.d.ts +0 -7
  318. package/dist/chat/message.d.ts.map +0 -1
  319. package/dist/chat/message.js +0 -254
  320. package/dist/chat/messages.d.ts +0 -35
  321. package/dist/chat/messages.d.ts.map +0 -1
  322. package/dist/chat/messages.js +0 -210
  323. package/dist/chat/name.d.ts +0 -7
  324. package/dist/chat/name.d.ts.map +0 -1
  325. package/dist/chat/name.js +0 -37
  326. package/dist/chat/opened.d.ts +0 -12
  327. package/dist/chat/opened.d.ts.map +0 -1
  328. package/dist/chat/opened.js +0 -19
  329. package/dist/chat/overlay.d.ts +0 -32
  330. package/dist/chat/overlay.d.ts.map +0 -1
  331. package/dist/chat/overlay.js +0 -103
  332. package/dist/chat/parts.d.ts +0 -58
  333. package/dist/chat/parts.d.ts.map +0 -1
  334. package/dist/chat/parts.js +0 -120
  335. package/dist/chat/pieces.d.ts +0 -62
  336. package/dist/chat/pieces.d.ts.map +0 -1
  337. package/dist/chat/pieces.js +0 -1110
  338. package/dist/chat/process.d.ts +0 -20
  339. package/dist/chat/process.d.ts.map +0 -1
  340. package/dist/chat/process.js +0 -32
  341. package/dist/chat/provider.d.ts +0 -70
  342. package/dist/chat/provider.d.ts.map +0 -1
  343. package/dist/chat/provider.js +0 -635
  344. package/dist/chat/question.d.ts +0 -9
  345. package/dist/chat/question.d.ts.map +0 -1
  346. package/dist/chat/question.js +0 -69
  347. package/dist/chat/questions.d.ts.map +0 -1
  348. package/dist/chat/read.d.ts.map +0 -1
  349. package/dist/chat/ready.d.ts +0 -37
  350. package/dist/chat/ready.d.ts.map +0 -1
  351. package/dist/chat/ready.js +0 -93
  352. package/dist/chat/room-file.d.ts +0 -8
  353. package/dist/chat/room-file.d.ts.map +0 -1
  354. package/dist/chat/room-file.js +0 -72
  355. package/dist/chat/steady.d.ts +0 -3
  356. package/dist/chat/steady.d.ts.map +0 -1
  357. package/dist/chat/steady.js +0 -26
  358. package/dist/chat/style.d.ts +0 -4
  359. package/dist/chat/style.d.ts.map +0 -1
  360. package/dist/chat/style.js +0 -307
  361. package/dist/chat.d.ts +0 -15
  362. package/dist/chat.d.ts.map +0 -1
  363. package/dist/chat.js +0 -8
  364. package/dist/fence.d.ts +0 -6
  365. package/dist/fence.d.ts.map +0 -1
  366. package/dist/fence.js +0 -10
  367. package/dist/fulltext.d.ts +0 -27
  368. package/dist/fulltext.d.ts.map +0 -1
  369. package/dist/fulltext.js +0 -368
  370. package/dist/words.d.ts +0 -19
  371. package/dist/words.d.ts.map +0 -1
  372. package/dist/words.js +0 -150
package/dist/client.d.ts CHANGED
@@ -1,16 +1,26 @@
1
- import type { AppRoom, ConnectionRefusal, HistoryQuery, RoomSchemas, SavedParts, SavedRoomDraft, SaveResult } from './connection.js';
1
+ import type { DocumentQuery, GroupQuery } from '@agentshouse/mdmodel';
2
+ import type { HistoryQuery } from './actions.js';
3
+ import type { AppRoom } from './listing.js';
4
+ import type { ConnectionRefusal } from './socket.js';
5
+ import type { RoomSchemas } from './surface.js';
6
+ import type { SavedParts, SavedRoomDraft, SaveResult } from './saves.js';
2
7
  import type { Member, ServiceMode } from './adapter.js';
3
- import type { ChatDraft, ConversationAgent, ConversationEntry, ConversationOptions, ConversationView } from './conversation.js';
8
+ import type { UnsentWork } from './durability.js';
9
+ import type { ChatDraft, ConversationAgent, ConversationAnswer, ConversationEntry, ConversationOptions, ConversationRead, ConversationView } from './conversation.js';
4
10
  import { type Observation } from './observation.js';
5
- import type { ChosenFile } from './file.js';
6
- import type { BinaryAnswer, BinaryLinkAnswer, CallResult, HistoryAnswer, Offline, QueueEntry, Resolution } from './outcome.js';
7
- import type { DocumentQuery, DocumentResult, GroupQuery, GroupResult, PendingResult } from './query.js';
11
+ import type { AttachAnswer, BinaryAnswer, CallResult, DownloadAnswer, HistoryAnswer, Offline, QueueEntry, Resolution } from './outcome.js';
12
+ import type { FiguresResult } from './figures.js';
13
+ import type { Holdings } from './holdings.js';
14
+ import type { DocumentResult, GroupResult, PendingResult } from './query.js';
8
15
  import type { RoomDraft, RoomDraftParts, RoomDraftWrite } from './room-draft.js';
9
16
  import type { SearchRequest, SearchResult } from './search.js';
10
17
  import type { Readiness } from './readiness.js';
18
+ import type { ObservedRead } from './reads.js';
11
19
  import type { SyncStatus } from './status.js';
12
20
  import { type RuntimePort } from './wire.js';
21
+ export type BuildFile = (name: string) => Promise<Blob | null>;
13
22
  export type MdRuntimeClient = {
23
+ buildFile(name: string): Promise<Blob | null>;
14
24
  rooms(): Promise<readonly AppRoom[]>;
15
25
  query: {
16
26
  (query: DocumentQuery): Promise<DocumentResult | PendingResult>;
@@ -33,14 +43,12 @@ export type MdRuntimeClient = {
33
43
  };
34
44
  conversation: {
35
45
  list(): Promise<readonly ConversationEntry[]>;
36
- read(conversation: string, options?: ConversationOptions): Promise<ConversationView>;
46
+ read(conversation: string, options?: ConversationRead): Promise<ConversationView>;
37
47
  create(input: unknown): Promise<CallResult>;
38
48
  send(conversation: string, operation?: string, draft?: ChatDraft): Promise<CallResult | Offline>;
39
- attach(room: string, file: ChosenFile): Promise<CallResult | Offline>;
40
- answer(conversation: string, answer: unknown): Promise<CallResult>;
49
+ answer(conversation: string, answer: ConversationAnswer): Promise<CallResult>;
41
50
  interrupt(conversation: string): Promise<CallResult>;
42
51
  kill(conversation: string): Promise<CallResult>;
43
- cancel(conversation: string, turn: string): Promise<CallResult>;
44
52
  delete(conversation: string): Promise<CallResult>;
45
53
  };
46
54
  chatDraft: {
@@ -52,7 +60,8 @@ export type MdRuntimeClient = {
52
60
  resolve(room: string, path: string, destination: string): Promise<Resolution>;
53
61
  binaryFile: {
54
62
  read(room: string, path: string, revision?: string): Promise<BinaryAnswer>;
55
- link(room: string, path: string, revision?: string): Promise<BinaryLinkAnswer>;
63
+ attach(room: string, file: File): Promise<AttachAnswer>;
64
+ download(room: string, path: string, revision?: string): Promise<DownloadAnswer>;
56
65
  };
57
66
  call(name: string, input: unknown): Promise<CallResult>;
58
67
  reached(locator: string, roomVersion: string, path?: string): Promise<boolean>;
@@ -60,6 +69,9 @@ export type MdRuntimeClient = {
60
69
  persistence(): Promise<boolean>;
61
70
  retry(): Promise<void>;
62
71
  cleanUp(): Promise<number>;
72
+ unsent(): Promise<readonly UnsentWork[]>;
73
+ reset(): Promise<void>;
74
+ readAgain(): Promise<void>;
63
75
  observe: {
64
76
  (topic: 'deployment-facts'): Promise<Observation<unknown>>;
65
77
  (topic: 'rooms'): Promise<Observation<readonly AppRoom[]>>;
@@ -69,6 +81,7 @@ export type MdRuntimeClient = {
69
81
  (topic: 'sync-status'): Promise<Observation<SyncStatus>>;
70
82
  (topic: 'service-mode'): Promise<Observation<ServiceMode>>;
71
83
  (topic: 'member'): Promise<Observation<Member | null>>;
84
+ (topic: 'authority-changes'): Promise<Observation<number>>;
72
85
  (topic: 'query', query: DocumentQuery): Promise<Observation<DocumentResult | PendingResult>>;
73
86
  (topic: 'query', query: GroupQuery): Promise<Observation<GroupResult | PendingResult>>;
74
87
  (topic: 'queue', locator: string): Promise<Observation<readonly QueueEntry[]>>;
@@ -77,14 +90,18 @@ export type MdRuntimeClient = {
77
90
  (topic: 'conversation', conversation: string, options: ConversationOptions): Promise<Observation<ConversationView>>;
78
91
  (topic: 'conversations'): Promise<Observation<readonly ConversationEntry[]>>;
79
92
  (topic: 'agents'): Promise<Observation<readonly ConversationAgent[]>>;
93
+ (topic: 'figures'): Promise<Observation<FiguresResult>>;
94
+ (topic: 'holdings'): Promise<Observation<Holdings>>;
95
+ (topic: 'read', name: string, input: unknown): Promise<Observation<ObservedRead>>;
80
96
  };
81
97
  reauthorize(): Promise<void>;
82
98
  settled(): Promise<void>;
83
99
  };
84
- export declare function connectMdRuntime(port: RuntimePort): MdRuntimeClient;
100
+ export declare function connectMdRuntime(port: RuntimePort, buildFile?: BuildFile): MdRuntimeClient;
85
101
  export declare function inTurn(client: MdRuntimeClient, work: () => Promise<void>): Promise<void>;
86
102
  export { chainedWindows, type WindowAnswer, type WindowChain } from './chain.js';
87
103
  export { roomDraftRevision } from './identity.js';
104
+ export { defineRoomMedia, ROOM_MEDIA } from './media.js';
88
105
  export type { Observation } from './observation.js';
89
106
  export type { Open } from './open.js';
90
107
  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
@@ -1,12 +1,30 @@
1
+ import { shownBy } from './media.js';
1
2
  import { observed } from './observation.js';
2
3
  import { runtimeError } from './failure.js';
3
- import { answer, AUTHORIZATION_ENDED, PORT_CLOSED, } from './wire.js';
4
+ import { AUTHORIZATION_ENDED, PORT_CLOSED, wireAnswer, } from './wire.js';
4
5
  // 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
6
  const SETTLED_FRAMES = 2;
7
+ // 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.
8
+ const HANDED_COPY_MS = 60_000;
9
+ const PAGE = /\.html?$/iu;
10
+ const STARTED = { kind: 'started' };
11
+ const BLOCKED = {
12
+ kind: 'blocked',
13
+ code: 'popup-blocked',
14
+ fields: {},
15
+ retryable: true,
16
+ };
17
+ function handed(url, name) {
18
+ const anchor = document.createElement('a');
19
+ anchor.href = url;
20
+ anchor.download = name;
21
+ anchor.click();
22
+ }
6
23
  function refused(refusal) {
7
- return runtimeError(refusal.code, refusal.code, refusal.retryable);
24
+ return runtimeError(refusal.code);
8
25
  }
9
- export function connectMdRuntime(port) {
26
+ const UNBUILT = () => Promise.resolve(null);
27
+ export function connectMdRuntime(port, buildFile = UNBUILT) {
10
28
  let sequence = 0;
11
29
  let refusal = null;
12
30
  let ended = null;
@@ -62,7 +80,7 @@ export function connectMdRuntime(port) {
62
80
  drawing?.();
63
81
  }
64
82
  port.addEventListener('message', (event) => {
65
- const message = answer(event.data);
83
+ const message = wireAnswer(event.data);
66
84
  if (message === null)
67
85
  return;
68
86
  if (message.kind === 'refusal') {
@@ -156,6 +174,34 @@ export function connectMdRuntime(port) {
156
174
  }, { highWaterMark: 0 });
157
175
  return { kind: 'binary', stream, byteLength, mediaType };
158
176
  }
177
+ async function download(room, path, revision) {
178
+ const tab = PAGE.test(path) ? globalThis.open('', '_blank') : null;
179
+ const linked = await ask('binaryFile.link', [room, path, revision]);
180
+ if (linked.kind === 'link' && PAGE.test(linked.name)) {
181
+ const away = tab ?? globalThis.open('', '_blank');
182
+ if (away === null)
183
+ return BLOCKED;
184
+ away.location.replace(linked.url);
185
+ return STARTED;
186
+ }
187
+ tab?.close();
188
+ if (linked.kind === 'link') {
189
+ handed(linked.url, linked.name);
190
+ return STARTED;
191
+ }
192
+ if (linked.kind !== 'absent')
193
+ return linked;
194
+ const read = streamed(await ask('binaryFile.read', [room, path, revision]));
195
+ if (read.kind !== 'binary')
196
+ return read;
197
+ const copy = await new Response(read.stream, {
198
+ headers: { 'content-type': read.mediaType },
199
+ }).blob();
200
+ const url = URL.createObjectURL(copy);
201
+ handed(url, path.slice(path.lastIndexOf('/') + 1));
202
+ setTimeout(() => URL.revokeObjectURL(url), HANDED_COPY_MS);
203
+ return STARTED;
204
+ }
159
205
  function settled() {
160
206
  if (settling !== null)
161
207
  return settling;
@@ -185,7 +231,9 @@ export function connectMdRuntime(port) {
185
231
  });
186
232
  return settling;
187
233
  }
188
- return {
234
+ const show = (room, path, revision) => ask('binaryFile.show', [room, path, revision]).then((shown) => streamed(shown));
235
+ return shownBy(show, {
236
+ buildFile,
189
237
  rooms: () => ask('rooms', []),
190
238
  query: ((query) => ask('query', [query])),
191
239
  search: (request) => ask('search', [request]),
@@ -208,11 +256,9 @@ export function connectMdRuntime(port) {
208
256
  read: (conversation, options) => ask('conversation.read', [conversation, options]),
209
257
  create: (input) => ask('conversation.create', [input]),
210
258
  send: (conversation, operation, draft) => ask('conversation.send', [conversation, operation, draft]),
211
- attach: (room, file) => ask('conversation.attach', [room, file]),
212
259
  answer: (conversation, answer) => ask('conversation.answer', [conversation, answer]),
213
260
  interrupt: (conversation) => ask('conversation.interrupt', [conversation]),
214
261
  kill: (conversation) => ask('conversation.kill', [conversation]),
215
- cancel: (conversation, turn) => ask('conversation.cancel', [conversation, turn]),
216
262
  delete: (conversation) => ask('conversation.delete', [conversation]),
217
263
  },
218
264
  chatDraft: {
@@ -223,8 +269,9 @@ export function connectMdRuntime(port) {
223
269
  history: (locator, path, query) => ask('history', [locator, path, query]),
224
270
  resolve: (room, path, destination) => ask('resolve', [room, path, destination]),
225
271
  binaryFile: {
226
- read: (room, path, revision) => ask('binaryFile.read', [room, path, revision]).then(streamed),
227
- link: (room, path, revision) => ask('binaryFile.link', [room, path, revision]),
272
+ read: (room, path, revision) => ask('binaryFile.read', [room, path, revision]).then((read) => streamed(read)),
273
+ attach: (room, file) => ask('binaryFile.attach', [room, file]),
274
+ download,
228
275
  },
229
276
  call: (name, input) => ask('call', [name, input]),
230
277
  reached: (locator, roomVersion, path) => ask('reached', [locator, roomVersion, path]),
@@ -232,10 +279,13 @@ export function connectMdRuntime(port) {
232
279
  persistence: () => ask('persistence', []),
233
280
  retry: () => ask('retry', []),
234
281
  cleanUp: () => ask('cleanUp', []),
282
+ unsent: () => ask('unsent', []),
283
+ reset: () => ask('reset', []),
284
+ readAgain: () => ask('readAgain', []),
235
285
  observe: ((topic, ...input) => watch(topic, input)),
236
286
  reauthorize: () => ask('reauthorize', []),
237
287
  settled,
238
- };
288
+ });
239
289
  }
240
290
  const turns = new WeakMap();
241
291
  export function inTurn(client, work) {
@@ -245,4 +295,5 @@ export function inTurn(client, work) {
245
295
  }
246
296
  export { chainedWindows } from './chain.js';
247
297
  export { roomDraftRevision } from './identity.js';
298
+ export { defineRoomMedia, ROOM_MEDIA } from './media.js';
248
299
  export { unanswered } from './wire.js';
@@ -1,8 +1,7 @@
1
- import { type Document } 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
5
  export declare const MD_MODEL: MdModelIdentity;
7
6
  export type Collection = {
8
7
  text: Readonly<Record<string, string>>;
@@ -15,12 +14,34 @@ export type Composition = {
15
14
  roots: readonly string[];
16
15
  model: ModelState;
17
16
  } | null;
17
+ typedPaths: readonly TypedPath[];
18
18
  };
19
- export declare function selected(composition: Composition, path: string): boolean;
20
- export declare function governing(composition: Composition, path: string): ModelState;
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;
30
+ };
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;
21
42
  export declare function collectionOf(text: Readonly<Record<string, string>>, composition: Composition): Collection;
22
43
  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>;
24
44
  export declare function validRoot(root: unknown): root is string;
25
45
  export declare function available(composition: Composition): boolean;
46
+ export {};
26
47
  //# sourceMappingURL=collection.d.ts.map
@@ -1 +1 @@
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"}
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"}
@@ -1,8 +1,29 @@
1
- import { parse, VERSION } from '@agentshouse/mdmodel';
1
+ import { definitionAt, parse, VERSION, } from '@agentshouse/mdmodel';
2
2
  import { beneath, normalize } from './paths.js';
3
- import { keysIn, sortedKeys } from './shared.js';
4
- import { ROW_WEIGHT } from './turn.js';
3
+ import { hashed } from './observation.js';
4
+ import { sortedKeys } from './shared.js';
5
5
  export const MD_MODEL = { identity: '@agentshouse/mdmodel', version: VERSION };
6
+ const typesPrinted = new WeakMap();
7
+ function typesPrint(model) {
8
+ if (model.status === 'unavailable')
9
+ return '';
10
+ let print = typesPrinted.get(model.types);
11
+ if (print === undefined) {
12
+ print = hashed(JSON.stringify(model.types)).toString(36);
13
+ typesPrinted.set(model.types, print);
14
+ }
15
+ return print;
16
+ }
17
+ export function composedOf(composition) {
18
+ const { model, selection } = composition;
19
+ return {
20
+ composition,
21
+ fingerprint: JSON.stringify([
22
+ typesPrint(model),
23
+ selection === null ? null : [selection.roots, typesPrint(selection.model)],
24
+ ]),
25
+ };
26
+ }
6
27
  export function selected(composition, path) {
7
28
  return (composition.selection !== null &&
8
29
  composition.selection.roots.some((root) => beneath(root, path)));
@@ -12,6 +33,16 @@ export function governing(composition, path) {
12
33
  ? composition.selection.model
13
34
  : composition.model;
14
35
  }
36
+ function definitionsUnder(composition, path, typedPaths, typesOf) {
37
+ const types = typesOf(governing(composition, path));
38
+ return types === null ? () => undefined : definitionAt({ types }, path, typedPaths);
39
+ }
40
+ export function definitionsAt(composition, path) {
41
+ return definitionsUnder(composition, path, composition.typedPaths, (model) => model.status === 'unavailable' ? null : model.types);
42
+ }
43
+ export function definitionsIn(room, path, typedPaths) {
44
+ return definitionsUnder({ model: room.model, selection: room.typedSelection }, path, typedPaths, ({ types }) => types === null ? null : Object.fromEntries(types.map((type) => [type.name, type])));
45
+ }
15
46
  export function collectionOf(text, composition) {
16
47
  const parsed = new Map();
17
48
  return {
@@ -23,7 +54,7 @@ export function collectionOf(text, composition) {
23
54
  const content = text[path];
24
55
  if (content === undefined)
25
56
  return undefined;
26
- const read = parse(content, path);
57
+ const read = parse(content, path, definitionsAt(composition, path));
27
58
  parsed.set(path, read.ok ? read.document : null);
28
59
  return read.ok ? read.document : undefined;
29
60
  },
@@ -39,25 +70,9 @@ export function* documentsOf(collection) {
39
70
  }
40
71
  })();
41
72
  }
42
- export function* unreadable(text, paths = null) {
43
- const named = paths ?? (yield* keysIn(text));
44
- let least = null;
45
- for (const path of named) {
46
- const content = Object.hasOwn(text, path) ? text[path] : undefined;
47
- if (content === undefined)
48
- continue;
49
- const read = parse(content, path);
50
- if (!read.ok && (least === null || path < least.path)) {
51
- least = { path, refused: { kind: 'refused', refusal: read.refusal } };
52
- }
53
- yield ROW_WEIGHT + content.length;
54
- }
55
- return least?.refused ?? null;
56
- }
57
73
  export function validRoot(root) {
58
74
  return typeof root === 'string' && normalize(root) === root;
59
75
  }
60
76
  export function available(composition) {
61
- return (composition.model.status !== 'unavailable' &&
62
- (composition.selection === null || composition.selection.model.status !== 'unavailable'));
77
+ return composition.model.status !== 'unavailable';
63
78
  }
package/dist/compile.d.ts CHANGED
@@ -1,16 +1,16 @@
1
+ import { sql } from '@agentshouse/mdmodel';
1
2
  import type { Plan, QueryRows } from './query.js';
2
- import type { Connection, Value } from './tables.js';
3
+ import type { Connection } from './tables.js';
3
4
  export type QueryRoom = {
4
5
  readonly locator: string;
5
6
  readonly key: number;
6
7
  };
7
- export type Fragment = {
8
- readonly sql: string;
9
- readonly bind: readonly Value[];
10
- };
8
+ type Fragment = sql.Fragment;
9
+ export declare const VISIBLE: (alias: string) => string;
10
+ export declare function within(alias: string, path: string): Fragment;
11
11
  export type QueryAnswer = QueryRows & {
12
12
  readonly more?: string;
13
13
  };
14
- export declare function selected(connection: Connection, plan: Plan, rooms: readonly QueryRoom[]): Fragment;
15
14
  export declare function answerQuery(connection: Connection, plan: Plan, rooms: readonly QueryRoom[], budget?: number | null): QueryAnswer;
15
+ export {};
16
16
  //# sourceMappingURL=compile.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAOV,IAAI,EAGJ,SAAS,EAIV,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,UAAU,EAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAU1D,MAAM,MAAM,SAAS,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3E,MAAM,MAAM,QAAQ,GAAG;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,KAAK,EAAE,CAAA;CAAE,CAAC;AA+pBjF,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AA8SjE,wBAAgB,QAAQ,CACtB,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,SAAS,SAAS,EAAE,GAC1B,QAAQ,CAEV;AAED,wBAAgB,WAAW,CACzB,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,SAAS,SAAS,EAAE,EAC3B,MAAM,GAAE,MAAM,GAAG,IAAW,GAC3B,WAAW,CAUb"}
1
+ {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,GAAG,EAOJ,MAAM,sBAAsB,CAAC;AAI9B,OAAO,KAAK,EAAE,IAAI,EAAuC,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvF,OAAO,KAAK,EAAE,UAAU,EAAc,MAAM,aAAa,CAAC;AAG1D,MAAM,MAAM,SAAS,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3E,KAAK,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;AAI7B,eAAO,MAAM,OAAO,UAAW,MAAM,KAAG,MACkC,CAAC;AAa3E,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAM5D;AA2cD,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AA6ZjE,wBAAgB,WAAW,CACzB,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,SAAS,SAAS,EAAE,EAC3B,MAAM,GAAE,MAAM,GAAG,IAAW,GAC3B,WAAW,CAUb"}