@aeolus-fleet/gateway 0.36.2 → 0.36.3

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 (504) hide show
  1. package/README.md +4 -0
  2. package/dist/adapters/fleet/actor-door.d.ts +8 -1
  3. package/dist/adapters/fleet/actor-door.js +12 -5
  4. package/dist/adapters/fleet/actor-door.js.map +1 -1
  5. package/dist/adapters/fleet/argo-inbox-door.d.ts +4 -0
  6. package/dist/adapters/fleet/argo-inbox-door.js +81 -0
  7. package/dist/adapters/fleet/argo-inbox-door.js.map +1 -0
  8. package/dist/adapters/fleet/rest-fleet-door.d.ts +14 -0
  9. package/dist/adapters/fleet/rest-fleet-door.js +11 -1
  10. package/dist/adapters/fleet/rest-fleet-door.js.map +1 -1
  11. package/dist/adapters/http/front-door.js +3 -1
  12. package/dist/adapters/http/front-door.js.map +1 -1
  13. package/dist/adapters/http/live.d.ts +10 -1
  14. package/dist/adapters/http/live.js +10 -1
  15. package/dist/adapters/http/live.js.map +1 -1
  16. package/dist/adapters/pagasae/email-channel.js +5 -3
  17. package/dist/adapters/pagasae/email-channel.js.map +1 -1
  18. package/dist/adapters/pagasae/pagasae-client.js +1 -0
  19. package/dist/adapters/pagasae/pagasae-client.js.map +1 -1
  20. package/dist/adapters/pagasae/shared-sign-in.js +2 -2
  21. package/dist/adapters/pagasae/shared-sign-in.js.map +1 -1
  22. package/dist/adapters/prisma/argo-accounts.d.ts +4 -0
  23. package/dist/adapters/prisma/argo-accounts.js +17 -0
  24. package/dist/adapters/prisma/argo-accounts.js.map +1 -0
  25. package/dist/adapters/prisma/argo-slack-posts.d.ts +4 -0
  26. package/dist/adapters/prisma/argo-slack-posts.js +30 -0
  27. package/dist/adapters/prisma/argo-slack-posts.js.map +1 -0
  28. package/dist/adapters/prisma/argo-wakes.d.ts +4 -0
  29. package/dist/adapters/prisma/argo-wakes.js +54 -0
  30. package/dist/adapters/prisma/argo-wakes.js.map +1 -0
  31. package/dist/adapters/prisma/fleet-forgetter.d.ts +1 -1
  32. package/dist/adapters/prisma/fleet-forgetter.js +2 -2
  33. package/dist/adapters/prisma/fleet-forgetter.js.map +1 -1
  34. package/dist/adapters/prisma/generated/browser.d.ts +20 -0
  35. package/dist/adapters/prisma/generated/client.d.ts +20 -0
  36. package/dist/adapters/prisma/generated/internal/class.d.ts +44 -0
  37. package/dist/adapters/prisma/generated/internal/class.js +4 -4
  38. package/dist/adapters/prisma/generated/internal/class.js.map +1 -1
  39. package/dist/adapters/prisma/generated/internal/prismaNamespace.d.ts +334 -1
  40. package/dist/adapters/prisma/generated/internal/prismaNamespace.js +30 -1
  41. package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -1
  42. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +33 -0
  43. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +30 -1
  44. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
  45. package/dist/adapters/prisma/generated/models/ArgoAccount.d.ts +946 -0
  46. package/dist/adapters/prisma/generated/models/ArgoAccount.js +2 -0
  47. package/dist/adapters/prisma/generated/models/ArgoAccount.js.map +1 -0
  48. package/dist/adapters/prisma/generated/models/ArgoMessageCovered.d.ts +947 -0
  49. package/dist/adapters/prisma/generated/models/ArgoMessageCovered.js +2 -0
  50. package/dist/adapters/prisma/generated/models/ArgoMessageCovered.js.map +1 -0
  51. package/dist/adapters/prisma/generated/models/ArgoSlackPost.d.ts +1065 -0
  52. package/dist/adapters/prisma/generated/models/ArgoSlackPost.js +2 -0
  53. package/dist/adapters/prisma/generated/models/ArgoSlackPost.js.map +1 -0
  54. package/dist/adapters/prisma/generated/models/ArgoWakeSent.d.ts +975 -0
  55. package/dist/adapters/prisma/generated/models/ArgoWakeSent.js +2 -0
  56. package/dist/adapters/prisma/generated/models/ArgoWakeSent.js.map +1 -0
  57. package/dist/adapters/prisma/generated/models.d.ts +4 -0
  58. package/dist/adapters/slack/slack-messages.js +5 -4
  59. package/dist/adapters/slack/slack-messages.js.map +1 -1
  60. package/dist/adapters/trpc/router.d.ts +24 -0
  61. package/dist/adapters/trpc/router.js +11 -0
  62. package/dist/adapters/trpc/router.js.map +1 -1
  63. package/dist/adapters/web-push/web-push.js +1 -1
  64. package/dist/adapters/web-push/web-push.js.map +1 -1
  65. package/dist/app.js +89 -2
  66. package/dist/app.js.map +1 -1
  67. package/dist/core/account-sign-in/account-of-sign-in.d.ts +7 -2
  68. package/dist/core/account-sign-in/account-of-sign-in.js +9 -3
  69. package/dist/core/account-sign-in/account-of-sign-in.js.map +1 -1
  70. package/dist/core/account-sign-in/ports.d.ts +2 -0
  71. package/dist/core/argo-inbox/argo-inbox.d.ts +31 -0
  72. package/dist/core/argo-inbox/argo-inbox.js +23 -0
  73. package/dist/core/argo-inbox/argo-inbox.js.map +1 -0
  74. package/dist/core/argo-inbox/argo-slack-message.d.ts +17 -0
  75. package/dist/core/argo-inbox/argo-slack-message.js +40 -0
  76. package/dist/core/argo-inbox/argo-slack-message.js.map +1 -0
  77. package/dist/core/argo-inbox/argo-slack-post.d.ts +21 -0
  78. package/dist/core/argo-inbox/argo-slack-post.js +2 -0
  79. package/dist/core/argo-inbox/argo-slack-post.js.map +1 -0
  80. package/dist/core/argo-inbox/follow-argo-inbox.d.ts +33 -0
  81. package/dist/core/argo-inbox/follow-argo-inbox.js +133 -0
  82. package/dist/core/argo-inbox/follow-argo-inbox.js.map +1 -0
  83. package/dist/core/argo-inbox/note-argo-account.d.ts +19 -0
  84. package/dist/core/argo-inbox/note-argo-account.js +18 -0
  85. package/dist/core/argo-inbox/note-argo-account.js.map +1 -0
  86. package/dist/core/argo-inbox/ports.d.ts +123 -0
  87. package/dist/core/argo-inbox/ports.js +2 -0
  88. package/dist/core/argo-inbox/ports.js.map +1 -0
  89. package/dist/core/argo-inbox/read-argo-inbox-notice.d.ts +34 -0
  90. package/dist/core/argo-inbox/read-argo-inbox-notice.js +20 -0
  91. package/dist/core/argo-inbox/read-argo-inbox-notice.js.map +1 -0
  92. package/dist/core/argo-inbox/read-argo-section.d.ts +54 -0
  93. package/dist/core/argo-inbox/read-argo-section.js +67 -0
  94. package/dist/core/argo-inbox/read-argo-section.js.map +1 -0
  95. package/dist/core/argo-inbox/show-argo-inbox-in-slack.d.ts +36 -0
  96. package/dist/core/argo-inbox/show-argo-inbox-in-slack.js +125 -0
  97. package/dist/core/argo-inbox/show-argo-inbox-in-slack.js.map +1 -0
  98. package/dist/core/argo-inbox/wake-for-argo.d.ts +37 -0
  99. package/dist/core/argo-inbox/wake-for-argo.js +139 -0
  100. package/dist/core/argo-inbox/wake-for-argo.js.map +1 -0
  101. package/dist/core/oauth/exchange-id-jag.d.ts +4 -1
  102. package/dist/core/oauth/exchange-id-jag.js +5 -2
  103. package/dist/core/oauth/exchange-id-jag.js.map +1 -1
  104. package/dist/core/people/person-wakes.d.ts +49 -0
  105. package/dist/core/people/person-wakes.js +27 -0
  106. package/dist/core/people/person-wakes.js.map +1 -0
  107. package/dist/core/people/ports.d.ts +6 -2
  108. package/dist/core/people/wake-person.js +1 -1
  109. package/dist/core/people/wake-person.js.map +1 -1
  110. package/dist/core/people/web-push-channel.js +2 -2
  111. package/dist/core/people/web-push-channel.js.map +1 -1
  112. package/dist/core/sign-in/account-token.d.ts +5 -1
  113. package/dist/core/sign-in/account-token.js +8 -2
  114. package/dist/core/sign-in/account-token.js.map +1 -1
  115. package/dist/core/sign-in/complete-sign-in.d.ts +4 -1
  116. package/dist/core/sign-in/complete-sign-in.js +5 -2
  117. package/dist/core/sign-in/complete-sign-in.js.map +1 -1
  118. package/dist/core/sign-in/ports.d.ts +2 -0
  119. package/dist/core/slack/edited-post-of.d.ts +2 -0
  120. package/dist/core/slack/edited-post-of.js +1 -1
  121. package/dist/core/slack/edited-post-of.js.map +1 -1
  122. package/dist/core/slack/ports.d.ts +6 -4
  123. package/package.json +3 -2
  124. package/src/adapters/prisma/migrations/20261109090000_argo_accounts/migration.sql +8 -0
  125. package/src/adapters/prisma/migrations/20261110090000_argo_slack_posts/migration.sql +12 -0
  126. package/src/adapters/prisma/migrations/20261110100000_argo_wakes/migration.sql +18 -0
  127. package/src/adapters/prisma/schema.prisma +47 -0
  128. package/web/.next/BUILD_ID +1 -1
  129. package/web/.next/build-manifest.json +3 -3
  130. package/web/.next/diagnostics/route-bundle-stats.json +130 -128
  131. package/web/.next/fallback-build-manifest.json +3 -3
  132. package/web/.next/prerender-manifest.json +3 -3
  133. package/web/.next/server/app/(bridge)/bridge/basket/page/server-reference-manifest.json +10 -10
  134. package/web/.next/server/app/(bridge)/bridge/basket/page.js +6 -6
  135. package/web/.next/server/app/(bridge)/bridge/basket/page.js.nft.json +1 -1
  136. package/web/.next/server/app/(bridge)/bridge/basket/page_client-reference-manifest.js +1 -1
  137. package/web/.next/server/app/(bridge)/bridge/done/page/server-reference-manifest.json +2 -2
  138. package/web/.next/server/app/(bridge)/bridge/done/page.js +6 -6
  139. package/web/.next/server/app/(bridge)/bridge/done/page.js.nft.json +1 -1
  140. package/web/.next/server/app/(bridge)/bridge/done/page_client-reference-manifest.js +1 -1
  141. package/web/.next/server/app/(bridge)/bridge/fleet/page/server-reference-manifest.json +1 -1
  142. package/web/.next/server/app/(bridge)/bridge/fleet/page.js +6 -6
  143. package/web/.next/server/app/(bridge)/bridge/fleet/page.js.nft.json +1 -1
  144. package/web/.next/server/app/(bridge)/bridge/fleet/page_client-reference-manifest.js +1 -1
  145. package/web/.next/server/app/(bridge)/bridge/page/server-reference-manifest.json +9 -9
  146. package/web/.next/server/app/(bridge)/bridge/page.js +6 -6
  147. package/web/.next/server/app/(bridge)/bridge/page.js.nft.json +1 -1
  148. package/web/.next/server/app/(bridge)/bridge/page_client-reference-manifest.js +1 -1
  149. package/web/.next/server/app/(bridge)/bridge/settings/page/server-reference-manifest.json +1 -1
  150. package/web/.next/server/app/(bridge)/bridge/settings/page.js +7 -7
  151. package/web/.next/server/app/(bridge)/bridge/settings/page.js.nft.json +1 -1
  152. package/web/.next/server/app/(bridge)/bridge/settings/page_client-reference-manifest.js +1 -1
  153. package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page/server-reference-manifest.json +2 -2
  154. package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page.js +6 -6
  155. package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page.js.nft.json +1 -1
  156. package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page_client-reference-manifest.js +1 -1
  157. package/web/.next/server/app/(bridge)/bridge/settings/routing/page/server-reference-manifest.json +5 -5
  158. package/web/.next/server/app/(bridge)/bridge/settings/routing/page.js +4 -4
  159. package/web/.next/server/app/(bridge)/bridge/settings/routing/page.js.nft.json +1 -1
  160. package/web/.next/server/app/(bridge)/bridge/settings/routing/page_client-reference-manifest.js +1 -1
  161. package/web/.next/server/app/(bridge)/bridge/stay-aware/page/server-reference-manifest.json +9 -9
  162. package/web/.next/server/app/(bridge)/bridge/stay-aware/page.js +5 -5
  163. package/web/.next/server/app/(bridge)/bridge/stay-aware/page.js.nft.json +1 -1
  164. package/web/.next/server/app/(bridge)/bridge/stay-aware/page_client-reference-manifest.js +1 -1
  165. package/web/.next/server/app/(console)/gateway-off/page/server-reference-manifest.json +1 -1
  166. package/web/.next/server/app/(console)/gateway-off/page.js +2 -2
  167. package/web/.next/server/app/(console)/gateway-off/page.js.nft.json +1 -1
  168. package/web/.next/server/app/(console)/gateway-off/page_client-reference-manifest.js +1 -1
  169. package/web/.next/server/app/(console)/meetings/[meetingId]/page/server-reference-manifest.json +3 -3
  170. package/web/.next/server/app/(console)/meetings/[meetingId]/page.js +2 -2
  171. package/web/.next/server/app/(console)/meetings/[meetingId]/page.js.nft.json +1 -1
  172. package/web/.next/server/app/(console)/meetings/[meetingId]/page_client-reference-manifest.js +1 -1
  173. package/web/.next/server/app/(console)/outside-parties/[name]/change/page/server-reference-manifest.json +15 -15
  174. package/web/.next/server/app/(console)/outside-parties/[name]/change/page.js +2 -2
  175. package/web/.next/server/app/(console)/outside-parties/[name]/change/page.js.nft.json +1 -1
  176. package/web/.next/server/app/(console)/outside-parties/[name]/change/page_client-reference-manifest.js +1 -1
  177. package/web/.next/server/app/(console)/outside-parties/[name]/page/server-reference-manifest.json +8 -8
  178. package/web/.next/server/app/(console)/outside-parties/[name]/page.js +2 -2
  179. package/web/.next/server/app/(console)/outside-parties/[name]/page.js.nft.json +1 -1
  180. package/web/.next/server/app/(console)/outside-parties/[name]/page_client-reference-manifest.js +1 -1
  181. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page/server-reference-manifest.json +15 -15
  182. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page.js +2 -2
  183. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page.js.nft.json +1 -1
  184. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page_client-reference-manifest.js +1 -1
  185. package/web/.next/server/app/(console)/outside-parties/add/page/server-reference-manifest.json +10 -10
  186. package/web/.next/server/app/(console)/outside-parties/add/page.js +2 -2
  187. package/web/.next/server/app/(console)/outside-parties/add/page.js.nft.json +1 -1
  188. package/web/.next/server/app/(console)/outside-parties/add/page_client-reference-manifest.js +1 -1
  189. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page/server-reference-manifest.json +2 -2
  190. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page.js +2 -2
  191. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page.js.nft.json +1 -1
  192. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page_client-reference-manifest.js +1 -1
  193. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page/server-reference-manifest.json +2 -2
  194. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page.js +2 -2
  195. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page.js.nft.json +1 -1
  196. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page_client-reference-manifest.js +1 -1
  197. package/web/.next/server/app/(console)/outside-parties/page/server-reference-manifest.json +2 -2
  198. package/web/.next/server/app/(console)/outside-parties/page.js +2 -2
  199. package/web/.next/server/app/(console)/outside-parties/page.js.nft.json +1 -1
  200. package/web/.next/server/app/(console)/outside-parties/page_client-reference-manifest.js +1 -1
  201. package/web/.next/server/app/(console)/parties/page/server-reference-manifest.json +7 -7
  202. package/web/.next/server/app/(console)/parties/page.js +2 -2
  203. package/web/.next/server/app/(console)/parties/page.js.nft.json +1 -1
  204. package/web/.next/server/app/(console)/parties/page_client-reference-manifest.js +1 -1
  205. package/web/.next/server/app/(console)/sign-in/failed/page/server-reference-manifest.json +1 -1
  206. package/web/.next/server/app/(console)/sign-in/failed/page.js +2 -2
  207. package/web/.next/server/app/(console)/sign-in/failed/page.js.nft.json +1 -1
  208. package/web/.next/server/app/(console)/sign-in/failed/page_client-reference-manifest.js +1 -1
  209. package/web/.next/server/app/(console)/slack/disconnect/page/server-reference-manifest.json +11 -11
  210. package/web/.next/server/app/(console)/slack/disconnect/page.js +2 -2
  211. package/web/.next/server/app/(console)/slack/disconnect/page.js.nft.json +1 -1
  212. package/web/.next/server/app/(console)/slack/disconnect/page_client-reference-manifest.js +1 -1
  213. package/web/.next/server/app/(console)/slack/expose/page/server-reference-manifest.json +11 -11
  214. package/web/.next/server/app/(console)/slack/expose/page.js +2 -2
  215. package/web/.next/server/app/(console)/slack/expose/page.js.nft.json +1 -1
  216. package/web/.next/server/app/(console)/slack/expose/page_client-reference-manifest.js +1 -1
  217. package/web/.next/server/app/(console)/slack/page/server-reference-manifest.json +11 -11
  218. package/web/.next/server/app/(console)/slack/page.js +2 -2
  219. package/web/.next/server/app/(console)/slack/page.js.nft.json +1 -1
  220. package/web/.next/server/app/(console)/slack/page_client-reference-manifest.js +1 -1
  221. package/web/.next/server/app/(console)/slack/remove/page/server-reference-manifest.json +11 -11
  222. package/web/.next/server/app/(console)/slack/remove/page.js +2 -2
  223. package/web/.next/server/app/(console)/slack/remove/page.js.nft.json +1 -1
  224. package/web/.next/server/app/(console)/slack/remove/page_client-reference-manifest.js +1 -1
  225. package/web/.next/server/app/_global-error.html +1 -1
  226. package/web/.next/server/app/_global-error.rsc +1 -1
  227. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  228. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  229. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  230. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  231. package/web/.next/server/app/_not-found/page.js +2 -2
  232. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  233. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  234. package/web/.next/server/app/authorize/failed/page/server-reference-manifest.json +1 -1
  235. package/web/.next/server/app/authorize/failed/page.js +3 -4
  236. package/web/.next/server/app/authorize/failed/page.js.nft.json +1 -1
  237. package/web/.next/server/app/authorize/failed/page_client-reference-manifest.js +1 -1
  238. package/web/.next/server/app/authorize/pick/page/server-reference-manifest.json +1 -1
  239. package/web/.next/server/app/authorize/pick/page.js +3 -4
  240. package/web/.next/server/app/authorize/pick/page.js.nft.json +1 -1
  241. package/web/.next/server/app/authorize/pick/page_client-reference-manifest.js +1 -1
  242. package/web/.next/server/app/authorize/waiting/approval/page/server-reference-manifest.json +1 -1
  243. package/web/.next/server/app/authorize/waiting/approval/page.js +3 -4
  244. package/web/.next/server/app/authorize/waiting/approval/page.js.nft.json +1 -1
  245. package/web/.next/server/app/authorize/waiting/approval/page_client-reference-manifest.js +1 -1
  246. package/web/.next/server/chunks/ssr/01fr_app_(bridge)_bridge_settings_requests_[requestId]_page_actions_0o8g7_xshtmem.js +1 -1
  247. package/web/.next/server/chunks/ssr/01fr_app_(bridge)_bridge_settings_requests_[requestId]_page_actions_0o8g7_xshtmem.js.map +1 -1
  248. package/web/.next/server/chunks/ssr/0b9d__next-internal_server_app_(bridge)_bridge_stay-aware_page_actions_1u0xo0v3y9c34.js +1 -1
  249. package/web/.next/server/chunks/ssr/0b9d__next-internal_server_app_(bridge)_bridge_stay-aware_page_actions_1u0xo0v3y9c34.js.map +1 -1
  250. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_bridge_settings_routing_page_actions_06_j7s24dy5ee.js +1 -1
  251. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_bridge_settings_routing_page_actions_06_j7s24dy5ee.js.map +1 -1
  252. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_change_page_actions_04td11fxohsfm.js +1 -1
  253. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_change_page_actions_04td11fxohsfm.js.map +1 -1
  254. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_page_actions_0u-45itza1ls7.js +1 -1
  255. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_page_actions_0u-45itza1ls7.js.map +1 -1
  256. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_retire_page_actions_0s7ps6i0ts7v5.js +1 -1
  257. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_retire_page_actions_0s7ps6i0ts7v5.js.map +1 -1
  258. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add-a2a-client_page_actions_0d_wgiu94c32e.js +1 -1
  259. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add-a2a-client_page_actions_0d_wgiu94c32e.js.map +1 -1
  260. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add_page_actions_0yfz_dfn-8uo7.js +1 -1
  261. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add_page_actions_0yfz_dfn-8uo7.js.map +1 -1
  262. package/web/.next/server/chunks/ssr/[root-of-the-server]__001xx3sm5ur-e._.js +1 -1
  263. package/web/.next/server/chunks/ssr/[root-of-the-server]__001xx3sm5ur-e._.js.map +1 -1
  264. package/web/.next/server/chunks/ssr/[root-of-the-server]__0a6a1yc_ac-qt._.js +1 -1
  265. package/web/.next/server/chunks/ssr/[root-of-the-server]__0a8db18tyk__5._.js +1 -1
  266. package/web/.next/server/chunks/ssr/[root-of-the-server]__0a8db18tyk__5._.js.map +1 -1
  267. package/web/.next/server/chunks/ssr/[root-of-the-server]__0e4l5gt01o04p._.js +1 -1
  268. package/web/.next/server/chunks/ssr/[root-of-the-server]__0fz0817_b9ljl._.js +1 -1
  269. package/web/.next/server/chunks/ssr/[root-of-the-server]__0gptrhg3mj4hs._.js.map +1 -1
  270. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k3g0p3t9t0c-._.js +1 -1
  271. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k3g0p3t9t0c-._.js.map +1 -1
  272. package/web/.next/server/chunks/ssr/[root-of-the-server]__0kjcooo3pi4_k._.js.map +1 -1
  273. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rmg7huc074bf._.js +1 -1
  274. package/web/.next/server/chunks/ssr/[root-of-the-server]__10s9e8g5x-ws8._.js +1 -1
  275. package/web/.next/server/chunks/ssr/[root-of-the-server]__10s9e8g5x-ws8._.js.map +1 -1
  276. package/web/.next/server/chunks/ssr/[root-of-the-server]__13v3maun347sn._.js +1 -1
  277. package/web/.next/server/chunks/ssr/[root-of-the-server]__13yoncr_nx3jc._.js +1 -1
  278. package/web/.next/server/chunks/ssr/[root-of-the-server]__13yoncr_nx3jc._.js.map +1 -1
  279. package/web/.next/server/chunks/ssr/[root-of-the-server]__18-8taiduk1jn._.js +1 -1
  280. package/web/.next/server/chunks/ssr/[root-of-the-server]__18-8taiduk1jn._.js.map +1 -1
  281. package/web/.next/server/chunks/ssr/{[root-of-the-server]__1qtzvez4cn5be._.js → [root-of-the-server]__1ektgsnjg4btl._.js} +2 -2
  282. package/web/.next/server/chunks/ssr/[root-of-the-server]__1hgu6f5hpnykv._.js.map +1 -1
  283. package/web/.next/server/chunks/ssr/{[root-of-the-server]__1j6n8jj7-5t6v._.js → [root-of-the-server]__1nfpyr3ynmwks._.js} +1 -1
  284. package/web/.next/server/chunks/ssr/[root-of-the-server]__1qpow96uit9t8._.js +1 -1
  285. package/web/.next/server/chunks/ssr/[root-of-the-server]__1qpow96uit9t8._.js.map +1 -1
  286. package/web/.next/server/chunks/ssr/[root-of-the-server]__1ul9rrs2g66lm._.js +1 -1
  287. package/web/.next/server/chunks/ssr/[root-of-the-server]__20gvfqy33wcds._.js.map +1 -1
  288. package/web/.next/server/chunks/ssr/_00fvst5icgei4._.js +3 -0
  289. package/web/.next/server/chunks/ssr/_00fvst5icgei4._.js.map +1 -0
  290. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js +1 -1
  291. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js.map +1 -1
  292. package/web/.next/server/chunks/ssr/_02mwdj1oj1zgm._.js +3 -0
  293. package/web/.next/server/chunks/ssr/_02mwdj1oj1zgm._.js.map +1 -0
  294. package/web/.next/server/chunks/ssr/_0fqd23gyia_8g._.js +3 -0
  295. package/web/.next/server/chunks/ssr/_0fqd23gyia_8g._.js.map +1 -0
  296. package/web/.next/server/chunks/ssr/_0ka_9elusb800._.js +1 -1
  297. package/web/.next/server/chunks/ssr/_0ka_9elusb800._.js.map +1 -1
  298. package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js +1 -1
  299. package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js.map +1 -1
  300. package/web/.next/server/chunks/ssr/_0u0u0owpxx_37._.js +3 -0
  301. package/web/.next/server/chunks/ssr/_0u0u0owpxx_37._.js.map +1 -0
  302. package/web/.next/server/chunks/ssr/_0v_x6k3ztfvx0._.js +1 -1
  303. package/web/.next/server/chunks/ssr/_0v_x6k3ztfvx0._.js.map +1 -1
  304. package/web/.next/server/chunks/ssr/_0x5-_917zcaj9._.js +3 -0
  305. package/web/.next/server/chunks/ssr/_0x5-_917zcaj9._.js.map +1 -0
  306. package/web/.next/server/chunks/ssr/{_0cnpz5jm2_9xf._.js → _0xajzaside0sw._.js} +2 -2
  307. package/web/.next/server/chunks/ssr/{_0cnpz5jm2_9xf._.js.map → _0xajzaside0sw._.js.map} +1 -1
  308. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js +1 -1
  309. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js.map +1 -1
  310. package/web/.next/server/chunks/ssr/_0yhvyj-yts7qi._.js +3 -0
  311. package/web/.next/server/chunks/ssr/_0yhvyj-yts7qi._.js.map +1 -0
  312. package/web/.next/server/chunks/ssr/_104ilzyn58zw_._.js +3 -0
  313. package/web/.next/server/chunks/ssr/_104ilzyn58zw_._.js.map +1 -0
  314. package/web/.next/server/chunks/ssr/{_1a9wrl8uw7x-y._.js → _13_ady-a4058y._.js} +1 -1
  315. package/web/.next/server/chunks/ssr/_14k1oldo5chf8._.js +1 -1
  316. package/web/.next/server/chunks/ssr/_14k1oldo5chf8._.js.map +1 -1
  317. package/web/.next/server/chunks/ssr/_1_wav28san6dm._.js +1 -1
  318. package/web/.next/server/chunks/ssr/{_1iorutn_o9hja._.js → _1cc4ie_s4tycq._.js} +1 -1
  319. package/web/.next/server/chunks/ssr/_1e2o809f0ekry._.js +1 -1
  320. package/web/.next/server/chunks/ssr/_1gbkqq8ra1nei._.js +1 -1
  321. package/web/.next/server/chunks/ssr/_1gbkqq8ra1nei._.js.map +1 -1
  322. package/web/.next/server/chunks/ssr/{_1kdx8a0j5cxyl._.js → _1gnk2vqna6c6u._.js} +2 -2
  323. package/web/.next/server/chunks/ssr/{_1kdx8a0j5cxyl._.js.map → _1gnk2vqna6c6u._.js.map} +1 -1
  324. package/web/.next/server/chunks/ssr/_1k2b80m058vgx._.js +3 -0
  325. package/web/.next/server/chunks/ssr/_1k2b80m058vgx._.js.map +1 -0
  326. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js +1 -1
  327. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js.map +1 -1
  328. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js +1 -1
  329. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js.map +1 -1
  330. package/web/.next/server/chunks/ssr/_1t74yvog5g6g2._.js +1 -1
  331. package/web/.next/server/chunks/ssr/_1t74yvog5g6g2._.js.map +1 -1
  332. package/web/.next/server/chunks/ssr/{_1i5zdy3tp2ykh._.js → _1xgivp19ts9hn._.js} +1 -1
  333. package/web/.next/server/chunks/ssr/_1zmd3armaxhyu._.js +1 -1
  334. package/web/.next/server/chunks/ssr/_1zmd3armaxhyu._.js.map +1 -1
  335. package/web/.next/server/chunks/ssr/node_modules_05ni_zu0e0w44._.js +3 -0
  336. package/web/.next/server/chunks/ssr/node_modules_05ni_zu0e0w44._.js.map +1 -0
  337. package/web/.next/server/chunks/ssr/node_modules_07vtvfyfo0a6i._.js +3 -0
  338. package/web/.next/server/chunks/ssr/node_modules_07vtvfyfo0a6i._.js.map +1 -0
  339. package/web/.next/server/chunks/ssr/node_modules_0ettht2so2tkh._.js +1 -1
  340. package/web/.next/server/chunks/ssr/node_modules_0keape0zsobyj._.js +1 -1
  341. package/web/.next/server/chunks/ssr/node_modules_12euo0ncdx1pn._.js +3 -0
  342. package/web/.next/server/chunks/ssr/node_modules_12euo0ncdx1pn._.js.map +1 -0
  343. package/web/.next/server/chunks/ssr/node_modules_1722-epjft-rn._.js +3 -0
  344. package/web/.next/server/chunks/ssr/node_modules_1722-epjft-rn._.js.map +1 -0
  345. package/web/.next/server/chunks/ssr/{node_modules_@aeolus-fleet_common_dist_header_1x3s5abk_uj9j._.js → node_modules_@aeolus-fleet_ui_dist_11tn8gozt2_c3._.js} +2 -2
  346. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_ui_dist_11tn8gozt2_c3._.js.map +1 -0
  347. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_ui_dist_16j49enf275ln._.js +3 -0
  348. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_ui_dist_16j49enf275ln._.js.map +1 -0
  349. package/web/.next/server/chunks/ssr/node_modules_@base-ui_0jlwmxa9rk8p_._.js +1 -1
  350. package/web/.next/server/chunks/ssr/node_modules_@base-ui_19e_nxxf4a88q._.js +1 -1
  351. package/web/.next/server/chunks/ssr/web_0_peudz6-o69m._.js +1 -1
  352. package/web/.next/server/chunks/ssr/web_0_peudz6-o69m._.js.map +1 -1
  353. package/web/.next/server/chunks/ssr/web_0cxcy088wnfmw._.js +1 -1
  354. package/web/.next/server/chunks/ssr/web_0oz8bypfxh82g._.js +1 -1
  355. package/web/.next/server/chunks/ssr/web_0oz8bypfxh82g._.js.map +1 -1
  356. package/web/.next/server/chunks/ssr/web_0qgev3ti257yj._.js +1 -1
  357. package/web/.next/server/chunks/ssr/web_0wys4l6za8umr._.js +1 -1
  358. package/web/.next/server/chunks/ssr/web_0wys4l6za8umr._.js.map +1 -1
  359. package/web/.next/server/chunks/ssr/web_1fi1x3y7rg7mf._.js +1 -1
  360. package/web/.next/server/chunks/ssr/web_1ga4pbv72m0ad._.js +1 -1
  361. package/web/.next/server/chunks/ssr/web_1irsulms62lzf._.js +1 -1
  362. package/web/.next/server/chunks/ssr/web_1k2rrq-kr6f9k._.js +1 -1
  363. package/web/.next/server/chunks/ssr/web_1k2rrq-kr6f9k._.js.map +1 -1
  364. package/web/.next/server/chunks/ssr/web_1qvxzqmq4aw94._.js +1 -1
  365. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_basket_page_actions_0g7q_rc5nma1e.js +1 -1
  366. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_basket_page_actions_0g7q_rc5nma1e.js.map +1 -1
  367. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_done_page_actions_0kjm34arntdzv.js +1 -1
  368. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_done_page_actions_0kjm34arntdzv.js.map +1 -1
  369. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_page_actions_1ok64rg3edm_u.js +1 -1
  370. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_page_actions_1ok64rg3edm_u.js.map +1 -1
  371. package/web/.next/server/chunks/ssr/web_app_(bridge)_bridge_fleet_page_tsx_0uvtx8hiy8g0n._.js +1 -1
  372. package/web/.next/server/chunks/ssr/web_app_(bridge)_bridge_settings_page_tsx_1z5yr8ss25q7n._.js +1 -1
  373. package/web/.next/server/chunks/ssr/web_app_(console)_parties_page_tsx_0pp63ghly3eyp._.js +1 -1
  374. package/web/.next/server/chunks/ssr/web_app_authorize_layout_tsx_0gs61_7wzx68y._.js +1 -1
  375. package/web/.next/server/chunks/ssr/web_app_authorize_layout_tsx_0gs61_7wzx68y._.js.map +1 -1
  376. package/web/.next/server/chunks/ssr/{web_features_0bwqcs9wjf4y8._.js → web_features_06f9kfi0c4nf8._.js} +2 -2
  377. package/web/.next/server/chunks/ssr/{web_features_05aos-xwnl3m_._.js.map → web_features_06f9kfi0c4nf8._.js.map} +1 -1
  378. package/web/.next/server/chunks/ssr/web_features_0rd6357w-eo50._.js +1 -1
  379. package/web/.next/server/chunks/ssr/{web_features_05aos-xwnl3m_._.js → web_features_12b-75qfhurxi._.js} +2 -2
  380. package/web/.next/server/chunks/ssr/{web_features_0bwqcs9wjf4y8._.js.map → web_features_12b-75qfhurxi._.js.map} +1 -1
  381. package/web/.next/server/chunks/ssr/web_features_19r68thirqv1n._.js +1 -1
  382. package/web/.next/server/chunks/ssr/web_features_1m5g9a6mwrsd-._.js +1 -1
  383. package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js +1 -1
  384. package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js.map +1 -1
  385. package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js +1 -1
  386. package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js.map +1 -1
  387. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js +1 -1
  388. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js.map +1 -1
  389. package/web/.next/server/chunks/ssr/web_features_authorize_137wk0n1nu3cn._.js +1 -1
  390. package/web/.next/server/chunks/ssr/web_features_authorize_137wk0n1nu3cn._.js.map +1 -1
  391. package/web/.next/server/chunks/ssr/{web_features_bridge_0w95y19yk5w14._.js → web_features_bridge_0msm42qwm0-jq._.js} +2 -2
  392. package/web/.next/server/chunks/ssr/{web_features_bridge_0w95y19yk5w14._.js.map → web_features_bridge_0msm42qwm0-jq._.js.map} +1 -1
  393. package/web/.next/server/chunks/ssr/web_features_bridge_fleet_ui_fleet-numbers_tsx_0_afv4j248_w-._.js +1 -1
  394. package/web/.next/server/chunks/ssr/web_features_bridge_fleet_ui_fleet-numbers_tsx_0_afv4j248_w-._.js.map +1 -1
  395. package/web/.next/server/chunks/ssr/web_features_bridge_hooks_bridge-actions_ts_0h-_xm2rcb-ij._.js +1 -1
  396. package/web/.next/server/chunks/ssr/web_features_bridge_hooks_bridge-actions_ts_0h-_xm2rcb-ij._.js.map +1 -1
  397. package/web/.next/server/chunks/ssr/web_features_bridge_state_basket-panel_tsx_1qi_kzld0rfgs._.js +1 -1
  398. package/web/.next/server/chunks/ssr/web_features_bridge_state_basket-panel_tsx_1qi_kzld0rfgs._.js.map +1 -1
  399. package/web/.next/server/chunks/ssr/web_features_bridge_state_decision-panel_tsx_1mzsixgc8zuxc._.js +1 -1
  400. package/web/.next/server/chunks/ssr/web_features_bridge_state_decision-panel_tsx_1mzsixgc8zuxc._.js.map +1 -1
  401. package/web/.next/server/chunks/ssr/web_features_bridge_state_done-panel_tsx_1m844-qb1z9p_._.js +1 -1
  402. package/web/.next/server/chunks/ssr/web_features_bridge_state_done-panel_tsx_1m844-qb1z9p_._.js.map +1 -1
  403. package/web/.next/server/chunks/ssr/web_features_bridge_state_home-panel_tsx_1cc5zdhxogl_2._.js +1 -1
  404. package/web/.next/server/chunks/ssr/web_features_bridge_state_home-panel_tsx_1cc5zdhxogl_2._.js.map +1 -1
  405. package/web/.next/server/chunks/ssr/{web_features_025l9l6m2zkya._.js → web_features_forms_1u0akr22eh_x_._.js} +2 -2
  406. package/web/.next/server/chunks/ssr/web_features_forms_1u0akr22eh_x_._.js.map +1 -0
  407. package/web/.next/server/chunks/ssr/web_features_frame_01uyck6q56an2._.js +3 -0
  408. package/web/.next/server/chunks/ssr/web_features_frame_01uyck6q56an2._.js.map +1 -0
  409. package/web/.next/server/chunks/ssr/web_features_frame_ui_gateway-header_tsx_0e9tekx4jf7ng._.js +1 -1
  410. package/web/.next/server/chunks/ssr/web_features_frame_ui_gateway-header_tsx_0e9tekx4jf7ng._.js.map +1 -1
  411. package/web/.next/server/chunks/ssr/web_features_meeting_state_meeting-controls_tsx_12g4kzk2mbvvz._.js +1 -1
  412. package/web/.next/server/chunks/ssr/web_features_meeting_state_meeting-controls_tsx_12g4kzk2mbvvz._.js.map +1 -1
  413. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js +1 -1
  414. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js.map +1 -1
  415. package/web/.next/server/chunks/ssr/web_features_outside-party_1-lre9nfakki7._.js +1 -1
  416. package/web/.next/server/chunks/ssr/web_features_outside-party_actions_ts_102ar5pdowf8s._.js +1 -1
  417. package/web/.next/server/chunks/ssr/web_features_parties_actions_ts_0r-tbfsig2ty-._.js +1 -1
  418. package/web/.next/server/chunks/ssr/web_features_slack_actions_ts_1l3yg9vl20_vu._.js +1 -1
  419. package/web/.next/server/middleware-build-manifest.js +3 -3
  420. package/web/.next/server/pages/500.html +1 -1
  421. package/web/.next/server/preview-props.json +3 -3
  422. package/web/.next/server/server-reference-manifest.js +1 -1
  423. package/web/.next/server/server-reference-manifest.json +49 -49
  424. package/web/.next/static/chunks/030kay14jcn_y.js +1 -0
  425. package/web/.next/static/chunks/0ben53l12lrh1.js +1 -0
  426. package/web/.next/static/chunks/0d1u4n5okodee.css +3 -0
  427. package/web/.next/static/chunks/0dg4cy4rae-3o.js +1 -0
  428. package/web/.next/static/chunks/0jwils_670syn.js +1 -0
  429. package/web/.next/static/chunks/0lnew3mjkd54b.js +1 -0
  430. package/web/.next/static/chunks/0m95j-t2qmnd_.js +1 -0
  431. package/web/.next/static/chunks/0r5ujkp-5utsu.js +1 -0
  432. package/web/.next/static/chunks/{23vvtbj-zoa_f.js → 1jyiwl5szsvgn.js} +1 -1
  433. package/web/.next/static/chunks/{0k33n07zesv12.js → 1lkcm-iwggfae.js} +1 -1
  434. package/web/.next/static/chunks/1ml6wx1ya9wwo.js +1 -0
  435. package/web/.next/static/chunks/22wtc73dzqm8f.js +1 -0
  436. package/web/.next/static/chunks/2drwxc7-hry0u.js +1 -0
  437. package/web/.next/static/chunks/{07j7jnfe13wx6.js → 2ich96rzec753.js} +1 -1
  438. package/web/.next/static/chunks/{3d5z1i-6yksxd.js → 2khjzepn4_2a-.js} +1 -1
  439. package/web/.next/static/chunks/{1uhmdmkn5gsk2.js → 2ui6n5-n032a3.js} +1 -1
  440. package/web/.next/static/chunks/2wvdu6-tx1h0l.js +1 -0
  441. package/web/.next/static/chunks/33qpc2y76i927.js +1 -0
  442. package/web/.next/static/chunks/3h8spyc73a438.js +1 -0
  443. package/web/.next/static/chunks/{2dgbb29jkr_tu.js → 3v8s571padqcz.js} +1 -1
  444. package/web/.next/static/chunks/3wg9zn3lyhf-b.js +1 -0
  445. package/web/.next/trace +1 -1
  446. package/web/.next/trace-build +1 -1
  447. package/web/public/argo-wake-icon.svg +1 -0
  448. package/web/public/wake-worker.js +8 -2
  449. package/web/public/wake-worker.test.ts +52 -0
  450. package/web/.next/server/chunks/ssr/_0oekmfmigr0qv._.js +0 -3
  451. package/web/.next/server/chunks/ssr/_0oekmfmigr0qv._.js.map +0 -1
  452. package/web/.next/server/chunks/ssr/_0vid8-myyy-_4._.js +0 -3
  453. package/web/.next/server/chunks/ssr/_0y5eahpucp8g_._.js +0 -3
  454. package/web/.next/server/chunks/ssr/_0y5eahpucp8g_._.js.map +0 -1
  455. package/web/.next/server/chunks/ssr/_13fbnlwrl24s3._.js +0 -3
  456. package/web/.next/server/chunks/ssr/_13fbnlwrl24s3._.js.map +0 -1
  457. package/web/.next/server/chunks/ssr/_1airu8wwf7z1b._.js +0 -3
  458. package/web/.next/server/chunks/ssr/_1airu8wwf7z1b._.js.map +0 -1
  459. package/web/.next/server/chunks/ssr/_1i5zdy3tp2ykh._.js.map +0 -1
  460. package/web/.next/server/chunks/ssr/_1pp0z5srqqqyl._.js +0 -3
  461. package/web/.next/server/chunks/ssr/_1pp0z5srqqqyl._.js.map +0 -1
  462. package/web/.next/server/chunks/ssr/_1xuikhitica6p._.js +0 -3
  463. package/web/.next/server/chunks/ssr/_1xuikhitica6p._.js.map +0 -1
  464. package/web/.next/server/chunks/ssr/node_modules_0gpbs01t1c_a4._.js +0 -3
  465. package/web/.next/server/chunks/ssr/node_modules_0gpbs01t1c_a4._.js.map +0 -1
  466. package/web/.next/server/chunks/ssr/node_modules_0zgrzr0ui3gi8._.js +0 -3
  467. package/web/.next/server/chunks/ssr/node_modules_0zgrzr0ui3gi8._.js.map +0 -1
  468. package/web/.next/server/chunks/ssr/node_modules_174jf4d4t_bo_._.js +0 -3
  469. package/web/.next/server/chunks/ssr/node_modules_174jf4d4t_bo_._.js.map +0 -1
  470. package/web/.next/server/chunks/ssr/node_modules_1qxtjrbc2-6xd._.js +0 -3
  471. package/web/.next/server/chunks/ssr/node_modules_1qxtjrbc2-6xd._.js.map +0 -1
  472. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_0t_cmi-llaq7g._.js +0 -3
  473. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_0t_cmi-llaq7g._.js.map +0 -1
  474. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_1x3s5abk_uj9j._.js.map +0 -1
  475. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_app-switcher_08qq5-uxv7jii.js +0 -3
  476. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_app-switcher_08qq5-uxv7jii.js.map +0 -1
  477. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_class-names_1h5pbm2ucssiq.js +0 -3
  478. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_class-names_1h5pbm2ucssiq.js.map +0 -1
  479. package/web/.next/server/chunks/ssr/web_features_025l9l6m2zkya._.js.map +0 -1
  480. package/web/.next/server/chunks/ssr/web_features_frame_0pe8cwpxe1egb._.js +0 -3
  481. package/web/.next/server/chunks/ssr/web_features_frame_0pe8cwpxe1egb._.js.map +0 -1
  482. package/web/.next/server/chunks/ssr/web_features_outside-parties_paths_ts_0vbj9elyqekpp._.js +0 -3
  483. package/web/.next/server/chunks/ssr/web_features_outside-parties_paths_ts_0vbj9elyqekpp._.js.map +0 -1
  484. package/web/.next/static/chunks/0ozz8jadgfdrx.js +0 -1
  485. package/web/.next/static/chunks/1v36iovy1f5cj.js +0 -1
  486. package/web/.next/static/chunks/1vhvy8bx4fxur.js +0 -1
  487. package/web/.next/static/chunks/1vhx_nu9nxo1v.js +0 -1
  488. package/web/.next/static/chunks/24vn5i6ojvl8l.js +0 -1
  489. package/web/.next/static/chunks/2l6hafvocw-rd.js +0 -1
  490. package/web/.next/static/chunks/2ld8_nap7g_uy.js +0 -1
  491. package/web/.next/static/chunks/2pvcbql986wln.js +0 -1
  492. package/web/.next/static/chunks/2s1efgj6gxjgl.js +0 -1
  493. package/web/.next/static/chunks/2zlx-c_0x38uo.css +0 -3
  494. package/web/.next/static/chunks/34u_331hqync_.js +0 -1
  495. package/web/.next/static/chunks/3_bb0g4jkqn8q.js +0 -1
  496. package/web/.next/static/chunks/3jq9vu8tr29j2.js +0 -1
  497. /package/web/.next/server/chunks/ssr/{[root-of-the-server]__1qtzvez4cn5be._.js.map → [root-of-the-server]__1ektgsnjg4btl._.js.map} +0 -0
  498. /package/web/.next/server/chunks/ssr/{[root-of-the-server]__1j6n8jj7-5t6v._.js.map → [root-of-the-server]__1nfpyr3ynmwks._.js.map} +0 -0
  499. /package/web/.next/server/chunks/ssr/{_1a9wrl8uw7x-y._.js.map → _13_ady-a4058y._.js.map} +0 -0
  500. /package/web/.next/server/chunks/ssr/{_1iorutn_o9hja._.js.map → _1cc4ie_s4tycq._.js.map} +0 -0
  501. /package/web/.next/server/chunks/ssr/{_0vid8-myyy-_4._.js.map → _1xgivp19ts9hn._.js.map} +0 -0
  502. /package/web/.next/static/{2O8_FQX7YN47L5_OxojXH → 79SqN0pBIJ0D-DK1jZmK6}/_buildManifest.js +0 -0
  503. /package/web/.next/static/{2O8_FQX7YN47L5_OxojXH → 79SqN0pBIJ0D-DK1jZmK6}/_clientMiddlewareManifest.js +0 -0
  504. /package/web/.next/static/{2O8_FQX7YN47L5_OxojXH → 79SqN0pBIJ0D-DK1jZmK6}/_ssgManifest.js +0 -0
