@agentshouse/mdruntime 0.1.0-cb1f56e16291b → 0.1.0-cb3bb3b233fa1

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