@aeolus-fleet/gateway 0.37.0 → 0.37.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) hide show
  1. package/package.json +1 -1
  2. package/web/.next/BUILD_ID +1 -1
  3. package/web/.next/build-manifest.json +3 -3
  4. package/web/.next/diagnostics/route-bundle-stats.json +84 -84
  5. package/web/.next/fallback-build-manifest.json +3 -3
  6. package/web/.next/prerender-manifest.json +3 -3
  7. package/web/.next/server/app/(bridge)/bridge/basket/page/server-reference-manifest.json +10 -10
  8. package/web/.next/server/app/(bridge)/bridge/basket/page.js.nft.json +1 -1
  9. package/web/.next/server/app/(bridge)/bridge/basket/page_client-reference-manifest.js +1 -1
  10. package/web/.next/server/app/(bridge)/bridge/done/page/server-reference-manifest.json +4 -4
  11. package/web/.next/server/app/(bridge)/bridge/done/page.js.nft.json +1 -1
  12. package/web/.next/server/app/(bridge)/bridge/done/page_client-reference-manifest.js +1 -1
  13. package/web/.next/server/app/(bridge)/bridge/fleet/page/server-reference-manifest.json +3 -3
  14. package/web/.next/server/app/(bridge)/bridge/fleet/page.js.nft.json +1 -1
  15. package/web/.next/server/app/(bridge)/bridge/fleet/page_client-reference-manifest.js +1 -1
  16. package/web/.next/server/app/(bridge)/bridge/page/server-reference-manifest.json +9 -9
  17. package/web/.next/server/app/(bridge)/bridge/page.js.nft.json +1 -1
  18. package/web/.next/server/app/(bridge)/bridge/page_client-reference-manifest.js +1 -1
  19. package/web/.next/server/app/(bridge)/bridge/settings/page/server-reference-manifest.json +3 -3
  20. package/web/.next/server/app/(bridge)/bridge/settings/page.js.nft.json +1 -1
  21. package/web/.next/server/app/(bridge)/bridge/settings/page_client-reference-manifest.js +1 -1
  22. package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page/server-reference-manifest.json +4 -4
  23. package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page.js.nft.json +1 -1
  24. package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page_client-reference-manifest.js +1 -1
  25. package/web/.next/server/app/(bridge)/bridge/settings/routing/page/server-reference-manifest.json +7 -7
  26. package/web/.next/server/app/(bridge)/bridge/settings/routing/page.js.nft.json +1 -1
  27. package/web/.next/server/app/(bridge)/bridge/settings/routing/page_client-reference-manifest.js +1 -1
  28. package/web/.next/server/app/(bridge)/bridge/stay-aware/page/server-reference-manifest.json +9 -9
  29. package/web/.next/server/app/(bridge)/bridge/stay-aware/page.js.nft.json +1 -1
  30. package/web/.next/server/app/(bridge)/bridge/stay-aware/page_client-reference-manifest.js +1 -1
  31. package/web/.next/server/app/(bridge)/outside-parties/[name]/change/page/server-reference-manifest.json +21 -21
  32. package/web/.next/server/app/(bridge)/outside-parties/[name]/change/page.js.nft.json +1 -1
  33. package/web/.next/server/app/(bridge)/outside-parties/[name]/change/page_client-reference-manifest.js +1 -1
  34. package/web/.next/server/app/(bridge)/outside-parties/[name]/page/server-reference-manifest.json +10 -10
  35. package/web/.next/server/app/(bridge)/outside-parties/[name]/page.js.nft.json +1 -1
  36. package/web/.next/server/app/(bridge)/outside-parties/[name]/page_client-reference-manifest.js +1 -1
  37. package/web/.next/server/app/(bridge)/outside-parties/[name]/retire/page/server-reference-manifest.json +21 -21
  38. package/web/.next/server/app/(bridge)/outside-parties/[name]/retire/page.js.nft.json +1 -1
  39. package/web/.next/server/app/(bridge)/outside-parties/[name]/retire/page_client-reference-manifest.js +1 -1
  40. package/web/.next/server/app/(bridge)/outside-parties/add/page/server-reference-manifest.json +12 -12
  41. package/web/.next/server/app/(bridge)/outside-parties/add/page.js.nft.json +1 -1
  42. package/web/.next/server/app/(bridge)/outside-parties/add/page_client-reference-manifest.js +1 -1
  43. package/web/.next/server/app/(bridge)/outside-parties/add-a2a-agent/page/server-reference-manifest.json +4 -4
  44. package/web/.next/server/app/(bridge)/outside-parties/add-a2a-agent/page.js.nft.json +1 -1
  45. package/web/.next/server/app/(bridge)/outside-parties/add-a2a-agent/page_client-reference-manifest.js +1 -1
  46. package/web/.next/server/app/(bridge)/outside-parties/add-a2a-client/page/server-reference-manifest.json +4 -4
  47. package/web/.next/server/app/(bridge)/outside-parties/add-a2a-client/page.js.nft.json +1 -1
  48. package/web/.next/server/app/(bridge)/outside-parties/add-a2a-client/page_client-reference-manifest.js +1 -1
  49. package/web/.next/server/app/(bridge)/outside-parties/page/server-reference-manifest.json +4 -4
  50. package/web/.next/server/app/(bridge)/outside-parties/page.js.nft.json +1 -1
  51. package/web/.next/server/app/(bridge)/outside-parties/page_client-reference-manifest.js +1 -1
  52. package/web/.next/server/app/(console)/gateway-off/page/server-reference-manifest.json +1 -1
  53. package/web/.next/server/app/(console)/gateway-off/page.js.nft.json +1 -1
  54. package/web/.next/server/app/(console)/gateway-off/page_client-reference-manifest.js +1 -1
  55. package/web/.next/server/app/(console)/meetings/[meetingId]/page/server-reference-manifest.json +3 -3
  56. package/web/.next/server/app/(console)/meetings/[meetingId]/page.js.nft.json +1 -1
  57. package/web/.next/server/app/(console)/meetings/[meetingId]/page_client-reference-manifest.js +1 -1
  58. package/web/.next/server/app/(console)/parties/page/server-reference-manifest.json +9 -9
  59. package/web/.next/server/app/(console)/parties/page.js.nft.json +1 -1
  60. package/web/.next/server/app/(console)/parties/page_client-reference-manifest.js +1 -1
  61. package/web/.next/server/app/(console)/sign-in/failed/page/server-reference-manifest.json +1 -1
  62. package/web/.next/server/app/(console)/sign-in/failed/page.js.nft.json +1 -1
  63. package/web/.next/server/app/(console)/sign-in/failed/page_client-reference-manifest.js +1 -1
  64. package/web/.next/server/app/(console)/slack/disconnect/page/server-reference-manifest.json +11 -11
  65. package/web/.next/server/app/(console)/slack/disconnect/page.js.nft.json +1 -1
  66. package/web/.next/server/app/(console)/slack/disconnect/page_client-reference-manifest.js +1 -1
  67. package/web/.next/server/app/(console)/slack/expose/page/server-reference-manifest.json +11 -11
  68. package/web/.next/server/app/(console)/slack/expose/page.js.nft.json +1 -1
  69. package/web/.next/server/app/(console)/slack/expose/page_client-reference-manifest.js +1 -1
  70. package/web/.next/server/app/(console)/slack/page/server-reference-manifest.json +11 -11
  71. package/web/.next/server/app/(console)/slack/page.js.nft.json +1 -1
  72. package/web/.next/server/app/(console)/slack/page_client-reference-manifest.js +1 -1
  73. package/web/.next/server/app/(console)/slack/remove/page/server-reference-manifest.json +11 -11
  74. package/web/.next/server/app/(console)/slack/remove/page.js.nft.json +1 -1
  75. package/web/.next/server/app/(console)/slack/remove/page_client-reference-manifest.js +1 -1
  76. package/web/.next/server/app/_global-error.html +1 -1
  77. package/web/.next/server/app/_global-error.rsc +1 -1
  78. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  79. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  80. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  81. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  82. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  83. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  84. package/web/.next/server/app/authorize/failed/page/server-reference-manifest.json +1 -1
  85. package/web/.next/server/app/authorize/failed/page.js.nft.json +1 -1
  86. package/web/.next/server/app/authorize/failed/page_client-reference-manifest.js +1 -1
  87. package/web/.next/server/app/authorize/pick/page/server-reference-manifest.json +1 -1
  88. package/web/.next/server/app/authorize/pick/page.js.nft.json +1 -1
  89. package/web/.next/server/app/authorize/pick/page_client-reference-manifest.js +1 -1
  90. package/web/.next/server/app/authorize/waiting/approval/page/server-reference-manifest.json +1 -1
  91. package/web/.next/server/app/authorize/waiting/approval/page.js.nft.json +1 -1
  92. package/web/.next/server/app/authorize/waiting/approval/page_client-reference-manifest.js +1 -1
  93. package/web/.next/server/chunks/ssr/01fr_app_(bridge)_bridge_settings_requests_[requestId]_page_actions_0o8g7_xshtmem.js +1 -1
  94. package/web/.next/server/chunks/ssr/01fr_app_(bridge)_bridge_settings_requests_[requestId]_page_actions_0o8g7_xshtmem.js.map +1 -1
  95. package/web/.next/server/chunks/ssr/0b9d__next-internal_server_app_(bridge)_bridge_settings_page_actions_0_te6h-2xxp7l.js +1 -1
  96. package/web/.next/server/chunks/ssr/0b9d__next-internal_server_app_(bridge)_bridge_settings_page_actions_0_te6h-2xxp7l.js.map +1 -1
  97. package/web/.next/server/chunks/ssr/0b9d__next-internal_server_app_(bridge)_bridge_stay-aware_page_actions_1u0xo0v3y9c34.js +1 -1
  98. package/web/.next/server/chunks/ssr/0b9d__next-internal_server_app_(bridge)_bridge_stay-aware_page_actions_1u0xo0v3y9c34.js.map +1 -1
  99. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_bridge_settings_routing_page_actions_06_j7s24dy5ee.js +1 -1
  100. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_bridge_settings_routing_page_actions_06_j7s24dy5ee.js.map +1 -1
  101. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_[name]_change_page_actions_1is-kjq5bubl4.js +1 -1
  102. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_[name]_change_page_actions_1is-kjq5bubl4.js.map +1 -1
  103. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_[name]_page_actions_1mctxtlzsa7xi.js +1 -1
  104. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_[name]_page_actions_1mctxtlzsa7xi.js.map +1 -1
  105. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_[name]_retire_page_actions_0xh6ok1un7s9k.js +1 -1
  106. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_[name]_retire_page_actions_0xh6ok1un7s9k.js.map +1 -1
  107. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_add-a2a-agent_page_actions_1w1q5eavo_loo.js +1 -1
  108. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_add-a2a-agent_page_actions_1w1q5eavo_loo.js.map +1 -1
  109. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_add_page_actions_0urcbg_r0lo7j.js +1 -1
  110. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_add_page_actions_0urcbg_r0lo7j.js.map +1 -1
  111. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ipo8r1s1ntds._.js +1 -1
  112. package/web/.next/server/chunks/ssr/[root-of-the-server]__0n9oaiyov05ns._.js +1 -1
  113. package/web/.next/server/chunks/ssr/[root-of-the-server]__0n9oaiyov05ns._.js.map +1 -1
  114. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ovcg5tg3nh49._.js +1 -1
  115. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ovcg5tg3nh49._.js.map +1 -1
  116. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ro-majrw7piv._.js +1 -1
  117. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ro-majrw7piv._.js.map +1 -1
  118. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ulpe7l4c8o3v._.js +1 -1
  119. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ulpe7l4c8o3v._.js.map +1 -1
  120. package/web/.next/server/chunks/ssr/[root-of-the-server]__0xurmpdv5uqfl._.js +1 -1
  121. package/web/.next/server/chunks/ssr/[root-of-the-server]__0zz6fx0keti4r._.js +1 -1
  122. package/web/.next/server/chunks/ssr/[root-of-the-server]__0zz6fx0keti4r._.js.map +1 -1
  123. package/web/.next/server/chunks/ssr/[root-of-the-server]__18-8taiduk1jn._.js +1 -1
  124. package/web/.next/server/chunks/ssr/[root-of-the-server]__18-8taiduk1jn._.js.map +1 -1
  125. package/web/.next/server/chunks/ssr/[root-of-the-server]__19p4g16n2nh0b._.js +1 -1
  126. package/web/.next/server/chunks/ssr/[root-of-the-server]__19p4g16n2nh0b._.js.map +1 -1
  127. package/web/.next/server/chunks/ssr/[root-of-the-server]__1ncn4wx-1i09m._.js +1 -1
  128. package/web/.next/server/chunks/ssr/[root-of-the-server]__1ncn4wx-1i09m._.js.map +1 -1
  129. package/web/.next/server/chunks/ssr/[root-of-the-server]__1vaoz_d15csmy._.js +1 -1
  130. package/web/.next/server/chunks/ssr/[root-of-the-server]__1vaoz_d15csmy._.js.map +1 -1
  131. package/web/.next/server/chunks/ssr/[root-of-the-server]__1xzg4_wllzynw._.js +1 -1
  132. package/web/.next/server/chunks/ssr/[root-of-the-server]__1xzg4_wllzynw._.js.map +1 -1
  133. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js +1 -1
  134. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js.map +1 -1
  135. package/web/.next/server/chunks/ssr/_0_nfv33ug5g31._.js +1 -1
  136. package/web/.next/server/chunks/ssr/_0_nfv33ug5g31._.js.map +1 -1
  137. package/web/.next/server/chunks/ssr/{_067ku63fy5cvr._.js → _0d9el5z4r07h8._.js} +2 -2
  138. package/web/.next/server/chunks/ssr/{_0p9agk_zk_t2w._.js.map → _0d9el5z4r07h8._.js.map} +1 -1
  139. package/web/.next/server/chunks/ssr/_0ka_9elusb800._.js +1 -1
  140. package/web/.next/server/chunks/ssr/_0ka_9elusb800._.js.map +1 -1
  141. package/web/.next/server/chunks/ssr/{_0p9agk_zk_t2w._.js → _0msh_lv5ns4e9._.js} +2 -2
  142. package/web/.next/server/chunks/ssr/{_067ku63fy5cvr._.js.map → _0msh_lv5ns4e9._.js.map} +1 -1
  143. package/web/.next/server/chunks/ssr/{_0amcq922zroon._.js → _0nmqkf1y-qsc2._.js} +2 -2
  144. package/web/.next/server/chunks/ssr/{_0w9zexwc8g87x._.js.map → _0nmqkf1y-qsc2._.js.map} +1 -1
  145. package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js +1 -1
  146. package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js.map +1 -1
  147. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js +1 -1
  148. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js.map +1 -1
  149. package/web/.next/server/chunks/ssr/{_0w9zexwc8g87x._.js → _1a-gh-psko_2f._.js} +2 -2
  150. package/web/.next/server/chunks/ssr/{_0amcq922zroon._.js.map → _1a-gh-psko_2f._.js.map} +1 -1
  151. package/web/.next/server/chunks/ssr/_1cs_0d0h7mhw0._.js +1 -1
  152. package/web/.next/server/chunks/ssr/_1cs_0d0h7mhw0._.js.map +1 -1
  153. package/web/.next/server/chunks/ssr/_1e720g1qty0xj._.js +57 -0
  154. package/web/.next/server/chunks/ssr/_1e720g1qty0xj._.js.map +1 -0
  155. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js +1 -1
  156. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js.map +1 -1
  157. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js +1 -1
  158. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js.map +1 -1
  159. package/web/.next/server/chunks/ssr/_1xjxj1ur-j87t._.js +57 -0
  160. package/web/.next/server/chunks/ssr/_1xjxj1ur-j87t._.js.map +1 -0
  161. package/web/.next/server/chunks/ssr/web_0a9n7acgjrk5c._.js +1 -1
  162. package/web/.next/server/chunks/ssr/web_0a9n7acgjrk5c._.js.map +1 -1
  163. package/web/.next/server/chunks/ssr/web_1vvrekkq5mirt._.js +1 -1
  164. package/web/.next/server/chunks/ssr/web_1vvrekkq5mirt._.js.map +1 -1
  165. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_basket_page_actions_0g7q_rc5nma1e.js +1 -1
  166. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_basket_page_actions_0g7q_rc5nma1e.js.map +1 -1
  167. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_done_page_actions_0kjm34arntdzv.js +1 -1
  168. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_done_page_actions_0kjm34arntdzv.js.map +1 -1
  169. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_fleet_page_actions_19wmo6phgvqfk.js +1 -1
  170. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_fleet_page_actions_19wmo6phgvqfk.js.map +1 -1
  171. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_page_actions_1ok64rg3edm_u.js +1 -1
  172. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_page_actions_1ok64rg3edm_u.js.map +1 -1
  173. package/web/.next/server/chunks/ssr/web_features_0cgvngtsgzu24._.js +3 -0
  174. package/web/.next/server/chunks/ssr/web_features_0cgvngtsgzu24._.js.map +1 -0
  175. package/web/.next/server/chunks/ssr/{web_features_1d-wq10_n8ex0._.js → web_features_11rwm0rhf5957._.js} +2 -2
  176. package/web/.next/server/chunks/ssr/{web_features_1d-wq10_n8ex0._.js.map → web_features_11rwm0rhf5957._.js.map} +1 -1
  177. package/web/.next/server/chunks/ssr/{web_features_1t4lu06v7y3i8._.js → web_features_1loqabdanp8wi._.js} +2 -2
  178. package/web/.next/server/chunks/ssr/{web_features_1t4lu06v7y3i8._.js.map → web_features_1loqabdanp8wi._.js.map} +1 -1
  179. package/web/.next/server/chunks/ssr/web_features_1r2u065j-hgrq._.js +3 -0
  180. package/web/.next/server/chunks/ssr/web_features_1r2u065j-hgrq._.js.map +1 -0
  181. package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js +1 -1
  182. package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js.map +1 -1
  183. package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js +1 -1
  184. package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js.map +1 -1
  185. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js +1 -1
  186. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js.map +1 -1
  187. package/web/.next/server/chunks/ssr/{web_features_bridge_125bfazmc4opj._.js → web_features_bridge_17dx2edv4zsex._.js} +2 -2
  188. package/web/.next/server/chunks/ssr/{web_features_bridge_125bfazmc4opj._.js.map → web_features_bridge_17dx2edv4zsex._.js.map} +1 -1
  189. package/web/.next/server/chunks/ssr/web_features_bridge_hooks_bridge-actions_ts_0h-_xm2rcb-ij._.js +1 -1
  190. package/web/.next/server/chunks/ssr/web_features_bridge_state_basket-panel_tsx_1qi_kzld0rfgs._.js +1 -1
  191. package/web/.next/server/chunks/ssr/web_features_bridge_state_basket-panel_tsx_1qi_kzld0rfgs._.js.map +1 -1
  192. package/web/.next/server/chunks/ssr/web_features_bridge_state_decision-panel_tsx_1mzsixgc8zuxc._.js +1 -1
  193. package/web/.next/server/chunks/ssr/web_features_bridge_state_decision-panel_tsx_1mzsixgc8zuxc._.js.map +1 -1
  194. package/web/.next/server/chunks/ssr/web_features_bridge_state_done-panel_tsx_1m844-qb1z9p_._.js +1 -1
  195. package/web/.next/server/chunks/ssr/web_features_bridge_state_done-panel_tsx_1m844-qb1z9p_._.js.map +1 -1
  196. package/web/.next/server/chunks/ssr/web_features_meeting_state_meeting-controls_tsx_12g4kzk2mbvvz._.js +1 -1
  197. package/web/.next/server/chunks/ssr/web_features_meeting_state_meeting-controls_tsx_12g4kzk2mbvvz._.js.map +1 -1
  198. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js +1 -1
  199. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js.map +1 -1
  200. package/web/.next/server/chunks/ssr/web_features_outside-party_1-lre9nfakki7._.js +1 -1
  201. package/web/.next/server/chunks/ssr/web_features_outside-party_1-lre9nfakki7._.js.map +1 -1
  202. package/web/.next/server/chunks/ssr/web_features_outside-party_actions_ts_102ar5pdowf8s._.js +1 -1
  203. package/web/.next/server/chunks/ssr/web_features_parties_actions_ts_0r-tbfsig2ty-._.js +1 -1
  204. package/web/.next/server/chunks/ssr/web_features_slack_actions_ts_1l3yg9vl20_vu._.js +1 -1
  205. package/web/.next/server/middleware-build-manifest.js +3 -3
  206. package/web/.next/server/pages/500.html +1 -1
  207. package/web/.next/server/preview-props.json +3 -3
  208. package/web/.next/server/server-reference-manifest.js +1 -1
  209. package/web/.next/server/server-reference-manifest.json +53 -53
  210. package/web/.next/static/chunks/04r-53h_fb5rq.js +1 -0
  211. package/web/.next/static/chunks/{3sh-qd-9_kuhx.js → 0d0fsf26a1ep_.js} +1 -1
  212. package/web/.next/static/chunks/{0a-m82cyt3poo.js → 0jqdvhip5x6im.js} +1 -1
  213. package/web/.next/static/chunks/{08swfedutkq-h.js → 0klu03tcnjzsm.js} +1 -1
  214. package/web/.next/static/chunks/{1rowdcnwlync0.js → 12kwix3z2z-fs.js} +1 -1
  215. package/web/.next/static/chunks/{1k_0f6ohdds08.js → 1az8wx3bt0tc-.js} +1 -1
  216. package/web/.next/static/chunks/{04-n1o8q7gzm7.js → 1oipnf2j_m8oy.js} +4 -4
  217. package/web/.next/static/chunks/1uw3g2r3xlxci.js +1 -0
  218. package/web/.next/static/chunks/2fjzmc7-5sf_m.js +1 -0
  219. package/web/.next/static/chunks/{031q7t7ho1l3f.js → 2ztqsnh1sq5f9.js} +1 -1
  220. package/web/.next/static/chunks/38w8690okopia.js +1 -0
  221. package/web/.next/static/chunks/{1i-1b5d6sk_k2.js → 3bvcgvk4m3hxh.js} +1 -1
  222. package/web/.next/static/chunks/{0vk3ns89lm5lx.js → 3c2whoiify4hd.js} +1 -1
  223. package/web/.next/static/chunks/{318xblsv_bj3w.js → 3nqasvqr8d81s.js} +1 -1
  224. package/web/.next/static/chunks/3po7blcdi5_y6.js +1 -0
  225. package/web/.next/static/chunks/{0wbsan4j92uen.js → 3q_d1vlm22cy0.js} +1 -1
  226. package/web/.next/trace +1 -1
  227. package/web/.next/trace-build +1 -1
  228. package/web/.next/server/chunks/ssr/_15fbhl5d8_z_x._.js +0 -57
  229. package/web/.next/server/chunks/ssr/_15fbhl5d8_z_x._.js.map +0 -1
  230. package/web/.next/server/chunks/ssr/_1rw8_q3zywmrm._.js +0 -57
  231. package/web/.next/server/chunks/ssr/_1rw8_q3zywmrm._.js.map +0 -1
  232. package/web/.next/server/chunks/ssr/web_features_0aw-c2l0y5v0n._.js +0 -3
  233. package/web/.next/server/chunks/ssr/web_features_0aw-c2l0y5v0n._.js.map +0 -1
  234. package/web/.next/server/chunks/ssr/web_features_0pg79seak4cnb._.js +0 -3
  235. package/web/.next/server/chunks/ssr/web_features_0pg79seak4cnb._.js.map +0 -1
  236. package/web/.next/static/chunks/04vjjcln7-au4.js +0 -1
  237. package/web/.next/static/chunks/05z1sfsxiycwu.js +0 -1
  238. package/web/.next/static/chunks/065sdkxibhue_.js +0 -1
  239. package/web/.next/static/chunks/3noelndd-mym9.js +0 -1
  240. package/web/.next/static/chunks/43uxu94e3-gvj.js +0 -1
  241. /package/web/.next/static/{HzOMe97w-YsgkVELi3P_f → waEyx88w-M7TBm3nu35s-}/_buildManifest.js +0 -0
  242. /package/web/.next/static/{HzOMe97w-YsgkVELi3P_f → waEyx88w-M7TBm3nu35s-}/_clientMiddlewareManifest.js +0 -0
  243. /package/web/.next/static/{HzOMe97w-YsgkVELi3P_f → waEyx88w-M7TBm3nu35s-}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- (()=>{"use strict";module.exports=[54946,a=>{var b=a.i(70043),c=a.i(37936),d=a.i(29517),e=a.i(66283),f=a.i(1324),g=a.i(81140);async function h(a,b){let c=(0,d.f)("ship").safeParse((0,f.v)(b,"ownerShipId"));if(!c.success)return{kind:"refused",message:"Pick its owner"};let h=await (0,e.z)((0,f.v)(b,f.H));try{let a=await h.parties.addA2aClient.mutate({requestId:(0,f.v)(b,"requestId"),name:(0,f.v)(b,"name"),ownerShipId:c.data,scopes:(0,g.f)((0,f.O)(b))});return{kind:"added",name:a.party.name,bearer:a.bearer}}catch(a){return{kind:"refused",message:(0,e.s)(a)}}}(0,a.i(13095).ensureServerEntryExports)([h]),(0,c.registerServerReference)(h,"6003ceeeaca9e6c3ed2394eaa2129e561b8cbacf2a",null);var i=a.i(43889);a.s(["405a2eb373597600f9fe883d2148af9e939e9d4733",()=>b.f,"4078a564ba8f5cdd7b9ff03b95c053b807665e73e5",()=>i.u,"40fa7ac033d89013e8fce8f51fd9645013d9971979",()=>i.e,"6003ceeeaca9e6c3ed2394eaa2129e561b8cbacf2a",0,h],54946)},81140,a=>{var b=a.i(18379);a.s(["f",0,function(a){return Object.keys(a).flatMap(a=>a.startsWith(b.u)?[a.slice(b.u.length)]:[])}])},1324,a=>{a.s(["H",0,"fleet","v",0,function(a,b){let c=a.get(b);return"string"==typeof c?c:""},"O",0,function(a){return Object.fromEntries([...a.entries()].flatMap(([a,b])=>"string"==typeof b?[[a,b]]:[]))}])},18379,a=>{var b=a.i(29517);let c=["messages:send","messages:receive"],d="scope:",e="scopesShown";a.s(["_",0,c,"e",0,e,"u",0,d,"t",0,function(a,f){let g,{form:h,scopes:i}=f,j=h.ownerShipId?.trim();if(void 0!==j&&j!==a.ownerShipId){let a=(0,b.f)("ship").safeParse(j);if(!a.success)return{kind:"refused",message:"The owner's ship id is not a ship id (shp_...)"};g=a.data}let k=void 0===g?{}:{ownerShipId:g},l=a.scopes;if("true"!==h[e]||null===l)return{kind:"changes",...k,grant:[],revoke:[]};let m=i.filter(a=>!c.includes(a)),n=a=>void 0!==h[`${d}${a}`];return{kind:"changes",...k,grant:m.filter(a=>n(a)&&!l.includes(a)),revoke:m.filter(a=>!n(a)&&l.includes(a))}}])}]})();
1
+ (()=>{"use strict";module.exports=[54946,a=>{var b=a.i(70043),c=a.i(37936),d=a.i(29517),e=a.i(66283),f=a.i(1324),g=a.i(81140);async function h(a,b){let c=(0,d.f)("ship").safeParse((0,f.v)(b,"ownerShipId"));if(!c.success)return{kind:"refused",message:"Pick its owner"};let h=await (0,e.z)((0,f.v)(b,f.H));try{let a=await h.parties.addA2aClient.mutate({requestId:(0,f.v)(b,"requestId"),name:(0,f.v)(b,"name"),ownerShipId:c.data,scopes:(0,g.f)((0,f.O)(b))});return{kind:"added",name:a.party.name,bearer:a.bearer}}catch(a){return{kind:"refused",message:(0,e.s)(a)}}}(0,a.i(13095).ensureServerEntryExports)([h]),(0,c.registerServerReference)(h,"60793afca87ede1d711e509d783b4f31c7f74de354",null);var i=a.i(43889);a.s(["4037a88f28c885946acaffd1cdfafe0cbe8f0da59d",()=>i.e,"4046bfd2ba403a6ee3e6b63e6a1173263664f48c30",()=>i.u,"40f534a69ce118b9a051eed56b02d6f3ce60cc9009",()=>b.f,"60793afca87ede1d711e509d783b4f31c7f74de354",0,h],54946)},81140,a=>{var b=a.i(18379);a.s(["f",0,function(a){return Object.keys(a).flatMap(a=>a.startsWith(b.u)?[a.slice(b.u.length)]:[])}])},1324,a=>{a.s(["H",0,"fleet","v",0,function(a,b){let c=a.get(b);return"string"==typeof c?c:""},"O",0,function(a){return Object.fromEntries([...a.entries()].flatMap(([a,b])=>"string"==typeof b?[[a,b]]:[]))}])},18379,a=>{var b=a.i(29517);let c=["messages:send","messages:receive"],d="scope:",e="scopesShown";a.s(["_",0,c,"e",0,e,"u",0,d,"t",0,function(a,f){let g,{form:h,scopes:i}=f,j=h.ownerShipId?.trim();if(void 0!==j&&j!==a.ownerShipId){let a=(0,b.f)("ship").safeParse(j);if(!a.success)return{kind:"refused",message:"The owner's ship id is not a ship id (shp_...)"};g=a.data}let k=void 0===g?{}:{ownerShipId:g},l=a.scopes;if("true"!==h[e]||null===l)return{kind:"changes",...k,grant:[],revoke:[]};let m=i.filter(a=>!c.includes(a)),n=a=>void 0!==h[`${d}${a}`];return{kind:"changes",...k,grant:m.filter(a=>n(a)&&!l.includes(a)),revoke:m.filter(a=>!n(a)&&l.includes(a))}}])}]})();
2
2
 
