@aeolus-fleet/gateway 0.35.0 → 0.36.1

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 (732) hide show
  1. package/README.md +12 -9
  2. package/dist/adapters/fleet/core-version.d.ts +1 -1
  3. package/dist/adapters/fleet/core-version.js +1 -1
  4. package/dist/adapters/fleet/rest-fleet-door.js +51 -7
  5. package/dist/adapters/fleet/rest-fleet-door.js.map +1 -1
  6. package/dist/adapters/http/front-door.d.ts +1 -1
  7. package/dist/adapters/http/front-door.js +5 -3
  8. package/dist/adapters/http/front-door.js.map +1 -1
  9. package/dist/adapters/http/person-tools.js +27 -9
  10. package/dist/adapters/http/person-tools.js.map +1 -1
  11. package/dist/adapters/http/slack-routes.d.ts +2 -0
  12. package/dist/adapters/http/slack-routes.js +11 -10
  13. package/dist/adapters/http/slack-routes.js.map +1 -1
  14. package/dist/adapters/pagasae/email-channel.d.ts +1 -2
  15. package/dist/adapters/pagasae/email-channel.js +3 -3
  16. package/dist/adapters/pagasae/email-channel.js.map +1 -1
  17. package/dist/adapters/prisma/basket-entries.d.ts +4 -0
  18. package/dist/adapters/prisma/basket-entries.js +53 -0
  19. package/dist/adapters/prisma/basket-entries.js.map +1 -0
  20. package/dist/adapters/prisma/fleet-forgetter.d.ts +1 -1
  21. package/dist/adapters/prisma/fleet-forgetter.js +2 -2
  22. package/dist/adapters/prisma/fleet-forgetter.js.map +1 -1
  23. package/dist/adapters/prisma/generated/browser.d.ts +15 -4
  24. package/dist/adapters/prisma/generated/client.d.ts +15 -4
  25. package/dist/adapters/prisma/generated/internal/class.d.ts +26 -4
  26. package/dist/adapters/prisma/generated/internal/class.js +4 -4
  27. package/dist/adapters/prisma/generated/internal/class.js.map +1 -1
  28. package/dist/adapters/prisma/generated/internal/prismaNamespace.d.ts +228 -43
  29. package/dist/adapters/prisma/generated/internal/prismaNamespace.js +42 -9
  30. package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -1
  31. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +42 -7
  32. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +42 -9
  33. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
  34. package/dist/adapters/prisma/generated/models/BasketEntry.d.ts +1303 -0
  35. package/dist/adapters/prisma/generated/models/BasketEntry.js +2 -0
  36. package/dist/adapters/prisma/generated/models/BasketEntry.js.map +1 -0
  37. package/dist/adapters/prisma/generated/models/ItemOutcome.d.ts +1106 -0
  38. package/dist/adapters/prisma/generated/models/ItemOutcome.js +2 -0
  39. package/dist/adapters/prisma/generated/models/ItemOutcome.js.map +1 -0
  40. package/dist/adapters/prisma/generated/models/OpenedDelivery.d.ts +125 -1
  41. package/dist/adapters/prisma/generated/models/PartySignInNotice.d.ts +32 -1
  42. package/dist/adapters/prisma/generated/models/Route.d.ts +1038 -0
  43. package/dist/adapters/prisma/generated/models/Route.js +2 -0
  44. package/dist/adapters/prisma/generated/models/Route.js.map +1 -0
  45. package/dist/adapters/prisma/generated/models/SlackLink.d.ts +1 -32
  46. package/dist/adapters/prisma/generated/models/SlackPost.d.ts +33 -58
  47. package/dist/adapters/prisma/generated/models.d.ts +3 -1
  48. package/dist/adapters/prisma/item-outcomes.d.ts +4 -0
  49. package/dist/adapters/prisma/item-outcomes.js +28 -0
  50. package/dist/adapters/prisma/item-outcomes.js.map +1 -0
  51. package/dist/adapters/prisma/opened-deliveries.js +4 -0
  52. package/dist/adapters/prisma/opened-deliveries.js.map +1 -1
  53. package/dist/adapters/prisma/routes.d.ts +4 -0
  54. package/dist/adapters/prisma/routes.js +19 -0
  55. package/dist/adapters/prisma/routes.js.map +1 -0
  56. package/dist/adapters/prisma/sign-in-notices.js +11 -5
  57. package/dist/adapters/prisma/sign-in-notices.js.map +1 -1
  58. package/dist/adapters/prisma/slack-links.js +0 -4
  59. package/dist/adapters/prisma/slack-links.js.map +1 -1
  60. package/dist/adapters/prisma/slack-posts.js +37 -3
  61. package/dist/adapters/prisma/slack-posts.js.map +1 -1
  62. package/dist/adapters/slack/slack-messages.d.ts +2 -0
  63. package/dist/adapters/slack/slack-messages.js +29 -3
  64. package/dist/adapters/slack/slack-messages.js.map +1 -1
  65. package/dist/adapters/trpc/router.d.ts +88 -20
  66. package/dist/adapters/trpc/router.js +47 -18
  67. package/dist/adapters/trpc/router.js.map +1 -1
  68. package/dist/adapters/web-push/web-push.js +1 -1
  69. package/dist/adapters/web-push/web-push.js.map +1 -1
  70. package/dist/app.d.ts +7 -0
  71. package/dist/app.js +88 -22
  72. package/dist/app.js.map +1 -1
  73. package/dist/bin/aeolus-gateway.js +1 -0
  74. package/dist/bin/aeolus-gateway.js.map +1 -1
  75. package/dist/config.d.ts +8 -1
  76. package/dist/config.js +21 -0
  77. package/dist/config.js.map +1 -1
  78. package/dist/core/account-sign-in/start-account-sign-in.d.ts +1 -1
  79. package/dist/core/account-sign-in/start-account-sign-in.js +1 -1
  80. package/dist/core/account-sign-in/start-account-sign-in.js.map +1 -1
  81. package/dist/core/mcp-in/collect-replies.d.ts +2 -0
  82. package/dist/core/mcp-in/collect-replies.js +11 -3
  83. package/dist/core/mcp-in/collect-replies.js.map +1 -1
  84. package/dist/core/mcp-in/ports.d.ts +2 -1
  85. package/dist/core/mcp-out/run-party.d.ts +3 -1
  86. package/dist/core/mcp-out/run-party.js +9 -2
  87. package/dist/core/mcp-out/run-party.js.map +1 -1
  88. package/dist/core/party-grants/complete-party-sign-in.d.ts +5 -3
  89. package/dist/core/party-grants/complete-party-sign-in.js +7 -3
  90. package/dist/core/party-grants/complete-party-sign-in.js.map +1 -1
  91. package/dist/core/party-grants/ports.d.ts +17 -3
  92. package/dist/core/party-grants/tell-sign-in-needed.d.ts +9 -6
  93. package/dist/core/party-grants/tell-sign-in-needed.js +28 -12
  94. package/dist/core/party-grants/tell-sign-in-needed.js.map +1 -1
  95. package/dist/core/people/answer-delivery.d.ts +9 -13
  96. package/dist/core/people/answer-delivery.js +23 -6
  97. package/dist/core/people/answer-delivery.js.map +1 -1
  98. package/dist/core/people/basket.d.ts +104 -0
  99. package/dist/core/people/basket.js +42 -0
  100. package/dist/core/people/basket.js.map +1 -0
  101. package/dist/core/people/count-basket.d.ts +16 -0
  102. package/dist/core/people/count-basket.js +14 -0
  103. package/dist/core/people/count-basket.js.map +1 -0
  104. package/dist/core/people/done-delivery.d.ts +21 -13
  105. package/dist/core/people/done-delivery.js +34 -4
  106. package/dist/core/people/done-delivery.js.map +1 -1
  107. package/dist/core/people/finish-own-step.d.ts +27 -0
  108. package/dist/core/people/finish-own-step.js +67 -0
  109. package/dist/core/people/finish-own-step.js.map +1 -0
  110. package/dist/core/people/inbox-entry.js +1 -1
  111. package/dist/core/people/inbox-entry.js.map +1 -1
  112. package/dist/core/people/item-job.d.ts +9 -0
  113. package/dist/core/people/item-job.js +38 -0
  114. package/dist/core/people/item-job.js.map +1 -0
  115. package/dist/core/people/item-outcome.d.ts +37 -0
  116. package/dist/core/people/item-outcome.js +21 -0
  117. package/dist/core/people/item-outcome.js.map +1 -0
  118. package/dist/core/people/item-state.d.ts +10 -0
  119. package/dist/core/people/item-state.js +17 -0
  120. package/dist/core/people/item-state.js.map +1 -0
  121. package/dist/core/people/open-delivery.d.ts +29 -14
  122. package/dist/core/people/open-delivery.js +108 -19
  123. package/dist/core/people/open-delivery.js.map +1 -1
  124. package/dist/core/people/opened-of.d.ts +30 -9
  125. package/dist/core/people/opened-of.js +25 -4
  126. package/dist/core/people/opened-of.js.map +1 -1
  127. package/dist/core/people/person-crew.d.ts +5 -1
  128. package/dist/core/people/person-crew.js +7 -0
  129. package/dist/core/people/person-crew.js.map +1 -1
  130. package/dist/core/people/ports.d.ts +42 -19
  131. package/dist/core/people/put-in-basket.d.ts +39 -0
  132. package/dist/core/people/put-in-basket.js +57 -0
  133. package/dist/core/people/put-in-basket.js.map +1 -0
  134. package/dist/core/people/read-basket.d.ts +54 -0
  135. package/dist/core/people/read-basket.js +57 -0
  136. package/dist/core/people/read-basket.js.map +1 -0
  137. package/dist/core/people/read-bridge-home.d.ts +47 -0
  138. package/dist/core/people/read-bridge-home.js +53 -0
  139. package/dist/core/people/read-bridge-home.js.map +1 -0
  140. package/dist/core/people/read-inbox.d.ts +11 -6
  141. package/dist/core/people/read-inbox.js +17 -10
  142. package/dist/core/people/read-inbox.js.map +1 -1
  143. package/dist/core/people/read-record.d.ts +48 -0
  144. package/dist/core/people/read-record.js +44 -0
  145. package/dist/core/people/read-record.js.map +1 -0
  146. package/dist/core/people/read-routing.d.ts +26 -0
  147. package/dist/core/people/read-routing.js +22 -0
  148. package/dist/core/people/read-routing.js.map +1 -0
  149. package/dist/core/people/read-wake-channels.d.ts +7 -8
  150. package/dist/core/people/read-wake-channels.js +4 -4
  151. package/dist/core/people/read-wake-channels.js.map +1 -1
  152. package/dist/core/people/remove-from-basket.d.ts +20 -0
  153. package/dist/core/people/remove-from-basket.js +52 -0
  154. package/dist/core/people/remove-from-basket.js.map +1 -0
  155. package/dist/core/people/routing.d.ts +50 -0
  156. package/dist/core/people/routing.js +35 -0
  157. package/dist/core/people/routing.js.map +1 -0
  158. package/dist/core/people/send-basket.d.ts +40 -0
  159. package/dist/core/people/send-basket.js +60 -0
  160. package/dist/core/people/send-basket.js.map +1 -0
  161. package/dist/core/people/send-stored-answers.d.ts +33 -0
  162. package/dist/core/people/send-stored-answers.js +96 -0
  163. package/dist/core/people/send-stored-answers.js.map +1 -0
  164. package/dist/core/people/stale-question.d.ts +28 -0
  165. package/dist/core/people/stale-question.js +26 -0
  166. package/dist/core/people/stale-question.js.map +1 -0
  167. package/dist/core/people/step-outcome.d.ts +18 -0
  168. package/dist/core/people/step-outcome.js +18 -0
  169. package/dist/core/people/step-outcome.js.map +1 -0
  170. package/dist/core/people/turn-route.d.ts +34 -0
  171. package/dist/core/people/turn-route.js +42 -0
  172. package/dist/core/people/turn-route.js.map +1 -0
  173. package/dist/core/people/wake-person.d.ts +15 -7
  174. package/dist/core/people/wake-person.js +54 -28
  175. package/dist/core/people/wake-person.js.map +1 -1
  176. package/dist/core/people/web-push-channel.d.ts +2 -2
  177. package/dist/core/people/web-push-channel.js +3 -3
  178. package/dist/core/people/web-push-channel.js.map +1 -1
  179. package/dist/core/requests/ask-owners.d.ts +1 -1
  180. package/dist/core/requests/ask-owners.js +4 -4
  181. package/dist/core/requests/ask-owners.js.map +1 -1
  182. package/dist/core/requests/list-mine.d.ts +1 -1
  183. package/dist/core/requests/list-mine.js +1 -1
  184. package/dist/core/requests/list-to-decide.d.ts +1 -1
  185. package/dist/core/requests/list-to-decide.js +1 -1
  186. package/dist/core/requests/list-to-decide.js.map +1 -1
  187. package/dist/core/shared/errors.d.ts +1 -1
  188. package/dist/core/shared/errors.js.map +1 -1
  189. package/dist/core/slack/answer-in-slack.d.ts +18 -15
  190. package/dist/core/slack/answer-in-slack.js +39 -20
  191. package/dist/core/slack/answer-in-slack.js.map +1 -1
  192. package/dist/core/slack/complete-link.js +3 -3
  193. package/dist/core/slack/complete-link.js.map +1 -1
  194. package/dist/core/slack/edit-slack-posts.d.ts +23 -0
  195. package/dist/core/slack/edit-slack-posts.js +49 -0
  196. package/dist/core/slack/edit-slack-posts.js.map +1 -0
  197. package/dist/core/slack/ports.d.ts +28 -9
  198. package/dist/core/slack/read-slack-link.d.ts +2 -3
  199. package/dist/core/slack/read-slack-link.js +2 -2
  200. package/dist/core/slack/read-slack-link.js.map +1 -1
  201. package/dist/core/slack/see-in-slack.d.ts +34 -0
  202. package/dist/core/slack/see-in-slack.js +48 -0
  203. package/dist/core/slack/see-in-slack.js.map +1 -0
  204. package/dist/core/slack/send-slack-events.js +1 -1
  205. package/dist/core/slack/send-slack-events.js.map +1 -1
  206. package/dist/core/slack/show-in-slack.d.ts +20 -15
  207. package/dist/core/slack/show-in-slack.js +36 -45
  208. package/dist/core/slack/show-in-slack.js.map +1 -1
  209. package/dist/core/slack/slack-link.d.ts +0 -2
  210. package/dist/core/slack/slack-post-of.d.ts +9 -9
  211. package/dist/core/slack/slack-post-of.js +12 -3
  212. package/dist/core/slack/slack-post-of.js.map +1 -1
  213. package/dist/core/slack/slack-post.d.ts +13 -7
  214. package/dist/core/slack/slack-post.js +2 -2
  215. package/dist/core/slack/slack-post.js.map +1 -1
  216. package/dist/core/slack/slack-press.d.ts +45 -0
  217. package/dist/core/slack/slack-press.js +26 -0
  218. package/dist/core/slack/slack-press.js.map +1 -0
  219. package/dist/core/slack/start-link.d.ts +1 -1
  220. package/dist/core/slack/start-link.js +1 -1
  221. package/dist/core/slack/unlink-slack.d.ts +1 -1
  222. package/dist/core/slack/unlink-slack.js +1 -1
  223. package/dist/core/slack/unlink-slack.js.map +1 -1
  224. package/dist/person-waiters.js +3 -1
  225. package/dist/person-waiters.js.map +1 -1
  226. package/dist/round-worker.d.ts +23 -0
  227. package/dist/round-worker.js +38 -0
  228. package/dist/round-worker.js.map +1 -0
  229. package/package.json +3 -3
  230. package/src/adapters/prisma/migrations/20261101090000_item_outcomes/migration.sql +12 -0
  231. package/src/adapters/prisma/migrations/20261101091000_opened_deliveries_content_type/migration.sql +2 -0
  232. package/src/adapters/prisma/migrations/20261101120000_opened_deliveries_questions/migration.sql +3 -0
  233. package/src/adapters/prisma/migrations/20261101150000_basket_entries/migration.sql +25 -0
  234. package/src/adapters/prisma/migrations/20261101180000_opened_deliveries_steps/migration.sql +2 -0
  235. package/src/adapters/prisma/migrations/20261101181000_party_sign_in_notices_steps/migration.sql +2 -0
  236. package/src/adapters/prisma/migrations/20261102090000_routes/migration.sql +11 -0
  237. package/src/adapters/prisma/migrations/20261102091000_slack_posts_unacknowledged/migration.sql +3 -0
  238. package/src/adapters/prisma/migrations/20261102092000_slack_links_routed/migration.sql +2 -0
  239. package/src/adapters/prisma/migrations/20261102093000_email_channels_routed/migration.sql +2 -0
  240. package/src/adapters/prisma/migrations/20261103090000_slack_posts_edited/migration.sql +5 -0
  241. package/src/adapters/prisma/schema.prisma +71 -15
  242. package/web/.next/BUILD_ID +1 -1
  243. package/web/.next/app-path-routes-manifest.json +8 -4
  244. package/web/.next/build-manifest.json +127 -79
  245. package/web/.next/diagnostics/route-bundle-stats.json +215 -143
  246. package/web/.next/fallback-build-manifest.json +3 -3
  247. package/web/.next/prerender-manifest.json +3 -3
  248. package/web/.next/routes-manifest.json +50 -26
  249. package/web/.next/server/app/(console)/bridge/basket/page/app-paths-manifest.json +3 -0
  250. package/web/.next/server/app/(console)/{overview/requests/[requestId] → bridge/basket}/page/build-manifest.json +4 -4
  251. package/web/.next/server/app/(console)/{overview/requests/[requestId] → bridge/basket}/page/next-font-manifest.json +1 -1
  252. package/web/.next/server/app/(console)/bridge/basket/page/server-reference-manifest.json +75 -0
  253. package/web/.next/server/app/(console)/bridge/basket/page.js +25 -0
  254. package/web/.next/server/app/(console)/bridge/basket/page.js.nft.json +1 -0
  255. package/web/.next/server/app/(console)/bridge/basket/page_client-reference-manifest.js +3 -0
  256. package/web/.next/server/app/(console)/bridge/changes/route/app-paths-manifest.json +3 -0
  257. package/web/.next/server/app/(console)/bridge/changes/route.js +8 -0
  258. package/web/.next/server/app/(console)/{overview/focus → bridge/changes}/route.js.nft.json +1 -1
  259. package/web/.next/server/app/(console)/{overview/focus → bridge/changes}/route_client-reference-manifest.js +1 -1
  260. package/web/.next/server/app/(console)/bridge/done/page/app-paths-manifest.json +3 -0
  261. package/web/.next/server/app/(console)/bridge/done/page/build-manifest.json +23 -0
  262. package/web/.next/server/app/(console)/bridge/done/page/next-font-manifest.json +11 -0
  263. package/web/.next/server/app/(console)/bridge/done/page/server-reference-manifest.json +75 -0
  264. package/web/.next/server/app/(console)/bridge/done/page.js +25 -0
  265. package/web/.next/server/app/(console)/bridge/done/page.js.nft.json +1 -0
  266. package/web/.next/server/app/(console)/bridge/done/page_client-reference-manifest.js +3 -0
  267. package/web/.next/server/app/(console)/bridge/focus/route/app-paths-manifest.json +3 -0
  268. package/web/.next/server/app/(console)/bridge/focus/route.js +8 -0
  269. package/web/.next/server/app/(console)/{overview/changes → bridge/focus}/route.js.nft.json +1 -1
  270. package/web/.next/server/app/(console)/bridge/focus/route_client-reference-manifest.js +3 -0
  271. package/web/.next/server/app/(console)/bridge/page/app-paths-manifest.json +3 -0
  272. package/web/.next/server/app/(console)/{overview → bridge}/page/build-manifest.json +4 -4
  273. package/web/.next/server/app/(console)/{overview → bridge}/page/next-font-manifest.json +1 -1
  274. package/web/.next/server/app/(console)/bridge/page/react-loadable-manifest.json +1 -0
  275. package/web/.next/server/app/(console)/bridge/page/server-reference-manifest.json +65 -0
  276. package/web/.next/server/app/(console)/{overview → bridge}/page.js +11 -11
  277. package/web/.next/server/app/(console)/bridge/page.js.map +5 -0
  278. package/web/.next/server/app/(console)/{overview → bridge}/page.js.nft.json +1 -1
  279. package/web/.next/server/app/(console)/bridge/page_client-reference-manifest.js +3 -0
  280. package/web/.next/server/app/(console)/bridge/settings/page/app-paths-manifest.json +3 -0
  281. package/web/.next/server/app/(console)/bridge/settings/page/build-manifest.json +23 -0
  282. package/web/.next/server/app/(console)/bridge/settings/page/next-font-manifest.json +11 -0
  283. package/web/.next/server/app/(console)/bridge/settings/page/react-loadable-manifest.json +1 -0
  284. package/web/.next/server/app/(console)/bridge/settings/page/server-reference-manifest.json +15 -0
  285. package/web/.next/server/app/(console)/bridge/settings/page.js +23 -0
  286. package/web/.next/server/app/(console)/bridge/settings/page.js.map +5 -0
  287. package/web/.next/server/app/(console)/bridge/settings/page.js.nft.json +1 -0
  288. package/web/.next/server/app/(console)/bridge/settings/page_client-reference-manifest.js +3 -0
  289. package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page/app-paths-manifest.json +3 -0
  290. package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page/build-manifest.json +23 -0
  291. package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page/next-font-manifest.json +11 -0
  292. package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page/react-loadable-manifest.json +1 -0
  293. package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page/server-reference-manifest.json +25 -0
  294. package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page.js +25 -0
  295. package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page.js.map +5 -0
  296. package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page.js.nft.json +1 -0
  297. package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page_client-reference-manifest.js +3 -0
  298. package/web/.next/server/app/(console)/bridge/settings/routing/page/app-paths-manifest.json +3 -0
  299. package/web/.next/server/app/(console)/bridge/settings/routing/page/build-manifest.json +23 -0
  300. package/web/.next/server/app/(console)/bridge/settings/routing/page/next-font-manifest.json +11 -0
  301. package/web/.next/server/app/(console)/bridge/settings/routing/page/react-loadable-manifest.json +1 -0
  302. package/web/.next/server/app/(console)/bridge/settings/routing/page/server-reference-manifest.json +55 -0
  303. package/web/.next/server/app/(console)/{overview/requests/[requestId] → bridge/settings/routing}/page.js +12 -12
  304. package/web/.next/server/app/(console)/bridge/settings/routing/page.js.map +5 -0
  305. package/web/.next/server/app/(console)/{overview/requests/[requestId] → bridge/settings/routing}/page.js.nft.json +1 -1
  306. package/web/.next/server/app/(console)/bridge/settings/routing/page_client-reference-manifest.js +3 -0
  307. package/web/.next/server/app/(console)/gateway-off/page/build-manifest.json +4 -4
  308. package/web/.next/server/app/(console)/gateway-off/page/server-reference-manifest.json +1 -1
  309. package/web/.next/server/app/(console)/gateway-off/page.js.nft.json +1 -1
  310. package/web/.next/server/app/(console)/gateway-off/page_client-reference-manifest.js +1 -1
  311. package/web/.next/server/app/(console)/meetings/[meetingId]/page/build-manifest.json +4 -4
  312. package/web/.next/server/app/(console)/meetings/[meetingId]/page/server-reference-manifest.json +3 -3
  313. package/web/.next/server/app/(console)/meetings/[meetingId]/page.js +1 -1
  314. package/web/.next/server/app/(console)/meetings/[meetingId]/page.js.nft.json +1 -1
  315. package/web/.next/server/app/(console)/meetings/[meetingId]/page_client-reference-manifest.js +1 -1
  316. package/web/.next/server/app/(console)/outside-parties/[name]/change/page/build-manifest.json +4 -4
  317. package/web/.next/server/app/(console)/outside-parties/[name]/change/page/server-reference-manifest.json +16 -16
  318. package/web/.next/server/app/(console)/outside-parties/[name]/change/page.js.nft.json +1 -1
  319. package/web/.next/server/app/(console)/outside-parties/[name]/change/page_client-reference-manifest.js +1 -1
  320. package/web/.next/server/app/(console)/outside-parties/[name]/page/build-manifest.json +4 -4
  321. package/web/.next/server/app/(console)/outside-parties/[name]/page/server-reference-manifest.json +8 -8
  322. package/web/.next/server/app/(console)/outside-parties/[name]/page.js.nft.json +1 -1
  323. package/web/.next/server/app/(console)/outside-parties/[name]/page_client-reference-manifest.js +1 -1
  324. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page/build-manifest.json +4 -4
  325. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page/server-reference-manifest.json +16 -16
  326. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page.js.nft.json +1 -1
  327. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page_client-reference-manifest.js +1 -1
  328. package/web/.next/server/app/(console)/outside-parties/add/page/build-manifest.json +4 -4
  329. package/web/.next/server/app/(console)/outside-parties/add/page/server-reference-manifest.json +10 -10
  330. package/web/.next/server/app/(console)/outside-parties/add/page.js.nft.json +1 -1
  331. package/web/.next/server/app/(console)/outside-parties/add/page_client-reference-manifest.js +1 -1
  332. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page/build-manifest.json +4 -4
  333. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page/server-reference-manifest.json +2 -2
  334. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page.js.nft.json +1 -1
  335. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page_client-reference-manifest.js +1 -1
  336. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page/build-manifest.json +4 -4
  337. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page/server-reference-manifest.json +2 -2
  338. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page.js.nft.json +1 -1
  339. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page_client-reference-manifest.js +1 -1
  340. package/web/.next/server/app/(console)/outside-parties/page/build-manifest.json +4 -4
  341. package/web/.next/server/app/(console)/outside-parties/page/server-reference-manifest.json +2 -2
  342. package/web/.next/server/app/(console)/outside-parties/page.js.nft.json +1 -1
  343. package/web/.next/server/app/(console)/outside-parties/page_client-reference-manifest.js +1 -1
  344. package/web/.next/server/app/(console)/parties/page/build-manifest.json +4 -4
  345. package/web/.next/server/app/(console)/parties/page/server-reference-manifest.json +8 -8
  346. package/web/.next/server/app/(console)/parties/page.js.nft.json +1 -1
  347. package/web/.next/server/app/(console)/parties/page_client-reference-manifest.js +1 -1
  348. package/web/.next/server/app/(console)/sign-in/failed/page/build-manifest.json +4 -4
  349. package/web/.next/server/app/(console)/sign-in/failed/page/server-reference-manifest.json +1 -1
  350. package/web/.next/server/app/(console)/sign-in/failed/page.js.nft.json +1 -1
  351. package/web/.next/server/app/(console)/sign-in/failed/page_client-reference-manifest.js +1 -1
  352. package/web/.next/server/app/(console)/slack/disconnect/page/build-manifest.json +4 -4
  353. package/web/.next/server/app/(console)/slack/disconnect/page/server-reference-manifest.json +8 -8
  354. package/web/.next/server/app/(console)/slack/disconnect/page.js.nft.json +1 -1
  355. package/web/.next/server/app/(console)/slack/disconnect/page_client-reference-manifest.js +1 -1
  356. package/web/.next/server/app/(console)/slack/expose/page/build-manifest.json +4 -4
  357. package/web/.next/server/app/(console)/slack/expose/page/server-reference-manifest.json +8 -8
  358. package/web/.next/server/app/(console)/slack/expose/page.js.nft.json +1 -1
  359. package/web/.next/server/app/(console)/slack/expose/page_client-reference-manifest.js +1 -1
  360. package/web/.next/server/app/(console)/slack/link/route.js.nft.json +1 -1
  361. package/web/.next/server/app/(console)/slack/page/build-manifest.json +4 -4
  362. package/web/.next/server/app/(console)/slack/page/server-reference-manifest.json +8 -8
  363. package/web/.next/server/app/(console)/slack/page.js.nft.json +1 -1
  364. package/web/.next/server/app/(console)/slack/page_client-reference-manifest.js +1 -1
  365. package/web/.next/server/app/(console)/slack/remove/page/build-manifest.json +4 -4
  366. package/web/.next/server/app/(console)/slack/remove/page/server-reference-manifest.json +8 -8
  367. package/web/.next/server/app/(console)/slack/remove/page.js.nft.json +1 -1
  368. package/web/.next/server/app/(console)/slack/remove/page_client-reference-manifest.js +1 -1
  369. package/web/.next/server/app/_global-error/page/build-manifest.json +4 -4
  370. package/web/.next/server/app/_global-error/page.js.nft.json +1 -1
  371. package/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  372. package/web/.next/server/app/_global-error.html +1 -1
  373. package/web/.next/server/app/_global-error.rsc +1 -1
  374. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  375. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  376. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  377. package/web/.next/server/app/_not-found/page/build-manifest.json +4 -4
  378. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  379. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  380. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  381. package/web/.next/server/app/authorize/failed/page/build-manifest.json +4 -4
  382. package/web/.next/server/app/authorize/failed/page/server-reference-manifest.json +1 -1
  383. package/web/.next/server/app/authorize/failed/page.js +1 -1
  384. package/web/.next/server/app/authorize/failed/page.js.nft.json +1 -1
  385. package/web/.next/server/app/authorize/failed/page_client-reference-manifest.js +1 -1
  386. package/web/.next/server/app/authorize/pick/page/build-manifest.json +4 -4
  387. package/web/.next/server/app/authorize/pick/page/server-reference-manifest.json +1 -1
  388. package/web/.next/server/app/authorize/pick/page.js +1 -1
  389. package/web/.next/server/app/authorize/pick/page.js.nft.json +1 -1
  390. package/web/.next/server/app/authorize/pick/page_client-reference-manifest.js +1 -1
  391. package/web/.next/server/app/authorize/waiting/approval/page/build-manifest.json +4 -4
  392. package/web/.next/server/app/authorize/waiting/approval/page/server-reference-manifest.json +1 -1
  393. package/web/.next/server/app/authorize/waiting/approval/page.js +1 -1
  394. package/web/.next/server/app/authorize/waiting/approval/page.js.nft.json +1 -1
  395. package/web/.next/server/app/authorize/waiting/approval/page_client-reference-manifest.js +1 -1
  396. package/web/.next/server/app-paths-manifest.json +8 -4
  397. package/web/.next/server/chunks/0b9d__next-internal_server_app_(console)_bridge_changes_route_actions_0hj8aqohz6bu6.js +3 -0
  398. package/web/.next/server/chunks/{[root-of-the-server]__1tfyrijwfgqlk._.js → [root-of-the-server]__13mh3krxil59c._.js} +2 -2
  399. package/web/.next/server/chunks/[root-of-the-server]__13mh3krxil59c._.js.map +1 -0
  400. package/web/.next/server/chunks/_05qgg3__4kdbm._.js +3 -0
  401. package/web/.next/server/chunks/_05qgg3__4kdbm._.js.map +1 -0
  402. package/web/.next/server/chunks/_0_um96p6psnqx._.js +4 -4
  403. package/web/.next/server/chunks/_0_um96p6psnqx._.js.map +1 -1
  404. package/web/.next/server/chunks/_1uap5tql2vvsb._.js +3 -0
  405. package/web/.next/server/chunks/{_04is-uopj3op9._.js.map → _1uap5tql2vvsb._.js.map} +1 -1
  406. package/web/.next/server/chunks/_1xf83h9norhws._.js +4 -4
  407. package/web/.next/server/chunks/_1xf83h9norhws._.js.map +1 -1
  408. package/web/.next/server/chunks/_20ne4s-e_jzxp._.js +1 -1
  409. package/web/.next/server/chunks/_20ne4s-e_jzxp._.js.map +1 -1
  410. package/web/.next/server/chunks/ssr/01fr_app_(console)_bridge_settings_requests_[requestId]_page_actions_1au-p5lgnv5e-.js +3 -0
  411. package/web/.next/server/chunks/ssr/01fr_app_(console)_bridge_settings_requests_[requestId]_page_actions_1au-p5lgnv5e-.js.map +1 -0
  412. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_bridge_settings_routing_page_actions_136lm_jip4d_x.js +3 -0
  413. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_bridge_settings_routing_page_actions_136lm_jip4d_x.js.map +1 -0
  414. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_change_page_actions_04td11fxohsfm.js +1 -1
  415. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_change_page_actions_04td11fxohsfm.js.map +1 -1
  416. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_page_actions_0u-45itza1ls7.js +1 -1
  417. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_page_actions_0u-45itza1ls7.js.map +1 -1
  418. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_retire_page_actions_0s7ps6i0ts7v5.js +1 -1
  419. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_retire_page_actions_0s7ps6i0ts7v5.js.map +1 -1
  420. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add-a2a-client_page_actions_0d_wgiu94c32e.js +1 -1
  421. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add-a2a-client_page_actions_0d_wgiu94c32e.js.map +1 -1
  422. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add_page_actions_0yfz_dfn-8uo7.js +1 -1
  423. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add_page_actions_0yfz_dfn-8uo7.js.map +1 -1
  424. package/web/.next/server/chunks/ssr/[root-of-the-server]__001xx3sm5ur-e._.js +1 -1
  425. package/web/.next/server/chunks/ssr/[root-of-the-server]__001xx3sm5ur-e._.js.map +1 -1
  426. package/web/.next/server/chunks/ssr/[root-of-the-server]__00jy4lqrcvxvc._.js +3 -0
  427. package/web/.next/server/chunks/ssr/[root-of-the-server]__00jy4lqrcvxvc._.js.map +1 -0
  428. package/web/.next/server/chunks/ssr/[root-of-the-server]__0a6a1yc_ac-qt._.js +1 -1
  429. package/web/.next/server/chunks/ssr/[root-of-the-server]__0a8db18tyk__5._.js +1 -1
  430. package/web/.next/server/chunks/ssr/[root-of-the-server]__0a8db18tyk__5._.js.map +1 -1
  431. package/web/.next/server/chunks/ssr/{[root-of-the-server]__179upda-y7uap._.js → [root-of-the-server]__0gnfxe62edx95._.js} +1 -1
  432. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k-5_al3xk509._.js +3 -0
  433. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k-5_al3xk509._.js.map +1 -0
  434. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k3g0p3t9t0c-._.js +1 -1
  435. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k3g0p3t9t0c-._.js.map +1 -1
  436. package/web/.next/server/chunks/ssr/[root-of-the-server]__10s9e8g5x-ws8._.js +1 -1
  437. package/web/.next/server/chunks/ssr/[root-of-the-server]__10s9e8g5x-ws8._.js.map +1 -1
  438. package/web/.next/server/chunks/ssr/[root-of-the-server]__13yoncr_nx3jc._.js +1 -1
  439. package/web/.next/server/chunks/ssr/[root-of-the-server]__13yoncr_nx3jc._.js.map +1 -1
  440. package/web/.next/server/chunks/ssr/[root-of-the-server]__18-8taiduk1jn._.js +1 -1
  441. package/web/.next/server/chunks/ssr/[root-of-the-server]__18-8taiduk1jn._.js.map +1 -1
  442. package/web/.next/server/chunks/ssr/[root-of-the-server]__18v7b5ga58a9n._.js +4 -0
  443. package/web/.next/server/chunks/ssr/[root-of-the-server]__18v7b5ga58a9n._.js.map +1 -0
  444. package/web/.next/server/chunks/ssr/[root-of-the-server]__1iqxg48po42ig._.js +3 -0
  445. package/web/.next/server/chunks/ssr/[root-of-the-server]__1iqxg48po42ig._.js.map +1 -0
  446. package/web/.next/server/chunks/ssr/[root-of-the-server]__1qpow96uit9t8._.js +1 -1
  447. package/web/.next/server/chunks/ssr/[root-of-the-server]__1qpow96uit9t8._.js.map +1 -1
  448. package/web/.next/server/chunks/ssr/[root-of-the-server]__1rf344o33bmi4._.js +3 -0
  449. package/web/.next/server/chunks/ssr/[root-of-the-server]__1rf344o33bmi4._.js.map +1 -0
  450. package/web/.next/server/chunks/ssr/{[root-of-the-server]__04_bc8g0oe4jt._.js → [root-of-the-server]__1yyaeeylnezpi._.js} +1 -1
  451. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js +1 -1
  452. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js.map +1 -1
  453. package/web/.next/server/chunks/ssr/_03lk54yp-yhw3._.js +4 -4
  454. package/web/.next/server/chunks/ssr/_03lk54yp-yhw3._.js.map +1 -1
  455. package/web/.next/server/chunks/ssr/_0a_nsm-ye2r6v._.js +4 -0
  456. package/web/.next/server/chunks/ssr/_0a_nsm-ye2r6v._.js.map +1 -0
  457. package/web/.next/server/chunks/ssr/_0h-ua-y4p4u1p._.js +3 -0
  458. package/web/.next/server/chunks/ssr/_0h-ua-y4p4u1p._.js.map +1 -0
  459. package/web/.next/server/chunks/ssr/_0ka_9elusb800._.js +1 -1
  460. package/web/.next/server/chunks/ssr/_0ka_9elusb800._.js.map +1 -1
  461. package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js +1 -1
  462. package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js.map +1 -1
  463. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js +1 -1
  464. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js.map +1 -1
  465. package/web/.next/server/chunks/ssr/{_1oy13966tft2_._.js → _10-gn6g9yc63s._.js} +2 -2
  466. package/web/.next/server/chunks/ssr/_10-gn6g9yc63s._.js.map +1 -0
  467. package/web/.next/server/chunks/ssr/{_1pf8x2exvfl1z._.js → _177fdczus39s7._.js} +2 -2
  468. package/web/.next/server/chunks/ssr/_177fdczus39s7._.js.map +1 -0
  469. package/web/.next/server/chunks/ssr/_1_wav28san6dm._.js +1 -1
  470. package/web/.next/server/chunks/ssr/_1e2o809f0ekry._.js +1 -1
  471. package/web/.next/server/chunks/ssr/_1hmjvjuxx92vo._.js +1 -1
  472. package/web/.next/server/chunks/ssr/_1hmjvjuxx92vo._.js.map +1 -1
  473. package/web/.next/server/chunks/ssr/_1jx41z6kmxtt0._.js +3 -0
  474. package/web/.next/server/chunks/ssr/_1jx41z6kmxtt0._.js.map +1 -0
  475. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js +1 -1
  476. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js.map +1 -1
  477. package/web/.next/server/chunks/ssr/_1q2s-hb67yjfb._.js +3 -0
  478. package/web/.next/server/chunks/ssr/_1q2s-hb67yjfb._.js.map +1 -0
  479. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js +1 -1
  480. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js.map +1 -1
  481. package/web/.next/server/chunks/ssr/_1yi3j4a16uet-._.js +3 -0
  482. package/web/.next/server/chunks/ssr/_1yi3j4a16uet-._.js.map +1 -0
  483. package/web/.next/server/chunks/ssr/node_modules_01oyodz1bs245._.js +3 -0
  484. package/web/.next/server/chunks/ssr/node_modules_01oyodz1bs245._.js.map +1 -0
  485. package/web/.next/server/chunks/ssr/node_modules_16d4um5s513wz._.js +3 -0
  486. package/web/.next/server/chunks/ssr/node_modules_16d4um5s513wz._.js.map +1 -0
  487. package/web/.next/server/chunks/ssr/{node_modules_@aeolus-fleet_common_dist_header_1id6g-6m2hh0l._.js → node_modules_@aeolus-fleet_common_dist_header_0t_cmi-llaq7g._.js} +2 -2
  488. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_0t_cmi-llaq7g._.js.map +1 -0
  489. package/web/.next/server/chunks/ssr/{node_modules_@aeolus-fleet_common_dist_header_1jvz31plyg2f-._.js → node_modules_@aeolus-fleet_common_dist_header_1x3s5abk_uj9j._.js} +2 -2
  490. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_1x3s5abk_uj9j._.js.map +1 -0
  491. package/web/.next/server/chunks/ssr/node_modules_next_dist_0hkpfqt9ne626._.js +3 -0
  492. package/web/.next/server/chunks/ssr/node_modules_next_dist_0hkpfqt9ne626._.js.map +1 -0
  493. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_031g89sb4kgzn.js +3 -0
  494. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_031g89sb4kgzn.js.map +1 -0
  495. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_09rviehv6rh0n.js +3 -0
  496. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_09rviehv6rh0n.js.map +1 -0
  497. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ka8v6_fxug8r.js +3 -0
  498. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ka8v6_fxug8r.js.map +1 -0
  499. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1c8zekuy1gkch.js +3 -0
  500. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1c8zekuy1gkch.js.map +1 -0
  501. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1dhzng2nnu0m7.js +3 -0
  502. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1dhzng2nnu0m7.js.map +1 -0
  503. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1rya2ag3z4vug.js +3 -0
  504. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1rya2ag3z4vug.js.map +1 -0
  505. package/web/.next/server/chunks/ssr/web_09zipglxee7tv._.js +1 -1
  506. package/web/.next/server/chunks/ssr/web_09zipglxee7tv._.js.map +1 -1
  507. package/web/.next/server/chunks/ssr/web_0i_1uraygw2ld._.js +3 -0
  508. package/web/.next/server/chunks/ssr/web_0i_1uraygw2ld._.js.map +1 -0
  509. package/web/.next/server/chunks/ssr/web_0wys4l6za8umr._.js +1 -1
  510. package/web/.next/server/chunks/ssr/web_0wys4l6za8umr._.js.map +1 -1
  511. package/web/.next/server/chunks/ssr/web_0wz4onhfbq359._.js +3 -0
  512. package/web/.next/server/chunks/ssr/web_0wz4onhfbq359._.js.map +1 -0
  513. package/web/.next/server/chunks/ssr/web_1-hlf1xzemd3-._.js +3 -0
  514. package/web/.next/server/chunks/ssr/web_1-hlf1xzemd3-._.js.map +1 -0
  515. package/web/.next/server/chunks/ssr/web_107a79_nx4jdd._.js +3 -0
  516. package/web/.next/server/chunks/ssr/web_107a79_nx4jdd._.js.map +1 -0
  517. package/web/.next/server/chunks/ssr/web_127_b93avkwaq._.js +3 -0
  518. package/web/.next/server/chunks/ssr/web_127_b93avkwaq._.js.map +1 -0
  519. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_basket_page_actions_102xk3g8eko_q.js +3 -0
  520. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_basket_page_actions_102xk3g8eko_q.js.map +1 -0
  521. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_done_page_actions_0mm90xd2feta2.js +3 -0
  522. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_done_page_actions_0mm90xd2feta2.js.map +1 -0
  523. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_page_actions_082880qz6xa5k.js +3 -0
  524. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_page_actions_082880qz6xa5k.js.map +1 -0
  525. package/web/.next/server/chunks/ssr/web_app_(console)_bridge_error_tsx_0ty_yk1robyaj._.js +3 -0
  526. package/web/.next/server/chunks/ssr/web_app_(console)_bridge_error_tsx_0ty_yk1robyaj._.js.map +1 -0
  527. package/web/.next/server/chunks/ssr/web_app_(console)_bridge_error_tsx_10gkrn3ey8162._.js +3 -0
  528. package/web/.next/server/chunks/ssr/web_app_(console)_bridge_error_tsx_10gkrn3ey8162._.js.map +1 -0
  529. package/web/.next/server/chunks/ssr/web_app_(console)_bridge_settings_page_tsx_0xzphp7k9ge1u._.js +3 -0
  530. package/web/.next/server/chunks/ssr/web_app_(console)_bridge_settings_page_tsx_0xzphp7k9ge1u._.js.map +1 -0
  531. package/web/.next/server/chunks/ssr/web_app_(console)_outside-parties_[name]_change_page_tsx_00bpg0s2eypj9._.js +1 -1
  532. package/web/.next/server/chunks/ssr/web_app_(console)_outside-parties_[name]_retire_page_tsx_1zxy74pr5_2kn._.js +1 -1
  533. package/web/.next/server/chunks/ssr/web_features_0s8erick0xk77._.js +3 -0
  534. package/web/.next/server/chunks/ssr/web_features_0s8erick0xk77._.js.map +1 -0
  535. package/web/.next/server/chunks/ssr/web_features_0wuo5bgp5tabn._.js +3 -0
  536. package/web/.next/server/chunks/ssr/web_features_0wuo5bgp5tabn._.js.map +1 -0
  537. package/web/.next/server/chunks/ssr/web_features_16cy3vmcijydk._.js +3 -0
  538. package/web/.next/server/chunks/ssr/web_features_16cy3vmcijydk._.js.map +1 -0
  539. package/web/.next/server/chunks/ssr/web_features_1iiqi6dhrst33._.js +3 -0
  540. package/web/.next/server/chunks/ssr/web_features_1iiqi6dhrst33._.js.map +1 -0
  541. package/web/.next/server/chunks/ssr/web_features_1n1hy3nwha2vi._.js +3 -0
  542. package/web/.next/server/chunks/ssr/web_features_1n1hy3nwha2vi._.js.map +1 -0
  543. package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js +1 -1
  544. package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js.map +1 -1
  545. package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js +1 -1
  546. package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js.map +1 -1
  547. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js +1 -1
  548. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js.map +1 -1
  549. package/web/.next/server/chunks/ssr/web_features_bridge_0-mhu0jaig2u3._.js +3 -0
  550. package/web/.next/server/chunks/ssr/web_features_bridge_0-mhu0jaig2u3._.js.map +1 -0
  551. package/web/.next/server/chunks/ssr/web_features_bridge_0219fbfmsi68-._.js +3 -0
  552. package/web/.next/server/chunks/ssr/web_features_bridge_0219fbfmsi68-._.js.map +1 -0
  553. package/web/.next/server/chunks/ssr/web_features_bridge_11jndonu4o8fq._.js +3 -0
  554. package/web/.next/server/chunks/ssr/web_features_bridge_11jndonu4o8fq._.js.map +1 -0
  555. package/web/.next/server/chunks/ssr/web_features_bridge_1mi9qlb-z5iwt._.js +3 -0
  556. package/web/.next/server/chunks/ssr/web_features_bridge_1mi9qlb-z5iwt._.js.map +1 -0
  557. package/web/.next/server/chunks/ssr/web_features_bridge_hooks_bridge-actions_ts_0h-_xm2rcb-ij._.js +3 -0
  558. package/web/.next/server/chunks/ssr/web_features_bridge_hooks_bridge-actions_ts_0h-_xm2rcb-ij._.js.map +1 -0
  559. package/web/.next/server/chunks/ssr/web_features_bridge_state_0354e3wb0dzx1._.js +3 -0
  560. package/web/.next/server/chunks/ssr/web_features_bridge_state_0354e3wb0dzx1._.js.map +1 -0
  561. package/web/.next/server/chunks/ssr/web_features_bridge_state_basket-panel_tsx_1qi_kzld0rfgs._.js +3 -0
  562. package/web/.next/server/chunks/ssr/web_features_bridge_state_basket-panel_tsx_1qi_kzld0rfgs._.js.map +1 -0
  563. package/web/.next/server/chunks/ssr/web_features_bridge_state_decision-panel_tsx_1mzsixgc8zuxc._.js +3 -0
  564. package/web/.next/server/chunks/ssr/web_features_bridge_state_decision-panel_tsx_1mzsixgc8zuxc._.js.map +1 -0
  565. package/web/.next/server/chunks/ssr/web_features_bridge_state_done-panel_tsx_1m844-qb1z9p_._.js +3 -0
  566. package/web/.next/server/chunks/ssr/web_features_bridge_state_done-panel_tsx_1m844-qb1z9p_._.js.map +1 -0
  567. package/web/.next/server/chunks/ssr/web_features_bridge_state_home-panel_tsx_1cc5zdhxogl_2._.js +3 -0
  568. package/web/.next/server/chunks/ssr/web_features_bridge_state_home-panel_tsx_1cc5zdhxogl_2._.js.map +1 -0
  569. package/web/.next/server/chunks/ssr/web_features_bridge_state_live-refresh_tsx_1c1xk-oe0kllv._.js +3 -0
  570. package/web/.next/server/chunks/ssr/web_features_bridge_state_live-refresh_tsx_1c1xk-oe0kllv._.js.map +1 -0
  571. package/web/.next/server/chunks/ssr/web_features_bridge_ui_1y4g3fe75nqn5._.js +3 -0
  572. package/web/.next/server/chunks/ssr/web_features_bridge_ui_1y4g3fe75nqn5._.js.map +1 -0
  573. package/web/.next/server/chunks/ssr/web_features_frame_0pe8cwpxe1egb._.js +1 -1
  574. package/web/.next/server/chunks/ssr/web_features_frame_0pe8cwpxe1egb._.js.map +1 -1
  575. package/web/.next/server/chunks/ssr/web_features_frame_ui_gateway-header_tsx_0e9tekx4jf7ng._.js +1 -1
  576. package/web/.next/server/chunks/ssr/web_features_frame_ui_gateway-header_tsx_0e9tekx4jf7ng._.js.map +1 -1
  577. package/web/.next/server/chunks/ssr/web_features_meeting_state_meeting-controls_tsx_12g4kzk2mbvvz._.js +1 -1
  578. package/web/.next/server/chunks/ssr/web_features_meeting_state_meeting-controls_tsx_12g4kzk2mbvvz._.js.map +1 -1
  579. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js +1 -1
  580. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js.map +1 -1
  581. package/web/.next/server/chunks/ssr/web_features_outside-party_actions_ts_102ar5pdowf8s._.js +1 -1
  582. package/web/.next/server/chunks/ssr/web_features_parties_actions_ts_0r-tbfsig2ty-._.js +1 -1
  583. package/web/.next/server/chunks/ssr/web_features_slack_actions_ts_1l3yg9vl20_vu._.js +1 -1
  584. package/web/.next/server/chunks/web__next-internal_server_app_(console)_bridge_focus_route_actions_0syd_u8mgzdmi.js +3 -0
  585. package/web/.next/server/middleware-build-manifest.js +127 -79
  586. package/web/.next/server/next-font-manifest.js +1 -1
  587. package/web/.next/server/next-font-manifest.json +24 -8
  588. package/web/.next/server/pages/500.html +1 -1
  589. package/web/.next/server/preview-props.json +3 -3
  590. package/web/.next/server/server-reference-manifest.js +1 -1
  591. package/web/.next/server/server-reference-manifest.json +218 -132
  592. package/web/.next/static/chunks/0az9upwm-8_q9.js +1 -0
  593. package/web/.next/static/chunks/0c1tqlbsvq1dj.js +1 -0
  594. package/web/.next/static/chunks/0fh11dkddwf_2.js +1 -0
  595. package/web/.next/static/chunks/0gbozvd_yh421.js +1 -0
  596. package/web/.next/static/chunks/0l9_oie6xi0kd.js +1 -0
  597. package/web/.next/static/chunks/0m512dxdcrv-b.js +1 -0
  598. package/web/.next/static/chunks/1166rxt6h6ilq.js +1 -0
  599. package/web/.next/static/chunks/1485slb5zus5p.js +1 -0
  600. package/web/.next/static/chunks/180aowme095ds.js +1 -0
  601. package/web/.next/static/chunks/{03239gtej3tj0.js → 24olc0btcvn7q.js} +1 -1
  602. package/web/.next/static/chunks/296w-74ry5lzk.js +1 -0
  603. package/web/.next/static/chunks/2hoi73vy1wqpo.js +1 -0
  604. package/web/.next/static/chunks/2mtfca4qk_s34.js +1 -0
  605. package/web/.next/static/chunks/{3ceatffqhpgpu.js → 2z2auwx1s2mgl.js} +1 -1
  606. package/web/.next/static/chunks/397zvdr6xr5pq.js +1 -0
  607. package/web/.next/static/chunks/{2_e-puldye2do.js → 3db90zxmny2y-.js} +1 -1
  608. package/web/.next/static/chunks/3ow9h8hreko-p.css +3 -0
  609. package/web/.next/static/chunks/3pd8pele5x1o9.js +1 -0
  610. package/web/.next/static/chunks/3srfjz42u14tx.js +1 -0
  611. package/web/.next/static/chunks/{0tmvd_zw45u96.js → 3x0p-z3zdrk_b.js} +1 -1
  612. package/web/.next/static/chunks/3yq9jt4p_0uid.js +1 -0
  613. package/web/.next/trace +1 -1
  614. package/web/.next/trace-build +1 -1
  615. package/web/.next/types/routes.d.ts +10 -6
  616. package/web/.next/types/validator.ts +108 -40
  617. package/web/public/wake-worker.js +4 -4
  618. package/dist/adapters/prisma/email-channels.d.ts +0 -4
  619. package/dist/adapters/prisma/email-channels.js +0 -14
  620. package/dist/adapters/prisma/email-channels.js.map +0 -1
  621. package/dist/adapters/prisma/generated/models/EmailChannel.d.ts +0 -946
  622. package/dist/adapters/prisma/generated/models/EmailChannel.js +0 -2
  623. package/dist/adapters/prisma/generated/models/EmailChannel.js.map +0 -1
  624. package/dist/core/people/turn-email-channel.d.ts +0 -21
  625. package/dist/core/people/turn-email-channel.js +0 -22
  626. package/dist/core/people/turn-email-channel.js.map +0 -1
  627. package/dist/core/slack/show-all-in-slack.d.ts +0 -16
  628. package/dist/core/slack/show-all-in-slack.js +0 -18
  629. package/dist/core/slack/show-all-in-slack.js.map +0 -1
  630. package/web/.next/server/app/(console)/overview/changes/route/app-paths-manifest.json +0 -3
  631. package/web/.next/server/app/(console)/overview/changes/route.js +0 -8
  632. package/web/.next/server/app/(console)/overview/changes/route_client-reference-manifest.js +0 -3
  633. package/web/.next/server/app/(console)/overview/focus/route/app-paths-manifest.json +0 -3
  634. package/web/.next/server/app/(console)/overview/focus/route.js +0 -8
  635. package/web/.next/server/app/(console)/overview/page/app-paths-manifest.json +0 -3
  636. package/web/.next/server/app/(console)/overview/page/server-reference-manifest.json +0 -95
  637. package/web/.next/server/app/(console)/overview/page_client-reference-manifest.js +0 -3
  638. package/web/.next/server/app/(console)/overview/requests/[requestId]/page/app-paths-manifest.json +0 -3
  639. package/web/.next/server/app/(console)/overview/requests/[requestId]/page/server-reference-manifest.json +0 -25
  640. package/web/.next/server/app/(console)/overview/requests/[requestId]/page_client-reference-manifest.js +0 -3
  641. package/web/.next/server/chunks/0b9d__next-internal_server_app_(console)_overview_focus_route_actions_10hgyjvv-6fus.js +0 -3
  642. package/web/.next/server/chunks/1mb5_next-internal_server_app_(console)_overview_changes_route_actions_0zbq7lqsf5nng.js +0 -3
  643. package/web/.next/server/chunks/[root-of-the-server]__1tfyrijwfgqlk._.js.map +0 -1
  644. package/web/.next/server/chunks/_04is-uopj3op9._.js +0 -3
  645. package/web/.next/server/chunks/_1-fw4-pwzazl4._.js +0 -3
  646. package/web/.next/server/chunks/_1-fw4-pwzazl4._.js.map +0 -1
  647. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_overview_requests_[requestId]_page_actions_0uki9j3mtuz9e.js +0 -3
  648. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_overview_requests_[requestId]_page_actions_0uki9j3mtuz9e.js.map +0 -1
  649. package/web/.next/server/chunks/ssr/[root-of-the-server]__0icm7kndx480o._.js +0 -4
  650. package/web/.next/server/chunks/ssr/[root-of-the-server]__0icm7kndx480o._.js.map +0 -1
  651. package/web/.next/server/chunks/ssr/[root-of-the-server]__1zlq3zji9v53h._.js +0 -3
  652. package/web/.next/server/chunks/ssr/[root-of-the-server]__1zlq3zji9v53h._.js.map +0 -1
  653. package/web/.next/server/chunks/ssr/_0-boiqan2j4tr._.js +0 -3
  654. package/web/.next/server/chunks/ssr/_0-boiqan2j4tr._.js.map +0 -1
  655. package/web/.next/server/chunks/ssr/_0-lfpqqlgfhzj._.js +0 -3
  656. package/web/.next/server/chunks/ssr/_0-lfpqqlgfhzj._.js.map +0 -1
  657. package/web/.next/server/chunks/ssr/_0bizyb21i2sl8._.js +0 -3
  658. package/web/.next/server/chunks/ssr/_0bizyb21i2sl8._.js.map +0 -1
  659. package/web/.next/server/chunks/ssr/_1oy13966tft2_._.js.map +0 -1
  660. package/web/.next/server/chunks/ssr/_1pf8x2exvfl1z._.js.map +0 -1
  661. package/web/.next/server/chunks/ssr/_1yqu7dcxs2-so._.js +0 -3
  662. package/web/.next/server/chunks/ssr/_1yqu7dcxs2-so._.js.map +0 -1
  663. package/web/.next/server/chunks/ssr/node_modules_0_cxkn6vujxay._.js +0 -3
  664. package/web/.next/server/chunks/ssr/node_modules_0_cxkn6vujxay._.js.map +0 -1
  665. package/web/.next/server/chunks/ssr/node_modules_0ue_35q2cegwf._.js +0 -3
  666. package/web/.next/server/chunks/ssr/node_modules_0ue_35q2cegwf._.js.map +0 -1
  667. package/web/.next/server/chunks/ssr/node_modules_15ceu3jhtifcw._.js +0 -3
  668. package/web/.next/server/chunks/ssr/node_modules_15ceu3jhtifcw._.js.map +0 -1
  669. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_1id6g-6m2hh0l._.js.map +0 -1
  670. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_1jvz31plyg2f-._.js.map +0 -1
  671. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_00i8qu9x65r6w.js +0 -3
  672. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_00i8qu9x65r6w.js.map +0 -1
  673. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0a3qpq0qt_bi4.js +0 -3
  674. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0a3qpq0qt_bi4.js.map +0 -1
  675. package/web/.next/server/chunks/ssr/web_0plvx3c_1cozb._.js +0 -3
  676. package/web/.next/server/chunks/ssr/web_0plvx3c_1cozb._.js.map +0 -1
  677. package/web/.next/server/chunks/ssr/web_1loiet18xbddu._.js +0 -3
  678. package/web/.next/server/chunks/ssr/web_1loiet18xbddu._.js.map +0 -1
  679. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_overview_page_actions_18on1ziyg1nzy.js +0 -3
  680. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_overview_page_actions_18on1ziyg1nzy.js.map +0 -1
  681. package/web/.next/server/chunks/ssr/web_app_(console)_overview_error_tsx_087e7ba8loavc._.js +0 -3
  682. package/web/.next/server/chunks/ssr/web_app_(console)_overview_error_tsx_087e7ba8loavc._.js.map +0 -1
  683. package/web/.next/server/chunks/ssr/web_app_(console)_overview_error_tsx_1nn1jz5nh77af._.js +0 -3
  684. package/web/.next/server/chunks/ssr/web_app_(console)_overview_error_tsx_1nn1jz5nh77af._.js.map +0 -1
  685. package/web/.next/server/chunks/ssr/web_features_0fxkmm4vqke5q._.js +0 -3
  686. package/web/.next/server/chunks/ssr/web_features_0fxkmm4vqke5q._.js.map +0 -1
  687. package/web/.next/server/chunks/ssr/web_features_1k6q2m0sl54-8._.js +0 -3
  688. package/web/.next/server/chunks/ssr/web_features_1k6q2m0sl54-8._.js.map +0 -1
  689. package/web/.next/server/chunks/ssr/web_features_1utnezwv0xr-l._.js +0 -3
  690. package/web/.next/server/chunks/ssr/web_features_1utnezwv0xr-l._.js.map +0 -1
  691. package/web/.next/server/chunks/ssr/web_features_overview_0udx5lm8igils._.js +0 -3
  692. package/web/.next/server/chunks/ssr/web_features_overview_0udx5lm8igils._.js.map +0 -1
  693. package/web/.next/server/chunks/ssr/web_features_overview_144fx4a-r9_wn._.js +0 -3
  694. package/web/.next/server/chunks/ssr/web_features_overview_144fx4a-r9_wn._.js.map +0 -1
  695. package/web/.next/server/chunks/ssr/web_features_overview_hooks_overview-actions_ts_0-wrat07d1y5g._.js +0 -3
  696. package/web/.next/server/chunks/ssr/web_features_overview_hooks_overview-actions_ts_0-wrat07d1y5g._.js.map +0 -1
  697. package/web/.next/server/chunks/ssr/web_features_overview_state_00l0wkgvv9y6j._.js +0 -3
  698. package/web/.next/server/chunks/ssr/web_features_overview_state_00l0wkgvv9y6j._.js.map +0 -1
  699. package/web/.next/server/chunks/ssr/web_features_overview_state_decision-panel_tsx_0kpd26ggtr6h_._.js +0 -3
  700. package/web/.next/server/chunks/ssr/web_features_overview_state_decision-panel_tsx_0kpd26ggtr6h_._.js.map +0 -1
  701. package/web/.next/server/chunks/ssr/web_features_overview_ui_10mb24kjiffea._.js +0 -3
  702. package/web/.next/server/chunks/ssr/web_features_overview_ui_10mb24kjiffea._.js.map +0 -1
  703. package/web/.next/static/chunks/0nhopjmnw_dqt.js +0 -1
  704. package/web/.next/static/chunks/0vlawcs6_kjs1.js +0 -1
  705. package/web/.next/static/chunks/1se0j0htjyep6.js +0 -1
  706. package/web/.next/static/chunks/26vlpatu47xtw.css +0 -3
  707. package/web/.next/static/chunks/287ofedoj_6xl.js +0 -1
  708. package/web/.next/static/chunks/2cd4e71s711ad.js +0 -1
  709. package/web/.next/static/chunks/2ewacyhp73due.js +0 -1
  710. package/web/.next/static/chunks/34kulpk3a-cka.js +0 -1
  711. package/web/.next/static/chunks/3fd167c0-ot3u.js +0 -1
  712. package/web/.next/static/chunks/3knqujtrdi225.js +0 -1
  713. package/web/.next/static/chunks/3l5jtag3-fukc.js +0 -1
  714. package/web/.next/static/chunks/3rxg2mdhxd6yt.js +0 -1
  715. package/web/.next/static/chunks/3v6tr952p9dba.js +0 -1
  716. /package/web/.next/server/app/(console)/{overview → bridge/basket}/page/react-loadable-manifest.json +0 -0
  717. /package/web/.next/server/app/(console)/{overview → bridge/basket}/page.js.map +0 -0
  718. /package/web/.next/server/app/(console)/{overview → bridge}/changes/route/build-manifest.json +0 -0
  719. /package/web/.next/server/app/(console)/{overview → bridge}/changes/route/server-reference-manifest.json +0 -0
  720. /package/web/.next/server/app/(console)/{overview → bridge}/changes/route.js.map +0 -0
  721. /package/web/.next/server/app/(console)/{overview/requests/[requestId] → bridge/done}/page/react-loadable-manifest.json +0 -0
  722. /package/web/.next/server/app/(console)/{overview/requests/[requestId] → bridge/done}/page.js.map +0 -0
  723. /package/web/.next/server/app/(console)/{overview → bridge}/focus/route/build-manifest.json +0 -0
  724. /package/web/.next/server/app/(console)/{overview → bridge}/focus/route/server-reference-manifest.json +0 -0
  725. /package/web/.next/server/app/(console)/{overview → bridge}/focus/route.js.map +0 -0
  726. /package/web/.next/server/chunks/{0b9d__next-internal_server_app_(console)_overview_focus_route_actions_10hgyjvv-6fus.js.map → 0b9d__next-internal_server_app_(console)_bridge_changes_route_actions_0hj8aqohz6bu6.js.map} +0 -0
  727. /package/web/.next/server/chunks/ssr/{[root-of-the-server]__179upda-y7uap._.js.map → [root-of-the-server]__0gnfxe62edx95._.js.map} +0 -0
  728. /package/web/.next/server/chunks/ssr/{[root-of-the-server]__04_bc8g0oe4jt._.js.map → [root-of-the-server]__1yyaeeylnezpi._.js.map} +0 -0
  729. /package/web/.next/server/chunks/{1mb5_next-internal_server_app_(console)_overview_changes_route_actions_0zbq7lqsf5nng.js.map → web__next-internal_server_app_(console)_bridge_focus_route_actions_0syd_u8mgzdmi.js.map} +0 -0
  730. /package/web/.next/static/{R_nPUtDcDp1BPV3QHhaMZ → CMppMkysNciqc8k4TWwia}/_buildManifest.js +0 -0
  731. /package/web/.next/static/{R_nPUtDcDp1BPV3QHhaMZ → CMppMkysNciqc8k4TWwia}/_clientMiddlewareManifest.js +0 -0
  732. /package/web/.next/static/{R_nPUtDcDp1BPV3QHhaMZ → CMppMkysNciqc8k4TWwia}/_ssgManifest.js +0 -0