@@ -0,0 +1,40 @@
1
+ /**
2
+ * What waits at argo as Slack's post shows it (argo's inbox, AI2 to AI4,
3
+ * mockups/slack.html): marked Waits at argo, not you, with argo's own colour,
4
+ * its kind and sender, its headline, who it is for, and one button to the
5
+ * console as argo, no answer buttons; then, once done at argo, by whom and
6
+ * when, its button gone.
7
+ */
8
+ import { isQuestionContentType } from '@aeolus-fleet/common';
9
+ import { slackTimeOf } from '../slack/edited-post-of.js';
10
+ import { escaped } from '../slack/slack-post-of.js';
11
+ import { argoTitleOf } from './argo-inbox.js';
12
+ /** The line under the headline: it is not the person's alone, and acting takes argo's sign-in. */
13
+ const FOR_EVERYONE = 'For everyone allowed as argo. Acting signs you in to the console as argo.';
14
+ const OPEN_AS_ARGO = 'Open in the console as argo';
15
+ /** Slack's post of a message open at argo, its sender named by type and name, its button to the message in the console as argo (A1's link). */
16
+ export function argoSlackMessageOf(message, shown) {
17
+ const kind = isQuestionContentType(message.contentType) ? 'Question' : 'Report';
18
+ const title = escaped(argoTitleOf(message));
19
+ return {
20
+ text: `Waits at argo, not you: ${title}`,
21
+ item: { asker: message.sender.name, heading: `*Waits at argo*, not you · ${kind} from ${escaped(shown.senderType)} ${escaped(message.sender.name)}`, title, body: null, aside: FOR_EVERYONE, footer: null, tone: 'argo' },
22
+ buttons: [{ text: OPEN_AS_ARGO, url: shown.argoMessageUrl, isPlain: true }],
23
+ };
24
+ }
25
+ /**
26
+ * The post, as Slack holds it, edited once its message is done at argo:
27
+ * by whom, the name of the person ship of the account signed in as argo,
28
+ * and when, each left out when the gateway did not see it. None for a post
29
+ * that is no item, or says so already.
30
+ */
31
+ export function doneAtArgoMessageOf(message, done) {
32
+ const { item } = message;
33
+ if (item === null || item.tone === 'done') {
34
+ return undefined;
35
+ }
36
+ const by = done.by === undefined ? '' : ` by ${escaped(done.by)}`;
37
+ const at = done.at === undefined ? '' : `, ${slackTimeOf(done.at)}`;
38
+ return { text: message.text, item: { ...item, body: `✅ Done at argo${by} in the console${at}`, aside: null, footer: null, tone: 'done' }, buttons: [] };
39
+ }
40
+ //# sourceMappingURL=argo-slack-message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"argo-slack-message.js","sourceRoot":"","sources":["../../../src/core/argo-inbox/argo-slack-message.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG9C,kGAAkG;AAClG,MAAM,YAAY,GAAG,2EAA2E,CAAC;AAEjG,MAAM,YAAY,GAAG,6BAA6B,CAAC;AAEnD,+IAA+I;AAC/I,MAAM,UAAU,kBAAkB,CAAC,OAAuB,EAAE,KAAqD;IAC/G,MAAM,IAAI,GAAG,qBAAqB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;IAChF,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5C,OAAO;QACL,IAAI,EAAE,2BAA2B,KAAK,EAAE;QACxC,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,8BAA8B,IAAI,SAAS,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;QACzN,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,KAAK,CAAC,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;KAC5E,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAqB,EAAE,IAAsD;IAC/G,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IACzB,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC1C,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IAClE,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IACpE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAC1J,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { FleetId, MessageId, ShipId } from '@aeolus-fleet/common';
2
+ /**
3
+ * A message open at argo as it is in Slack, for a person ship of an account
4
+ * allowed as argo (argo's inbox, AI4): posted through the gateway's own bot
5
+ * into the person's direct messages. It is kept before Slack is asked, then
6
+ * given its Slack message once Slack took it, so a gateway that stops in
7
+ * between posts it at most once more; or given up once Slack refused it, so
8
+ * it is never posted again. It is forgotten once the message is done at
9
+ * argo and its post edited to say so.
10
+ */
11
+ export interface ArgoSlackPost {
12
+ readonly fleetId: FleetId;
13
+ readonly personShipId: ShipId;
14
+ /** The message to argo it shows. */
15
+ readonly messageId: MessageId;
16
+ readonly appId: string;
17
+ readonly channel: string;
18
+ /** The Slack message, once Slack took the post. */
19
+ readonly ts: string | null;
20
+ readonly isGivenUp: boolean;
21
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=argo-slack-post.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"argo-slack-post.js","sourceRoot":"","sources":["../../../src/core/argo-inbox/argo-slack-post.ts"],"names":[],"mappings":""}
@@ -0,0 +1,33 @@
1
+ import type { FleetId, MessageId } from '@aeolus-fleet/common';
2
+ import type { ConnectionStore } from '../connection/ports.js';
3
+ import { type ArgoInbox, type MessageDoneAtArgo } from './argo-inbox.js';
4
+ import type { ArgoInboxDoor } from './ports.js';
5
+ export interface FollowArgoInbox {
6
+ /** One round over every fleet the gateway is connected to, each waiting while argo's inbox did not change, until the signal aborts. */
7
+ readonly round: (signal: AbortSignal) => Promise<void>;
8
+ /** argo's inbox in the fleet as last read; none before the first round, or for a fleet the gateway is not connected to. */
9
+ readonly inboxOf: (fleetId: FleetId) => ArgoInbox | undefined;
10
+ /** When the message was done at argo and by which account, as the ship saw it done; none for one it did not see done, as while the gateway was down. */
11
+ readonly doneAtArgo: (fleetId: FleetId, messageId: MessageId) => MessageDoneAtArgo | undefined;
12
+ }
13
+ /**
14
+ * Use case: the gateway's own ship reads argo's open inbox in each fleet it
15
+ * is connected to, by the read rule argo adds (argo's inbox, AI9; decision
16
+ * 0034). It reads the inbox whole from the fleet's position at that moment,
17
+ * then follows each change to a delivery to argo from there, reading that
18
+ * message again. Its first round, after a restart, reads it whole again.
19
+ * Without the rule it reads nothing and says so; once the rule is back it
20
+ * reads it whole again, as it followed nothing meanwhile. While the fleet
21
+ * does not answer it keeps what it read, and reads it whole again when
22
+ * following fails. A message it sees leave the open inbox is kept done at
23
+ * argo, when and by which account, as the change said. argo's inbox stays the
24
+ * one record: what the ship read lives in memory only, and core sends it
25
+ * nothing. It keeps the newest message it saw leave the open inbox, and who
26
+ * did it, and tells each round that changed what it holds, so the pages that
27
+ * show it read it again.
28
+ */
29
+ export declare function createFollowArgoInbox(deps: {
30
+ connections: Pick<ConnectionStore, 'connected'>;
31
+ door: ArgoInboxDoor;
32
+ onChanged?: (fleetId: FleetId) => void;
33
+ }): FollowArgoInbox;
@@ -0,0 +1,133 @@
1
+ import { argoTitleOf, isOpenAtArgo } from './argo-inbox.js';
2
+ function messageOf(entry) {
3
+ const { messageId, deliveryId, sender, contentType, sentAt, askedQuestionId, withdrawnQuestionId } = entry;
4
+ return { messageId, deliveryId, sender, contentType, sentAt, title: argoTitleOf(entry), askedQuestionId, withdrawnQuestionId };
5
+ }
6
+ /** What a fleet's page shows of argo's inbox, to tell whether a round changed it. */
7
+ function shownOf(held) {
8
+ if (held === undefined || held.kind === 'notLetRead') {
9
+ return held?.kind ?? 'none';
10
+ }
11
+ return JSON.stringify({ messageIds: [...held.messages.keys()], lastDone: held.lastDone });
12
+ }
13
+ /** Who did a message done at argo, by the newest change to it. */
14
+ function doneOf(message, change) {
15
+ return { title: message.title, at: change.occurredAt, byShipId: change.actorShipId, signedInAccountId: change.signedInAccountId };
16
+ }
17
+ function oldestFirst(messages) {
18
+ return [...messages].sort((one, other) => one.sentAt.getTime() - other.sentAt.getTime() || one.messageId.localeCompare(other.messageId));
19
+ }
20
+ /**
21
+ * Use case: the gateway's own ship reads argo's open inbox in each fleet it
22
+ * is connected to, by the read rule argo adds (argo's inbox, AI9; decision
23
+ * 0034). It reads the inbox whole from the fleet's position at that moment,
24
+ * then follows each change to a delivery to argo from there, reading that
25
+ * message again. Its first round, after a restart, reads it whole again.
26
+ * Without the rule it reads nothing and says so; once the rule is back it
27
+ * reads it whole again, as it followed nothing meanwhile. While the fleet
28
+ * does not answer it keeps what it read, and reads it whole again when
29
+ * following fails. A message it sees leave the open inbox is kept done at
30
+ * argo, when and by which account, as the change said. argo's inbox stays the
31
+ * one record: what the ship read lives in memory only, and core sends it
32
+ * nothing. It keeps the newest message it saw leave the open inbox, and who
33
+ * did it, and tells each round that changed what it holds, so the pages that
34
+ * show it read it again.
35
+ */
36
+ export function createFollowArgoInbox(deps) {
37
+ const held = new Map();
38
+ const done = new Map();
39
+ const readWhole = async ({ crewToken, argo, lastDone }) => {
40
+ const position = await deps.door.position(crewToken);
41
+ const listed = position.isOk ? await deps.door.entries(crewToken, argo) : position;
42
+ if (!position.isOk || !listed.isOk) {
43
+ return undefined;
44
+ }
45
+ // Only the open messages are read whole, for their titles: argo's done ones may be many.
46
+ const read = await Promise.all(listed.value.filter(({ deliveryState }) => isOpenAtArgo(deliveryState)).map(({ messageId }) => deps.door.entry(crewToken, { argo, messageId })));
47
+ const messages = new Map();
48
+ for (const entry of read) {
49
+ if (!entry.isOk) {
50
+ return undefined;
51
+ }
52
+ if (entry.value !== null && isOpenAtArgo(entry.value.deliveryState)) {
53
+ messages.set(entry.value.messageId, messageOf(entry.value));
54
+ }
55
+ }
56
+ return { kind: 'following', argo, afterSeq: position.value, messages, lastDone };
57
+ };
58
+ const followOn = async ({ fleetId, crewToken, following, signal }) => {
59
+ const { argo } = following;
60
+ const changes = await deps.door.changes(crewToken, { argo, afterSeq: following.afterSeq, signal });
61
+ if (!changes.isOk) {
62
+ return undefined;
63
+ }
64
+ const messages = new Map(following.messages);
65
+ let { lastDone } = following;
66
+ // The last change to each message is the one that left it as it is now.
67
+ const newest = new Map(changes.value.changes.map((change) => [change.messageId, change]));
68
+ for (const [messageId, change] of newest) {
69
+ const entry = await deps.door.entry(crewToken, { argo, messageId });
70
+ if (!entry.isOk) {
71
+ return undefined;
72
+ }
73
+ const held = messages.get(messageId);
74
+ if (entry.value !== null && isOpenAtArgo(entry.value.deliveryState)) {
75
+ messages.set(messageId, messageOf(entry.value));
76
+ }
77
+ else {
78
+ messages.delete(messageId);
79
+ done.set(fleetId, new Map(done.get(fleetId)).set(messageId, { at: change.occurredAt, accountId: change.signedInAccountId ?? change.actorAccountId }));
80
+ if (held !== undefined) {
81
+ lastDone = lastDone !== null && lastDone.at > change.occurredAt ? lastDone : doneOf(held, change);
82
+ }
83
+ }
84
+ }
85
+ return { kind: 'following', argo, afterSeq: changes.value.lastSeq, messages, lastDone };
86
+ };
87
+ const nextOf = async ({ fleetId, crewToken, before }, signal) => {
88
+ const argo = await deps.door.argoInReach(crewToken);
89
+ if (!argo.isOk) {
90
+ return before;
91
+ }
92
+ if (argo.value === null) {
93
+ return { kind: 'notLetRead' };
94
+ }
95
+ if (before?.kind === 'following' && before.argo === argo.value) {
96
+ return (await followOn({ fleetId, crewToken, following: before, signal })) ?? { kind: 'stale', argo: before.argo, messages: before.messages, lastDone: before.lastDone };
97
+ }
98
+ return (await readWhole({ crewToken, argo: argo.value, lastDone: before === undefined || before.kind === 'notLetRead' ? null : before.lastDone })) ?? before;
99
+ };
100
+ const roundOf = async ({ fleetId, crewToken }, signal) => {
101
+ const before = held.get(fleetId);
102
+ const next = await nextOf({ fleetId, crewToken, before }, signal);
103
+ if (next === undefined) {
104
+ return;
105
+ }
106
+ held.set(fleetId, next);
107
+ if (shownOf(next) !== shownOf(before)) {
108
+ deps.onChanged?.(fleetId);
109
+ }
110
+ };
111
+ return {
112
+ round: async (signal) => {
113
+ const connected = await deps.connections.connected();
114
+ const fleetIds = new Set(connected.map(({ fleetId }) => fleetId));
115
+ for (const fleetId of held.keys()) {
116
+ if (!fleetIds.has(fleetId)) {
117
+ held.delete(fleetId);
118
+ done.delete(fleetId);
119
+ }
120
+ }
121
+ await Promise.all(connected.map((crew) => roundOf(crew, signal)));
122
+ },
123
+ inboxOf: (fleetId) => {
124
+ const inbox = held.get(fleetId);
125
+ if (inbox === undefined) {
126
+ return undefined;
127
+ }
128
+ return inbox.kind === 'notLetRead' ? { kind: 'notLetRead' } : { kind: 'read', argo: inbox.argo, messages: oldestFirst(inbox.messages.values()), lastDone: inbox.lastDone };
129
+ },
130
+ doneAtArgo: (fleetId, messageId) => done.get(fleetId)?.get(messageId),
131
+ };
132
+ }
133
+ //# sourceMappingURL=follow-argo-inbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"follow-argo-inbox.js","sourceRoot":"","sources":["../../../src/core/argo-inbox/follow-argo-inbox.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { FleetId, ShipId } from '@aeolus-fleet/common';
2
+ import type { ArgoAccounts } from './ports.js';
3
+ /** What an account token names that tells whether its account is reached as argo. */
4
+ export interface ArgoAccountToken {
5
+ readonly accountId: string;
6
+ readonly personShipId: ShipId | null;
7
+ readonly isArgoAllowed: boolean;
8
+ }
9
+ export type NoteArgoAccount = (fleetId: FleetId, token: ArgoAccountToken) => Promise<void>;
10
+ /**
11
+ * Use case: an account token the gateway is given, at a sign-in, an
12
+ * exchange or a refresh, is the account's latest word on whether it is
13
+ * allowed as argo (argo's inbox, AI9). Allowed with a person ship, the
14
+ * account is kept, with that person ship; otherwise it is dropped, so an
15
+ * account no longer allowed is dropped at its next token.
16
+ */
17
+ export declare function createNoteArgoAccount(deps: {
18
+ accounts: ArgoAccounts;
19
+ }): NoteArgoAccount;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Use case: an account token the gateway is given, at a sign-in, an
3
+ * exchange or a refresh, is the account's latest word on whether it is
4
+ * allowed as argo (argo's inbox, AI9). Allowed with a person ship, the
5
+ * account is kept, with that person ship; otherwise it is dropped, so an
6
+ * account no longer allowed is dropped at its next token.
7
+ */
8
+ export function createNoteArgoAccount(deps) {
9
+ return async (fleetId, { accountId, personShipId, isArgoAllowed }) => {
10
+ if (isArgoAllowed && personShipId !== null) {
11
+ await deps.accounts.keep(fleetId, { accountId, personShipId });
12
+ }
13
+ else {
14
+ await deps.accounts.drop(fleetId, accountId);
15
+ }
16
+ };
17
+ }
18
+ //# sourceMappingURL=note-argo-account.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"note-argo-account.js","sourceRoot":"","sources":["../../../src/core/argo-inbox/note-argo-account.ts"],"names":[],"mappings":"AAaA;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAgC;IACpE,OAAO,KAAK,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,EAAE,EAAE;QACnE,IAAI,aAAa,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;YAC3C,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;QACjE,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * argo's inbox, read by the gateway's own ship for the people who may act as
3
+ * argo (aeolus-fleet docs/design/argo-inbox, AI1 and AI9): the accounts
4
+ * allowed as argo, and what the gateway reads of argo's inbox.
5
+ */
6
+ import type { DeliveryId, DeliveryState, FleetId, MessageId, ShipId } from '@aeolus-fleet/common';
7
+ import type { FleetRefusal } from '../connection/ports.js';
8
+ import type { PersonShip, WakeChannelName } from '../people/person-wakes.js';
9
+ import type { Result } from '../shared/result.js';
10
+ import type { ArgoSlackPost } from './argo-slack-post.js';
11
+ /** An account allowed as argo in a fleet, as its latest account token said, and the person ship it is reached at. */
12
+ export interface ArgoAccount {
13
+ readonly accountId: string;
14
+ readonly personShipId: ShipId;
15
+ }
16
+ /** Outbound port: each fleet's accounts allowed as argo, from each account's latest account token. */
17
+ export interface ArgoAccounts {
18
+ keep(fleetId: FleetId, account: ArgoAccount): Promise<void>;
19
+ drop(fleetId: FleetId, accountId: string): Promise<void>;
20
+ list(fleetId: FleetId): Promise<readonly ArgoAccount[]>;
21
+ }
22
+ /** A message to argo as the fleet lists it: who sent it, when, and its delivery, with the delivery's state. */
23
+ export interface ArgoInboxListed {
24
+ readonly messageId: MessageId;
25
+ readonly deliveryId: DeliveryId;
26
+ readonly sender: {
27
+ readonly shipId: ShipId;
28
+ readonly name: string;
29
+ };
30
+ readonly contentType: string;
31
+ readonly sentAt: Date;
32
+ readonly deliveryState: DeliveryState;
33
+ }
34
+ /** A message to argo read whole: listed, with its payload, its headline, and the question it asks or withdraws, read from it. */
35
+ export interface ArgoInboxEntry extends ArgoInboxListed {
36
+ readonly payload: string;
37
+ /** A question's title, or a step's, an alert's or a notice's headline; none for any other message. */
38
+ readonly headline: string | null;
39
+ readonly askedQuestionId: string | null;
40
+ readonly withdrawnQuestionId: string | null;
41
+ }
42
+ /** A message to argo as the gateway holds it: listed, titled as an inbox lists it, and the question it asks or withdraws. */
43
+ export interface ArgoMessage extends Omit<ArgoInboxListed, 'deliveryState'> {
44
+ readonly title: string;
45
+ readonly askedQuestionId: string | null;
46
+ readonly withdrawnQuestionId: string | null;
47
+ }
48
+ /** A change to a delivery to argo, as the fleet's event says it: when, and who caused it, the account signed in to the console as argo included (decision 0054). */
49
+ export interface ArgoInboxChange {
50
+ readonly messageId: MessageId;
51
+ readonly occurredAt: Date;
52
+ /** The ship that caused it; none for any other actor. */
53
+ readonly actorShipId: ShipId | null;
54
+ /** The account signed in to the console as argo when argo caused it; none otherwise. */
55
+ readonly signedInAccountId: string | null;
56
+ /** The account that caused it, signed in to the console as argo or itself; none for a ship's or the system's. */
57
+ readonly actorAccountId: string | null;
58
+ }
59
+ /**
60
+ * Outbound port: what the gateway's own ship reads of argo's inbox, by its
61
+ * crew token, within its read reach (decision 0034): nothing of argo's
62
+ * outside it.
63
+ */
64
+ export interface ArgoInboxDoor {
65
+ /** argo's ship, when it is in the ship's read reach; null while argo has not let it read. */
66
+ argoInReach(crewToken: string): Promise<Result<ShipId | null, FleetRefusal>>;
67
+ /** The position of the fleet's last event: a follow from there misses nothing after it. */
68
+ position(crewToken: string): Promise<Result<number, FleetRefusal>>;
69
+ /** Every message to argo, listed with its delivery's state. */
70
+ entries(crewToken: string, argo: ShipId): Promise<Result<readonly ArgoInboxListed[], FleetRefusal>>;
71
+ /** One message to argo read whole, with its delivery's state; null when it is no message to argo the ship reads. */
72
+ entry(crewToken: string, read: {
73
+ argo: ShipId;
74
+ messageId: MessageId;
75
+ }): Promise<Result<ArgoInboxEntry | null, FleetRefusal>>;
76
+ /** A ship's type, as the fleet answers it even of a ship outside the read reach. */
77
+ shipType(crewToken: string, shipId: ShipId): Promise<Result<string, FleetRefusal>>;
78
+ /** Each change to a delivery to argo after the position, oldest first, waiting while none came until the signal aborts, and the position to follow from next. */
79
+ changes(crewToken: string, follow: {
80
+ argo: ShipId;
81
+ afterSeq: number;
82
+ signal: AbortSignal;
83
+ }): Promise<Result<{
84
+ changes: readonly ArgoInboxChange[];
85
+ lastSeq: number;
86
+ }, FleetRefusal>>;
87
+ }
88
+ /** Outbound port: the messages open at argo in Slack, by fleet, person ship and message, in the gateway's database. */
89
+ export interface ArgoSlackPosts {
90
+ /** Every post kept in the fleet. */
91
+ list(fleetId: FleetId): Promise<ArgoSlackPost[]>;
92
+ /** Keeps a new post; none when one is kept for the person ship and the message already, as two rounds at once find. */
93
+ keep(post: ArgoSlackPost): Promise<'kept' | 'known'>;
94
+ /** Keeps it as it is now: given its Slack message, or given up. */
95
+ save(post: ArgoSlackPost): Promise<void>;
96
+ remove(fleetId: FleetId, post: {
97
+ personShipId: ShipId;
98
+ messageId: MessageId;
99
+ }): Promise<void>;
100
+ }
101
+ /**
102
+ * Outbound port: argo's wakes of each person ship, apart from its own (argo's
103
+ * inbox, AI4, AI5): the messages to argo a wake or a page in focus already
104
+ * covered, so each is woken once per person, and when each channel last woke
105
+ * the person ship for argo, so the window holds across restarts and instances.
106
+ * Each read and write names the messages it concerns, so it reads in pages of
107
+ * those, never every message covered.
108
+ */
109
+ export interface ArgoWakes {
110
+ /** Which of these messages were covered for the person ship. */
111
+ coveredAmong(ship: PersonShip, messageIds: readonly MessageId[]): Promise<ReadonlySet<MessageId>>;
112
+ cover(ship: PersonShip, messageIds: readonly MessageId[]): Promise<void>;
113
+ /** Forgets these messages, done at argo: they never open again. */
114
+ forget(ship: PersonShip, messageIds: readonly MessageId[]): Promise<void>;
115
+ /** Forgets every covered message but the ones open now, as at a start, when what was done meanwhile is not known. */
116
+ forgetAllBut(ship: PersonShip, open: readonly MessageId[]): Promise<void>;
117
+ lastSentAt(ship: PersonShip, channel: WakeChannelName): Promise<Date | undefined>;
118
+ record(wake: {
119
+ ship: PersonShip;
120
+ channel: WakeChannelName;
121
+ sentAt: Date;
122
+ }): Promise<void>;
123
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ports.js","sourceRoot":"","sources":["../../../src/core/argo-inbox/ports.ts"],"names":[],"mappings":""}
@@ -0,0 +1,34 @@
1
+ import type { FleetId, ShipId } from '@aeolus-fleet/common';
2
+ import type { ConnectionStore } from '../connection/ports.js';
3
+ import type { FollowArgoInbox } from './follow-argo-inbox.js';
4
+ import type { ArgoAccounts } from './ports.js';
5
+ /**
6
+ * What the gateway's overview tells an account of argo's inbox: nothing, or
7
+ * that argo has not let the gateway's ship read it, naming that ship, which
8
+ * the read rule argo adds lets read argo.
9
+ */
10
+ export type ArgoInboxNotice = {
11
+ readonly kind: 'none';
12
+ } | {
13
+ readonly kind: 'notLetRead';
14
+ readonly gatewayShip: {
15
+ readonly shipId: ShipId;
16
+ readonly name: string;
17
+ };
18
+ };
19
+ export type ReadArgoInboxNotice = (caller: {
20
+ fleetId: FleetId;
21
+ accountId: string;
22
+ }) => Promise<ArgoInboxNotice>;
23
+ /**
24
+ * Use case: while argo has not added the read rule, or removed it, nothing
25
+ * of argo's reaches the people allowed as argo, so the gateway's overview
26
+ * tells an account allowed as argo so, and where argo adds the rule (argo's
27
+ * inbox, section 4). Any other account, and any fleet whose inbox the
28
+ * gateway reads or has not asked about yet, is told nothing.
29
+ */
30
+ export declare function createReadArgoInboxNotice(deps: {
31
+ accounts: Pick<ArgoAccounts, 'list'>;
32
+ inboxOf: FollowArgoInbox['inboxOf'];
33
+ connections: Pick<ConnectionStore, 'find'>;
34
+ }): ReadArgoInboxNotice;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Use case: while argo has not added the read rule, or removed it, nothing
3
+ * of argo's reaches the people allowed as argo, so the gateway's overview
4
+ * tells an account allowed as argo so, and where argo adds the rule (argo's
5
+ * inbox, section 4). Any other account, and any fleet whose inbox the
6
+ * gateway reads or has not asked about yet, is told nothing.
7
+ */
8
+ export function createReadArgoInboxNotice(deps) {
9
+ return async ({ fleetId, accountId }) => {
10
+ if (deps.inboxOf(fleetId)?.kind !== 'notLetRead') {
11
+ return { kind: 'none' };
12
+ }
13
+ const [accounts, gateway] = await Promise.all([deps.accounts.list(fleetId), deps.connections.find(fleetId)]);
14
+ if (gateway === undefined || !accounts.some((account) => account.accountId === accountId)) {
15
+ return { kind: 'none' };
16
+ }
17
+ return { kind: 'notLetRead', gatewayShip: { shipId: gateway.shipId, name: gateway.name } };
18
+ };
19
+ }
20
+ //# sourceMappingURL=read-argo-inbox-notice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-argo-inbox-notice.js","sourceRoot":"","sources":["../../../src/core/argo-inbox/read-argo-inbox-notice.ts"],"names":[],"mappings":"AAeA;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CAAC,IAA+H;IACvK,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE;QACtC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;YACjD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAC1B,CAAC;QACD,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC7G,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,EAAE,CAAC;YAC1F,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAC1B,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;IAC7F,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,54 @@
1
+ import type { DeliveryId, FleetId, ShipId } from '@aeolus-fleet/common';
2
+ import { type Stale } from '../people/stale-item.js';
3
+ import type { Clock } from '../shared/clock.js';
4
+ import type { FollowArgoInbox } from './follow-argo-inbox.js';
5
+ import type { ArgoAccounts } from './ports.js';
6
+ /** A message open at argo as Bridge's argo section lists it: by its title, a question or a report, in its job's look, new or not, stale once its asker withdrew or replaced it, and where to act on it. */
7
+ export interface ArgoItem {
8
+ readonly deliveryId: DeliveryId;
9
+ readonly title: string;
10
+ readonly from: string;
11
+ readonly sentAt: string;
12
+ readonly kind: 'question' | 'report';
13
+ readonly look: 'decide' | 'alert' | 'notice';
14
+ readonly isNew: boolean;
15
+ readonly stale: Stale | null;
16
+ /** The message in the console, opened through the sign-in as argo (argo's inbox, AI2). */
17
+ readonly consoleUrl: string;
18
+ }
19
+ /** The newest message done at argo: its title, when, by whose person ship's name if an account allowed as argo did it, and whether in the console, signed in as argo. */
20
+ export interface ArgoDone {
21
+ readonly title: string;
22
+ readonly at: string;
23
+ readonly by: string | null;
24
+ readonly isInConsole: boolean;
25
+ }
26
+ /** Bridge's argo section: what waits at argo, newest first, its own count, a stale question outside it, and the newest done at argo within the hour. */
27
+ export interface ArgoSection {
28
+ readonly count: number;
29
+ readonly items: readonly ArgoItem[];
30
+ readonly done: ArgoDone | null;
31
+ }
32
+ /** None for an account not allowed as argo, or while the gateway's ship does not read argo's inbox. */
33
+ export type ReadArgoSection = (caller: {
34
+ fleetId: FleetId;
35
+ accountId: string;
36
+ }) => Promise<ArgoSection | null>;
37
+ /**
38
+ * Use case: an account allowed as argo reads Bridge's argo section (argo's
39
+ * inbox, AI2 to AI4): every message open at argo as the gateway's ship
40
+ * reads it, questions included, each sender by its own name, apart from
41
+ * what waits on the person and with a count of its own. A question its
42
+ * asker withdrew or replaced is stale and out of the count, as in the
43
+ * console. Once a message is done at argo it leaves the section for every
44
+ * account at once, and the section says who did it and where for an hour.
45
+ */
46
+ export declare function createReadArgoSection(deps: {
47
+ accounts: Pick<ArgoAccounts, 'list'>;
48
+ inboxOf: FollowArgoInbox['inboxOf'];
49
+ shipNames: {
50
+ nameOf: (fleetId: FleetId, shipId: ShipId) => Promise<string | undefined>;
51
+ };
52
+ clock: Clock;
53
+ consoleUrlOf: (deliveryId: DeliveryId) => string;
54
+ }): ReadArgoSection;
@@ -0,0 +1,67 @@
1
+ import { essenceOf, NOTICE_CONTENT_TYPE } from '../people/item-job.js';
2
+ import { staleOf } from '../people/stale-item.js';
3
+ /** How long a message to argo shows as new after it was sent: argo's read state is argo's alone, so the gateway cannot tell it. */
4
+ const NEW_FOR_MS = 60 * 60 * 1000;
5
+ /** How long the line saying a message was done at argo shows after it was done. */
6
+ const DONE_SHOWN_FOR_MS = 60 * 60 * 1000;
7
+ function askingOf({ deliveryId, sender, sentAt, title, askedQuestionId, withdrawnQuestionId }) {
8
+ return { deliveryId, senderShipId: sender.shipId, sentAt, title, askedQuestionId, withdrawnQuestionId, stepId: null, withdrawnStepId: null };
9
+ }
10
+ /** A withdrawal alone asks nothing: it makes what it withdraws stale and is listed nowhere, as on Bridge home. */
11
+ function isWithdrawalOnly({ askedQuestionId, withdrawnQuestionId }) {
12
+ return withdrawnQuestionId !== null && askedQuestionId === null;
13
+ }
14
+ function lookOf({ askedQuestionId, contentType }) {
15
+ if (askedQuestionId !== null) {
16
+ return 'decide';
17
+ }
18
+ return essenceOf(contentType) === NOTICE_CONTENT_TYPE ? 'notice' : 'alert';
19
+ }
20
+ /**
21
+ * Use case: an account allowed as argo reads Bridge's argo section (argo's
22
+ * inbox, AI2 to AI4): every message open at argo as the gateway's ship
23
+ * reads it, questions included, each sender by its own name, apart from
24
+ * what waits on the person and with a count of its own. A question its
25
+ * asker withdrew or replaced is stale and out of the count, as in the
26
+ * console. Once a message is done at argo it leaves the section for every
27
+ * account at once, and the section says who did it and where for an hour.
28
+ */
29
+ export function createReadArgoSection(deps) {
30
+ const doneOf = async (fleetId, { lastDone, now }) => {
31
+ if (lastDone === null || now.getTime() - lastDone.at.getTime() > DONE_SHOWN_FOR_MS) {
32
+ return null;
33
+ }
34
+ const { title, at, signedInAccountId } = lastDone;
35
+ const account = signedInAccountId === null ? undefined : (await deps.accounts.list(fleetId)).find(({ accountId }) => accountId === signedInAccountId);
36
+ const by = account === undefined ? null : ((await deps.shipNames.nameOf(fleetId, account.personShipId)) ?? null);
37
+ return { title, at: at.toISOString(), by, isInConsole: signedInAccountId !== null };
38
+ };
39
+ return async ({ fleetId, accountId }) => {
40
+ const inbox = deps.inboxOf(fleetId);
41
+ if (inbox?.kind !== 'read') {
42
+ return null;
43
+ }
44
+ const accounts = await deps.accounts.list(fleetId);
45
+ if (!accounts.some((account) => account.accountId === accountId)) {
46
+ return null;
47
+ }
48
+ const now = deps.clock.now();
49
+ const asking = inbox.messages.map(askingOf);
50
+ const items = inbox.messages
51
+ .filter((message) => !isWithdrawalOnly(message))
52
+ .map((message) => ({
53
+ deliveryId: message.deliveryId,
54
+ title: message.title,
55
+ from: message.sender.name,
56
+ sentAt: message.sentAt.toISOString(),
57
+ kind: message.askedQuestionId === null ? 'report' : 'question',
58
+ look: lookOf(message),
59
+ isNew: now.getTime() - message.sentAt.getTime() < NEW_FOR_MS,
60
+ stale: staleOf(askingOf(message), asking),
61
+ consoleUrl: deps.consoleUrlOf(message.deliveryId),
62
+ }))
63
+ .reverse();
64
+ return { count: items.filter(({ stale }) => stale === null).length, items, done: await doneOf(fleetId, { lastDone: inbox.lastDone, now }) };
65
+ };
66
+ }
67
+ //# sourceMappingURL=read-argo-section.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-argo-section.js","sourceRoot":"","sources":["../../../src/core/argo-inbox/read-argo-section.ts"],"names":[],"mappings":"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"}