3
3
  //# sourceMappingURL=web_0a9n7acgjrk5c._.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../web/.next-internal/server/app/%28bridge%29/outside-parties/add-a2a-client/page/actions.js%20%28server%20actions%20loader%29","../../../../../web/features/add-a2a-client/actions.ts","../../../../../web/features/add-a2a-client/ticked-scopes.ts","../../../../../web/features/forms/form-state.ts","../../../../../web/features/outside-party/scope-changes.ts"],"sourcesContent":["export {setTheme as '405a2eb373597600f9fe883d2148af9e939e9d4733'} from 'ACTIONS_MODULE0'\nexport {addA2aClient as '6003ceeeaca9e6c3ed2394eaa2129e561b8cbacf2a'} from 'ACTIONS_MODULE1'\nexport {readSendTo as '40fa7ac033d89013e8fce8f51fd9645013d9971979'} from 'ACTIONS_MODULE2'\nexport {sendShipMessage as '4078a564ba8f5cdd7b9ff03b95c053b807665e73e5'} from 'ACTIONS_MODULE2'\n","'use server';\n\n/**\n * Adding an outside A2A client (decision 0060), as the account signed in:\n * the API checks it holds gateway:approve and grants only scopes it holds,\n * then answers the client's bearer, which the page shows once.\n */\nimport { idSchema } from '@aeolus-fleet/common';\n\nimport { refusalMessageOf, requestApi } from '../../lib/gateway-api/page-api';\nimport { FLEET_FIELD, fieldOf, fieldsOf } from '../forms/form-state';\nimport { tickedScopes } from './ticked-scopes';\n\n/** Where adding stands: not sent, refused with why, or added with the bearer to hand the client. */\nexport type AddA2aClientState = { kind: 'idle' } | { kind: 'refused'; message: string } | { kind: 'added'; name: string; bearer: string };\n\nexport async function addA2aClient(_previous: AddA2aClientState, form: FormData): Promise<AddA2aClientState> {\n const ownerShipId = idSchema('ship').safeParse(fieldOf(form, 'ownerShipId'));\n if (!ownerShipId.success) {\n return { kind: 'refused', message: 'Pick its owner' };\n }\n const api = await requestApi(fieldOf(form, FLEET_FIELD));\n try {\n const added = await api.parties.addA2aClient.mutate({ requestId: fieldOf(form, 'requestId'), name: fieldOf(form, 'name'), ownerShipId: ownerShipId.data, scopes: tickedScopes(fieldsOf(form)) });\n return { kind: 'added', name: added.party.name, bearer: added.bearer };\n } catch (error) {\n return { kind: 'refused', message: refusalMessageOf(error) };\n }\n}\n","import { SCOPE_FIELD_PREFIX } from '../outside-party/scope-changes';\n\n/** The scopes a form ticks, one `scope:<scope>` field each. */\nexport function tickedScopes(fields: Readonly<Record<string, string>>): string[] {\n return Object.keys(fields).flatMap((field) => (field.startsWith(SCOPE_FIELD_PREFIX) ? [field.slice(SCOPE_FIELD_PREFIX.length)] : []));\n}\n","/**\n * What a page's form (a server action) answers the browser: nothing yet,\n * done with what changed, or refused with why, as the API said it. The\n * open network's warning asks for a confirm (interop I-3).\n */\nexport type FormState =\n | { kind: 'idle' }\n | { kind: 'done'; message: string }\n | { kind: 'refused'; message: string }\n | { kind: 'openNetwork'; message: string };\n\nexport const IDLE: FormState = { kind: 'idle' };\n\n/** A form's text field, empty when it was not sent. */\nexport function fieldOf(form: FormData, name: string): string {\n const value = form.get(name);\n return typeof value === 'string' ? value : '';\n}\n\n/** The form's fields as text, files left out. */\nexport function fieldsOf(form: FormData): Record<string, string> {\n return Object.fromEntries([...form.entries()].flatMap(([name, value]) => (typeof value === 'string' ? [[name, value]] : [])));\n}\n\n/** The fleet a page's form names: the page's own, sent in a hidden field. */\nexport const FLEET_FIELD = 'fleet';\n","/**\n * What a party's change form asks of the API (decision 0056): only what\n * differs from the party as the fleet holds it. Scope rows it did not show\n * revoke nothing; the scopes every app ship gets, and those the actor does\n * not hold, are never changed.\n */\nimport { idSchema } from '@aeolus-fleet/common';\n\n/** The scopes every app ship gets (0046): shown locked on, and never changed. */\nexport const EVERY_APP_SHIP_SCOPES: readonly string[] = ['messages:send', 'messages:receive'];\n\n/** A form field that ticks a scope: `scope:<scope>`, one field per scope. */\nexport const SCOPE_FIELD_PREFIX = 'scope:';\n\n/** The field a change form sends when it shows the scope rows. */\nexport const SCOPES_SHOWN_FIELD = 'scopesShown';\n\nexport type Changes = { kind: 'changes'; ownerShipId?: string; grant: string[]; revoke: string[] } | { kind: 'refused'; message: string };\n\nexport function changesOf(party: { ownerShipId: string | null; scopes: readonly string[] | null }, sent: { form: Readonly<Record<string, string>>; scopes: readonly string[] }): Changes {\n const { form, scopes } = sent;\n const sentOwner = form.ownerShipId?.trim();\n let ownerShipId: string | undefined;\n if (sentOwner !== undefined && sentOwner !== party.ownerShipId) {\n const parsed = idSchema('ship').safeParse(sentOwner);\n if (!parsed.success) {\n return { kind: 'refused', message: \"The owner's ship id is not a ship id (shp_...)\" };\n }\n ownerShipId = parsed.data;\n }\n const owner = ownerShipId === undefined ? {} : { ownerShipId };\n const held = party.scopes;\n if (form[SCOPES_SHOWN_FIELD] !== 'true' || held === null) {\n return { kind: 'changes', ...owner, grant: [], revoke: [] };\n }\n const own = scopes.filter((scope) => !EVERY_APP_SHIP_SCOPES.includes(scope));\n const isTicked = (scope: string) => form[`${SCOPE_FIELD_PREFIX}${scope}`] !== undefined;\n return {\n kind: 'changes',\n ...owner,\n grant: own.filter((scope) => isTicked(scope) && !held.includes(scope)),\n revoke: own.filter((scope) => !isTicked(scope) && held.includes(scope)),\n };\n}\n"],"names":["addA2aClient","_previous","form","ownerShipId","safeParse","success","kind","message","api","added","parties","mutate","requestId","name","data","scopes","party","bearer","error","tickedScopes","fields","Object","keys","flatMap","field","startsWith","slice","length","IDLE","fieldOf","value","get","fieldsOf","fromEntries","entries","FLEET_FIELD","EVERY_APP_SHIP_SCOPES","SCOPE_FIELD_PREFIX","SCOPES_SHOWN_FIELD","changesOf","sent","sentOwner","trim","undefined","parsed","owner","held","grant","revoke","own","filter","scope","includes","isTicked"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../web/.next-internal/server/app/%28bridge%29/outside-parties/add-a2a-client/page/actions.js%20%28server%20actions%20loader%29","../../../../../web/features/add-a2a-client/actions.ts","../../../../../web/features/add-a2a-client/ticked-scopes.ts","../../../../../web/features/forms/form-state.ts","../../../../../web/features/outside-party/scope-changes.ts"],"sourcesContent":["export {setTheme as '40f534a69ce118b9a051eed56b02d6f3ce60cc9009'} from 'ACTIONS_MODULE0'\nexport {addA2aClient as '60793afca87ede1d711e509d783b4f31c7f74de354'} from 'ACTIONS_MODULE1'\nexport {readSendTo as '4037a88f28c885946acaffd1cdfafe0cbe8f0da59d'} from 'ACTIONS_MODULE2'\nexport {sendShipMessage as '4046bfd2ba403a6ee3e6b63e6a1173263664f48c30'} from 'ACTIONS_MODULE2'\n","'use server';\n\n/**\n * Adding an outside A2A client (decision 0060), as the account signed in:\n * the API checks it holds gateway:approve and grants only scopes it holds,\n * then answers the client's bearer, which the page shows once.\n */\nimport { idSchema } from '@aeolus-fleet/common';\n\nimport { refusalMessageOf, requestApi } from '../../lib/gateway-api/page-api';\nimport { FLEET_FIELD, fieldOf, fieldsOf } from '../forms/form-state';\nimport { tickedScopes } from './ticked-scopes';\n\n/** Where adding stands: not sent, refused with why, or added with the bearer to hand the client. */\nexport type AddA2aClientState = { kind: 'idle' } | { kind: 'refused'; message: string } | { kind: 'added'; name: string; bearer: string };\n\nexport async function addA2aClient(_previous: AddA2aClientState, form: FormData): Promise<AddA2aClientState> {\n const ownerShipId = idSchema('ship').safeParse(fieldOf(form, 'ownerShipId'));\n if (!ownerShipId.success) {\n return { kind: 'refused', message: 'Pick its owner' };\n }\n const api = await requestApi(fieldOf(form, FLEET_FIELD));\n try {\n const added = await api.parties.addA2aClient.mutate({ requestId: fieldOf(form, 'requestId'), name: fieldOf(form, 'name'), ownerShipId: ownerShipId.data, scopes: tickedScopes(fieldsOf(form)) });\n return { kind: 'added', name: added.party.name, bearer: added.bearer };\n } catch (error) {\n return { kind: 'refused', message: refusalMessageOf(error) };\n }\n}\n","import { SCOPE_FIELD_PREFIX } from '../outside-party/scope-changes';\n\n/** The scopes a form ticks, one `scope:<scope>` field each. */\nexport function tickedScopes(fields: Readonly<Record<string, string>>): string[] {\n return Object.keys(fields).flatMap((field) => (field.startsWith(SCOPE_FIELD_PREFIX) ? [field.slice(SCOPE_FIELD_PREFIX.length)] : []));\n}\n","/**\n * What a page's form (a server action) answers the browser: nothing yet,\n * done with what changed, or refused with why, as the API said it. The\n * open network's warning asks for a confirm (interop I-3).\n */\nexport type FormState =\n | { kind: 'idle' }\n | { kind: 'done'; message: string }\n | { kind: 'refused'; message: string }\n | { kind: 'openNetwork'; message: string };\n\nexport const IDLE: FormState = { kind: 'idle' };\n\n/** A form's text field, empty when it was not sent. */\nexport function fieldOf(form: FormData, name: string): string {\n const value = form.get(name);\n return typeof value === 'string' ? value : '';\n}\n\n/** The form's fields as text, files left out. */\nexport function fieldsOf(form: FormData): Record<string, string> {\n return Object.fromEntries([...form.entries()].flatMap(([name, value]) => (typeof value === 'string' ? [[name, value]] : [])));\n}\n\n/** The fleet a page's form names: the page's own, sent in a hidden field. */\nexport const FLEET_FIELD = 'fleet';\n","/**\n * What a party's change form asks of the API (decision 0056): only what\n * differs from the party as the fleet holds it. Scope rows it did not show\n * revoke nothing; the scopes every app ship gets, and those the actor does\n * not hold, are never changed.\n */\nimport { idSchema } from '@aeolus-fleet/common';\n\n/** The scopes every app ship gets (0046): shown locked on, and never changed. */\nexport const EVERY_APP_SHIP_SCOPES: readonly string[] = ['messages:send', 'messages:receive'];\n\n/** A form field that ticks a scope: `scope:<scope>`, one field per scope. */\nexport const SCOPE_FIELD_PREFIX = 'scope:';\n\n/** The field a change form sends when it shows the scope rows. */\nexport const SCOPES_SHOWN_FIELD = 'scopesShown';\n\nexport type Changes = { kind: 'changes'; ownerShipId?: string; grant: string[]; revoke: string[] } | { kind: 'refused'; message: string };\n\nexport function changesOf(party: { ownerShipId: string | null; scopes: readonly string[] | null }, sent: { form: Readonly<Record<string, string>>; scopes: readonly string[] }): Changes {\n const { form, scopes } = sent;\n const sentOwner = form.ownerShipId?.trim();\n let ownerShipId: string | undefined;\n if (sentOwner !== undefined && sentOwner !== party.ownerShipId) {\n const parsed = idSchema('ship').safeParse(sentOwner);\n if (!parsed.success) {\n return { kind: 'refused', message: \"The owner's ship id is not a ship id (shp_...)\" };\n }\n ownerShipId = parsed.data;\n }\n const owner = ownerShipId === undefined ? {} : { ownerShipId };\n const held = party.scopes;\n if (form[SCOPES_SHOWN_FIELD] !== 'true' || held === null) {\n return { kind: 'changes', ...owner, grant: [], revoke: [] };\n }\n const own = scopes.filter((scope) => !EVERY_APP_SHIP_SCOPES.includes(scope));\n const isTicked = (scope: string) => form[`${SCOPE_FIELD_PREFIX}${scope}`] !== undefined;\n return {\n kind: 'changes',\n ...owner,\n grant: own.filter((scope) => isTicked(scope) && !held.includes(scope)),\n revoke: own.filter((scope) => !isTicked(scope) && held.includes(scope)),\n };\n}\n"],"names":["addA2aClient","_previous","form","ownerShipId","safeParse","success","kind","message","api","added","parties","mutate","requestId","name","data","scopes","party","bearer","error","tickedScopes","fields","Object","keys","flatMap","field","startsWith","slice","length","IDLE","fieldOf","value","get","fieldsOf","fromEntries","entries","FLEET_FIELD","EVERY_APP_SHIP_SCOPES","SCOPE_FIELD_PREFIX","SCOPES_SHOWN_FIELD","changesOf","sent","sentOwner","trim","undefined","parsed","owner","held","grant","revoke","own","filter","scope","includes","isTicked"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- (()=>{"use strict";module.exports=[4350,a=>{var b=a.i(70043),c=a.i(37936),d=a.i(18558),e=a.i(66283),f=a.i(1324),g=a.i(72913);async function h(a,b){let c=await (0,e.z)((0,f.v)(b,f.H)),h="true"===(0,f.v)(b,"isOn");try{await c.outsideParties.set.mutate({isOn:h,isOpenNetworkConfirmed:"true"===(0,f.v)(b,"isOpenNetworkConfirmed")})}catch(b){let a=(0,e.s)(b);return"PRECONDITION_FAILED"===(0,e.U)(b)?{kind:"openNetwork",message:a}:{kind:"refused",message:a}}return(0,d.revalidatePath)(g.$),{kind:"done",message:h?"Outside parties are on":"Outside parties are off"}}(0,a.i(13095).ensureServerEntryExports)([h]),(0,c.registerServerReference)(h,"60dce53bc2a2cae9cf249fbfcf153ea1960f7a2077",null);var i=a.i(43889);a.s(["405a2eb373597600f9fe883d2148af9e939e9d4733",()=>b.f,"4078a564ba8f5cdd7b9ff03b95c053b807665e73e5",()=>i.u,"40fa7ac033d89013e8fce8f51fd9645013d9971979",()=>i.e,"60dce53bc2a2cae9cf249fbfcf153ea1960f7a2077",0,h],4350)},29660,a=>{a.s(["H",0,"/bridge/basket","a",0,"/bridge/done","P",0,"/bridge","i",0,"/bridge/settings/routing","T",0,"/bridge/settings","C",0,"/bridge/stay-aware"])},1324,a=>{a.s(["H",0,"fleet","v",0,function(a,b){let c=a.get(b);return"string"==typeof c?c:""},"O",0,function(a){return Object.fromEntries([...a.entries()].flatMap(([a,b])=>"string"==typeof b?[[a,b]]:[]))}])},72913,a=>{let b="/outside-parties",c=`${b}/add`,d=`${b}/add-a2a-client`,e=`${b}/add-a2a-agent`;a.s(["u",0,e,"Z",0,d,"y",0,c,"$",0,b,"N",0,function(a,c){return`${b}/${encodeURIComponent(a)}${void 0===c?"":`/${c}`}`}])}]})();
1
+ (()=>{"use strict";module.exports=[4350,a=>{var b=a.i(70043),c=a.i(37936),d=a.i(18558),e=a.i(66283),f=a.i(1324),g=a.i(72913);async function h(a,b){let c=await (0,e.z)((0,f.v)(b,f.H)),h="true"===(0,f.v)(b,"isOn");try{await c.outsideParties.set.mutate({isOn:h,isOpenNetworkConfirmed:"true"===(0,f.v)(b,"isOpenNetworkConfirmed")})}catch(b){let a=(0,e.s)(b);return"PRECONDITION_FAILED"===(0,e.U)(b)?{kind:"openNetwork",message:a}:{kind:"refused",message:a}}return(0,d.revalidatePath)(g.$),{kind:"done",message:h?"Outside parties are on":"Outside parties are off"}}(0,a.i(13095).ensureServerEntryExports)([h]),(0,c.registerServerReference)(h,"60ec3c2f6bcae5e138433edd19e88be9eed17cf140",null);var i=a.i(43889);a.s(["4037a88f28c885946acaffd1cdfafe0cbe8f0da59d",()=>i.e,"4046bfd2ba403a6ee3e6b63e6a1173263664f48c30",()=>i.u,"40f534a69ce118b9a051eed56b02d6f3ce60cc9009",()=>b.f,"60ec3c2f6bcae5e138433edd19e88be9eed17cf140",0,h],4350)},29660,a=>{a.s(["H",0,"/bridge/basket","a",0,"/bridge/done","P",0,"/bridge","i",0,"/bridge/settings/routing","T",0,"/bridge/settings","C",0,"/bridge/stay-aware"])},1324,a=>{a.s(["H",0,"fleet","v",0,function(a,b){let c=a.get(b);return"string"==typeof c?c:""},"O",0,function(a){return Object.fromEntries([...a.entries()].flatMap(([a,b])=>"string"==typeof b?[[a,b]]:[]))}])},72913,a=>{let b="/outside-parties",c=`${b}/add`,d=`${b}/add-a2a-client`,e=`${b}/add-a2a-agent`;a.s(["u",0,e,"Z",0,d,"y",0,c,"$",0,b,"N",0,function(a,c){return`${b}/${encodeURIComponent(a)}${void 0===c?"":`/${c}`}`}])}]})();
2
2
 
3
3
  //# sourceMappingURL=web_1vvrekkq5mirt._.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../web/.next-internal/server/app/%28bridge%29/outside-parties/page/actions.js%20%28server%20actions%20loader%29","../../../../../web/features/outside-parties/actions.ts","../../../../../web/features/bridge/paths.ts","../../../../../web/features/forms/form-state.ts","../../../../../web/features/outside-parties/paths.ts"],"sourcesContent":["export {setTheme as '405a2eb373597600f9fe883d2148af9e939e9d4733'} from 'ACTIONS_MODULE0'\nexport {switchOutsideParties as '60dce53bc2a2cae9cf249fbfcf153ea1960f7a2077'} from 'ACTIONS_MODULE1'\nexport {readSendTo as '40fa7ac033d89013e8fce8f51fd9645013d9971979'} from 'ACTIONS_MODULE2'\nexport {sendShipMessage as '4078a564ba8f5cdd7b9ff03b95c053b807665e73e5'} from 'ACTIONS_MODULE2'\n","'use server';\n\n/**\n * The Outside parties page's form: turning the fleet's outside parties on\n * or off (interop I-3, decision 0056), as the account signed in. On in a\n * fleet with no network rules is refused with the API's warning until the\n * account confirms it.\n */\nimport { revalidatePath } from 'next/cache';\n\nimport { refusalCodeOf, refusalMessageOf, requestApi } from '../../lib/gateway-api/page-api';\nimport { FLEET_FIELD, fieldOf, type FormState } from '../forms/form-state';\nimport { OUTSIDE_PARTIES_PATH } from './paths';\n\nexport async function switchOutsideParties(_previous: FormState, form: FormData): Promise<FormState> {\n const api = await requestApi(fieldOf(form, FLEET_FIELD));\n const isOn = fieldOf(form, 'isOn') === 'true';\n try {\n await api.outsideParties.set.mutate({ isOn, isOpenNetworkConfirmed: fieldOf(form, 'isOpenNetworkConfirmed') === 'true' });\n } catch (error) {\n const message = refusalMessageOf(error);\n return refusalCodeOf(error) === 'PRECONDITION_FAILED' ? { kind: 'openNetwork', message } : { kind: 'refused', message };\n }\n revalidatePath(OUTSIDE_PARTIES_PATH);\n return { kind: 'done', message: isOn ? 'Outside parties are on' : 'Outside parties are off' };\n}\n","/** Bridge's pages (docs/design/bridge): home, the basket, Stay aware, Done, Your fleet, 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_STAY_AWARE_PATH = '/bridge/stay-aware';\nexport const BRIDGE_DONE_PATH = '/bridge/done';\nexport const BRIDGE_SETTINGS_PATH = '/bridge/settings';\nexport const BRIDGE_ROUTING_PATH = '/bridge/settings/routing';\n","/**\n * What a page's form (a server action) answers the browser: nothing yet,\n * done with what changed, or refused with why, as the API said it. The\n * open network's warning asks for a confirm (interop I-3).\n */\nexport type FormState =\n | { kind: 'idle' }\n | { kind: 'done'; message: string }\n | { kind: 'refused'; message: string }\n | { kind: 'openNetwork'; message: string };\n\nexport const IDLE: FormState = { kind: 'idle' };\n\n/** A form's text field, empty when it was not sent. */\nexport function fieldOf(form: FormData, name: string): string {\n const value = form.get(name);\n return typeof value === 'string' ? value : '';\n}\n\n/** The form's fields as text, files left out. */\nexport function fieldsOf(form: FormData): Record<string, string> {\n return Object.fromEntries([...form.entries()].flatMap(([name, value]) => (typeof value === 'string' ? [[name, value]] : [])));\n}\n\n/** The fleet a page's form names: the page's own, sent in a hidden field. */\nexport const FLEET_FIELD = 'fleet';\n","/** The outside parties' pages. */\nexport const OUTSIDE_PARTIES_PATH = '/outside-parties';\n\nexport const ADD_SERVER_PATH = `${OUTSIDE_PARTIES_PATH}/add`;\n\nexport const ADD_A2A_CLIENT_PATH = `${OUTSIDE_PARTIES_PATH}/add-a2a-client`;\n\nexport const ADD_A2A_AGENT_PATH = `${OUTSIDE_PARTIES_PATH}/add-a2a-agent`;\n\n/** One outside party's page, or one of its own: changing it, retiring it. */\nexport function partyPath(name: string, action?: 'change' | 'retire'): string {\n return `${OUTSIDE_PARTIES_PATH}/${encodeURIComponent(name)}${action === undefined ? '' : `/${action}`}`;\n}\n"],"names":["switchOutsideParties","_previous","form","api","isOn","outsideParties","set","mutate","isOpenNetworkConfirmed","error","message","kind","BRIDGE_PATH","BRIDGE_BASKET_PATH","BRIDGE_STAY_AWARE_PATH","BRIDGE_DONE_PATH","BRIDGE_SETTINGS_PATH","BRIDGE_ROUTING_PATH","IDLE","fieldOf","name","value","get","fieldsOf","Object","fromEntries","entries","flatMap","FLEET_FIELD","OUTSIDE_PARTIES_PATH","ADD_SERVER_PATH","ADD_A2A_CLIENT_PATH","ADD_A2A_AGENT_PATH","partyPath","action","encodeURIComponent","undefined"],"mappings":"4CAAA,IAAA,EAAA,EAAA,CAAA,CAAA,oBCQA,EAAA,EAAA,CAAA,CAAA,OAEA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,OAEO,eAAeA,EAAqBC,CAAoB,CAAEC,CAAc,EAC7E,IAAMC,EAAM,MAAM,CAAA,EAAA,EAAA,CAAA,AAAU,EAAC,CAAA,EAAA,EAAA,CAAA,AAAO,EAACD,EAAM,EAAA,CAAW,GAChDE,EAAiC,SAA1B,CAAA,EAAA,EAAA,CAAA,AAAO,EAACF,EAAM,QAC3B,GAAI,CACF,MAAMC,EAAIE,cAAc,CAACC,GAAG,CAACC,MAAM,CAAC,MAAEH,EAAMI,uBAAwB,AAA4C,SAA5C,CAAA,EAAA,EAAA,CAAA,AAAO,EAACN,EAAM,yBAAqC,EACzH,CAAE,MAAOO,EAAO,CACd,IAAMC,EAAU,CAAA,EAAA,EAAA,CAAA,AAAgB,EAACD,GACjC,MAAgC,wBAAzB,CAAA,EAAA,EAAA,CAAA,AAAa,EAACA,GAAmC,CAAEE,KAAM,sBAAeD,CAAQ,EAAI,CAAEC,KAAM,kBAAWD,CAAQ,CACxH,CAEA,MADA,CAAA,EAAA,EAAA,cAAA,AAAc,EAAC,EAAA,CAAoB,EAC5B,CAAEC,KAAM,OAAQD,QAASN,EAAO,yBAA2B,yBAA0B,CAC9F,0CAXsBJ,IAAAA,CAAAA,EAAAA,EAAAA,uBAAAA,EAAAA,EAAAA,6CAAAA,MDZtB,IAAA,EAAA,EAAA,CAAA,CAAA,yPEAkC,uBAEF,qBAHL,gBAKQ,iCADC,yBAFE,4CCsBX,cAXpB,SAASmB,AAAQjB,CAAc,CAAEkB,CAAY,EAClD,IAAMC,EAAQnB,EAAKoB,GAAG,CAACF,GACvB,MAAwB,UAAjB,OAAOC,EAAqBA,EAAQ,EAC7C,QAGO,SAASE,AAASrB,CAAc,EACrC,OAAOsB,OAAOC,WAAW,CAAC,IAAIvB,EAAKwB,OAAO,GAAG,CAACC,OAAO,CAAC,CAAC,CAACP,EAAMC,EAAM,GAAuB,UAAjB,OAAOA,EAAqB,CAAC,CAACD,EAAMC,EAAM,CAAC,CAAG,EAAE,EAC5H,eCrBO,IAAMQ,EAAuB,mBAEvBC,EAAkB,CAAA,EAAGD,EAAqB,IAAI,CAAC,CAE/CE,EAAsB,CAAA,EAAGF,EAAqB,eAAe,CAAC,CAE9DG,EAAqB,CAAA,EAAGH,EAAqB,cAAc,CAAC,4CAGlE,SAASI,AAAUb,CAAY,CAAEc,CAA4B,EAClE,MAAO,CAAA,EAAGL,EAAqB,CAAC,EAAEM,mBAAmBf,GAAAA,OAAmBgB,IAAXF,EAAuB,GAAK,CAAC,CAAC,EAAEA,EAAAA,CAAQ,CAAA,CAAE,AACzG"}