@@ -0,0 +1,54 @@
1
+ import type { DeliveryId } from '@aeolus-fleet/common';
2
+ import { type Result } from '../shared/result.js';
3
+ import { type BasketEntries, type BasketEntry, type BasketStanding } from './basket.js';
4
+ import type { CrewPersonShip } from './crew-person-ship.js';
5
+ import type { ItemOutcomes } from './item-outcome.js';
6
+ import type { PersonCaller, PersonCrewError, PersonCrewToken } from './person-crew.js';
7
+ import type { OpenedDeliveries, OpenedDelivery, PersonCrews, PersonDelivery, PersonShipDoor } from './ports.js';
8
+ /** An entry as the basket shows it: the question, its asker and when it asked, the option and the note, and what it stands as now. */
9
+ export interface BasketItem {
10
+ readonly questionId: string;
11
+ readonly deliveryId: DeliveryId;
12
+ readonly from: string;
13
+ readonly title: string;
14
+ readonly sentAt: string;
15
+ readonly option: number;
16
+ readonly note: string | null;
17
+ readonly standing: BasketStanding;
18
+ }
19
+ /** The basket: its entries in the order added, and how many answers Send would send. */
20
+ export interface BasketView {
21
+ readonly toSend: number;
22
+ readonly entries: BasketItem[];
23
+ }
24
+ export type ReadBasket = (caller: PersonCaller) => Promise<Result<BasketView, PersonCrewError>>;
25
+ export interface BasketDeps {
26
+ crewPersonShip: CrewPersonShip;
27
+ crews: PersonCrews;
28
+ door: PersonShipDoor;
29
+ opened: OpenedDeliveries;
30
+ entries: BasketEntries;
31
+ outcomes: ItemOutcomes;
32
+ }
33
+ /** The caller's basket as it stands now, with what waits and what they opened, from which each entry's question is known withdrawn or replaced. */
34
+ export interface StandingBasket {
35
+ readonly crew: PersonCrewToken;
36
+ readonly waiting: readonly PersonDelivery[];
37
+ readonly opened: readonly OpenedDelivery[];
38
+ readonly entries: readonly {
39
+ readonly entry: BasketEntry;
40
+ readonly standing: BasketStanding;
41
+ }[];
42
+ }
43
+ /**
44
+ * Each entry of the caller's basket with what it stands as: what came of its
45
+ * question, kept by the gateway wherever the person acted, and whether its
46
+ * asker withdrew or replaced it, among what waits and what they opened.
47
+ */
48
+ export declare function standingBasketOf(deps: BasketDeps, caller: PersonCaller): Promise<Result<StandingBasket, PersonCrewError>>;
49
+ /**
50
+ * Use case: a person opens their basket (section 9, rule 2): each entry in
51
+ * the order added, with its question, asker, option and note, and what it
52
+ * stands as; how many answers Send would send, the entries still waiting.
53
+ */
54
+ export declare function createReadBasket(deps: BasketDeps): ReadBasket;
@@ -0,0 +1,57 @@
1
+ import { ok } from '../shared/result.js';
2
+ import { standingOf } from './basket.js';
3
+ import { waitingFor } from './read-inbox.js';
4
+ import { staleOf } from './stale-question.js';
5
+ /** The question an entry answers, as a withdrawal or a replacement names it. */
6
+ function askingOf(entry) {
7
+ return { deliveryId: entry.deliveryId, senderShipId: entry.senderShipId, askedQuestionId: entry.questionId, withdrawnQuestionId: null };
8
+ }
9
+ /**
10
+ * Each entry of the caller's basket with what it stands as: what came of its
11
+ * question, kept by the gateway wherever the person acted, and whether its
12
+ * asker withdrew or replaced it, among what waits and what they opened.
13
+ */
14
+ export async function standingBasketOf(deps, caller) {
15
+ const waiting = await waitingFor(deps, caller);
16
+ if (!waiting.isOk) {
17
+ return waiting;
18
+ }
19
+ const { crew, deliveries } = waiting.value;
20
+ const [opened, entries] = await Promise.all([deps.opened.list(caller.fleetId, crew.shipId), deps.entries.list(caller.fleetId, crew.shipId)]);
21
+ const outcomes = entries.length === 0 ? [] : await deps.outcomes.findMany(caller.fleetId, { shipId: crew.shipId, deliveryIds: entries.map(({ deliveryId }) => deliveryId) });
22
+ const among = [...deliveries, ...opened];
23
+ return ok({
24
+ crew,
25
+ waiting: deliveries,
26
+ opened,
27
+ entries: entries.map((entry) => ({
28
+ entry,
29
+ standing: standingOf(entry, { outcome: outcomes.find(({ deliveryId }) => deliveryId === entry.deliveryId), stale: staleOf(askingOf(entry), among) }),
30
+ })),
31
+ });
32
+ }
33
+ /**
34
+ * Use case: a person opens their basket (section 9, rule 2): each entry in
35
+ * the order added, with its question, asker, option and note, and what it
36
+ * stands as; how many answers Send would send, the entries still waiting.
37
+ */
38
+ export function createReadBasket(deps) {
39
+ return async (caller) => {
40
+ const basket = await standingBasketOf(deps, caller);
41
+ if (!basket.isOk) {
42
+ return basket;
43
+ }
44
+ const entries = basket.value.entries.map(({ entry, standing }) => ({
45
+ questionId: entry.questionId,
46
+ deliveryId: entry.deliveryId,
47
+ from: entry.from,
48
+ title: entry.title,
49
+ sentAt: entry.sentAt.toISOString(),
50
+ option: entry.option,
51
+ note: entry.note,
52
+ standing,
53
+ }));
54
+ return ok({ toSend: entries.filter(({ standing }) => standing.kind === 'waiting').length, entries });
55
+ };
56
+ }
57
+ //# sourceMappingURL=read-basket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-basket.js","sourceRoot":"","sources":["../../../src/core/people/read-basket.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,UAAU,EAA6D,MAAM,aAAa,CAAC;AAKpG,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAe,MAAM,qBAAqB,CAAC;AAuC3D,gFAAgF;AAChF,SAAS,QAAQ,CAAC,KAAkB;IAClC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,eAAe,EAAE,KAAK,CAAC,UAAU,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC;AAC1I,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAAgB,EAAE,MAAoB;IAC3E,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/C,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAClB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC;IAC3C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC7I,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAC7K,MAAM,KAAK,GAAa,CAAC,GAAG,UAAU,EAAE,GAAG,MAAM,CAAC,CAAC;IACnD,OAAO,EAAE,CAAC;QACR,IAAI;QACJ,OAAO,EAAE,UAAU;QACnB,MAAM;QACN,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC/B,KAAK;YACL,QAAQ,EAAE,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;SACrJ,CAAC,CAAC;KACJ,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAgB;IAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE;QACtB,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;YACjE,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE;YAClC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,QAAQ;SACT,CAAC,CAAC,CAAC;QACJ,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IACvG,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { type Result } from '../shared/result.js';
2
+ import type { BasketEntries } from './basket.js';
3
+ import type { CrewPersonShip } from './crew-person-ship.js';
4
+ import { type InboxEntry } from './inbox-entry.js';
5
+ import { type ItemJob } from './item-job.js';
6
+ import type { ItemState } from './item-state.js';
7
+ import type { PersonCaller, PersonCrewError } from './person-crew.js';
8
+ import type { OpenedDeliveries, PersonCrews, PersonShipDoor } from './ports.js';
9
+ import { type Stale } from './stale-question.js';
10
+ /** An item on Bridge home: by its title, with its job, new or seen, stale once its asker withdrew or replaced the question it asks, and the answer to it in the basket, if any. */
11
+ export interface HomeItem extends InboxEntry {
12
+ readonly job: ItemJob;
13
+ readonly state: Exclude<ItemState, 'done'>;
14
+ readonly stale: Stale | null;
15
+ readonly inBasket: {
16
+ readonly option: number;
17
+ readonly note: string | null;
18
+ } | null;
19
+ }
20
+ /** Bridge home: what waits on the person, decide and do, with its count, a stale question listed outside it; and the stay-aware feed, outside the count. */
21
+ export interface BridgeHome {
22
+ readonly waiting: {
23
+ readonly count: number;
24
+ readonly items: HomeItem[];
25
+ };
26
+ readonly stayAware: HomeItem[];
27
+ }
28
+ export type ReadBridgeHome = (caller: PersonCaller) => Promise<Result<BridgeHome, PersonCrewError>>;
29
+ /**
30
+ * Use case: a person reads Bridge home (CC18). What waits is what the
31
+ * gateway takes for their person ship as its crew, as their inbox does, and
32
+ * what they opened and are not done with yet, kept to the jobs that wait on
33
+ * them, decide and do (section 6), newest first, with their count. A
34
+ * question its asker withdrew or replaced is listed stale, out of the count,
35
+ * linked to its replacement; the withdrawal itself is not listed (CC11). The
36
+ * alerts and notices that reached them and they have not seen are the
37
+ * stay-aware feed, outside the count. Everything else is in the record. A
38
+ * question whose answer is in the basket says so, and still waits until the
39
+ * basket is sent (section 9, rule 1).
40
+ */
41
+ export declare function createReadBridgeHome(deps: {
42
+ crewPersonShip: CrewPersonShip;
43
+ crews: PersonCrews;
44
+ door: PersonShipDoor;
45
+ opened: OpenedDeliveries;
46
+ entries: BasketEntries;
47
+ }): ReadBridgeHome;
@@ -0,0 +1,53 @@
1
+ import { ok } from '../shared/result.js';
2
+ import { inboxEntryOf, openedEntryOf } from './inbox-entry.js';
3
+ import { isCounted, jobOf } from './item-job.js';
4
+ import { waitingFor } from './read-inbox.js';
5
+ import { staleOf } from './stale-question.js';
6
+ /**
7
+ * The job of a delivery the person opened. One opened before the gateway
8
+ * kept its content type was listed as waiting then, so it is one to decide.
9
+ */
10
+ function openedJobOf(opened) {
11
+ return opened.contentType === null ? 'decide' : jobOf(opened.contentType);
12
+ }
13
+ /** The answer in the basket to the question a delivery asks, by its delivery; none while the basket holds none. */
14
+ function inBasketOf(entries) {
15
+ return (deliveryId) => {
16
+ const entry = entries.find((each) => each.deliveryId === deliveryId);
17
+ return entry === undefined ? null : { option: entry.option, note: entry.note };
18
+ };
19
+ }
20
+ function newestFirst(a, b) {
21
+ return b.sentAt.localeCompare(a.sentAt);
22
+ }
23
+ /**
24
+ * Use case: a person reads Bridge home (CC18). What waits is what the
25
+ * gateway takes for their person ship as its crew, as their inbox does, and
26
+ * what they opened and are not done with yet, kept to the jobs that wait on
27
+ * them, decide and do (section 6), newest first, with their count. A
28
+ * question its asker withdrew or replaced is listed stale, out of the count,
29
+ * linked to its replacement; the withdrawal itself is not listed (CC11). The
30
+ * alerts and notices that reached them and they have not seen are the
31
+ * stay-aware feed, outside the count. Everything else is in the record. A
32
+ * question whose answer is in the basket says so, and still waits until the
33
+ * basket is sent (section 9, rule 1).
34
+ */
35
+ export function createReadBridgeHome(deps) {
36
+ return async (caller) => {
37
+ const waiting = await waitingFor(deps, caller);
38
+ if (!waiting.isOk) {
39
+ return waiting;
40
+ }
41
+ const [opened, entries] = await Promise.all([deps.opened.list(caller.fleetId, waiting.value.crew.shipId), deps.entries.list(caller.fleetId, waiting.value.crew.shipId)]);
42
+ const asking = [...waiting.value.deliveries, ...opened];
43
+ const inBasket = inBasketOf(entries);
44
+ const taken = waiting.value.deliveries.map((delivery) => ({ ...inboxEntryOf(delivery), job: jobOf(delivery.contentType), state: 'new', stale: staleOf(delivery, asking), inBasket: inBasket(delivery.deliveryId) }));
45
+ const isTaken = new Set(taken.map(({ deliveryId }) => deliveryId));
46
+ const seen = opened
47
+ .filter(({ deliveryId }) => !isTaken.has(deliveryId))
48
+ .map((delivery) => ({ ...openedEntryOf(delivery), job: openedJobOf(delivery), state: 'seen', stale: staleOf(delivery, asking), inBasket: inBasket(delivery.deliveryId) }));
49
+ const items = [...taken, ...seen].filter(({ job }) => isCounted(job)).sort(newestFirst);
50
+ return ok({ waiting: { count: items.filter(({ stale }) => stale === null).length, items }, stayAware: taken.filter(({ job }) => job === 'stay-aware').sort(newestFirst) });
51
+ };
52
+ }
53
+ //# sourceMappingURL=read-bridge-home.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-bridge-home.js","sourceRoot":"","sources":["../../../src/core/people/read-bridge-home.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import type { CrewPersonShip } from './crew-person-ship.js';
3
3
  import { type InboxEntry } from './inbox-entry.js';
