@agentshouse/mdruntime 0.1.0-c2aaa9c0e3ca4 → 0.1.0-c2af3ddcc243b

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 (380) hide show
  1. package/README.md +23 -19
  2. package/dist/acceptance.d.ts +3 -0
  3. package/dist/acceptance.d.ts.map +1 -0
  4. package/dist/acceptance.js +299 -0
  5. package/dist/act-lanes.d.ts +30 -0
  6. package/dist/act-lanes.d.ts.map +1 -0
  7. package/dist/act-lanes.js +225 -0
  8. package/dist/actions.d.ts +26 -0
  9. package/dist/actions.d.ts.map +1 -0
  10. package/dist/actions.js +302 -0
  11. package/dist/adapter.d.ts +176 -97
  12. package/dist/adapter.d.ts.map +1 -1
  13. package/dist/attached-model.d.ts +7 -10
  14. package/dist/attached-model.d.ts.map +1 -1
  15. package/dist/attached-model.js +40 -41
  16. package/dist/binary.d.ts +0 -5
  17. package/dist/binary.d.ts.map +1 -1
  18. package/dist/binary.js +1 -1
  19. package/dist/bootstrap.d.ts +31 -11
  20. package/dist/bootstrap.d.ts.map +1 -1
  21. package/dist/bootstrap.js +311 -89
  22. package/dist/cell.d.ts +6 -0
  23. package/dist/cell.d.ts.map +1 -0
  24. package/dist/cell.js +9 -0
  25. package/dist/chain.d.ts +12 -0
  26. package/dist/chain.d.ts.map +1 -0
  27. package/dist/chain.js +64 -0
  28. package/dist/change-set.d.ts +13 -14
  29. package/dist/change-set.d.ts.map +1 -1
  30. package/dist/change-set.js +17 -63
  31. package/dist/change.d.ts +32 -1
  32. package/dist/change.d.ts.map +1 -1
  33. package/dist/change.js +14 -3
  34. package/dist/chat-types.d.ts +5 -0
  35. package/dist/chat-types.d.ts.map +1 -0
  36. package/dist/chat-types.js +13 -0
  37. package/dist/client.d.ts +46 -28
  38. package/dist/client.d.ts.map +1 -1
  39. package/dist/client.js +133 -27
  40. package/dist/collection.d.ts +31 -9
  41. package/dist/collection.d.ts.map +1 -1
  42. package/dist/collection.js +49 -80
  43. package/dist/compile.d.ts +18 -0
  44. package/dist/compile.d.ts.map +1 -0
  45. package/dist/compile.js +724 -0
  46. package/dist/connection.d.ts +8 -116
  47. package/dist/connection.d.ts.map +1 -1
  48. package/dist/connection.js +111 -2412
  49. package/dist/context.d.ts +2 -0
  50. package/dist/context.d.ts.map +1 -0
  51. package/dist/{chat/context.js → context.js} +1 -4
  52. package/dist/conversation-live.d.ts +140 -0
  53. package/dist/conversation-live.d.ts.map +1 -0
  54. package/dist/conversation-live.js +250 -0
  55. package/dist/conversation-row.d.ts +33 -0
  56. package/dist/conversation-row.d.ts.map +1 -0
  57. package/dist/conversation-row.js +53 -0
  58. package/dist/conversation.d.ts +80 -45
  59. package/dist/conversation.d.ts.map +1 -1
  60. package/dist/conversation.js +1090 -588
  61. package/dist/declaration.d.ts +10 -0
  62. package/dist/declaration.d.ts.map +1 -0
  63. package/dist/declaration.js +24 -0
  64. package/dist/digest.d.ts +7 -0
  65. package/dist/digest.d.ts.map +1 -0
  66. package/dist/digest.js +113 -0
  67. package/dist/discovery.d.ts +10 -0
  68. package/dist/discovery.d.ts.map +1 -0
  69. package/dist/discovery.js +150 -0
  70. package/dist/durability.d.ts +23 -1
  71. package/dist/durability.d.ts.map +1 -1
  72. package/dist/durability.js +9 -0
  73. package/dist/entry.d.ts +20 -0
  74. package/dist/entry.d.ts.map +1 -0
  75. package/dist/entry.js +161 -0
  76. package/dist/expectation.d.ts +26 -13
  77. package/dist/expectation.d.ts.map +1 -1
  78. package/dist/expectation.js +72 -19
  79. package/dist/failure.d.ts +3 -0
  80. package/dist/failure.d.ts.map +1 -1
  81. package/dist/failure.js +6 -0
  82. package/dist/figures.d.ts +49 -0
  83. package/dist/figures.d.ts.map +1 -0
  84. package/dist/figures.js +197 -0
  85. package/dist/file.d.ts +2 -19
  86. package/dist/file.d.ts.map +1 -1
  87. package/dist/file.js +7 -122
  88. package/dist/holdings.d.ts +29 -0
  89. package/dist/holdings.d.ts.map +1 -0
  90. package/dist/holdings.js +95 -0
  91. package/dist/host.d.ts +28 -4
  92. package/dist/host.d.ts.map +1 -1
  93. package/dist/host.js +171 -27
  94. package/dist/index.d.ts +40 -13
  95. package/dist/index.d.ts.map +1 -1
  96. package/dist/index.js +18 -2
  97. package/dist/install.d.ts +54 -0
  98. package/dist/install.d.ts.map +1 -0
  99. package/dist/install.js +530 -0
  100. package/dist/lifecycle.d.ts +7 -0
  101. package/dist/lifecycle.d.ts.map +1 -0
  102. package/dist/lifecycle.js +277 -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 +32 -0
  112. package/dist/lost.d.ts +5 -0
  113. package/dist/lost.d.ts.map +1 -0
  114. package/dist/lost.js +49 -0
  115. package/dist/media.d.ts +8 -0
  116. package/dist/media.d.ts.map +1 -0
  117. package/dist/media.js +218 -0
  118. package/dist/memory.d.ts +22 -6
  119. package/dist/memory.d.ts.map +1 -1
  120. package/dist/memory.js +282 -101
  121. package/dist/messages.d.ts +56 -0
  122. package/dist/messages.d.ts.map +1 -0
  123. package/dist/messages.js +158 -0
  124. package/dist/model.d.ts +11 -12
  125. package/dist/model.d.ts.map +1 -1
  126. package/dist/model.js +7 -15
  127. package/dist/models.d.ts +10 -0
  128. package/dist/models.d.ts.map +1 -0
  129. package/dist/models.js +153 -0
  130. package/dist/name.d.ts +4 -0
  131. package/dist/name.d.ts.map +1 -0
  132. package/dist/name.js +122 -0
  133. package/dist/observation.d.ts +22 -4
  134. package/dist/observation.d.ts.map +1 -1
  135. package/dist/observation.js +127 -26
  136. package/dist/opened.d.ts +22 -0
  137. package/dist/opened.d.ts.map +1 -0
  138. package/dist/opened.js +107 -0
  139. package/dist/opening.d.ts +4 -0
  140. package/dist/opening.d.ts.map +1 -0
  141. package/dist/opening.js +53 -0
  142. package/dist/outcome.d.ts +56 -8
  143. package/dist/outcome.d.ts.map +1 -1
  144. package/dist/outcome.js +58 -0
  145. package/dist/overlay.d.ts +8 -4
  146. package/dist/overlay.d.ts.map +1 -1
  147. package/dist/overlay.js +136 -192
  148. package/dist/page-metadata.d.ts +8 -0
  149. package/dist/page-metadata.d.ts.map +1 -0
  150. package/dist/page-metadata.js +19 -0
  151. package/dist/parts.d.ts +4 -0
  152. package/dist/parts.d.ts.map +1 -0
  153. package/dist/parts.js +13 -0
  154. package/dist/paths.d.ts +2 -0
  155. package/dist/paths.d.ts.map +1 -1
  156. package/dist/paths.js +26 -0
  157. package/dist/preparation.d.ts +20 -0
  158. package/dist/preparation.d.ts.map +1 -0
  159. package/dist/preparation.js +227 -0
  160. package/dist/presence.d.ts +52 -0
  161. package/dist/presence.d.ts.map +1 -0
  162. package/dist/presence.js +220 -0
  163. package/dist/queries.d.ts +16 -0
  164. package/dist/queries.d.ts.map +1 -0
  165. package/dist/queries.js +282 -0
  166. package/dist/query.d.ts +49 -183
  167. package/dist/query.d.ts.map +1 -1
  168. package/dist/query.js +3 -464
  169. package/dist/{chat/questions.d.ts → questions.d.ts} +5 -7
  170. package/dist/questions.d.ts.map +1 -0
  171. package/dist/{chat/questions.js → questions.js} +11 -7
  172. package/dist/queue.d.ts +40 -0
  173. package/dist/queue.d.ts.map +1 -0
  174. package/dist/queue.js +450 -0
  175. package/dist/reach.d.ts +21 -7
  176. package/dist/reach.d.ts.map +1 -1
  177. package/dist/reach.js +343 -98
  178. package/dist/react.d.ts +21 -6
  179. package/dist/react.d.ts.map +1 -1
  180. package/dist/react.js +40 -18
  181. package/dist/{chat/read.d.ts → read.d.ts} +2 -0
  182. package/dist/read.d.ts.map +1 -0
  183. package/dist/{chat/read.js → read.js} +4 -0
  184. package/dist/readiness.d.ts +49 -0
  185. package/dist/readiness.d.ts.map +1 -0
  186. package/dist/readiness.js +27 -0
  187. package/dist/reads.d.ts +39 -0
  188. package/dist/reads.d.ts.map +1 -0
  189. package/dist/reads.js +178 -0
  190. package/dist/recovery.d.ts +28 -0
  191. package/dist/recovery.d.ts.map +1 -0
  192. package/dist/recovery.js +254 -0
  193. package/dist/refresh.d.ts +17 -14
  194. package/dist/refresh.d.ts.map +1 -1
  195. package/dist/refresh.js +145 -53
  196. package/dist/refusal.d.ts +5 -0
  197. package/dist/refusal.d.ts.map +1 -0
  198. package/dist/refusal.js +55 -0
  199. package/dist/replica.d.ts +50 -33
  200. package/dist/replica.d.ts.map +1 -1
  201. package/dist/replica.js +339 -162
  202. package/dist/retried.d.ts +30 -0
  203. package/dist/retried.d.ts.map +1 -0
  204. package/dist/retried.js +72 -0
  205. package/dist/room-draft.d.ts +39 -10
  206. package/dist/room-draft.d.ts.map +1 -1
  207. package/dist/room-draft.js +194 -118
  208. package/dist/room-drafts.d.ts +24 -0
  209. package/dist/room-drafts.d.ts.map +1 -0
  210. package/dist/room-drafts.js +217 -0
  211. package/dist/rows.d.ts +30 -37
  212. package/dist/rows.d.ts.map +1 -1
  213. package/dist/rows.js +60 -128
  214. package/dist/runtime.d.ts +34 -0
  215. package/dist/runtime.d.ts.map +1 -0
  216. package/dist/runtime.js +1 -0
  217. package/dist/save.d.ts +42 -43
  218. package/dist/save.d.ts.map +1 -1
  219. package/dist/save.js +800 -259
  220. package/dist/saves.d.ts +32 -0
  221. package/dist/saves.d.ts.map +1 -0
  222. package/dist/saves.js +410 -0
  223. package/dist/search.d.ts +15 -55
  224. package/dist/search.d.ts.map +1 -1
  225. package/dist/search.js +10 -121
  226. package/dist/seed.d.ts +25 -0
  227. package/dist/seed.d.ts.map +1 -0
  228. package/dist/seed.js +145 -0
  229. package/dist/shared.d.ts +10 -0
  230. package/dist/shared.d.ts.map +1 -0
  231. package/dist/shared.js +339 -0
  232. package/dist/shown.d.ts +33 -0
  233. package/dist/shown.d.ts.map +1 -0
  234. package/dist/shown.js +295 -0
  235. package/dist/socket/admission.d.ts +7 -0
  236. package/dist/socket/admission.d.ts.map +1 -0
  237. package/dist/socket/admission.js +39 -0
  238. package/dist/socket/answers.d.ts +6 -0
  239. package/dist/socket/answers.d.ts.map +1 -0
  240. package/dist/socket/answers.js +20 -0
  241. package/dist/socket/lanes.d.ts +28 -0
  242. package/dist/socket/lanes.d.ts.map +1 -0
  243. package/dist/socket/lanes.js +103 -0
  244. package/dist/socket/reads.d.ts +10 -0
  245. package/dist/socket/reads.d.ts.map +1 -0
  246. package/dist/socket/reads.js +31 -0
  247. package/dist/socket/session.d.ts +38 -0
  248. package/dist/socket/session.d.ts.map +1 -0
  249. package/dist/socket/session.js +23 -0
  250. package/dist/socket.d.ts +67 -0
  251. package/dist/socket.d.ts.map +1 -0
  252. package/dist/socket.js +164 -0
  253. package/dist/source.d.ts +54 -0
  254. package/dist/source.d.ts.map +1 -0
  255. package/dist/source.js +82 -0
  256. package/dist/status.d.ts +5 -2
  257. package/dist/status.d.ts.map +1 -1
  258. package/dist/status.js +3 -7
  259. package/dist/store/installs.d.ts +30 -0
  260. package/dist/store/installs.d.ts.map +1 -0
  261. package/dist/store/installs.js +34 -0
  262. package/dist/store/readiness.d.ts +10 -0
  263. package/dist/store/readiness.d.ts.map +1 -0
  264. package/dist/store/readiness.js +52 -0
  265. package/dist/store/records.d.ts +214 -0
  266. package/dist/store/records.d.ts.map +1 -0
  267. package/dist/store/records.js +438 -0
  268. package/dist/store/room-held.d.ts +8 -0
  269. package/dist/store/room-held.d.ts.map +1 -0
  270. package/dist/store/room-held.js +17 -0
  271. package/dist/store/space.d.ts +11 -0
  272. package/dist/store/space.d.ts.map +1 -0
  273. package/dist/store/space.js +41 -0
  274. package/dist/store/watchers.d.ts +17 -0
  275. package/dist/store/watchers.d.ts.map +1 -0
  276. package/dist/store/watchers.js +56 -0
  277. package/dist/store/writes.d.ts +24 -0
  278. package/dist/store/writes.d.ts.map +1 -0
  279. package/dist/store/writes.js +125 -0
  280. package/dist/store.d.ts +111 -117
  281. package/dist/store.d.ts.map +1 -1
  282. package/dist/store.js +161 -488
  283. package/dist/stored.d.ts +157 -0
  284. package/dist/stored.d.ts.map +1 -0
  285. package/dist/stored.js +649 -0
  286. package/dist/surface.d.ts +88 -0
  287. package/dist/surface.d.ts.map +1 -0
  288. package/dist/surface.js +220 -0
  289. package/dist/sync.d.ts +19 -0
  290. package/dist/sync.d.ts.map +1 -0
  291. package/dist/sync.js +535 -0
  292. package/dist/tables.d.ts +415 -0
  293. package/dist/tables.d.ts.map +1 -0
  294. package/dist/tables.js +761 -0
  295. package/dist/tallies.d.ts +18 -0
  296. package/dist/tallies.d.ts.map +1 -0
  297. package/dist/tallies.js +129 -0
  298. package/dist/transfer.d.ts +0 -5
  299. package/dist/transfer.d.ts.map +1 -1
  300. package/dist/turn.d.ts +9 -0
  301. package/dist/turn.d.ts.map +1 -0
  302. package/dist/turn.js +75 -0
  303. package/dist/validation.d.ts +29 -0
  304. package/dist/validation.d.ts.map +1 -0
  305. package/dist/validation.js +104 -0
  306. package/dist/windows.d.ts +11 -0
  307. package/dist/windows.d.ts.map +1 -0
  308. package/dist/windows.js +16 -0
  309. package/dist/wire.d.ts +228 -36
  310. package/dist/wire.d.ts.map +1 -1
  311. package/dist/wire.js +75 -33
  312. package/package.json +23 -19
  313. package/AGENTS.md +0 -299
  314. package/dist/attempt.d.ts +0 -16
  315. package/dist/attempt.d.ts.map +0 -1
  316. package/dist/attempt.js +0 -57
  317. package/dist/chat/acts.d.ts +0 -34
  318. package/dist/chat/acts.d.ts.map +0 -1
  319. package/dist/chat/acts.js +0 -36
  320. package/dist/chat/context.d.ts +0 -3
  321. package/dist/chat/context.d.ts.map +0 -1
  322. package/dist/chat/input.d.ts +0 -9
  323. package/dist/chat/input.d.ts.map +0 -1
  324. package/dist/chat/input.js +0 -99
  325. package/dist/chat/kit.d.ts +0 -60
  326. package/dist/chat/kit.d.ts.map +0 -1
  327. package/dist/chat/kit.js +0 -123
  328. package/dist/chat/lasting.d.ts +0 -6
  329. package/dist/chat/lasting.d.ts.map +0 -1
  330. package/dist/chat/lasting.js +0 -19
  331. package/dist/chat/list.d.ts +0 -20
  332. package/dist/chat/list.d.ts.map +0 -1
  333. package/dist/chat/list.js +0 -59
  334. package/dist/chat/markdown.d.ts +0 -19
  335. package/dist/chat/markdown.d.ts.map +0 -1
  336. package/dist/chat/markdown.js +0 -187
  337. package/dist/chat/message.d.ts +0 -6
  338. package/dist/chat/message.d.ts.map +0 -1
  339. package/dist/chat/message.js +0 -192
  340. package/dist/chat/messages.d.ts +0 -21
  341. package/dist/chat/messages.d.ts.map +0 -1
  342. package/dist/chat/messages.js +0 -151
  343. package/dist/chat/name.d.ts +0 -6
  344. package/dist/chat/name.d.ts.map +0 -1
  345. package/dist/chat/name.js +0 -37
  346. package/dist/chat/opened.d.ts +0 -11
  347. package/dist/chat/opened.d.ts.map +0 -1
  348. package/dist/chat/opened.js +0 -17
  349. package/dist/chat/overlay.d.ts +0 -31
  350. package/dist/chat/overlay.d.ts.map +0 -1
  351. package/dist/chat/overlay.js +0 -97
  352. package/dist/chat/parts.d.ts +0 -57
  353. package/dist/chat/parts.d.ts.map +0 -1
  354. package/dist/chat/parts.js +0 -119
  355. package/dist/chat/process.d.ts +0 -20
  356. package/dist/chat/process.d.ts.map +0 -1
  357. package/dist/chat/process.js +0 -32
  358. package/dist/chat/provider.d.ts +0 -63
  359. package/dist/chat/provider.d.ts.map +0 -1
  360. package/dist/chat/provider.js +0 -645
  361. package/dist/chat/question.d.ts +0 -9
  362. package/dist/chat/question.d.ts.map +0 -1
  363. package/dist/chat/question.js +0 -80
  364. package/dist/chat/questions.d.ts.map +0 -1
  365. package/dist/chat/read.d.ts.map +0 -1
  366. package/dist/chat/ready.d.ts +0 -33
  367. package/dist/chat/ready.d.ts.map +0 -1
  368. package/dist/chat/ready.js +0 -91
  369. package/dist/chat/style.d.ts +0 -4
  370. package/dist/chat/style.d.ts.map +0 -1
  371. package/dist/chat/style.js +0 -302
  372. package/dist/chat.d.ts +0 -14
  373. package/dist/chat.d.ts.map +0 -1
  374. package/dist/chat.js +0 -8
  375. package/dist/log.d.ts +0 -5
  376. package/dist/log.d.ts.map +0 -1
  377. package/dist/log.js +0 -14
  378. package/dist/read-side.d.ts +0 -18
  379. package/dist/read-side.d.ts.map +0 -1
  380. package/dist/read-side.js +0 -440