1
+ {"version":3,"sources":["../../../../../web/.next-internal/server/app/%28bridge%29/outside-parties/page/actions.js%20%28server%20actions%20loader%29","../../../../../web/features/outside-parties/actions.ts","../../../../../web/features/bridge/paths.ts","../../../../../web/features/forms/form-state.ts","../../../../../web/features/outside-parties/paths.ts"],"sourcesContent":["export {setTheme as '40f534a69ce118b9a051eed56b02d6f3ce60cc9009'} from 'ACTIONS_MODULE0'\nexport {switchOutsideParties as '60ec3c2f6bcae5e138433edd19e88be9eed17cf140'} from 'ACTIONS_MODULE1'\nexport {readSendTo as '4037a88f28c885946acaffd1cdfafe0cbe8f0da59d'} from 'ACTIONS_MODULE2'\nexport {sendShipMessage as '4046bfd2ba403a6ee3e6b63e6a1173263664f48c30'} from 'ACTIONS_MODULE2'\n","'use server';\n\n/**\n * The Outside parties page's form: turning the fleet's outside parties on\n * or off (interop I-3, decision 0056), as the account signed in. On in a\n * fleet with no network rules is refused with the API's warning until the\n * account confirms it.\n */\nimport { revalidatePath } from 'next/cache';\n\nimport { refusalCodeOf, refusalMessageOf, requestApi } from '../../lib/gateway-api/page-api';\nimport { FLEET_FIELD, fieldOf, type FormState } from '../forms/form-state';\nimport { OUTSIDE_PARTIES_PATH } from './paths';\n\nexport async function switchOutsideParties(_previous: FormState, form: FormData): Promise<FormState> {\n const api = await requestApi(fieldOf(form, FLEET_FIELD));\n const isOn = fieldOf(form, 'isOn') === 'true';\n try {\n await api.outsideParties.set.mutate({ isOn, isOpenNetworkConfirmed: fieldOf(form, 'isOpenNetworkConfirmed') === 'true' });\n } catch (error) {\n const message = refusalMessageOf(error);\n return refusalCodeOf(error) === 'PRECONDITION_FAILED' ? { kind: 'openNetwork', message } : { kind: 'refused', message };\n }\n revalidatePath(OUTSIDE_PARTIES_PATH);\n return { kind: 'done', message: isOn ? 'Outside parties are on' : 'Outside parties are off' };\n}\n","/** Bridge's pages (docs/design/bridge): home, the basket, Stay aware, Done, Your fleet, 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_STAY_AWARE_PATH = '/bridge/stay-aware';\nexport const BRIDGE_DONE_PATH = '/bridge/done';\nexport const BRIDGE_SETTINGS_PATH = '/bridge/settings';\nexport const BRIDGE_ROUTING_PATH = '/bridge/settings/routing';\n","/**\n * What a page's form (a server action) answers the browser: nothing yet,\n * done with what changed, or refused with why, as the API said it. The\n * open network's warning asks for a confirm (interop I-3).\n */\nexport type FormState =\n | { kind: 'idle' }\n | { kind: 'done'; message: string }\n | { kind: 'refused'; message: string }\n | { kind: 'openNetwork'; message: string };\n\nexport const IDLE: FormState = { kind: 'idle' };\n\n/** A form's text field, empty when it was not sent. */\nexport function fieldOf(form: FormData, name: string): string {\n const value = form.get(name);\n return typeof value === 'string' ? value : '';\n}\n\n/** The form's fields as text, files left out. */\nexport function fieldsOf(form: FormData): Record<string, string> {\n return Object.fromEntries([...form.entries()].flatMap(([name, value]) => (typeof value === 'string' ? [[name, value]] : [])));\n}\n\n/** The fleet a page's form names: the page's own, sent in a hidden field. */\nexport const FLEET_FIELD = 'fleet';\n","/** The outside parties' pages. */\nexport const OUTSIDE_PARTIES_PATH = '/outside-parties';\n\nexport const ADD_SERVER_PATH = `${OUTSIDE_PARTIES_PATH}/add`;\n\nexport const ADD_A2A_CLIENT_PATH = `${OUTSIDE_PARTIES_PATH}/add-a2a-client`;\n\nexport const ADD_A2A_AGENT_PATH = `${OUTSIDE_PARTIES_PATH}/add-a2a-agent`;\n\n/** One outside party's page, or one of its own: changing it, retiring it. */\nexport function partyPath(name: string, action?: 'change' | 'retire'): string {\n return `${OUTSIDE_PARTIES_PATH}/${encodeURIComponent(name)}${action === undefined ? '' : `/${action}`}`;\n}\n"],"names":["switchOutsideParties","_previous","form","api","isOn","outsideParties","set","mutate","isOpenNetworkConfirmed","error","message","kind","BRIDGE_PATH","BRIDGE_BASKET_PATH","BRIDGE_STAY_AWARE_PATH","BRIDGE_DONE_PATH","BRIDGE_SETTINGS_PATH","BRIDGE_ROUTING_PATH","IDLE","fieldOf","name","value","get","fieldsOf","Object","fromEntries","entries","flatMap","FLEET_FIELD","OUTSIDE_PARTIES_PATH","ADD_SERVER_PATH","ADD_A2A_CLIENT_PATH","ADD_A2A_AGENT_PATH","partyPath","action","encodeURIComponent","undefined"],"mappings":"4CAAA,IAAA,EAAA,EAAA,CAAA,CAAA,oBCQA,EAAA,EAAA,CAAA,CAAA,OAEA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,OAEO,eAAeA,EAAqBC,CAAoB,CAAEC,CAAc,EAC7E,IAAMC,EAAM,MAAM,CAAA,EAAA,EAAA,CAAA,AAAU,EAAC,CAAA,EAAA,EAAA,CAAA,AAAO,EAACD,EAAM,EAAA,CAAW,GAChDE,EAAiC,SAA1B,CAAA,EAAA,EAAA,CAAA,AAAO,EAACF,EAAM,QAC3B,GAAI,CACF,MAAMC,EAAIE,cAAc,CAACC,GAAG,CAACC,MAAM,CAAC,MAAEH,EAAMI,uBAAwB,AAA4C,SAA5C,CAAA,EAAA,EAAA,CAAA,AAAO,EAACN,EAAM,yBAAqC,EACzH,CAAE,MAAOO,EAAO,CACd,IAAMC,EAAU,CAAA,EAAA,EAAA,CAAA,AAAgB,EAACD,GACjC,MAAgC,wBAAzB,CAAA,EAAA,EAAA,CAAA,AAAa,EAACA,GAAmC,CAAEE,KAAM,sBAAeD,CAAQ,EAAI,CAAEC,KAAM,kBAAWD,CAAQ,CACxH,CAEA,MADA,CAAA,EAAA,EAAA,cAAA,AAAc,EAAC,EAAA,CAAoB,EAC5B,CAAEC,KAAM,OAAQD,QAASN,EAAO,yBAA2B,yBAA0B,CAC9F,0CAXsBJ,IAAAA,CAAAA,EAAAA,EAAAA,uBAAAA,EAAAA,EAAAA,6CAAAA,MDZtB,IAAA,EAAA,EAAA,CAAA,CAAA,yPEAkC,uBAEF,qBAHL,gBAKQ,iCADC,yBAFE,4CCsBX,cAXpB,SAASmB,AAAQjB,CAAc,CAAEkB,CAAY,EAClD,IAAMC,EAAQnB,EAAKoB,GAAG,CAACF,GACvB,MAAwB,UAAjB,OAAOC,EAAqBA,EAAQ,EAC7C,QAGO,SAASE,AAASrB,CAAc,EACrC,OAAOsB,OAAOC,WAAW,CAAC,IAAIvB,EAAKwB,OAAO,GAAG,CAACC,OAAO,CAAC,CAAC,CAACP,EAAMC,EAAM,GAAuB,UAAjB,OAAOA,EAAqB,CAAC,CAACD,EAAMC,EAAM,CAAC,CAAG,EAAE,EAC5H,eCrBO,IAAMQ,EAAuB,mBAEvBC,EAAkB,CAAA,EAAGD,EAAqB,IAAI,CAAC,CAE/CE,EAAsB,CAAA,EAAGF,EAAqB,eAAe,CAAC,CAE9DG,EAAqB,CAAA,EAAGH,EAAqB,cAAc,CAAC,4CAGlE,SAASI,AAAUb,CAAY,CAAEc,CAA4B,EAClE,MAAO,CAAA,EAAGL,EAAqB,CAAC,EAAEM,mBAAmBf,GAAAA,OAAmBgB,IAAXF,EAAuB,GAAK,CAAC,CAAC,EAAEA,EAAAA,CAAQ,CAAA,CAAE,AACzG"}
@@ -1,3 +1,3 @@
1
- module.exports=[70336,a=>{"use strict";var b=a.i(70043),c=a.i(43889);a.S([b,"405a2eb373597600f9fe883d2148af9e939e9d4733,f",0,c,"4025f8799c16c7535311cefa3faa24de30d4c2384c,y,402d993e2dfc3db69070886137b4bd7c498ddf33cb,q,40645122e875873ac311487cb1c703fb403ea8d5d5,G,4078a564ba8f5cdd7b9ff03b95c053b807665e73e5,u,4087e8a620570d2fe490c35dafd89b7c7f7c863fe5,W,40c65d41cf7b9f23d5c1149049d9da9bedfd77c6e0,K,40fa7ac033d89013e8fce8f51fd9645013d9971979,e,6035c62f7ea2fe751d1fb958ab8f9a2246fbb4f181,D,609c3d0e9c3eb58ec0564b51f34b2d6a63a83e6d8d,v"],70336)}];
1
+ module.exports=[70336,a=>{"use strict";var b=a.i(70043),c=a.i(43889);a.S([b,"40f534a69ce118b9a051eed56b02d6f3ce60cc9009,f",0,c,"4016b132ef866b9d27d7894582f05d8e1c2bb7fa64,G,4037a88f28c885946acaffd1cdfafe0cbe8f0da59d,e,4046bfd2ba403a6ee3e6b63e6a1173263664f48c30,u,4059c1a1cc11277e11c263c228f98e4ef7fcca8cc2,K,4068b06b8eff75e3700a4c5c8fbb83ac83a0c6d854,y,40a5abaacfa2044f020ac5264a4e3d8b3018d86036,q,40b57cfcc56ae2b8aee12201c69fbc898d6d8d98dd,W,6024c7dcfcbd6f0a3f3b2aa2cbc7a042e558d6ecdd,D,609e39a46252ea14c60d18ab89290bc08365819fd7,v"],70336)}];
2
2
 
3
3
  //# sourceMappingURL=web__next-internal_server_app_%28bridge%29_bridge_basket_page_actions_0g7q_rc5nma1e.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../web/.next-internal/server/app/%28bridge%29/bridge/basket/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {setTheme as '405a2eb373597600f9fe883d2148af9e939e9d4733'} from 'ACTIONS_MODULE0'\nexport {readSendTo as '40fa7ac033d89013e8fce8f51fd9645013d9971979'} from 'ACTIONS_MODULE1'\nexport {sendShipMessage as '4078a564ba8f5cdd7b9ff03b95c053b807665e73e5'} from 'ACTIONS_MODULE1'\nexport {removeFromBasket as '6035c62f7ea2fe751d1fb958ab8f9a2246fbb4f181'} from 'ACTIONS_MODULE1'\nexport {sendBasket as '40c65d41cf7b9f23d5c1149049d9da9bedfd77c6e0'} from 'ACTIONS_MODULE1'\nexport {answerDelivery as '402d993e2dfc3db69070886137b4bd7c498ddf33cb'} from 'ACTIONS_MODULE1'\nexport {doneDelivery as '40645122e875873ac311487cb1c703fb403ea8d5d5'} from 'ACTIONS_MODULE1'\nexport {openDelivery as '609c3d0e9c3eb58ec0564b51f34b2d6a63a83e6d8d'} from 'ACTIONS_MODULE1'\nexport {putInBasket as '4025f8799c16c7535311cefa3faa24de30d4c2384c'} from 'ACTIONS_MODULE1'\nexport {putPickInBasket as '4087e8a620570d2fe490c35dafd89b7c7f7c863fe5'} from 'ACTIONS_MODULE1'\n"],"names":[],"mappings":"uCAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA"}
1
+ {"version":3,"sources":["../../../../../web/.next-internal/server/app/%28bridge%29/bridge/basket/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {setTheme as '40f534a69ce118b9a051eed56b02d6f3ce60cc9009'} from 'ACTIONS_MODULE0'\nexport {readSendTo as '4037a88f28c885946acaffd1cdfafe0cbe8f0da59d'} from 'ACTIONS_MODULE1'\nexport {sendShipMessage as '4046bfd2ba403a6ee3e6b63e6a1173263664f48c30'} from 'ACTIONS_MODULE1'\nexport {removeFromBasket as '6024c7dcfcbd6f0a3f3b2aa2cbc7a042e558d6ecdd'} from 'ACTIONS_MODULE1'\nexport {sendBasket as '4059c1a1cc11277e11c263c228f98e4ef7fcca8cc2'} from 'ACTIONS_MODULE1'\nexport {answerDelivery as '40a5abaacfa2044f020ac5264a4e3d8b3018d86036'} from 'ACTIONS_MODULE1'\nexport {doneDelivery as '4016b132ef866b9d27d7894582f05d8e1c2bb7fa64'} from 'ACTIONS_MODULE1'\nexport {openDelivery as '609e39a46252ea14c60d18ab89290bc08365819fd7'} from 'ACTIONS_MODULE1'\nexport {putInBasket as '4068b06b8eff75e3700a4c5c8fbb83ac83a0c6d854'} from 'ACTIONS_MODULE1'\nexport {putPickInBasket as '40b57cfcc56ae2b8aee12201c69fbc898d6d8d98dd'} from 'ACTIONS_MODULE1'\n"],"names":[],"mappings":"uCAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA"}
@@ -1,3 +1,3 @@
1
- module.exports=[90923,a=>{"use strict";var b=a.i(70043),c=a.i(43889);a.S([b,"405a2eb373597600f9fe883d2148af9e939e9d4733,f",0,c,"4078a564ba8f5cdd7b9ff03b95c053b807665e73e5,u,40fa7ac033d89013e8fce8f51fd9645013d9971979,e,60c5b99453e0132475e77c2c3aa9c162dbd903feb1,F"],90923)}];
1
+ module.exports=[90923,a=>{"use strict";var b=a.i(70043),c=a.i(43889);a.S([b,"40f534a69ce118b9a051eed56b02d6f3ce60cc9009,f",0,c,"4037a88f28c885946acaffd1cdfafe0cbe8f0da59d,e,4046bfd2ba403a6ee3e6b63e6a1173263664f48c30,u,60ce27d809d94e7753d994a2637442403a3a82dac6,F"],90923)}];
2
2
 
3
3
  //# sourceMappingURL=web__next-internal_server_app_%28bridge%29_bridge_done_page_actions_0kjm34arntdzv.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../web/.next-internal/server/app/%28bridge%29/bridge/done/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {setTheme as '405a2eb373597600f9fe883d2148af9e939e9d4733'} from 'ACTIONS_MODULE0'\nexport {readSendTo as '40fa7ac033d89013e8fce8f51fd9645013d9971979'} from 'ACTIONS_MODULE1'\nexport {sendShipMessage as '4078a564ba8f5cdd7b9ff03b95c053b807665e73e5'} from 'ACTIONS_MODULE1'\nexport {readMoreRecord as '60c5b99453e0132475e77c2c3aa9c162dbd903feb1'} from 'ACTIONS_MODULE1'\n"],"names":[],"mappings":"uCAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA"}
1
+ {"version":3,"sources":["../../../../../web/.next-internal/server/app/%28bridge%29/bridge/done/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {setTheme as '40f534a69ce118b9a051eed56b02d6f3ce60cc9009'} from 'ACTIONS_MODULE0'\nexport {readSendTo as '4037a88f28c885946acaffd1cdfafe0cbe8f0da59d'} from 'ACTIONS_MODULE1'\nexport {sendShipMessage as '4046bfd2ba403a6ee3e6b63e6a1173263664f48c30'} from 'ACTIONS_MODULE1'\nexport {readMoreRecord as '60ce27d809d94e7753d994a2637442403a3a82dac6'} from 'ACTIONS_MODULE1'\n"],"names":[],"mappings":"uCAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA"}
@@ -1,3 +1,3 @@
1
- module.exports=[28592,a=>{"use strict";var b=a.i(70043),c=a.i(43889);a.S([b,"405a2eb373597600f9fe883d2148af9e939e9d4733,f",0,c,"4078a564ba8f5cdd7b9ff03b95c053b807665e73e5,u,40fa7ac033d89013e8fce8f51fd9645013d9971979,e"],28592)}];
1
+ module.exports=[28592,a=>{"use strict";var b=a.i(70043),c=a.i(43889);a.S([b,"40f534a69ce118b9a051eed56b02d6f3ce60cc9009,f",0,c,"4037a88f28c885946acaffd1cdfafe0cbe8f0da59d,e,4046bfd2ba403a6ee3e6b63e6a1173263664f48c30,u"],28592)}];
2
2
 
3
3
  //# sourceMappingURL=web__next-internal_server_app_%28bridge%29_bridge_fleet_page_actions_19wmo6phgvqfk.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../web/.next-internal/server/app/%28bridge%29/bridge/fleet/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {setTheme as '405a2eb373597600f9fe883d2148af9e939e9d4733'} from 'ACTIONS_MODULE0'\nexport {readSendTo as '40fa7ac033d89013e8fce8f51fd9645013d9971979'} from 'ACTIONS_MODULE1'\nexport {sendShipMessage as '4078a564ba8f5cdd7b9ff03b95c053b807665e73e5'} from 'ACTIONS_MODULE1'\n"],"names":[],"mappings":"uCAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA"}
1
+ {"version":3,"sources":["../../../../../web/.next-internal/server/app/%28bridge%29/bridge/fleet/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {setTheme as '40f534a69ce118b9a051eed56b02d6f3ce60cc9009'} from 'ACTIONS_MODULE0'\nexport {readSendTo as '4037a88f28c885946acaffd1cdfafe0cbe8f0da59d'} from 'ACTIONS_MODULE1'\nexport {sendShipMessage as '4046bfd2ba403a6ee3e6b63e6a1173263664f48c30'} from 'ACTIONS_MODULE1'\n"],"names":[],"mappings":"uCAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA"}
@@ -1,3 +1,3 @@
1
- module.exports=[97856,a=>{"use strict";var b=a.i(70043),c=a.i(43889);a.S([b,"405a2eb373597600f9fe883d2148af9e939e9d4733,f",0,c,"4025f8799c16c7535311cefa3faa24de30d4c2384c,y,402d993e2dfc3db69070886137b4bd7c498ddf33cb,q,40645122e875873ac311487cb1c703fb403ea8d5d5,G,4078a564ba8f5cdd7b9ff03b95c053b807665e73e5,u,4087e8a620570d2fe490c35dafd89b7c7f7c863fe5,W,40fa7ac033d89013e8fce8f51fd9645013d9971979,e,6035c62f7ea2fe751d1fb958ab8f9a2246fbb4f181,D,609c3d0e9c3eb58ec0564b51f34b2d6a63a83e6d8d,v"],97856)}];
1
+ module.exports=[97856,a=>{"use strict";var b=a.i(70043),c=a.i(43889);a.S([b,"40f534a69ce118b9a051eed56b02d6f3ce60cc9009,f",0,c,"4016b132ef866b9d27d7894582f05d8e1c2bb7fa64,G,4037a88f28c885946acaffd1cdfafe0cbe8f0da59d,e,4046bfd2ba403a6ee3e6b63e6a1173263664f48c30,u,4068b06b8eff75e3700a4c5c8fbb83ac83a0c6d854,y,40a5abaacfa2044f020ac5264a4e3d8b3018d86036,q,40b57cfcc56ae2b8aee12201c69fbc898d6d8d98dd,W,6024c7dcfcbd6f0a3f3b2aa2cbc7a042e558d6ecdd,D,609e39a46252ea14c60d18ab89290bc08365819fd7,v"],97856)}];
2
2
 
3
3
  //# sourceMappingURL=web__next-internal_server_app_%28bridge%29_bridge_page_actions_1ok64rg3edm_u.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../web/.next-internal/server/app/%28bridge%29/bridge/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {setTheme as '405a2eb373597600f9fe883d2148af9e939e9d4733'} from 'ACTIONS_MODULE0'\nexport {readSendTo as '40fa7ac033d89013e8fce8f51fd9645013d9971979'} from 'ACTIONS_MODULE1'\nexport {sendShipMessage as '4078a564ba8f5cdd7b9ff03b95c053b807665e73e5'} from 'ACTIONS_MODULE1'\nexport {answerDelivery as '402d993e2dfc3db69070886137b4bd7c498ddf33cb'} from 'ACTIONS_MODULE1'\nexport {doneDelivery as '40645122e875873ac311487cb1c703fb403ea8d5d5'} from 'ACTIONS_MODULE1'\nexport {openDelivery as '609c3d0e9c3eb58ec0564b51f34b2d6a63a83e6d8d'} from 'ACTIONS_MODULE1'\nexport {putInBasket as '4025f8799c16c7535311cefa3faa24de30d4c2384c'} from 'ACTIONS_MODULE1'\nexport {putPickInBasket as '4087e8a620570d2fe490c35dafd89b7c7f7c863fe5'} from 'ACTIONS_MODULE1'\nexport {removeFromBasket as '6035c62f7ea2fe751d1fb958ab8f9a2246fbb4f181'} from 'ACTIONS_MODULE1'\n"],"names":[],"mappings":"uCAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA"}
