@aeolus-fleet/gateway 0.36.1 → 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 (997) hide show
  1. package/README.md +4 -0
  2. package/dist/adapters/fleet/active-ships.d.ts +8 -0
  3. package/dist/adapters/fleet/active-ships.js +22 -0
  4. package/dist/adapters/fleet/active-ships.js.map +1 -0
  5. package/dist/adapters/fleet/actor-door.d.ts +8 -1
  6. package/dist/adapters/fleet/actor-door.js +12 -5
  7. package/dist/adapters/fleet/actor-door.js.map +1 -1
  8. package/dist/adapters/fleet/argo-inbox-door.d.ts +4 -0
  9. package/dist/adapters/fleet/argo-inbox-door.js +81 -0
  10. package/dist/adapters/fleet/argo-inbox-door.js.map +1 -0
  11. package/dist/adapters/fleet/every-listed-ship.d.ts +21 -0
  12. package/dist/adapters/fleet/every-listed-ship.js +28 -0
  13. package/dist/adapters/fleet/every-listed-ship.js.map +1 -0
  14. package/dist/adapters/fleet/fleet-ships.d.ts +1 -3
  15. package/dist/adapters/fleet/fleet-ships.js +5 -22
  16. package/dist/adapters/fleet/fleet-ships.js.map +1 -1
  17. package/dist/adapters/fleet/rest-fleet-door.d.ts +14 -0
  18. package/dist/adapters/fleet/rest-fleet-door.js +50 -6
  19. package/dist/adapters/fleet/rest-fleet-door.js.map +1 -1
  20. package/dist/adapters/http/front-door.js +3 -1
  21. package/dist/adapters/http/front-door.js.map +1 -1
  22. package/dist/adapters/http/live.d.ts +10 -1
  23. package/dist/adapters/http/live.js +10 -1
  24. package/dist/adapters/http/live.js.map +1 -1
  25. package/dist/adapters/http/party-sign-in-routes.d.ts +7 -0
  26. package/dist/adapters/http/party-sign-in-routes.js +18 -0
  27. package/dist/adapters/http/party-sign-in-routes.js.map +1 -1
  28. package/dist/adapters/http/person-tools.js +3 -2
  29. package/dist/adapters/http/person-tools.js.map +1 -1
  30. package/dist/adapters/http/slack-routes.d.ts +2 -0
  31. package/dist/adapters/http/slack-routes.js +12 -4
  32. package/dist/adapters/http/slack-routes.js.map +1 -1
  33. package/dist/adapters/mcp/mcp-servers.d.ts +8 -2
  34. package/dist/adapters/mcp/mcp-servers.js +8 -4
  35. package/dist/adapters/mcp/mcp-servers.js.map +1 -1
  36. package/dist/adapters/pagasae/email-channel.js +5 -3
  37. package/dist/adapters/pagasae/email-channel.js.map +1 -1
  38. package/dist/adapters/pagasae/pagasae-client.js +1 -0
  39. package/dist/adapters/pagasae/pagasae-client.js.map +1 -1
  40. package/dist/adapters/pagasae/shared-sign-in.js +2 -2
  41. package/dist/adapters/pagasae/shared-sign-in.js.map +1 -1
  42. package/dist/adapters/prisma/argo-accounts.d.ts +4 -0
  43. package/dist/adapters/prisma/argo-accounts.js +17 -0
  44. package/dist/adapters/prisma/argo-accounts.js.map +1 -0
  45. package/dist/adapters/prisma/argo-slack-posts.d.ts +4 -0
  46. package/dist/adapters/prisma/argo-slack-posts.js +30 -0
  47. package/dist/adapters/prisma/argo-slack-posts.js.map +1 -0
  48. package/dist/adapters/prisma/argo-wakes.d.ts +4 -0
  49. package/dist/adapters/prisma/argo-wakes.js +54 -0
  50. package/dist/adapters/prisma/argo-wakes.js.map +1 -0
  51. package/dist/adapters/prisma/basket-entries.js +4 -2
  52. package/dist/adapters/prisma/basket-entries.js.map +1 -1
  53. package/dist/adapters/prisma/connected-chats.d.ts +4 -0
  54. package/dist/adapters/prisma/connected-chats.js +21 -0
  55. package/dist/adapters/prisma/connected-chats.js.map +1 -0
  56. package/dist/adapters/prisma/fleet-forgetter.d.ts +1 -1
  57. package/dist/adapters/prisma/fleet-forgetter.js +2 -2
  58. package/dist/adapters/prisma/fleet-forgetter.js.map +1 -1
  59. package/dist/adapters/prisma/generated/browser.d.ts +26 -1
  60. package/dist/adapters/prisma/generated/client.d.ts +26 -1
  61. package/dist/adapters/prisma/generated/internal/class.d.ts +55 -0
  62. package/dist/adapters/prisma/generated/internal/class.js +4 -4
  63. package/dist/adapters/prisma/generated/internal/class.js.map +1 -1
  64. package/dist/adapters/prisma/generated/internal/prismaNamespace.d.ts +428 -1
  65. package/dist/adapters/prisma/generated/internal/prismaNamespace.js +49 -2
  66. package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -1
  67. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +52 -0
  68. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +49 -2
  69. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
  70. package/dist/adapters/prisma/generated/models/ArgoAccount.d.ts +946 -0
  71. package/dist/adapters/prisma/generated/models/ArgoAccount.js +2 -0
  72. package/dist/adapters/prisma/generated/models/ArgoAccount.js.map +1 -0
  73. package/dist/adapters/prisma/generated/models/ArgoMessageCovered.d.ts +947 -0
  74. package/dist/adapters/prisma/generated/models/ArgoMessageCovered.js +2 -0
  75. package/dist/adapters/prisma/generated/models/ArgoMessageCovered.js.map +1 -0
  76. package/dist/adapters/prisma/generated/models/ArgoSlackPost.d.ts +1065 -0
  77. package/dist/adapters/prisma/generated/models/ArgoSlackPost.js +2 -0
  78. package/dist/adapters/prisma/generated/models/ArgoSlackPost.js.map +1 -0
  79. package/dist/adapters/prisma/generated/models/ArgoWakeSent.d.ts +975 -0
  80. package/dist/adapters/prisma/generated/models/ArgoWakeSent.js +2 -0
  81. package/dist/adapters/prisma/generated/models/ArgoWakeSent.js.map +1 -0
  82. package/dist/adapters/prisma/generated/models/BasketEntry.d.ts +114 -18
  83. package/dist/adapters/prisma/generated/models/ItemOutcome.d.ts +91 -1
  84. package/dist/adapters/prisma/generated/models/OpenedDelivery.d.ts +95 -2
  85. package/dist/adapters/prisma/generated/models/Party.d.ts +32 -1
  86. package/dist/adapters/prisma/generated/models/SlackLinkStep.d.ts +1005 -0
  87. package/dist/adapters/prisma/generated/models/SlackLinkStep.js +2 -0
  88. package/dist/adapters/prisma/generated/models/SlackLinkStep.js.map +1 -0
  89. package/dist/adapters/prisma/generated/models.d.ts +5 -0
  90. package/dist/adapters/prisma/item-outcomes.d.ts +6 -1
  91. package/dist/adapters/prisma/item-outcomes.js +19 -3
  92. package/dist/adapters/prisma/item-outcomes.js.map +1 -1
  93. package/dist/adapters/prisma/opened-deliveries.js +5 -0
  94. package/dist/adapters/prisma/opened-deliveries.js.map +1 -1
  95. package/dist/adapters/prisma/party-store.js +4 -1
  96. package/dist/adapters/prisma/party-store.js.map +1 -1
  97. package/dist/adapters/prisma/slack-link-steps.d.ts +8 -0
  98. package/dist/adapters/prisma/slack-link-steps.js +28 -0
  99. package/dist/adapters/prisma/slack-link-steps.js.map +1 -0
  100. package/dist/adapters/prisma/slack-posts.js +4 -3
  101. package/dist/adapters/prisma/slack-posts.js.map +1 -1
  102. package/dist/adapters/slack/slack-messages.d.ts +2 -0
  103. package/dist/adapters/slack/slack-messages.js +125 -18
  104. package/dist/adapters/slack/slack-messages.js.map +1 -1
  105. package/dist/adapters/trpc/router.d.ts +78 -2
  106. package/dist/adapters/trpc/router.js +36 -1
  107. package/dist/adapters/trpc/router.js.map +1 -1
  108. package/dist/adapters/web-push/web-push.js +1 -1
  109. package/dist/adapters/web-push/web-push.js.map +1 -1
  110. package/dist/app.js +128 -15
  111. package/dist/app.js.map +1 -1
  112. package/dist/core/account-sign-in/account-of-sign-in.d.ts +7 -2
  113. package/dist/core/account-sign-in/account-of-sign-in.js +9 -3
  114. package/dist/core/account-sign-in/account-of-sign-in.js.map +1 -1
  115. package/dist/core/account-sign-in/ports.d.ts +2 -0
  116. package/dist/core/argo-inbox/argo-inbox.d.ts +31 -0
  117. package/dist/core/argo-inbox/argo-inbox.js +23 -0
  118. package/dist/core/argo-inbox/argo-inbox.js.map +1 -0
  119. package/dist/core/argo-inbox/argo-slack-message.d.ts +17 -0
  120. package/dist/core/argo-inbox/argo-slack-message.js +40 -0
  121. package/dist/core/argo-inbox/argo-slack-message.js.map +1 -0
  122. package/dist/core/argo-inbox/argo-slack-post.d.ts +21 -0
  123. package/dist/core/argo-inbox/argo-slack-post.js +2 -0
  124. package/dist/core/argo-inbox/argo-slack-post.js.map +1 -0
  125. package/dist/core/argo-inbox/follow-argo-inbox.d.ts +33 -0
  126. package/dist/core/argo-inbox/follow-argo-inbox.js +133 -0
  127. package/dist/core/argo-inbox/follow-argo-inbox.js.map +1 -0
  128. package/dist/core/argo-inbox/note-argo-account.d.ts +19 -0
  129. package/dist/core/argo-inbox/note-argo-account.js +18 -0
  130. package/dist/core/argo-inbox/note-argo-account.js.map +1 -0
  131. package/dist/core/argo-inbox/ports.d.ts +123 -0
  132. package/dist/core/argo-inbox/ports.js +2 -0
  133. package/dist/core/argo-inbox/ports.js.map +1 -0
  134. package/dist/core/argo-inbox/read-argo-inbox-notice.d.ts +34 -0
  135. package/dist/core/argo-inbox/read-argo-inbox-notice.js +20 -0
  136. package/dist/core/argo-inbox/read-argo-inbox-notice.js.map +1 -0
  137. package/dist/core/argo-inbox/read-argo-section.d.ts +54 -0
  138. package/dist/core/argo-inbox/read-argo-section.js +67 -0
  139. package/dist/core/argo-inbox/read-argo-section.js.map +1 -0
  140. package/dist/core/argo-inbox/show-argo-inbox-in-slack.d.ts +36 -0
  141. package/dist/core/argo-inbox/show-argo-inbox-in-slack.js +125 -0
  142. package/dist/core/argo-inbox/show-argo-inbox-in-slack.js.map +1 -0
  143. package/dist/core/argo-inbox/wake-for-argo.d.ts +37 -0
  144. package/dist/core/argo-inbox/wake-for-argo.js +139 -0
  145. package/dist/core/argo-inbox/wake-for-argo.js.map +1 -0
  146. package/dist/core/mcp-out/grant-calls.js +1 -1
  147. package/dist/core/mcp-out/grant-calls.js.map +1 -1
  148. package/dist/core/mcp-out/hand-call.js +1 -1
  149. package/dist/core/mcp-out/hand-call.js.map +1 -1
  150. package/dist/core/mcp-out/keep-server-title.d.ts +13 -0
  151. package/dist/core/mcp-out/keep-server-title.js +14 -0
  152. package/dist/core/mcp-out/keep-server-title.js.map +1 -0
  153. package/dist/core/mcp-out/ports.d.ts +10 -0
  154. package/dist/core/oauth/exchange-id-jag.d.ts +4 -1
  155. package/dist/core/oauth/exchange-id-jag.js +5 -2
  156. package/dist/core/oauth/exchange-id-jag.js.map +1 -1
  157. package/dist/core/parties/approve-party.js +1 -1
  158. package/dist/core/parties/approve-party.js.map +1 -1
  159. package/dist/core/parties/party.d.ts +2 -0
  160. package/dist/core/parties/party.js.map +1 -1
  161. package/dist/core/parties/ports.d.ts +5 -0
  162. package/dist/core/party-grants/listing-connection.js +2 -2
  163. package/dist/core/party-grants/listing-connection.js.map +1 -1
  164. package/dist/core/party-grants/tell-sign-in-needed.d.ts +2 -0
  165. package/dist/core/party-grants/tell-sign-in-needed.js +16 -4
  166. package/dist/core/party-grants/tell-sign-in-needed.js.map +1 -1
  167. package/dist/core/people/act-in-place.d.ts +42 -0
  168. package/dist/core/people/act-in-place.js +26 -0
  169. package/dist/core/people/act-in-place.js.map +1 -0
  170. package/dist/core/people/answer-delivery.js +13 -1
  171. package/dist/core/people/answer-delivery.js.map +1 -1
  172. package/dist/core/people/basket.d.ts +32 -10
  173. package/dist/core/people/basket.js +24 -6
  174. package/dist/core/people/basket.js.map +1 -1
  175. package/dist/core/people/count-basket.d.ts +4 -3
  176. package/dist/core/people/count-basket.js +9 -3
  177. package/dist/core/people/count-basket.js.map +1 -1
  178. package/dist/core/people/done-delivery.js +1 -1
  179. package/dist/core/people/done-delivery.js.map +1 -1
  180. package/dist/core/people/finish-own-step.js +2 -2
  181. package/dist/core/people/finish-own-step.js.map +1 -1
  182. package/dist/core/people/inbox-entry.d.ts +17 -1
  183. package/dist/core/people/inbox-entry.js +28 -1
  184. package/dist/core/people/inbox-entry.js.map +1 -1
  185. package/dist/core/people/item-job.d.ts +3 -1
  186. package/dist/core/people/item-job.js +5 -1
  187. package/dist/core/people/item-job.js.map +1 -1
  188. package/dist/core/people/item-outcome.d.ts +21 -2
  189. package/dist/core/people/item-outcome.js.map +1 -1
  190. package/dist/core/people/item-places.d.ts +26 -0
  191. package/dist/core/people/item-places.js +12 -0
  192. package/dist/core/people/item-places.js.map +1 -0
  193. package/dist/core/people/open-delivery.d.ts +6 -6
  194. package/dist/core/people/open-delivery.js +13 -10
  195. package/dist/core/people/open-delivery.js.map +1 -1
  196. package/dist/core/people/opened-of.d.ts +5 -1
  197. package/dist/core/people/opened-of.js +5 -1
  198. package/dist/core/people/opened-of.js.map +1 -1
  199. package/dist/core/people/person-wakes.d.ts +49 -0
  200. package/dist/core/people/person-wakes.js +27 -0
  201. package/dist/core/people/person-wakes.js.map +1 -0
  202. package/dist/core/people/ports.d.ts +46 -5
  203. package/dist/core/people/put-in-basket.d.ts +8 -6
  204. package/dist/core/people/put-in-basket.js +16 -5
  205. package/dist/core/people/put-in-basket.js.map +1 -1
  206. package/dist/core/people/read-basket.d.ts +8 -3
  207. package/dist/core/people/read-basket.js +8 -10
  208. package/dist/core/people/read-basket.js.map +1 -1
  209. package/dist/core/people/read-bridge-home.d.ts +39 -11
  210. package/dist/core/people/read-bridge-home.js +74 -12
  211. package/dist/core/people/read-bridge-home.js.map +1 -1
  212. package/dist/core/people/read-chats.d.ts +21 -0
  213. package/dist/core/people/read-chats.js +20 -0
  214. package/dist/core/people/read-chats.js.map +1 -0
  215. package/dist/core/people/read-inbox.d.ts +19 -9
  216. package/dist/core/people/read-inbox.js +57 -15
  217. package/dist/core/people/read-inbox.js.map +1 -1
  218. package/dist/core/people/read-record.d.ts +37 -11
  219. package/dist/core/people/read-record.js +44 -12
  220. package/dist/core/people/read-record.js.map +1 -1
  221. package/dist/core/people/read-send-to.d.ts +23 -0
  222. package/dist/core/people/read-send-to.js +37 -0
  223. package/dist/core/people/read-send-to.js.map +1 -0
  224. package/dist/core/people/read-your-fleet.d.ts +19 -0
  225. package/dist/core/people/read-your-fleet.js +22 -0
  226. package/dist/core/people/read-your-fleet.js.map +1 -0
  227. package/dist/core/people/remove-from-basket.d.ts +2 -1
  228. package/dist/core/people/remove-from-basket.js +4 -1
  229. package/dist/core/people/remove-from-basket.js.map +1 -1
  230. package/dist/core/people/routing.d.ts +13 -4
  231. package/dist/core/people/routing.js +14 -0
  232. package/dist/core/people/routing.js.map +1 -1
  233. package/dist/core/people/send-basket.d.ts +11 -7
  234. package/dist/core/people/send-basket.js +68 -11
  235. package/dist/core/people/send-basket.js.map +1 -1
  236. package/dist/core/people/send-message.d.ts +3 -1
  237. package/dist/core/people/send-message.js +9 -2
  238. package/dist/core/people/send-message.js.map +1 -1
  239. package/dist/core/people/send-stored-answers.d.ts +4 -3
  240. package/dist/core/people/send-stored-answers.js +62 -12
  241. package/dist/core/people/send-stored-answers.js.map +1 -1
  242. package/dist/core/people/stale-item.d.ts +40 -0
  243. package/dist/core/people/stale-item.js +36 -0
  244. package/dist/core/people/stale-item.js.map +1 -0
  245. package/dist/core/people/wake-person.d.ts +3 -1
  246. package/dist/core/people/wake-person.js +5 -3
  247. package/dist/core/people/wake-person.js.map +1 -1
  248. package/dist/core/people/web-push-channel.js +2 -2
  249. package/dist/core/people/web-push-channel.js.map +1 -1
  250. package/dist/core/people/your-fleet.d.ts +44 -0
  251. package/dist/core/people/your-fleet.js +64 -0
  252. package/dist/core/people/your-fleet.js.map +1 -0
  253. package/dist/core/sign-in/account-token.d.ts +5 -1
  254. package/dist/core/sign-in/account-token.js +8 -2
  255. package/dist/core/sign-in/account-token.js.map +1 -1
  256. package/dist/core/sign-in/complete-sign-in.d.ts +4 -1
  257. package/dist/core/sign-in/complete-sign-in.js +5 -2
  258. package/dist/core/sign-in/complete-sign-in.js.map +1 -1
  259. package/dist/core/sign-in/ports.d.ts +2 -0
  260. package/dist/core/slack/answer-in-slack.d.ts +15 -9
  261. package/dist/core/slack/answer-in-slack.js +43 -18
  262. package/dist/core/slack/answer-in-slack.js.map +1 -1
  263. package/dist/core/slack/ask-to-link-slack.d.ts +28 -0
  264. package/dist/core/slack/ask-to-link-slack.js +31 -0
  265. package/dist/core/slack/ask-to-link-slack.js.map +1 -0
  266. package/dist/core/slack/complete-link.d.ts +6 -1
  267. package/dist/core/slack/complete-link.js +6 -0
  268. package/dist/core/slack/complete-link.js.map +1 -1
  269. package/dist/core/slack/done-in-slack.d.ts +36 -0
  270. package/dist/core/slack/done-in-slack.js +63 -0
  271. package/dist/core/slack/done-in-slack.js.map +1 -0
  272. package/dist/core/slack/edit-slack-posts.d.ts +7 -5
  273. package/dist/core/slack/edit-slack-posts.js +13 -10
  274. package/dist/core/slack/edit-slack-posts.js.map +1 -1
  275. package/dist/core/slack/edited-post-of.d.ts +21 -0
  276. package/dist/core/slack/edited-post-of.js +77 -0
  277. package/dist/core/slack/edited-post-of.js.map +1 -0
  278. package/dist/core/slack/ports.d.ts +70 -10
  279. package/dist/core/slack/pressed-post-of.d.ts +9 -0
  280. package/dist/core/slack/pressed-post-of.js +18 -0
  281. package/dist/core/slack/pressed-post-of.js.map +1 -0
  282. package/dist/core/slack/read-slack-dropped-out.d.ts +23 -0
  283. package/dist/core/slack/read-slack-dropped-out.js +24 -0
  284. package/dist/core/slack/read-slack-dropped-out.js.map +1 -0
  285. package/dist/core/slack/read-slack-link.d.ts +4 -0
  286. package/dist/core/slack/read-slack-link.js +5 -0
  287. package/dist/core/slack/read-slack-link.js.map +1 -1
  288. package/dist/core/slack/show-in-slack.js +8 -7
  289. package/dist/core/slack/show-in-slack.js.map +1 -1
  290. package/dist/core/slack/slack-post-of.d.ts +24 -12
  291. package/dist/core/slack/slack-post-of.js +118 -37
  292. package/dist/core/slack/slack-post-of.js.map +1 -1
  293. package/dist/core/slack/slack-post.d.ts +13 -1
  294. package/dist/core/slack/slack-post.js +16 -1
  295. package/dist/core/slack/slack-post.js.map +1 -1
  296. package/dist/core/slack/slack-press.d.ts +1 -1
  297. package/dist/core/slack/slack-press.js +2 -1
  298. package/dist/core/slack/slack-press.js.map +1 -1
  299. package/package.json +4 -2
  300. package/src/adapters/prisma/migrations/20261104090000_basket_entries_note_alone/migration.sql +2 -0
  301. package/src/adapters/prisma/migrations/20261105090000_slack_link_steps/migration.sql +10 -0
  302. package/src/adapters/prisma/migrations/20261106090000_opened_deliveries_withdrawn_steps/migration.sql +2 -0
  303. package/src/adapters/prisma/migrations/20261107090000_opened_deliveries_step_link/migration.sql +2 -0
  304. package/src/adapters/prisma/migrations/20261107100000_opened_deliveries_opened_in/migration.sql +2 -0
  305. package/src/adapters/prisma/migrations/20261108090000_item_outcomes_note_and_seen/migration.sql +4 -0
  306. package/src/adapters/prisma/migrations/20261108090000_parties_display_name/migration.sql +2 -0
  307. package/src/adapters/prisma/migrations/20261109090000_argo_accounts/migration.sql +8 -0
  308. package/src/adapters/prisma/migrations/20261109090000_basket_entries_option_label/migration.sql +2 -0
  309. package/src/adapters/prisma/migrations/20261109100000_basket_entries_sent/migration.sql +3 -0
  310. package/src/adapters/prisma/migrations/20261110090000_argo_slack_posts/migration.sql +12 -0
  311. package/src/adapters/prisma/migrations/20261110090000_connected_chats_indexes/migration.sql +5 -0
  312. package/src/adapters/prisma/migrations/20261110100000_argo_wakes/migration.sql +18 -0
  313. package/src/adapters/prisma/schema.prisma +88 -6
  314. package/web/.next/BUILD_ID +1 -1
  315. package/web/.next/app-path-routes-manifest.json +10 -8
  316. package/web/.next/build-manifest.json +114 -90
  317. package/web/.next/diagnostics/route-bundle-stats.json +268 -208
  318. package/web/.next/fallback-build-manifest.json +3 -3
  319. package/web/.next/prerender-manifest.json +3 -3
  320. package/web/.next/routes-manifest.json +12 -0
  321. package/web/.next/server/app/(bridge)/bridge/basket/page/app-paths-manifest.json +3 -0
  322. package/web/.next/server/app/{(console) → (bridge)}/bridge/basket/page/build-manifest.json +4 -4
  323. package/web/.next/server/app/{(console) → (bridge)}/bridge/basket/page/next-font-manifest.json +1 -1
  324. package/web/.next/server/app/(bridge)/bridge/basket/page/server-reference-manifest.json +105 -0
  325. package/web/.next/server/app/{(console)/bridge/settings/requests/[requestId] → (bridge)/bridge/basket}/page.js +15 -14
  326. package/web/.next/server/app/(bridge)/bridge/basket/page.js.nft.json +1 -0
  327. package/web/.next/server/app/(bridge)/bridge/basket/page_client-reference-manifest.js +3 -0
  328. package/web/.next/server/app/(bridge)/bridge/changes/route/app-paths-manifest.json +3 -0
  329. package/web/.next/server/app/(bridge)/bridge/changes/route.js +8 -0
  330. package/web/.next/server/app/{(console) → (bridge)}/bridge/changes/route.js.nft.json +1 -1
  331. package/web/.next/server/app/(bridge)/bridge/changes/route_client-reference-manifest.js +3 -0
  332. package/web/.next/server/app/(bridge)/bridge/done/page/app-paths-manifest.json +3 -0
  333. package/web/.next/server/app/{(console) → (bridge)}/bridge/done/page/build-manifest.json +4 -4
  334. package/web/.next/server/app/{(console) → (bridge)}/bridge/done/page/next-font-manifest.json +1 -1
  335. package/web/.next/server/app/(bridge)/bridge/done/page/server-reference-manifest.json +25 -0
  336. package/web/.next/server/app/{(console) → (bridge)}/bridge/done/page.js +16 -15
  337. package/web/.next/server/app/{(console)/bridge/settings → (bridge)/bridge/done}/page.js.nft.json +1 -1
  338. package/web/.next/server/app/(bridge)/bridge/done/page_client-reference-manifest.js +3 -0
  339. package/web/.next/server/app/(bridge)/bridge/fleet/page/app-paths-manifest.json +3 -0
  340. package/web/.next/server/app/{(console)/bridge/settings → (bridge)/bridge/fleet}/page/build-manifest.json +4 -4
  341. package/web/.next/server/app/{(console)/bridge/settings → (bridge)/bridge/fleet}/page/next-font-manifest.json +1 -1
  342. package/web/.next/server/app/{(console)/bridge/settings → (bridge)/bridge/fleet}/page/server-reference-manifest.json +3 -3
  343. package/web/.next/server/app/(bridge)/bridge/fleet/page.js +24 -0
  344. package/web/.next/server/app/{(console)/bridge/done → (bridge)/bridge/fleet}/page.js.nft.json +1 -1
  345. package/web/.next/server/app/(bridge)/bridge/fleet/page_client-reference-manifest.js +3 -0
  346. package/web/.next/server/app/(bridge)/bridge/focus/route/app-paths-manifest.json +3 -0
  347. package/web/.next/server/app/(bridge)/bridge/focus/route.js +8 -0
  348. package/web/.next/server/app/{(console) → (bridge)}/bridge/focus/route.js.nft.json +1 -1
  349. package/web/.next/server/app/(bridge)/bridge/focus/route_client-reference-manifest.js +3 -0
  350. package/web/.next/server/app/(bridge)/bridge/page/app-paths-manifest.json +3 -0
  351. package/web/.next/server/app/{(console) → (bridge)}/bridge/page/build-manifest.json +4 -4
  352. package/web/.next/server/app/{(console) → (bridge)}/bridge/page/next-font-manifest.json +1 -1
  353. package/web/.next/server/app/(bridge)/bridge/page/server-reference-manifest.json +95 -0
  354. package/web/.next/server/app/{(console) → (bridge)}/bridge/page.js +16 -14
  355. package/web/.next/server/app/{(console) → (bridge)}/bridge/page.js.nft.json +1 -1
  356. package/web/.next/server/app/(bridge)/bridge/page_client-reference-manifest.js +3 -0
  357. package/web/.next/server/app/(bridge)/bridge/settings/page/app-paths-manifest.json +3 -0
  358. package/web/.next/server/app/(bridge)/bridge/settings/page/build-manifest.json +23 -0
  359. package/web/.next/server/app/(bridge)/bridge/settings/page/next-font-manifest.json +11 -0
  360. package/web/.next/server/app/(bridge)/bridge/settings/page/server-reference-manifest.json +15 -0
  361. package/web/.next/server/app/{(console) → (bridge)}/bridge/settings/page.js +15 -14
  362. package/web/.next/server/app/{(console)/bridge/basket → (bridge)/bridge/settings}/page.js.nft.json +1 -1
  363. package/web/.next/server/app/(bridge)/bridge/settings/page_client-reference-manifest.js +3 -0
  364. package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page/app-paths-manifest.json +3 -0
  365. package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page/build-manifest.json +23 -0
  366. package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page/next-font-manifest.json +11 -0
  367. package/web/.next/server/app/{(console) → (bridge)}/bridge/settings/requests/[requestId]/page/server-reference-manifest.json +6 -6
  368. package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page.js +26 -0
  369. package/web/.next/server/app/{(console) → (bridge)}/bridge/settings/requests/[requestId]/page.js.nft.json +1 -1
  370. package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page_client-reference-manifest.js +3 -0
  371. package/web/.next/server/app/(bridge)/bridge/settings/routing/page/app-paths-manifest.json +3 -0
  372. package/web/.next/server/app/(bridge)/bridge/settings/routing/page/build-manifest.json +23 -0
  373. package/web/.next/server/app/(bridge)/bridge/settings/routing/page/next-font-manifest.json +11 -0
  374. package/web/.next/server/app/(bridge)/bridge/settings/routing/page/react-loadable-manifest.json +1 -0
  375. package/web/.next/server/app/{(console) → (bridge)}/bridge/settings/routing/page/server-reference-manifest.json +15 -15
  376. package/web/.next/server/app/{(console) → (bridge)}/bridge/settings/routing/page.js +15 -14
  377. package/web/.next/server/app/(bridge)/bridge/settings/routing/page.js.map +5 -0
  378. package/web/.next/server/app/{(console) → (bridge)}/bridge/settings/routing/page.js.nft.json +1 -1
  379. package/web/.next/server/app/(bridge)/bridge/settings/routing/page_client-reference-manifest.js +3 -0
  380. package/web/.next/server/app/(bridge)/bridge/stay-aware/page/app-paths-manifest.json +3 -0
  381. package/web/.next/server/app/(bridge)/bridge/stay-aware/page/build-manifest.json +23 -0
  382. package/web/.next/server/app/(bridge)/bridge/stay-aware/page/next-font-manifest.json +11 -0
  383. package/web/.next/server/app/(bridge)/bridge/stay-aware/page/react-loadable-manifest.json +1 -0
  384. package/web/.next/server/app/(bridge)/bridge/stay-aware/page/server-reference-manifest.json +95 -0
  385. package/web/.next/server/app/{(console)/bridge/basket → (bridge)/bridge/stay-aware}/page.js +15 -14
  386. package/web/.next/server/app/(bridge)/bridge/stay-aware/page.js.map +5 -0
  387. package/web/.next/server/app/(bridge)/bridge/stay-aware/page.js.nft.json +1 -0
  388. package/web/.next/server/app/(bridge)/bridge/stay-aware/page_client-reference-manifest.js +3 -0
  389. package/web/.next/server/app/(console)/gateway-off/page/build-manifest.json +4 -4
  390. package/web/.next/server/app/(console)/gateway-off/page/server-reference-manifest.json +1 -1
  391. package/web/.next/server/app/(console)/gateway-off/page.js +2 -2
  392. package/web/.next/server/app/(console)/gateway-off/page.js.nft.json +1 -1
  393. package/web/.next/server/app/(console)/gateway-off/page_client-reference-manifest.js +1 -1
  394. package/web/.next/server/app/(console)/meetings/[meetingId]/page/build-manifest.json +4 -4
  395. package/web/.next/server/app/(console)/meetings/[meetingId]/page/server-reference-manifest.json +3 -3
  396. package/web/.next/server/app/(console)/meetings/[meetingId]/page.js +2 -2
  397. package/web/.next/server/app/(console)/meetings/[meetingId]/page.js.nft.json +1 -1
  398. package/web/.next/server/app/(console)/meetings/[meetingId]/page_client-reference-manifest.js +1 -1
  399. package/web/.next/server/app/(console)/outside-parties/[name]/change/page/build-manifest.json +4 -4
  400. package/web/.next/server/app/(console)/outside-parties/[name]/change/page/server-reference-manifest.json +18 -18
  401. package/web/.next/server/app/(console)/outside-parties/[name]/change/page.js +2 -2
  402. package/web/.next/server/app/(console)/outside-parties/[name]/change/page.js.nft.json +1 -1
  403. package/web/.next/server/app/(console)/outside-parties/[name]/change/page_client-reference-manifest.js +1 -1
  404. package/web/.next/server/app/(console)/outside-parties/[name]/page/build-manifest.json +4 -4
  405. package/web/.next/server/app/(console)/outside-parties/[name]/page/server-reference-manifest.json +8 -8
  406. package/web/.next/server/app/(console)/outside-parties/[name]/page.js +2 -2
  407. package/web/.next/server/app/(console)/outside-parties/[name]/page.js.nft.json +1 -1
  408. package/web/.next/server/app/(console)/outside-parties/[name]/page_client-reference-manifest.js +1 -1
  409. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page/build-manifest.json +4 -4
  410. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page/server-reference-manifest.json +18 -18
  411. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page.js +2 -2
  412. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page.js.nft.json +1 -1
  413. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page_client-reference-manifest.js +1 -1
  414. package/web/.next/server/app/(console)/outside-parties/add/page/build-manifest.json +4 -4
  415. package/web/.next/server/app/(console)/outside-parties/add/page/server-reference-manifest.json +10 -10
  416. package/web/.next/server/app/(console)/outside-parties/add/page.js +2 -2
  417. package/web/.next/server/app/(console)/outside-parties/add/page.js.nft.json +1 -1
  418. package/web/.next/server/app/(console)/outside-parties/add/page_client-reference-manifest.js +1 -1
  419. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page/build-manifest.json +4 -4
  420. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page/server-reference-manifest.json +2 -2
  421. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page.js +2 -2
  422. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page.js.nft.json +1 -1
  423. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page_client-reference-manifest.js +1 -1
  424. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page/build-manifest.json +4 -4
  425. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page/server-reference-manifest.json +2 -2
  426. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page.js +2 -2
  427. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page.js.nft.json +1 -1
  428. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page_client-reference-manifest.js +1 -1
  429. package/web/.next/server/app/(console)/outside-parties/page/build-manifest.json +4 -4
  430. package/web/.next/server/app/(console)/outside-parties/page/server-reference-manifest.json +2 -2
  431. package/web/.next/server/app/(console)/outside-parties/page.js +2 -2
  432. package/web/.next/server/app/(console)/outside-parties/page.js.nft.json +1 -1
  433. package/web/.next/server/app/(console)/outside-parties/page_client-reference-manifest.js +1 -1
  434. package/web/.next/server/app/(console)/parties/page/build-manifest.json +4 -4
  435. package/web/.next/server/app/(console)/parties/page/server-reference-manifest.json +8 -8
  436. package/web/.next/server/app/(console)/parties/page.js +2 -2
  437. package/web/.next/server/app/(console)/parties/page.js.nft.json +1 -1
  438. package/web/.next/server/app/(console)/parties/page_client-reference-manifest.js +1 -1
  439. package/web/.next/server/app/(console)/sign-in/failed/page/build-manifest.json +4 -4
  440. package/web/.next/server/app/(console)/sign-in/failed/page/server-reference-manifest.json +1 -1
  441. package/web/.next/server/app/(console)/sign-in/failed/page.js +2 -2
  442. package/web/.next/server/app/(console)/sign-in/failed/page.js.nft.json +1 -1
  443. package/web/.next/server/app/(console)/sign-in/failed/page_client-reference-manifest.js +1 -1
  444. package/web/.next/server/app/(console)/slack/disconnect/page/build-manifest.json +4 -4
  445. package/web/.next/server/app/(console)/slack/disconnect/page/server-reference-manifest.json +11 -11
  446. package/web/.next/server/app/(console)/slack/disconnect/page.js +2 -2
  447. package/web/.next/server/app/(console)/slack/disconnect/page.js.nft.json +1 -1
  448. package/web/.next/server/app/(console)/slack/disconnect/page_client-reference-manifest.js +1 -1
  449. package/web/.next/server/app/(console)/slack/expose/page/build-manifest.json +4 -4
  450. package/web/.next/server/app/(console)/slack/expose/page/server-reference-manifest.json +11 -11
  451. package/web/.next/server/app/(console)/slack/expose/page.js +2 -2
  452. package/web/.next/server/app/(console)/slack/expose/page.js.nft.json +1 -1
  453. package/web/.next/server/app/(console)/slack/expose/page_client-reference-manifest.js +1 -1
  454. package/web/.next/server/app/(console)/slack/link/route.js.nft.json +1 -1
  455. package/web/.next/server/app/(console)/slack/page/build-manifest.json +4 -4
  456. package/web/.next/server/app/(console)/slack/page/server-reference-manifest.json +11 -11
  457. package/web/.next/server/app/(console)/slack/page.js +2 -2
  458. package/web/.next/server/app/(console)/slack/page.js.nft.json +1 -1
  459. package/web/.next/server/app/(console)/slack/page_client-reference-manifest.js +1 -1
  460. package/web/.next/server/app/(console)/slack/remove/page/build-manifest.json +4 -4
  461. package/web/.next/server/app/(console)/slack/remove/page/server-reference-manifest.json +11 -11
  462. package/web/.next/server/app/(console)/slack/remove/page.js +4 -4
  463. package/web/.next/server/app/(console)/slack/remove/page.js.nft.json +1 -1
  464. package/web/.next/server/app/(console)/slack/remove/page_client-reference-manifest.js +1 -1
  465. package/web/.next/server/app/_global-error/page/build-manifest.json +4 -4
  466. package/web/.next/server/app/_global-error/page.js.nft.json +1 -1
  467. package/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  468. package/web/.next/server/app/_global-error.html +1 -1
  469. package/web/.next/server/app/_global-error.rsc +1 -1
  470. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  471. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  472. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  473. package/web/.next/server/app/_not-found/page/build-manifest.json +4 -4
  474. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  475. package/web/.next/server/app/_not-found/page.js +2 -2
  476. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  477. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  478. package/web/.next/server/app/apple-icon.png/route.js.nft.json +1 -1
  479. package/web/.next/server/app/authorize/failed/page/build-manifest.json +4 -4
  480. package/web/.next/server/app/authorize/failed/page/server-reference-manifest.json +1 -1
  481. package/web/.next/server/app/authorize/failed/page.js +3 -3
  482. package/web/.next/server/app/authorize/failed/page.js.nft.json +1 -1
  483. package/web/.next/server/app/authorize/failed/page_client-reference-manifest.js +1 -1
  484. package/web/.next/server/app/authorize/pick/page/build-manifest.json +4 -4
  485. package/web/.next/server/app/authorize/pick/page/server-reference-manifest.json +1 -1
  486. package/web/.next/server/app/authorize/pick/page.js +7 -6
  487. package/web/.next/server/app/authorize/pick/page.js.nft.json +1 -1
  488. package/web/.next/server/app/authorize/pick/page_client-reference-manifest.js +1 -1
  489. package/web/.next/server/app/authorize/waiting/approval/page/build-manifest.json +4 -4
  490. package/web/.next/server/app/authorize/waiting/approval/page/server-reference-manifest.json +1 -1
  491. package/web/.next/server/app/authorize/waiting/approval/page.js +3 -3
  492. package/web/.next/server/app/authorize/waiting/approval/page.js.nft.json +1 -1
  493. package/web/.next/server/app/authorize/waiting/approval/page_client-reference-manifest.js +1 -1
  494. package/web/.next/server/app/icon.svg/route.js.nft.json +1 -1
  495. package/web/.next/server/app-paths-manifest.json +10 -8
  496. package/web/.next/server/chunks/0b9d__next-internal_server_app_(bridge)_bridge_changes_route_actions_0wd1c_8tnx6-f.js +3 -0
  497. package/web/.next/server/chunks/[root-of-the-server]__1j0sdz18lzulo._.js +2 -2
  498. package/web/.next/server/chunks/[root-of-the-server]__1o2xxi_001xql._.js +2 -2
  499. package/web/.next/server/chunks/_0up_7s_05-7vm._.js +3 -0
  500. package/web/.next/server/chunks/_0up_7s_05-7vm._.js.map +1 -0
  501. package/web/.next/server/chunks/_0xw0b7avhvg75._.js +1 -1
  502. package/web/.next/server/chunks/_1w2t6c0hpdsrn._.js +1 -1
  503. package/web/.next/server/chunks/_1xaed_q500ez6._.js +3 -0
  504. package/web/.next/server/chunks/_1xaed_q500ez6._.js.map +1 -0
  505. package/web/.next/server/chunks/_20ne4s-e_jzxp._.js +1 -1
  506. package/web/.next/server/chunks/_20ne4s-e_jzxp._.js.map +1 -1
  507. package/web/.next/server/chunks/ssr/01fr_app_(bridge)_bridge_settings_requests_[requestId]_page_actions_0o8g7_xshtmem.js +3 -0
  508. package/web/.next/server/chunks/ssr/01fr_app_(bridge)_bridge_settings_requests_[requestId]_page_actions_0o8g7_xshtmem.js.map +1 -0
  509. package/web/.next/server/chunks/ssr/0b9d__next-internal_server_app_(bridge)_bridge_stay-aware_page_actions_1u0xo0v3y9c34.js +3 -0
  510. package/web/.next/server/chunks/ssr/0b9d__next-internal_server_app_(bridge)_bridge_stay-aware_page_actions_1u0xo0v3y9c34.js.map +1 -0
  511. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_bridge_settings_routing_page_actions_06_j7s24dy5ee.js +3 -0
  512. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_bridge_settings_routing_page_actions_06_j7s24dy5ee.js.map +1 -0
  513. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_change_page_actions_04td11fxohsfm.js +1 -1
  514. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_change_page_actions_04td11fxohsfm.js.map +1 -1
  515. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_page_actions_0u-45itza1ls7.js +1 -1
  516. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_page_actions_0u-45itza1ls7.js.map +1 -1
  517. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_retire_page_actions_0s7ps6i0ts7v5.js +1 -1
  518. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_retire_page_actions_0s7ps6i0ts7v5.js.map +1 -1
  519. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add-a2a-client_page_actions_0d_wgiu94c32e.js +1 -1
  520. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add-a2a-client_page_actions_0d_wgiu94c32e.js.map +1 -1
  521. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add_page_actions_0yfz_dfn-8uo7.js +1 -1
  522. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add_page_actions_0yfz_dfn-8uo7.js.map +1 -1
  523. package/web/.next/server/chunks/ssr/[root-of-the-server]__001xx3sm5ur-e._.js +1 -1
  524. package/web/.next/server/chunks/ssr/[root-of-the-server]__001xx3sm5ur-e._.js.map +1 -1
  525. package/web/.next/server/chunks/ssr/{[root-of-the-server]__1yyaeeylnezpi._.js → [root-of-the-server]__04_bc8g0oe4jt._.js} +1 -1
  526. package/web/.next/server/chunks/ssr/[root-of-the-server]__0a6a1yc_ac-qt._.js +1 -1
  527. package/web/.next/server/chunks/ssr/[root-of-the-server]__0a8db18tyk__5._.js +1 -1
  528. package/web/.next/server/chunks/ssr/[root-of-the-server]__0a8db18tyk__5._.js.map +1 -1
  529. package/web/.next/server/chunks/ssr/[root-of-the-server]__0e4l5gt01o04p._.js +3 -0
  530. package/web/.next/server/chunks/ssr/[root-of-the-server]__0e4l5gt01o04p._.js.map +1 -0
  531. package/web/.next/server/chunks/ssr/[root-of-the-server]__0fz0817_b9ljl._.js +1 -1
  532. package/web/.next/server/chunks/ssr/[root-of-the-server]__0gptrhg3mj4hs._.js +57 -0
  533. package/web/.next/server/chunks/ssr/[root-of-the-server]__0gptrhg3mj4hs._.js.map +1 -0
  534. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k3g0p3t9t0c-._.js +1 -1
  535. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k3g0p3t9t0c-._.js.map +1 -1
  536. package/web/.next/server/chunks/ssr/[root-of-the-server]__0kjcooo3pi4_k._.js +57 -0
  537. package/web/.next/server/chunks/ssr/[root-of-the-server]__0kjcooo3pi4_k._.js.map +1 -0
  538. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rmg7huc074bf._.js +3 -0
  539. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rmg7huc074bf._.js.map +1 -0
  540. package/web/.next/server/chunks/ssr/[root-of-the-server]__10s9e8g5x-ws8._.js +1 -1
  541. package/web/.next/server/chunks/ssr/[root-of-the-server]__10s9e8g5x-ws8._.js.map +1 -1
  542. package/web/.next/server/chunks/ssr/[root-of-the-server]__13v3maun347sn._.js +3 -0
  543. package/web/.next/server/chunks/ssr/[root-of-the-server]__13v3maun347sn._.js.map +1 -0
  544. package/web/.next/server/chunks/ssr/[root-of-the-server]__13yoncr_nx3jc._.js +1 -1
  545. package/web/.next/server/chunks/ssr/[root-of-the-server]__13yoncr_nx3jc._.js.map +1 -1
  546. package/web/.next/server/chunks/ssr/{[root-of-the-server]__0gnfxe62edx95._.js → [root-of-the-server]__179upda-y7uap._.js} +1 -1
  547. package/web/.next/server/chunks/ssr/[root-of-the-server]__18-8taiduk1jn._.js +1 -1
  548. package/web/.next/server/chunks/ssr/[root-of-the-server]__18-8taiduk1jn._.js.map +1 -1
  549. package/web/.next/server/chunks/ssr/[root-of-the-server]__1ektgsnjg4btl._.js +3 -0
  550. package/web/.next/server/chunks/ssr/[root-of-the-server]__1ektgsnjg4btl._.js.map +1 -0
  551. package/web/.next/server/chunks/ssr/[root-of-the-server]__1hgu6f5hpnykv._.js +57 -0
  552. package/web/.next/server/chunks/ssr/[root-of-the-server]__1hgu6f5hpnykv._.js.map +1 -0
  553. package/web/.next/server/chunks/ssr/[root-of-the-server]__1nfpyr3ynmwks._.js +3 -0
  554. package/web/.next/server/chunks/ssr/[root-of-the-server]__1nfpyr3ynmwks._.js.map +1 -0
  555. package/web/.next/server/chunks/ssr/[root-of-the-server]__1qpow96uit9t8._.js +1 -1
  556. package/web/.next/server/chunks/ssr/[root-of-the-server]__1qpow96uit9t8._.js.map +1 -1
  557. package/web/.next/server/chunks/ssr/[root-of-the-server]__1ul9rrs2g66lm._.js +4 -0
  558. package/web/.next/server/chunks/ssr/[root-of-the-server]__1ul9rrs2g66lm._.js.map +1 -0
  559. package/web/.next/server/chunks/ssr/[root-of-the-server]__20gvfqy33wcds._.js +57 -0
  560. package/web/.next/server/chunks/ssr/[root-of-the-server]__20gvfqy33wcds._.js.map +1 -0
  561. package/web/.next/server/chunks/ssr/_00fvst5icgei4._.js +3 -0
  562. package/web/.next/server/chunks/ssr/_00fvst5icgei4._.js.map +1 -0
  563. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js +1 -1
  564. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js.map +1 -1
  565. package/web/.next/server/chunks/ssr/_02mwdj1oj1zgm._.js +3 -0
  566. package/web/.next/server/chunks/ssr/_02mwdj1oj1zgm._.js.map +1 -0
  567. package/web/.next/server/chunks/ssr/_03lk54yp-yhw3._.js +2 -2
  568. package/web/.next/server/chunks/ssr/_03lk54yp-yhw3._.js.map +1 -1
  569. package/web/.next/server/chunks/ssr/_0f7ucdt7bfmun._.js +3 -0
  570. package/web/.next/server/chunks/ssr/_0f7ucdt7bfmun._.js.map +1 -0
  571. package/web/.next/server/chunks/ssr/_0fqd23gyia_8g._.js +3 -0
  572. package/web/.next/server/chunks/ssr/_0fqd23gyia_8g._.js.map +1 -0
  573. package/web/.next/server/chunks/ssr/_0ka_9elusb800._.js +1 -1
  574. package/web/.next/server/chunks/ssr/_0ka_9elusb800._.js.map +1 -1
  575. package/web/.next/server/chunks/ssr/_0kk7op86em7z2._.js +3 -0
  576. package/web/.next/server/chunks/ssr/_0kk7op86em7z2._.js.map +1 -0
  577. package/web/.next/server/chunks/ssr/_0pirspvjp3ggl._.js +3 -0
  578. package/web/.next/server/chunks/ssr/_0pirspvjp3ggl._.js.map +1 -0
  579. package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js +1 -1
  580. package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js.map +1 -1
  581. package/web/.next/server/chunks/ssr/_0u0u0owpxx_37._.js +3 -0
  582. package/web/.next/server/chunks/ssr/_0u0u0owpxx_37._.js.map +1 -0
  583. package/web/.next/server/chunks/ssr/_0v_x6k3ztfvx0._.js +3 -0
  584. package/web/.next/server/chunks/ssr/_0v_x6k3ztfvx0._.js.map +1 -0
  585. package/web/.next/server/chunks/ssr/_0x5-_917zcaj9._.js +3 -0
  586. package/web/.next/server/chunks/ssr/_0x5-_917zcaj9._.js.map +1 -0
  587. package/web/.next/server/chunks/ssr/_0xajzaside0sw._.js +3 -0
  588. package/web/.next/server/chunks/ssr/_0xajzaside0sw._.js.map +1 -0
  589. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js +1 -1
  590. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js.map +1 -1
  591. package/web/.next/server/chunks/ssr/_0yhvyj-yts7qi._.js +3 -0
  592. package/web/.next/server/chunks/ssr/_0yhvyj-yts7qi._.js.map +1 -0
  593. package/web/.next/server/chunks/ssr/_104ilzyn58zw_._.js +3 -0
  594. package/web/.next/server/chunks/ssr/_104ilzyn58zw_._.js.map +1 -0
  595. package/web/.next/server/chunks/ssr/_13_ady-a4058y._.js +3 -0
  596. package/web/.next/server/chunks/ssr/_13_ady-a4058y._.js.map +1 -0
  597. package/web/.next/server/chunks/ssr/_14k1oldo5chf8._.js +3 -0
  598. package/web/.next/server/chunks/ssr/_14k1oldo5chf8._.js.map +1 -0
  599. package/web/.next/server/chunks/ssr/_15whg3fd67b9x._.js +3 -0
  600. package/web/.next/server/chunks/ssr/_15whg3fd67b9x._.js.map +1 -0
  601. package/web/.next/server/chunks/ssr/_17zzluh48wsdb._.js +3 -0
  602. package/web/.next/server/chunks/ssr/_17zzluh48wsdb._.js.map +1 -0
  603. package/web/.next/server/chunks/ssr/_18xv7kh7i655_._.js +3 -0
  604. package/web/.next/server/chunks/ssr/_18xv7kh7i655_._.js.map +1 -0
  605. package/web/.next/server/chunks/ssr/_1_wav28san6dm._.js +1 -1
  606. package/web/.next/server/chunks/ssr/_1_ym4hwge_4r0._.js +3 -0
  607. package/web/.next/server/chunks/ssr/_1_ym4hwge_4r0._.js.map +1 -0
  608. package/web/.next/server/chunks/ssr/_1cc4ie_s4tycq._.js +3 -0
  609. package/web/.next/server/chunks/ssr/_1cc4ie_s4tycq._.js.map +1 -0
  610. package/web/.next/server/chunks/ssr/_1e2o809f0ekry._.js +1 -1
  611. package/web/.next/server/chunks/ssr/{_0a_nsm-ye2r6v._.js → _1gbkqq8ra1nei._.js} +2 -2
  612. package/web/.next/server/chunks/ssr/_1gbkqq8ra1nei._.js.map +1 -0
  613. package/web/.next/server/chunks/ssr/_1gnk2vqna6c6u._.js +3 -0
  614. package/web/.next/server/chunks/ssr/_1gnk2vqna6c6u._.js.map +1 -0
  615. package/web/.next/server/chunks/ssr/_1i8ofnr1a5yle._.js +3 -0
  616. package/web/.next/server/chunks/ssr/_1i8ofnr1a5yle._.js.map +1 -0
  617. package/web/.next/server/chunks/ssr/_1k2b80m058vgx._.js +3 -0
  618. package/web/.next/server/chunks/ssr/_1k2b80m058vgx._.js.map +1 -0
  619. package/web/.next/server/chunks/ssr/_1mg5oon0wpocg._.js +3 -0
  620. package/web/.next/server/chunks/ssr/_1mg5oon0wpocg._.js.map +1 -0
  621. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js +1 -1
  622. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js.map +1 -1
  623. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js +1 -1
  624. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js.map +1 -1
  625. package/web/.next/server/chunks/ssr/_1rfpx4ze-3l8z._.js +3 -0
  626. package/web/.next/server/chunks/ssr/{web_features_0mi9a9pdzkdji._.js.map → _1rfpx4ze-3l8z._.js.map} +1 -1
  627. package/web/.next/server/chunks/ssr/_1t74yvog5g6g2._.js +3 -0
  628. package/web/.next/server/chunks/ssr/_1t74yvog5g6g2._.js.map +1 -0
  629. package/web/.next/server/chunks/ssr/_1ve-ao6odintc._.js +3 -0
  630. package/web/.next/server/chunks/ssr/_1ve-ao6odintc._.js.map +1 -0
  631. package/web/.next/server/chunks/ssr/_1xgivp19ts9hn._.js +3 -0
  632. package/web/.next/server/chunks/ssr/_1xgivp19ts9hn._.js.map +1 -0
  633. package/web/.next/server/chunks/ssr/_1zmd3armaxhyu._.js +4 -0
  634. package/web/.next/server/chunks/ssr/_1zmd3armaxhyu._.js.map +1 -0
  635. package/web/.next/server/chunks/ssr/node_modules_0489ke-80obwd._.js +3 -0
  636. package/web/.next/server/chunks/ssr/node_modules_0489ke-80obwd._.js.map +1 -0
  637. package/web/.next/server/chunks/ssr/node_modules_05ni_zu0e0w44._.js +3 -0
  638. package/web/.next/server/chunks/ssr/node_modules_05ni_zu0e0w44._.js.map +1 -0
  639. package/web/.next/server/chunks/ssr/node_modules_07vtvfyfo0a6i._.js +3 -0
  640. package/web/.next/server/chunks/ssr/node_modules_07vtvfyfo0a6i._.js.map +1 -0
  641. package/web/.next/server/chunks/ssr/node_modules_0ettht2so2tkh._.js +1 -1
  642. package/web/.next/server/chunks/ssr/node_modules_0keape0zsobyj._.js +1 -1
  643. package/web/.next/server/chunks/ssr/node_modules_0ue_35q2cegwf._.js +3 -0
  644. package/web/.next/server/chunks/ssr/node_modules_0ue_35q2cegwf._.js.map +1 -0
  645. package/web/.next/server/chunks/ssr/node_modules_12euo0ncdx1pn._.js +3 -0
  646. package/web/.next/server/chunks/ssr/node_modules_12euo0ncdx1pn._.js.map +1 -0
  647. package/web/.next/server/chunks/ssr/node_modules_1722-epjft-rn._.js +3 -0
  648. package/web/.next/server/chunks/ssr/node_modules_1722-epjft-rn._.js.map +1 -0
  649. 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
  650. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_ui_dist_11tn8gozt2_c3._.js.map +1 -0
  651. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_ui_dist_16j49enf275ln._.js +3 -0
  652. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_ui_dist_16j49enf275ln._.js.map +1 -0
  653. package/web/.next/server/chunks/ssr/node_modules_@base-ui_0jlwmxa9rk8p_._.js +1 -1
  654. package/web/.next/server/chunks/ssr/node_modules_@base-ui_0jlwmxa9rk8p_._.js.map +1 -1
  655. package/web/.next/server/chunks/ssr/node_modules_@base-ui_19e_nxxf4a88q._.js +1 -1
  656. package/web/.next/server/chunks/ssr/node_modules_@base-ui_19e_nxxf4a88q._.js.map +1 -1
  657. package/web/.next/server/chunks/ssr/node_modules_@base-ui_react_1cvjxnw-b3pnv._.js +3 -0
  658. package/web/.next/server/chunks/ssr/{node_modules_@base-ui_react_1lbvjrzg8s2ox._.js.map → node_modules_@base-ui_react_1cvjxnw-b3pnv._.js.map} +1 -1
  659. package/web/.next/server/chunks/ssr/node_modules_@base-ui_react_toast_index_parts_mjs_20gwon7142aop._.js +3 -0
  660. package/web/.next/server/chunks/ssr/node_modules_@base-ui_react_toast_index_parts_mjs_20gwon7142aop._.js.map +1 -0
  661. package/web/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_bell_mjs_1sxms6d0wfxa2._.js +3 -0
  662. package/web/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_bell_mjs_1sxms6d0wfxa2._.js.map +1 -0
  663. package/web/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_search_mjs_047mxu6_po4kl._.js +3 -0
  664. package/web/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_search_mjs_047mxu6_po4kl._.js.map +1 -0
  665. package/web/.next/server/chunks/ssr/node_modules_next_08hq6z46rczo0._.js +2 -2
  666. package/web/.next/server/chunks/ssr/node_modules_next_dist_0janj0i6dqko7._.js +2 -2
  667. package/web/.next/server/chunks/ssr/node_modules_next_dist_0janj0i6dqko7._.js.map +1 -1
  668. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0g15rgn4n-oiz.js +3 -0
  669. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0g15rgn4n-oiz.js.map +1 -0
  670. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0hzwtyh-646p2.js +3 -0
  671. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0hzwtyh-646p2.js.map +1 -0
  672. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0mm8dt8tws1fz.js +3 -0
  673. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0mm8dt8tws1fz.js.map +1 -0
  674. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0tcy7phl8a4gj.js +3 -0
  675. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0tcy7phl8a4gj.js.map +1 -0
  676. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ynno0usi0bwx.js +1 -1
  677. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_11x159_oszki3.js +3 -0
  678. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_11x159_oszki3.js.map +1 -0
  679. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_128zox167vtjm.js +1 -1
  680. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_128zox167vtjm.js.map +1 -1
  681. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1dltrn6ii5dd6.js +3 -0
  682. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1dltrn6ii5dd6.js.map +1 -0
  683. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1hm1iu016c1fy.js +3 -0
  684. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1hm1iu016c1fy.js.map +1 -0
  685. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1zaoeyy4_vir_.js +3 -0
  686. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1zaoeyy4_vir_.js.map +1 -0
  687. package/web/.next/server/chunks/ssr/web_0_peudz6-o69m._.js +3 -0
  688. package/web/.next/server/chunks/ssr/web_0_peudz6-o69m._.js.map +1 -0
  689. package/web/.next/server/chunks/ssr/web_0cxcy088wnfmw._.js +3 -0
  690. package/web/.next/server/chunks/ssr/web_0cxcy088wnfmw._.js.map +1 -0
  691. package/web/.next/server/chunks/ssr/web_0oz8bypfxh82g._.js +3 -0
  692. package/web/.next/server/chunks/ssr/web_0oz8bypfxh82g._.js.map +1 -0
  693. package/web/.next/server/chunks/ssr/web_0pk41f5m34jvi._.js +3 -0
  694. package/web/.next/server/chunks/ssr/web_0pk41f5m34jvi._.js.map +1 -0
  695. package/web/.next/server/chunks/ssr/web_0qgev3ti257yj._.js +1 -1
  696. package/web/.next/server/chunks/ssr/web_0wys4l6za8umr._.js +1 -1
  697. package/web/.next/server/chunks/ssr/web_0wys4l6za8umr._.js.map +1 -1
  698. package/web/.next/server/chunks/ssr/web_1fi1x3y7rg7mf._.js +3 -0
  699. package/web/.next/server/chunks/ssr/web_1fi1x3y7rg7mf._.js.map +1 -0
  700. package/web/.next/server/chunks/ssr/web_1ga4pbv72m0ad._.js +1 -1
  701. package/web/.next/server/chunks/ssr/web_1irsulms62lzf._.js +3 -0
  702. package/web/.next/server/chunks/ssr/web_1irsulms62lzf._.js.map +1 -0
  703. package/web/.next/server/chunks/ssr/web_1k2rrq-kr6f9k._.js +3 -0
  704. package/web/.next/server/chunks/ssr/web_1k2rrq-kr6f9k._.js.map +1 -0
  705. package/web/.next/server/chunks/ssr/web_1qvxzqmq4aw94._.js +3 -0
  706. package/web/.next/server/chunks/ssr/web_1qvxzqmq4aw94._.js.map +1 -0
  707. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_basket_page_actions_0g7q_rc5nma1e.js +3 -0
  708. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_basket_page_actions_0g7q_rc5nma1e.js.map +1 -0
  709. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_done_page_actions_0kjm34arntdzv.js +3 -0
  710. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_done_page_actions_0kjm34arntdzv.js.map +1 -0
  711. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_page_actions_1ok64rg3edm_u.js +3 -0
  712. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_page_actions_1ok64rg3edm_u.js.map +1 -0
  713. package/web/.next/server/chunks/ssr/{web_app_(console)_bridge_error_tsx_10gkrn3ey8162._.js → web_app_(bridge)_bridge_error_tsx_0-142o0iqsh3j._.js} +2 -2
  714. package/web/.next/server/chunks/ssr/web_app_(bridge)_bridge_error_tsx_0-142o0iqsh3j._.js.map +1 -0
  715. package/web/.next/server/chunks/ssr/web_app_(bridge)_bridge_error_tsx_1m86qyp1bl9pi._.js +3 -0
  716. package/web/.next/server/chunks/ssr/web_app_(bridge)_bridge_error_tsx_1m86qyp1bl9pi._.js.map +1 -0
  717. package/web/.next/server/chunks/ssr/web_app_(bridge)_bridge_fleet_page_tsx_0uvtx8hiy8g0n._.js +3 -0
  718. package/web/.next/server/chunks/ssr/web_app_(bridge)_bridge_fleet_page_tsx_0uvtx8hiy8g0n._.js.map +1 -0
  719. package/web/.next/server/chunks/ssr/web_app_(bridge)_bridge_settings_page_tsx_1z5yr8ss25q7n._.js +3 -0
  720. package/web/.next/server/chunks/ssr/web_app_(bridge)_bridge_settings_page_tsx_1z5yr8ss25q7n._.js.map +1 -0
  721. package/web/.next/server/chunks/ssr/web_app_(console)_parties_page_tsx_0pp63ghly3eyp._.js +1 -1
  722. package/web/.next/server/chunks/ssr/web_app_authorize_layout_tsx_0gs61_7wzx68y._.js +1 -1
  723. package/web/.next/server/chunks/ssr/web_app_authorize_layout_tsx_0gs61_7wzx68y._.js.map +1 -1
  724. package/web/.next/server/chunks/ssr/web_features_06f9kfi0c4nf8._.js +3 -0
  725. package/web/.next/server/chunks/ssr/web_features_06f9kfi0c4nf8._.js.map +1 -0
  726. package/web/.next/server/chunks/ssr/{web_features_0d48z2epb6oie._.js → web_features_0f2pobf_t4wjt._.js} +2 -2
  727. package/web/.next/server/chunks/ssr/{web_features_0d48z2epb6oie._.js.map → web_features_0f2pobf_t4wjt._.js.map} +1 -1
  728. package/web/.next/server/chunks/ssr/web_features_0rd6357w-eo50._.js +1 -1
  729. package/web/.next/server/chunks/ssr/web_features_12b-75qfhurxi._.js +3 -0
  730. package/web/.next/server/chunks/ssr/web_features_12b-75qfhurxi._.js.map +1 -0
  731. package/web/.next/server/chunks/ssr/web_features_19r68thirqv1n._.js +1 -1
  732. package/web/.next/server/chunks/ssr/web_features_1m5g9a6mwrsd-._.js +1 -1
  733. package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js +1 -1
  734. package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js.map +1 -1
  735. package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js +1 -1
  736. package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js.map +1 -1
  737. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js +1 -1
  738. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js.map +1 -1
  739. package/web/.next/server/chunks/ssr/web_features_authorize_137wk0n1nu3cn._.js +1 -1
  740. package/web/.next/server/chunks/ssr/web_features_authorize_137wk0n1nu3cn._.js.map +1 -1
  741. package/web/.next/server/chunks/ssr/web_features_bridge_0msm42qwm0-jq._.js +3 -0
  742. package/web/.next/server/chunks/ssr/web_features_bridge_0msm42qwm0-jq._.js.map +1 -0
  743. package/web/.next/server/chunks/ssr/web_features_bridge_1mi9qlb-z5iwt._.js +1 -1
  744. package/web/.next/server/chunks/ssr/web_features_bridge_1mi9qlb-z5iwt._.js.map +1 -1
  745. package/web/.next/server/chunks/ssr/web_features_bridge_fleet_ui_fleet-numbers_tsx_0_afv4j248_w-._.js +3 -0
  746. package/web/.next/server/chunks/ssr/web_features_bridge_fleet_ui_fleet-numbers_tsx_0_afv4j248_w-._.js.map +1 -0
  747. package/web/.next/server/chunks/ssr/web_features_bridge_hooks_bridge-actions_ts_0h-_xm2rcb-ij._.js +1 -1
  748. package/web/.next/server/chunks/ssr/web_features_bridge_hooks_bridge-actions_ts_0h-_xm2rcb-ij._.js.map +1 -1
  749. package/web/.next/server/chunks/ssr/web_features_bridge_state_basket-panel_tsx_1qi_kzld0rfgs._.js +1 -1
  750. package/web/.next/server/chunks/ssr/web_features_bridge_state_basket-panel_tsx_1qi_kzld0rfgs._.js.map +1 -1
  751. package/web/.next/server/chunks/ssr/web_features_bridge_state_decision-panel_tsx_1mzsixgc8zuxc._.js +1 -1
  752. package/web/.next/server/chunks/ssr/web_features_bridge_state_decision-panel_tsx_1mzsixgc8zuxc._.js.map +1 -1
  753. package/web/.next/server/chunks/ssr/web_features_bridge_state_done-panel_tsx_1m844-qb1z9p_._.js +1 -1
  754. package/web/.next/server/chunks/ssr/web_features_bridge_state_done-panel_tsx_1m844-qb1z9p_._.js.map +1 -1
  755. package/web/.next/server/chunks/ssr/web_features_bridge_state_home-panel_tsx_1cc5zdhxogl_2._.js +1 -1
  756. package/web/.next/server/chunks/ssr/web_features_bridge_state_home-panel_tsx_1cc5zdhxogl_2._.js.map +1 -1
  757. package/web/.next/server/chunks/ssr/web_features_bridge_ui_1y4g3fe75nqn5._.js +1 -1
  758. package/web/.next/server/chunks/ssr/web_features_bridge_ui_1y4g3fe75nqn5._.js.map +1 -1
  759. package/web/.next/server/chunks/ssr/web_features_bridge_ui_item-row_tsx_0c_a8wjzwsr7j._.js +3 -0
  760. package/web/.next/server/chunks/ssr/web_features_bridge_ui_item-row_tsx_0c_a8wjzwsr7j._.js.map +1 -0
  761. package/web/.next/server/chunks/ssr/{web_features_0f6r-m-dq36vf._.js → web_features_forms_1u0akr22eh_x_._.js} +2 -2
  762. package/web/.next/server/chunks/ssr/web_features_forms_1u0akr22eh_x_._.js.map +1 -0
  763. package/web/.next/server/chunks/ssr/web_features_frame_01uyck6q56an2._.js +3 -0
  764. package/web/.next/server/chunks/ssr/web_features_frame_01uyck6q56an2._.js.map +1 -0
  765. package/web/.next/server/chunks/ssr/web_features_frame_ui_gateway-header_tsx_0e9tekx4jf7ng._.js +1 -1
  766. package/web/.next/server/chunks/ssr/web_features_frame_ui_gateway-header_tsx_0e9tekx4jf7ng._.js.map +1 -1
  767. package/web/.next/server/chunks/ssr/web_features_meeting_state_meeting-controls_tsx_12g4kzk2mbvvz._.js +1 -1
  768. package/web/.next/server/chunks/ssr/web_features_meeting_state_meeting-controls_tsx_12g4kzk2mbvvz._.js.map +1 -1
  769. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js +1 -1
  770. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js.map +1 -1
  771. package/web/.next/server/chunks/ssr/web_features_outside-party_1-lre9nfakki7._.js +1 -1
  772. package/web/.next/server/chunks/ssr/web_features_outside-party_actions_ts_102ar5pdowf8s._.js +1 -1
  773. package/web/.next/server/chunks/ssr/web_features_parties_actions_ts_0r-tbfsig2ty-._.js +1 -1
  774. package/web/.next/server/chunks/ssr/web_features_slack_actions_ts_1l3yg9vl20_vu._.js +1 -1
  775. package/web/.next/server/chunks/web__next-internal_server_app_(bridge)_bridge_focus_route_actions_0fx2vmqfq23mq.js +3 -0
  776. package/web/.next/server/middleware-build-manifest.js +114 -90
  777. package/web/.next/server/next-font-manifest.js +1 -1
  778. package/web/.next/server/next-font-manifest.json +14 -6
  779. package/web/.next/server/pages/500.html +1 -1
  780. package/web/.next/server/preview-props.json +3 -3
  781. package/web/.next/server/server-reference-manifest.js +1 -1
  782. package/web/.next/server/server-reference-manifest.json +167 -105
  783. package/web/.next/static/chunks/030kay14jcn_y.js +1 -0
  784. package/web/.next/static/chunks/0ben53l12lrh1.js +1 -0
  785. package/web/.next/static/chunks/0d1u4n5okodee.css +3 -0
  786. package/web/.next/static/chunks/0dg4cy4rae-3o.js +1 -0
  787. package/web/.next/static/chunks/0jwils_670syn.js +1 -0
  788. package/web/.next/static/chunks/0lnew3mjkd54b.js +1 -0
  789. package/web/.next/static/chunks/0m95j-t2qmnd_.js +1 -0
  790. package/web/.next/static/chunks/0r5ujkp-5utsu.js +1 -0
  791. package/web/.next/static/chunks/{1166rxt6h6ilq.js → 1c8q9h-van9r6.js} +1 -1
  792. package/web/.next/static/chunks/{3db90zxmny2y-.js → 1jyiwl5szsvgn.js} +1 -1
  793. package/web/.next/static/chunks/{2z2auwx1s2mgl.js → 1lkcm-iwggfae.js} +1 -1
  794. package/web/.next/static/chunks/1ml6wx1ya9wwo.js +1 -0
  795. package/web/.next/static/chunks/1nzfw6ajt5nf9.js +55 -0
  796. package/web/.next/static/chunks/22wtc73dzqm8f.js +1 -0
  797. package/web/.next/static/chunks/2drwxc7-hry0u.js +1 -0
  798. package/web/.next/static/chunks/2ewacyhp73due.js +1 -0
  799. package/web/.next/static/chunks/2fimf0wcjnmpj.js +1 -0
  800. package/web/.next/static/chunks/2fk9ydkphmyna.js +1 -0
  801. package/web/.next/static/chunks/{07j7jnfe13wx6.js → 2ich96rzec753.js} +1 -1
  802. package/web/.next/static/chunks/2khjzepn4_2a-.js +1 -0
  803. package/web/.next/static/chunks/2mpwg-t6pat39.js +1 -0
  804. package/web/.next/static/chunks/2ui6n5-n032a3.js +1 -0
  805. package/web/.next/static/chunks/2wvdu6-tx1h0l.js +1 -0
  806. package/web/.next/static/chunks/33qpc2y76i927.js +1 -0
  807. package/web/.next/static/chunks/39tst46ewpx_k.js +1 -0
  808. package/web/.next/static/chunks/3h8spyc73a438.js +1 -0
  809. package/web/.next/static/chunks/3kenmp9pjwgf2.js +1 -0
  810. package/web/.next/static/chunks/3knqujtrdi225.js +1 -0
  811. package/web/.next/static/chunks/3v8s571padqcz.js +1 -0
  812. package/web/.next/static/chunks/3wg9zn3lyhf-b.js +1 -0
  813. package/web/.next/static/chunks/{0lzisjsmhlhjf.js → 3zhaqdsq15d1e.js} +1 -1
  814. package/web/.next/trace +1 -1
  815. package/web/.next/trace-build +1 -1
  816. package/web/.next/types/routes.d.ts +3 -1
  817. package/web/.next/types/validator.ts +50 -16
  818. package/web/public/argo-wake-icon.svg +1 -0
  819. package/web/public/wake-worker.js +8 -2
  820. package/web/public/wake-worker.test.ts +52 -0
  821. package/dist/core/people/stale-question.d.ts +0 -28
  822. package/dist/core/people/stale-question.js +0 -26
  823. package/dist/core/people/stale-question.js.map +0 -1
  824. package/web/.next/server/app/(console)/bridge/basket/page/app-paths-manifest.json +0 -3
  825. package/web/.next/server/app/(console)/bridge/basket/page/server-reference-manifest.json +0 -75
  826. package/web/.next/server/app/(console)/bridge/basket/page_client-reference-manifest.js +0 -3
  827. package/web/.next/server/app/(console)/bridge/changes/route/app-paths-manifest.json +0 -3
  828. package/web/.next/server/app/(console)/bridge/changes/route.js +0 -8
  829. package/web/.next/server/app/(console)/bridge/changes/route_client-reference-manifest.js +0 -3
  830. package/web/.next/server/app/(console)/bridge/done/page/app-paths-manifest.json +0 -3
  831. package/web/.next/server/app/(console)/bridge/done/page/server-reference-manifest.json +0 -75
  832. package/web/.next/server/app/(console)/bridge/done/page_client-reference-manifest.js +0 -3
  833. package/web/.next/server/app/(console)/bridge/focus/route/app-paths-manifest.json +0 -3
  834. package/web/.next/server/app/(console)/bridge/focus/route.js +0 -8
  835. package/web/.next/server/app/(console)/bridge/focus/route_client-reference-manifest.js +0 -3
  836. package/web/.next/server/app/(console)/bridge/page/app-paths-manifest.json +0 -3
  837. package/web/.next/server/app/(console)/bridge/page/server-reference-manifest.json +0 -65
  838. package/web/.next/server/app/(console)/bridge/page_client-reference-manifest.js +0 -3
  839. package/web/.next/server/app/(console)/bridge/settings/page/app-paths-manifest.json +0 -3
  840. package/web/.next/server/app/(console)/bridge/settings/page_client-reference-manifest.js +0 -3
  841. package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page/app-paths-manifest.json +0 -3
  842. package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page/build-manifest.json +0 -23
  843. package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page/next-font-manifest.json +0 -11
  844. package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page_client-reference-manifest.js +0 -3
  845. package/web/.next/server/app/(console)/bridge/settings/routing/page/app-paths-manifest.json +0 -3
  846. package/web/.next/server/app/(console)/bridge/settings/routing/page/build-manifest.json +0 -23
  847. package/web/.next/server/app/(console)/bridge/settings/routing/page/next-font-manifest.json +0 -11
  848. package/web/.next/server/app/(console)/bridge/settings/routing/page_client-reference-manifest.js +0 -3
  849. package/web/.next/server/chunks/0b9d__next-internal_server_app_(console)_bridge_changes_route_actions_0hj8aqohz6bu6.js +0 -3
  850. package/web/.next/server/chunks/_05qgg3__4kdbm._.js +0 -3
  851. package/web/.next/server/chunks/_05qgg3__4kdbm._.js.map +0 -1
  852. package/web/.next/server/chunks/_1uap5tql2vvsb._.js +0 -3
  853. package/web/.next/server/chunks/_1uap5tql2vvsb._.js.map +0 -1
  854. package/web/.next/server/chunks/ssr/01fr_app_(console)_bridge_settings_requests_[requestId]_page_actions_1au-p5lgnv5e-.js +0 -3
  855. package/web/.next/server/chunks/ssr/01fr_app_(console)_bridge_settings_requests_[requestId]_page_actions_1au-p5lgnv5e-.js.map +0 -1
  856. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_bridge_settings_routing_page_actions_136lm_jip4d_x.js +0 -3
  857. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_bridge_settings_routing_page_actions_136lm_jip4d_x.js.map +0 -1
  858. package/web/.next/server/chunks/ssr/[root-of-the-server]__00jy4lqrcvxvc._.js +0 -3
  859. package/web/.next/server/chunks/ssr/[root-of-the-server]__00jy4lqrcvxvc._.js.map +0 -1
  860. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k-5_al3xk509._.js +0 -3
  861. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k-5_al3xk509._.js.map +0 -1
  862. package/web/.next/server/chunks/ssr/[root-of-the-server]__18v7b5ga58a9n._.js +0 -4
  863. package/web/.next/server/chunks/ssr/[root-of-the-server]__18v7b5ga58a9n._.js.map +0 -1
  864. package/web/.next/server/chunks/ssr/[root-of-the-server]__1nxy_j9eswr3i._.js +0 -3
  865. package/web/.next/server/chunks/ssr/[root-of-the-server]__1nxy_j9eswr3i._.js.map +0 -1
  866. package/web/.next/server/chunks/ssr/[root-of-the-server]__1rf344o33bmi4._.js +0 -3
  867. package/web/.next/server/chunks/ssr/[root-of-the-server]__1rf344o33bmi4._.js.map +0 -1
  868. package/web/.next/server/chunks/ssr/_0a_nsm-ye2r6v._.js.map +0 -1
  869. package/web/.next/server/chunks/ssr/_0h-ua-y4p4u1p._.js +0 -3
  870. package/web/.next/server/chunks/ssr/_0h-ua-y4p4u1p._.js.map +0 -1
  871. package/web/.next/server/chunks/ssr/_10-gn6g9yc63s._.js +0 -3
  872. package/web/.next/server/chunks/ssr/_10-gn6g9yc63s._.js.map +0 -1
  873. package/web/.next/server/chunks/ssr/_12fsn_33ga-n0._.js +0 -3
  874. package/web/.next/server/chunks/ssr/_12fsn_33ga-n0._.js.map +0 -1
  875. package/web/.next/server/chunks/ssr/_177fdczus39s7._.js +0 -3
  876. package/web/.next/server/chunks/ssr/_177fdczus39s7._.js.map +0 -1
  877. package/web/.next/server/chunks/ssr/_1hmjvjuxx92vo._.js +0 -3
  878. package/web/.next/server/chunks/ssr/_1hmjvjuxx92vo._.js.map +0 -1
  879. package/web/.next/server/chunks/ssr/_1jx41z6kmxtt0._.js +0 -3
  880. package/web/.next/server/chunks/ssr/_1jx41z6kmxtt0._.js.map +0 -1
  881. package/web/.next/server/chunks/ssr/_1q2s-hb67yjfb._.js +0 -3
  882. package/web/.next/server/chunks/ssr/_1q2s-hb67yjfb._.js.map +0 -1
  883. package/web/.next/server/chunks/ssr/_1yi3j4a16uet-._.js +0 -3
  884. package/web/.next/server/chunks/ssr/_1yi3j4a16uet-._.js.map +0 -1
  885. package/web/.next/server/chunks/ssr/node_modules_01oyodz1bs245._.js +0 -3
  886. package/web/.next/server/chunks/ssr/node_modules_01oyodz1bs245._.js.map +0 -1
  887. package/web/.next/server/chunks/ssr/node_modules_16d4um5s513wz._.js +0 -3
  888. package/web/.next/server/chunks/ssr/node_modules_16d4um5s513wz._.js.map +0 -1
  889. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_0t_cmi-llaq7g._.js +0 -3
  890. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_0t_cmi-llaq7g._.js.map +0 -1
  891. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_1x3s5abk_uj9j._.js.map +0 -1
  892. package/web/.next/server/chunks/ssr/node_modules_@base-ui_react_1lbvjrzg8s2ox._.js +0 -3
  893. package/web/.next/server/chunks/ssr/node_modules_next_dist_0hkpfqt9ne626._.js +0 -3
  894. package/web/.next/server/chunks/ssr/node_modules_next_dist_0hkpfqt9ne626._.js.map +0 -1
  895. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_031g89sb4kgzn.js +0 -3
  896. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_031g89sb4kgzn.js.map +0 -1
  897. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_09rviehv6rh0n.js +0 -3
  898. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_09rviehv6rh0n.js.map +0 -1
  899. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ka8v6_fxug8r.js +0 -3
  900. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ka8v6_fxug8r.js.map +0 -1
  901. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1c8zekuy1gkch.js +0 -3
  902. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1c8zekuy1gkch.js.map +0 -1
  903. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1dhzng2nnu0m7.js +0 -3
  904. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1dhzng2nnu0m7.js.map +0 -1
  905. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1rya2ag3z4vug.js +0 -3
  906. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1rya2ag3z4vug.js.map +0 -1
  907. package/web/.next/server/chunks/ssr/web_0i_1uraygw2ld._.js +0 -3
  908. package/web/.next/server/chunks/ssr/web_0i_1uraygw2ld._.js.map +0 -1
  909. package/web/.next/server/chunks/ssr/web_0wz4onhfbq359._.js +0 -3
  910. package/web/.next/server/chunks/ssr/web_0wz4onhfbq359._.js.map +0 -1
  911. package/web/.next/server/chunks/ssr/web_1-hlf1xzemd3-._.js +0 -3
  912. package/web/.next/server/chunks/ssr/web_1-hlf1xzemd3-._.js.map +0 -1
  913. package/web/.next/server/chunks/ssr/web_107a79_nx4jdd._.js +0 -3
  914. package/web/.next/server/chunks/ssr/web_107a79_nx4jdd._.js.map +0 -1
  915. package/web/.next/server/chunks/ssr/web_127_b93avkwaq._.js +0 -3
  916. package/web/.next/server/chunks/ssr/web_127_b93avkwaq._.js.map +0 -1
  917. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_basket_page_actions_102xk3g8eko_q.js +0 -3
  918. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_basket_page_actions_102xk3g8eko_q.js.map +0 -1
  919. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_done_page_actions_0mm90xd2feta2.js +0 -3
  920. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_done_page_actions_0mm90xd2feta2.js.map +0 -1
  921. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_page_actions_082880qz6xa5k.js +0 -3
  922. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_page_actions_082880qz6xa5k.js.map +0 -1
  923. package/web/.next/server/chunks/ssr/web_app_(console)_bridge_error_tsx_0ty_yk1robyaj._.js +0 -3
  924. package/web/.next/server/chunks/ssr/web_app_(console)_bridge_error_tsx_0ty_yk1robyaj._.js.map +0 -1
  925. package/web/.next/server/chunks/ssr/web_app_(console)_bridge_error_tsx_10gkrn3ey8162._.js.map +0 -1
  926. package/web/.next/server/chunks/ssr/web_app_(console)_bridge_settings_page_tsx_0xzphp7k9ge1u._.js +0 -3
  927. package/web/.next/server/chunks/ssr/web_app_(console)_bridge_settings_page_tsx_0xzphp7k9ge1u._.js.map +0 -1
  928. package/web/.next/server/chunks/ssr/web_features_0f6r-m-dq36vf._.js.map +0 -1
  929. package/web/.next/server/chunks/ssr/web_features_0mi9a9pdzkdji._.js +0 -3
  930. package/web/.next/server/chunks/ssr/web_features_0s8erick0xk77._.js +0 -3
  931. package/web/.next/server/chunks/ssr/web_features_0s8erick0xk77._.js.map +0 -1
  932. package/web/.next/server/chunks/ssr/web_features_0wuo5bgp5tabn._.js +0 -3
  933. package/web/.next/server/chunks/ssr/web_features_0wuo5bgp5tabn._.js.map +0 -1
  934. package/web/.next/server/chunks/ssr/web_features_16cy3vmcijydk._.js +0 -3
  935. package/web/.next/server/chunks/ssr/web_features_16cy3vmcijydk._.js.map +0 -1
  936. package/web/.next/server/chunks/ssr/web_features_1iiqi6dhrst33._.js +0 -3
  937. package/web/.next/server/chunks/ssr/web_features_1iiqi6dhrst33._.js.map +0 -1
  938. package/web/.next/server/chunks/ssr/web_features_1n1hy3nwha2vi._.js +0 -3
  939. package/web/.next/server/chunks/ssr/web_features_1n1hy3nwha2vi._.js.map +0 -1
  940. package/web/.next/server/chunks/ssr/web_features_bridge_0-mhu0jaig2u3._.js +0 -3
  941. package/web/.next/server/chunks/ssr/web_features_bridge_0-mhu0jaig2u3._.js.map +0 -1
  942. package/web/.next/server/chunks/ssr/web_features_bridge_0219fbfmsi68-._.js +0 -3
  943. package/web/.next/server/chunks/ssr/web_features_bridge_0219fbfmsi68-._.js.map +0 -1
  944. package/web/.next/server/chunks/ssr/web_features_bridge_11jndonu4o8fq._.js +0 -3
  945. package/web/.next/server/chunks/ssr/web_features_bridge_11jndonu4o8fq._.js.map +0 -1
  946. package/web/.next/server/chunks/ssr/web_features_bridge_state_0354e3wb0dzx1._.js +0 -3
  947. package/web/.next/server/chunks/ssr/web_features_bridge_state_0354e3wb0dzx1._.js.map +0 -1
  948. package/web/.next/server/chunks/ssr/web_features_bridge_state_live-refresh_tsx_1c1xk-oe0kllv._.js +0 -3
  949. package/web/.next/server/chunks/ssr/web_features_bridge_state_live-refresh_tsx_1c1xk-oe0kllv._.js.map +0 -1
  950. package/web/.next/server/chunks/ssr/web_features_frame_0pe8cwpxe1egb._.js +0 -3
  951. package/web/.next/server/chunks/ssr/web_features_frame_0pe8cwpxe1egb._.js.map +0 -1
  952. package/web/.next/server/chunks/web__next-internal_server_app_(console)_bridge_focus_route_actions_0syd_u8mgzdmi.js +0 -3
  953. package/web/.next/static/chunks/0az9upwm-8_q9.js +0 -1
  954. package/web/.next/static/chunks/0c1tqlbsvq1dj.js +0 -1
  955. package/web/.next/static/chunks/0fh11dkddwf_2.js +0 -1
  956. package/web/.next/static/chunks/0gbozvd_yh421.js +0 -1
  957. package/web/.next/static/chunks/0l9_oie6xi0kd.js +0 -1
  958. package/web/.next/static/chunks/0m512dxdcrv-b.js +0 -1
  959. package/web/.next/static/chunks/0zbcy0_3jemrv.js +0 -1
  960. package/web/.next/static/chunks/1485slb5zus5p.js +0 -1
  961. package/web/.next/static/chunks/180aowme095ds.js +0 -1
  962. package/web/.next/static/chunks/24olc0btcvn7q.js +0 -1
  963. package/web/.next/static/chunks/296w-74ry5lzk.js +0 -1
  964. package/web/.next/static/chunks/2gghdkr64z9f9.js +0 -1
  965. package/web/.next/static/chunks/2hoi73vy1wqpo.js +0 -1
  966. package/web/.next/static/chunks/2mtfca4qk_s34.js +0 -1
  967. package/web/.next/static/chunks/397zvdr6xr5pq.js +0 -1
  968. package/web/.next/static/chunks/3ow9h8hreko-p.css +0 -3
  969. package/web/.next/static/chunks/3pd8pele5x1o9.js +0 -1
  970. package/web/.next/static/chunks/3srfjz42u14tx.js +0 -1
  971. package/web/.next/static/chunks/3x0p-z3zdrk_b.js +0 -1
  972. package/web/.next/static/chunks/3yq9jt4p_0uid.js +0 -1
  973. /package/web/.next/server/app/{(console) → (bridge)}/bridge/basket/page/react-loadable-manifest.json +0 -0
  974. /package/web/.next/server/app/{(console) → (bridge)}/bridge/basket/page.js.map +0 -0
  975. /package/web/.next/server/app/{(console) → (bridge)}/bridge/changes/route/build-manifest.json +0 -0
  976. /package/web/.next/server/app/{(console) → (bridge)}/bridge/changes/route/server-reference-manifest.json +0 -0
  977. /package/web/.next/server/app/{(console) → (bridge)}/bridge/changes/route.js.map +0 -0
  978. /package/web/.next/server/app/{(console) → (bridge)}/bridge/done/page/react-loadable-manifest.json +0 -0
  979. /package/web/.next/server/app/{(console) → (bridge)}/bridge/done/page.js.map +0 -0
  980. /package/web/.next/server/app/{(console)/bridge → (bridge)/bridge/fleet}/page/react-loadable-manifest.json +0 -0
  981. /package/web/.next/server/app/{(console)/bridge → (bridge)/bridge/fleet}/page.js.map +0 -0
  982. /package/web/.next/server/app/{(console) → (bridge)}/bridge/focus/route/build-manifest.json +0 -0
  983. /package/web/.next/server/app/{(console) → (bridge)}/bridge/focus/route/server-reference-manifest.json +0 -0
  984. /package/web/.next/server/app/{(console) → (bridge)}/bridge/focus/route.js.map +0 -0
  985. /package/web/.next/server/app/{(console)/bridge/settings → (bridge)/bridge}/page/react-loadable-manifest.json +0 -0
  986. /package/web/.next/server/app/{(console)/bridge/settings → (bridge)/bridge}/page.js.map +0 -0
  987. /package/web/.next/server/app/{(console)/bridge/settings/requests/[requestId] → (bridge)/bridge/settings}/page/react-loadable-manifest.json +0 -0
  988. /package/web/.next/server/app/{(console)/bridge/settings/requests/[requestId] → (bridge)/bridge/settings}/page.js.map +0 -0
  989. /package/web/.next/server/app/{(console)/bridge/settings/routing → (bridge)/bridge/settings/requests/[requestId]}/page/react-loadable-manifest.json +0 -0
  990. /package/web/.next/server/app/{(console)/bridge/settings/routing → (bridge)/bridge/settings/requests/[requestId]}/page.js.map +0 -0
  991. /package/web/.next/server/chunks/{0b9d__next-internal_server_app_(console)_bridge_changes_route_actions_0hj8aqohz6bu6.js.map → 0b9d__next-internal_server_app_(bridge)_bridge_changes_route_actions_0wd1c_8tnx6-f.js.map} +0 -0
  992. /package/web/.next/server/chunks/ssr/{[root-of-the-server]__1yyaeeylnezpi._.js.map → [root-of-the-server]__04_bc8g0oe4jt._.js.map} +0 -0
  993. /package/web/.next/server/chunks/ssr/{[root-of-the-server]__0gnfxe62edx95._.js.map → [root-of-the-server]__179upda-y7uap._.js.map} +0 -0
  994. /package/web/.next/server/chunks/{web__next-internal_server_app_(console)_bridge_focus_route_actions_0syd_u8mgzdmi.js.map → web__next-internal_server_app_(bridge)_bridge_focus_route_actions_0fx2vmqfq23mq.js.map} +0 -0
  995. /package/web/.next/static/{CMppMkysNciqc8k4TWwia → 79SqN0pBIJ0D-DK1jZmK6}/_buildManifest.js +0 -0
  996. /package/web/.next/static/{CMppMkysNciqc8k4TWwia → 79SqN0pBIJ0D-DK1jZmK6}/_clientMiddlewareManifest.js +0 -0
  997. /package/web/.next/static/{CMppMkysNciqc8k4TWwia → 79SqN0pBIJ0D-DK1jZmK6}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../web/features/bridge/hooks/data%3Af66dea%20%3Ctext/javascript%3E","../../../../../web/features/bridge/state/item-focus.tsx","../../../../../web/features/bridge/ui/delivery-card.tsx","../../../../../web/features/bridge/state/record-unreadable.tsx","../../../../../web/features/meeting/paths.ts","../../../../../web/features/bridge/hooks/data%3Acc8e61%20%3Ctext/javascript%3E","../../../../../web/features/bridge/hooks/data%3A40dcc4%20%3Ctext/javascript%3E","../../../../../web/features/bridge/hooks/data%3Ab02790%20%3Ctext/javascript%3E","../../../../../web/features/bridge/hooks/data%3A2985b6%20%3Ctext/javascript%3E"],"sourcesContent":["/* __next_internal_action_entry_do_not_use__ [{\"60cb932106ab7fdcbd18e33041be499ed83080592f\":{\"name\":\"removeFromBasket\"}},\"web/features/bridge/hooks/bridge-actions.ts\",\"\"] */\"use turbopack: no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_4=/*#__PURE__*/createServerReference(\"60cb932106ab7fdcbd18e33041be499ed83080592f\",callServer,void 0,findSourceMapURL,\"removeFromBasket\");export{$$RSC_SERVER_ACTION_4 as removeFromBasket};","'use client';\n\nimport { useState, useTransition, type ReactNode } from 'react';\n\nimport { meetingPathOf } from '../../meeting/paths';\nimport { inFleet } from '../../../lib/gateway-api/page-account';\nimport { answerDelivery, doneDelivery, openDelivery, putInBasket, removeFromBasket, type ActionOutcome } from '../hooks/bridge-actions';\nimport { BRIDGE_BASKET_PATH } from '../paths';\nimport type { FocusedDelivery } from '../services/deliveries';\nimport type { HomeItem } from '../services/items';\nimport { DeliveryCard, type DeliveryControl, type InBasket } from '../ui/delivery-card';\nimport { Notice } from '../ui/notice';\n\n/** An item to open: by its delivery, with its job, and the answer to it in the basket, if any. */\nexport interface ToOpen {\n readonly deliveryId: string;\n readonly job: HomeItem['job'];\n readonly inBasket?: InBasket | null;\n}\n\n/** What a list of items gets to open one: the press, the one opening, and why one could not be opened. */\nexport interface ItemOpening {\n readonly open: (item: ToOpen) => void;\n readonly openingId: string | undefined;\n readonly failure: { deliveryId: string; message: string } | undefined;\n}\n\n/**\n * A list of Bridge's items with one in focus at a time. Opening is the\n * person's own act, so it is a press, never a link: the gateway acknowledges\n * the item for them, and it is shown whole. An alert or a notice seen is\n * done at once (CC16), so it shows with no answer to give, as does a\n * question its asker withdrew or replaced; a replaced one opens its\n * replacement. A step ends done or cannot with the note, sent at once,\n * never through the basket (CC23). A question's answer goes in the basket (CC24), and comes\n * out of it there. Answering, being done or putting in the basket says so\n * in place, and the page reads itself again.\n */\nexport function ItemFocus({ fleetId, children }: { fleetId: string; children: (opening: ItemOpening) => ReactNode }) {\n const [focus, setFocus] = useState<{ delivery: FocusedDelivery; isDoneOnSeeing: boolean; inBasket: InBasket | null } | undefined>();\n const [note, setNote] = useState('');\n const [openingId, setOpeningId] = useState<string | undefined>();\n const [working, setWorking] = useState<DeliveryControl | undefined>();\n const [openFailure, setOpenFailure] = useState<{ deliveryId: string; message: string } | undefined>();\n const [failure, setFailure] = useState<string | undefined>();\n const [done, setDone] = useState<string | undefined>();\n const [, startTransition] = useTransition();\n\n const open = (item: ToOpen) => {\n setOpeningId(item.deliveryId);\n setOpenFailure(undefined);\n setDone(undefined);\n startTransition(async () => {\n const outcome = await openDelivery(fleetId, item.deliveryId);\n setOpeningId(undefined);\n if (outcome.isOk) {\n const inBasket = item.inBasket ?? null;\n setFocus({ delivery: outcome.value, isDoneOnSeeing: item.job === 'stay-aware', inBasket });\n setNote(inBasket?.note ?? '');\n setFailure(undefined);\n } else {\n setOpenFailure({ deliveryId: item.deliveryId, message: outcome.message });\n }\n });\n };\n\n const settle = ({ control, action, said }: { control: DeliveryControl; action: () => Promise<ActionOutcome<undefined>>; said: string }) => {\n setWorking(control);\n setFailure(undefined);\n startTransition(async () => {\n const outcome = await action();\n setWorking(undefined);\n if (outcome.isOk) {\n setFocus(undefined);\n setDone(said);\n } else {\n setFailure(outcome.message);\n }\n });\n };\n\n if (focus !== undefined) {\n const { delivery, inBasket } = focus;\n const questionId = delivery.question?.id;\n return (\n <DeliveryCard\n key={delivery.deliveryId}\n delivery={delivery}\n isDoneOnSeeing={focus.isDoneOnSeeing}\n meetingHref={delivery.meetingId === undefined ? undefined : meetingPathOf({ fleetId, meetingId: delivery.meetingId })}\n basketHref={inFleet(BRIDGE_BASKET_PATH, fleetId)}\n inBasket={inBasket}\n note={note}\n working={working}\n failure={failure}\n onNoteChange={setNote}\n onAnswer={(option) => { settle({ control: option === undefined ? { kind: 'note' } : { kind: 'option', option }, action: () => answerDelivery({ fleet: fleetId, deliveryId: delivery.deliveryId, input: { questionId: delivery.question?.id, option, note } }), said: `Your answer went to ${delivery.from}.` }); }\n }\n onPut={(option) => { settle({ control: { kind: 'option', option }, action: () => putInBasket({ fleet: fleetId, deliveryId: delivery.deliveryId, option, note }), said: `Option ${String(option)} is in the basket, not sent: ${delivery.from} receives it when you send the basket.` }); }}\n onRemove={() => {\n if (questionId !== undefined) {\n settle({ control: { kind: 'remove' }, action: () => removeFromBasket(fleetId, questionId), said: `Your answer to “${delivery.title}” is out of the basket; the question still waits on you.` });\n }\n }}\n onDone={() => { settle({ control: { kind: 'done' }, action: () => doneDelivery({ fleet: fleetId, deliveryId: delivery.deliveryId }), said: `Done with “${delivery.title}”.` }); }}\n onFinishStep={(outcome) => {\n settle({\n control: { kind: outcome },\n action: () => doneDelivery({ fleet: fleetId, deliveryId: delivery.deliveryId, step: { outcome, note } }),\n said: outcome === 'done' ? `Done: ${delivery.from} is told “${delivery.title}” is done.` : `Cannot: ${delivery.from} is told you cannot do “${delivery.title}”.`,\n });\n }}\n onOpen={(deliveryId) => { open({ deliveryId, job: 'decide' }); }}\n onBack={() => { setFocus(undefined); }}\n />\n );\n }\n return (\n <div className=\"grid gap-4\">\n {done === undefined ? null : <Notice message={done} isFailure={false} />}\n {children({ open, openingId, failure: openFailure })}\n </div>\n );\n}\n","import { useState } from 'react';\n\nimport type { Question } from '@aeolus-fleet/common';\n\nimport type { FocusedDelivery, Stale, StepView } from '../services/deliveries';\nimport { ActionButton } from './action-button';\nimport { Notice } from './notice';\n\n/** Which of the card's controls is working: an option of the question put in the basket, its entry removed, the note alone, done, or a step's cannot. */\nexport type DeliveryControl = { kind: 'option'; option: number } | { kind: 'remove' } | { kind: 'note' } | { kind: 'done' } | { kind: 'cannot' };\n\n/** How the person ends a step: they did it, or cannot. */\nexport type StepOutcome = 'done' | 'cannot';\n\n/** The answer to a question in the basket (Bridge, section 9): its option and its note, none when the person wrote none. */\nexport interface InBasket {\n readonly option: number;\n readonly note: string | null;\n}\n\n/** What a question in the basket says: in it, not sent, with its note; picking another option changes it. */\nfunction InBasketNotice({ inBasket, basketHref, isRemoving, isWorking, onRemove }: { inBasket: InBasket; basketHref: string; isRemoving: boolean; isWorking: boolean; onRemove: () => void }) {\n return (\n <div data-testid=\"bridge-in-basket\" className=\"grid gap-2 rounded-md border border-border bg-muted p-3\">\n <span className=\"font-medium\">In the basket: option {inBasket.option}, not sent</span>\n {inBasket.note === null ? null : <span className=\"text-caption\">“{inBasket.note}”</span>}\n <span className=\"text-caption text-muted-foreground\">Pick another option to change it.</span>\n <div className=\"flex flex-wrap gap-2\">\n <a data-testid=\"bridge-basket-open\" href={basketHref} className=\"inline-flex h-9 items-center rounded-md border border-border px-4 hover:bg-accent\">\n Open the basket\n </a>\n <ActionButton data-testid=\"bridge-basket-remove\" isPending={isRemoving} pendingLabel=\"Removing...\" disabled={isWorking} onClick={onRemove}>\n Remove\n </ActionButton>\n </div>\n </div>\n );\n}\n\n/** The options of a question, one to choose, the asker's pick marked; none to choose once it is stale. */\nfunction QuestionOptions({ question, chosen, isStale, onChoose }: { question: Question; chosen: number | undefined; isStale: boolean; onChoose: (option: number) => void }) {\n return (\n <fieldset className={`grid gap-2 ${isStale ? 'opacity-60' : ''}`} disabled={isStale}>\n <legend className=\"sr-only\">Options</legend>\n {question.options.map((option) => (\n <label key={option.key} className={`flex items-start gap-3 rounded-md border p-3 ${option.key === chosen && !isStale ? 'border-ring bg-accent' : 'border-border'}`}>\n <input type=\"radio\" name=\"option\" value={option.key} checked={option.key === chosen && !isStale} onChange={() => { onChoose(option.key); }} className=\"mt-1\" />\n <span className=\"grid flex-1 gap-0.5\">\n <span className=\"font-medium\">\n {option.key}. {option.label}\n </span>\n {option.detail === '' ? null : <span className=\"text-caption text-muted-foreground\">{option.detail}</span>}\n </span>\n {option.key === question.pick.option ? <span className=\"rounded-sm border border-border px-1.5 text-caption\">Their pick</span> : null}\n </label>\n ))}\n </fieldset>\n );\n}\n\n/** What a stale question says: withdrawn, done; or replaced, with the replacement to open. */\nfunction StaleNotice({ stale, from, onOpen }: { stale: Stale; from: string; onOpen: (deliveryId: string) => void }) {\n const { replacementId } = stale;\n return (\n <div data-testid=\"bridge-stale\" className=\"grid gap-2 rounded-md border border-border bg-muted p-3\">\n <span>{stale.kind === 'withdrawn' ? `Withdrawn by ${from}. Nothing to answer: it is done.` : `Replaced by ${from}. Answer the new question.`}</span>\n {replacementId === null ? null : (\n <ActionButton data-testid=\"bridge-replacement\" className=\"justify-self-start\" isPending={false} pendingLabel=\"Opening...\" onClick={() => { onOpen(replacementId); }}>\n Open the new question\n </ActionButton>\n )}\n </div>\n );\n}\n\n/** What a step asks: why, and the link where it is done, shown with its host and opened only by the person's own press (Bridge, section 9). */\nfunction StepAsked({ step }: { step: StepView }) {\n return (\n <>\n <p className=\"whitespace-pre-wrap\">{step.why}</p>\n {step.link === undefined ? null : (\n <a data-testid=\"bridge-step-link\" href={step.link.href} target=\"_blank\" rel=\"noopener noreferrer\" className=\"inline-flex h-9 items-center justify-self-start rounded-md border border-border px-4 hover:bg-accent\">\n Open on {step.link.host}\n </a>\n )}\n </>\n );\n}\n\n/** A step's note field, shown before Done or Cannot is pressed, and the two: the outcome goes to the asker at once, with the note (CC14, CC23). */\nfunction StepControls({ from, note, working, failure, onNoteChange, onFinish }: { from: string; note: string; working: DeliveryControl | undefined; failure: string | undefined; onNoteChange: (note: string) => void; onFinish: (outcome: StepOutcome) => void }) {\n const isWorking = working !== undefined;\n return (\n <>\n <label className=\"grid gap-1\">\n <span>Note</span>\n <textarea\n data-testid=\"bridge-note\"\n rows={2}\n value={note}\n onChange={(event) => { onNoteChange(event.target.value); }}\n placeholder=\"Optional, goes with Done or Cannot\"\n className=\"rounded-md border border-input bg-background p-2\"\n />\n </label>\n {failure === undefined ? null : <Notice message={failure} isFailure />}\n <div className=\"grid gap-1\">\n <div className=\"flex flex-wrap gap-2\">\n <ActionButton data-testid=\"bridge-step-done\" variant=\"primary\" isPending={working?.kind === 'done'} pendingLabel=\"Sending...\" disabled={isWorking} onClick={() => { onFinish('done'); }}>\n Done\n </ActionButton>\n <ActionButton data-testid=\"bridge-step-cannot\" isPending={working?.kind === 'cannot'} pendingLabel=\"Sending...\" disabled={isWorking} onClick={() => { onFinish('cannot'); }}>\n Cannot\n </ActionButton>\n </div>\n <span className=\"text-caption text-muted-foreground\">{from} is told at once, with your note.</span>\n </div>\n </>\n );\n}\n\n/**\n * One item in focus (design B, Signal). A question opens with the asker's\n * pick chosen (CC11), or the option in the basket; its one button puts that\n * option in the basket with the note, if any, and sends nothing (CC24): the\n * person sends the basket. A step (CC14) shows why and its link, then its\n * note field before Done and Cannot, each sending its outcome at once with\n * the note. Any other item may get a note as its answer, and may\n * be done with; one of a meeting leads to the meeting. An alert or a notice\n * is done once seen (Bridge, CC16): it asks nothing more. So is a question\n * its asker withdrew or replaced: stale, nothing to send, a replaced one\n * leading to its replacement.\n */\nexport function DeliveryCard({\n delivery,\n isDoneOnSeeing,\n meetingHref,\n basketHref,\n inBasket,\n note,\n working,\n failure,\n onNoteChange,\n onAnswer,\n onPut,\n onRemove,\n onDone,\n onFinishStep,\n onOpen,\n onBack,\n}: {\n delivery: FocusedDelivery;\n /** Whether seeing it was all it asked, so it is done: an alert or a notice. */\n isDoneOnSeeing: boolean;\n /** The page of the meeting it belongs to, if it belongs to one. */\n meetingHref: string | undefined;\n /** Bridge's basket. */\n basketHref: string;\n /** The answer to the question in the basket, if any. */\n inBasket: InBasket | null;\n note: string;\n working: DeliveryControl | undefined;\n failure: string | undefined;\n onNoteChange: (note: string) => void;\n /** Answers any item but a question with the note. */\n onAnswer: (option: number | undefined) => void;\n /** Puts the option chosen of a question in the basket, with the note. */\n onPut: (option: number) => void;\n /** Takes the question's answer out of the basket. */\n onRemove: () => void;\n onDone: () => void;\n /** Ends a step done or cannot, with the note. */\n onFinishStep: (outcome: StepOutcome) => void;\n /** Opens another item: a replaced question's replacement. */\n onOpen: (deliveryId: string) => void;\n onBack: () => void;\n}) {\n const { question, step, stale } = delivery;\n const [chosen, setChosen] = useState(inBasket?.option ?? question?.pick.option);\n const isWorking = working !== undefined;\n return (\n <section data-testid=\"bridge-delivery\" className=\"grid gap-3 rounded-lg border border-border bg-card p-6 text-card-foreground shadow-sm\">\n <span className=\"text-caption text-muted-foreground\">\n {delivery.from} · {new Date(delivery.sentAt).toUTCString()}\n </span>\n <h2 className=\"text-heading font-semibold\">{question?.title ?? delivery.title}</h2>\n {meetingHref === undefined ? null : (\n <a data-testid=\"bridge-meeting\" href={meetingHref} className=\"inline-flex h-9 items-center justify-self-start rounded-md bg-primary px-4 text-primary-foreground hover:bg-primary-hover\">\n Go to the meeting\n </a>\n )}\n {step !== undefined ? (\n <StepAsked step={step} />\n ) : question === undefined ? (\n <pre className=\"whitespace-pre-wrap rounded-md bg-muted p-3 font-mono text-caption\">{delivery.body}</pre>\n ) : (\n <>\n <p className=\"whitespace-pre-wrap\">{question.context}</p>\n <QuestionOptions question={question} chosen={chosen} isStale={stale !== null} onChoose={setChosen} />\n <p className=\"text-caption text-muted-foreground\">\n {delivery.from} picks {question.pick.option}: {question.pick.why}\n </p>\n </>\n )}\n {stale === null ? null : <StaleNotice stale={stale} from={delivery.from} onOpen={onOpen} />}\n {inBasket === null || stale !== null ? null : <InBasketNotice inBasket={inBasket} basketHref={basketHref} isRemoving={working?.kind === 'remove'} isWorking={isWorking} onRemove={onRemove} />}\n {isDoneOnSeeing ? (\n <p data-testid=\"bridge-seen-done\" className=\"text-muted-foreground\">\n Seen now, so done: it asks nothing more.\n </p>\n ) : stale !== null ? null : step !== undefined ? (\n <StepControls from={delivery.from} note={note} working={working} failure={failure} onNoteChange={onNoteChange} onFinish={onFinishStep} />\n ) : (\n <>\n <label className=\"grid gap-1\">\n <span>{question === undefined ? 'Your answer' : 'Note'}</span>\n <textarea\n data-testid=\"bridge-note\"\n rows={2}\n value={note}\n onChange={(event) => { onNoteChange(event.target.value); }}\n placeholder={question === undefined ? '' : 'Optional, goes with the answer'}\n className=\"rounded-md border border-input bg-background p-2\"\n />\n </label>\n {failure === undefined ? null : <Notice message={failure} isFailure />}\n {question === undefined ? (\n <div className=\"flex flex-wrap gap-2\">\n <ActionButton data-testid=\"bridge-answer\" variant=\"primary\" isPending={working?.kind === 'note'} pendingLabel=\"Sending...\" disabled={isWorking} onClick={() => { onAnswer(undefined); }}>\n Answer\n </ActionButton>\n <ActionButton data-testid=\"bridge-done\" isPending={working?.kind === 'done'} pendingLabel=\"Marking done...\" disabled={isWorking} onClick={onDone}>\n Done\n </ActionButton>\n </div>\n ) : chosen === undefined ? null : (\n <div className=\"grid gap-1\">\n <ActionButton data-testid=\"bridge-put-in-basket\" variant=\"primary\" className=\"justify-self-start\" isPending={working?.kind === 'option'} pendingLabel=\"Putting in the basket...\" disabled={isWorking} onClick={() => { onPut(chosen); }}>\n Put option {chosen} in the basket\n </ActionButton>\n <span className=\"text-caption text-muted-foreground\">Nothing is sent yet. {delivery.from} receives this answer when you send the basket.</span>\n </div>\n )}\n </>\n )}\n <div className=\"flex flex-wrap gap-2\">\n <button type=\"button\" onClick={onBack} disabled={isWorking} className=\"inline-flex h-9 items-center rounded-md px-4 text-muted-foreground hover:bg-accent disabled:opacity-70\">\n Back\n </button>\n </div>\n </section>\n );\n}\n","'use client';\n\nimport { useRouter } from 'next/navigation';\nimport { useEffect } from 'react';\n\n/** How long Bridge waits before it reads the record again by itself. */\nconst TRY_AGAIN_MS = 10_000;\n\n/**\n * The record cannot be read now (Bridge, section 9: core does not answer):\n * why, that nothing is lost, since nothing was acknowledged, and the page\n * reads itself again every 10 seconds, or at once on Try now.\n */\nexport function RecordUnreadable({ message }: { message: string }) {\n const router = useRouter();\n useEffect(() => {\n const again = setInterval(() => {\n router.refresh();\n }, TRY_AGAIN_MS);\n return () => {\n clearInterval(again);\n };\n }, [router]);\n return (\n <section role=\"alert\" data-testid=\"bridge-unreadable\" className=\"flex flex-wrap items-center gap-3 rounded-md border border-tone-attention-border bg-tone-attention-bg px-3 py-2 text-tone-attention-fg\">\n <span className=\"flex min-w-0 flex-1 flex-col\">\n <span className=\"font-semibold\">The record cannot be read now</span>\n <span className=\"text-caption\">\n {message} Nothing was opened or answered, so nothing is lost: Bridge tries again in 10 s.\n </span>\n </span>\n <button type=\"button\" data-testid=\"bridge-try-now\" onClick={() => { router.refresh(); }} className=\"inline-flex h-9 items-center rounded-md border border-border bg-card px-4 text-card-foreground hover:bg-accent\">\n Try now\n </button>\n </section>\n );\n}\n","/** Where a meeting's page is, for server and client code alike. */\n\n/** The meeting page's address, before the meeting's id. */\nexport const MEETINGS_PATH = '/meetings';\n\n/** The address of a meeting's page in a fleet, at the page of contributions after the cursor, if one is given. */\nexport function meetingPathOf(meeting: { fleetId: string; meetingId: string; cursor?: string }): string {\n const query = new URLSearchParams({ fleet: meeting.fleetId, ...(meeting.cursor === undefined ? {} : { cursor: meeting.cursor }) });\n return `${MEETINGS_PATH}/${encodeURIComponent(meeting.meetingId)}?${query.toString()}`;\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"40312d708ed123f3bff12a0e5d5ab7bdd456131901\":{\"name\":\"answerDelivery\"}},\"web/features/bridge/hooks/bridge-actions.ts\",\"\"] */\"use turbopack: no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_2=/*#__PURE__*/createServerReference(\"40312d708ed123f3bff12a0e5d5ab7bdd456131901\",callServer,void 0,findSourceMapURL,\"answerDelivery\");export{$$RSC_SERVER_ACTION_2 as answerDelivery};","/* __next_internal_action_entry_do_not_use__ [{\"407cf7e8bf1a43e93e600808ccd1631dfd13c9b490\":{\"name\":\"doneDelivery\"}},\"web/features/bridge/hooks/bridge-actions.ts\",\"\"] */\"use turbopack: no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_6=/*#__PURE__*/createServerReference(\"407cf7e8bf1a43e93e600808ccd1631dfd13c9b490\",callServer,void 0,findSourceMapURL,\"doneDelivery\");export{$$RSC_SERVER_ACTION_6 as doneDelivery};","/* __next_internal_action_entry_do_not_use__ [{\"60c205c99f267754b5cb7b09118fdaf91f419555a5\":{\"name\":\"openDelivery\"}},\"web/features/bridge/hooks/bridge-actions.ts\",\"\"] */\"use turbopack: no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_1=/*#__PURE__*/createServerReference(\"60c205c99f267754b5cb7b09118fdaf91f419555a5\",callServer,void 0,findSourceMapURL,\"openDelivery\");export{$$RSC_SERVER_ACTION_1 as openDelivery};","/* __next_internal_action_entry_do_not_use__ [{\"40c05f98915a7c9661aa8f801d392296ba8350eeba\":{\"name\":\"putInBasket\"}},\"web/features/bridge/hooks/bridge-actions.ts\",\"\"] */\"use turbopack: no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_3=/*#__PURE__*/createServerReference(\"40c05f98915a7c9661aa8f801d392296ba8350eeba\",callServer,void 0,findSourceMapURL,\"putInBasket\");export{$$RSC_SERVER_ACTION_3 as putInBasket};"],"names":["$$RSC_SERVER_ACTION_4","InBasketNotice","inBasket","basketHref","isRemoving","isWorking","onRemove","className","option","note","href","isPending","pendingLabel","disabled","onClick","QuestionOptions","question","chosen","isStale","onChoose","options","map","key","type","name","value","checked","onChange","label","detail","pick","StaleNotice","stale","from","onOpen","replacementId","kind","StepAsked","step","why","link","undefined","target","rel","host","StepControls","working","failure","onNoteChange","onFinish","rows","event","placeholder","message","isFailure","variant","DeliveryCard","delivery","isDoneOnSeeing","meetingHref","onAnswer","onPut","onDone","onFinishStep","onBack","setChosen","Date","sentAt","toUTCString","title","body","context","TRY_AGAIN_MS","RecordUnreadable","router","again","setInterval","refresh","clearInterval","role","MEETINGS_PATH","meetingPathOf","meeting","query","URLSearchParams","fleet","fleetId","cursor","encodeURIComponent","meetingId","toString"],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- (()=>{"use strict";module.exports=[88276,a=>{var b=a.i(66283);async function c(a){try{return await a}catch(a){if("FORBIDDEN"===(0,b.U)(a))return;throw a}}async function d(a){try{return{kind:"read",value:await a}}catch(c){let a=(0,b.U)(c);if("FORBIDDEN"===a)return{kind:"none"};if("UNAUTHORIZED"===a)throw c;return{kind:"unreadable",message:void 0===a?"The gateway did not answer.":(0,b.s)(c)}}}async function e(a){let b=await d(a.people.basketCount.query());return"read"===b.kind?b.value.count:0}async function f(a){let[b,d]=await Promise.all([c(a.requests.toDecide.query()),c(a.requests.mine.query())]);return{toDecide:b,mine:d}}async function g(a){let[b,d,e]=await Promise.all([c(a.people.routing.query()),c(a.people.wakeChannels.query()),c(a.slack.link.query())]);return{routing:b,wakeChannels:d,slackLink:e}}async function h(a,b){let d=await c(a.requests.toDecide.query())??[];return{request:d.find(a=>a.requestId===b),toDecide:d}}a.s(["M",0,function(a){return d(a.people.basket.query())},"W",0,e,"I",0,function(a){return d(a.people.home.query())},"X",0,g,"n",0,f,"x",0,function(a,b){return d(a.people.record.query({cursor:b}))},"F",0,h])},31780,a=>{let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call LiveRefresh() from the server but LiveRefresh is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/web/features/bridge/state/live-refresh.tsx","LiveRefresh");a.s(["LiveRefresh",0,b])},60947,a=>{var b=a.i(31780);a.n(b)},18734,a=>{var b=a.i(7997),c=a.i(94705);let d={waiting:"border-tone-waiting-border bg-tone-waiting-bg text-tone-waiting-fg",active:"border-tone-active-border bg-tone-active-bg text-tone-active-fg",ok:"border-tone-ok-border bg-tone-ok-bg text-tone-ok-fg",attention:"border-tone-attention-border bg-tone-attention-bg text-tone-attention-fg",ended:"border-tone-ended-border bg-tone-ended-bg text-tone-ended-fg"};function e({status:a}){return(0,b.jsx)("span",{className:`inline-flex shrink-0 items-center rounded-full border px-2 py-0.5 text-caption ${d[a.tone]}`,children:a.label})}function f({name:a}){return(0,b.jsx)("span",{"aria-hidden":"true",className:"inline-flex size-8 shrink-0 items-center justify-center rounded-md bg-secondary font-semibold text-secondary-foreground",children:a.slice(0,1).toUpperCase()})}function g({request:a,now:d}){let h=(0,c.M)(a);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f,{name:h}),(0,b.jsxs)("span",{className:"flex min-w-0 flex-1 flex-col",children:[(0,b.jsx)("span",{className:"truncate",children:h}),(0,b.jsx)("span",{className:"text-caption text-muted-foreground",children:(0,c.E)(a)})]}),(0,b.jsx)(e,{status:(0,c.T)(a,d)})]})}a.s(["f",0,function({title:a,requests:c,now:d,hrefOf:e,currentId:f}){return(0,b.jsxs)("section",{className:"grid gap-2",children:[(0,b.jsxs)("h2",{className:"text-section font-semibold",children:[a," · ",c.length]}),c.map(a=>void 0===e?(0,b.jsx)("div",{className:"flex items-center gap-3 rounded-md border border-border bg-card p-3",children:(0,b.jsx)(g,{request:a,now:d})},a.requestId):(0,b.jsx)("a",{href:e(a),"aria-current":a.requestId===f?"true":void 0,"data-testid":"bridge-request",className:"flex items-center gap-3 rounded-md border border-border bg-card p-3 hover:bg-accent aria-[current=true]:border-ring",children:(0,b.jsx)(g,{request:a,now:d})},a.requestId))]})}],18734)},49144,a=>{let b="inline-flex h-9 items-center justify-center gap-2 rounded-md px-4 font-medium disabled:opacity-60",c={primary:`${b} bg-primary text-primary-foreground hover:bg-primary-hover`,secondary:`${b} border border-border bg-card hover:bg-accent`,destructive:`${b} bg-destructive text-destructive-foreground`};a.s(["x",0,c,"r",0,"rounded-lg border border-border bg-card p-6 text-card-foreground shadow-sm","w",0,"h-9 w-full rounded-md border border-input bg-background px-3 font-mono text-code","z",0,"grid gap-1"])},22126,a=>{var b=a.i(7997),c=a.i(49144);a.s(["f",0,function(){return(0,b.jsxs)("section",{className:c.r,"data-testid":"no-sign-in",children:[(0,b.jsx)("h2",{className:"text-heading font-semibold",children:"Nobody signs in here"}),(0,b.jsx)("p",{className:"mt-2 text-muted-foreground",children:"This gateway signs no one in to its pages: it is no app at pagasae."})]})}])}]})();
2
-
3
- //# sourceMappingURL=web_features_1n1hy3nwha2vi._.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../web/features/bridge/hooks/read-bridge.ts","../../../../../web/features/bridge/state/live-refresh.tsx/__nextjs-internal-proxy.mjs%20%7B%20server%20%3D%3E%20%22%5Bproject%5D/web/features/bridge/state/live-refresh.tsx%22%20%7D","../../../../../web/features/bridge/ui/requests-list.tsx","../../../../../web/features/bridge/ui/status-badge.tsx","../../../../../web/features/forms/ui/look.ts","../../../../../web/features/sign-in/ui/no-sign-in.tsx"],"sourcesContent":["/**\n * What Bridge's pages show, read through the gateway's API as the signed-in\n * account (docs/design/bridge; decision 0056): Bridge home, a page of the\n * record for Done, Bridge's settings: the requests to decide for an\n * approver and the requests they asked, and where things show: each job's\n * places, the channels that wake the person and their Slack link. A part the\n * API refuses the account (FORBIDDEN) is not theirs to see, so it is left\n * out.\n */\nimport type { GatewayApi } from '../../../lib/gateway-api/gateway-api';\nimport { refusalCodeOf, refusalMessageOf } from '../../../lib/gateway-api/page-api';\nimport type { WakeChannels } from '../services/deliveries';\nimport type { BasketView } from '../services/basket';\nimport type { BridgeHome, RecordPage } from '../services/items';\nimport type { ShownRequest } from '../services/requests';\nimport type { RoutingView } from '../services/routing';\n\n/**\n * What Bridge read of the person ship: what it answered; none, for an account\n * with no person ship, on which nothing waits; or that the record cannot be\n * read now, saying why. Nothing was acknowledged then, so nothing is lost.\n */\nexport type BridgeRead<T> = { kind: 'read'; value: T } | { kind: 'none' } | { kind: 'unreadable'; message: string };\n\nexport interface BridgeSettingsParts {\n readonly toDecide: readonly ShownRequest[] | undefined;\n readonly mine: readonly ShownRequest[] | undefined;\n}\n\n/** Where things show (Bridge, section 8): each job's places, and the places' own state. */\nexport interface BridgeRoutingParts {\n readonly routing: RoutingView | undefined;\n /** The channels that can wake the person when something waits for their person ship (wake a person, W8). */\n readonly wakeChannels: WakeChannels | undefined;\n /** The person's Slack link (gateway scopes 9.6); none while the fleet's own bot is not in Slack. */\n readonly slackLink: SlackLink | null | undefined;\n}\n\n/** A person's Slack link as the gateway answers it: the workspace, and the Slack name linked, none while unlinked. */\nexport type SlackLink = NonNullable<Awaited<ReturnType<GatewayApi['slack']['link']['query']>>>;\n\nasync function unlessForbidden<T>(call: Promise<T>): Promise<T | undefined> {\n try {\n return await call;\n } catch (error) {\n if (refusalCodeOf(error) === 'FORBIDDEN') {\n return undefined;\n }\n throw error;\n }\n}\n\n/** A read of the person ship: a sign-in that ended is thrown on, so the page sends the person to sign in again. */\nasync function personRead<T>(call: Promise<T>): Promise<BridgeRead<T>> {\n try {\n return { kind: 'read', value: await call };\n } catch (error) {\n const code = refusalCodeOf(error);\n if (code === 'FORBIDDEN') {\n return { kind: 'none' };\n }\n if (code === 'UNAUTHORIZED') {\n throw error;\n }\n return { kind: 'unreadable', message: code === undefined ? 'The gateway did not answer.' : refusalMessageOf(error) };\n }\n}\n\nexport function readBridgeHome(api: GatewayApi): Promise<BridgeRead<BridgeHome>> {\n return personRead(api.people.home.query());\n}\n\nexport function readBasket(api: GatewayApi): Promise<BridgeRead<BasketView>> {\n return personRead(api.people.basket.query());\n}\n\n/** How many answers the basket holds, for the navigation: none for an account with no person ship, or while it cannot be read now. */\nexport async function readBasketCount(api: GatewayApi): Promise<number> {\n const read = await personRead(api.people.basketCount.query());\n return read.kind === 'read' ? read.value.count : 0;\n}\n\nexport function readRecordPage(api: GatewayApi, cursor: string | null): Promise<BridgeRead<RecordPage>> {\n return personRead(api.people.record.query({ cursor }));\n}\n\nexport async function readBridgeSettings(api: GatewayApi): Promise<BridgeSettingsParts> {\n const [toDecide, mine] = await Promise.all([unlessForbidden(api.requests.toDecide.query()), unlessForbidden(api.requests.mine.query())]);\n return { toDecide, mine };\n}\n\nexport async function readBridgeRouting(api: GatewayApi): Promise<BridgeRoutingParts> {\n const [routing, wakeChannels, slackLink] = await Promise.all([unlessForbidden(api.people.routing.query()), unlessForbidden(api.people.wakeChannels.query()), unlessForbidden(api.slack.link.query())]);\n return { routing, wakeChannels, slackLink };\n}\n\n/** One request to decide, undefined once it no longer waits, and the queue beside it. */\nexport async function readRequestToDecide(api: GatewayApi, requestId: string): Promise<{ request: ShownRequest | undefined; toDecide: readonly ShownRequest[] }> {\n const toDecide = (await unlessForbidden(api.requests.toDecide.query())) ?? [];\n return { request: toDecide.find((open) => open.requestId === requestId), toDecide };\n}\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const LiveRefresh = registerClientReference(\n function() { throw new Error(\"Attempted to call LiveRefresh() from the server but LiveRefresh is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/web/features/bridge/state/live-refresh.tsx\",\n \"LiveRefresh\",\n);\n","import { requestStatus, subjectKind, subjectName, type ShownRequest } from '../services/requests';\nimport { StatusBadge } from './status-badge';\n\nfunction PartyMark({ name }: { name: string }) {\n return (\n <span aria-hidden=\"true\" className=\"inline-flex size-8 shrink-0 items-center justify-center rounded-md bg-secondary font-semibold text-secondary-foreground\">\n {name.slice(0, 1).toUpperCase()}\n </span>\n );\n}\n\nfunction RequestRow({ request, now }: { request: ShownRequest; now: Date }) {\n const name = subjectName(request);\n return (\n <>\n <PartyMark name={name} />\n <span className=\"flex min-w-0 flex-1 flex-col\">\n <span className=\"truncate\">{name}</span>\n <span className=\"text-caption text-muted-foreground\">{subjectKind(request)}</span>\n </span>\n <StatusBadge status={requestStatus(request, now)} />\n </>\n );\n}\n\n/** Requests in a list: each a link to decide it, or, for the person's own, its state alone. */\nexport function RequestsList({ title, requests, now, hrefOf, currentId }: { title: string; requests: readonly ShownRequest[]; now: Date; hrefOf?: (request: ShownRequest) => string; currentId?: string }) {\n return (\n <section className=\"grid gap-2\">\n <h2 className=\"text-section font-semibold\">\n {title} · {requests.length}\n </h2>\n {requests.map((request) =>\n hrefOf === undefined ? (\n <div key={request.requestId} className=\"flex items-center gap-3 rounded-md border border-border bg-card p-3\">\n <RequestRow request={request} now={now} />\n </div>\n ) : (\n <a\n key={request.requestId}\n href={hrefOf(request)}\n aria-current={request.requestId === currentId ? 'true' : undefined}\n data-testid=\"bridge-request\"\n className=\"flex items-center gap-3 rounded-md border border-border bg-card p-3 hover:bg-accent aria-[current=true]:border-ring\"\n >\n <RequestRow request={request} now={now} />\n </a>\n ),\n )}\n </section>\n );\n}\n","import type { Status, Tone } from '../services/requests';\n\nconst TONES: Record<Tone, string> = {\n waiting: 'border-tone-waiting-border bg-tone-waiting-bg text-tone-waiting-fg',\n active: 'border-tone-active-border bg-tone-active-bg text-tone-active-fg',\n ok: 'border-tone-ok-border bg-tone-ok-bg text-tone-ok-fg',\n attention: 'border-tone-attention-border bg-tone-attention-bg text-tone-attention-fg',\n ended: 'border-tone-ended-border bg-tone-ended-bg text-tone-ended-fg',\n};\n\n/** A status in its tone, always with its words, so it never rests on colour alone. */\nexport function StatusBadge({ status }: { status: Status }) {\n return <span className={`inline-flex shrink-0 items-center rounded-full border px-2 py-0.5 text-caption ${TONES[status.tone]}`}>{status.label}</span>;\n}\n","/** The classes the pages share, on the design tokens: a card and the button kinds. */\nexport const CARD = 'rounded-lg border border-border bg-card p-6 text-card-foreground shadow-sm';\n\nconst BUTTON = 'inline-flex h-9 items-center justify-center gap-2 rounded-md px-4 font-medium disabled:opacity-60';\n\nexport const BUTTONS = {\n primary: `${BUTTON} bg-primary text-primary-foreground hover:bg-primary-hover`,\n secondary: `${BUTTON} border border-border bg-card hover:bg-accent`,\n destructive: `${BUTTON} bg-destructive text-destructive-foreground`,\n} as const;\n\nexport type ButtonKind = keyof typeof BUTTONS;\n\nexport const INPUT = 'h-9 w-full rounded-md border border-input bg-background px-3 font-mono text-code';\n\nexport const LABEL = 'grid gap-1';\n","import { CARD } from '../../forms/ui/look';\n\n/** A gateway that is no app at pagasae signs no one in to its pages (header design H5). */\nexport function NoSignIn() {\n return (\n <section className={CARD} data-testid=\"no-sign-in\">\n <h2 className=\"text-heading font-semibold\">Nobody signs in here</h2>\n <p className=\"mt-2 text-muted-foreground\">This gateway signs no one in to its pages: it is no app at pagasae.</p>\n </section>\n );\n}\n"],"names":["unlessForbidden","call","error","undefined","personRead","kind","value","code","message","readBridgeHome","api","people","home","query","readBasket","basket","readBasketCount","read","basketCount","count","readRecordPage","cursor","record","readBridgeSettings","toDecide","mine","Promise","all","requests","readBridgeRouting","routing","wakeChannels","slackLink","slack","link","readRequestToDecide","requestId","request","find","open","LiveRefresh","Error","TONES","waiting","active","ok","attention","ended","StatusBadge","status","className","tone","label","CARD","BUTTON","BUTTONS","primary","secondary","destructive","INPUT","LABEL","NoSignIn"],"mappings":"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","ignoreList":[1]}
@@ -1,3 +0,0 @@
1
- (()=>{"use strict";module.exports=[16550,a=>{a.s(["H",0,"/bridge/basket","T",0,"/bridge/settings"])},3656,a=>{var b=a.i(72131),c=a.i(50944);a.s(["LiveRefresh",0,function({fleetId:a}){let d;return d=(0,c.useRouter)(),(0,b.useEffect)(()=>{let b=new EventSource(`/bridge/changes?fleet=${encodeURIComponent(a)}`);return b.onmessage=()=>{d.refresh()},()=>{b.close()}},[a,d]),(0,b.useEffect)(()=>{let b,c=()=>{let c="visible"===document.visibilityState&&document.hasFocus();c&&void 0===b?b=new EventSource(`/bridge/focus?fleet=${encodeURIComponent(a)}`):c||void 0===b||(b.close(),b=void 0)};return c(),window.addEventListener("focus",c),window.addEventListener("blur",c),document.addEventListener("visibilitychange",c),()=>{window.removeEventListener("focus",c),window.removeEventListener("blur",c),document.removeEventListener("visibilitychange",c),b?.close()}},[a]),null}],3656)},32043,a=>{var b=a.i(87924);let c={primary:"bg-primary text-primary-foreground hover:bg-primary-hover",secondary:"border border-border bg-card text-card-foreground hover:bg-accent"};a.s(["f",0,function({isPending:a,pendingLabel:d,variant:e="secondary",children:f,className:g="",disabled:h,...i}){return(0,b.jsx)("button",{...i,disabled:!0===h||a,"aria-busy":a,className:`inline-flex h-9 items-center gap-2 rounded-md px-4 disabled:cursor-not-allowed disabled:opacity-70 ${c[e]} ${g}`,children:a?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{"aria-hidden":"true",className:"size-3.5 animate-spin rounded-full border-2 border-current border-t-transparent"}),d]}):f})}])},10039,a=>{var b=a.i(87924);a.s(["f",0,function({message:a,isFailure:c}){return c?(0,b.jsx)("p",{role:"alert","data-testid":"bridge-failure",className:"rounded-md border border-tone-attention-border bg-tone-attention-bg px-3 py-2 text-tone-attention-fg",children:a}):(0,b.jsx)("p",{role:"status","data-testid":"bridge-success",className:"rounded-md border border-tone-ok-border bg-tone-ok-bg px-3 py-2 text-tone-ok-fg",children:a})}])}]})();
2
-
3
- //# sourceMappingURL=web_features_bridge_0-mhu0jaig2u3._.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../web/features/bridge/paths.ts","../../../../../web/features/bridge/hooks/use-focus-report.ts","../../../../../web/features/bridge/hooks/use-live-refresh.ts","../../../../../web/features/bridge/state/live-refresh.tsx","../../../../../web/features/bridge/ui/action-button.tsx","../../../../../web/features/bridge/ui/notice.tsx"],"sourcesContent":["/** Bridge's pages (docs/design/bridge): home, the basket, Done, Bridge's settings and where things show; a module of their own, so a page in the browser names them too. */\nexport const BRIDGE_PATH = '/bridge';\nexport const BRIDGE_BASKET_PATH = '/bridge/basket';\nexport const BRIDGE_DONE_PATH = '/bridge/done';\nexport const BRIDGE_SETTINGS_PATH = '/bridge/settings';\nexport const BRIDGE_ROUTING_PATH = '/bridge/settings/routing';\n","'use client';\n\nimport { useEffect } from 'react';\n\n/** The stream the page holds while in focus, which the web app's server follows on the gateway's API for the browser. */\nexport const FOCUS_PATH = '/bridge/focus';\n\n/**\n * Tells the gateway while the page is in focus (wake a person, W6): it holds\n * the focus stream open while the window has focus and the page shows, and\n * closes it when either ends. While a page of the person is in focus, what\n * arrives is shown there and no wake goes out; an open page not in focus\n * changes nothing. A lost connection no longer counts as in focus.\n */\nexport function useFocusReport(fleetId: string): void {\n useEffect(() => {\n let focus: EventSource | undefined;\n const report = () => {\n const isInFocus = document.visibilityState === 'visible' && document.hasFocus();\n if (isInFocus && focus === undefined) {\n focus = new EventSource(`${FOCUS_PATH}?fleet=${encodeURIComponent(fleetId)}`);\n } else if (!isInFocus && focus !== undefined) {\n focus.close();\n focus = undefined;\n }\n };\n report();\n window.addEventListener('focus', report);\n window.addEventListener('blur', report);\n document.addEventListener('visibilitychange', report);\n return () => {\n window.removeEventListener('focus', report);\n window.removeEventListener('blur', report);\n document.removeEventListener('visibilitychange', report);\n focus?.close();\n };\n }, [fleetId]);\n}\n","'use client';\n\nimport { useRouter } from 'next/navigation';\nimport { useEffect } from 'react';\n\n/** The page's live updates, which the web app's server follows on the gateway's API for the browser. */\nexport const CHANGES_PATH = '/bridge/changes';\n\n/**\n * Keeps the page in step with its fleet's requests: whenever one changes,\n * the page reads itself again on the server, as its own caller. The browser\n * opens the stream again by itself when it drops.\n */\nexport function useLiveRefresh(fleetId: string): void {\n const router = useRouter();\n useEffect(() => {\n const changes = new EventSource(`${CHANGES_PATH}?fleet=${encodeURIComponent(fleetId)}`);\n changes.onmessage = () => {\n router.refresh();\n };\n return () => {\n changes.close();\n };\n }, [fleetId, router]);\n}\n","'use client';\n\nimport { useFocusReport } from '../hooks/use-focus-report';\nimport { useLiveRefresh } from '../hooks/use-live-refresh';\n\n/** Keeps the page it sits in live, and tells the gateway while it is in focus (wake a person, W6): it shows nothing itself. */\nexport function LiveRefresh({ fleetId }: { fleetId: string }) {\n useLiveRefresh(fleetId);\n useFocusReport(fleetId);\n return null;\n}\n","import type { ButtonHTMLAttributes, ReactNode } from 'react';\n\nconst VARIANTS = {\n primary: 'bg-primary text-primary-foreground hover:bg-primary-hover',\n secondary: 'border border-border bg-card text-card-foreground hover:bg-accent',\n} as const;\n\n/**\n * A button for an action: the moment it is pressed and until the answer\n * comes, it shows a spinner and its working label, and cannot run twice.\n */\nexport function ActionButton({\n isPending,\n pendingLabel,\n variant = 'secondary',\n children,\n className = '',\n disabled,\n ...button\n}: ButtonHTMLAttributes<HTMLButtonElement> & { isPending: boolean; pendingLabel: string; variant?: keyof typeof VARIANTS; children: ReactNode }) {\n return (\n <button\n {...button}\n disabled={disabled === true || isPending}\n aria-busy={isPending}\n className={`inline-flex h-9 items-center gap-2 rounded-md px-4 disabled:cursor-not-allowed disabled:opacity-70 ${VARIANTS[variant]} ${className}`}\n >\n {isPending ? (\n <>\n <span aria-hidden=\"true\" className=\"size-3.5 animate-spin rounded-full border-2 border-current border-t-transparent\" />\n {pendingLabel}\n </>\n ) : (\n children\n )}\n </button>\n );\n}\n","/** What an action came to, said in place: a success as a status, a failure as an alert by the control. */\nexport function Notice({ message, isFailure }: { message: string; isFailure: boolean }) {\n return isFailure ? (\n <p role=\"alert\" data-testid=\"bridge-failure\" className=\"rounded-md border border-tone-attention-border bg-tone-attention-bg px-3 py-2 text-tone-attention-fg\">\n {message}\n </p>\n ) : (\n <p role=\"status\" data-testid=\"bridge-success\" className=\"rounded-md border border-tone-ok-border bg-tone-ok-bg px-3 py-2 text-tone-ok-fg\">\n {message}\n </p>\n );\n}\n"],"names":["BRIDGE_PATH","BRIDGE_BASKET_PATH","BRIDGE_DONE_PATH","BRIDGE_SETTINGS_PATH","BRIDGE_ROUTING_PATH","FOCUS_PATH","useFocusReport","fleetId","focus","report","isInFocus","document","visibilityState","hasFocus","undefined","EventSource","encodeURIComponent","close","window","addEventListener","removeEventListener","VARIANTS","primary","secondary","ActionButton","isPending","pendingLabel","variant","children","className","disabled","button","Notice","message","isFailure","role"],"mappings":"wDAEkC,uBAEE,+BCFpC,IAAA,EAAA,EAAA,CAAA,CAAA,OCAA,EAAA,EAAA,CAAA,CAAA,4BCIO,SAAS,AAAY,CAAE,SAAO,CAAuB,QAG1D,ODKM,EAAS,CAAA,EAAA,EAAA,SAAA,AAAS,IACxB,CAAA,EAAA,EAAA,SAAA,AAAS,EAAC,KACR,IAAM,EAAU,IAAI,YAAY,GAAG,aAAa,OAAO,EAAE,mBAAmB,IAAU,EAItF,OAHA,EAAQ,SAAS,CAAG,KAClB,EAAO,OAAO,EAChB,EACO,KACL,EAAQ,KAAK,EACf,CACFY,EAAG,CChBY,EDgBF,EAAO,EDRpB,CAAA,EAAA,EAAA,SAAA,AAAS,EAAC,KAER,IADIJ,EACEC,EAAS,KACb,IAAMC,EAAyC,YAA7BC,SAASC,eAAe,EAAkBD,SAASE,QAAQ,GACzEH,QAAuBI,IAAVN,EACfA,EAAQ,GAD4B,CACxBO,YAAY,GAAGV,WAAW,OAAO,EAAEW,mBAAmBT,IAAU,EAClEG,QAAuBI,IAAVN,IACvBA,EAAMS,CADsC,IACjC,GACXT,OAAQM,EAEZ,EAKA,OAJAL,IACAS,OAAOC,gBAAgB,CAAC,QAASV,GACjCS,OAAOC,gBAAgB,CAAC,OAAQV,GAChCE,SAASQ,gBAAgB,CAAC,mBAAoBV,GACvC,KACLS,OAAOE,mBAAmB,CAAC,QAASX,GACpCS,OAAOE,mBAAmB,CAAC,OAAQX,GACnCE,SAASS,mBAAmB,CAAC,mBAAoBX,GACjDD,GAAOS,OACT,CACF,EAAG,CE5BY,EF4BH,EE3BL,IACT,qCCRA,IAAMI,EAAW,CACfC,QAAS,4DACTC,UAAW,mEACb,aAMO,SAAsB,AAAbC,WACdC,CAAS,cACTC,CAAY,CACZC,UAAU,WAAW,UACrBC,CAAQ,WACRC,EAAY,EAAE,UACdC,CAAQ,CACR,GAAGC,EAC0I,EAC7I,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,SAAA,CACE,GAAGA,CAAM,CACVD,UAAuB,IAAbA,GAAqBL,EAC/B,YAAWA,EACXI,UAAW,CAAC,mGAAmG,EAAER,CAAQ,CAACM,EAAQ,CAAC,CAAC,EAAEE,EAAAA,CAAW,UAEhJJ,EACC,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,QAAA,CAAA,WACE,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,cAAY,OAAOI,UAAU,oFAClCH,KAGHE,GAIR,eCrCwG,IAAA,EAAA,EAAA,CAAA,CAAA,kBACjG,SAASI,AAAO,SAAEC,CAAO,WAAEC,CAAS,CAA2C,EACpF,OAAOA,EACL,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAEC,KAAK,QAAQ,cAAY,iBAAiBN,UAAU,gHACpDI,IAGH,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAEE,KAAK,SAAS,cAAY,iBAAiBN,UAAU,2FACrDI,GAGP"}
@@ -1,3 +0,0 @@
1
- (()=>{"use strict";module.exports=[16550,a=>{a.s(["H",0,"/bridge/basket","T",0,"/bridge/settings"])},3656,a=>{var b=a.i(72131),c=a.i(50944);a.s(["LiveRefresh",0,function({fleetId:a}){let d;return d=(0,c.useRouter)(),(0,b.useEffect)(()=>{let b=new EventSource(`/bridge/changes?fleet=${encodeURIComponent(a)}`);return b.onmessage=()=>{d.refresh()},()=>{b.close()}},[a,d]),(0,b.useEffect)(()=>{let b,c=()=>{let c="visible"===document.visibilityState&&document.hasFocus();c&&void 0===b?b=new EventSource(`/bridge/focus?fleet=${encodeURIComponent(a)}`):c||void 0===b||(b.close(),b=void 0)};return c(),window.addEventListener("focus",c),window.addEventListener("blur",c),document.addEventListener("visibilitychange",c),()=>{window.removeEventListener("focus",c),window.removeEventListener("blur",c),document.removeEventListener("visibilitychange",c),b?.close()}},[a]),null}],3656)},32043,a=>{var b=a.i(87924);let c={primary:"bg-primary text-primary-foreground hover:bg-primary-hover",secondary:"border border-border bg-card text-card-foreground hover:bg-accent"};a.s(["f",0,function({isPending:a,pendingLabel:d,variant:e="secondary",children:f,className:g="",disabled:h,...i}){return(0,b.jsx)("button",{...i,disabled:!0===h||a,"aria-busy":a,className:`inline-flex h-9 items-center gap-2 rounded-md px-4 disabled:cursor-not-allowed disabled:opacity-70 ${c[e]} ${g}`,children:a?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{"aria-hidden":"true",className:"size-3.5 animate-spin rounded-full border-2 border-current border-t-transparent"}),d]}):f})}])},52560,12110,a=>{var b=a.i(87924);let c={decide:"Decide",do:"Do","stay-aware":"Stay aware","everything-else":"Message"},d={bridge:"in Bridge",chat:"in a chat",slack:"in Slack",gateway:"by the gateway"},e={seen:"Seen",answered:"Answered",done:"Done",cannot:"Marked cannot",withdrawn:"Withdrawn by its asker, seen",replaced:"Replaced by its asker, seen",notSent:"Not sent, removed"};function f(a){return c[a]}a.s(["y",0,f,"s",0,function(a){switch(a.state){case"new":return"New";case"seen":return"Seen, not done yet";case"done":{let{outcome:b}=a;if(null===b)return"Done";let c=`${e[b.kind]} ${d[b.place]}`;return null===b.option?c:`${c}: option ${String(b.option)}`}}}],12110);var g=a.i(10039);a.s(["f",0,function({item:a,isNew:c,isStale:d=!1,outcome:e,failure:h,children:i}){var j;return(0,b.jsxs)("li",{"data-testid":"bridge-item","data-stale":d,className:`grid min-w-0 gap-2 rounded-md border border-border bg-card p-3 ${d?"opacity-60":""}`,children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,b.jsxs)("span",{className:"flex min-w-0 flex-1 flex-col text-left",children:[(0,b.jsxs)("span",{className:"flex min-w-0 items-center gap-2",children:[c?(0,b.jsx)("span",{"aria-label":"New",className:"size-2 shrink-0 rounded-full bg-primary"}):null,(0,b.jsx)("span",{className:"truncate font-medium",children:a.title})]}),(0,b.jsxs)("span",{className:"text-caption text-muted-foreground",children:[f(a.job)," · ",a.from," · ",(0,b.jsx)("time",{dateTime:a.sentAt,children:(j=a.sentAt,`${new Date(j).toISOString().slice(0,16).replace("T"," ")} UTC`)})]}),void 0===e?null:(0,b.jsx)("span",{"data-testid":"bridge-outcome",className:"text-caption",children:e})]}),i]}),void 0===h?null:(0,b.jsx)(g.f,{message:h,isFailure:!0})]})}],52560)},10039,a=>{var b=a.i(87924);a.s(["f",0,function({message:a,isFailure:c}){return c?(0,b.jsx)("p",{role:"alert","data-testid":"bridge-failure",className:"rounded-md border border-tone-attention-border bg-tone-attention-bg px-3 py-2 text-tone-attention-fg",children:a}):(0,b.jsx)("p",{role:"status","data-testid":"bridge-success",className:"rounded-md border border-tone-ok-border bg-tone-ok-bg px-3 py-2 text-tone-ok-fg",children:a})}])}]})();
2
-
3
- //# sourceMappingURL=web_features_bridge_0219fbfmsi68-._.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../web/features/bridge/paths.ts","../../../../../web/features/bridge/hooks/use-focus-report.ts","../../../../../web/features/bridge/hooks/use-live-refresh.ts","../../../../../web/features/bridge/state/live-refresh.tsx","../../../../../web/features/bridge/ui/action-button.tsx","../../../../../web/features/bridge/services/items.ts","../../../../../web/features/bridge/ui/item-row.tsx","../../../../../web/features/bridge/ui/notice.tsx"],"sourcesContent":["/** Bridge's pages (docs/design/bridge): home, the basket, Done, Bridge's settings and where things show; a module of their own, so a page in the browser names them too. */\nexport const BRIDGE_PATH = '/bridge';\nexport const BRIDGE_BASKET_PATH = '/bridge/basket';\nexport const BRIDGE_DONE_PATH = '/bridge/done';\nexport const BRIDGE_SETTINGS_PATH = '/bridge/settings';\nexport const BRIDGE_ROUTING_PATH = '/bridge/settings/routing';\n","'use client';\n\nimport { useEffect } from 'react';\n\n/** The stream the page holds while in focus, which the web app's server follows on the gateway's API for the browser. */\nexport const FOCUS_PATH = '/bridge/focus';\n\n/**\n * Tells the gateway while the page is in focus (wake a person, W6): it holds\n * the focus stream open while the window has focus and the page shows, and\n * closes it when either ends. While a page of the person is in focus, what\n * arrives is shown there and no wake goes out; an open page not in focus\n * changes nothing. A lost connection no longer counts as in focus.\n */\nexport function useFocusReport(fleetId: string): void {\n useEffect(() => {\n let focus: EventSource | undefined;\n const report = () => {\n const isInFocus = document.visibilityState === 'visible' && document.hasFocus();\n if (isInFocus && focus === undefined) {\n focus = new EventSource(`${FOCUS_PATH}?fleet=${encodeURIComponent(fleetId)}`);\n } else if (!isInFocus && focus !== undefined) {\n focus.close();\n focus = undefined;\n }\n };\n report();\n window.addEventListener('focus', report);\n window.addEventListener('blur', report);\n document.addEventListener('visibilitychange', report);\n return () => {\n window.removeEventListener('focus', report);\n window.removeEventListener('blur', report);\n document.removeEventListener('visibilitychange', report);\n focus?.close();\n };\n }, [fleetId]);\n}\n","'use client';\n\nimport { useRouter } from 'next/navigation';\nimport { useEffect } from 'react';\n\n/** The page's live updates, which the web app's server follows on the gateway's API for the browser. */\nexport const CHANGES_PATH = '/bridge/changes';\n\n/**\n * Keeps the page in step with its fleet's requests: whenever one changes,\n * the page reads itself again on the server, as its own caller. The browser\n * opens the stream again by itself when it drops.\n */\nexport function useLiveRefresh(fleetId: string): void {\n const router = useRouter();\n useEffect(() => {\n const changes = new EventSource(`${CHANGES_PATH}?fleet=${encodeURIComponent(fleetId)}`);\n changes.onmessage = () => {\n router.refresh();\n };\n return () => {\n changes.close();\n };\n }, [fleetId, router]);\n}\n","'use client';\n\nimport { useFocusReport } from '../hooks/use-focus-report';\nimport { useLiveRefresh } from '../hooks/use-live-refresh';\n\n/** Keeps the page it sits in live, and tells the gateway while it is in focus (wake a person, W6): it shows nothing itself. */\nexport function LiveRefresh({ fleetId }: { fleetId: string }) {\n useLiveRefresh(fleetId);\n useFocusReport(fleetId);\n return null;\n}\n","import type { ButtonHTMLAttributes, ReactNode } from 'react';\n\nconst VARIANTS = {\n primary: 'bg-primary text-primary-foreground hover:bg-primary-hover',\n secondary: 'border border-border bg-card text-card-foreground hover:bg-accent',\n} as const;\n\n/**\n * A button for an action: the moment it is pressed and until the answer\n * comes, it shows a spinner and its working label, and cannot run twice.\n */\nexport function ActionButton({\n isPending,\n pendingLabel,\n variant = 'secondary',\n children,\n className = '',\n disabled,\n ...button\n}: ButtonHTMLAttributes<HTMLButtonElement> & { isPending: boolean; pendingLabel: string; variant?: keyof typeof VARIANTS; children: ReactNode }) {\n return (\n <button\n {...button}\n disabled={disabled === true || isPending}\n aria-busy={isPending}\n className={`inline-flex h-9 items-center gap-2 rounded-md px-4 disabled:cursor-not-allowed disabled:opacity-70 ${VARIANTS[variant]} ${className}`}\n >\n {isPending ? (\n <>\n <span aria-hidden=\"true\" className=\"size-3.5 animate-spin rounded-full border-2 border-current border-t-transparent\" />\n {pendingLabel}\n </>\n ) : (\n children\n )}\n </button>\n );\n}\n","/**\n * Bridge's items as its pages show them (docs/design/bridge, section 6):\n * each job's label, and what came of an item and where, in words. Pure view\n * logic, no React and no API client.\n */\nimport type { inferRouterOutputs } from '@trpc/server';\n\nimport type { GatewayRouter } from '../../../../src/adapters/trpc/router.js';\n\n/** Bridge home as the API answers it: what waits with its count, and the stay-aware feed. */\nexport type BridgeHome = inferRouterOutputs<GatewayRouter>['people']['home'];\n\n/** An item on Bridge home: by its title, with its job, new or seen. */\nexport type HomeItem = BridgeHome['waiting']['items'][number];\n\n/** A page of the person ship's record, as the API answers it. */\nexport type RecordPage = inferRouterOutputs<GatewayRouter>['people']['record'];\n\n/** An item of the record, with its state and its outcome once kept. */\nexport type RecordItem = RecordPage['items'][number];\n\ntype Job = RecordItem['job'];\ntype Outcome = NonNullable<RecordItem['outcome']>;\n\nconst JOB_LABELS: Record<Job, string> = {\n decide: 'Decide',\n do: 'Do',\n 'stay-aware': 'Stay aware',\n 'everything-else': 'Message',\n};\n\nconst PLACES: Record<Outcome['place'], string> = {\n bridge: 'in Bridge',\n chat: 'in a chat',\n slack: 'in Slack',\n gateway: 'by the gateway',\n};\n\nconst KINDS: Record<Outcome['kind'], string> = {\n seen: 'Seen',\n answered: 'Answered',\n done: 'Done',\n cannot: 'Marked cannot',\n withdrawn: 'Withdrawn by its asker, seen',\n replaced: 'Replaced by its asker, seen',\n notSent: 'Not sent, removed',\n};\n\nexport function jobLabelOf(job: Job): string {\n return JOB_LABELS[job];\n}\n\n/** What came of an item and where, such as Answered in Slack: option 2; Done alone when no outcome was kept. */\nexport function outcomeTextOf(item: Pick<RecordItem, 'state' | 'outcome'>): string {\n switch (item.state) {\n case 'new':\n return 'New';\n case 'seen':\n return 'Seen, not done yet';\n case 'done': {\n const { outcome } = item;\n if (outcome === null) {\n return 'Done';\n }\n const said = `${KINDS[outcome.kind]} ${PLACES[outcome.place]}`;\n return outcome.option === null ? said : `${said}: option ${String(outcome.option)}`;\n }\n }\n}\n","import type { ReactNode } from 'react';\n\nimport { jobLabelOf, type HomeItem } from '../services/items';\nimport { Notice } from './notice';\n\n/** When an item was sent, in UTC, to the minute. */\nfunction sentAtOf(sentAt: string): string {\n return `${new Date(sentAt).toISOString().slice(0, 16).replace('T', ' ')} UTC`;\n}\n\n/**\n * One item in a Bridge list: a dot while new, its title, its job and who\n * sent it, when, what came of it once said, and its action; faded when stale. The row and its\n * title shrink to a phone's width (aeolus-fleet#1238).\n */\nexport function ItemRow({\n item,\n isNew,\n isStale = false,\n outcome,\n failure,\n children,\n}: {\n item: Pick<HomeItem, 'deliveryId' | 'from' | 'title' | 'sentAt' | 'job'>;\n isNew: boolean;\n /** Whether it is a question its asker withdrew or replaced: shown faded, outside the count. */\n isStale?: boolean;\n outcome: string | undefined;\n failure: string | undefined;\n children: ReactNode;\n}) {\n return (\n <li data-testid=\"bridge-item\" data-stale={isStale} className={`grid min-w-0 gap-2 rounded-md border border-border bg-card p-3 ${isStale ? 'opacity-60' : ''}`}>\n <div className=\"flex min-w-0 items-center gap-3\">\n <span className=\"flex min-w-0 flex-1 flex-col text-left\">\n <span className=\"flex min-w-0 items-center gap-2\">\n {isNew ? <span aria-label=\"New\" className=\"size-2 shrink-0 rounded-full bg-primary\" /> : null}\n <span className=\"truncate font-medium\">{item.title}</span>\n </span>\n <span className=\"text-caption text-muted-foreground\">\n {jobLabelOf(item.job)} · {item.from} · <time dateTime={item.sentAt}>{sentAtOf(item.sentAt)}</time>\n </span>\n {outcome === undefined ? null : <span data-testid=\"bridge-outcome\" className=\"text-caption\">{outcome}</span>}\n </span>\n {children}\n </div>\n {failure === undefined ? null : <Notice message={failure} isFailure />}\n </li>\n );\n}\n","/** What an action came to, said in place: a success as a status, a failure as an alert by the control. */\nexport function Notice({ message, isFailure }: { message: string; isFailure: boolean }) {\n return isFailure ? (\n <p role=\"alert\" data-testid=\"bridge-failure\" className=\"rounded-md border border-tone-attention-border bg-tone-attention-bg px-3 py-2 text-tone-attention-fg\">\n {message}\n </p>\n ) : (\n <p role=\"status\" data-testid=\"bridge-success\" className=\"rounded-md border border-tone-ok-border bg-tone-ok-bg px-3 py-2 text-tone-ok-fg\">\n {message}\n </p>\n );\n}\n"],"names":["BRIDGE_PATH","BRIDGE_BASKET_PATH","BRIDGE_DONE_PATH","BRIDGE_SETTINGS_PATH","BRIDGE_ROUTING_PATH","FOCUS_PATH","useFocusReport","fleetId","focus","report","isInFocus","document","visibilityState","hasFocus","undefined","EventSource","encodeURIComponent","close","window","addEventListener","removeEventListener","VARIANTS","primary","secondary","ActionButton","isPending","pendingLabel","variant","children","className","disabled","button","JOB_LABELS","decide","do","PLACES","bridge","chat","slack","gateway","KINDS","seen","answered","done","cannot","withdrawn","replaced","notSent","jobLabelOf","job","outcomeTextOf","item","state","outcome","said","kind","place","option","String","Notice","message","isFailure","role"],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- (()=>{"use strict";module.exports=[3656,a=>{var b=a.i(72131),c=a.i(50944);a.s(["LiveRefresh",0,function({fleetId:a}){let d;return d=(0,c.useRouter)(),(0,b.useEffect)(()=>{let b=new EventSource(`/bridge/changes?fleet=${encodeURIComponent(a)}`);return b.onmessage=()=>{d.refresh()},()=>{b.close()}},[a,d]),(0,b.useEffect)(()=>{let b,c=()=>{let c="visible"===document.visibilityState&&document.hasFocus();c&&void 0===b?b=new EventSource(`/bridge/focus?fleet=${encodeURIComponent(a)}`):c||void 0===b||(b.close(),b=void 0)};return c(),window.addEventListener("focus",c),window.addEventListener("blur",c),document.addEventListener("visibilitychange",c),()=>{window.removeEventListener("focus",c),window.removeEventListener("blur",c),document.removeEventListener("visibilitychange",c),b?.close()}},[a]),null}],3656)},32043,a=>{var b=a.i(87924);let c={primary:"bg-primary text-primary-foreground hover:bg-primary-hover",secondary:"border border-border bg-card text-card-foreground hover:bg-accent"};a.s(["f",0,function({isPending:a,pendingLabel:d,variant:e="secondary",children:f,className:g="",disabled:h,...i}){return(0,b.jsx)("button",{...i,disabled:!0===h||a,"aria-busy":a,className:`inline-flex h-9 items-center gap-2 rounded-md px-4 disabled:cursor-not-allowed disabled:opacity-70 ${c[e]} ${g}`,children:a?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{"aria-hidden":"true",className:"size-3.5 animate-spin rounded-full border-2 border-current border-t-transparent"}),d]}):f})}])},10039,a=>{var b=a.i(87924);a.s(["f",0,function({message:a,isFailure:c}){return c?(0,b.jsx)("p",{role:"alert","data-testid":"bridge-failure",className:"rounded-md border border-tone-attention-border bg-tone-attention-bg px-3 py-2 text-tone-attention-fg",children:a}):(0,b.jsx)("p",{role:"status","data-testid":"bridge-success",className:"rounded-md border border-tone-ok-border bg-tone-ok-bg px-3 py-2 text-tone-ok-fg",children:a})}])}]})();
2
-
3
- //# sourceMappingURL=web_features_bridge_11jndonu4o8fq._.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../web/features/bridge/hooks/use-focus-report.ts","../../../../../web/features/bridge/hooks/use-live-refresh.ts","../../../../../web/features/bridge/state/live-refresh.tsx","../../../../../web/features/bridge/ui/action-button.tsx","../../../../../web/features/bridge/ui/notice.tsx"],"sourcesContent":["'use client';\n\nimport { useEffect } from 'react';\n\n/** The stream the page holds while in focus, which the web app's server follows on the gateway's API for the browser. */\nexport const FOCUS_PATH = '/bridge/focus';\n\n/**\n * Tells the gateway while the page is in focus (wake a person, W6): it holds\n * the focus stream open while the window has focus and the page shows, and\n * closes it when either ends. While a page of the person is in focus, what\n * arrives is shown there and no wake goes out; an open page not in focus\n * changes nothing. A lost connection no longer counts as in focus.\n */\nexport function useFocusReport(fleetId: string): void {\n useEffect(() => {\n let focus: EventSource | undefined;\n const report = () => {\n const isInFocus = document.visibilityState === 'visible' && document.hasFocus();\n if (isInFocus && focus === undefined) {\n focus = new EventSource(`${FOCUS_PATH}?fleet=${encodeURIComponent(fleetId)}`);\n } else if (!isInFocus && focus !== undefined) {\n focus.close();\n focus = undefined;\n }\n };\n report();\n window.addEventListener('focus', report);\n window.addEventListener('blur', report);\n document.addEventListener('visibilitychange', report);\n return () => {\n window.removeEventListener('focus', report);\n window.removeEventListener('blur', report);\n document.removeEventListener('visibilitychange', report);\n focus?.close();\n };\n }, [fleetId]);\n}\n","'use client';\n\nimport { useRouter } from 'next/navigation';\nimport { useEffect } from 'react';\n\n/** The page's live updates, which the web app's server follows on the gateway's API for the browser. */\nexport const CHANGES_PATH = '/bridge/changes';\n\n/**\n * Keeps the page in step with its fleet's requests: whenever one changes,\n * the page reads itself again on the server, as its own caller. The browser\n * opens the stream again by itself when it drops.\n */\nexport function useLiveRefresh(fleetId: string): void {\n const router = useRouter();\n useEffect(() => {\n const changes = new EventSource(`${CHANGES_PATH}?fleet=${encodeURIComponent(fleetId)}`);\n changes.onmessage = () => {\n router.refresh();\n };\n return () => {\n changes.close();\n };\n }, [fleetId, router]);\n}\n","'use client';\n\nimport { useFocusReport } from '../hooks/use-focus-report';\nimport { useLiveRefresh } from '../hooks/use-live-refresh';\n\n/** Keeps the page it sits in live, and tells the gateway while it is in focus (wake a person, W6): it shows nothing itself. */\nexport function LiveRefresh({ fleetId }: { fleetId: string }) {\n useLiveRefresh(fleetId);\n useFocusReport(fleetId);\n return null;\n}\n","import type { ButtonHTMLAttributes, ReactNode } from 'react';\n\nconst VARIANTS = {\n primary: 'bg-primary text-primary-foreground hover:bg-primary-hover',\n secondary: 'border border-border bg-card text-card-foreground hover:bg-accent',\n} as const;\n\n/**\n * A button for an action: the moment it is pressed and until the answer\n * comes, it shows a spinner and its working label, and cannot run twice.\n */\nexport function ActionButton({\n isPending,\n pendingLabel,\n variant = 'secondary',\n children,\n className = '',\n disabled,\n ...button\n}: ButtonHTMLAttributes<HTMLButtonElement> & { isPending: boolean; pendingLabel: string; variant?: keyof typeof VARIANTS; children: ReactNode }) {\n return (\n <button\n {...button}\n disabled={disabled === true || isPending}\n aria-busy={isPending}\n className={`inline-flex h-9 items-center gap-2 rounded-md px-4 disabled:cursor-not-allowed disabled:opacity-70 ${VARIANTS[variant]} ${className}`}\n >\n {isPending ? (\n <>\n <span aria-hidden=\"true\" className=\"size-3.5 animate-spin rounded-full border-2 border-current border-t-transparent\" />\n {pendingLabel}\n </>\n ) : (\n children\n )}\n </button>\n );\n}\n","/** What an action came to, said in place: a success as a status, a failure as an alert by the control. */\nexport function Notice({ message, isFailure }: { message: string; isFailure: boolean }) {\n return isFailure ? (\n <p role=\"alert\" data-testid=\"bridge-failure\" className=\"rounded-md border border-tone-attention-border bg-tone-attention-bg px-3 py-2 text-tone-attention-fg\">\n {message}\n </p>\n ) : (\n <p role=\"status\" data-testid=\"bridge-success\" className=\"rounded-md border border-tone-ok-border bg-tone-ok-bg px-3 py-2 text-tone-ok-fg\">\n {message}\n </p>\n );\n}\n"],"names":["FOCUS_PATH","useFocusReport","fleetId","focus","report","isInFocus","document","visibilityState","hasFocus","undefined","EventSource","encodeURIComponent","close","window","addEventListener","removeEventListener","VARIANTS","primary","secondary","ActionButton","isPending","pendingLabel","variant","children","className","disabled","button","Notice","message","isFailure","role"],"mappings":"4CAEA,IAAA,EAAA,EAAA,CAAA,CAAA,OCAA,EAAA,EAAA,CAAA,CAAA,4BCIO,SAAS,AAAY,SAAE,CAAO,CAAuB,QAG1D,ODKM,EAAS,CAAA,EAAA,EAAA,SAAA,AAAS,IACxB,CAAA,EAAA,EAAA,SAAA,AAAS,EAAC,KACR,IAAM,EAAU,IAAI,YAAY,GAAG,aAAa,OAAO,EAAE,mBAAmB,ACT/D,IDSyE,EAItF,OAHA,EAAQ,SAAS,CAAG,KAClB,EAAO,OAAO,EAChB,EACO,KACL,EAAQ,KAAK,EACf,CACFO,EAAG,GAAU,EAAO,EDRpB,CAAA,EAAA,EAAA,SAAS,AAAT,EAAU,KAER,IADIJ,EACEC,EAAS,KACb,IAAMC,EAAyC,YAA7BC,SAASC,eAAe,EAAkBD,SAASE,QAAQ,EACzEH,SAAuBI,IAAVN,EACfA,EAAQ,GAD4B,CACxBO,YAAY,GAAGV,WAAW,OAAO,EAAEW,mBAAmBT,IAAU,EAClEG,QAAuBI,IAAVN,IACvBA,EAAMS,CADsC,IACjC,GACXT,OAAQM,EAEZ,EAKA,OAJAL,IACAS,OAAOC,gBAAgB,CAAC,QAASV,GACjCS,OAAOC,gBAAgB,CAAC,OAAQV,GAChCE,SAASQ,gBAAgB,CAAC,mBAAoBV,GACvC,KACLS,OAAOE,mBAAmB,CAAC,QAASX,GACpCS,OAAOE,mBAAmB,CAAC,OAAQX,GACnCE,SAASS,mBAAmB,CAAC,mBAAoBX,GACjDD,GAAOS,OACT,CACF,EAAG,CE5BY,EF4BH,EE3BL,IACT,qCCRA,IAAMI,EAAW,CACfC,QAAS,4DACTC,UAAW,mEACb,aAMO,SAASC,AAAa,CAC3BC,WAAS,cACTC,CAAY,SACZC,EAAU,WAAW,UACrBC,CAAQ,WACRC,EAAY,EAAE,UACdC,CAAQ,CACR,GAAGC,EAC0I,EAC7I,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,SAAA,CACE,GAAGA,CAAM,CACVD,UAAuB,IAAbA,GAAqBL,EAC/B,YAAWA,EACXI,UAAW,CAAC,mGAAmG,EAAER,CAAQ,CAACM,EAAQ,CAAC,CAAC,EAAEE,EAAAA,CAAW,UAEhJJ,EACC,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,QAAA,CAAA,WACE,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,cAAY,OAAOI,UAAU,oFAClCH,KAGHE,GAIR,eCrCwG,IAAA,EAAA,EAAA,CAAA,CAAA,kBACjG,SAASI,AAAO,SAAEC,CAAO,WAAEC,CAAS,CAA2C,EACpF,OAAOA,EACL,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAEC,KAAK,QAAQ,cAAY,iBAAiBN,UAAU,gHACpDI,IAGH,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAEE,KAAK,SAAS,cAAY,iBAAiBN,UAAU,2FACrDI,GAGP"}
@@ -1,3 +0,0 @@
1
- (()=>{"use strict";module.exports=[87952,a=>{var b=a.i(87924),c=a.i(72131),d=a.i(5050);let e=(0,d.createServerReference)("40d55047d0fa263dfb22afcf17c36e422f88773b7f",d.callServer,void 0,d.findSourceMapURL,"turnRoute"),f=["slack","chat","web-push","email"],g={decide:{name:"Decide",holds:"Questions from your ships",item:"question",items:"questions"},do:{name:"Do what only you can",holds:"Steps: sign in, create, approve",item:"step",items:"steps"},"stay-aware":{name:"Stay aware",holds:"Alerts and notices",item:"alert or notice",items:"alerts and notices"},"everything-else":{name:"Everything else",holds:"Replies and other messages",item:"message",items:"messages"}},h={slack:"Slack",chat:"A chat","web-push":"Web push",email:"Email"},i="Bridge keeps every item.";var j=a.i(10039);a.s(["RoutingPanel",0,function({fleetId:a,routing:d,isSlackLinked:k}){let[l,m]=(0,c.useTransition)(),[n,o]=(0,c.useState)(),[p,q]=(0,c.useState)();return(0,b.jsxs)("section",{className:"grid gap-2","aria-labelledby":"bridge-routing-heading",children:[(0,b.jsx)("h2",{id:"bridge-routing-heading",className:"text-section font-semibold",children:"Per job"}),(0,b.jsx)("div",{className:"overflow-x-auto rounded-md border border-border bg-card",children:(0,b.jsxs)("table",{className:"w-full text-left",children:[(0,b.jsx)("thead",{children:(0,b.jsxs)("tr",{className:"border-b border-border text-caption text-muted-foreground",children:[(0,b.jsx)("th",{scope:"col",className:"p-3 font-medium",children:"Job"}),(0,b.jsx)("th",{scope:"col",className:"p-3 font-medium",children:"Bridge"}),f.map(a=>(0,b.jsx)("th",{scope:"col",className:"p-3 font-medium",children:h[a]},a))]})}),(0,b.jsx)("tbody",{children:d.jobs.map(({job:c,places:j})=>(0,b.jsxs)("tr",{"data-testid":"bridge-routing-job",className:"border-b border-border last:border-b-0",children:[(0,b.jsx)("th",{scope:"row",className:"p-3 font-normal",children:(0,b.jsxs)("span",{className:"flex flex-col",children:[(0,b.jsx)("span",{children:g[c].name}),(0,b.jsx)("span",{className:"text-caption text-muted-foreground",children:g[c].holds})]})}),(0,b.jsx)("td",{className:"p-3 text-caption text-muted-foreground",children:"Always"}),f.map(f=>{let p=j[f],r=`${c}-${f}`;return(0,b.jsx)("td",{className:"p-3",children:(0,b.jsx)("button",{type:"button","data-testid":`bridge-routing-${r}`,"aria-pressed":p,"aria-label":`${h[f]} for ${g[c].name}`,"aria-busy":l&&n===r,disabled:l||!p&&(!d.offered[f]||"slack"===f&&!k),onClick:()=>{var b;b={job:c,place:f,isOn:!p},q(void 0),o(`${b.job}-${b.place}`),m(async()=>{let c=await e({fleet:a,...b});q(c.isOk?{message:function({job:a,place:b,isOn:c}){let{name:d,item:e,items:f}=g[a],j=`${h[b]} is ${c?"on":"off"} for ${d}`;return c?"chat"===b?`${j}: it lists every ${e} not done when you ask it.`:`${j}: it shows ${f} that arrive from now on. Those already waiting stay in Bridge.`:"everything-else"===a&&"slack"===b?`${j}: only a bot ship's messages and replies to Slack show there. ${i}`:`${j}. ${i}`}(b),isFailure:!1}:{message:c.message,isFailure:!0})})},className:`inline-flex h-7 min-w-12 items-center justify-center rounded-full px-3 text-caption disabled:cursor-not-allowed disabled:opacity-50 ${p?"bg-primary text-primary-foreground":"border border-border bg-card text-muted-foreground hover:bg-accent"}`,children:p?"On":"Off"})},f)})]},c))})]})}),void 0===p?null:(0,b.jsx)(j.f,{message:p.message,isFailure:p.isFailure}),(0,b.jsx)("p",{className:"text-caption text-muted-foreground",children:"While a Bridge page is open in focus, web push and email do not wake you. Slack still posts: you turned it on, and Bridge keeps every item."})]})}],87952)},15970,a=>{var b=a.i(87924),c=a.i(72131),d=a.i(5050);let e=(0,d.createServerReference)("4068e0a012962959eed53cdc1898b8acfd21d81a71",d.callServer,void 0,d.findSourceMapURL,"unlinkSlack");var f=a.i(32043),g=a.i(10039);a.s(["SlackLinkPanel",0,function({fleetId:a,slackLink:d}){let[h,i]=(0,c.useTransition)(),[j,k]=(0,c.useState)(),{workspaceName:l,link:m}=d;return(0,b.jsxs)("section",{className:"grid gap-2","aria-labelledby":"bridge-slack-heading",children:[(0,b.jsx)("h2",{id:"bridge-slack-heading",className:"text-section font-semibold",children:"Slack"}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3 rounded-md border border-border bg-card p-3",children:[(0,b.jsx)("span",{"data-testid":"bridge-slack-state",className:"min-w-0 flex-1",children:null===m?`Not linked in ${l}`:`Slack linked as @${m.slackName} in ${l}`}),null===m?(0,b.jsx)("a",{href:`/slack/link?${new URLSearchParams({fleet:a}).toString()}`,"data-testid":"bridge-slack-link",className:"inline-flex h-9 items-center rounded-md bg-primary px-4 text-primary-foreground hover:bg-primary-hover",children:"Link Slack"}):(0,b.jsx)(f.f,{"data-testid":"bridge-slack-unlink",isPending:h,pendingLabel:"Unlinking...",onClick:()=>{k(void 0),i(async()=>{let b=await e(a);b.isOk||k(b.message)})},children:"Unlink"})]}),void 0===j?null:(0,b.jsx)(g.f,{message:j,isFailure:!0})]})}],15970)},62887,a=>{var b=a.i(87924),c=a.i(72131),d=a.i(5050);let e=(0,d.createServerReference)("601545266cbcd00188699907a363d2d01cacdd7590",d.callServer,void 0,d.findSourceMapURL,"turnOffWebPush"),f=(0,d.createServerReference)("606869fb42c6cf9c02d918ac32cc0df0df992ce8e8",d.callServer,void 0,d.findSourceMapURL,"turnOnWebPush"),g=[[/Edg\//,"Edge"],[/Firefox\//,"Firefox"],[/Chrome\//,"Chrome"],[/Safari\//,"Safari"]],h=[[/iPhone|iPad/,"iOS"],[/Android/,"Android"],[/Mac OS X/,"macOS"],[/Windows/,"Windows"],[/Linux/,"Linux"]],i=(a,b)=>b.find(([b])=>b.test(a))?.[1];var j=a.i(32043),k=a.i(10039);let l="/wake-worker.js";async function m(){let a=await navigator.serviceWorker.getRegistration(l);return await a?.pushManager.getSubscription()??null}async function n(a){let b;if(await Notification.requestPermission()!=="granted")return{isOk:!1,message:"Your browser did not allow notifications from this site: allow them, then turn web push on again"};let c=await navigator.serviceWorker.register(l);return await navigator.serviceWorker.ready,{isOk:!0,value:await c.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:(b=atob(a.replaceAll("-","+").replaceAll("_","/")),Uint8Array.from(b,a=>a.charCodeAt(0)))})}}a.s(["WebPushPanel",0,function({fleetId:a,webPushKey:d,browsers:l}){let[o,p]=(0,c.useState)(!0),[q,r]=(0,c.useState)(),[s,t]=(0,c.useState)(),[u,v]=(0,c.useState)(),[,w]=(0,c.useTransition)();(0,c.useEffect)(()=>{"serviceWorker"in navigator&&"PushManager"in window&&"Notification"in window?m().then(a=>{r(a?.endpoint)}):p(!1)},[]);let x=void 0!==q&&l.some(({endpoint:a,isGone:b})=>a===q&&!b);return(0,b.jsxs)("div",{className:"grid gap-2","data-testid":"bridge-wake-web-push",children:[l.map(({endpoint:c,browser:d,addedAt:f,isGone:g})=>(0,b.jsxs)("div",{className:"flex items-center gap-3 rounded-md border border-border bg-card p-3",children:[(0,b.jsxs)("span",{className:"flex min-w-0 flex-1 flex-col",children:[(0,b.jsxs)("span",{className:"truncate",children:["Web push in ",d,c===q?" · this browser":""]}),(0,b.jsx)("span",{className:"text-caption text-muted-foreground",children:g?"No longer takes wakes: its push service ended them. Turn web push on again in that browser, or remove it.":`On since ${new Date(f).toLocaleDateString()}: it tells you when something waits in this fleet, with a link here. Never what waits.`})]}),(0,b.jsx)(j.f,{"data-testid":"bridge-web-push-remove",isPending:s===c,pendingLabel:"Removing...",disabled:void 0!==s,onClick:()=>{t(c),v(void 0),w(async()=>{c===q&&(await (await m())?.unsubscribe(),r(void 0));let b=await e(a,c);t(void 0),b.isOk||v(b.message)})},children:"Remove"})]},c)),o?x?null:(0,b.jsx)("div",{children:(0,b.jsx)(j.f,{"data-testid":"bridge-web-push-on",variant:"primary",isPending:"on"===s,pendingLabel:"Turning on...",disabled:void 0!==s,onClick:()=>{t("on"),v(void 0),w(async()=>{try{var b;let c,e,j=await n(d);if(!j.isOk)return void v(j.message);let k=function(a,b){let{endpoint:c,keys:d}=a,e=d?.p256dh,f=d?.auth;return void 0===c||void 0===e||void 0===f?void 0:{endpoint:c,keys:{p256dh:e,auth:f},browser:b}}(j.value.toJSON(),(b=navigator.userAgent,c=i(b,g),e=i(b,h),void 0===c?"A browser":void 0===e?c:`${c} on ${e}`));if(void 0===k)return void v("Your browser gave no push subscription: try again");let l=await f(a,k);l.isOk?r(k.endpoint):v(l.message)}catch{v("Your browser could not turn web push on: try again")}finally{t(void 0)}})},children:"Turn on web push in this browser"})}):(0,b.jsx)("p",{className:"text-caption text-muted-foreground",children:"This browser takes no web push."}),void 0===u?null:(0,b.jsx)(k.f,{message:u,isFailure:!0})]})}],62887)}]})();
2
-
3
- //# sourceMappingURL=web_features_bridge_state_0354e3wb0dzx1._.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../web/features/bridge/state/routing-panel.tsx","../../../../../web/features/bridge/hooks/data%3A50db25%20%3Ctext/javascript%3E","../../../../../web/features/bridge/services/routing.ts","../../../../../web/features/bridge/state/slack-link-panel.tsx","../../../../../web/features/bridge/hooks/data%3Ab85c88%20%3Ctext/javascript%3E","../../../../../web/features/bridge/hooks/slack-link-path.ts","../../../../../web/features/bridge/state/web-push-panel.tsx","../../../../../web/features/bridge/hooks/data%3A2e8654%20%3Ctext/javascript%3E","../../../../../web/features/bridge/hooks/data%3A60870e%20%3Ctext/javascript%3E","../../../../../web/features/bridge/services/web-push.ts"],"sourcesContent":["'use client';\n\nimport { useState, useTransition } from 'react';\n\nimport { turnRoute } from '../hooks/bridge-actions';\nimport { JOB_NAMES, PLACE_NAMES, ROUTED_PLACES, turnedMessageOf, type RoutedJob, type RoutedPlace, type RoutingView } from '../services/routing';\nimport { Notice } from '../ui/notice';\n\n/** What a change came to, said by the grid. */\ninterface Said {\n readonly message: string;\n readonly isFailure: boolean;\n}\n\n/**\n * Routing per job (Bridge, section 8; the routing mockup): per job, the\n * places that show it besides Bridge, which always does. A switch turns a\n * place on or off at once; what it then shows is said beside the grid\n * (CC20). A place the gateway does not offer, or Slack before it is linked,\n * cannot be turned on; one on can always be turned off.\n */\nexport function RoutingPanel({ fleetId, routing, isSlackLinked }: { fleetId: string; routing: RoutingView; isSlackLinked: boolean }) {\n const [isTurning, startTransition] = useTransition();\n const [turning, setTurning] = useState<string | undefined>();\n const [said, setSaid] = useState<Said | undefined>();\n const isUsable = (place: RoutedPlace): boolean => routing.offered[place] && (place !== 'slack' || isSlackLinked);\n\n const turn = (change: { job: RoutedJob; place: RoutedPlace; isOn: boolean }) => {\n setSaid(undefined);\n setTurning(`${change.job}-${change.place}`);\n startTransition(async () => {\n const outcome = await turnRoute({ fleet: fleetId, ...change });\n setSaid(outcome.isOk ? { message: turnedMessageOf(change), isFailure: false } : { message: outcome.message, isFailure: true });\n });\n };\n\n return (\n <section className=\"grid gap-2\" aria-labelledby=\"bridge-routing-heading\">\n <h2 id=\"bridge-routing-heading\" className=\"text-section font-semibold\">\n Per job\n </h2>\n <div className=\"overflow-x-auto rounded-md border border-border bg-card\">\n <table className=\"w-full text-left\">\n <thead>\n <tr className=\"border-b border-border text-caption text-muted-foreground\">\n <th scope=\"col\" className=\"p-3 font-medium\">\n Job\n </th>\n <th scope=\"col\" className=\"p-3 font-medium\">\n Bridge\n </th>\n {ROUTED_PLACES.map((place) => (\n <th key={place} scope=\"col\" className=\"p-3 font-medium\">\n {PLACE_NAMES[place]}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {routing.jobs.map(({ job, places }) => (\n <tr key={job} data-testid=\"bridge-routing-job\" className=\"border-b border-border last:border-b-0\">\n <th scope=\"row\" className=\"p-3 font-normal\">\n <span className=\"flex flex-col\">\n <span>{JOB_NAMES[job].name}</span>\n <span className=\"text-caption text-muted-foreground\">{JOB_NAMES[job].holds}</span>\n </span>\n </th>\n <td className=\"p-3 text-caption text-muted-foreground\">Always</td>\n {ROUTED_PLACES.map((place) => {\n const isOn = places[place];\n const key = `${job}-${place}`;\n return (\n <td key={place} className=\"p-3\">\n <button\n type=\"button\"\n data-testid={`bridge-routing-${key}`}\n aria-pressed={isOn}\n aria-label={`${PLACE_NAMES[place]} for ${JOB_NAMES[job].name}`}\n aria-busy={isTurning && turning === key}\n disabled={isTurning || (!isOn && !isUsable(place))}\n onClick={() => {\n turn({ job, place, isOn: !isOn });\n }}\n className={`inline-flex h-7 min-w-12 items-center justify-center rounded-full px-3 text-caption disabled:cursor-not-allowed disabled:opacity-50 ${isOn ? 'bg-primary text-primary-foreground' : 'border border-border bg-card text-muted-foreground hover:bg-accent'}`}\n >\n {isOn ? 'On' : 'Off'}\n </button>\n </td>\n );\n })}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n {said === undefined ? null : <Notice message={said.message} isFailure={said.isFailure} />}\n <p className=\"text-caption text-muted-foreground\">While a Bridge page is open in focus, web push and email do not wake you. Slack still posts: you turned it on, and Bridge keeps every item.</p>\n </section>\n );\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"40d55047d0fa263dfb22afcf17c36e422f88773b7f\":{\"name\":\"turnRoute\"}},\"web/features/bridge/hooks/bridge-actions.ts\",\"\"] */\"use turbopack: no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_7=/*#__PURE__*/createServerReference(\"40d55047d0fa263dfb22afcf17c36e422f88773b7f\",callServer,void 0,findSourceMapURL,\"turnRoute\");export{$$RSC_SERVER_ACTION_7 as turnRoute};","/**\n * Routing per job as Bridge's routing page shows it (Bridge, section 8):\n * the jobs and places by the names the person reads, and what a change\n * says it does (CC20).\n */\nimport type { inferRouterOutputs } from '@trpc/server';\n\nimport type { GatewayRouter } from '../../../../src/adapters/trpc/router.js';\n\n/** Where each job shows besides Bridge, per place, as the API answers it. */\nexport type RoutingView = inferRouterOutputs<GatewayRouter>['people']['routing'];\nexport type RoutedJob = RoutingView['jobs'][number]['job'];\nexport type RoutedPlace = keyof RoutingView['offered'];\n\nexport const ROUTED_PLACES: readonly RoutedPlace[] = ['slack', 'chat', 'web-push', 'email'];\n\nexport const JOB_NAMES: Readonly<Record<RoutedJob, { readonly name: string; readonly holds: string; readonly item: string; readonly items: string }>> = {\n decide: { name: 'Decide', holds: 'Questions from your ships', item: 'question', items: 'questions' },\n do: { name: 'Do what only you can', holds: 'Steps: sign in, create, approve', item: 'step', items: 'steps' },\n 'stay-aware': { name: 'Stay aware', holds: 'Alerts and notices', item: 'alert or notice', items: 'alerts and notices' },\n 'everything-else': { name: 'Everything else', holds: 'Replies and other messages', item: 'message', items: 'messages' },\n};\n\nexport const PLACE_NAMES: Readonly<Record<RoutedPlace, string>> = { slack: 'Slack', chat: 'A chat', 'web-push': 'Web push', email: 'Email' };\n\nconst KEEPS_EVERY_ITEM = 'Bridge keeps every item.';\n\n/** What turning a place on or off for a job does: a chat lists what is not done, a place that pushes only what arrives after. */\nexport function turnedMessageOf({ job, place, isOn }: { job: RoutedJob; place: RoutedPlace; isOn: boolean }): string {\n const { name, item, items } = JOB_NAMES[job];\n const turned = `${PLACE_NAMES[place]} is ${isOn ? 'on' : 'off'} for ${name}`;\n if (!isOn) {\n return job === 'everything-else' && place === 'slack' ? `${turned}: only a bot ship's messages and replies to Slack show there. ${KEEPS_EVERY_ITEM}` : `${turned}. ${KEEPS_EVERY_ITEM}`;\n }\n if (place === 'chat') {\n return `${turned}: it lists every ${item} not done when you ask it.`;\n }\n return `${turned}: it shows ${items} that arrive from now on. Those already waiting stay in Bridge.`;\n}\n","'use client';\n\nimport { useState, useTransition } from 'react';\n\nimport { unlinkSlack } from '../hooks/bridge-actions';\nimport type { SlackLink } from '../hooks/read-bridge';\nimport { SLACK_LINK_PATH } from '../hooks/slack-link-path';\nimport { ActionButton } from '../ui/action-button';\nimport { Notice } from '../ui/notice';\n\n/**\n * The person's Slack link (gateway scopes 9.3, 9.6): \"Slack linked as\n * @mathilde in Acme\" with Unlink, or Link Slack, which signs in with Slack.\n * Linked, the person talks to the fleet's bots in Slack; what else shows\n * there is routed per job, beside it (Bridge, section 8).\n */\nexport function SlackLinkPanel({ fleetId, slackLink }: { fleetId: string; slackLink: SlackLink }) {\n const [isUnlinking, startTransition] = useTransition();\n const [failure, setFailure] = useState<string | undefined>();\n const { workspaceName, link } = slackLink;\n\n const unlink = () => {\n setFailure(undefined);\n startTransition(async () => {\n const outcome = await unlinkSlack(fleetId);\n if (!outcome.isOk) {\n setFailure(outcome.message);\n }\n });\n };\n\n return (\n <section className=\"grid gap-2\" aria-labelledby=\"bridge-slack-heading\">\n <h2 id=\"bridge-slack-heading\" className=\"text-section font-semibold\">\n Slack\n </h2>\n <div className=\"flex flex-wrap items-center gap-3 rounded-md border border-border bg-card p-3\">\n <span data-testid=\"bridge-slack-state\" className=\"min-w-0 flex-1\">\n {link === null ? `Not linked in ${workspaceName}` : `Slack linked as @${link.slackName} in ${workspaceName}`}\n </span>\n {link === null ? (\n <a\n href={`${SLACK_LINK_PATH}?${new URLSearchParams({ fleet: fleetId }).toString()}`}\n data-testid=\"bridge-slack-link\"\n className=\"inline-flex h-9 items-center rounded-md bg-primary px-4 text-primary-foreground hover:bg-primary-hover\"\n >\n Link Slack\n </a>\n ) : (\n <ActionButton data-testid=\"bridge-slack-unlink\" isPending={isUnlinking} pendingLabel=\"Unlinking...\" onClick={unlink}>\n Unlink\n </ActionButton>\n )}\n </div>\n {failure === undefined ? null : <Notice message={failure} isFailure />}\n </section>\n );\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"4068e0a012962959eed53cdc1898b8acfd21d81a71\":{\"name\":\"unlinkSlack\"}},\"web/features/bridge/hooks/bridge-actions.ts\",\"\"] */\"use turbopack: no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_10=/*#__PURE__*/createServerReference(\"4068e0a012962959eed53cdc1898b8acfd21d81a71\",callServer,void 0,findSourceMapURL,\"unlinkSlack\");export{$$RSC_SERVER_ACTION_10 as unlinkSlack};","/** Where Link Slack starts (gateway scopes 9.3): the button in Bridge's settings and the button in a bot's answer in Slack (src/core/slack/take-slack-event.ts). */\nexport const SLACK_LINK_PATH = '/slack/link';\n","'use client';\n\nimport { useEffect, useState, useTransition } from 'react';\n\nimport { turnOffWebPush, turnOnWebPush } from '../hooks/bridge-actions';\nimport type { WakeChannels } from '../services/deliveries';\nimport { applicationServerKeyOf, browserNameOf, subscriptionInputOf } from '../services/web-push';\nimport { ActionButton } from '../ui/action-button';\nimport { Notice } from '../ui/notice';\n\n/** The service worker that shows a wake and opens Bridge when it is pressed. */\nconst WORKER_PATH = '/wake-worker.js';\n\n/** Whether this browser takes web push at all. */\nfunction isPushTaken(): boolean {\n return 'serviceWorker' in navigator && 'PushManager' in window && 'Notification' in window;\n}\n\n/** This browser's own push subscription with the gateway's worker, if it has one. */\nasync function ownSubscription(): Promise<PushSubscription | null> {\n const registration = await navigator.serviceWorker.getRegistration(WORKER_PATH);\n return (await registration?.pushManager.getSubscription()) ?? null;\n}\n\n/** Asks the browser's permission, then subscribes it with the gateway's key: the subscription to send, or why there is none. */\nasync function subscribed(webPushKey: string): Promise<{ readonly isOk: true; readonly value: PushSubscription } | { readonly isOk: false; readonly message: string }> {\n if ((await Notification.requestPermission()) !== 'granted') {\n return { isOk: false, message: 'Your browser did not allow notifications from this site: allow them, then turn web push on again' };\n }\n const registration = await navigator.serviceWorker.register(WORKER_PATH);\n await navigator.serviceWorker.ready;\n return { isOk: true, value: await registration.pushManager.subscribe({ userVisibleOnly: true, applicationServerKey: applicationServerKeyOf(webPushKey) }) };\n}\n\n/**\n * Web push in the section of wakes of Bridge's settings (wake a person, W8): the\n * person turns it on for this browser, which asks the browser's permission\n * first, sees the browsers they turned it on in, and removes one. Nothing is\n * on until they turn it on. A browser whose push service ended its\n * subscription is said to be gone.\n */\nexport function WebPushPanel({ fleetId, webPushKey, browsers }: { fleetId: string; webPushKey: string; browsers: WakeChannels['webPush']['browsers'] }) {\n const [isTaken, setIsTaken] = useState(true);\n const [ownEndpoint, setOwnEndpoint] = useState<string | undefined>();\n const [working, setWorking] = useState<string | undefined>();\n const [failure, setFailure] = useState<string | undefined>();\n const [, startTransition] = useTransition();\n\n useEffect(() => {\n if (!isPushTaken()) {\n setIsTaken(false);\n return;\n }\n void ownSubscription().then((own) => {\n setOwnEndpoint(own?.endpoint);\n });\n }, []);\n\n const turnOn = () => {\n setWorking('on');\n setFailure(undefined);\n startTransition(async () => {\n try {\n const subscription = await subscribed(webPushKey);\n if (!subscription.isOk) {\n setFailure(subscription.message);\n return;\n }\n const input = subscriptionInputOf(subscription.value.toJSON(), browserNameOf(navigator.userAgent));\n if (input === undefined) {\n setFailure('Your browser gave no push subscription: try again');\n return;\n }\n const outcome = await turnOnWebPush(fleetId, input);\n if (outcome.isOk) {\n setOwnEndpoint(input.endpoint);\n } else {\n setFailure(outcome.message);\n }\n } catch {\n setFailure('Your browser could not turn web push on: try again');\n } finally {\n setWorking(undefined);\n }\n });\n };\n\n const remove = (endpoint: string) => {\n setWorking(endpoint);\n setFailure(undefined);\n startTransition(async () => {\n if (endpoint === ownEndpoint) {\n await (await ownSubscription())?.unsubscribe();\n setOwnEndpoint(undefined);\n }\n const outcome = await turnOffWebPush(fleetId, endpoint);\n setWorking(undefined);\n if (!outcome.isOk) {\n setFailure(outcome.message);\n }\n });\n };\n\n const isOwnOn = ownEndpoint !== undefined && browsers.some(({ endpoint, isGone }) => endpoint === ownEndpoint && !isGone);\n return (\n <div className=\"grid gap-2\" data-testid=\"bridge-wake-web-push\">\n {browsers.map(({ endpoint, browser, addedAt, isGone }) => (\n <div key={endpoint} className=\"flex items-center gap-3 rounded-md border border-border bg-card p-3\">\n <span className=\"flex min-w-0 flex-1 flex-col\">\n <span className=\"truncate\">\n Web push in {browser}\n {endpoint === ownEndpoint ? ' · this browser' : ''}\n </span>\n <span className=\"text-caption text-muted-foreground\">\n {isGone ? 'No longer takes wakes: its push service ended them. Turn web push on again in that browser, or remove it.' : `On since ${new Date(addedAt).toLocaleDateString()}: it tells you when something waits in this fleet, with a link here. Never what waits.`}\n </span>\n </span>\n <ActionButton data-testid=\"bridge-web-push-remove\" isPending={working === endpoint} pendingLabel=\"Removing...\" disabled={working !== undefined} onClick={() => { remove(endpoint); }}>\n Remove\n </ActionButton>\n </div>\n ))}\n {!isTaken ? (\n <p className=\"text-caption text-muted-foreground\">This browser takes no web push.</p>\n ) : isOwnOn ? null : (\n <div>\n <ActionButton data-testid=\"bridge-web-push-on\" variant=\"primary\" isPending={working === 'on'} pendingLabel=\"Turning on...\" disabled={working !== undefined} onClick={turnOn}>\n Turn on web push in this browser\n </ActionButton>\n </div>\n )}\n {failure === undefined ? null : <Notice message={failure} isFailure />}\n </div>\n );\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"601545266cbcd00188699907a363d2d01cacdd7590\":{\"name\":\"turnOffWebPush\"}},\"web/features/bridge/hooks/bridge-actions.ts\",\"\"] */\"use turbopack: no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_9=/*#__PURE__*/createServerReference(\"601545266cbcd00188699907a363d2d01cacdd7590\",callServer,void 0,findSourceMapURL,\"turnOffWebPush\");export{$$RSC_SERVER_ACTION_9 as turnOffWebPush};","/* __next_internal_action_entry_do_not_use__ [{\"606869fb42c6cf9c02d918ac32cc0df0df992ce8e8\":{\"name\":\"turnOnWebPush\"}},\"web/features/bridge/hooks/bridge-actions.ts\",\"\"] */\"use turbopack: no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_8=/*#__PURE__*/createServerReference(\"606869fb42c6cf9c02d918ac32cc0df0df992ce8e8\",callServer,void 0,findSourceMapURL,\"turnOnWebPush\");export{$$RSC_SERVER_ACTION_8 as turnOnWebPush};","/**\n * What the section of wakes of Bridge's settings works out in the browser (wake a\n * person, W8): the name a browser it turns web push on in is listed by, the\n * gateway's push key as the browser's push manager takes it, and the\n * subscription the browser sends the gateway.\n */\n\n/** A browser's push subscription as the gateway takes it, with the browser's name. */\nexport interface SubscriptionInput {\n readonly endpoint: string;\n readonly keys: { readonly p256dh: string; readonly auth: string };\n readonly browser: string;\n}\n\n/** The browsers and systems a name is made of, the first that matches counting: Edge and Chrome also say Safari, and Chrome says Chrome. */\nconst BROWSERS: readonly (readonly [RegExp, string])[] = [\n [/Edg\\//, 'Edge'],\n [/Firefox\\//, 'Firefox'],\n [/Chrome\\//, 'Chrome'],\n [/Safari\\//, 'Safari'],\n];\nconst SYSTEMS: readonly (readonly [RegExp, string])[] = [\n [/iPhone|iPad/, 'iOS'],\n [/Android/, 'Android'],\n [/Mac OS X/, 'macOS'],\n [/Windows/, 'Windows'],\n [/Linux/, 'Linux'],\n];\n\nconst firstOf = (userAgent: string, names: readonly (readonly [RegExp, string])[]): string | undefined => names.find(([pattern]) => pattern.test(userAgent))?.[1];\n\n/** The name a browser is listed by, such as Firefox on Linux, from its user agent. */\nexport function browserNameOf(userAgent: string): string {\n const browser = firstOf(userAgent, BROWSERS);\n const system = firstOf(userAgent, SYSTEMS);\n if (browser === undefined) {\n return 'A browser';\n }\n return system === undefined ? browser : `${browser} on ${system}`;\n}\n\n/** The bytes a base64url key stands for, as the browser's push manager takes the gateway's key. */\nexport function applicationServerKeyOf(key: string): Uint8Array<ArrayBuffer> {\n const binary = atob(key.replaceAll('-', '+').replaceAll('_', '/'));\n return Uint8Array.from(binary, (character) => character.charCodeAt(0));\n}\n\n/** The subscription to send, from the push manager's own, or none when it gave no endpoint or keys. */\nexport function subscriptionInputOf(subscription: { endpoint?: string; keys?: Record<string, string> }, browser: string): SubscriptionInput | undefined {\n const { endpoint, keys } = subscription;\n const p256dh = keys?.p256dh;\n const auth = keys?.auth;\n return endpoint === undefined || p256dh === undefined || auth === undefined ? undefined : { endpoint, keys: { p256dh, auth }, browser };\n}\n"],"names":["$$RSC_SERVER_ACTION_7","$$RSC_SERVER_ACTION_10","$$RSC_SERVER_ACTION_9"],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- module.exports=[3656,a=>{"use strict";var b=a.i(72131),c=a.i(50944);a.s(["LiveRefresh",0,function({fleetId:a}){let d;return d=(0,c.useRouter)(),(0,b.useEffect)(()=>{let b=new EventSource(`/bridge/changes?fleet=${encodeURIComponent(a)}`);return b.onmessage=()=>{d.refresh()},()=>{b.close()}},[a,d]),(0,b.useEffect)(()=>{let b,c=()=>{let c="visible"===document.visibilityState&&document.hasFocus();c&&void 0===b?b=new EventSource(`/bridge/focus?fleet=${encodeURIComponent(a)}`):c||void 0===b||(b.close(),b=void 0)};return c(),window.addEventListener("focus",c),window.addEventListener("blur",c),document.addEventListener("visibilitychange",c),()=>{window.removeEventListener("focus",c),window.removeEventListener("blur",c),document.removeEventListener("visibilitychange",c),b?.close()}},[a]),null}],3656)}];
2
-
3
- //# sourceMappingURL=web_features_bridge_state_live-refresh_tsx_1c1xk-oe0kllv._.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../web/features/bridge/hooks/use-focus-report.ts","../../../../../web/features/bridge/hooks/use-live-refresh.ts","../../../../../web/features/bridge/state/live-refresh.tsx"],"sourcesContent":["'use client';\n\nimport { useEffect } from 'react';\n\n/** The stream the page holds while in focus, which the web app's server follows on the gateway's API for the browser. */\nexport const FOCUS_PATH = '/bridge/focus';\n\n/**\n * Tells the gateway while the page is in focus (wake a person, W6): it holds\n * the focus stream open while the window has focus and the page shows, and\n * closes it when either ends. While a page of the person is in focus, what\n * arrives is shown there and no wake goes out; an open page not in focus\n * changes nothing. A lost connection no longer counts as in focus.\n */\nexport function useFocusReport(fleetId: string): void {\n useEffect(() => {\n let focus: EventSource | undefined;\n const report = () => {\n const isInFocus = document.visibilityState === 'visible' && document.hasFocus();\n if (isInFocus && focus === undefined) {\n focus = new EventSource(`${FOCUS_PATH}?fleet=${encodeURIComponent(fleetId)}`);\n } else if (!isInFocus && focus !== undefined) {\n focus.close();\n focus = undefined;\n }\n };\n report();\n window.addEventListener('focus', report);\n window.addEventListener('blur', report);\n document.addEventListener('visibilitychange', report);\n return () => {\n window.removeEventListener('focus', report);\n window.removeEventListener('blur', report);\n document.removeEventListener('visibilitychange', report);\n focus?.close();\n };\n }, [fleetId]);\n}\n","'use client';\n\nimport { useRouter } from 'next/navigation';\nimport { useEffect } from 'react';\n\n/** The page's live updates, which the web app's server follows on the gateway's API for the browser. */\nexport const CHANGES_PATH = '/bridge/changes';\n\n/**\n * Keeps the page in step with its fleet's requests: whenever one changes,\n * the page reads itself again on the server, as its own caller. The browser\n * opens the stream again by itself when it drops.\n */\nexport function useLiveRefresh(fleetId: string): void {\n const router = useRouter();\n useEffect(() => {\n const changes = new EventSource(`${CHANGES_PATH}?fleet=${encodeURIComponent(fleetId)}`);\n changes.onmessage = () => {\n router.refresh();\n };\n return () => {\n changes.close();\n };\n }, [fleetId, router]);\n}\n","'use client';\n\nimport { useFocusReport } from '../hooks/use-focus-report';\nimport { useLiveRefresh } from '../hooks/use-live-refresh';\n\n/** Keeps the page it sits in live, and tells the gateway while it is in focus (wake a person, W6): it shows nothing itself. */\nexport function LiveRefresh({ fleetId }: { fleetId: string }) {\n useLiveRefresh(fleetId);\n useFocusReport(fleetId);\n return null;\n}\n"],"names":["FOCUS_PATH","useFocusReport","fleetId","focus","report","isInFocus","document","visibilityState","hasFocus","undefined","EventSource","encodeURIComponent","close","window","addEventListener","removeEventListener"],"mappings":"sCAEA,IAAA,EAAA,EAAA,CAAA,CAAA,OCAA,EAAA,EAAA,CAAA,CAAA,4BCIO,SAAS,AAAY,SAAE,CAAO,CAAuB,QAG1D,ODKM,EAAS,CAAA,EAAA,EAAA,SAAA,AAAS,IACxB,CAAA,EAAA,EAAA,SAAA,AAAS,EAAC,KACR,IAAM,EAAU,IAAI,YAAY,GAAG,aAAa,OAAO,EAAE,mBAAmB,ACT/D,IDSyE,EAItF,OAHA,EAAQ,SAAS,CAAG,KAClB,EAAO,OAAO,EAChB,EACO,KACL,EAAQ,KAAK,EACf,CACFO,EAAG,GAAU,EAAO,EDRpB,CAAA,EAAA,EAAA,SAAA,AAAS,EAAC,KAER,IADIJ,EACEC,EAAS,KACb,IAAMC,EAAyC,YAA7BC,SAASC,eAAe,EAAkBD,SAASE,QAAQ,GACzEH,QAAuBI,IAAVN,EACfA,EAAQ,GAD4B,CACxBO,YAAY,GAAGV,WAAW,OAAO,EAAEW,mBAAmBT,IAAU,EAClEG,QAAuBI,IAAVN,IACvBA,EAAMS,CADsC,IACjC,GACXT,OAAQM,EAEZ,EAKA,OAJAL,IACAS,OAAOC,gBAAgB,CAAC,QAASV,GACjCS,OAAOC,gBAAgB,CAAC,OAAQV,GAChCE,SAASQ,gBAAgB,CAAC,mBAAoBV,GACvC,KACLS,OAAOE,mBAAmB,CAAC,QAASX,GACpCS,OAAOE,mBAAmB,CAAC,OAAQX,GACnCE,SAASS,mBAAmB,CAAC,mBAAoBX,GACjDD,GAAOS,OACT,CACF,EAAG,CE5BY,EF4BH,EE3BL,IACT"}
@@ -1,3 +0,0 @@
1
- (()=>{"use strict";module.exports=[72704,a=>{var b=a.i(7997),c=a.i(8403);function d({header:a,children:c}){return(0,b.jsxs)("div",{className:"flex min-h-dvh flex-col",children:[(0,b.jsx)("div",{"data-testid":"frame-header",className:"contents",children:a}),(0,b.jsx)("main",{className:"mx-auto w-full max-w-5xl flex-1 px-4 py-6",children:c})]})}var e=a.i(717),f=a.i(66283);async function g(){try{return await (await (0,f.z)(void 0)).account.apps.query()}catch(a){if(void 0!==(0,f.U)(a))return;throw a}}var h=a.i(75416),i=a.i(49310),j=a.i(26972),k=a.i(54757),k=k,l=a.i(27221),m=a.i(89963),n=a.i(83931),o=a.i(29517);let p=i.z.enum(["console","gateway","account","admin"]),q=j.z.object({app:p,url:k.httpUrl()});j.z.object({account:j.z.object({id:h.s,email:l.z.string()}),apps:m.z.array(q),fleets:m.z.array(j.z.object({id:(0,o.f)("fleet"),name:l.z.string(),argo:n.z.boolean(),apps:m.z.array(q)}))});var r=a.i(91156);let s=(0,o.f)("fleet");function t(a){return a.flatMap(({app:a,url:b})=>{let c=p.safeParse(a);return c.success?[{app:c.data,url:b}]:[]})}var u=a.i(73952);function v(){return(0,b.jsx)("header",{"data-testid":"plain-header",className:"flex h-14 items-center border-b border-border px-4",children:(0,b.jsx)("a",{href:"/bridge",className:"text-section font-semibold",children:"Aeolus"})})}async function w({theme:a}){let c=await g(),d=void 0===c?[]:function(a){let b=h.s.safeParse(a.account.id),c=a.fleets.map(a=>s.safeParse(a.id));if(!b.success||c.some(a=>!a.success))return[];let d={account:{id:b.data,email:a.account.email},apps:t(a.apps),fleets:a.fleets.flatMap((a,b)=>{let d=c[b];return d?.success===!0?[{id:d.data,name:a.name,argo:!1,apps:t(a.apps)}]:[]})};return d.fleets.map(({id:a,name:b})=>(0,r.f)({list:d,fleet:{id:a,name:b},app:"gateway"}))}(c);return void 0===c||0===d.length?(0,b.jsx)(v,{}):(0,b.jsx)(e.Suspense,{fallback:(0,b.jsx)(v,{}),children:(0,b.jsx)(u.GatewayHeader,{switchers:d,email:c.account.email,accountUrl:c.apps.find(({app:a})=>"account"===a)?.url,theme:a})})}async function x({children:a}){return(0,b.jsx)(d,{header:(0,b.jsx)(w,{theme:await (0,c.f)()}),children:a})}a.s(["f",0,x],72704)},56397,a=>{let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call GatewayHeader() from the server but GatewayHeader is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/web/features/frame/ui/gateway-header.tsx","GatewayHeader");a.s(["GatewayHeader",0,b])},73952,a=>{var b=a.i(56397);a.n(b)}]})();
2
-
3
- //# sourceMappingURL=web_features_frame_0pe8cwpxe1egb._.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../web/features/frame/hooks/read-header.ts","../../../../../web/features/frame/services/header-switchers.ts","../../../../../node_modules/%40aeolus-fleet/common/src/schemas/apps-list.ts","../../../../../web/features/frame/state/header.tsx","../../../../../web/features/frame/ui/plain-header.tsx","../../../../../web/features/frame/state/console-frame.tsx","../../../../../web/features/frame/ui/frame.tsx","../../../../../web/features/frame/ui/gateway-header.tsx/__nextjs-internal-proxy.mjs%20%7B%20server%20%3D%3E%20%22%5Bproject%5D/web/features/frame/ui/gateway-header.tsx%22%20%7D"],"sourcesContent":["/**\n * What the header shows, read through the gateway's API by the browser's\n * shared sign-in (header design H1): the account and the apps and fleets it\n * may open. A browser signed in to no account, a gateway that signs no one\n * in to its pages, or pagasae not answering, shows the plain bar: the page\n * itself says what to do.\n */\nimport { refusalCodeOf, requestApi } from '../../../lib/gateway-api/page-api';\nimport type { AccountApps } from '../services/header-switchers';\n\nexport async function readHeader(): Promise<AccountApps | undefined> {\n try {\n return await (await requestApi(undefined)).account.apps.query();\n } catch (error) {\n if (refusalCodeOf(error) !== undefined) {\n return undefined;\n }\n throw error;\n }\n}\n","/*\n * The switcher in the title of the header the gateway's pages show\n * (aeolus-fleet, header design H1, H9), from the apps and fleets the account\n * may open as the gateway's API answers them. The fleet in view is the one\n * the page's address names; a layout cannot read the address, so the server\n * offers one switcher per listed fleet and the header picks by the address.\n */\nimport { accountIdSchema, headerAppSchema, idSchema, type AppLink, type AppsList } from '@aeolus-fleet/common';\nimport { appSwitcherOf, type AppSwitcherModel } from '@aeolus-fleet/common/header';\n\n/** The apps and fleets the account may open, as the API's account.apps answers them. */\nexport interface AccountApps {\n account: { id: string; email: string };\n apps: readonly { app: string; url: string }[];\n fleets: readonly { id: string; name: string; apps: readonly { app: string; url: string }[] }[];\n}\n\nconst fleetIdSchema = idSchema('fleet');\n\n/** The apps the header knows (H12), the others left out; the addresses as the API answers them. */\nfunction headerAppsOf(apps: AccountApps['apps']): AppLink[] {\n return apps.flatMap(({ app, url }) => {\n const known = headerAppSchema.safeParse(app);\n return known.success ? [{ app: known.data, url }] : [];\n });\n}\n\n/** The switchers for the gateway, one per listed fleet with it in view; none for an answer with a malformed id. */\nexport function headerSwitchersOf(answer: AccountApps): AppSwitcherModel[] {\n const accountId = accountIdSchema.safeParse(answer.account.id);\n const fleetIds = answer.fleets.map((fleet) => fleetIdSchema.safeParse(fleet.id));\n if (!accountId.success || fleetIds.some((fleetId) => !fleetId.success)) {\n return [];\n }\n const list: AppsList = {\n account: { id: accountId.data, email: answer.account.email },\n apps: headerAppsOf(answer.apps),\n // Whether the account may sign in as argo is the console's alone: the gateway's header never shows it.\n fleets: answer.fleets.flatMap((fleet, index) => {\n const fleetId = fleetIds[index];\n return fleetId?.success === true ? [{ id: fleetId.data, name: fleet.name, argo: false, apps: headerAppsOf(fleet.apps) }] : [];\n }),\n };\n return list.fleets.map(({ id, name }) => appSwitcherOf({ list, fleet: { id, name }, app: 'gateway' }));\n}\n","unable to read source [project]/node_modules/@aeolus-fleet/common/src/schemas/apps-list.ts","import type { Theme } from '@aeolus-fleet/common';\nimport { Suspense } from 'react';\n\nimport { readHeader } from '../hooks/read-header';\nimport { headerSwitchersOf } from '../services/header-switchers';\nimport { GatewayHeader } from '../ui/gateway-header';\nimport { PlainHeader } from '../ui/plain-header';\n\n/** The header for the account signed in, or the plain bar for no account (or one that may open no fleet here, or an answer it cannot read). */\nexport async function Header({ theme }: { theme: Theme }) {\n const answer = await readHeader();\n const switchers = answer === undefined ? [] : headerSwitchersOf(answer);\n if (answer === undefined || switchers.length === 0) {\n return <PlainHeader />;\n }\n return (\n // The header reads the fleet in view from the address.\n <Suspense fallback={<PlainHeader />}>\n <GatewayHeader switchers={switchers} email={answer.account.email} accountUrl={answer.apps.find(({ app }) => app === 'account')?.url} theme={theme} />\n </Suspense>\n );\n}\n","/** The bar of a page shown to no account signed in: the sign-in pages, and a gateway that signs no one in to its pages. */\nexport function PlainHeader() {\n return (\n <header data-testid=\"plain-header\" className=\"flex h-14 items-center border-b border-border px-4\">\n <a href=\"/bridge\" className=\"text-section font-semibold\">\n Aeolus\n </a>\n </header>\n );\n}\n","import type { ReactNode } from 'react';\n\nimport { readTheme } from '../hooks/read-theme';\nimport { Frame } from '../ui/frame';\nimport { Header } from './header';\n\n/** The frame of the gateway's own pages: the header every Aeolus app shows, for the account signed in. */\nexport async function ConsoleFrame({ children }: { children: ReactNode }) {\n return <Frame header={<Header theme={await readTheme()} />}>{children}</Frame>;\n}\n","import type { ReactNode } from 'react';\n\n/**\n * Every page of the gateway's web app: the header on top, the page below.\n * The header is the one every Aeolus app shows (@aeolus-fleet/common/header,\n * header design H2) for an account signed in, else a plain bar.\n */\nexport function Frame({ header, children }: { header: ReactNode; children: ReactNode }) {\n return (\n <div className=\"flex min-h-dvh flex-col\">\n <div data-testid=\"frame-header\" className=\"contents\">\n {header}\n </div>\n <main className=\"mx-auto w-full max-w-5xl flex-1 px-4 py-6\">{children}</main>\n </div>\n );\n}\n","// This file is generated by next-core EcmascriptClientReferenceModule.\nimport { registerClientReference } from \"react-server-dom-turbopack/server\";\nexport const GatewayHeader = registerClientReference(\n function() { throw new Error(\"Attempted to call GatewayHeader() from the server but GatewayHeader is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.\"); },\n \"[project]/web/features/frame/ui/gateway-header.tsx\",\n \"GatewayHeader\",\n);\n"],"names":["Frame","header","children","className","GatewayHeader","Error"],"mappings":"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","ignoreList":[2,7]}
@@ -1,3 +0,0 @@
1
- module.exports=[48913,s=>{"use strict";s.s([])}];
2
-
3
- //# sourceMappingURL=web__next-internal_server_app_%28console%29_bridge_focus_route_actions_0syd_u8mgzdmi.js.map