4
4
  import { type PersonCaller, type PersonCrewError, type PersonCrewToken } from './person-crew.js';
5
5
  import type { OpenedDeliveries, PersonCrews, PersonDelivery, PersonShipDoor } from './ports.js';
6
+ import { type RoutingDefaults, type Routes } from './routing.js';
6
7
  /** The most deliveries an inbox lists at once: as many as one receive takes. */
7
8
  export declare const INBOX_LIST_MAX = 10;
8
9
  /** A person's inbox: how many deliveries wait and the first of them, and the ones they opened and have not answered or done yet. */
@@ -28,16 +29,20 @@ export declare function waitingFor(deps: {
28
29
  deliveries: PersonDelivery[];
29
30
  }, PersonCrewError>>;
30
31
  /**
31
- * Use case: a person reads their own person ship's inbox (Q20), by titles
32
- * only, in two groups (aeolus-fleet #1046): what waits, which the gateway
33
- * takes as the ship's crew, and what any client of the person opened and
34
- * they have not answered or done yet. A delivery the fleet still holds as
35
- * waiting, as when it did not take its acknowledgement, is listed waiting
36
- * only.
32
+ * Use case: a person reads their own person ship's inbox from a chat (Q20),
33
+ * by titles only, in two groups (aeolus-fleet #1046): what waits, which the
34
+ * gateway takes as the ship's crew, and what any client of the person opened
35
+ * and they have not answered or done yet. A delivery the fleet still holds
36
+ * as waiting, as when it did not take its acknowledgement, is listed waiting
37
+ * only. A chat is a pull place (Bridge, CC7): it lists only the items of the
38
+ * jobs on for it, every one not done whenever it arrived (CC20); what it
39
+ * leaves out of what waits is left out of the count too.
37
40
  */
38
41
  export declare function createReadInbox(deps: {
39
42
  crewPersonShip: CrewPersonShip;
40
43
  crews: PersonCrews;
41
44
  door: PersonShipDoor;
42
45
  opened: OpenedDeliveries;
46
+ routes: Routes;
47
+ defaults: RoutingDefaults;
43
48
  }): ReadInbox;
@@ -1,6 +1,7 @@
1
1
  import { ok } from '../shared/result.js';
2
2
  import { inboxEntryOf, openedEntryOf } from './inbox-entry.js';
3
3
  import { asPersonCrew } from './person-crew.js';
4
+ import { routingOf } from './routing.js';
4
5
  /** The most deliveries an inbox lists at once: as many as one receive takes. */
5
6
  export const INBOX_LIST_MAX = 10;
6
7
  /**
@@ -22,12 +23,14 @@ export async function waitingFor(deps, caller) {
22
23
  return taken.isOk ? ok({ crew: taken.value.crew, waiting: value.waiting, deliveries: taken.value.value }) : taken;
23
24
  }
24
25
  /**
25
- * Use case: a person reads their own person ship's inbox (Q20), by titles
26
- * only, in two groups (aeolus-fleet #1046): what waits, which the gateway
27
- * takes as the ship's crew, and what any client of the person opened and
28
- * they have not answered or done yet. A delivery the fleet still holds as
29
- * waiting, as when it did not take its acknowledgement, is listed waiting
30
- * only.
26
+ * Use case: a person reads their own person ship's inbox from a chat (Q20),
27
+ * by titles only, in two groups (aeolus-fleet #1046): what waits, which the
28
+ * gateway takes as the ship's crew, and what any client of the person opened
29
+ * and they have not answered or done yet. A delivery the fleet still holds
30
+ * as waiting, as when it did not take its acknowledgement, is listed waiting
31
+ * only. A chat is a pull place (Bridge, CC7): it lists only the items of the
32
+ * jobs on for it, every one not done whenever it arrived (CC20); what it
33
+ * leaves out of what waits is left out of the count too.
31
34
  */
32
35
  export function createReadInbox(deps) {
33
36
  return async (caller) => {
@@ -35,12 +38,16 @@ export function createReadInbox(deps) {
35
38
  if (!waiting.isOk) {
36
39
  return waiting;
37
40
  }
41
+ const ship = { fleetId: caller.fleetId, shipId: waiting.value.crew.shipId };
42
+ const routing = routingOf(await deps.routes.list(ship), deps.defaults);
38
43
  const isWaiting = new Set(waiting.value.deliveries.map(({ deliveryId }) => deliveryId));
39
- const opened = await deps.opened.list(caller.fleetId, waiting.value.crew.shipId);
44
+ const listed = waiting.value.deliveries.filter((delivery) => routing.isShowing('chat', delivery));
45
+ const opened = await deps.opened.list(ship.fleetId, ship.shipId);
40
46
  return ok({
41
- waiting: waiting.value.waiting,
42
- deliveries: waiting.value.deliveries.map(inboxEntryOf),
43
- opened: opened.filter(({ deliveryId }) => !isWaiting.has(deliveryId)).map(openedEntryOf),
47
+ waiting: waiting.value.waiting - (waiting.value.deliveries.length - listed.length),
48
+ deliveries: listed.map(inboxEntryOf),
49
+ // One opened before the gateway kept its content type is everything else.
50
+ opened: opened.filter(({ deliveryId, contentType, sentAt }) => !isWaiting.has(deliveryId) && routing.isShowing('chat', { contentType: contentType ?? '', sentAt })).map(openedEntryOf),
44
51
  });
45
52
  };
46
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"read-inbox.js","sourceRoot":"","sources":["../../../src/core/people/read-inbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAmB,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,YAAY,EAAiE,MAAM,kBAAkB,CAAC;AAG/G,gFAAgF;AAChF,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AAWjC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,IAAkF,EAClF,MAAoB;IAEpB,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACrG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAClB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC;IACtC,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC;IAClI,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACpH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,IAA4G;IAC1I,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE;QACtB,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAS,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QAChG,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjF,OAAO,EAAE,CAAC;YACR,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO;YAC9B,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC;YACtD,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC;SACzF,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"read-inbox.js","sourceRoot":"","sources":["../../../src/core/people/read-inbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAmB,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,YAAY,EAAiE,MAAM,kBAAkB,CAAC;AAE/G,OAAO,EAAE,SAAS,EAAqC,MAAM,cAAc,CAAC;AAE5E,gFAAgF;AAChF,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AAWjC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,IAAkF,EAClF,MAAoB;IAEpB,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACrG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAClB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC;IACtC,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC;IAClI,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACpH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAAC,IAAuJ;IACrL,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE;QACtB,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAC5E,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAS,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QAChG,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;QAClG,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACjE,OAAO,EAAE,CAAC;YACR,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAClF,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC;YACpC,0EAA0E;YAC1E,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,WAAW,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC;SACvL,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,48 @@
1
+ import type { DeliveryId } from '@aeolus-fleet/common';
2
+ import { type Result } from '../shared/result.js';
3
+ import type { CrewPersonShip } from './crew-person-ship.js';
4
+ import { type InboxEntry } from './inbox-entry.js';
5
+ import { type ItemJob } from './item-job.js';
6
+ import type { ItemOutcomes, OutcomeKind, Place } from './item-outcome.js';
7
+ import { type ItemState } from './item-state.js';
8
+ import { type PersonCaller, type PersonCrewError } from './person-crew.js';
9
+ import type { PersonCrews, PersonShipDoor } from './ports.js';
10
+ /** A page of the record: what one screen shows (performance, a page that fits it). */
11
+ export declare const RECORD_PAGE_SIZE = 20;
12
+ /** The title of a sealed message the fleet cannot unseal now: its payload is empty (decision 0068). */
13
+ export declare const SEALED_TITLE = "A sealed message: the fleet cannot unseal it now";
14
+ /** What came of an item and where, as Bridge shows it. */
15
+ export interface ShownOutcome {
16
+ readonly place: Place;
17
+ readonly kind: OutcomeKind;
18
+ readonly option: number | null;
19
+ readonly at: string;
20
+ }
21
+ /** An item of the record (Bridge, section 6): a delivery to the person ship by its title, its job, its state and its outcome once kept. */
22
+ export interface RecordItem extends InboxEntry {
23
+ readonly job: ItemJob;
24
+ readonly state: ItemState;
25
+ readonly outcome: ShownOutcome | null;
26
+ }
27
+ export interface RecordRead {
28
+ readonly items: RecordItem[];
29
+ readonly nextCursor: DeliveryId | null;
30
+ }
31
+ export type ReadRecord = (input: {
32
+ caller: PersonCaller;
33
+ cursor: DeliveryId | null;
34
+ }) => Promise<Result<RecordRead, PersonCrewError>>;
35
+ /**
36
+ * Use case: a person reads their person ship's record (Bridge, CC12), a page
37
+ * at a time, newest first, as core keeps it across the ship's leases: each
38
+ * item with its job, its state, and what came of it and where once the
39
+ * gateway kept that. Reading changes nothing. When the fleet does not
40
+ * answer, the record cannot be read now; nothing was acknowledged, so
41
+ * nothing is lost.
42
+ */
43
+ export declare function createReadRecord(deps: {
44
+ crewPersonShip: CrewPersonShip;
45
+ crews: PersonCrews;
46
+ door: PersonShipDoor;
47
+ outcomes: ItemOutcomes;
48
+ }): ReadRecord;
@@ -0,0 +1,44 @@
1
+ import { refuse } from '../shared/errors.js';
2
+ import { ok } from '../shared/result.js';
3
+ import { inboxEntryOf } from './inbox-entry.js';
4
+ import { jobOf } from './item-job.js';
5
+ import { itemStateOf } from './item-state.js';
6
+ import { asPersonCrew, withOwnRefusal } from './person-crew.js';
7
+ /** A page of the record: what one screen shows (performance, a page that fits it). */
8
+ export const RECORD_PAGE_SIZE = 20;
9
+ /** The title of a sealed message the fleet cannot unseal now: its payload is empty (decision 0068). */
10
+ export const SEALED_TITLE = 'A sealed message: the fleet cannot unseal it now';
11
+ /**
12
+ * Use case: a person reads their person ship's record (Bridge, CC12), a page
13
+ * at a time, newest first, as core keeps it across the ship's leases: each
14
+ * item with its job, its state, and what came of it and where once the
15
+ * gateway kept that. Reading changes nothing. When the fleet does not
16
+ * answer, the record cannot be read now; nothing was acknowledged, so
17
+ * nothing is lost.
18
+ */
19
+ export function createReadRecord(deps) {
20
+ return async ({ caller, cursor }) => {
21
+ const read = await asPersonCrew(deps, { caller, run: (crew) => withOwnRefusal(deps.door.record(crew.crewToken, { cursor, limit: RECORD_PAGE_SIZE })) });
22
+ if (!read.isOk) {
23
+ return read;
24
+ }
25
+ const page = read.value.value;
26
+ if (!page.isOk) {
27
+ return refuse('FLEET_UNAVAILABLE', `The record cannot be read now: ${page.error.message}. Nothing is lost`);
28
+ }
29
+ const kept = await deps.outcomes.findMany(caller.fleetId, { shipId: read.value.crew.shipId, deliveryIds: page.value.items.map(({ deliveryId }) => deliveryId) });
30
+ const outcomeOf = new Map(kept.map((outcome) => [outcome.deliveryId, outcome]));
31
+ return ok({ items: page.value.items.map((delivery) => recordItemOf(delivery, outcomeOf.get(delivery.deliveryId))), nextCursor: page.value.nextCursor });
32
+ };
33
+ }
34
+ function recordItemOf(delivery, outcome) {
35
+ const entry = inboxEntryOf(delivery);
36
+ return {
37
+ ...entry,
38
+ title: delivery.isPayloadUnreadable ? SEALED_TITLE : entry.title,
39
+ job: jobOf(delivery.contentType),
40
+ state: itemStateOf(delivery.state),
41
+ outcome: outcome === undefined ? null : { place: outcome.place, kind: outcome.kind, option: outcome.option, at: outcome.at.toISOString() },
42
+ };
43
+ }
44
+ //# sourceMappingURL=read-record.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-record.js","sourceRoot":"","sources":["../../../src/core/people/read-record.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { type Result } from '../shared/result.js';
2
+ import type { CrewPersonShip } from './crew-person-ship.js';
3
+ import type { ItemJob } from './item-job.js';
4
+ import { type PersonCaller, type PersonCrewError } from './person-crew.js';
5
+ import { type RoutingDefaults, type RoutingPlace, type Routes } from './routing.js';
6
+ /** Where each job shows besides Bridge, as Bridge's routing page draws it, and the places the gateway offers. */
7
+ export interface RoutingView {
8
+ readonly offered: Readonly<Record<RoutingPlace, boolean>>;
9
+ readonly jobs: readonly {
10
+ readonly job: ItemJob;
11
+ readonly places: Readonly<Record<RoutingPlace, boolean>>;
12
+ }[];
13
+ }
14
+ export type ReadRouting = (caller: PersonCaller) => Promise<Result<RoutingView, PersonCrewError>>;
15
+ /**
16
+ * Use case: where the caller's items show, per job and place (Bridge,
17
+ * section 8): their own choices, the gateway's defaults where they made
18
+ * none (CC19).
19
+ */
20
+ export declare function createReadRouting(deps: {
21
+ crewPersonShip: CrewPersonShip;
22
+ routes: Routes;
23
+ defaults: RoutingDefaults;
24
+ isEmailOffered: boolean;
25
+ isWebPushOffered: boolean;
26
+ }): ReadRouting;
@@ -0,0 +1,22 @@
1
+ import { ok } from '../shared/result.js';
2
+ import { personCrewOf } from './person-crew.js';
3
+ import { ITEM_JOBS, routingOf } from './routing.js';
4
+ import { isOfferedPlace } from './turn-route.js';
5
+ const placesOf = (isOn) => ({ slack: isOn('slack'), chat: isOn('chat'), 'web-push': isOn('web-push'), email: isOn('email') });
6
+ /**
7
+ * Use case: where the caller's items show, per job and place (Bridge,
8
+ * section 8): their own choices, the gateway's defaults where they made
9
+ * none (CC19).
10
+ */
11
+ export function createReadRouting(deps) {
12
+ return async (caller) => {
13
+ const crew = await personCrewOf(deps.crewPersonShip, caller);
14
+ if (!crew.isOk) {
15
+ return crew;
16
+ }
17
+ const routing = routingOf(await deps.routes.list({ fleetId: caller.fleetId, shipId: crew.value.shipId }), deps.defaults);
18
+ const offered = placesOf((place) => isOfferedPlace(place, deps));
19
+ return ok({ offered, jobs: ITEM_JOBS.map((job) => ({ job, places: placesOf((place) => routing.isOn(job, place)) })) });
20
+ };
21
+ }
22
+ //# sourceMappingURL=read-routing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-routing.js","sourceRoot":"","sources":["../../../src/core/people/read-routing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EAAE,YAAY,EAA2C,MAAM,kBAAkB,CAAC;AACzF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAwD,MAAM,cAAc,CAAC;AAC1G,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAUjD,MAAM,QAAQ,GAAG,CAAC,IAAsC,EAAiC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAE/L;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAuI;IACvK,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE;QACtB,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzH,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QACjE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACzH,CAAC,CAAC;AACJ,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { type Result } from '../shared/result.js';
2
2
  import type { CrewPersonShip } from './crew-person-ship.js';
3
3
  import { type PersonCaller, type PersonCrewError } from './person-crew.js';
4
- import type { EmailChannels, WebPushSubscriptions } from './ports.js';
5
- /** A browser a person turned web push on in, as the overview lists it: gone once its push service ended the subscription. */
4
+ import type { WebPushSubscriptions } from './ports.js';
5
+ /** A browser a person turned web push on in, as Bridge's settings list it: gone once its push service ended the subscription. */
6
6
  export interface WebPushBrowser {
7
7
  readonly endpoint: string;
8
8
  readonly browser: string;
@@ -10,15 +10,14 @@ export interface WebPushBrowser {
10
10
  readonly isGone: boolean;
11
11
  }
12
12
  /**
13
- * The channels that wake a person, as their overview shows them: email
14
- * offered or not, and on or not; web push with the gateway's public push
13
+ * The channels that wake a person, as Bridge's settings show them: email
14
+ * offered or not; web push with the gateway's public push
15
15
  * key a browser subscribes with, none where it is not offered, and the
16
16
  * browsers they turned it on in.
17
17
  */
18
18
  export interface WakeChannels {
19
19
  readonly email: {
20
20
  readonly isOffered: boolean;
21
- readonly isOn: boolean;
22
21
  };
23
22
  readonly webPush: {
24
23
  readonly publicKey: string | null;
@@ -29,12 +28,12 @@ export type ReadWakeChannels = (caller: PersonCaller) => Promise<Result<WakeChan
29
28
  /**
30
29
  * Use case: the channels that wake a person when something waits for their
31
30
  * person ship (wake a person, W8). Email is offered only where the gateway
32
- * can ask pagasae to send it, web push only where it holds push keys;
33
- * nothing is on by default. A browser's keys are never shown.
31
+ * can ask pagasae to send it, web push only where it holds push keys; which
32
+ * jobs each wakes for is routed per job (Bridge, section 8). A browser's
33
+ * keys are never shown.
34
34
  */
35
35
  export declare function createReadWakeChannels(deps: {
36
36
  crewPersonShip: CrewPersonShip;
37
- emailChannels: EmailChannels;
38
37
  isEmailOffered: boolean;
39
38
  subscriptions: WebPushSubscriptions;
40
39
  /** The gateway's public push key; none where it holds no push keys. */
@@ -3,8 +3,9 @@ import { personCrewOf } from './person-crew.js';
3
3
  /**
4
4
  * Use case: the channels that wake a person when something waits for their
5
5
  * person ship (wake a person, W8). Email is offered only where the gateway
6
- * can ask pagasae to send it, web push only where it holds push keys;
7
- * nothing is on by default. A browser's keys are never shown.
6
+ * can ask pagasae to send it, web push only where it holds push keys; which
7
+ * jobs each wakes for is routed per job (Bridge, section 8). A browser's
8
+ * keys are never shown.
8
9
  */
9
10
  export function createReadWakeChannels(deps) {
10
11
  return async (caller) => {
@@ -13,9 +14,8 @@ export function createReadWakeChannels(deps) {
13
14
  return crew;
14
15
  }
15
16
  const ship = { fleetId: caller.fleetId, shipId: crew.value.shipId };
16
- const isOn = deps.isEmailOffered && (await deps.emailChannels.isOn(ship));
17
17
  const browsers = deps.webPushKey === null ? [] : (await deps.subscriptions.list(ship.fleetId, ship.shipId)).map(({ endpoint, browser, addedAt, goneAt }) => ({ endpoint, browser, addedAt, isGone: goneAt !== null }));
18
- return ok({ email: { isOffered: deps.isEmailOffered, isOn }, webPush: { publicKey: deps.webPushKey, browsers } });
18
+ return ok({ email: { isOffered: deps.isEmailOffered }, webPush: { publicKey: deps.webPushKey, browsers } });
19
19
  };
20
20
  }
21
21
  //# sourceMappingURL=read-wake-channels.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"read-wake-channels.js","sourceRoot":"","sources":["../../../src/core/people/read-wake-channels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAA2C,MAAM,kBAAkB,CAAC;AAwBzF;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAOtC;IACC,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE;QACtB,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACpE,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,IAAI,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1E,MAAM,QAAQ,GACZ,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;QACxM,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IACpH,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"read-wake-channels.js","sourceRoot":"","sources":["../../../src/core/people/read-wake-channels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAe,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAA2C,MAAM,kBAAkB,CAAC;AAwBzF;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAMtC;IACC,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE;QACtB,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACpE,MAAM,QAAQ,GACZ,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;QACxM,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC9G,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { type DomainError } from '../shared/errors.js';
2
+ import { type Result } from '../shared/result.js';
3
+ import { type DealDeps, type DealtError } from './opened-of.js';
4
+ import type { PersonCaller } from './person-crew.js';
5
+ import { type BasketDeps } from './read-basket.js';
6
+ export type RemoveFromBasket = (input: {
7
+ caller: PersonCaller;
8
+ questionId: string;
9
+ }) => Promise<Result<{
10
+ questionId: string;
11
+ }, DealtError | DomainError<'NOT_IN_BASKET' | 'CONFLICT'>>>;
12
+ /**
13
+ * Use case: the person removes an entry from the basket (section 9). One
14
+ * waiting leaves it, and its question still waits on them. One the fleet
15
+ * refused leaves it and its question is done, as not sent; kept while the
16
+ * fleet does not take that, so they can remove it again. One whose question
17
+ * its asker withdrew or replaced leaves it, and the question is done as
18
+ * such; one answered elsewhere just leaves. One being sent goes as stored.
19
+ */
20
+ export declare function createRemoveFromBasket(deps: BasketDeps & DealDeps): RemoveFromBasket;