1
+ {"version":3,"sources":["../../../../../web/.next-internal/server/app/%28bridge%29/bridge/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {setTheme as '40f534a69ce118b9a051eed56b02d6f3ce60cc9009'} from 'ACTIONS_MODULE0'\nexport {readSendTo as '4037a88f28c885946acaffd1cdfafe0cbe8f0da59d'} from 'ACTIONS_MODULE1'\nexport {sendShipMessage as '4046bfd2ba403a6ee3e6b63e6a1173263664f48c30'} from 'ACTIONS_MODULE1'\nexport {answerDelivery as '40a5abaacfa2044f020ac5264a4e3d8b3018d86036'} from 'ACTIONS_MODULE1'\nexport {doneDelivery as '4016b132ef866b9d27d7894582f05d8e1c2bb7fa64'} from 'ACTIONS_MODULE1'\nexport {openDelivery as '609e39a46252ea14c60d18ab89290bc08365819fd7'} from 'ACTIONS_MODULE1'\nexport {putInBasket as '4068b06b8eff75e3700a4c5c8fbb83ac83a0c6d854'} from 'ACTIONS_MODULE1'\nexport {putPickInBasket as '40b57cfcc56ae2b8aee12201c69fbc898d6d8d98dd'} from 'ACTIONS_MODULE1'\nexport {removeFromBasket as '6024c7dcfcbd6f0a3f3b2aa2cbc7a042e558d6ecdd'} from 'ACTIONS_MODULE1'\n"],"names":[],"mappings":"uCAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA"}
@@ -0,0 +1,3 @@
1
+ (()=>{"use strict";module.exports=[66944,a=>{var b=a.i(5050);let c=(0,b.createServerReference)("6024c7dcfcbd6f0a3f3b2aa2cbc7a042e558d6ecdd",b.callServer,void 0,b.findSourceMapURL,"removeFromBasket");a.s(["f",0,c])},91777,a=>{var b=a.i(87924),c=a.i(99271),d=a.i(76983),e=a.i(72131),f=a.i(52779),g=a.i(25959),h=a.i(52766),i=a.i(13331),j=a.i(4923),k=a.i(86264),l=a.i(56963),m=a.i(66944),n=a.i(16550),o=a.i(17758),p=a.i(805),q=a.i(60232),r=a.i(62043),s=a.i(11591),t=a.i(58710),u=a.i(93294),v=a.i(55596);function w(){let{toasts:a}=d.f.useToastManager();return(0,b.jsx)(p.f.Portal,{children:(0,b.jsx)(q.f.Viewport,{className:"fixed bottom-4 left-4 z-50 hidden w-[min(24rem,calc(100vw-2rem))] gap-2 sm:grid",children:a.map(a=>(0,b.jsxs)(r.f.Root,{toast:a,"data-testid":"bridge-basket-toast",className:"flex items-start gap-3 rounded-lg border border-border bg-popover p-4 text-popover-foreground shadow-lg",children:[(0,b.jsx)(v.f,{"aria-hidden":!0,className:"mt-0.5 size-4 shrink-0"}),(0,b.jsxs)(s.f.Content,{className:"grid flex-1 gap-1",children:[(0,b.jsx)(t.f.Title,{className:"font-medium"}),(0,b.jsx)(u.f.Description,{className:"text-caption text-muted-foreground"})]})]},a.id))})})}var x=a.i(11725),y=a.i(74352),z=a.i(10039),A=a.i(34129),B=a.i(18145);function C({fleetId:a,decidePlaces:c,consoleUrl:p,children:q}){let r=d.f.useToastManager(),s=(0,A.P)(),[t,u]=(0,e.useState)(),[v,w]=(0,e.useState)(""),[D,E]=(0,e.useState)(),[F,G]=(0,e.useState)(),[H,I]=(0,e.useState)(),[J,K]=(0,e.useState)(),[L,M]=(0,e.useState)(),[N,O]=(0,e.useState)(),[,P]=(0,e.useTransition)(),[Q,R]=(0,e.useState)(0);(0,B.R)(void 0===t?void 0:(0,o.u)(t.opened.job),()=>{u(void 0)});let S=b=>{E(b.deliveryId),K(void 0),O(void 0),P(async()=>{let c=await (0,j.f)(a,b.deliveryId);if(E(void 0),c.isOk){let a=b.inBasket??null;u({delivery:c.value,opened:{job:b.job,isAlert:b.isAlert??!1,wasNew:"seen"!==b.state},inBasket:a,finished:null}),w(a?.note??""),M(void 0)}else K({deliveryId:b.deliveryId,message:c.message})})},T=({control:a,action:b,onSettled:c})=>{I(a),M(void 0),P(async()=>{let a=await b();I(void 0),a.isOk?c(a.value):M(a.message)})},U=a=>()=>{u(void 0),O(a)},V=void 0===t?void 0:{deliveryId:t.delivery.deliveryId,job:t.opened.job};return(0,b.jsx)(y.f,{list:(0,b.jsxs)("div",{className:"grid gap-4",children:[void 0===N?null:(0,b.jsx)(z.f,{message:N,isFailure:!1}),q({open:S,openingId:D,putPick:(b,c)=>{G(b.deliveryId),K(void 0),O(void 0),P(async()=>{let d=await (0,l.f)({fleet:a,deliveryId:b.deliveryId,option:c});G(void 0),d.isOk?(O(`Option ${String(c)} is in the basket, not sent: ${b.from} receives it when you send the basket.`),R(a=>a+1)):K({deliveryId:b.deliveryId,message:d.message})})},puttingId:F,failure:J,opened:V})]},Q),item:void 0===t?void 0:(({delivery:d,inBasket:e,opened:j,finished:l})=>{let o=d.question?.id;return(0,b.jsx)(x.u,{delivery:d,opened:j,meetingHref:void 0===d.meetingId?void 0:(0,f.f)({fleetId:a,meetingId:d.meetingId}),consoleUrl:p,basketHref:(0,g.f)(n.H,a),inBasket:e,finished:l,places:c,note:v,working:H,failure:L,onNoteChange:w,onAnswer:b=>{T({control:void 0===b?{kind:"note"}:{kind:"option",option:b},action:()=>(0,h.f)({fleet:a,deliveryId:d.deliveryId,input:{questionId:d.question?.id,option:b,note:v}}),onSettled:U(`Your answer went to ${d.from}.`)})},onPut:b=>{T({control:null===b?{kind:"note"}:{kind:"option",option:b},action:()=>(0,k.f)({fleet:a,deliveryId:d.deliveryId,option:b,optionLabel:d.question?.options.find(({key:a})=>a===b)?.label??null,note:v}),onSettled:a=>{var b;u({delivery:d,opened:j,finished:l,inBasket:a}),r.add({title:null===(b=a.option)?"Your note alone in the basket":`Option ${String(b)} in the basket`,description:"Not sent. Still waiting on you until you send it."})}})},onSend:b=>{T({control:{kind:"send"},action:()=>(0,h.f)({fleet:a,deliveryId:d.deliveryId,input:{questionId:o,option:b??void 0,note:v}}),onSettled:U(`Your answer went to ${d.from}.`)})},onRemove:()=>{void 0!==o&&T({control:{kind:"remove"},action:()=>(0,m.f)(a,o),onSettled:U(`Your answer to “${d.title}” is out of the basket; the question still waits on you.`)})},onDone:()=>{T({control:{kind:"done"},action:()=>(0,i.f)({fleet:a,deliveryId:d.deliveryId}),onSettled:U(`Done with “${d.title}”.`)})},onFinishStep:b=>{T({control:{kind:b},action:()=>(0,i.f)({fleet:a,deliveryId:d.deliveryId,step:{outcome:b,note:v}}),onSettled:()=>{u({delivery:d,inBasket:e,opened:j,finished:{outcome:b,note:v.trim(),at:new Date().toISOString()}})}})},onOpen:a=>{S({deliveryId:a,job:j.job})},onSendMessage:void 0===d.alertShip||void 0===s?void 0:a=>{s({alertShip:a})},onBack:()=>{u(void 0)}},d.deliveryId)})(t)})}a.s(["f",0,function({fleetId:a,decidePlaces:d,consoleUrl:e,children:f}){return(0,b.jsxs)(c.f.Provider,{children:[(0,b.jsx)(C,{fleetId:a,decidePlaces:d,consoleUrl:e,children:f}),(0,b.jsx)(w,{})]})}],91777)},52779,52766,13331,4923,86264,56963,a=>{a.s(["f",0,function(a){let b=new URLSearchParams({fleet:a.fleetId,...void 0===a.cursor?{}:{cursor:a.cursor}});return`/meetings/${encodeURIComponent(a.meetingId)}?${b.toString()}`}],52779);var b=a.i(5050);let c=(0,b.createServerReference)("40a5abaacfa2044f020ac5264a4e3d8b3018d86036",b.callServer,void 0,b.findSourceMapURL,"answerDelivery");a.s(["f",0,c],52766);let d=(0,b.createServerReference)("4016b132ef866b9d27d7894582f05d8e1c2bb7fa64",b.callServer,void 0,b.findSourceMapURL,"doneDelivery");a.s(["f",0,d],13331);let e=(0,b.createServerReference)("609e39a46252ea14c60d18ab89290bc08365819fd7",b.callServer,void 0,b.findSourceMapURL,"openDelivery");a.s(["f",0,e],4923);let f=(0,b.createServerReference)("4068b06b8eff75e3700a4c5c8fbb83ac83a0c6d854",b.callServer,void 0,b.findSourceMapURL,"putInBasket");a.s(["f",0,f],86264);let g=(0,b.createServerReference)("40b57cfcc56ae2b8aee12201c69fbc898d6d8d98dd",b.callServer,void 0,b.findSourceMapURL,"putPickInBasket");a.s(["f",0,g],56963)}]})();
2
+
3
+ //# sourceMappingURL=web_features_0cgvngtsgzu24._.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../web/features/bridge/hooks/data%3A68f6dd%20%3Ctext/javascript%3E","../../../../../web/features/bridge/state/item-focus.tsx","../../../../../web/features/bridge/ui/basket-toast.tsx","../../../../../web/features/meeting/paths.ts","../../../../../web/features/bridge/hooks/data%3A9e7d6e%20%3Ctext/javascript%3E","../../../../../web/features/bridge/hooks/data%3Ab3113f%20%3Ctext/javascript%3E","../../../../../web/features/bridge/hooks/data%3A57d5e3%20%3Ctext/javascript%3E","../../../../../web/features/bridge/hooks/data%3A9dea3f%20%3Ctext/javascript%3E","../../../../../web/features/bridge/hooks/data%3A22ec1c%20%3Ctext/javascript%3E"],"sourcesContent":["/* __next_internal_action_entry_do_not_use__ [{\"6024c7dcfcbd6f0a3f3b2aa2cbc7a042e558d6ecdd\":{\"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_5=/*#__PURE__*/createServerReference(\"6024c7dcfcbd6f0a3f3b2aa2cbc7a042e558d6ecdd\",callServer,void 0,findSourceMapURL,\"removeFromBasket\");export{$$RSC_SERVER_ACTION_5 as removeFromBasket};","'use client';\n\nimport { Toast } from '@base-ui/react/toast';\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, putPickInBasket, removeFromBasket, type ActionOutcome } from '../hooks/bridge-actions';\nimport { BRIDGE_BASKET_PATH } from '../paths';\nimport type { FocusedDelivery } from '../services/deliveries';\nimport { openedScreenOf } from '../services/shell';\nimport type { HomeItem } from '../services/items';\nimport type { RoutedPlace } from '../services/routing';\nimport { BasketToasts, putToastOf } from '../ui/basket-toast';\nimport { DeliveryCard, type DeliveryControl, type InBasket, type Opened, type StepFinished } from '../ui/delivery-card';\nimport { ItemSplit } from '../ui/item-split';\nimport { Notice } from '../ui/notice';\nimport { useSendMessage } from './send-message';\nimport { useOpenedItem } from './opened-item';\n\n/** An item to open: by its delivery, with its job, whether an alert, whether it was new, and the answer to it in the basket, if any. A replacement opened from its stale item is new. */\nexport interface ToOpen {\n readonly deliveryId: string;\n readonly job: HomeItem['job'];\n readonly isAlert?: boolean;\n readonly state?: HomeItem['state'];\n readonly inBasket?: InBasket | null;\n}\n\n/** A question to put its asker's pick in the basket from its row: by its delivery, from its asker. */\nexport interface ToPut {\n readonly deliveryId: string;\n readonly from: string;\n}\n\n/** What a list of items gets to open one or put a pick in the basket from its row: the presses, the one opening or putting, and why one could not be. */\nexport interface ItemOpening {\n readonly open: (item: ToOpen) => void;\n readonly openingId: string | undefined;\n readonly putPick: (item: ToPut, option: number) => void;\n readonly puttingId: string | undefined;\n readonly failure: { deliveryId: string; message: string } | undefined;\n /** The item open beside the list, by its delivery and job; none while the list is shown alone. */\n readonly opened: { readonly deliveryId: string; readonly job: HomeItem['job'] } | 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), and stays open showing its outcome. A question's answer goes in the basket (CC24): the\n * question stays open saying so, with a toast (basket.html), and comes out\n * of it there; from its row, a new question's pick goes in it at once, opened by the same press. Answering or being done says so in place, and the page reads\n * itself again. A question names where it shows when the page read its places.\n * An opened alert offers to send its ship a message, as home offers to send\n * any ship one (aeolus-fleet #1547). The open item shows beside its list on\n * a desktop, and on its own screen on a phone (aeolus-fleet#1538).\n */\nexport function ItemFocus({ fleetId, decidePlaces, consoleUrl, children }: { fleetId: string; decidePlaces?: readonly RoutedPlace[]; /** The fleet's console, where an opened alert's ship shows its Health. */ consoleUrl?: string; children: (opening: ItemOpening) => ReactNode }) {\n return (\n <Toast.Provider>\n <FocusedItems fleetId={fleetId} decidePlaces={decidePlaces} consoleUrl={consoleUrl}>{children}</FocusedItems>\n <BasketToasts />\n </Toast.Provider>\n );\n}\n\nfunction FocusedItems({ fleetId, decidePlaces, consoleUrl, children }: { fleetId: string; decidePlaces?: readonly RoutedPlace[]; consoleUrl?: string; children: (opening: ItemOpening) => ReactNode }) {\n const toasts = Toast.useToastManager();\n const sendMessage = useSendMessage();\n const [focus, setFocus] = useState<{ delivery: FocusedDelivery; opened: Opened; inBasket: InBasket | null; finished: StepFinished | null } | undefined>();\n const [note, setNote] = useState('');\n const [openingId, setOpeningId] = useState<string | undefined>();\n const [puttingId, setPuttingId] = 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 // Each pick put from a row shows the list anew, as it is after a card: it reads the page as the action left it.\n const [shownTimes, setShownTimes] = useState(0);\n useOpenedItem(focus === undefined ? undefined : openedScreenOf(focus.opened.job), () => {\n setFocus(undefined);\n });\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, opened: { job: item.job, isAlert: item.isAlert ?? false, wasNew: item.state !== 'seen' }, inBasket, finished: null });\n setNote(inBasket?.note ?? '');\n setFailure(undefined);\n } else {\n setOpenFailure({ deliveryId: item.deliveryId, message: outcome.message });\n }\n });\n };\n\n /** Opens a question and puts its asker's pick in the basket, with no note, from its row: nothing is sent (CC24). */\n const putPick = (item: ToPut, option: number) => {\n setPuttingId(item.deliveryId);\n setOpenFailure(undefined);\n setDone(undefined);\n startTransition(async () => {\n const outcome = await putPickInBasket({ fleet: fleetId, deliveryId: item.deliveryId, option });\n setPuttingId(undefined);\n if (outcome.isOk) {\n setDone(`Option ${String(option)} is in the basket, not sent: ${item.from} receives it when you send the basket.`);\n setShownTimes((times) => times + 1);\n } else {\n setOpenFailure({ deliveryId: item.deliveryId, message: outcome.message });\n }\n });\n };\n\n const settle = <T,>({ control, action, onSettled }: { control: DeliveryControl; action: () => Promise<ActionOutcome<T>>; onSettled: (value: T) => void }) => {\n setWorking(control);\n setFailure(undefined);\n startTransition(async () => {\n const outcome = await action();\n setWorking(undefined);\n if (outcome.isOk) {\n onSettled(outcome.value);\n } else {\n setFailure(outcome.message);\n }\n });\n };\n\n /** Back to the list, saying what was done. */\n const leave = (said: string) => () => {\n setFocus(undefined);\n setDone(said);\n };\n\n const cardOf = ({ delivery, inBasket, opened, finished }: NonNullable<typeof focus>) => {\n const questionId = delivery.question?.id;\n return (\n <DeliveryCard\n key={delivery.deliveryId}\n delivery={delivery}\n opened={opened}\n meetingHref={delivery.meetingId === undefined ? undefined : meetingPathOf({ fleetId, meetingId: delivery.meetingId })}\n consoleUrl={consoleUrl}\n basketHref={inFleet(BRIDGE_BASKET_PATH, fleetId)}\n inBasket={inBasket}\n finished={finished}\n places={decidePlaces}\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 } }), onSettled: leave(`Your answer went to ${delivery.from}.`) }); }\n }\n onPut={(option) => { settle({ control: option === null ? { kind: 'note' } : { kind: 'option', option }, action: () => putInBasket({ fleet: fleetId, deliveryId: delivery.deliveryId, option, optionLabel: delivery.question?.options.find(({ key }) => key === option)?.label ?? null, note }), onSettled: (put) => {\n setFocus({ delivery, opened, finished, inBasket: put });\n toasts.add(putToastOf(put.option));\n } }); }}\n onSend={(option) => { settle({ control: { kind: 'send' }, action: () => answerDelivery({ fleet: fleetId, deliveryId: delivery.deliveryId, input: { questionId, option: option ?? undefined, note } }), onSettled: leave(`Your answer went to ${delivery.from}.`) }); }}\n onRemove={() => {\n if (questionId !== undefined) {\n settle({ control: { kind: 'remove' }, action: () => removeFromBasket(fleetId, questionId), onSettled: leave(`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 }), onSettled: leave(`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 onSettled: () => { setFocus({ delivery, inBasket, opened, finished: { outcome, note: note.trim(), at: new Date().toISOString() } }); },\n });\n }}\n onOpen={(deliveryId) => { open({ deliveryId, job: opened.job }); }}\n onSendMessage={delivery.alertShip === undefined || sendMessage === undefined ? undefined : (alertShip) => { sendMessage({ alertShip }); }}\n onBack={() => { setFocus(undefined); }}\n />\n );\n };\n\n const opened = focus === undefined ? undefined : { deliveryId: focus.delivery.deliveryId, job: focus.opened.job };\n return (\n <ItemSplit\n list={\n <div key={shownTimes} className=\"grid gap-4\">\n {done === undefined ? null : <Notice message={done} isFailure={false} />}\n {children({ open, openingId, putPick, puttingId, failure: openFailure, opened })}\n </div>\n }\n item={focus === undefined ? undefined : cardOf(focus)}\n />\n );\n}\n","'use client';\n\nimport { Toast } from '@base-ui/react/toast';\nimport { ShoppingBasket } from 'lucide-react';\n\n/** What a toast says: what happened, then what it means. */\nexport interface ToastWords {\n readonly title: string;\n readonly description: string;\n}\n\n/** What the toast says once an answer is in the basket (basket.html): what went in, not sent, still waiting. */\nexport function putToastOf(option: number | null): ToastWords {\n return { title: option === null ? 'Your note alone in the basket' : `Option ${String(option)} in the basket`, description: 'Not sent. Still waiting on you until you send it.' };\n}\n\n/** The toasts Bridge raised for the basket, each behind the basket icon, on the popover, gone by themselves: at the left on a desktop and none on a phone, as basket.html draws them. */\nexport function BasketToasts() {\n const { toasts } = Toast.useToastManager();\n return (\n <Toast.Portal>\n <Toast.Viewport className=\"fixed bottom-4 left-4 z-50 hidden w-[min(24rem,calc(100vw-2rem))] gap-2 sm:grid\">\n {toasts.map((toast) => (\n <Toast.Root key={toast.id} toast={toast} data-testid=\"bridge-basket-toast\" className=\"flex items-start gap-3 rounded-lg border border-border bg-popover p-4 text-popover-foreground shadow-lg\">\n <ShoppingBasket aria-hidden className=\"mt-0.5 size-4 shrink-0\" />\n <Toast.Content className=\"grid flex-1 gap-1\">\n <Toast.Title className=\"font-medium\" />\n <Toast.Description className=\"text-caption text-muted-foreground\" />\n </Toast.Content>\n </Toast.Root>\n ))}\n </Toast.Viewport>\n </Toast.Portal>\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__ [{\"40a5abaacfa2044f020ac5264a4e3d8b3018d86036\":{\"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(\"40a5abaacfa2044f020ac5264a4e3d8b3018d86036\",callServer,void 0,findSourceMapURL,\"answerDelivery\");export{$$RSC_SERVER_ACTION_2 as answerDelivery};","/* __next_internal_action_entry_do_not_use__ [{\"4016b132ef866b9d27d7894582f05d8e1c2bb7fa64\":{\"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_7=/*#__PURE__*/createServerReference(\"4016b132ef866b9d27d7894582f05d8e1c2bb7fa64\",callServer,void 0,findSourceMapURL,\"doneDelivery\");export{$$RSC_SERVER_ACTION_7 as doneDelivery};","/* __next_internal_action_entry_do_not_use__ [{\"609e39a46252ea14c60d18ab89290bc08365819fd7\":{\"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(\"609e39a46252ea14c60d18ab89290bc08365819fd7\",callServer,void 0,findSourceMapURL,\"openDelivery\");export{$$RSC_SERVER_ACTION_1 as openDelivery};","/* __next_internal_action_entry_do_not_use__ [{\"4068b06b8eff75e3700a4c5c8fbb83ac83a0c6d854\":{\"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(\"4068b06b8eff75e3700a4c5c8fbb83ac83a0c6d854\",callServer,void 0,findSourceMapURL,\"putInBasket\");export{$$RSC_SERVER_ACTION_3 as putInBasket};","/* __next_internal_action_entry_do_not_use__ [{\"40b57cfcc56ae2b8aee12201c69fbc898d6d8d98dd\":{\"name\":\"putPickInBasket\"}},\"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(\"40b57cfcc56ae2b8aee12201c69fbc898d6d8d98dd\",callServer,void 0,findSourceMapURL,\"putPickInBasket\");export{$$RSC_SERVER_ACTION_4 as putPickInBasket};"],"names":["$$RSC_SERVER_ACTION_5","putToastOf","option","title","String","description","BasketToasts","toasts","useToastManager","Portal","Viewport","className","map","toast","Root","Content","Title","Description","id","MEETINGS_PATH","meetingPathOf","meeting","query","URLSearchParams","fleet","fleetId","cursor","undefined","encodeURIComponent","meetingId","toString"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- (()=>{"use strict";module.exports=[10020,a=>{var b=a.i(87924);a.s(["f",0,function({isOn:a,label:c,isPending:d=!1,type:e="button",onClick:f,testId:g}){return(0,b.jsx)("button",{type:e,role:"switch","aria-checked":a,"aria-label":c,"aria-busy":d,disabled:d,onClick:f,"data-testid":g,className:`inline-flex h-5 w-9 shrink-0 items-center rounded-full border p-0.5 transition-colors disabled:opacity-60 ${a?"border-primary bg-primary":"border-input bg-muted"}`,children:(0,b.jsx)("span",{className:`size-3.5 rounded-full bg-background shadow-sm transition-transform ${a?"translate-x-4":"translate-x-0"} ${d?"animate-pulse":""}`})})}])},74158,a=>{var b=a.i(5050);let c=(0,b.createServerReference)("6017a85e204b1f874712c2a9c128ad13639ab35e8f",b.callServer,void 0,b.findSourceMapURL,"signInToParty");a.s(["f",0,c])},75311,55322,66296,45937,881,92389,a=>{var b=a.i(5050);let c=(0,b.createServerReference)("409bce32036081cb353528d0721f84572f6cedc3c3",b.callServer,void 0,b.findSourceMapURL,"setPartyScopes");function d(a){return a.length<=1?a.join(""):`${a.slice(0,-1).join(", ")} and ${a.at(-1)??""}`}function e(a){return`${String(a)} ${1===a?"tool":"tools"}`}function f(a,b){return null===b?a:`${a}; the fleet sees it at the proxy ship's next statement: ${b}`}a.s(["f",0,c],75311),a.s(["B",0,function({party:a,scopes:b}){return 0===b.length?`Every message to ${a} needs nothing beyond reaching it`:`Every message to ${a} needs ${d(b)}`},"G",0,function({party:a,scopes:b}){return 0===b.length?`Every tool of ${a} needs nothing beyond reaching it`:`Every tool of ${a} needs ${d(b)}`},"y",0,function({scopes:a,how:b,count:c}){return"remove"===b?`${d(a)} removed from ${e(c)}`:0===a.length?`${e(c)} need${1===c?"s":""} nothing of ${1===c?"its":"their"} own`:`${d(a)} set on ${e(c)}`},"I",0,f,"q",0,function(a){return a.map(({scopes:a,count:b})=>`${d(a)} set on ${e(b)}`).join("; ")},"g",0,function({count:a,isOn:b,statementRefusal:c}){return f(`${e(a)} switched ${b?"on":"off"}`,c)}],55322);var g=a.i(87924);a.s(["f",0,function({party:a=[],own:b,listed:c}){if(0===a.length&&0===b.length)return(0,g.jsx)("span",{className:"text-muted-foreground",children:"Nothing"});let d=(a,b)=>{let d=null!==c&&!c.has(a);return(0,g.jsxs)("span",{className:`inline-flex items-center rounded-md border px-2 font-mono text-caption ${d?"border-tone-attention-border bg-tone-attention-bg text-tone-attention-fg":b?"border-transparent bg-muted text-muted-foreground":"border-border"}`,"data-testid":b?"tools-table-party-scope":"tools-table-scope",title:d?"No longer defined in the fleet":b?"Every tool needs it":void 0,children:[a,d?(0,g.jsx)("span",{className:"ml-1 font-sans",children:"(no longer defined)"}):null]},`${b?"party":"own"}-${a}`)};return(0,g.jsxs)("span",{className:"flex flex-wrap gap-1",children:[a.map(a=>d(a,!0)),b.filter(b=>!a.includes(b)).map(a=>d(a,!1))]})}],66296);var h=a.i(82360),h=h,i=a.i(21338),j=a.i(22432),k=h,l=h,m=h,n=h,o=a.i(37987),p=a.i(21817),q=a.i(43256),r=a.i(27350),s=a.i(69035),t=a.i(21777),u=a.i(85804),v=h;let w=({scope:a,description:b})=>({value:a,label:a,description:b});a.s(["f",0,function({label:a,listed:b,picked:c,onPick:d,isDisabled:e=!1,testId:f}){let{contains:x}=h.useFilter(),y=[...b.map(w),...c.filter(a=>!b.some(b=>b.scope===a)).map(a=>({value:a,label:a,description:"No longer defined in the fleet"}))],z=y.filter(a=>c.includes(a.value));return(0,g.jsxs)(i.f.Root,{multiple:!0,items:y,value:z,disabled:e,isItemEqualToValue:(a,b)=>a.value===b.value,onValueChange:(a,b)=>{"escape-key"===b.reason?b.cancel():d(a.map(a=>a.value))},filter:(a,b)=>x(a.label,b)||x(a.description,b),children:[(0,g.jsxs)("div",{className:"grid gap-1","data-testid":f,children:[(0,g.jsx)(j.f.Label,{className:"font-medium",children:a}),(0,g.jsx)(k.InputGroup,{className:"flex min-h-9 flex-wrap items-center gap-1 rounded-md border border-input bg-background px-2 py-1",children:(0,g.jsxs)(l.Chips,{className:"contents",children:[z.map(a=>(0,g.jsxs)(m.Chip,{className:"inline-flex items-center gap-1 rounded-md border border-border bg-muted px-2 font-mono text-caption","aria-label":a.value,children:[a.value,(0,g.jsx)(n.ChipRemove,{className:"text-muted-foreground hover:text-foreground","aria-label":`Remove ${a.value}`,children:"×"})]},a.value)),(0,g.jsx)(o.f.Input,{placeholder:0===z.length?"Search the fleet's scopes":"",className:"h-7 min-w-32 flex-1 bg-transparent outline-none"})]})})]}),(0,g.jsx)(p.f.Portal,{children:(0,g.jsx)(q.f.Positioner,{sideOffset:4,className:"z-50",children:(0,g.jsxs)(r.f.Popup,{className:"max-h-72 w-(--anchor-width) overflow-auto rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md",children:[(0,g.jsx)(s.f.Empty,{className:"px-2 py-1 text-muted-foreground",children:"No scope listed matches."}),(0,g.jsx)(t.f.List,{children:a=>(0,g.jsxs)(u.f.Item,{value:a,className:"grid cursor-default grid-cols-[1rem_1fr] gap-x-2 rounded px-2 py-1 data-highlighted:bg-accent",children:[(0,g.jsx)(v.ItemIndicator,{className:"row-span-2",children:"✓"}),(0,g.jsx)("span",{className:"col-start-2 font-mono text-code",children:a.value}),(0,g.jsx)("span",{className:"col-start-2 text-caption text-muted-foreground",children:a.description})]},a.value)})]})})})]})}],45937);var x=a.i(40197),y=a.i(21341),z=a.i(68758),A=a.i(5358),B=a.i(49867),C=a.i(8842),D=a.i(88412),E=a.i(32043);a.s(["G",0,function({isOpen:a,onClose:b,title:c,description:d,children:e,appliesTo:f,action:h,isSaving:i,refusal:j,onReload:k,isReloading:l,testId:m}){return(0,g.jsx)(x.f.Root,{open:a,onOpenChange:a=>{a||i||b()},children:(0,g.jsxs)(y.f.Portal,{children:[(0,g.jsx)(z.f.Backdrop,{className:"fixed inset-0 z-40 bg-(--overlay)"}),(0,g.jsxs)(A.f.Popup,{className:"fixed top-1/2 left-1/2 z-50 grid max-h-[90vh] w-[min(36rem,calc(100vw-2rem))] -translate-1/2 gap-4 overflow-auto rounded-lg border border-border bg-popover p-6 text-popover-foreground shadow-lg","data-testid":m,children:[(0,g.jsxs)("div",{className:"grid gap-1",children:[(0,g.jsx)(B.f.Title,{className:"text-heading font-semibold",children:c}),(0,g.jsx)(C.f.Description,{className:"text-muted-foreground",children:d})]}),(0,g.jsx)("fieldset",{disabled:i,className:"grid gap-4",children:e}),null===j?null:(0,g.jsxs)("div",{role:"alert",className:"flex flex-wrap items-center justify-between gap-2 rounded-md border border-tone-attention-border bg-tone-attention-bg px-3 py-2 text-tone-attention-fg","data-testid":"tools-table-dialog-refusal",children:[(0,g.jsx)("span",{children:j.message}),j.isConflict?(0,g.jsx)(E.i,{isPending:l,pendingLabel:"Reloading…",onClick:k,"data-testid":"tools-table-reload",children:"Reload"}):null]}),(0,g.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,g.jsx)("span",{className:"text-muted-foreground","data-testid":"tools-table-applies-to",children:f}),(0,g.jsxs)("div",{className:"flex gap-2",children:[(0,g.jsx)("button",{type:"button",className:D.x.secondary,disabled:i,onClick:b,children:"Cancel"}),(0,g.jsx)(E.i,{variant:"primary",isPending:i,pendingLabel:h.pending,disabled:h.isDisabled||l,onClick:h.onPress,"data-testid":"tools-table-dialog-action",children:h.label})]})]})]})]})})},"V",0,function(a,b){return a?.isConflict===!0&&b>a.version?null:a}],881);var F=a.i(76983),G=a.i(805),H=a.i(60232),I=a.i(62043),J=a.i(11591),K=a.i(58710),L=a.i(94894);a.s(["f",0,function(){let{toasts:a}=F.f.useToastManager();return(0,g.jsx)(G.f.Portal,{children:(0,g.jsx)(H.f.Viewport,{className:"fixed right-4 bottom-4 z-50 grid w-[min(24rem,calc(100vw-2rem))] gap-2",children:a.map(a=>(0,g.jsx)(I.f.Root,{toast:a,className:"rounded-md border border-tone-ok-border bg-tone-ok-bg px-4 py-3 text-tone-ok-fg shadow-md","data-testid":"tools-table-toast",children:(0,g.jsxs)(J.f.Content,{className:"flex items-start justify-between gap-3",children:[(0,g.jsx)(K.f.Title,{}),(0,g.jsx)(L.f.Close,{"aria-label":"Dismiss",children:"×"})]})},a.id))})})}],92389)},65705,a=>{var b=a.i(87924),c=a.i(99271),d=a.i(76983),e=a.i(50944),f=a.i(72131),g=a.i(75311),h=a.i(55322),i=a.i(66296),j=a.i(45937),k=a.i(881),l=a.i(92389);function m({fleetId:a,party:c,version:l,scopes:n,listed:o,canChange:p}){let q=(0,e.useRouter)(),r=d.f.useToastManager(),[,s]=(0,f.useTransition)(),[t,u]=(0,f.useTransition)(),[v,w]=(0,f.useState)(!1),[x,y]=(0,f.useState)([]),[z,A]=(0,f.useState)(!1),[B,C]=(0,f.useState)(null),[D,E]=(0,f.useState)(null),[F,G]=(0,f.useState)(0),[H,I]=(0,f.useState)(null),J=H?.basis===n?H.scopes:n;return(0,b.jsxs)("div",{className:`flex flex-wrap items-center gap-2 rounded-md ${F>0?"animate-highlight":""}`,"data-testid":"agent-needs",children:[(0,b.jsx)(i.f,{own:J,listed:null===o?null:new Set(o.map(({scope:a})=>a))}),p&&null!==o?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("button",{type:"button",className:"text-primary hover:underline",onClick:()=>{y([...J]),C(null),w(!0)},"data-testid":"agent-needs-change",children:"Change…"}),(0,b.jsx)(k.G,{isOpen:v,onClose:()=>{w(!1)},title:"Every message needs",description:`The scopes a calling ship must hold to message ${c}.`,appliesTo:`Applies to every message to ${c}`,action:{label:"Save",pending:"Saving…",isDisabled:!1,onPress:()=>{A(!0),C(null);let b=Math.max(l,D??0);s(async()=>{let d=await (0,g.f)({fleetId:a,name:c,version:b,party:x,tools:[]});(A(!1),d.isOk)?(E(d.version),I({basis:n,scopes:x}),w(!1),G(a=>a+1),r.add({title:(0,h.I)((0,h.B)({party:c,scopes:x}),d.statementRefusal)}),q.refresh()):C({message:d.message,isConflict:d.isConflict,version:b})})}},isSaving:z,refusal:(0,k.V)(B,Math.max(l,D??0)),isReloading:t,onReload:()=>{u(()=>{q.refresh()})},testId:"agent-needs-dialog",children:(0,b.jsx)(j.f,{label:"Scopes",listed:o,picked:x,onPick:y,isDisabled:z,testId:"agent-needs-picker"})})]}):null]},F)}a.s(["AgentNeeds",0,function(a){return(0,b.jsxs)(c.f.Provider,{children:[(0,b.jsx)(m,{...a}),(0,b.jsx)(l.f,{})]})}])},44512,a=>{var b,c,d=a.i(87924),e=a.i(72131),f=a.i(23689),g=a.i(26184),h=a.i(4478);let i="--drawer-height",j="--drawer-swipe-movement-x",k="--drawer-swipe-movement-y",l="--drawer-snap-point-offset",m="--drawer-swipe-strength",n="--drawer-swipe-progress",o=e.forwardRef(function(a,b){let{render:c,className:d,style:e,forceRender:i=!1,...j}=a,k=(0,f.x)(),l=k.useState("open"),o=k.useState("nested"),p=k.useState("mounted"),q=k.useState("transitionStatus");return(0,g.a)("div",a,{state:{open:l,transitionStatus:q},ref:[k.context.backdropRef,b],stateAttributesMapping:h.M,props:[{role:"presentation",hidden:!p,style:{pointerEvents:l?void 0:"none",userSelect:"none",WebkitUserSelect:"none",[n]:"0",[m]:"1"}},j],enabled:i||!o})}),p=a.i(29302).f,q="data-drawer-content",r=e.forwardRef(function(a,b){let{render:c,className:d,style:e,...h}=a;return(0,f.x)(),(0,g.a)("div",a,{ref:b,props:[{[q]:""},h]})});var s=a.i(57738),t=a.i(54401),u=a.i(24715),v=a.i(50687),w=a.i(77327),x=a.i(3981),y=a.i(65206),z=a.i(11490);w.f.open,x.f.closed,y.f.startingStyle,z.f.endingStyle;let A="data-swipe-dismiss",B="data-swiping";var C=a.i(86070),D=a.i(5687),E=a.i(69649),F=a.i(54662);let G=e.createContext(void 0);function H(a){let b=e.useContext(G);if(!0!==a&&void 0===b)throw Error((0,F.f)(90));return b}var I=a.i(87828),J=a.i(26599);function K(a,b){let c=a+b;return c>=0?b:-Math.sqrt(-c)-a}function L(a,b,c){if(!Number.isFinite(b)||b<=0)return null;if("number"==typeof a)return Number.isFinite(a)?a<=1?(0,J.f)(a,0,1)*b:a:null;let d=a.trim();if(d.endsWith("px")){let a=Number.parseFloat(d);return Number.isFinite(a)?a:null}if(d.endsWith("rem")){let a=Number.parseFloat(d);return Number.isFinite(a)?a*c:null}return null}function M(a,b){let c=-1,d=1/0;for(let e=0;e<a.length;e+=1){let f=Math.abs(a[e]-b);f<d&&(d=f,c=e)}return c}function N(){let a=(0,f.x)(),{snapPoints:b,activeSnapPoint:c,setActiveSnapPoint:d,popupHeight:g}=H(),h=a.useState("viewportElement"),[i,j]=e.useState(0),[k,l]=e.useState(16),m=(0,t.f)(()=>{let a=(0,I.f)(h).documentElement;j(h?h.offsetHeight:a.clientHeight);let b=parseFloat(getComputedStyle(a).fontSize);Number.isFinite(b)&&l(b)});(0,s.f)(()=>{if(m(),!h||"function"!=typeof ResizeObserver)return;let a=new ResizeObserver(m);return a.observe(h),()=>{a.disconnect()}},[m,h]);let n=e.useMemo(()=>{if(!b||0===b.length||i<=0||g<=0)return[];let a=Math.min(g,i),c=b.map(b=>{let c=L(b,i,k);if(null===c)return null;let d=(0,J.f)(c,0,a);return{value:b,height:d,offset:Math.max(0,g-d)}}).filter(a=>!!a);if(c.length<=1)return c;let d=[],e=[];for(let a=c.length-1;a>=0;a-=1){let b=c[a];e.some(a=>1>=Math.abs(a-b.height))||(e.push(b.height),d.push(b))}return d.reverse(),d},[g,k,b,i]),o=e.useMemo(()=>{if(null===c)return;let a=n.find(a=>Object.is(a.value,c));if(a)return a;let b=Math.min(g,i),d=L(c,i,k);if(null===d)return;let e=(0,J.f)(d,0,b);return n[M(n.map(a=>a.height),e)]},[c,g,n,k,i]);return{snapPoints:b,activeSnapPoint:c,setActiveSnapPoint:d,popupHeight:g,viewportHeight:i,resolvedSnapPoints:n,activeSnapPointOffset:o?.offset??null}}let O=e.createContext(null);var P=a.i(84204);let Q=!1,R={...h.M,expanded:a=>a?{"data-expanded":""}:null,nestedDrawerOpen:a=>a?{"data-nested-drawer-open":""}:null,nestedDrawerSwiping:a=>a?{"data-nested-drawer-swiping":""}:null,swipeDirection:a=>({"data-swipe-direction":a}),swiping:a=>a?{[B]:""}:null},S=e.forwardRef(function(a,b){let c,{render:h,className:o,style:p,finalFocus:q,initialFocus:r,...w}=a,x=(0,f.x)(),y=x.context.popupRef,{swipeDirection:z,frontmostHeight:A,hasNestedDrawer:B,nestedSwiping:F,nestedSwipeProgressStore:G,onPopupHeightChange:I,notifyParentFrontmostHeight:J,notifyParentHasNestedDrawer:L}=H(),M=x.useState("descriptionElementId"),S=x.useState("disablePointerDismissal"),T=x.useState("floatingRootContext"),U=x.useState("popupProps"),V=x.useState("modal"),W=x.useState("mounted"),X=x.useState("nested"),Y=x.useState("nestedOpenDrawerCount"),Z=x.useState("transitionStatus"),$=x.useState("open"),_=x.useState("openMethod"),aa=x.useState("titleElementId"),ab=x.useState("role"),ac=T.useState("floatingId"),ad=w.id??ac,ae=e.useContext(O);(0,C.Z)();let{snapPoints:af,activeSnapPoint:ag,activeSnapPointOffset:ah}=N(),ai=Y>0,aj=ae?.swiping??!1,ak=ae?.swipeStrength??null,[al,am]=e.useState(0),an=e.useRef(0),ao=(0,t.f)(()=>{let a=y.current;if(!a)return;let b=a.offsetHeight;if(!(an.current>0)||!(A>an.current)||!(b>an.current)){if(an.current>0&&B){let a=an.current;am(a),I(a);return}b!==an.current&&(an.current=b,am(b),I(b))}});(0,s.f)(()=>{if(!W){an.current=0,am(0),I(0);return}let a=y.current;if(!a||(Q||("u">typeof CSS&&"registerProperty"in CSS&&([j,k,l].forEach(a=>{try{CSS.registerProperty({name:a,syntax:"<length>",inherits:!1,initialValue:"0px"})}catch{}}),[{name:n,initialValue:"0"},{name:m,initialValue:"1"}].forEach(({name:a,initialValue:b})=>{try{CSS.registerProperty({name:a,syntax:"<number>",inherits:!1,initialValue:b})}catch{}})),Q=!0),ao(),"function"!=typeof ResizeObserver))return;let b=new ResizeObserver(ao);return b.observe(a),()=>{b.disconnect()}},[ao,W,ai,I,y]),(0,s.f)(()=>{let a=()=>{let a=y.current;if(!a)return;let b=G.getSnapshot();b>0?a.style.setProperty(n,`${b}`):a.style.setProperty(n,"0")};a();let b=G.subscribe(a),c=y.current;return()=>{b(),c&&c.style.setProperty(n,"0")}},[G,y]),(0,s.f)(()=>{if($)return J?.(A),()=>{J?.(0)}},[A,$,J]),(0,s.f)(()=>{if(L)return L($||"ending"===Z),()=>{L(!1)}},[L,$,Z]),(0,D.f)({open:$,ref:y,onComplete(){$&&x.context.onOpenChangeComplete?.(!0)}});let ap=void 0===r?y:r,aq=x.useStateSetter("popupElement"),ar=!B&&"ending"!==Z;al&&!ar&&(c=`${al}px`);let as=af&&af.length>0&&("down"===z||"up"===z),at=null;as&&null!==ah&&(at="up"===z?-ah:ah);let au=ae?ae.getDragStyles():u.w;if(as&&"down"===z){let a=Number.parseFloat(String(au[k]));au=aj&&Number.isFinite(a)?{...au,transform:void 0,[k]:`${K(ah??0,a)}px`}:{...au,transform:void 0}}let av=(0,g.a)("div",a,{state:{open:$,nested:X,transitionStatus:Z,expanded:1===ag,nestedDrawerOpen:ai,nestedDrawerSwiping:F,swipeDirection:z,swiping:aj},props:[U,{id:ad,"aria-labelledby":aa,"aria-describedby":M,role:ab,...P.X,hidden:!W,onKeyDown(a){E.f.has(a.key)&&a.stopPropagation()},style:{...au,[n]:"0","--nested-drawers":Y,[i]:c,[l]:"number"==typeof at?`${at}px`:"0px","--drawer-frontmost-height":A?`${A}px`:void 0,[m]:"number"==typeof ak&&Number.isFinite(ak)&&ak>0?`${ak}`:"1"}},w],ref:[b,y,aq],stateAttributesMapping:R});return(0,d.jsx)(v.f,{context:T,openInteractionType:_,disabled:!W,closeOnFocusOut:!S,initialFocus:ap,returnFocus:q,modal:!1!==V,restoreFocus:"popup",children:av})}),T=a.i(91034).f;var U=a.i(68536),V=a.i(50381),W=a.i(44530),X=a.i(61475),Y=a.i(94552),Z=a.i(29433),$=a.i(62600),$=$,_=a.i(36361);let aa=e.createContext(void 0);function ab(){return e.useContext(aa)}function ac(){let a=0,b=new Set;return{getSnapshot:()=>a,set(c){let d=Number.isFinite(c)?c:0;d!==a&&(a=d,b.forEach(a=>{a()}))},subscribe:a=>(b.add(a),()=>{b.delete(a)})}}function ad(){let a=ab(),b=(0,f.x)(!1),c=a?.setDrawerOpen,d=a?.removeDrawer,g=b.useState("open"),h=b.useState("nestedOpenDialogCount"),i=b.useState("popupElement"),j=0===h;return(0,s.f)(()=>{if(d)return()=>{d(b)}},[d,b]),(0,s.f)(()=>{c?.(b,g)},[g,c,b]),e.useEffect(()=>{if(!g||!j||!X.f.os.android)return;let a=(0,W.f)(i).CloseWatcher;if(!a)return;let c=new a,d=(0,U.f)(c,"cancel",function(a){if(!b.select("open"))return;let c=(0,Y.j)($.closeWatcher,a);a.cancelable||(c.cancel=u.x),b.setOpen(!1,c),c.isCanceled&&a.preventDefault()});return()=>{d(),c.destroy()}},[b,j,g,i]),null}let ae=a.i(73343).f,af=a.i(83224).f;var ag=a.i(35112),ah=a.i(26476),ai=a.i(54184),aj=a.i(28077);let ak=e.forwardRef(function(a,b){let{render:c,className:d,style:e,children:h,...i}=a,j=(0,C.Z)(),k=(0,f.x)(),l=k.useState("open"),m=k.useState("nested"),n=k.useState("transitionStatus"),o=k.useState("nestedOpenDialogCount"),p=k.useState("mounted"),q=k.useStateSetter("viewportElement");return(0,g.a)("div",a,{enabled:j||p,state:{open:l,nested:m,transitionStatus:n,nestedDialogOpen:o>0},ref:[b,q],stateAttributesMapping:aj.f,props:[{role:"presentation",hidden:!p,style:{pointerEvents:l?void 0:"none"},children:h},i]})});w.f.open,x.f.closed,y.f.startingStyle,z.f.endingStyle;var al=a.i(32318),am=a.i(56957),an=$,ao=a.i(30116),ap=a.i(89065),aq=a.i(59742),ar=a.i(82204),as=a.i(45410);let at=e.createContext(void 0),au=`[${q}]`,av={horizontal:`[${ar.a}="x"]`,vertical:`[${ar.a}="y"]`},aw=e.forwardRef(function(a,b){let{render:c,className:g,style:h,children:l,...m}=a,o=(0,f.x)(),p=o.context.popupRef,q=o.context.backdropRef,{swipeDirection:r,notifyParentSwipingChange:u,notifyParentSwipeProgressChange:v,frontmostHeight:w,snapToSequentialPoints:x,swipeAreaActiveRef:y}=H(),z=ab(),{snapPoints:B,resolvedSnapPoints:C,activeSnapPoint:D,activeSnapPointOffset:E,setActiveSnapPoint:F,popupHeight:G}=N(),L=o.useState("open"),P=o.useState("mounted"),Q=o.useState("nested"),R=o.useState("nestedOpenDrawerCount"),S=o.useState("viewportElement"),T=o.useState("popupElement"),V=z?.visualStateStore,X=R>0,Z="left"===r||"right"===r?"horizontal":"vertical",$="vertical"===Z,_=$?"horizontal":"vertical",[aa,ac]=e.useState(null),ad=e.useRef(void 0),ae=e.useRef(null),af=(0,ai.z)(),aj=e.useRef(!1),aw=e.useRef(!1),aE=e.useRef(""),aF=e.useRef(!1),aG=e.useRef(!1),aH=e.useRef(null),aI=e.useContext(at),aJ=e.useMemo(()=>{if(!B||B.length<2||C.length<2||"down"!==r&&"up"!==r)return null;let a=C.map(a=>a.offset).sort((a,b)=>a-b),b=a[0];return{minOffset:b,range:a[1]-b}},[C,B,r]),aK=e.useMemo(()=>aJ&&null!==E?(0,J.f)((E-aJ.minOffset)/aJ.range,0,1):null,[E,aJ]),aL=e.useMemo(()=>B&&B.length>0&&("down"===r||"up"===r)?"down"===r?["down","up"]:["up","down"]:[r],[B,r]),aM=(0,t.f)(a=>{p.current?.toggleAttribute(A,a),q.current?.toggleAttribute(A,a)}),aN=(0,t.f)(()=>{aM(!1),p.current?.removeAttribute(ap.f.endingStyle),ac(null)}),aO=(0,t.f)(()=>{aw.current&&(aw.current=!1,u?.(!1))}),aP=(0,t.f)((a,b,c)=>{let d=L&&!Q&&b,e=d?a:0,f=L&&b?a:0;c&&v&&(v(f),f<=0&&aO()),V?.set({swipeProgress:e,frontmostHeight:e>0?w:0});let g=q.current;if(!g)return;let h=d&&e>0;g.style.setProperty(n,h?`${e}`:"0"),h&&w>0?g.style.setProperty(i,`${w}px`):g.style.removeProperty(i)}),aQ=(0,am.w)({enabled:P&&!X,directions:aL,elementRef:o.context.popupRef,ignoreSelectorWhenTouch:!1,ignoreScrollableAncestors:!0,movementCssVars:{x:j,y:k},onSwipeStart(a){if("touches"in a||"touch"===a.pointerType)return;let b=p.current,c=(0,I.f)(b),d=c.getSelection?.();if(!d||d.isCollapsed)return;let e=(0,ah.m)(d.anchorNode)?d.anchorNode:d.anchorNode?.parentElement,f=(0,ah.m)(d.focusNode)?d.focusNode:d.focusNode?.parentElement;((0,ao.I)(b,e)||(0,ao.I)(b,f))&&d.removeAllRanges()},onSwipingChange(a){aj.current=a,ax(o.context.backdropRef.current,a),a||v||aO()},swipeThreshold:({element:a,direction:b})=>az(a,b),canStart(a,b){let c=o.context.popupRef.current;if(!c)return!1;let d=b.nativeEvent,e="touches"in d||"touch"===d.pointerType,f=e?aH.current:null,g=c.ownerDocument,h=(0,as.f)(c.getRootNode(),a.x,a.y);return!(!f?.startedInPopup&&!(0,ao.I)(c,h)||e&&aA(g,c)||f?.hasCrossAxisGestureTarget&&!f.drawerAxisAttributed&&!0!==f.allowSwipe)},onProgress(a,b){let c=aj.current;c&&function(a){if(aw.current||!a)return;let b=a.direction??r;10>Math.abs((0,am.R)(b,a.deltaX,a.deltaY))||(aw.current=!0,u?.(!0))}(b);let d=!!(B&&B.length>0);if(c&&"down"===r&&d&&b){let a=o.context.popupRef.current;a&&(a.style.removeProperty("transform"),a.style.setProperty(k,`${K(E??0,b.deltaY)}px`))}let e=a;if(aJ&&G>0){let a=E??aJ.minOffset;if(c&&b&&Number.isFinite(b.deltaY)){let c;c=(0,J.f)(a+b.deltaY,0,G),e=(0,J.f)((c-aJ.minOffset)/aJ.range,0,1)}else null!==aK&&(e=aK)}c||(v?.(0),aO()),aP(e,!0,c)},onRelease({event:a,deltaX:b,deltaY:c,direction:d,velocityX:e,velocityY:f,releaseVelocityX:g,releaseVelocityY:h}){let i=o.context.popupRef.current;if(!i)return void aN();function j(a){aO(),aM(!0),i.style.removeProperty("transition"),i.setAttribute(ap.f.endingStyle,""),ag.flushSync(()=>{ac(function(a,b,c,d,e,f,g,h){let i=ay(a,b);if(i<=0)return null;let j=Math.max(0,i-((("down"===b||"up"===b)&&B&&B.length>0?E??0:0)+(0,am.R)(b,c,d)));if(j<=0)return null;let k=(0,am.R)(b,g,h),l=Math.abs(k)>0?k:(0,am.R)(b,e,f);if(l<=.2)return null;let m=(0,J.f)(l,.2,4);return .1+((0,J.f)(j/m,80,360)-80)/280*.9}(i,a,b,c,e,f,g,h))})}if(!B||0===B.length){if(!d)return void aN();let a=(0,am.R)(d,b,c);if(a<=0)return aN(),!1;if((0,am.R)(d,e,f)>=.5)return j(d),!0;let g=a>az(i,d);return g?j(d):aN(),g}if("down"!==r&&"up"!==r)return void aN();if(!G)return aN(),!1;if(0===C.length)return void aN();let k="down"===r?c:-c,l=Math.sign(k),m="down"===r?h:-h,n="down"===r?f:-f,p=m;if(0!==l&&Math.abs(k)>=10){let a=Math.sign(p);0!==a&&a!==l&&(p=n)}let q=E??0,s=(0,J.f)(q+k,0,G),t=Math.abs(p)>=.5?300*(0,J.f)(p,-4,4):0,u=x?s:(0,J.f)(s+t,0,G),v=(0,Y.j)(an.swipe,a),w=()=>(aP(0,!0,!0),aN(),!1),y=a=>(F(a.value,v),w()),z=a=>d?(F(null,v),v.isCanceled)?w():(ad.current=D,j(r),!0):y(a);if(x){let a=[...C].sort((a,b)=>a.offset-b.offset),b=a.map(a=>a.offset),c=M(b,q),d=a[M(b,u)],e=Math.sign(p),f=u;if(0!==l&&0!==e&&e===l&&Math.abs(p)>=.5){let b=(0,J.f)(c+l,0,a.length-1);if(b!==c){let c=a[b];(l>0?u<c.offset:u>c.offset)&&(d=c,f=c.offset)}else if(l>0)return z(d)}return Math.abs(f-G)<Math.abs(f-d.offset)?z(d):y(d)}let A=C[M(C.map(a=>a.offset),u)];return p>=.5&&k>0||Math.abs(u-G)<Math.abs(u-A.offset)?z(A):y(A)},onDismiss(a){V?.set({swipeProgress:0,frontmostHeight:0});let b=o.context.backdropRef.current;b&&(b.style.setProperty(n,"0"),b.style.removeProperty(i));let c=(0,Y.j)(an.swipe,a);if(o.setOpen(!1,c),c.isCanceled){let b=ad.current;void 0!==b&&F(b,(0,Y.j)(an.swipe,a)),ad.current=void 0,ae.current?.(),aN();return}o.select("open")?af.request(()=>{if(o.select("open")){let b=ad.current;void 0!==b&&F(b,(0,Y.j)(an.swipe,a)),ad.current=void 0,aN(),ae.current?.()}else ad.current=void 0}):(ad.current=void 0,aM(!0))}}),aR=aQ.getPointerProps(),aS=aQ.getTouchProps(),{moveNative:aT,reset:aU}=aQ;ae.current=aU,e.useEffect(()=>{let a=S??T;if(!a||!L||!P)return;let b=(0,I.f)(a);return(0,U.f)(b,"touchmove",function(c){var d,e;if(aI?.onTouchMove(c),aG.current)return;let f=aH.current,g=c.touches[0];g&&f&&(!function(c,d,e){let f=$?e.clientY-d.lastY:e.clientX-d.lastX;if(2===c.touches.length||aA(b,a)||X||function(a,b,c,d){if(a.preserveNativeCrossAxisScroll)return!0;if(a.drawerAxisAttributed||!0===a.allowSwipe||!a.hasCrossAxisGestureTarget)return!1;if(!b.cancelable)return a.preserveNativeCrossAxisScroll=!0,!0;let e=d?c.clientY-a.startY:c.clientX-a.startX,f=d?c.clientX-a.startX:c.clientY-a.startY,g=Math.abs(e),h=Math.abs(f);return h>=6&&h>g+2?(a.preserveNativeCrossAxisScroll=!0,!0):!(g>=6)||(a.drawerAxisAttributed=!0,!1)}(d,c,e,$))return;let g=d.scrollTarget;if(!g||g===b.documentElement||g===b.body){c.cancelable&&c.preventDefault(),c.stopPropagation(),aT(c,a);return}if(!(aB(g,Z).max>0)){c.cancelable&&c.preventDefault(),c.stopPropagation();return}if(0!==f){var h,i,j,k;let a=(h=g,i=Z,j=r,k=f,!!(aD(j,i)?k>0:k<0)&&aC(h,i,j));d.allowSwipe?c.cancelable&&c.preventDefault():c.cancelable&&a?(d.allowSwipe=!0,c.preventDefault()):d.allowSwipe=!1}!0===d.allowSwipe&&(c.stopPropagation(),aT(c,a))}(c,f,g),(d=f).lastX=(e=g).clientX,d.lastY=e.clientY)},{passive:!1,capture:!0})},[P,X,L,T,$,Z,r,aT,S,aI]),(0,s.f)(()=>{aJ&&!aQ.swiping&&aP(!L||Q?0:aK??0,!0,!1)},[aP,w,Q,v,L,aK,aJ,aQ.swiping,o,V]),(0,s.f)(()=>{if(v)return L||v(0),()=>{v(0)}},[v,L]),(0,s.f)(()=>{L&&(y.current||aU(),aN())},[aN,L,aU,y]),(0,s.f)(()=>{let a=q.current;return()=>{V?.set({swipeProgress:0,frontmostHeight:0}),ax(a,!1);let b=q.current;b!==a&&ax(b,!1),aO()}},[q,aO,V]);let aV=e.useMemo(()=>({swiping:aQ.swiping,getDragStyles:aQ.getDragStyles,swipeStrength:aa??null,setSwipeDismissed:aM}),[aM,aQ.getDragStyles,aQ.swiping,aa]);function aW(a){aG.current=a,aH.current=null}function aX(){aW(!1),aE.current="",aF.current=!1}function aY(a){return aE.current="","touch"!==a.pointerType}return(0,d.jsx)(ak,{ref:b,className:g,style:h,render:c,...(0,al.w)(m,{onPointerDown(a){var b,c;if(aE.current=a.pointerType,aF.current="pen"===a.pointerType,!L||!P||X)return;let d=(0,as.f)(a.currentTarget.getRootNode(),a.clientX,a.clientY);b=d,(0,ao.h)(b,ar.u)||(c=d,(0,ao.h)(c,au))||"touch"!==a.pointerType&&aR.onPointerDown?.(a)},onPointerMove(a){"touch"!==a.pointerType&&aR.onPointerMove?.(a)},onPointerUp(a){aY(a)&&aR.onPointerUp?.(a)},onPointerCancel(a){aY(a)&&aR.onPointerCancel?.(a)},onTouchStart(a){var b,c,d;if("pen"===aE.current&&aF.current){aF.current=!1,aW(!1);return}if(!L||!P||X)return void aW(!1);let e=a.touches[0];if(!e)return;if(c=(b=a).nativeEvent,d=(0,W.f)(b.currentTarget),c.composedPath().some(a=>a instanceof d.HTMLInputElement&&"range"===a.type))return void aW(!1);let f=a.currentTarget,g=(0,as.f)(f.getRootNode(),e.clientX,e.clientY),h=(0,ao.Z)(a.nativeEvent),i=(0,ah.m)(h)?h:f;if(!(0,ao.I)(f,i)||(aI?.onTouchStart(a),(0,ao.h)(g,`${ar.u}:not(${av[_]})`)))return void aW(!0);aG.current=!1;let j=(0,aq.U)(i,f,Z),k=null!=(0,aq.U)(i,f,_)||null!=(0,ao.h)(g,av[_]),l=null;j&&(l=!!aC(j,Z,r)&&null),aH.current={startX:e.clientX,startY:e.clientY,lastX:e.clientX,lastY:e.clientY,startedInPopup:(0,ao.I)(p.current,g),scrollTarget:j,hasCrossAxisGestureTarget:k,allowSwipe:l,preserveNativeCrossAxisScroll:!1,drawerAxisAttributed:!1},aS.onTouchStart?.(a)},onTouchEnd(a){aI?.onTouchEnd(a),aX(),aS.onTouchEnd?.(a)},onTouchCancel(a){aI?.onTouchCancel(),aX(),aS.onTouchCancel?.(a)},"data-nested-dialog-open":void 0}),children:(0,d.jsx)(O.Provider,{value:aV,children:l})})});function ax(a,b){a?.toggleAttribute(B,b)}function ay(a,b){return"left"===b||"right"===b?a.offsetWidth:a.offsetHeight}function az(a,b){return Math.max(.5*ay(a,b),10)}function aA(a,b){let c,d,e=(0,ao.T)(a);if(e&&(0,ao.I)(b,e)&&("INPUT"===e.tagName||"TEXTAREA"===e.tagName)){let{selectionStart:a,selectionEnd:b}=e;if(null!=a&&null!=b&&a<b)return!0}let f=a.getSelection?.();return!!f&&!f.isCollapsed&&(c=(0,ah.m)(f.anchorNode)?f.anchorNode:f.anchorNode?.parentElement,d=(0,ah.m)(f.focusNode)?f.focusNode:f.focusNode?.parentElement,f.containsNode(b,!0)||(0,ao.I)(b,c)||(0,ao.I)(b,d))}function aB(a,b){if("vertical"===b){let b=Math.max(0,a.scrollHeight-a.clientHeight);return{offset:a.scrollTop,max:b}}let c=Math.max(0,a.scrollWidth-a.clientWidth);return{offset:a.scrollLeft,max:c}}function aC(a,b,c){let d=aD(c,b),{offset:e,max:f}=aB(a,b);return d?e<=0:e>=f}function aD(a,b){return"vertical"===b?"down"===a:"right"===a}a.s(["Backdrop",0,o,"Close",0,p,"Content",0,r,"Popup",0,S,"Portal",0,T,"Root",0,function(a){let{children:f,open:g,defaultOpen:h=!1,onOpenChange:i,onOpenChangeComplete:j,disablePointerDismissal:k=!1,modal:l=!0,actionsRef:m,handle:n,triggerId:o,defaultTriggerId:p=null,swipeDirection:q="down",snapToSequentialPoints:r=!1,snapPoints:s,snapPoint:u,defaultSnapPoint:v,onSnapPointChange:w}=a,x=H(!0),y=x?.onNestedSwipeProgressChange,z=x?.onNestedFrontmostHeightChange,A=x?.onNestedSwipingChange,B=x?.onNestedDrawerPresenceChange,[C,D]=e.useState(0),[E,F]=e.useState(0),[I,J]=e.useState(!1),[K,L]=e.useState(!1),[M]=e.useState(ac),N=void 0!==v?v:s?.[0]??null,O=void 0!==u,[P,Q]=(0,V.f)({controlled:u,default:N,name:"Drawer",state:"snapPoint"}),R=e.useRef(!1),S=e.useRef(!1),T=(0,t.f)((a,b)=>{let c=b??(0,Y.j)(Z.f.none);w?.(a,c),c.isCanceled||Q(a)}),U=e.useMemo(()=>O||!s||0===s.length||null!==P&&s.some(a=>Object.is(a,P))?P:N,[P,O,N,s]),W=(0,t.f)(a=>{D(a),!R.current&&a>0&&F(a)}),X=(0,t.f)(a=>{if(a>0){R.current=!0,F(a);return}R.current=!1,C>0&&F(C)}),$=(0,t.f)(a=>{J(a)}),aa=(0,t.f)(a=>{M.set(a),y?.(a)}),ab=(0,t.f)(a=>{L(a),A?.(a)}),ae=(0,t.f)((a,b)=>{i?.(a,b),!b.isCanceled&&!a&&s&&s.length>0&&T(N,(0,Y.j)(b.reason,b.event,b.trigger))}),af=e.useMemo(()=>({swipeDirection:q,swipeAreaActiveRef:S,snapToSequentialPoints:r,snapPoints:s,activeSnapPoint:U,setActiveSnapPoint:T,frontmostHeight:E,popupHeight:C,hasNestedDrawer:I,nestedSwiping:K,nestedSwipeProgressStore:M,onNestedDrawerPresenceChange:$,onPopupHeightChange:W,onNestedFrontmostHeightChange:X,onNestedSwipingChange:ab,onNestedSwipeProgressChange:aa,notifyParentFrontmostHeight:z,notifyParentSwipingChange:A,notifyParentSwipeProgressChange:y,notifyParentHasNestedDrawer:B}),[U,E,I,K,M,B,y,A,z,$,X,aa,ab,W,C,T,s,r,S,q]),ag="function"==typeof f?a=>(0,d.jsxs)(e.Fragment,{children:[b||(b=(0,d.jsx)(ad,{})),f(a)]}):(0,d.jsxs)(e.Fragment,{children:[c||(c=(0,d.jsx)(ad,{})),f]}),ah=(0,_.f)("drawer",{open:g,defaultOpen:h,onOpenChange:ae,onOpenChangeComplete:j,disablePointerDismissal:k,modal:l,actionsRef:m,handle:n,triggerId:o,defaultTriggerId:p,children:ag});return(0,d.jsx)(G.Provider,{value:af,children:ah})},"Title",0,ae,"Trigger",0,af,"Viewport",0,aw],35564);var aE=a.i(35564),aE=aE,aF=aE,aG=aE,aH=aE,aI=aE,aJ=aE,aK=aE,aL=aE,aM=aE,aN=a.i(99271),aO=a.i(76983),aP=a.i(50944),aQ=a.i(88412),aR=a.i(10020),aS=a.i(32043),aT=a.i(47763),aU=a.i(75311),aV=a.i(5050);let aW=(0,aV.createServerReference)("406e4e7276d7c18215bc3db1651af1bd4fdc785256",aV.callServer,void 0,aV.findSourceMapURL,"switchPartyTools"),aX=[{how:"add",label:"Add to each"},{how:"remove",label:"Remove from each"},{how:"replace",label:"Replace with these"}];var aY=a.i(55322);let aZ=[{state:"all",label:"All"},{state:"on",label:"On"},{state:"off",label:"Off"},{state:"new",label:"New"},{state:"needsNothing",label:"Needs nothing"}];var a$=a.i(66296),a_=a.i(45937),a0=a.i(881),a1=a.i(92389);function a2(a){return a?.split("\n").find(a=>""!==a.trim())?.trim()??""}function a3({fleetId:a,party:b,tools:c,version:f,partyScopes:g,listed:h,canChange:i,serverRefusal:j}){var k;let l,m,n=(0,aP.useRouter)(),o=aO.f.useToastManager(),[,p]=(0,e.useTransition)(),[q,r]=(0,e.useTransition)(),[s,t]=(0,e.useState)(""),[u,v]=(0,e.useState)("all"),[w,x]=(0,e.useState)(new Set),[y,z]=(0,e.useState)(null),[A,B]=(0,e.useState)([]),[C,D]=(0,e.useState)("add"),[E,F]=(0,e.useState)({readOnly:[],other:[]}),[G,H]=(0,e.useState)(!1),[I,J]=(0,e.useState)(null),[K,L]=(0,e.useState)(null),[M,N]=(0,e.useState)(null),[O,P]=(0,e.useState)({names:new Set,round:0}),[Q,R]=(0,e.useState)(null),[S,T]=(0,e.useState)(!1),[U,V]=(0,e.useState)(null),W=U?.basis===c?U:null,X=null===W?c:c.map(a=>({...a,scopes:W.scopes.get(a.name)??a.scopes,isOn:null===a.isOn?null:W.switches.get(a.name)??a.isOn})),Y=W?.party??g,Z=Math.max(f,Q??0),$=null===h?null:new Set(h.map(({scope:a})=>a)),_=(l=(k={name:s,state:u,partyScopes:Y}).name.trim().toLowerCase(),X.filter(a=>a.name.toLowerCase().includes(l)&&function(a,{state:b,partyScopes:c}){switch(b){case"all":return!0;case"on":return!0===a.isOn;case"off":return!1===a.isOn;case"new":return a.isNew;case"needsNothing":return 0===c.length&&0===a.scopes.length}}(a,k))),aa=X.filter(({name:a})=>w.has(a)),ab=null===j,ac=_.length>0&&_.every(({name:a})=>w.has(a)),ad=function(a){let b={readOnly:[],other:[],withoutHints:[]};for(let c of a.filter(({scopes:a})=>0===a.length))!0===c.isDestructive||!1===c.isReadOnly?b.other.push(c.name):!0===c.isReadOnly?b.readOnly.push(c.name):b.withoutHints.push(c.name);return b}(X),ae=[...(m=(a,b)=>0===b.length?[]:a.map(a=>({tool:a,scopes:[...b]})))(ad.readOnly,E.readOnly),...m(ad.other,E.other)],af=({outcome:a,changed:b,message:d,change:e})=>{V({basis:c,party:e.party??W?.party??null,scopes:new Map([...W?.scopes??[],...(e.scopes??[]).map(({tool:a,scopes:b})=>[a,b])]),switches:new Map([...W?.switches??[],...e.switches??[]])}),null!==a.version&&R(a.version),P(a=>({names:new Set(b),round:a.round+1})),o.add({title:(0,aY.I)(d,a.statementRefusal)}),n.refresh()},ag=a=>{J(null),T(!1),B("party"===a?[...Y]:[]),D("add"),F({readOnly:[],other:[]}),z(a)},ah=()=>{z(null),J(null)},ai=({change:c,changed:d,message:e})=>{H(!0),J(null),p(async()=>{let f=await (0,aU.f)({fleetId:a,name:b,version:Z,...c});(H(!1),f.isOk)?(z(null),x(new Set),af({outcome:f,changed:d,message:e,change:{...void 0===c.party?{}:{party:c.party},scopes:c.tools}})):J({message:f.message,isConflict:f.isConflict,version:Z})})},aj=({names:c,isOn:d,working:e})=>{L(e),N(null),T(!1),p(async()=>{let e=await aW({fleetId:a,name:b,tools:[...c],isOn:d});if(L(null),!e.isOk)return void N(e.message);let[f]=c;af({outcome:e,changed:c,change:{switches:new Map(c.map(a=>[a,d]))},message:1===c.length&&void 0!==f?function({tool:a,isOn:b,statementRefusal:c}){let d=`${a} is ${b?"on":"off"}`;return null!==c?`${d}; the fleet sees it at the proxy ship's next statement: ${c}`:b?`${d}: the fleet may call it.`:`${d}: the fleet sees it no more, and a call to it is refused.`}({tool:f,isOn:d,statementRefusal:null}):(0,aY.g)({count:c.length,isOn:d,statementRefusal:null})})})},ak=()=>{r(()=>{n.refresh()})},al=null!==K||G,am=(0,d.jsxs)("div",{className:"grid gap-3 sm:flex sm:flex-wrap sm:items-center","data-testid":"tools-table-toolbar",children:[(0,d.jsxs)("label",{className:"grid gap-1 sm:w-56",children:[(0,d.jsx)("span",{className:"sr-only",children:"Filter by name"}),(0,d.jsx)("input",{className:aQ.w,type:"search",placeholder:"Filter by name",value:s,onChange:a=>{t(a.target.value)},"data-testid":"tools-table-name-filter"})]}),(0,d.jsx)("div",{role:"group","aria-label":"Filter by state",className:"flex flex-wrap gap-1",children:aZ.map(({state:a,label:b})=>(0,d.jsx)("button",{type:"button","aria-pressed":u===a,onClick:()=>{v(a)},className:`h-8 rounded-md border px-3 ${u===a?"border-primary bg-primary text-primary-foreground":"border-border bg-card hover:bg-accent"}`,"data-testid":`tools-table-state-${a}`,children:b},a))}),i?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("label",{className:"flex items-center gap-2",children:[(0,d.jsx)("input",{type:"checkbox",checked:ac,onChange:()=>{x(a=>{let b=new Set(a);for(let{name:a}of _)ac?b.delete(a):b.add(a);return b})},disabled:0===_.length,"data-testid":"tools-table-select-shown"}),"Select all shown"]}),(0,d.jsxs)("span",{className:"text-muted-foreground","data-testid":"tools-table-selected",children:[w.size," selected"]}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2 sm:ml-auto",children:[(0,d.jsx)("button",{type:"button",className:aQ.x.secondary,disabled:0===w.size||al||null===h,onClick:()=>{ag("scopes")},"data-testid":"tools-table-set-scopes",children:"Set scopes…"}),(0,d.jsx)(aS.i,{isPending:"on"===K,pendingLabel:"Switching on…",disabled:0===w.size||al||!ab,onClick:()=>{aj({names:[...w],isOn:!0,working:"on"})},"data-testid":"tools-table-switch-on",children:"Switch on"}),(0,d.jsx)(aS.i,{isPending:"off"===K,pendingLabel:"Switching off…",disabled:0===w.size||al||!ab,onClick:()=>{aj({names:[...w],isOn:!1,working:"off"})},"data-testid":"tools-table-switch-off",children:"Switch off"}),(0,d.jsx)("button",{type:"button",className:aQ.x.secondary,disabled:al||!ab||null===h,onClick:()=>{ag("suggest")},"data-testid":"tools-table-suggest",children:"Suggest from hints…"})]})]}):null]});return(0,d.jsxs)("div",{className:"grid gap-3",children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2","data-testid":"tools-table-party-needs",children:[(0,d.jsx)("span",{className:"font-medium",children:"Every tool needs"}),(0,d.jsx)(a$.f,{party:Y,own:[],listed:$}),i?(0,d.jsx)("button",{type:"button",className:"text-primary hover:underline disabled:opacity-60",disabled:al||null===h,onClick:()=>{ag("party")},"data-testid":"tools-table-party-change",children:"Change…"}):null]}),null===j?null:(0,d.jsxs)("p",{role:"status",className:"rounded-md border border-tone-waiting-border bg-tone-waiting-bg px-3 py-2 text-tone-waiting-fg","data-testid":"tools-table-server-down",children:["The server did not answer, so this shows the scopes kept per tool name; they can still be changed. ",j]}),(0,d.jsx)("div",{className:"hidden sm:block",children:am}),(0,d.jsx)("div",{className:"sm:hidden",children:(0,d.jsxs)(aE.Root,{open:S,onOpenChange:T,children:[(0,d.jsxs)(aF.Trigger,{className:aQ.x.secondary,"data-testid":"tools-table-sheet-open",children:["Filters and actions",i?` (${String(w.size)} selected)`:""]}),(0,d.jsxs)(aG.Portal,{children:[(0,d.jsx)(aH.Backdrop,{className:"fixed inset-0 z-40 bg-(--overlay)"}),(0,d.jsx)(aI.Viewport,{className:"fixed inset-0 z-50 flex items-end",children:(0,d.jsx)(aJ.Popup,{className:"w-full rounded-t-lg border border-border bg-popover p-4 text-popover-foreground shadow-lg",children:(0,d.jsxs)(aK.Content,{className:"grid gap-3",children:[(0,d.jsx)(aL.Title,{className:"text-heading font-semibold",children:"Filters and actions"}),am,(0,d.jsx)(aM.Close,{className:aQ.x.secondary,children:"Done"})]})})})]})]})}),null===M?null:(0,d.jsx)("p",{role:"alert",className:"rounded-md border border-tone-attention-border bg-tone-attention-bg px-3 py-2 text-tone-attention-fg","data-testid":"tools-table-switch-refusal",children:M}),(0,d.jsxs)("table",{className:"w-full border-collapse max-sm:block","data-testid":"tools-table",children:[(0,d.jsx)("thead",{className:"max-sm:hidden",children:(0,d.jsxs)("tr",{className:"border-b border-border text-left text-muted-foreground",children:[i?(0,d.jsx)("th",{className:"w-8 py-2",children:(0,d.jsx)("span",{className:"sr-only",children:"Selected"})}):null,(0,d.jsx)("th",{className:"py-2 font-medium",children:"Tool"}),(0,d.jsx)("th",{className:"py-2 font-medium",children:"Hints"}),(0,d.jsx)("th",{className:"py-2 font-medium",children:"On"}),(0,d.jsx)("th",{className:"py-2 font-medium",children:"Needs"})]})}),(0,d.jsx)("tbody",{className:"max-sm:grid max-sm:gap-2",children:_.map(a=>{let b=O.names.has(a.name);return(0,d.jsxs)("tr",{className:`border-b border-border align-top last:border-b-0 max-sm:grid max-sm:grid-cols-[auto_1fr] max-sm:gap-x-2 max-sm:rounded-md max-sm:border max-sm:p-2 ${b?"animate-highlight":""}`,"data-testid":"tools-table-row","data-tool":a.name,children:[i?(0,d.jsx)("td",{className:"py-2 pr-2 max-sm:row-span-4",children:(0,d.jsx)("input",{type:"checkbox","aria-label":`Select ${a.name}`,checked:w.has(a.name),onChange:()=>{var b;b=a.name,x(a=>{let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c})},"data-testid":"tools-table-select"})}):null,(0,d.jsxs)("td",{className:"py-2 pr-3 max-sm:col-start-2",children:[(0,d.jsxs)("span",{className:"flex flex-wrap items-center gap-2",children:[(0,d.jsx)("span",{className:"font-mono",children:a.name}),a.isNew?(0,d.jsx)(aT.T,{tone:"attention",label:"New"}):null]}),""===a2(a.description)?null:(0,d.jsx)("span",{className:"block text-muted-foreground",children:a2(a.description)})]}),(0,d.jsx)("td",{className:"py-2 pr-3 max-sm:col-start-2",children:(0,d.jsxs)("span",{className:"flex flex-wrap gap-1",children:[!0===a.isReadOnly?(0,d.jsx)(aT.E,{children:"Read only"}):null,!0===a.isDestructive?(0,d.jsx)(aT.E,{children:"Destructive"}):null]})}),(0,d.jsx)("td",{className:"py-2 pr-3 max-sm:col-start-2",children:null===a.isOn?(0,d.jsx)("span",{className:"text-muted-foreground",children:"Not known"}):i?(0,d.jsx)(aR.f,{isOn:a.isOn,label:a.name,isPending:K===a.name,onClick:()=>{aj({names:[a.name],isOn:!0!==a.isOn,working:a.name})},testId:"tools-table-switch"}):(0,d.jsx)(aT.E,{children:a.isOn?"On":"Off"})}),(0,d.jsx)("td",{className:"py-2 max-sm:col-start-2",children:(0,d.jsx)(a$.f,{party:Y,own:a.scopes,listed:$})})]},b?`${a.name}-${String(O.round)}`:a.name)})})]}),0===_.length?(0,d.jsx)("p",{className:"text-muted-foreground","data-testid":"tools-table-empty",children:0===X.length?ab?`${b} lists no tools.`:"No tool needs a scope of its own yet.":"No tool matches the filters."}):null,null===h?null:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(a0.G,{isOpen:"scopes"===y,onClose:ah,title:"Set scopes",description:"The scopes a calling ship must hold for each selected tool, beside what every tool needs.",appliesTo:`Applies to ${String(aa.length)} ${1===aa.length?"tool":"tools"}`,action:{label:"Set scopes",pending:"Setting…",isDisabled:0===A.length&&"replace"!==C,onPress:()=>{var a;ai({change:{tools:(a={scopes:A,how:C},aa.map(({name:b,scopes:c})=>{switch(a.how){case"add":return{tool:b,scopes:[...new Set([...c,...a.scopes])]};case"remove":return{tool:b,scopes:c.filter(b=>!a.scopes.includes(b))};case"replace":return{tool:b,scopes:[...new Set(a.scopes)]}}}))},changed:aa.map(({name:a})=>a),message:(0,aY.y)({scopes:A,how:C,count:aa.length})})}},isSaving:G,refusal:(0,a0.V)(I,Z),isReloading:q,onReload:ak,testId:"tools-table-scopes-dialog",children:[(0,d.jsx)(a_.f,{label:"Scopes",listed:h,picked:A,onPick:B,isDisabled:G,testId:"tools-table-scopes-picker"}),(0,d.jsxs)("fieldset",{className:"grid gap-1",children:[(0,d.jsx)("legend",{className:"font-medium",children:"On each selected tool"}),aX.map(a=>(0,d.jsxs)("label",{className:"flex items-center gap-2",children:[(0,d.jsx)("input",{type:"radio",name:"how",value:a.how,checked:C===a.how,onChange:()=>{D(a.how)},"data-testid":`tools-table-how-${a.how}`}),a.label]},a.how))]})]}),(0,d.jsx)(a0.G,{isOpen:"party"===y,onClose:ah,title:"Every tool needs",description:`The scopes a calling ship must hold for every tool of ${b}, beside each tool's own.`,appliesTo:`Applies to every tool of ${b}`,action:{label:"Save",pending:"Saving…",isDisabled:!1,onPress:()=>{ai({change:{party:A,tools:[]},changed:X.map(({name:a})=>a),message:(0,aY.G)({party:b,scopes:A})})}},isSaving:G,refusal:(0,a0.V)(I,Z),isReloading:q,onReload:ak,testId:"tools-table-party-dialog",children:(0,d.jsx)(a_.f,{label:"Scopes",listed:h,picked:A,onPick:B,isDisabled:G,testId:"tools-table-party-picker"})}),(0,d.jsxs)(a0.G,{isOpen:"suggest"===y,onClose:ah,title:"Suggest from hints",description:"Scopes for each tool with no scope of its own, by what the server says of it. Hints are the server's claim: nothing applies until you confirm.",appliesTo:`Applies to ${String(ae.length)} ${1===ae.length?"tool":"tools"}`,action:{label:"Apply",pending:"Applying…",isDisabled:0===ae.length,onPress:()=>{let a=[{scopes:E.readOnly,count:0===E.readOnly.length?0:ad.readOnly.length},{scopes:E.other,count:0===E.other.length?0:ad.other.length}].filter(({count:a})=>a>0);ai({change:{tools:ae},changed:ae.map(({tool:a})=>a),message:(0,aY.q)(a)})}},isSaving:G,refusal:(0,a0.V)(I,Z),isReloading:q,onReload:ak,testId:"tools-table-suggest-dialog",children:[(0,d.jsx)(a_.f,{label:"Scopes for read-only tools",listed:h,picked:E.readOnly,onPick:a=>{F(b=>({...b,readOnly:a}))},isDisabled:G,testId:"tools-table-suggest-read-only"}),(0,d.jsx)(a_.f,{label:"Scopes for the other tools",listed:h,picked:E.other,onPick:a=>{F(b=>({...b,other:a}))},isDisabled:G,testId:"tools-table-suggest-other"}),(0,d.jsx)(a4,{title:"Read-only tools",names:ad.readOnly,testId:"tools-table-suggest-read-only-tools"}),(0,d.jsx)(a4,{title:"Other tools",names:ad.other,testId:"tools-table-suggest-other-tools"}),(0,d.jsx)(a4,{title:"Without hints, left as they are",names:ad.withoutHints,testId:"tools-table-suggest-without-hints"})]})]})]})}function a4({title:a,names:b,testId:c}){return(0,d.jsxs)("details",{className:"rounded-md border border-border px-3 py-2","data-testid":c,children:[(0,d.jsxs)("summary",{className:"cursor-pointer",children:[a," (",b.length,")"]}),0===b.length?(0,d.jsx)("p",{className:"text-muted-foreground",children:"None"}):(0,d.jsx)("p",{className:"font-mono text-code break-words",children:b.join(", ")})]})}a.s(["ToolsTable",0,function(a){return(0,d.jsxs)(aN.f.Provider,{children:[(0,d.jsx)(a3,{...a}),(0,d.jsx)(a1.f,{})]})}],44512)},4423,a=>{var b=a.i(87924),c=a.i(72131),d=a.i(30587),e=a.i(5050);let f=(0,e.createServerReference)("403179a1a8bd74235fd85b695df53a56e9efa980f7",e.callServer,void 0,e.findSourceMapURL,"readMoreSignIns"),g=(0,e.createServerReference)("406fa6b9d6401dafddf2b1753483db581cfb3409f2",e.callServer,void 0,e.findSourceMapURL,"removePersonSignIn");function h(a,b){let c=new Set(a.map(({personShipId:a})=>a));return[...a,...b.filter(({personShipId:a})=>!c.has(a))]}var i=a.i(88412),j=a.i(36855),k=a.i(47763);let l=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],m=a=>String(a).padStart(2,"0"),n={signedIn:{tone:"ok",label:"Signed in"},lost:{tone:"attention",label:"Lost"}};function o(a){return a.personName??a.personShipId}function p({count:a}){return(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,b.jsx)("h2",{className:"text-section font-semibold",children:"Everyone's sign-ins"}),null===a?null:(0,b.jsx)("span",{className:"text-muted-foreground",children:a})]})}function q(){return(0,b.jsx)("thead",{className:"max-sm:hidden",children:(0,b.jsxs)("tr",{className:"border-b border-border text-left text-muted-foreground",children:[(0,b.jsx)("th",{className:"h-10 px-2 font-medium",children:"Person"}),(0,b.jsx)("th",{className:"h-10 px-2 font-medium",children:"Account"}),(0,b.jsx)("th",{className:"h-10 px-2 font-medium",children:"State"}),(0,b.jsx)("th",{className:"h-10 px-2 font-medium",children:"Last used"}),(0,b.jsx)("th",{className:"h-10 px-2",children:(0,b.jsx)("span",{className:"sr-only",children:"Remove"})})]})})}function r({signIn:a,party:c,isRemoving:d,onConfirm:e,onKeep:f}){let g=o(a);return(0,b.jsxs)("div",{className:"grid gap-2 rounded-md bg-muted p-3","data-testid":"outside-party-sign-ins-confirm",children:[(0,b.jsxs)("p",{children:["Remove ",g,"'s sign-in? Their ships' calls to ",c," are refused until they sign in again."]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)("button",{type:"button",className:i.x.destructive,disabled:d,"aria-busy":d,onClick:e,"data-testid":"outside-party-sign-ins-remove-confirmed",children:d?"Removing…":`Remove ${g}'s sign-in`}),(0,b.jsx)("button",{type:"button",className:i.x.secondary,onClick:f,children:"Keep"})]})]})}function s(a){let{party:c,now:d,rows:e,refusal:f,hasMore:g,isLoadingMore:h,confirming:s,removing:t,outcome:u}=a;return(0,b.jsxs)("section",{className:`${i.r} grid gap-3`,"data-testid":"outside-party-sign-ins",children:[(0,b.jsx)(p,{count:null===f?e.length:null}),(0,b.jsx)(j.f,{state:u}),null!==f?(0,b.jsx)(j.f,{state:{kind:"refused",message:f}}):0===e.length?(0,b.jsx)("p",{className:"text-muted-foreground",children:"Nobody has signed in yet."}):(0,b.jsxs)("table",{className:"w-full border-collapse max-sm:block",children:[(0,b.jsx)(q,{}),(0,b.jsx)("tbody",{className:"max-sm:grid",children:e.map(e=>{var f;let g,h,j=n[e.state],p=s===e.personShipId,q=null===e.lastUsedAt?"Not yet":(f=e.lastUsedAt,(h=new Date(d).getTime()-new Date(f).getTime())<6e4?"Just now":h<36e5?`${String(Math.floor(h/6e4))} min ago`:(g=new Date(f),`${String(g.getUTCDate())} ${l[g.getUTCMonth()]??""}, ${m(g.getUTCHours())}:${m(g.getUTCMinutes())}`));return[(0,b.jsxs)("tr",{className:`border-b border-border max-sm:grid max-sm:grid-cols-[1fr_auto] max-sm:gap-1 max-sm:py-3 ${p?"border-b-0":"last:border-b-0"}`,"data-testid":"outside-party-sign-ins-row",children:[(0,b.jsxs)("td",{className:"h-12 px-2 max-sm:col-start-1 max-sm:row-start-1 max-sm:h-auto max-sm:px-0 max-sm:font-medium",children:[o(e),e.isYours?(0,b.jsx)("span",{className:"font-normal text-muted-foreground",children:" (you)"}):null]}),(0,b.jsxs)("td",{className:"h-12 px-2 max-sm:col-span-2 max-sm:row-start-2 max-sm:h-auto max-sm:px-0 max-sm:text-muted-foreground",children:[function({outsideAccount:a}){return a.name??a.subject??(0,b.jsx)("span",{className:"text-muted-foreground",children:"Not known"})}(e),(0,b.jsxs)("span",{className:"sm:hidden",children:[" · last used ",null===e.lastUsedAt?"not yet":q]})]}),(0,b.jsx)("td",{className:"h-12 px-2 max-sm:col-start-2 max-sm:row-start-1 max-sm:h-auto max-sm:px-0",children:(0,b.jsx)(k.T,{tone:j.tone,label:j.label})}),(0,b.jsx)("td",{className:"h-12 px-2 text-muted-foreground max-sm:hidden",children:q}),(0,b.jsx)("td",{className:"h-12 px-2 text-right max-sm:col-span-2 max-sm:row-start-3 max-sm:h-auto max-sm:px-0 max-sm:text-left",children:(0,b.jsx)("button",{type:"button",className:`${i.x.secondary} ${p?"max-sm:hidden":""}`,onClick:()=>{a.onRemove(e.personShipId)},"data-testid":"outside-party-sign-ins-remove",children:"Remove"})})]},e.personShipId),p?(0,b.jsx)("tr",{className:"border-b border-border last:border-b-0 max-sm:block max-sm:pb-3",children:(0,b.jsx)("td",{colSpan:5,className:"pb-2 max-sm:block max-sm:pb-0",children:(0,b.jsx)(r,{signIn:e,party:c,isRemoving:t===e.personShipId,onConfirm:()=>{a.onConfirm(e)},onKeep:a.onKeep})})},`${e.personShipId}-confirm`):null]})})]}),null===f&&g?(0,b.jsx)("div",{children:(0,b.jsx)("button",{type:"button",className:i.x.secondary,disabled:h,"aria-busy":h,onClick:a.onMore,"data-testid":"outside-party-sign-ins-more",children:h?"Showing more…":"Show more"})}):null]})}a.s(["EveryonesSignInsCard",0,function({fleetId:a,party:e,now:i,first:j}){let[k,l]=(0,c.useState)([]),[m,n]=(0,c.useState)(j.next),[p,q]=(0,c.useState)(new Set),[r,t]=(0,c.useState)(null),[u,v]=(0,c.useState)(null),[w,x]=(0,c.useState)(d.Q),[y,z]=(0,c.useTransition)(),[,A]=(0,c.useTransition)(),B=h(j.grants,k).filter(({personShipId:a})=>!p.has(a));return(0,b.jsx)(s,{party:e,now:i,rows:B,refusal:null,hasMore:null!==m,isLoadingMore:y,confirming:r,removing:u,outcome:w,onRemove:a=>{t(a),x(d.Q)},onConfirm:b=>{v(b.personShipId),A(async()=>{let c=await g({fleetId:a,name:e,personShipId:b.personShipId});v(null),t(null),c.isOk?(q(a=>new Set([...a,b.personShipId])),x({kind:"done",message:function({person:a,party:b,isRevoked:c}){return c?`${a}'s sign-in is removed, and revoked at ${b}.`:`${a}'s sign-in is removed.`}({person:o(b),party:e,isRevoked:c.isRevoked})})):x({kind:"refused",message:c.message})})},onKeep:()=>{t(null)},onMore:()=>{let b=m??B.at(-1)?.personShipId;void 0!==b&&z(async()=>{let c=await f({fleetId:a,name:e,after:b});c.isOk?(l(a=>h(a,c.grants)),n(c.next)):x({kind:"refused",message:c.message})})}})}],4423)},88275,a=>{var b=a.i(87924),c=a.i(72131),d=a.i(30587),e=a.i(36855),f=a.i(77237),g=a.i(5050);let h=(0,g.createServerReference)("60c37fa75b435a48631218cdc46631b34cd8d87a76",g.callServer,void 0,g.findSourceMapURL,"removeOwnSignIn");var i=a.i(74158);function j({fleetId:a,party:c}){return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("input",{type:"hidden",name:d.H,value:a}),(0,b.jsx)("input",{type:"hidden",name:"name",value:c})]})}a.s(["RemoveSignInForm",0,function({fleetId:a,party:g}){let[i,k]=(0,c.useActionState)(h,d.Q);return(0,b.jsxs)("form",{action:k,className:"grid gap-2",children:[(0,b.jsx)(e.f,{state:i}),(0,b.jsx)(j,{fleetId:a,party:g}),(0,b.jsx)("div",{children:(0,b.jsx)(f.f,{kind:"secondary",pending:"Removing…",testId:"outside-party-sign-in-remove",children:"Remove"})})]})},"SignInForm",0,function({fleetId:a,party:g,label:h,kind:k}){let[l,m]=(0,c.useActionState)(i.f,d.Q);return(0,b.jsxs)("form",{action:m,className:"grid gap-2",children:[(0,b.jsx)(e.f,{state:l}),(0,b.jsx)(j,{fleetId:a,party:g}),(0,b.jsx)("div",{children:(0,b.jsx)(f.f,{kind:k,pending:`Opening ${g}…`,testId:"outside-party-sign-in-start",children:h})})]})}],88275)},73877,a=>{var b=a.i(87924),c=a.i(72131),d=a.i(35112),e=a.i(30587),f=a.i(10020),g=a.i(5050);let h=(0,g.createServerReference)("6047a1cb94a0e9b3f19f0c7bedd80c48992177520c",g.callServer,void 0,g.findSourceMapURL,"markA2aAgent"),i={kind:"idle"};function j({isRepeatable:a}){let c=(0,d.useFormStatus)();return(0,b.jsx)(f.f,{type:"submit",isOn:a,label:"Repeatable",isPending:c.pending,testId:"outside-party-repeatable-switch"})}a.s(["RepeatableSwitch",0,function({fleetId:a,party:d,isRepeatable:f}){let[g,k]=(0,c.useActionState)(h,i),l="marked"===g.kind?g.isRepeatable:f;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("form",{action:k,className:"contents",children:[(0,b.jsx)("input",{type:"hidden",name:e.H,value:a}),(0,b.jsx)("input",{type:"hidden",name:"name",value:d}),(0,b.jsx)("input",{type:"hidden",name:"isRepeatable",value:String(!l)}),(0,b.jsx)(j,{isRepeatable:l})]}),"idle"===g.kind?null:(0,b.jsx)("span",{role:"refused"===g.kind?"alert":"status",className:`basis-full text-caption ${"refused"===g.kind?"text-tone-attention-fg":"text-tone-ok-fg"}`,"data-testid":"outside-party-repeatable-outcome",children:g.message})]})}],73877)}]})();
1
+ (()=>{"use strict";module.exports=[10020,a=>{var b=a.i(87924);a.s(["f",0,function({isOn:a,label:c,isPending:d=!1,type:e="button",onClick:f,testId:g}){return(0,b.jsx)("button",{type:e,role:"switch","aria-checked":a,"aria-label":c,"aria-busy":d,disabled:d,onClick:f,"data-testid":g,className:`inline-flex h-5 w-9 shrink-0 items-center rounded-full border p-0.5 transition-colors disabled:opacity-60 ${a?"border-primary bg-primary":"border-input bg-muted"}`,children:(0,b.jsx)("span",{className:`size-3.5 rounded-full bg-background shadow-sm transition-transform ${a?"translate-x-4":"translate-x-0"} ${d?"animate-pulse":""}`})})}])},61133,a=>{var b=a.i(5050);let c=(0,b.createServerReference)("60c6954ee32ef0da770b4a80d316382eb6c0a4c980",b.callServer,void 0,b.findSourceMapURL,"signInToParty");a.s(["f",0,c])},67051,55322,66296,45937,881,92389,a=>{var b=a.i(5050);let c=(0,b.createServerReference)("4055624bd11ca2ade15b378b28829dee0ac23423c1",b.callServer,void 0,b.findSourceMapURL,"setPartyScopes");function d(a){return a.length<=1?a.join(""):`${a.slice(0,-1).join(", ")} and ${a.at(-1)??""}`}function e(a){return`${String(a)} ${1===a?"tool":"tools"}`}function f(a,b){return null===b?a:`${a}; the fleet sees it at the proxy ship's next statement: ${b}`}a.s(["f",0,c],67051),a.s(["B",0,function({party:a,scopes:b}){return 0===b.length?`Every message to ${a} needs nothing beyond reaching it`:`Every message to ${a} needs ${d(b)}`},"G",0,function({party:a,scopes:b}){return 0===b.length?`Every tool of ${a} needs nothing beyond reaching it`:`Every tool of ${a} needs ${d(b)}`},"y",0,function({scopes:a,how:b,count:c}){return"remove"===b?`${d(a)} removed from ${e(c)}`:0===a.length?`${e(c)} need${1===c?"s":""} nothing of ${1===c?"its":"their"} own`:`${d(a)} set on ${e(c)}`},"I",0,f,"q",0,function(a){return a.map(({scopes:a,count:b})=>`${d(a)} set on ${e(b)}`).join("; ")},"g",0,function({count:a,isOn:b,statementRefusal:c}){return f(`${e(a)} switched ${b?"on":"off"}`,c)}],55322);var g=a.i(87924);a.s(["f",0,function({party:a=[],own:b,listed:c}){if(0===a.length&&0===b.length)return(0,g.jsx)("span",{className:"text-muted-foreground",children:"Nothing"});let d=(a,b)=>{let d=null!==c&&!c.has(a);return(0,g.jsxs)("span",{className:`inline-flex items-center rounded-md border px-2 font-mono text-caption ${d?"border-tone-attention-border bg-tone-attention-bg text-tone-attention-fg":b?"border-transparent bg-muted text-muted-foreground":"border-border"}`,"data-testid":b?"tools-table-party-scope":"tools-table-scope",title:d?"No longer defined in the fleet":b?"Every tool needs it":void 0,children:[a,d?(0,g.jsx)("span",{className:"ml-1 font-sans",children:"(no longer defined)"}):null]},`${b?"party":"own"}-${a}`)};return(0,g.jsxs)("span",{className:"flex flex-wrap gap-1",children:[a.map(a=>d(a,!0)),b.filter(b=>!a.includes(b)).map(a=>d(a,!1))]})}],66296);var h=a.i(82360),h=h,i=a.i(21338),j=a.i(22432),k=h,l=h,m=h,n=h,o=a.i(37987),p=a.i(21817),q=a.i(43256),r=a.i(27350),s=a.i(69035),t=a.i(21777),u=a.i(85804),v=h;let w=({scope:a,description:b})=>({value:a,label:a,description:b});a.s(["f",0,function({label:a,listed:b,picked:c,onPick:d,isDisabled:e=!1,testId:f}){let{contains:x}=h.useFilter(),y=[...b.map(w),...c.filter(a=>!b.some(b=>b.scope===a)).map(a=>({value:a,label:a,description:"No longer defined in the fleet"}))],z=y.filter(a=>c.includes(a.value));return(0,g.jsxs)(i.f.Root,{multiple:!0,items:y,value:z,disabled:e,isItemEqualToValue:(a,b)=>a.value===b.value,onValueChange:(a,b)=>{"escape-key"===b.reason?b.cancel():d(a.map(a=>a.value))},filter:(a,b)=>x(a.label,b)||x(a.description,b),children:[(0,g.jsxs)("div",{className:"grid gap-1","data-testid":f,children:[(0,g.jsx)(j.f.Label,{className:"font-medium",children:a}),(0,g.jsx)(k.InputGroup,{className:"flex min-h-9 flex-wrap items-center gap-1 rounded-md border border-input bg-background px-2 py-1",children:(0,g.jsxs)(l.Chips,{className:"contents",children:[z.map(a=>(0,g.jsxs)(m.Chip,{className:"inline-flex items-center gap-1 rounded-md border border-border bg-muted px-2 font-mono text-caption","aria-label":a.value,children:[a.value,(0,g.jsx)(n.ChipRemove,{className:"text-muted-foreground hover:text-foreground","aria-label":`Remove ${a.value}`,children:"×"})]},a.value)),(0,g.jsx)(o.f.Input,{placeholder:0===z.length?"Search the fleet's scopes":"",className:"h-7 min-w-32 flex-1 bg-transparent outline-none"})]})})]}),(0,g.jsx)(p.f.Portal,{children:(0,g.jsx)(q.f.Positioner,{sideOffset:4,className:"z-50",children:(0,g.jsxs)(r.f.Popup,{className:"max-h-72 w-(--anchor-width) overflow-auto rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md",children:[(0,g.jsx)(s.f.Empty,{className:"px-2 py-1 text-muted-foreground",children:"No scope listed matches."}),(0,g.jsx)(t.f.List,{children:a=>(0,g.jsxs)(u.f.Item,{value:a,className:"grid cursor-default grid-cols-[1rem_1fr] gap-x-2 rounded px-2 py-1 data-highlighted:bg-accent",children:[(0,g.jsx)(v.ItemIndicator,{className:"row-span-2",children:"✓"}),(0,g.jsx)("span",{className:"col-start-2 font-mono text-code",children:a.value}),(0,g.jsx)("span",{className:"col-start-2 text-caption text-muted-foreground",children:a.description})]},a.value)})]})})})]})}],45937);var x=a.i(40197),y=a.i(21341),z=a.i(68758),A=a.i(5358),B=a.i(49867),C=a.i(8842),D=a.i(88412),E=a.i(32043);a.s(["G",0,function({isOpen:a,onClose:b,title:c,description:d,children:e,appliesTo:f,action:h,isSaving:i,refusal:j,onReload:k,isReloading:l,testId:m}){return(0,g.jsx)(x.f.Root,{open:a,onOpenChange:a=>{a||i||b()},children:(0,g.jsxs)(y.f.Portal,{children:[(0,g.jsx)(z.f.Backdrop,{className:"fixed inset-0 z-40 bg-(--overlay)"}),(0,g.jsxs)(A.f.Popup,{className:"fixed top-1/2 left-1/2 z-50 grid max-h-[90vh] w-[min(36rem,calc(100vw-2rem))] -translate-1/2 gap-4 overflow-auto rounded-lg border border-border bg-popover p-6 text-popover-foreground shadow-lg","data-testid":m,children:[(0,g.jsxs)("div",{className:"grid gap-1",children:[(0,g.jsx)(B.f.Title,{className:"text-heading font-semibold",children:c}),(0,g.jsx)(C.f.Description,{className:"text-muted-foreground",children:d})]}),(0,g.jsx)("fieldset",{disabled:i,className:"grid gap-4",children:e}),null===j?null:(0,g.jsxs)("div",{role:"alert",className:"flex flex-wrap items-center justify-between gap-2 rounded-md border border-tone-attention-border bg-tone-attention-bg px-3 py-2 text-tone-attention-fg","data-testid":"tools-table-dialog-refusal",children:[(0,g.jsx)("span",{children:j.message}),j.isConflict?(0,g.jsx)(E.i,{isPending:l,pendingLabel:"Reloading…",onClick:k,"data-testid":"tools-table-reload",children:"Reload"}):null]}),(0,g.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,g.jsx)("span",{className:"text-muted-foreground","data-testid":"tools-table-applies-to",children:f}),(0,g.jsxs)("div",{className:"flex gap-2",children:[(0,g.jsx)("button",{type:"button",className:D.x.secondary,disabled:i,onClick:b,children:"Cancel"}),(0,g.jsx)(E.i,{variant:"primary",isPending:i,pendingLabel:h.pending,disabled:h.isDisabled||l,onClick:h.onPress,"data-testid":"tools-table-dialog-action",children:h.label})]})]})]})]})})},"V",0,function(a,b){return a?.isConflict===!0&&b>a.version?null:a}],881);var F=a.i(76983),G=a.i(805),H=a.i(60232),I=a.i(62043),J=a.i(11591),K=a.i(58710),L=a.i(94894);a.s(["f",0,function(){let{toasts:a}=F.f.useToastManager();return(0,g.jsx)(G.f.Portal,{children:(0,g.jsx)(H.f.Viewport,{className:"fixed right-4 bottom-4 z-50 grid w-[min(24rem,calc(100vw-2rem))] gap-2",children:a.map(a=>(0,g.jsx)(I.f.Root,{toast:a,className:"rounded-md border border-tone-ok-border bg-tone-ok-bg px-4 py-3 text-tone-ok-fg shadow-md","data-testid":"tools-table-toast",children:(0,g.jsxs)(J.f.Content,{className:"flex items-start justify-between gap-3",children:[(0,g.jsx)(K.f.Title,{}),(0,g.jsx)(L.f.Close,{"aria-label":"Dismiss",children:"×"})]})},a.id))})})}],92389)},65705,a=>{var b=a.i(87924),c=a.i(99271),d=a.i(76983),e=a.i(50944),f=a.i(72131),g=a.i(67051),h=a.i(55322),i=a.i(66296),j=a.i(45937),k=a.i(881),l=a.i(92389);function m({fleetId:a,party:c,version:l,scopes:n,listed:o,canChange:p}){let q=(0,e.useRouter)(),r=d.f.useToastManager(),[,s]=(0,f.useTransition)(),[t,u]=(0,f.useTransition)(),[v,w]=(0,f.useState)(!1),[x,y]=(0,f.useState)([]),[z,A]=(0,f.useState)(!1),[B,C]=(0,f.useState)(null),[D,E]=(0,f.useState)(null),[F,G]=(0,f.useState)(0),[H,I]=(0,f.useState)(null),J=H?.basis===n?H.scopes:n;return(0,b.jsxs)("div",{className:`flex flex-wrap items-center gap-2 rounded-md ${F>0?"animate-highlight":""}`,"data-testid":"agent-needs",children:[(0,b.jsx)(i.f,{own:J,listed:null===o?null:new Set(o.map(({scope:a})=>a))}),p&&null!==o?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("button",{type:"button",className:"text-primary hover:underline",onClick:()=>{y([...J]),C(null),w(!0)},"data-testid":"agent-needs-change",children:"Change…"}),(0,b.jsx)(k.G,{isOpen:v,onClose:()=>{w(!1)},title:"Every message needs",description:`The scopes a calling ship must hold to message ${c}.`,appliesTo:`Applies to every message to ${c}`,action:{label:"Save",pending:"Saving…",isDisabled:!1,onPress:()=>{A(!0),C(null);let b=Math.max(l,D??0);s(async()=>{let d=await (0,g.f)({fleetId:a,name:c,version:b,party:x,tools:[]});(A(!1),d.isOk)?(E(d.version),I({basis:n,scopes:x}),w(!1),G(a=>a+1),r.add({title:(0,h.I)((0,h.B)({party:c,scopes:x}),d.statementRefusal)}),q.refresh()):C({message:d.message,isConflict:d.isConflict,version:b})})}},isSaving:z,refusal:(0,k.V)(B,Math.max(l,D??0)),isReloading:t,onReload:()=>{u(()=>{q.refresh()})},testId:"agent-needs-dialog",children:(0,b.jsx)(j.f,{label:"Scopes",listed:o,picked:x,onPick:y,isDisabled:z,testId:"agent-needs-picker"})})]}):null]},F)}a.s(["AgentNeeds",0,function(a){return(0,b.jsxs)(c.f.Provider,{children:[(0,b.jsx)(m,{...a}),(0,b.jsx)(l.f,{})]})}])},44512,a=>{var b,c,d=a.i(87924),e=a.i(72131),f=a.i(23689),g=a.i(26184),h=a.i(4478);let i="--drawer-height",j="--drawer-swipe-movement-x",k="--drawer-swipe-movement-y",l="--drawer-snap-point-offset",m="--drawer-swipe-strength",n="--drawer-swipe-progress",o=e.forwardRef(function(a,b){let{render:c,className:d,style:e,forceRender:i=!1,...j}=a,k=(0,f.x)(),l=k.useState("open"),o=k.useState("nested"),p=k.useState("mounted"),q=k.useState("transitionStatus");return(0,g.a)("div",a,{state:{open:l,transitionStatus:q},ref:[k.context.backdropRef,b],stateAttributesMapping:h.M,props:[{role:"presentation",hidden:!p,style:{pointerEvents:l?void 0:"none",userSelect:"none",WebkitUserSelect:"none",[n]:"0",[m]:"1"}},j],enabled:i||!o})}),p=a.i(29302).f,q="data-drawer-content",r=e.forwardRef(function(a,b){let{render:c,className:d,style:e,...h}=a;return(0,f.x)(),(0,g.a)("div",a,{ref:b,props:[{[q]:""},h]})});var s=a.i(57738),t=a.i(54401),u=a.i(24715),v=a.i(50687),w=a.i(77327),x=a.i(3981),y=a.i(65206),z=a.i(11490);w.f.open,x.f.closed,y.f.startingStyle,z.f.endingStyle;let A="data-swipe-dismiss",B="data-swiping";var C=a.i(86070),D=a.i(5687),E=a.i(69649),F=a.i(54662);let G=e.createContext(void 0);function H(a){let b=e.useContext(G);if(!0!==a&&void 0===b)throw Error((0,F.f)(90));return b}var I=a.i(87828),J=a.i(26599);function K(a,b){let c=a+b;return c>=0?b:-Math.sqrt(-c)-a}function L(a,b,c){if(!Number.isFinite(b)||b<=0)return null;if("number"==typeof a)return Number.isFinite(a)?a<=1?(0,J.f)(a,0,1)*b:a:null;let d=a.trim();if(d.endsWith("px")){let a=Number.parseFloat(d);return Number.isFinite(a)?a:null}if(d.endsWith("rem")){let a=Number.parseFloat(d);return Number.isFinite(a)?a*c:null}return null}function M(a,b){let c=-1,d=1/0;for(let e=0;e<a.length;e+=1){let f=Math.abs(a[e]-b);f<d&&(d=f,c=e)}return c}function N(){let a=(0,f.x)(),{snapPoints:b,activeSnapPoint:c,setActiveSnapPoint:d,popupHeight:g}=H(),h=a.useState("viewportElement"),[i,j]=e.useState(0),[k,l]=e.useState(16),m=(0,t.f)(()=>{let a=(0,I.f)(h).documentElement;j(h?h.offsetHeight:a.clientHeight);let b=parseFloat(getComputedStyle(a).fontSize);Number.isFinite(b)&&l(b)});(0,s.f)(()=>{if(m(),!h||"function"!=typeof ResizeObserver)return;let a=new ResizeObserver(m);return a.observe(h),()=>{a.disconnect()}},[m,h]);let n=e.useMemo(()=>{if(!b||0===b.length||i<=0||g<=0)return[];let a=Math.min(g,i),c=b.map(b=>{let c=L(b,i,k);if(null===c)return null;let d=(0,J.f)(c,0,a);return{value:b,height:d,offset:Math.max(0,g-d)}}).filter(a=>!!a);if(c.length<=1)return c;let d=[],e=[];for(let a=c.length-1;a>=0;a-=1){let b=c[a];e.some(a=>1>=Math.abs(a-b.height))||(e.push(b.height),d.push(b))}return d.reverse(),d},[g,k,b,i]),o=e.useMemo(()=>{if(null===c)return;let a=n.find(a=>Object.is(a.value,c));if(a)return a;let b=Math.min(g,i),d=L(c,i,k);if(null===d)return;let e=(0,J.f)(d,0,b);return n[M(n.map(a=>a.height),e)]},[c,g,n,k,i]);return{snapPoints:b,activeSnapPoint:c,setActiveSnapPoint:d,popupHeight:g,viewportHeight:i,resolvedSnapPoints:n,activeSnapPointOffset:o?.offset??null}}let O=e.createContext(null);var P=a.i(84204);let Q=!1,R={...h.M,expanded:a=>a?{"data-expanded":""}:null,nestedDrawerOpen:a=>a?{"data-nested-drawer-open":""}:null,nestedDrawerSwiping:a=>a?{"data-nested-drawer-swiping":""}:null,swipeDirection:a=>({"data-swipe-direction":a}),swiping:a=>a?{[B]:""}:null},S=e.forwardRef(function(a,b){let c,{render:h,className:o,style:p,finalFocus:q,initialFocus:r,...w}=a,x=(0,f.x)(),y=x.context.popupRef,{swipeDirection:z,frontmostHeight:A,hasNestedDrawer:B,nestedSwiping:F,nestedSwipeProgressStore:G,onPopupHeightChange:I,notifyParentFrontmostHeight:J,notifyParentHasNestedDrawer:L}=H(),M=x.useState("descriptionElementId"),S=x.useState("disablePointerDismissal"),T=x.useState("floatingRootContext"),U=x.useState("popupProps"),V=x.useState("modal"),W=x.useState("mounted"),X=x.useState("nested"),Y=x.useState("nestedOpenDrawerCount"),Z=x.useState("transitionStatus"),$=x.useState("open"),_=x.useState("openMethod"),aa=x.useState("titleElementId"),ab=x.useState("role"),ac=T.useState("floatingId"),ad=w.id??ac,ae=e.useContext(O);(0,C.Z)();let{snapPoints:af,activeSnapPoint:ag,activeSnapPointOffset:ah}=N(),ai=Y>0,aj=ae?.swiping??!1,ak=ae?.swipeStrength??null,[al,am]=e.useState(0),an=e.useRef(0),ao=(0,t.f)(()=>{let a=y.current;if(!a)return;let b=a.offsetHeight;if(!(an.current>0)||!(A>an.current)||!(b>an.current)){if(an.current>0&&B){let a=an.current;am(a),I(a);return}b!==an.current&&(an.current=b,am(b),I(b))}});(0,s.f)(()=>{if(!W){an.current=0,am(0),I(0);return}let a=y.current;if(!a||(Q||("u">typeof CSS&&"registerProperty"in CSS&&([j,k,l].forEach(a=>{try{CSS.registerProperty({name:a,syntax:"<length>",inherits:!1,initialValue:"0px"})}catch{}}),[{name:n,initialValue:"0"},{name:m,initialValue:"1"}].forEach(({name:a,initialValue:b})=>{try{CSS.registerProperty({name:a,syntax:"<number>",inherits:!1,initialValue:b})}catch{}})),Q=!0),ao(),"function"!=typeof ResizeObserver))return;let b=new ResizeObserver(ao);return b.observe(a),()=>{b.disconnect()}},[ao,W,ai,I,y]),(0,s.f)(()=>{let a=()=>{let a=y.current;if(!a)return;let b=G.getSnapshot();b>0?a.style.setProperty(n,`${b}`):a.style.setProperty(n,"0")};a();let b=G.subscribe(a),c=y.current;return()=>{b(),c&&c.style.setProperty(n,"0")}},[G,y]),(0,s.f)(()=>{if($)return J?.(A),()=>{J?.(0)}},[A,$,J]),(0,s.f)(()=>{if(L)return L($||"ending"===Z),()=>{L(!1)}},[L,$,Z]),(0,D.f)({open:$,ref:y,onComplete(){$&&x.context.onOpenChangeComplete?.(!0)}});let ap=void 0===r?y:r,aq=x.useStateSetter("popupElement"),ar=!B&&"ending"!==Z;al&&!ar&&(c=`${al}px`);let as=af&&af.length>0&&("down"===z||"up"===z),at=null;as&&null!==ah&&(at="up"===z?-ah:ah);let au=ae?ae.getDragStyles():u.w;if(as&&"down"===z){let a=Number.parseFloat(String(au[k]));au=aj&&Number.isFinite(a)?{...au,transform:void 0,[k]:`${K(ah??0,a)}px`}:{...au,transform:void 0}}let av=(0,g.a)("div",a,{state:{open:$,nested:X,transitionStatus:Z,expanded:1===ag,nestedDrawerOpen:ai,nestedDrawerSwiping:F,swipeDirection:z,swiping:aj},props:[U,{id:ad,"aria-labelledby":aa,"aria-describedby":M,role:ab,...P.X,hidden:!W,onKeyDown(a){E.f.has(a.key)&&a.stopPropagation()},style:{...au,[n]:"0","--nested-drawers":Y,[i]:c,[l]:"number"==typeof at?`${at}px`:"0px","--drawer-frontmost-height":A?`${A}px`:void 0,[m]:"number"==typeof ak&&Number.isFinite(ak)&&ak>0?`${ak}`:"1"}},w],ref:[b,y,aq],stateAttributesMapping:R});return(0,d.jsx)(v.f,{context:T,openInteractionType:_,disabled:!W,closeOnFocusOut:!S,initialFocus:ap,returnFocus:q,modal:!1!==V,restoreFocus:"popup",children:av})}),T=a.i(91034).f;var U=a.i(68536),V=a.i(50381),W=a.i(44530),X=a.i(61475),Y=a.i(94552),Z=a.i(29433),$=a.i(62600),$=$,_=a.i(36361);let aa=e.createContext(void 0);function ab(){return e.useContext(aa)}function ac(){let a=0,b=new Set;return{getSnapshot:()=>a,set(c){let d=Number.isFinite(c)?c:0;d!==a&&(a=d,b.forEach(a=>{a()}))},subscribe:a=>(b.add(a),()=>{b.delete(a)})}}function ad(){let a=ab(),b=(0,f.x)(!1),c=a?.setDrawerOpen,d=a?.removeDrawer,g=b.useState("open"),h=b.useState("nestedOpenDialogCount"),i=b.useState("popupElement"),j=0===h;return(0,s.f)(()=>{if(d)return()=>{d(b)}},[d,b]),(0,s.f)(()=>{c?.(b,g)},[g,c,b]),e.useEffect(()=>{if(!g||!j||!X.f.os.android)return;let a=(0,W.f)(i).CloseWatcher;if(!a)return;let c=new a,d=(0,U.f)(c,"cancel",function(a){if(!b.select("open"))return;let c=(0,Y.j)($.closeWatcher,a);a.cancelable||(c.cancel=u.x),b.setOpen(!1,c),c.isCanceled&&a.preventDefault()});return()=>{d(),c.destroy()}},[b,j,g,i]),null}let ae=a.i(73343).f,af=a.i(83224).f;var ag=a.i(35112),ah=a.i(26476),ai=a.i(54184),aj=a.i(28077);let ak=e.forwardRef(function(a,b){let{render:c,className:d,style:e,children:h,...i}=a,j=(0,C.Z)(),k=(0,f.x)(),l=k.useState("open"),m=k.useState("nested"),n=k.useState("transitionStatus"),o=k.useState("nestedOpenDialogCount"),p=k.useState("mounted"),q=k.useStateSetter("viewportElement");return(0,g.a)("div",a,{enabled:j||p,state:{open:l,nested:m,transitionStatus:n,nestedDialogOpen:o>0},ref:[b,q],stateAttributesMapping:aj.f,props:[{role:"presentation",hidden:!p,style:{pointerEvents:l?void 0:"none"},children:h},i]})});w.f.open,x.f.closed,y.f.startingStyle,z.f.endingStyle;var al=a.i(32318),am=a.i(56957),an=$,ao=a.i(30116),ap=a.i(89065),aq=a.i(59742),ar=a.i(82204),as=a.i(45410);let at=e.createContext(void 0),au=`[${q}]`,av={horizontal:`[${ar.a}="x"]`,vertical:`[${ar.a}="y"]`},aw=e.forwardRef(function(a,b){let{render:c,className:g,style:h,children:l,...m}=a,o=(0,f.x)(),p=o.context.popupRef,q=o.context.backdropRef,{swipeDirection:r,notifyParentSwipingChange:u,notifyParentSwipeProgressChange:v,frontmostHeight:w,snapToSequentialPoints:x,swipeAreaActiveRef:y}=H(),z=ab(),{snapPoints:B,resolvedSnapPoints:C,activeSnapPoint:D,activeSnapPointOffset:E,setActiveSnapPoint:F,popupHeight:G}=N(),L=o.useState("open"),P=o.useState("mounted"),Q=o.useState("nested"),R=o.useState("nestedOpenDrawerCount"),S=o.useState("viewportElement"),T=o.useState("popupElement"),V=z?.visualStateStore,X=R>0,Z="left"===r||"right"===r?"horizontal":"vertical",$="vertical"===Z,_=$?"horizontal":"vertical",[aa,ac]=e.useState(null),ad=e.useRef(void 0),ae=e.useRef(null),af=(0,ai.z)(),aj=e.useRef(!1),aw=e.useRef(!1),aE=e.useRef(""),aF=e.useRef(!1),aG=e.useRef(!1),aH=e.useRef(null),aI=e.useContext(at),aJ=e.useMemo(()=>{if(!B||B.length<2||C.length<2||"down"!==r&&"up"!==r)return null;let a=C.map(a=>a.offset).sort((a,b)=>a-b),b=a[0];return{minOffset:b,range:a[1]-b}},[C,B,r]),aK=e.useMemo(()=>aJ&&null!==E?(0,J.f)((E-aJ.minOffset)/aJ.range,0,1):null,[E,aJ]),aL=e.useMemo(()=>B&&B.length>0&&("down"===r||"up"===r)?"down"===r?["down","up"]:["up","down"]:[r],[B,r]),aM=(0,t.f)(a=>{p.current?.toggleAttribute(A,a),q.current?.toggleAttribute(A,a)}),aN=(0,t.f)(()=>{aM(!1),p.current?.removeAttribute(ap.f.endingStyle),ac(null)}),aO=(0,t.f)(()=>{aw.current&&(aw.current=!1,u?.(!1))}),aP=(0,t.f)((a,b,c)=>{let d=L&&!Q&&b,e=d?a:0,f=L&&b?a:0;c&&v&&(v(f),f<=0&&aO()),V?.set({swipeProgress:e,frontmostHeight:e>0?w:0});let g=q.current;if(!g)return;let h=d&&e>0;g.style.setProperty(n,h?`${e}`:"0"),h&&w>0?g.style.setProperty(i,`${w}px`):g.style.removeProperty(i)}),aQ=(0,am.w)({enabled:P&&!X,directions:aL,elementRef:o.context.popupRef,ignoreSelectorWhenTouch:!1,ignoreScrollableAncestors:!0,movementCssVars:{x:j,y:k},onSwipeStart(a){if("touches"in a||"touch"===a.pointerType)return;let b=p.current,c=(0,I.f)(b),d=c.getSelection?.();if(!d||d.isCollapsed)return;let e=(0,ah.m)(d.anchorNode)?d.anchorNode:d.anchorNode?.parentElement,f=(0,ah.m)(d.focusNode)?d.focusNode:d.focusNode?.parentElement;((0,ao.I)(b,e)||(0,ao.I)(b,f))&&d.removeAllRanges()},onSwipingChange(a){aj.current=a,ax(o.context.backdropRef.current,a),a||v||aO()},swipeThreshold:({element:a,direction:b})=>az(a,b),canStart(a,b){let c=o.context.popupRef.current;if(!c)return!1;let d=b.nativeEvent,e="touches"in d||"touch"===d.pointerType,f=e?aH.current:null,g=c.ownerDocument,h=(0,as.f)(c.getRootNode(),a.x,a.y);return!(!f?.startedInPopup&&!(0,ao.I)(c,h)||e&&aA(g,c)||f?.hasCrossAxisGestureTarget&&!f.drawerAxisAttributed&&!0!==f.allowSwipe)},onProgress(a,b){let c=aj.current;c&&function(a){if(aw.current||!a)return;let b=a.direction??r;10>Math.abs((0,am.R)(b,a.deltaX,a.deltaY))||(aw.current=!0,u?.(!0))}(b);let d=!!(B&&B.length>0);if(c&&"down"===r&&d&&b){let a=o.context.popupRef.current;a&&(a.style.removeProperty("transform"),a.style.setProperty(k,`${K(E??0,b.deltaY)}px`))}let e=a;if(aJ&&G>0){let a=E??aJ.minOffset;if(c&&b&&Number.isFinite(b.deltaY)){let c;c=(0,J.f)(a+b.deltaY,0,G),e=(0,J.f)((c-aJ.minOffset)/aJ.range,0,1)}else null!==aK&&(e=aK)}c||(v?.(0),aO()),aP(e,!0,c)},onRelease({event:a,deltaX:b,deltaY:c,direction:d,velocityX:e,velocityY:f,releaseVelocityX:g,releaseVelocityY:h}){let i=o.context.popupRef.current;if(!i)return void aN();function j(a){aO(),aM(!0),i.style.removeProperty("transition"),i.setAttribute(ap.f.endingStyle,""),ag.flushSync(()=>{ac(function(a,b,c,d,e,f,g,h){let i=ay(a,b);if(i<=0)return null;let j=Math.max(0,i-((("down"===b||"up"===b)&&B&&B.length>0?E??0:0)+(0,am.R)(b,c,d)));if(j<=0)return null;let k=(0,am.R)(b,g,h),l=Math.abs(k)>0?k:(0,am.R)(b,e,f);if(l<=.2)return null;let m=(0,J.f)(l,.2,4);return .1+((0,J.f)(j/m,80,360)-80)/280*.9}(i,a,b,c,e,f,g,h))})}if(!B||0===B.length){if(!d)return void aN();let a=(0,am.R)(d,b,c);if(a<=0)return aN(),!1;if((0,am.R)(d,e,f)>=.5)return j(d),!0;let g=a>az(i,d);return g?j(d):aN(),g}if("down"!==r&&"up"!==r)return void aN();if(!G)return aN(),!1;if(0===C.length)return void aN();let k="down"===r?c:-c,l=Math.sign(k),m="down"===r?h:-h,n="down"===r?f:-f,p=m;if(0!==l&&Math.abs(k)>=10){let a=Math.sign(p);0!==a&&a!==l&&(p=n)}let q=E??0,s=(0,J.f)(q+k,0,G),t=Math.abs(p)>=.5?300*(0,J.f)(p,-4,4):0,u=x?s:(0,J.f)(s+t,0,G),v=(0,Y.j)(an.swipe,a),w=()=>(aP(0,!0,!0),aN(),!1),y=a=>(F(a.value,v),w()),z=a=>d?(F(null,v),v.isCanceled)?w():(ad.current=D,j(r),!0):y(a);if(x){let a=[...C].sort((a,b)=>a.offset-b.offset),b=a.map(a=>a.offset),c=M(b,q),d=a[M(b,u)],e=Math.sign(p),f=u;if(0!==l&&0!==e&&e===l&&Math.abs(p)>=.5){let b=(0,J.f)(c+l,0,a.length-1);if(b!==c){let c=a[b];(l>0?u<c.offset:u>c.offset)&&(d=c,f=c.offset)}else if(l>0)return z(d)}return Math.abs(f-G)<Math.abs(f-d.offset)?z(d):y(d)}let A=C[M(C.map(a=>a.offset),u)];return p>=.5&&k>0||Math.abs(u-G)<Math.abs(u-A.offset)?z(A):y(A)},onDismiss(a){V?.set({swipeProgress:0,frontmostHeight:0});let b=o.context.backdropRef.current;b&&(b.style.setProperty(n,"0"),b.style.removeProperty(i));let c=(0,Y.j)(an.swipe,a);if(o.setOpen(!1,c),c.isCanceled){let b=ad.current;void 0!==b&&F(b,(0,Y.j)(an.swipe,a)),ad.current=void 0,ae.current?.(),aN();return}o.select("open")?af.request(()=>{if(o.select("open")){let b=ad.current;void 0!==b&&F(b,(0,Y.j)(an.swipe,a)),ad.current=void 0,aN(),ae.current?.()}else ad.current=void 0}):(ad.current=void 0,aM(!0))}}),aR=aQ.getPointerProps(),aS=aQ.getTouchProps(),{moveNative:aT,reset:aU}=aQ;ae.current=aU,e.useEffect(()=>{let a=S??T;if(!a||!L||!P)return;let b=(0,I.f)(a);return(0,U.f)(b,"touchmove",function(c){var d,e;if(aI?.onTouchMove(c),aG.current)return;let f=aH.current,g=c.touches[0];g&&f&&(!function(c,d,e){let f=$?e.clientY-d.lastY:e.clientX-d.lastX;if(2===c.touches.length||aA(b,a)||X||function(a,b,c,d){if(a.preserveNativeCrossAxisScroll)return!0;if(a.drawerAxisAttributed||!0===a.allowSwipe||!a.hasCrossAxisGestureTarget)return!1;if(!b.cancelable)return a.preserveNativeCrossAxisScroll=!0,!0;let e=d?c.clientY-a.startY:c.clientX-a.startX,f=d?c.clientX-a.startX:c.clientY-a.startY,g=Math.abs(e),h=Math.abs(f);return h>=6&&h>g+2?(a.preserveNativeCrossAxisScroll=!0,!0):!(g>=6)||(a.drawerAxisAttributed=!0,!1)}(d,c,e,$))return;let g=d.scrollTarget;if(!g||g===b.documentElement||g===b.body){c.cancelable&&c.preventDefault(),c.stopPropagation(),aT(c,a);return}if(!(aB(g,Z).max>0)){c.cancelable&&c.preventDefault(),c.stopPropagation();return}if(0!==f){var h,i,j,k;let a=(h=g,i=Z,j=r,k=f,!!(aD(j,i)?k>0:k<0)&&aC(h,i,j));d.allowSwipe?c.cancelable&&c.preventDefault():c.cancelable&&a?(d.allowSwipe=!0,c.preventDefault()):d.allowSwipe=!1}!0===d.allowSwipe&&(c.stopPropagation(),aT(c,a))}(c,f,g),(d=f).lastX=(e=g).clientX,d.lastY=e.clientY)},{passive:!1,capture:!0})},[P,X,L,T,$,Z,r,aT,S,aI]),(0,s.f)(()=>{aJ&&!aQ.swiping&&aP(!L||Q?0:aK??0,!0,!1)},[aP,w,Q,v,L,aK,aJ,aQ.swiping,o,V]),(0,s.f)(()=>{if(v)return L||v(0),()=>{v(0)}},[v,L]),(0,s.f)(()=>{L&&(y.current||aU(),aN())},[aN,L,aU,y]),(0,s.f)(()=>{let a=q.current;return()=>{V?.set({swipeProgress:0,frontmostHeight:0}),ax(a,!1);let b=q.current;b!==a&&ax(b,!1),aO()}},[q,aO,V]);let aV=e.useMemo(()=>({swiping:aQ.swiping,getDragStyles:aQ.getDragStyles,swipeStrength:aa??null,setSwipeDismissed:aM}),[aM,aQ.getDragStyles,aQ.swiping,aa]);function aW(a){aG.current=a,aH.current=null}function aX(){aW(!1),aE.current="",aF.current=!1}function aY(a){return aE.current="","touch"!==a.pointerType}return(0,d.jsx)(ak,{ref:b,className:g,style:h,render:c,...(0,al.w)(m,{onPointerDown(a){var b,c;if(aE.current=a.pointerType,aF.current="pen"===a.pointerType,!L||!P||X)return;let d=(0,as.f)(a.currentTarget.getRootNode(),a.clientX,a.clientY);b=d,(0,ao.h)(b,ar.u)||(c=d,(0,ao.h)(c,au))||"touch"!==a.pointerType&&aR.onPointerDown?.(a)},onPointerMove(a){"touch"!==a.pointerType&&aR.onPointerMove?.(a)},onPointerUp(a){aY(a)&&aR.onPointerUp?.(a)},onPointerCancel(a){aY(a)&&aR.onPointerCancel?.(a)},onTouchStart(a){var b,c,d;if("pen"===aE.current&&aF.current){aF.current=!1,aW(!1);return}if(!L||!P||X)return void aW(!1);let e=a.touches[0];if(!e)return;if(c=(b=a).nativeEvent,d=(0,W.f)(b.currentTarget),c.composedPath().some(a=>a instanceof d.HTMLInputElement&&"range"===a.type))return void aW(!1);let f=a.currentTarget,g=(0,as.f)(f.getRootNode(),e.clientX,e.clientY),h=(0,ao.Z)(a.nativeEvent),i=(0,ah.m)(h)?h:f;if(!(0,ao.I)(f,i)||(aI?.onTouchStart(a),(0,ao.h)(g,`${ar.u}:not(${av[_]})`)))return void aW(!0);aG.current=!1;let j=(0,aq.U)(i,f,Z),k=null!=(0,aq.U)(i,f,_)||null!=(0,ao.h)(g,av[_]),l=null;j&&(l=!!aC(j,Z,r)&&null),aH.current={startX:e.clientX,startY:e.clientY,lastX:e.clientX,lastY:e.clientY,startedInPopup:(0,ao.I)(p.current,g),scrollTarget:j,hasCrossAxisGestureTarget:k,allowSwipe:l,preserveNativeCrossAxisScroll:!1,drawerAxisAttributed:!1},aS.onTouchStart?.(a)},onTouchEnd(a){aI?.onTouchEnd(a),aX(),aS.onTouchEnd?.(a)},onTouchCancel(a){aI?.onTouchCancel(),aX(),aS.onTouchCancel?.(a)},"data-nested-dialog-open":void 0}),children:(0,d.jsx)(O.Provider,{value:aV,children:l})})});function ax(a,b){a?.toggleAttribute(B,b)}function ay(a,b){return"left"===b||"right"===b?a.offsetWidth:a.offsetHeight}function az(a,b){return Math.max(.5*ay(a,b),10)}function aA(a,b){let c,d,e=(0,ao.T)(a);if(e&&(0,ao.I)(b,e)&&("INPUT"===e.tagName||"TEXTAREA"===e.tagName)){let{selectionStart:a,selectionEnd:b}=e;if(null!=a&&null!=b&&a<b)return!0}let f=a.getSelection?.();return!!f&&!f.isCollapsed&&(c=(0,ah.m)(f.anchorNode)?f.anchorNode:f.anchorNode?.parentElement,d=(0,ah.m)(f.focusNode)?f.focusNode:f.focusNode?.parentElement,f.containsNode(b,!0)||(0,ao.I)(b,c)||(0,ao.I)(b,d))}function aB(a,b){if("vertical"===b){let b=Math.max(0,a.scrollHeight-a.clientHeight);return{offset:a.scrollTop,max:b}}let c=Math.max(0,a.scrollWidth-a.clientWidth);return{offset:a.scrollLeft,max:c}}function aC(a,b,c){let d=aD(c,b),{offset:e,max:f}=aB(a,b);return d?e<=0:e>=f}function aD(a,b){return"vertical"===b?"down"===a:"right"===a}a.s(["Backdrop",0,o,"Close",0,p,"Content",0,r,"Popup",0,S,"Portal",0,T,"Root",0,function(a){let{children:f,open:g,defaultOpen:h=!1,onOpenChange:i,onOpenChangeComplete:j,disablePointerDismissal:k=!1,modal:l=!0,actionsRef:m,handle:n,triggerId:o,defaultTriggerId:p=null,swipeDirection:q="down",snapToSequentialPoints:r=!1,snapPoints:s,snapPoint:u,defaultSnapPoint:v,onSnapPointChange:w}=a,x=H(!0),y=x?.onNestedSwipeProgressChange,z=x?.onNestedFrontmostHeightChange,A=x?.onNestedSwipingChange,B=x?.onNestedDrawerPresenceChange,[C,D]=e.useState(0),[E,F]=e.useState(0),[I,J]=e.useState(!1),[K,L]=e.useState(!1),[M]=e.useState(ac),N=void 0!==v?v:s?.[0]??null,O=void 0!==u,[P,Q]=(0,V.f)({controlled:u,default:N,name:"Drawer",state:"snapPoint"}),R=e.useRef(!1),S=e.useRef(!1),T=(0,t.f)((a,b)=>{let c=b??(0,Y.j)(Z.f.none);w?.(a,c),c.isCanceled||Q(a)}),U=e.useMemo(()=>O||!s||0===s.length||null!==P&&s.some(a=>Object.is(a,P))?P:N,[P,O,N,s]),W=(0,t.f)(a=>{D(a),!R.current&&a>0&&F(a)}),X=(0,t.f)(a=>{if(a>0){R.current=!0,F(a);return}R.current=!1,C>0&&F(C)}),$=(0,t.f)(a=>{J(a)}),aa=(0,t.f)(a=>{M.set(a),y?.(a)}),ab=(0,t.f)(a=>{L(a),A?.(a)}),ae=(0,t.f)((a,b)=>{i?.(a,b),!b.isCanceled&&!a&&s&&s.length>0&&T(N,(0,Y.j)(b.reason,b.event,b.trigger))}),af=e.useMemo(()=>({swipeDirection:q,swipeAreaActiveRef:S,snapToSequentialPoints:r,snapPoints:s,activeSnapPoint:U,setActiveSnapPoint:T,frontmostHeight:E,popupHeight:C,hasNestedDrawer:I,nestedSwiping:K,nestedSwipeProgressStore:M,onNestedDrawerPresenceChange:$,onPopupHeightChange:W,onNestedFrontmostHeightChange:X,onNestedSwipingChange:ab,onNestedSwipeProgressChange:aa,notifyParentFrontmostHeight:z,notifyParentSwipingChange:A,notifyParentSwipeProgressChange:y,notifyParentHasNestedDrawer:B}),[U,E,I,K,M,B,y,A,z,$,X,aa,ab,W,C,T,s,r,S,q]),ag="function"==typeof f?a=>(0,d.jsxs)(e.Fragment,{children:[b||(b=(0,d.jsx)(ad,{})),f(a)]}):(0,d.jsxs)(e.Fragment,{children:[c||(c=(0,d.jsx)(ad,{})),f]}),ah=(0,_.f)("drawer",{open:g,defaultOpen:h,onOpenChange:ae,onOpenChangeComplete:j,disablePointerDismissal:k,modal:l,actionsRef:m,handle:n,triggerId:o,defaultTriggerId:p,children:ag});return(0,d.jsx)(G.Provider,{value:af,children:ah})},"Title",0,ae,"Trigger",0,af,"Viewport",0,aw],35564);var aE=a.i(35564),aE=aE,aF=aE,aG=aE,aH=aE,aI=aE,aJ=aE,aK=aE,aL=aE,aM=aE,aN=a.i(99271),aO=a.i(76983),aP=a.i(50944),aQ=a.i(88412),aR=a.i(10020),aS=a.i(32043),aT=a.i(47763),aU=a.i(67051),aV=a.i(5050);let aW=(0,aV.createServerReference)("408b7585197882a44a3cc8c0b1c3280e3806171563",aV.callServer,void 0,aV.findSourceMapURL,"switchPartyTools"),aX=[{how:"add",label:"Add to each"},{how:"remove",label:"Remove from each"},{how:"replace",label:"Replace with these"}];var aY=a.i(55322);let aZ=[{state:"all",label:"All"},{state:"on",label:"On"},{state:"off",label:"Off"},{state:"new",label:"New"},{state:"needsNothing",label:"Needs nothing"}];var a$=a.i(66296),a_=a.i(45937),a0=a.i(881),a1=a.i(92389);function a2(a){return a?.split("\n").find(a=>""!==a.trim())?.trim()??""}function a3({fleetId:a,party:b,tools:c,version:f,partyScopes:g,listed:h,canChange:i,serverRefusal:j}){var k;let l,m,n=(0,aP.useRouter)(),o=aO.f.useToastManager(),[,p]=(0,e.useTransition)(),[q,r]=(0,e.useTransition)(),[s,t]=(0,e.useState)(""),[u,v]=(0,e.useState)("all"),[w,x]=(0,e.useState)(new Set),[y,z]=(0,e.useState)(null),[A,B]=(0,e.useState)([]),[C,D]=(0,e.useState)("add"),[E,F]=(0,e.useState)({readOnly:[],other:[]}),[G,H]=(0,e.useState)(!1),[I,J]=(0,e.useState)(null),[K,L]=(0,e.useState)(null),[M,N]=(0,e.useState)(null),[O,P]=(0,e.useState)({names:new Set,round:0}),[Q,R]=(0,e.useState)(null),[S,T]=(0,e.useState)(!1),[U,V]=(0,e.useState)(null),W=U?.basis===c?U:null,X=null===W?c:c.map(a=>({...a,scopes:W.scopes.get(a.name)??a.scopes,isOn:null===a.isOn?null:W.switches.get(a.name)??a.isOn})),Y=W?.party??g,Z=Math.max(f,Q??0),$=null===h?null:new Set(h.map(({scope:a})=>a)),_=(l=(k={name:s,state:u,partyScopes:Y}).name.trim().toLowerCase(),X.filter(a=>a.name.toLowerCase().includes(l)&&function(a,{state:b,partyScopes:c}){switch(b){case"all":return!0;case"on":return!0===a.isOn;case"off":return!1===a.isOn;case"new":return a.isNew;case"needsNothing":return 0===c.length&&0===a.scopes.length}}(a,k))),aa=X.filter(({name:a})=>w.has(a)),ab=null===j,ac=_.length>0&&_.every(({name:a})=>w.has(a)),ad=function(a){let b={readOnly:[],other:[],withoutHints:[]};for(let c of a.filter(({scopes:a})=>0===a.length))!0===c.isDestructive||!1===c.isReadOnly?b.other.push(c.name):!0===c.isReadOnly?b.readOnly.push(c.name):b.withoutHints.push(c.name);return b}(X),ae=[...(m=(a,b)=>0===b.length?[]:a.map(a=>({tool:a,scopes:[...b]})))(ad.readOnly,E.readOnly),...m(ad.other,E.other)],af=({outcome:a,changed:b,message:d,change:e})=>{V({basis:c,party:e.party??W?.party??null,scopes:new Map([...W?.scopes??[],...(e.scopes??[]).map(({tool:a,scopes:b})=>[a,b])]),switches:new Map([...W?.switches??[],...e.switches??[]])}),null!==a.version&&R(a.version),P(a=>({names:new Set(b),round:a.round+1})),o.add({title:(0,aY.I)(d,a.statementRefusal)}),n.refresh()},ag=a=>{J(null),T(!1),B("party"===a?[...Y]:[]),D("add"),F({readOnly:[],other:[]}),z(a)},ah=()=>{z(null),J(null)},ai=({change:c,changed:d,message:e})=>{H(!0),J(null),p(async()=>{let f=await (0,aU.f)({fleetId:a,name:b,version:Z,...c});(H(!1),f.isOk)?(z(null),x(new Set),af({outcome:f,changed:d,message:e,change:{...void 0===c.party?{}:{party:c.party},scopes:c.tools}})):J({message:f.message,isConflict:f.isConflict,version:Z})})},aj=({names:c,isOn:d,working:e})=>{L(e),N(null),T(!1),p(async()=>{let e=await aW({fleetId:a,name:b,tools:[...c],isOn:d});if(L(null),!e.isOk)return void N(e.message);let[f]=c;af({outcome:e,changed:c,change:{switches:new Map(c.map(a=>[a,d]))},message:1===c.length&&void 0!==f?function({tool:a,isOn:b,statementRefusal:c}){let d=`${a} is ${b?"on":"off"}`;return null!==c?`${d}; the fleet sees it at the proxy ship's next statement: ${c}`:b?`${d}: the fleet may call it.`:`${d}: the fleet sees it no more, and a call to it is refused.`}({tool:f,isOn:d,statementRefusal:null}):(0,aY.g)({count:c.length,isOn:d,statementRefusal:null})})})},ak=()=>{r(()=>{n.refresh()})},al=null!==K||G,am=(0,d.jsxs)("div",{className:"grid gap-3 sm:flex sm:flex-wrap sm:items-center","data-testid":"tools-table-toolbar",children:[(0,d.jsxs)("label",{className:"grid gap-1 sm:w-56",children:[(0,d.jsx)("span",{className:"sr-only",children:"Filter by name"}),(0,d.jsx)("input",{className:aQ.w,type:"search",placeholder:"Filter by name",value:s,onChange:a=>{t(a.target.value)},"data-testid":"tools-table-name-filter"})]}),(0,d.jsx)("div",{role:"group","aria-label":"Filter by state",className:"flex flex-wrap gap-1",children:aZ.map(({state:a,label:b})=>(0,d.jsx)("button",{type:"button","aria-pressed":u===a,onClick:()=>{v(a)},className:`h-8 rounded-md border px-3 ${u===a?"border-primary bg-primary text-primary-foreground":"border-border bg-card hover:bg-accent"}`,"data-testid":`tools-table-state-${a}`,children:b},a))}),i?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("label",{className:"flex items-center gap-2",children:[(0,d.jsx)("input",{type:"checkbox",checked:ac,onChange:()=>{x(a=>{let b=new Set(a);for(let{name:a}of _)ac?b.delete(a):b.add(a);return b})},disabled:0===_.length,"data-testid":"tools-table-select-shown"}),"Select all shown"]}),(0,d.jsxs)("span",{className:"text-muted-foreground","data-testid":"tools-table-selected",children:[w.size," selected"]}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2 sm:ml-auto",children:[(0,d.jsx)("button",{type:"button",className:aQ.x.secondary,disabled:0===w.size||al||null===h,onClick:()=>{ag("scopes")},"data-testid":"tools-table-set-scopes",children:"Set scopes…"}),(0,d.jsx)(aS.i,{isPending:"on"===K,pendingLabel:"Switching on…",disabled:0===w.size||al||!ab,onClick:()=>{aj({names:[...w],isOn:!0,working:"on"})},"data-testid":"tools-table-switch-on",children:"Switch on"}),(0,d.jsx)(aS.i,{isPending:"off"===K,pendingLabel:"Switching off…",disabled:0===w.size||al||!ab,onClick:()=>{aj({names:[...w],isOn:!1,working:"off"})},"data-testid":"tools-table-switch-off",children:"Switch off"}),(0,d.jsx)("button",{type:"button",className:aQ.x.secondary,disabled:al||!ab||null===h,onClick:()=>{ag("suggest")},"data-testid":"tools-table-suggest",children:"Suggest from hints…"})]})]}):null]});return(0,d.jsxs)("div",{className:"grid gap-3",children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2","data-testid":"tools-table-party-needs",children:[(0,d.jsx)("span",{className:"font-medium",children:"Every tool needs"}),(0,d.jsx)(a$.f,{party:Y,own:[],listed:$}),i?(0,d.jsx)("button",{type:"button",className:"text-primary hover:underline disabled:opacity-60",disabled:al||null===h,onClick:()=>{ag("party")},"data-testid":"tools-table-party-change",children:"Change…"}):null]}),null===j?null:(0,d.jsxs)("p",{role:"status",className:"rounded-md border border-tone-waiting-border bg-tone-waiting-bg px-3 py-2 text-tone-waiting-fg","data-testid":"tools-table-server-down",children:["The server did not answer, so this shows the scopes kept per tool name; they can still be changed. ",j]}),(0,d.jsx)("div",{className:"hidden sm:block",children:am}),(0,d.jsx)("div",{className:"sm:hidden",children:(0,d.jsxs)(aE.Root,{open:S,onOpenChange:T,children:[(0,d.jsxs)(aF.Trigger,{className:aQ.x.secondary,"data-testid":"tools-table-sheet-open",children:["Filters and actions",i?` (${String(w.size)} selected)`:""]}),(0,d.jsxs)(aG.Portal,{children:[(0,d.jsx)(aH.Backdrop,{className:"fixed inset-0 z-40 bg-(--overlay)"}),(0,d.jsx)(aI.Viewport,{className:"fixed inset-0 z-50 flex items-end",children:(0,d.jsx)(aJ.Popup,{className:"w-full rounded-t-lg border border-border bg-popover p-4 text-popover-foreground shadow-lg",children:(0,d.jsxs)(aK.Content,{className:"grid gap-3",children:[(0,d.jsx)(aL.Title,{className:"text-heading font-semibold",children:"Filters and actions"}),am,(0,d.jsx)(aM.Close,{className:aQ.x.secondary,children:"Done"})]})})})]})]})}),null===M?null:(0,d.jsx)("p",{role:"alert",className:"rounded-md border border-tone-attention-border bg-tone-attention-bg px-3 py-2 text-tone-attention-fg","data-testid":"tools-table-switch-refusal",children:M}),(0,d.jsxs)("table",{className:"w-full border-collapse max-sm:block","data-testid":"tools-table",children:[(0,d.jsx)("thead",{className:"max-sm:hidden",children:(0,d.jsxs)("tr",{className:"border-b border-border text-left text-muted-foreground",children:[i?(0,d.jsx)("th",{className:"w-8 py-2",children:(0,d.jsx)("span",{className:"sr-only",children:"Selected"})}):null,(0,d.jsx)("th",{className:"py-2 font-medium",children:"Tool"}),(0,d.jsx)("th",{className:"py-2 font-medium",children:"Hints"}),(0,d.jsx)("th",{className:"py-2 font-medium",children:"On"}),(0,d.jsx)("th",{className:"py-2 font-medium",children:"Needs"})]})}),(0,d.jsx)("tbody",{className:"max-sm:grid max-sm:gap-2",children:_.map(a=>{let b=O.names.has(a.name);return(0,d.jsxs)("tr",{className:`border-b border-border align-top last:border-b-0 max-sm:grid max-sm:grid-cols-[auto_1fr] max-sm:gap-x-2 max-sm:rounded-md max-sm:border max-sm:p-2 ${b?"animate-highlight":""}`,"data-testid":"tools-table-row","data-tool":a.name,children:[i?(0,d.jsx)("td",{className:"py-2 pr-2 max-sm:row-span-4",children:(0,d.jsx)("input",{type:"checkbox","aria-label":`Select ${a.name}`,checked:w.has(a.name),onChange:()=>{var b;b=a.name,x(a=>{let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c})},"data-testid":"tools-table-select"})}):null,(0,d.jsxs)("td",{className:"py-2 pr-3 max-sm:col-start-2",children:[(0,d.jsxs)("span",{className:"flex flex-wrap items-center gap-2",children:[(0,d.jsx)("span",{className:"font-mono",children:a.name}),a.isNew?(0,d.jsx)(aT.T,{tone:"attention",label:"New"}):null]}),""===a2(a.description)?null:(0,d.jsx)("span",{className:"block text-muted-foreground",children:a2(a.description)})]}),(0,d.jsx)("td",{className:"py-2 pr-3 max-sm:col-start-2",children:(0,d.jsxs)("span",{className:"flex flex-wrap gap-1",children:[!0===a.isReadOnly?(0,d.jsx)(aT.E,{children:"Read only"}):null,!0===a.isDestructive?(0,d.jsx)(aT.E,{children:"Destructive"}):null]})}),(0,d.jsx)("td",{className:"py-2 pr-3 max-sm:col-start-2",children:null===a.isOn?(0,d.jsx)("span",{className:"text-muted-foreground",children:"Not known"}):i?(0,d.jsx)(aR.f,{isOn:a.isOn,label:a.name,isPending:K===a.name,onClick:()=>{aj({names:[a.name],isOn:!0!==a.isOn,working:a.name})},testId:"tools-table-switch"}):(0,d.jsx)(aT.E,{children:a.isOn?"On":"Off"})}),(0,d.jsx)("td",{className:"py-2 max-sm:col-start-2",children:(0,d.jsx)(a$.f,{party:Y,own:a.scopes,listed:$})})]},b?`${a.name}-${String(O.round)}`:a.name)})})]}),0===_.length?(0,d.jsx)("p",{className:"text-muted-foreground","data-testid":"tools-table-empty",children:0===X.length?ab?`${b} lists no tools.`:"No tool needs a scope of its own yet.":"No tool matches the filters."}):null,null===h?null:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(a0.G,{isOpen:"scopes"===y,onClose:ah,title:"Set scopes",description:"The scopes a calling ship must hold for each selected tool, beside what every tool needs.",appliesTo:`Applies to ${String(aa.length)} ${1===aa.length?"tool":"tools"}`,action:{label:"Set scopes",pending:"Setting…",isDisabled:0===A.length&&"replace"!==C,onPress:()=>{var a;ai({change:{tools:(a={scopes:A,how:C},aa.map(({name:b,scopes:c})=>{switch(a.how){case"add":return{tool:b,scopes:[...new Set([...c,...a.scopes])]};case"remove":return{tool:b,scopes:c.filter(b=>!a.scopes.includes(b))};case"replace":return{tool:b,scopes:[...new Set(a.scopes)]}}}))},changed:aa.map(({name:a})=>a),message:(0,aY.y)({scopes:A,how:C,count:aa.length})})}},isSaving:G,refusal:(0,a0.V)(I,Z),isReloading:q,onReload:ak,testId:"tools-table-scopes-dialog",children:[(0,d.jsx)(a_.f,{label:"Scopes",listed:h,picked:A,onPick:B,isDisabled:G,testId:"tools-table-scopes-picker"}),(0,d.jsxs)("fieldset",{className:"grid gap-1",children:[(0,d.jsx)("legend",{className:"font-medium",children:"On each selected tool"}),aX.map(a=>(0,d.jsxs)("label",{className:"flex items-center gap-2",children:[(0,d.jsx)("input",{type:"radio",name:"how",value:a.how,checked:C===a.how,onChange:()=>{D(a.how)},"data-testid":`tools-table-how-${a.how}`}),a.label]},a.how))]})]}),(0,d.jsx)(a0.G,{isOpen:"party"===y,onClose:ah,title:"Every tool needs",description:`The scopes a calling ship must hold for every tool of ${b}, beside each tool's own.`,appliesTo:`Applies to every tool of ${b}`,action:{label:"Save",pending:"Saving…",isDisabled:!1,onPress:()=>{ai({change:{party:A,tools:[]},changed:X.map(({name:a})=>a),message:(0,aY.G)({party:b,scopes:A})})}},isSaving:G,refusal:(0,a0.V)(I,Z),isReloading:q,onReload:ak,testId:"tools-table-party-dialog",children:(0,d.jsx)(a_.f,{label:"Scopes",listed:h,picked:A,onPick:B,isDisabled:G,testId:"tools-table-party-picker"})}),(0,d.jsxs)(a0.G,{isOpen:"suggest"===y,onClose:ah,title:"Suggest from hints",description:"Scopes for each tool with no scope of its own, by what the server says of it. Hints are the server's claim: nothing applies until you confirm.",appliesTo:`Applies to ${String(ae.length)} ${1===ae.length?"tool":"tools"}`,action:{label:"Apply",pending:"Applying…",isDisabled:0===ae.length,onPress:()=>{let a=[{scopes:E.readOnly,count:0===E.readOnly.length?0:ad.readOnly.length},{scopes:E.other,count:0===E.other.length?0:ad.other.length}].filter(({count:a})=>a>0);ai({change:{tools:ae},changed:ae.map(({tool:a})=>a),message:(0,aY.q)(a)})}},isSaving:G,refusal:(0,a0.V)(I,Z),isReloading:q,onReload:ak,testId:"tools-table-suggest-dialog",children:[(0,d.jsx)(a_.f,{label:"Scopes for read-only tools",listed:h,picked:E.readOnly,onPick:a=>{F(b=>({...b,readOnly:a}))},isDisabled:G,testId:"tools-table-suggest-read-only"}),(0,d.jsx)(a_.f,{label:"Scopes for the other tools",listed:h,picked:E.other,onPick:a=>{F(b=>({...b,other:a}))},isDisabled:G,testId:"tools-table-suggest-other"}),(0,d.jsx)(a4,{title:"Read-only tools",names:ad.readOnly,testId:"tools-table-suggest-read-only-tools"}),(0,d.jsx)(a4,{title:"Other tools",names:ad.other,testId:"tools-table-suggest-other-tools"}),(0,d.jsx)(a4,{title:"Without hints, left as they are",names:ad.withoutHints,testId:"tools-table-suggest-without-hints"})]})]})]})}function a4({title:a,names:b,testId:c}){return(0,d.jsxs)("details",{className:"rounded-md border border-border px-3 py-2","data-testid":c,children:[(0,d.jsxs)("summary",{className:"cursor-pointer",children:[a," (",b.length,")"]}),0===b.length?(0,d.jsx)("p",{className:"text-muted-foreground",children:"None"}):(0,d.jsx)("p",{className:"font-mono text-code break-words",children:b.join(", ")})]})}a.s(["ToolsTable",0,function(a){return(0,d.jsxs)(aN.f.Provider,{children:[(0,d.jsx)(a3,{...a}),(0,d.jsx)(a1.f,{})]})}],44512)},4423,a=>{var b=a.i(87924),c=a.i(72131),d=a.i(30587),e=a.i(5050);let f=(0,e.createServerReference)("40a9ad5c4ced811b2e1b944591f45e2bdec3885949",e.callServer,void 0,e.findSourceMapURL,"readMoreSignIns"),g=(0,e.createServerReference)("4004ce1d46e14c5c2150455347d2c7a8d5d86a444d",e.callServer,void 0,e.findSourceMapURL,"removePersonSignIn");function h(a,b){let c=new Set(a.map(({personShipId:a})=>a));return[...a,...b.filter(({personShipId:a})=>!c.has(a))]}var i=a.i(88412),j=a.i(36855),k=a.i(47763);let l=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],m=a=>String(a).padStart(2,"0"),n={signedIn:{tone:"ok",label:"Signed in"},lost:{tone:"attention",label:"Lost"}};function o(a){return a.personName??a.personShipId}function p({count:a}){return(0,b.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,b.jsx)("h2",{className:"text-section font-semibold",children:"Everyone's sign-ins"}),null===a?null:(0,b.jsx)("span",{className:"text-muted-foreground",children:a})]})}function q(){return(0,b.jsx)("thead",{className:"max-sm:hidden",children:(0,b.jsxs)("tr",{className:"border-b border-border text-left text-muted-foreground",children:[(0,b.jsx)("th",{className:"h-10 px-2 font-medium",children:"Person"}),(0,b.jsx)("th",{className:"h-10 px-2 font-medium",children:"Account"}),(0,b.jsx)("th",{className:"h-10 px-2 font-medium",children:"State"}),(0,b.jsx)("th",{className:"h-10 px-2 font-medium",children:"Last used"}),(0,b.jsx)("th",{className:"h-10 px-2",children:(0,b.jsx)("span",{className:"sr-only",children:"Remove"})})]})})}function r({signIn:a,party:c,isRemoving:d,onConfirm:e,onKeep:f}){let g=o(a);return(0,b.jsxs)("div",{className:"grid gap-2 rounded-md bg-muted p-3","data-testid":"outside-party-sign-ins-confirm",children:[(0,b.jsxs)("p",{children:["Remove ",g,"'s sign-in? Their ships' calls to ",c," are refused until they sign in again."]}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,b.jsx)("button",{type:"button",className:i.x.destructive,disabled:d,"aria-busy":d,onClick:e,"data-testid":"outside-party-sign-ins-remove-confirmed",children:d?"Removing…":`Remove ${g}'s sign-in`}),(0,b.jsx)("button",{type:"button",className:i.x.secondary,onClick:f,children:"Keep"})]})]})}function s(a){let{party:c,now:d,rows:e,refusal:f,hasMore:g,isLoadingMore:h,confirming:s,removing:t,outcome:u}=a;return(0,b.jsxs)("section",{className:`${i.r} grid gap-3`,"data-testid":"outside-party-sign-ins",children:[(0,b.jsx)(p,{count:null===f?e.length:null}),(0,b.jsx)(j.f,{state:u}),null!==f?(0,b.jsx)(j.f,{state:{kind:"refused",message:f}}):0===e.length?(0,b.jsx)("p",{className:"text-muted-foreground",children:"Nobody has signed in yet."}):(0,b.jsxs)("table",{className:"w-full border-collapse max-sm:block",children:[(0,b.jsx)(q,{}),(0,b.jsx)("tbody",{className:"max-sm:grid",children:e.map(e=>{var f;let g,h,j=n[e.state],p=s===e.personShipId,q=null===e.lastUsedAt?"Not yet":(f=e.lastUsedAt,(h=new Date(d).getTime()-new Date(f).getTime())<6e4?"Just now":h<36e5?`${String(Math.floor(h/6e4))} min ago`:(g=new Date(f),`${String(g.getUTCDate())} ${l[g.getUTCMonth()]??""}, ${m(g.getUTCHours())}:${m(g.getUTCMinutes())}`));return[(0,b.jsxs)("tr",{className:`border-b border-border max-sm:grid max-sm:grid-cols-[1fr_auto] max-sm:gap-1 max-sm:py-3 ${p?"border-b-0":"last:border-b-0"}`,"data-testid":"outside-party-sign-ins-row",children:[(0,b.jsxs)("td",{className:"h-12 px-2 max-sm:col-start-1 max-sm:row-start-1 max-sm:h-auto max-sm:px-0 max-sm:font-medium",children:[o(e),e.isYours?(0,b.jsx)("span",{className:"font-normal text-muted-foreground",children:" (you)"}):null]}),(0,b.jsxs)("td",{className:"h-12 px-2 max-sm:col-span-2 max-sm:row-start-2 max-sm:h-auto max-sm:px-0 max-sm:text-muted-foreground",children:[function({outsideAccount:a}){return a.name??a.subject??(0,b.jsx)("span",{className:"text-muted-foreground",children:"Not known"})}(e),(0,b.jsxs)("span",{className:"sm:hidden",children:[" · last used ",null===e.lastUsedAt?"not yet":q]})]}),(0,b.jsx)("td",{className:"h-12 px-2 max-sm:col-start-2 max-sm:row-start-1 max-sm:h-auto max-sm:px-0",children:(0,b.jsx)(k.T,{tone:j.tone,label:j.label})}),(0,b.jsx)("td",{className:"h-12 px-2 text-muted-foreground max-sm:hidden",children:q}),(0,b.jsx)("td",{className:"h-12 px-2 text-right max-sm:col-span-2 max-sm:row-start-3 max-sm:h-auto max-sm:px-0 max-sm:text-left",children:(0,b.jsx)("button",{type:"button",className:`${i.x.secondary} ${p?"max-sm:hidden":""}`,onClick:()=>{a.onRemove(e.personShipId)},"data-testid":"outside-party-sign-ins-remove",children:"Remove"})})]},e.personShipId),p?(0,b.jsx)("tr",{className:"border-b border-border last:border-b-0 max-sm:block max-sm:pb-3",children:(0,b.jsx)("td",{colSpan:5,className:"pb-2 max-sm:block max-sm:pb-0",children:(0,b.jsx)(r,{signIn:e,party:c,isRemoving:t===e.personShipId,onConfirm:()=>{a.onConfirm(e)},onKeep:a.onKeep})})},`${e.personShipId}-confirm`):null]})})]}),null===f&&g?(0,b.jsx)("div",{children:(0,b.jsx)("button",{type:"button",className:i.x.secondary,disabled:h,"aria-busy":h,onClick:a.onMore,"data-testid":"outside-party-sign-ins-more",children:h?"Showing more…":"Show more"})}):null]})}a.s(["EveryonesSignInsCard",0,function({fleetId:a,party:e,now:i,first:j}){let[k,l]=(0,c.useState)([]),[m,n]=(0,c.useState)(j.next),[p,q]=(0,c.useState)(new Set),[r,t]=(0,c.useState)(null),[u,v]=(0,c.useState)(null),[w,x]=(0,c.useState)(d.Q),[y,z]=(0,c.useTransition)(),[,A]=(0,c.useTransition)(),B=h(j.grants,k).filter(({personShipId:a})=>!p.has(a));return(0,b.jsx)(s,{party:e,now:i,rows:B,refusal:null,hasMore:null!==m,isLoadingMore:y,confirming:r,removing:u,outcome:w,onRemove:a=>{t(a),x(d.Q)},onConfirm:b=>{v(b.personShipId),A(async()=>{let c=await g({fleetId:a,name:e,personShipId:b.personShipId});v(null),t(null),c.isOk?(q(a=>new Set([...a,b.personShipId])),x({kind:"done",message:function({person:a,party:b,isRevoked:c}){return c?`${a}'s sign-in is removed, and revoked at ${b}.`:`${a}'s sign-in is removed.`}({person:o(b),party:e,isRevoked:c.isRevoked})})):x({kind:"refused",message:c.message})})},onKeep:()=>{t(null)},onMore:()=>{let b=m??B.at(-1)?.personShipId;void 0!==b&&z(async()=>{let c=await f({fleetId:a,name:e,after:b});c.isOk?(l(a=>h(a,c.grants)),n(c.next)):x({kind:"refused",message:c.message})})}})}],4423)},88275,a=>{var b=a.i(87924),c=a.i(72131),d=a.i(30587),e=a.i(36855),f=a.i(77237),g=a.i(5050);let h=(0,g.createServerReference)("60f6ca9b179e3a54d5ed0f11cdb52aaa1f537bc553",g.callServer,void 0,g.findSourceMapURL,"removeOwnSignIn");var i=a.i(61133);function j({fleetId:a,party:c}){return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("input",{type:"hidden",name:d.H,value:a}),(0,b.jsx)("input",{type:"hidden",name:"name",value:c})]})}a.s(["RemoveSignInForm",0,function({fleetId:a,party:g}){let[i,k]=(0,c.useActionState)(h,d.Q);return(0,b.jsxs)("form",{action:k,className:"grid gap-2",children:[(0,b.jsx)(e.f,{state:i}),(0,b.jsx)(j,{fleetId:a,party:g}),(0,b.jsx)("div",{children:(0,b.jsx)(f.f,{kind:"secondary",pending:"Removing…",testId:"outside-party-sign-in-remove",children:"Remove"})})]})},"SignInForm",0,function({fleetId:a,party:g,label:h,kind:k}){let[l,m]=(0,c.useActionState)(i.f,d.Q);return(0,b.jsxs)("form",{action:m,className:"grid gap-2",children:[(0,b.jsx)(e.f,{state:l}),(0,b.jsx)(j,{fleetId:a,party:g}),(0,b.jsx)("div",{children:(0,b.jsx)(f.f,{kind:k,pending:`Opening ${g}…`,testId:"outside-party-sign-in-start",children:h})})]})}],88275)},73877,a=>{var b=a.i(87924),c=a.i(72131),d=a.i(35112),e=a.i(30587),f=a.i(10020),g=a.i(5050);let h=(0,g.createServerReference)("60fc44c5251aea4e8cf6a11329208266754ef56a78",g.callServer,void 0,g.findSourceMapURL,"markA2aAgent"),i={kind:"idle"};function j({isRepeatable:a}){let c=(0,d.useFormStatus)();return(0,b.jsx)(f.f,{type:"submit",isOn:a,label:"Repeatable",isPending:c.pending,testId:"outside-party-repeatable-switch"})}a.s(["RepeatableSwitch",0,function({fleetId:a,party:d,isRepeatable:f}){let[g,k]=(0,c.useActionState)(h,i),l="marked"===g.kind?g.isRepeatable:f;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("form",{action:k,className:"contents",children:[(0,b.jsx)("input",{type:"hidden",name:e.H,value:a}),(0,b.jsx)("input",{type:"hidden",name:"name",value:d}),(0,b.jsx)("input",{type:"hidden",name:"isRepeatable",value:String(!l)}),(0,b.jsx)(j,{isRepeatable:l})]}),"idle"===g.kind?null:(0,b.jsx)("span",{role:"refused"===g.kind?"alert":"status",className:`basis-full text-caption ${"refused"===g.kind?"text-tone-attention-fg":"text-tone-ok-fg"}`,"data-testid":"outside-party-repeatable-outcome",children:g.message})]})}],73877)}]})();
2
2
 
3
- //# sourceMappingURL=web_features_1d-wq10_n8ex0._.js.map
3
+ //# sourceMappingURL=web_features_11rwm0rhf5957._.js.map