@@ -0,0 +1,282 @@
1
+ import { identityOf } from '@agentshouse/mdmodel';
2
+ import { ROOM_TOTALS } from './figures.js';
3
+ import { roomInFlight } from './install.js';
4
+ import { compositionFor, roomFacts } from './listing.js';
5
+ import { lockedRooms } from './locks.js';
6
+ import { OFFLINE, UNCERTAIN, failure } from './outcome.js';
7
+ import { connectionNow, prepare, roomsOfReach } from './preparation.js';
8
+ import { planWithin, } from './query.js';
9
+ import { planReach } from './reach.js';
10
+ import { refuse } from './refusal.js';
11
+ import { documentKey } from './rows.js';
12
+ import { searchPlanOf } from './search.js';
13
+ import { seedApplies, seededResult, watchSeeded } from './seed.js';
14
+ import { capped, MAXIMUM_WINDOW } from './windows.js';
15
+ const QUERY_BYTES = 1 << 20;
16
+ function everyRoom({ presence }, held) {
17
+ return [
18
+ ...new Set([
19
+ ...presence.rooms().map(({ locator }) => locator),
20
+ ...held.rooms.keys(),
21
+ ...held.queues.keys(),
22
+ ]),
23
+ ];
24
+ }
25
+ function reachedRooms(runtime, plan, held) {
26
+ const reached = plan.reach === null ? null : roomsOfReach(plan.reach);
27
+ const named = plan.rooms ?? (reached === null ? everyRoom(runtime, held) : [...reached]);
28
+ return [...new Set(named)]
29
+ .filter((locator) => (reached === null || reached.has(locator)) && !plan.locked.includes(locator))
30
+ .sort();
31
+ }
32
+ function awaited({ socket, presence }, locator) {
33
+ return (!socket.session.now().roomsListed || presence.room(locator)?.replica.admission === 'admitted');
34
+ }
35
+ function coveredRooms(runtime, locators, whole, held) {
36
+ const { store, socket } = runtime;
37
+ if (locators.length === 0 && whole && !socket.session.now().roomsListed)
38
+ return { pending: [] };
39
+ const pending = [];
40
+ const coverage = [];
41
+ const overlay = [];
42
+ const read = [];
43
+ for (const locator of locators) {
44
+ const replica = held.rooms.get(locator);
45
+ if (replica === undefined) {
46
+ if (awaited(runtime, locator))
47
+ pending.push({ room: locator, awaits: 'acquisition' });
48
+ continue;
49
+ }
50
+ if (!replica.indexed) {
51
+ pending.push({ room: locator, awaits: 'preparation' });
52
+ continue;
53
+ }
54
+ coverage.push({
55
+ room: locator,
56
+ generation: replica.transfer,
57
+ current: !roomInFlight(store, locator),
58
+ });
59
+ read.push({ locator, key: replica.key });
60
+ for (const id of held.queues.get(locator) ?? [])
61
+ overlay.push(id);
62
+ }
63
+ if (pending.length > 0)
64
+ return { pending };
65
+ return { coverage: { rooms: coverage, overlay }, rooms: read };
66
+ }
67
+ function covered(runtime, plan, held) {
68
+ return coveredRooms(runtime, reachedRooms(runtime, plan, held), plan.rooms === null && plan.reach === null, held);
69
+ }
70
+ function awaitPreparation(runtime, cover) {
71
+ if (!('pending' in cover))
72
+ return;
73
+ const waiting = cover.pending.filter(({ awaits }) => awaits === 'preparation');
74
+ if (waiting.length > 0) {
75
+ prepare(runtime, waiting.map(({ room }) => room));
76
+ }
77
+ }
78
+ export async function figuresCover(runtime) {
79
+ const held = await runtime.store.covering();
80
+ const locked = await lockedRooms(runtime);
81
+ const cover = coveredRooms(runtime, everyRoom(runtime, held)
82
+ .filter((locator) => !locked.includes(locator))
83
+ .sort(), true, held);
84
+ awaitPreparation(runtime, cover);
85
+ return 'pending' in cover ? cover : { rooms: cover.rooms };
86
+ }
87
+ function sameCover(left, right) {
88
+ return JSON.stringify(left) === JSON.stringify(right);
89
+ }
90
+ async function windowRows(local, plan, rooms, unchanged) {
91
+ const first = await local.query(plan, rooms, QUERY_BYTES);
92
+ if (first.more === undefined || !('documents' in first)) {
93
+ const { more: _more, ...rows } = first;
94
+ return rows;
95
+ }
96
+ const documents = [...first.documents];
97
+ for (let more = first.more; more !== undefined;) {
98
+ if (!unchanged())
99
+ return null;
100
+ const page = await local.query({
101
+ ...plan,
102
+ after: { text: more, values: JSON.parse(more) },
103
+ limit: plan.limit === null ? null : plan.limit - documents.length,
104
+ total: false,
105
+ }, rooms, QUERY_BYTES);
106
+ if (!('documents' in page))
107
+ return null;
108
+ documents.push(...page.documents);
109
+ more = page.more;
110
+ if (more === undefined) {
111
+ return {
112
+ documents,
113
+ ...(page.next === undefined ? {} : { next: page.next }),
114
+ ...(first.total === undefined ? {} : { total: first.total }),
115
+ };
116
+ }
117
+ }
118
+ return null;
119
+ }
120
+ function freeTextAsked(plan) {
121
+ return plan.shape.kind === 'documents' && (plan.shape.sections !== null || plan.shape.preamble);
122
+ }
123
+ async function composedRooms(runtime, plan, rooms) {
124
+ if (!freeTextAsked(plan))
125
+ return rooms;
126
+ const held = await runtime.store.rooms(rooms.map(({ locator }) => locator));
127
+ return rooms.map((room) => {
128
+ const stored = held.get(room.locator);
129
+ return stored === undefined
130
+ ? room
131
+ : { ...room, composition: compositionFor(runtime, stored.record) };
132
+ });
133
+ }
134
+ async function coveredRows(runtime, plan, cover) {
135
+ const { store } = runtime;
136
+ for (;;) {
137
+ const before = await cover();
138
+ if ('pending' in before)
139
+ return { pending: before };
140
+ const local = await store.open();
141
+ const keys = before.rooms.map(({ key }) => key);
142
+ const changes = local.changes(keys);
143
+ const current = () => local.changes(keys) === changes;
144
+ const rows = await windowRows(local, plan, await composedRooms(runtime, plan, before.rooms), current);
145
+ const after = await cover();
146
+ if (rows !== null && sameCover(before, after))
147
+ return { rows, cover: before, current };
148
+ }
149
+ }
150
+ function keyedOf(rows, coverage) {
151
+ if ('groups' in rows) {
152
+ return {
153
+ result: { ...rows, coverage },
154
+ keys: rows.groups.map((group) => JSON.stringify(group.key)),
155
+ };
156
+ }
157
+ return {
158
+ result: { ...rows, coverage },
159
+ keys: rows.documents.map((document) => documentKey(document.room, document.path)),
160
+ };
161
+ }
162
+ export async function answeredPlan(runtime, plan, cover) {
163
+ const answered = await coveredRows(runtime, plan, cover);
164
+ if ('pending' in answered) {
165
+ const pending = answered.pending;
166
+ return { result: pending, keys: [], current: () => true };
167
+ }
168
+ const held = answered.cover;
169
+ return { ...keyedOf(answered.rows, held.coverage), current: answered.current };
170
+ }
171
+ async function coverNow(runtime, plan) {
172
+ const cover = covered(runtime, plan, await runtime.store.covering());
173
+ awaitPreparation(runtime, cover);
174
+ return cover;
175
+ }
176
+ export async function rowsQuery(runtime, plan) {
177
+ const held = await runtime.store.covering();
178
+ const before = covered(runtime, plan, held);
179
+ awaitPreparation(runtime, before);
180
+ const seeded = seedApplies(runtime, plan, held);
181
+ if (seeded !== null)
182
+ return seededResult(seeded).result;
183
+ if ('pending' in before)
184
+ return before;
185
+ const answered = await coveredRows(runtime, plan, () => coverNow(runtime, plan));
186
+ if ('pending' in answered)
187
+ return answered.pending;
188
+ const shownCover = answered.cover;
189
+ return { ...answered.rows, coverage: shownCover.coverage };
190
+ }
191
+ export async function planned(runtime, input, reach) {
192
+ const plan = planWithin(input, await roomFacts(runtime, reach), planReach(reach));
193
+ const named = plan.paths !== null &&
194
+ plan.rooms !== null &&
195
+ plan.paths.length * plan.rooms.length <= MAXIMUM_WINDOW;
196
+ return plan.limit === null && named ? plan : { ...plan, limit: capped(plan.limit) };
197
+ }
198
+ export async function roomTallies(runtime, rooms, since) {
199
+ return runtime.store.ask({
200
+ kind: 'replica.tallies',
201
+ totals: { ...(await planned(runtime, ROOM_TOTALS, null)), limit: null },
202
+ rooms,
203
+ since,
204
+ });
205
+ }
206
+ export function watchPlan(runtime, plan, deliver, fail) {
207
+ return watchSeeded(runtime, plan, deliver, (behind, answered) => runtime.liveQueries.watch(plan, identityOf(plan), (held) => {
208
+ const cover = covered(runtime, plan, held);
209
+ awaitPreparation(runtime, cover);
210
+ return behind(cover, held);
211
+ }, answered, fail));
212
+ }
213
+ export function watchPlanned(runtime, planning, deliver, fail) {
214
+ let stop = null;
215
+ let stopped = false;
216
+ planning.then((plan) => {
217
+ if (!stopped)
218
+ stop = watchPlan(runtime, plan, deliver, fail);
219
+ }, (error) => {
220
+ if (!stopped)
221
+ fail(error);
222
+ });
223
+ return () => {
224
+ stopped = true;
225
+ stop?.();
226
+ };
227
+ }
228
+ export async function searched(runtime, input, reach) {
229
+ const { store, socket } = runtime;
230
+ const { session } = socket;
231
+ const asked = searchPlanOf(input);
232
+ await socket.ready;
233
+ const search = socket.search();
234
+ if (search === undefined) {
235
+ return {
236
+ kind: 'undeclared',
237
+ code: 'action-undeclared',
238
+ fields: { name: 'search' },
239
+ retryable: false,
240
+ };
241
+ }
242
+ if (socket.closed() ||
243
+ session.now().refusal !== null ||
244
+ (await connectionNow(runtime)) !== 'connected')
245
+ return OFFLINE;
246
+ const reached = reach === null ? null : new Set(reach.rooms);
247
+ const named = asked.rooms === null
248
+ ? reached === null
249
+ ? null
250
+ : [...reached]
251
+ : asked.rooms.filter((room) => reached === null || reached.has(room));
252
+ const held = named === null ? null : await store.rooms(named);
253
+ const rooms = named === null ? null : named.filter((room) => held.has(room)).sort();
254
+ if (rooms !== null && rooms.length === 0)
255
+ return { kind: 'found', documents: [] };
256
+ try {
257
+ await socket.authorize();
258
+ }
259
+ catch {
260
+ return UNCERTAIN;
261
+ }
262
+ const { closed, authorization, refusal } = session.now();
263
+ if (closed || authorization === undefined || refusal !== null)
264
+ return UNCERTAIN;
265
+ try {
266
+ const result = await search(authorization, { text: asked.text, rooms });
267
+ if (result.kind === 'revoked-authorization')
268
+ await refuse(runtime, 'revoked-authorization');
269
+ if (result.kind === 'rejected')
270
+ return result;
271
+ if (result.kind !== 'found')
272
+ return failure(result);
273
+ const kept = rooms === null ? null : new Set(rooms);
274
+ return {
275
+ kind: 'found',
276
+ documents: result.documents.filter((hit) => kept === null || kept.has(hit.room)),
277
+ };
278
+ }
279
+ catch {
280
+ return UNCERTAIN;
281
+ }
282
+ }
package/dist/query.d.ts CHANGED
@@ -1,84 +1,7 @@
1
- import { type Definition } from '@agentshouse/mdmodel';
1
+ import { type HeldRooms, type QueryPlan } from '@agentshouse/mdmodel';
2
2
  import type { HeadChange } from './adapter.js';
3
3
  import type { BinaryFileRecord } from './binary.js';
4
- export type Value = string | number | boolean | null;
5
- export type Predicate = Value | {
6
- $eq: Value;
7
- } | {
8
- $ne: Value;
9
- } | {
10
- $in: readonly Value[];
11
- } | {
12
- $nin: readonly Value[];
13
- } | {
14
- $gt?: Value;
15
- $gte?: Value;
16
- $lt?: Value;
17
- $lte?: Value;
18
- } | {
19
- $all: readonly Value[];
20
- } | {
21
- $size: number;
22
- } | {
23
- $exists: boolean;
24
- };
25
- export type Where = {
26
- $and?: readonly Where[];
27
- $or?: readonly Where[];
28
- [field: string]: Predicate | readonly Where[] | undefined;
29
- };
30
- export type Related = {
31
- types?: readonly string[];
32
- where?: Where;
33
- pathPrefix?: string;
34
- };
35
- export type Filter = {
36
- rooms?: readonly string[];
37
- types?: readonly string[];
38
- where?: Where;
39
- pathPrefix?: string;
40
- hop?: Related & {
41
- field: string;
42
- };
43
- backlinks?: Related & {
44
- field?: string;
45
- };
46
- };
47
- export type Key = 'room' | 'path' | 'type' | {
48
- field: string;
49
- };
50
- export type Select = 'all' | {
51
- fields?: 'all' | readonly string[];
52
- sections?: 'all' | readonly string[];
53
- preamble?: true;
54
- markdown?: true;
55
- backlinks?: true;
56
- change?: true;
57
- };
58
- export type OrderOptions = {
59
- nulls?: 'first' | 'last';
60
- stringSort?: 'lexical' | 'locale';
61
- locale?: string;
62
- localeOptions?: Readonly<Record<string, unknown>>;
63
- };
64
- export type Direction = 'asc' | 'desc';
65
- export type DocumentQuery = Filter & {
66
- select: Select;
67
- orderBy?: readonly ({
68
- by: Key;
69
- direction?: Direction;
70
- } & OrderOptions)[];
71
- limit?: number;
72
- };
73
- export type GroupQuery = Filter & {
74
- groupBy: readonly Exclude<Key, 'path'>[];
75
- orderBy?: readonly {
76
- by: 'count' | Exclude<Key, 'path'>;
77
- direction?: Direction;
78
- }[];
79
- limit?: number;
80
- };
81
- export type LocalQuery = DocumentQuery | GroupQuery;
4
+ import type { Open } from './open.js';
82
5
  export type Backlink = {
83
6
  path: string;
84
7
  type: string;
@@ -94,129 +17,72 @@ export type QueryDocument = {
94
17
  markdown?: string;
95
18
  backlinks?: readonly Backlink[];
96
19
  change?: HeadChange | null;
20
+ fileId?: string | null;
21
+ revision?: string | null;
97
22
  binaryFile?: BinaryFileRecord;
23
+ size?: number | null;
24
+ created?: string | null;
25
+ };
26
+ export type GroupTotal = {
27
+ count: number;
28
+ size: number;
98
29
  };
99
30
  export type QueryGroup = {
100
31
  key: readonly unknown[];
101
32
  count: number;
33
+ documents?: GroupTotal;
34
+ files?: GroupTotal;
35
+ updated?: string | null;
36
+ greatest?: unknown;
102
37
  };
103
- export type DocumentResult = {
104
- documents: readonly QueryDocument[];
105
- };
106
- export type GroupResult = {
107
- groups: readonly QueryGroup[];
38
+ export type CoveredRoom = {
39
+ room: string;
40
+ generation: string;
41
+ current: boolean;
108
42
  };
109
- export type QueryResult = DocumentResult | GroupResult;
110
- export type QueryErrorCode = 'invalid-query' | 'unknown-type' | 'unknown-field' | 'wrong-kind';
111
- export type RoomFacts = {
112
- locator: string;
113
- available: boolean;
114
- types: readonly Definition[];
43
+ export type QueryCoverage = {
44
+ rooms: readonly CoveredRoom[];
45
+ overlay: readonly string[];
115
46
  };
116
- export type HeldRooms = {
117
- listed: boolean;
118
- rooms: readonly RoomFacts[];
47
+ export type Awaits = Open<'acquisition' | 'preparation' | 'unlock'>;
48
+ export type PendingRoom = {
49
+ room: string;
50
+ awaits: Awaits;
119
51
  };
120
- export type Test = {
121
- op: 'eq';
122
- value: Value;
123
- } | {
124
- op: 'ne';
125
- value: Value;
126
- } | {
127
- op: 'in';
128
- values: readonly Value[];
129
- } | {
130
- op: 'nin';
131
- values: readonly Value[];
132
- } | {
133
- op: 'range';
134
- bounds: readonly (readonly ['gt' | 'gte' | 'lt' | 'lte', Value])[];
135
- } | {
136
- op: 'all';
137
- values: readonly Value[];
138
- } | {
139
- op: 'size';
140
- size: number;
141
- } | {
142
- op: 'exists';
143
- exists: boolean;
52
+ export type PendingResult = {
53
+ pending: readonly PendingRoom[];
144
54
  };
145
- export type Condition = {
146
- every: readonly Condition[];
147
- } | {
148
- some: readonly Condition[];
149
- } | {
150
- field: string;
151
- test: Test;
55
+ export type DocumentRows = {
56
+ documents: readonly QueryDocument[];
57
+ next?: string;
58
+ total?: number;
152
59
  };
153
- export type Scope = {
154
- types: readonly string[] | null;
155
- where: Condition | null;
156
- pathPrefix: string | null;
60
+ export type GroupRows = {
61
+ groups: readonly QueryGroup[];
62
+ next?: string;
63
+ total?: number;
157
64
  };
158
- export type KeyPlan = {
159
- of: 'room';
160
- } | {
161
- of: 'path';
162
- } | {
163
- of: 'type';
164
- } | {
165
- of: 'field';
166
- field: string;
65
+ export type QueryRows = DocumentRows | GroupRows;
66
+ export type DocumentResult = DocumentRows & {
67
+ coverage: QueryCoverage;
167
68
  };
168
- export type DocumentShape = {
169
- kind: 'documents';
170
- fields: 'all' | readonly string[] | null;
171
- sections: 'all' | readonly string[] | null;
172
- preamble: boolean;
173
- markdown: boolean;
174
- backlinks: boolean;
175
- change: boolean;
176
- orderBy: readonly {
177
- key: KeyPlan;
178
- options: OrderOptions & {
179
- direction: Direction;
180
- };
181
- }[];
69
+ export type GroupResult = GroupRows & {
70
+ coverage: QueryCoverage;
182
71
  };
183
- export type GroupShape = {
184
- kind: 'groups';
185
- groupBy: readonly KeyPlan[];
186
- orderBy: readonly {
187
- by: 'count' | number;
188
- direction: Direction;
189
- }[];
72
+ export type QueryResult = DocumentResult | GroupResult | PendingResult;
73
+ export type PlanArea = {
74
+ room: string;
75
+ path: string;
76
+ open: readonly string[];
190
77
  };
191
78
  export type PlanReach = {
192
79
  rooms: readonly string[];
193
80
  documents: readonly string[];
81
+ areas: readonly PlanArea[];
194
82
  };
195
- export type Plan = {
196
- rooms: readonly string[] | null;
83
+ export type Plan = QueryPlan & {
197
84
  reach: PlanReach | null;
198
- root: Scope;
199
- hop: (Scope & {
200
- field: string;
201
- }) | null;
202
- backlinks: (Scope & {
203
- field: string | null;
204
- }) | null;
205
- shape: DocumentShape | GroupShape;
206
- limit: number | null;
85
+ locked: readonly string[];
207
86
  };
208
- export declare class QueryError extends Error {
209
- readonly code: QueryErrorCode;
210
- readonly retryable = false;
211
- constructor(code: QueryErrorCode, at: string, problem: string);
212
- }
213
- type Entries = Readonly<Record<string, unknown>>;
214
- export declare function invalid(at: string, problem: string): never;
215
- export declare function plain(value: unknown): value is Entries;
216
- export declare function known(value: Entries, allowed: readonly string[], at: string): void;
217
- export declare function planOf(input: unknown, facts: HeldRooms, reach?: PlanReach | null): Plan;
218
- export declare function limitOf(input: unknown): number | null;
219
- export declare function filterOf(input: unknown, facts: HeldRooms, reach?: PlanReach | null): Plan;
220
- export declare function identityOf(plan: Plan): string;
221
- export {};
87
+ export declare function planWithin(input: unknown, facts: HeldRooms, reach?: PlanReach | null): Plan;
222
88
  //# sourceMappingURL=query.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}