@aeolus-fleet/gateway 0.37.1 → 0.37.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (251) hide show
  1. package/dist/adapters/fleet/active-ships.js +24 -1
  2. package/dist/adapters/fleet/active-ships.js.map +1 -1
  3. package/dist/adapters/prisma/changes.d.ts +8 -3
  4. package/dist/adapters/prisma/changes.js +18 -2
  5. package/dist/adapters/prisma/changes.js.map +1 -1
  6. package/dist/app.js +19 -11
  7. package/dist/app.js.map +1 -1
  8. package/dist/core/people/held-deliveries.d.ts +30 -0
  9. package/dist/core/people/held-deliveries.js +42 -0
  10. package/dist/core/people/held-deliveries.js.map +1 -0
  11. package/dist/core/people/opened-of.d.ts +2 -0
  12. package/dist/core/people/opened-of.js.map +1 -1
  13. package/dist/core/people/ports.d.ts +8 -0
  14. package/dist/core/people/read-basket.d.ts +2 -0
  15. package/dist/core/people/read-basket.js.map +1 -1
  16. package/dist/core/people/read-bridge-home.d.ts +2 -0
  17. package/dist/core/people/read-bridge-home.js.map +1 -1
  18. package/dist/core/people/read-inbox.d.ts +16 -8
  19. package/dist/core/people/read-inbox.js +21 -10
  20. package/dist/core/people/read-inbox.js.map +1 -1
  21. package/dist/core/people/send-stored-answers.d.ts +2 -0
  22. package/dist/core/people/send-stored-answers.js +1 -1
  23. package/dist/core/people/send-stored-answers.js.map +1 -1
  24. package/package.json +1 -1
  25. package/web/.next/BUILD_ID +1 -1
  26. package/web/.next/build-manifest.json +3 -3
  27. package/web/.next/diagnostics/route-bundle-stats.json +75 -75
  28. package/web/.next/fallback-build-manifest.json +3 -3
  29. package/web/.next/prerender-manifest.json +3 -3
  30. package/web/.next/server/app/(bridge)/bridge/basket/page/server-reference-manifest.json +10 -10
  31. package/web/.next/server/app/(bridge)/bridge/basket/page.js.nft.json +1 -1
  32. package/web/.next/server/app/(bridge)/bridge/basket/page_client-reference-manifest.js +1 -1
  33. package/web/.next/server/app/(bridge)/bridge/done/page/server-reference-manifest.json +4 -4
  34. package/web/.next/server/app/(bridge)/bridge/done/page.js.nft.json +1 -1
  35. package/web/.next/server/app/(bridge)/bridge/done/page_client-reference-manifest.js +1 -1
  36. package/web/.next/server/app/(bridge)/bridge/fleet/page/server-reference-manifest.json +3 -3
  37. package/web/.next/server/app/(bridge)/bridge/fleet/page.js.nft.json +1 -1
  38. package/web/.next/server/app/(bridge)/bridge/fleet/page_client-reference-manifest.js +1 -1
  39. package/web/.next/server/app/(bridge)/bridge/page/server-reference-manifest.json +9 -9
  40. package/web/.next/server/app/(bridge)/bridge/page.js.nft.json +1 -1
  41. package/web/.next/server/app/(bridge)/bridge/page_client-reference-manifest.js +1 -1
  42. package/web/.next/server/app/(bridge)/bridge/settings/page/server-reference-manifest.json +3 -3
  43. package/web/.next/server/app/(bridge)/bridge/settings/page.js.nft.json +1 -1
  44. package/web/.next/server/app/(bridge)/bridge/settings/page_client-reference-manifest.js +1 -1
  45. package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page/server-reference-manifest.json +4 -4
  46. package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page.js.nft.json +1 -1
  47. package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page_client-reference-manifest.js +1 -1
  48. package/web/.next/server/app/(bridge)/bridge/settings/routing/page/server-reference-manifest.json +7 -7
  49. package/web/.next/server/app/(bridge)/bridge/settings/routing/page.js.nft.json +1 -1
  50. package/web/.next/server/app/(bridge)/bridge/settings/routing/page_client-reference-manifest.js +1 -1
  51. package/web/.next/server/app/(bridge)/bridge/stay-aware/page/server-reference-manifest.json +9 -9
  52. package/web/.next/server/app/(bridge)/bridge/stay-aware/page.js.nft.json +1 -1
  53. package/web/.next/server/app/(bridge)/bridge/stay-aware/page_client-reference-manifest.js +1 -1
  54. package/web/.next/server/app/(bridge)/outside-parties/[name]/change/page/server-reference-manifest.json +18 -18
  55. package/web/.next/server/app/(bridge)/outside-parties/[name]/change/page.js.nft.json +1 -1
  56. package/web/.next/server/app/(bridge)/outside-parties/[name]/change/page_client-reference-manifest.js +1 -1
  57. package/web/.next/server/app/(bridge)/outside-parties/[name]/page/server-reference-manifest.json +10 -10
  58. package/web/.next/server/app/(bridge)/outside-parties/[name]/page.js.nft.json +1 -1
  59. package/web/.next/server/app/(bridge)/outside-parties/[name]/page_client-reference-manifest.js +1 -1
  60. package/web/.next/server/app/(bridge)/outside-parties/[name]/retire/page/server-reference-manifest.json +18 -18
  61. package/web/.next/server/app/(bridge)/outside-parties/[name]/retire/page.js.nft.json +1 -1
  62. package/web/.next/server/app/(bridge)/outside-parties/[name]/retire/page_client-reference-manifest.js +1 -1
  63. package/web/.next/server/app/(bridge)/outside-parties/add/page/server-reference-manifest.json +12 -12
  64. package/web/.next/server/app/(bridge)/outside-parties/add/page.js.nft.json +1 -1
  65. package/web/.next/server/app/(bridge)/outside-parties/add/page_client-reference-manifest.js +1 -1
  66. package/web/.next/server/app/(bridge)/outside-parties/add-a2a-agent/page/server-reference-manifest.json +4 -4
  67. package/web/.next/server/app/(bridge)/outside-parties/add-a2a-agent/page.js.nft.json +1 -1
  68. package/web/.next/server/app/(bridge)/outside-parties/add-a2a-agent/page_client-reference-manifest.js +1 -1
  69. package/web/.next/server/app/(bridge)/outside-parties/add-a2a-client/page/server-reference-manifest.json +4 -4
  70. package/web/.next/server/app/(bridge)/outside-parties/add-a2a-client/page.js.nft.json +1 -1
  71. package/web/.next/server/app/(bridge)/outside-parties/add-a2a-client/page_client-reference-manifest.js +1 -1
  72. package/web/.next/server/app/(bridge)/outside-parties/page/server-reference-manifest.json +4 -4
  73. package/web/.next/server/app/(bridge)/outside-parties/page.js.nft.json +1 -1
  74. package/web/.next/server/app/(bridge)/outside-parties/page_client-reference-manifest.js +1 -1
  75. package/web/.next/server/app/(console)/gateway-off/page/server-reference-manifest.json +1 -1
  76. package/web/.next/server/app/(console)/gateway-off/page.js.nft.json +1 -1
  77. package/web/.next/server/app/(console)/gateway-off/page_client-reference-manifest.js +1 -1
  78. package/web/.next/server/app/(console)/meetings/[meetingId]/page/server-reference-manifest.json +3 -3
  79. package/web/.next/server/app/(console)/meetings/[meetingId]/page.js.nft.json +1 -1
  80. package/web/.next/server/app/(console)/meetings/[meetingId]/page_client-reference-manifest.js +1 -1
  81. package/web/.next/server/app/(console)/parties/page/server-reference-manifest.json +8 -8
  82. package/web/.next/server/app/(console)/parties/page.js.nft.json +1 -1
  83. package/web/.next/server/app/(console)/parties/page_client-reference-manifest.js +1 -1
  84. package/web/.next/server/app/(console)/sign-in/failed/page/server-reference-manifest.json +1 -1
  85. package/web/.next/server/app/(console)/sign-in/failed/page.js.nft.json +1 -1
  86. package/web/.next/server/app/(console)/sign-in/failed/page_client-reference-manifest.js +1 -1
  87. package/web/.next/server/app/(console)/slack/disconnect/page/server-reference-manifest.json +10 -10
  88. package/web/.next/server/app/(console)/slack/disconnect/page.js.nft.json +1 -1
  89. package/web/.next/server/app/(console)/slack/disconnect/page_client-reference-manifest.js +1 -1
  90. package/web/.next/server/app/(console)/slack/expose/page/server-reference-manifest.json +10 -10
  91. package/web/.next/server/app/(console)/slack/expose/page.js.nft.json +1 -1
  92. package/web/.next/server/app/(console)/slack/expose/page_client-reference-manifest.js +1 -1
  93. package/web/.next/server/app/(console)/slack/page/server-reference-manifest.json +10 -10
  94. package/web/.next/server/app/(console)/slack/page.js.nft.json +1 -1
  95. package/web/.next/server/app/(console)/slack/page_client-reference-manifest.js +1 -1
  96. package/web/.next/server/app/(console)/slack/remove/page/server-reference-manifest.json +10 -10
  97. package/web/.next/server/app/(console)/slack/remove/page.js.nft.json +1 -1
  98. package/web/.next/server/app/(console)/slack/remove/page_client-reference-manifest.js +1 -1
  99. package/web/.next/server/app/_global-error.html +1 -1
  100. package/web/.next/server/app/_global-error.rsc +1 -1
  101. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  102. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  103. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  104. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  105. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  106. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  107. package/web/.next/server/app/authorize/failed/page/server-reference-manifest.json +1 -1
  108. package/web/.next/server/app/authorize/failed/page.js.nft.json +1 -1
  109. package/web/.next/server/app/authorize/failed/page_client-reference-manifest.js +1 -1
  110. package/web/.next/server/app/authorize/pick/page/server-reference-manifest.json +1 -1
  111. package/web/.next/server/app/authorize/pick/page.js.nft.json +1 -1
  112. package/web/.next/server/app/authorize/pick/page_client-reference-manifest.js +1 -1
  113. package/web/.next/server/app/authorize/waiting/approval/page/server-reference-manifest.json +1 -1
  114. package/web/.next/server/app/authorize/waiting/approval/page.js.nft.json +1 -1
  115. package/web/.next/server/app/authorize/waiting/approval/page_client-reference-manifest.js +1 -1
  116. package/web/.next/server/chunks/ssr/01fr_app_(bridge)_bridge_settings_requests_[requestId]_page_actions_0o8g7_xshtmem.js +1 -1
  117. package/web/.next/server/chunks/ssr/01fr_app_(bridge)_bridge_settings_requests_[requestId]_page_actions_0o8g7_xshtmem.js.map +1 -1
  118. package/web/.next/server/chunks/ssr/0b9d__next-internal_server_app_(bridge)_bridge_settings_page_actions_0_te6h-2xxp7l.js +1 -1
  119. package/web/.next/server/chunks/ssr/0b9d__next-internal_server_app_(bridge)_bridge_settings_page_actions_0_te6h-2xxp7l.js.map +1 -1
  120. package/web/.next/server/chunks/ssr/0b9d__next-internal_server_app_(bridge)_bridge_stay-aware_page_actions_1u0xo0v3y9c34.js +1 -1
  121. package/web/.next/server/chunks/ssr/0b9d__next-internal_server_app_(bridge)_bridge_stay-aware_page_actions_1u0xo0v3y9c34.js.map +1 -1
  122. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_bridge_settings_routing_page_actions_06_j7s24dy5ee.js +1 -1
  123. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_bridge_settings_routing_page_actions_06_j7s24dy5ee.js.map +1 -1
  124. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_[name]_change_page_actions_1is-kjq5bubl4.js +1 -1
  125. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_[name]_change_page_actions_1is-kjq5bubl4.js.map +1 -1
  126. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_[name]_page_actions_1mctxtlzsa7xi.js +1 -1
  127. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_[name]_page_actions_1mctxtlzsa7xi.js.map +1 -1
  128. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_[name]_retire_page_actions_0xh6ok1un7s9k.js +1 -1
  129. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_[name]_retire_page_actions_0xh6ok1un7s9k.js.map +1 -1
  130. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_add-a2a-agent_page_actions_1w1q5eavo_loo.js +1 -1
  131. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_add-a2a-agent_page_actions_1w1q5eavo_loo.js.map +1 -1
  132. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_add_page_actions_0urcbg_r0lo7j.js +1 -1
  133. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_outside-parties_add_page_actions_0urcbg_r0lo7j.js.map +1 -1
  134. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ipo8r1s1ntds._.js +1 -1
  135. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ovcg5tg3nh49._.js +1 -1
  136. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ovcg5tg3nh49._.js.map +1 -1
  137. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ro-majrw7piv._.js +1 -1
  138. package/web/.next/server/chunks/ssr/[root-of-the-server]__0ro-majrw7piv._.js.map +1 -1
  139. package/web/.next/server/chunks/ssr/[root-of-the-server]__0xurmpdv5uqfl._.js +1 -1
  140. package/web/.next/server/chunks/ssr/[root-of-the-server]__0zz6fx0keti4r._.js +1 -1
  141. package/web/.next/server/chunks/ssr/[root-of-the-server]__0zz6fx0keti4r._.js.map +1 -1
  142. package/web/.next/server/chunks/ssr/[root-of-the-server]__18-8taiduk1jn._.js +1 -1
  143. package/web/.next/server/chunks/ssr/[root-of-the-server]__18-8taiduk1jn._.js.map +1 -1
  144. package/web/.next/server/chunks/ssr/[root-of-the-server]__19p4g16n2nh0b._.js +1 -1
  145. package/web/.next/server/chunks/ssr/[root-of-the-server]__19p4g16n2nh0b._.js.map +1 -1
  146. package/web/.next/server/chunks/ssr/[root-of-the-server]__1ncn4wx-1i09m._.js +1 -1
  147. package/web/.next/server/chunks/ssr/[root-of-the-server]__1ncn4wx-1i09m._.js.map +1 -1
  148. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js +1 -1
  149. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js.map +1 -1
  150. package/web/.next/server/chunks/ssr/_0_nfv33ug5g31._.js +1 -1
  151. package/web/.next/server/chunks/ssr/_0_nfv33ug5g31._.js.map +1 -1
  152. package/web/.next/server/chunks/ssr/_0ka_9elusb800._.js +1 -1
  153. package/web/.next/server/chunks/ssr/_0ka_9elusb800._.js.map +1 -1
  154. package/web/.next/server/chunks/ssr/{_0d9el5z4r07h8._.js → _0phqji_8-1g8r._.js} +2 -2
  155. package/web/.next/server/chunks/ssr/{_0nmqkf1y-qsc2._.js.map → _0phqji_8-1g8r._.js.map} +1 -1
  156. package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js +1 -1
  157. package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js.map +1 -1
  158. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js +1 -1
  159. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js.map +1 -1
  160. package/web/.next/server/chunks/ssr/{_0nmqkf1y-qsc2._.js → _0yt_0nnqp7qsf._.js} +2 -2
  161. package/web/.next/server/chunks/ssr/{_0d9el5z4r07h8._.js.map → _0yt_0nnqp7qsf._.js.map} +1 -1
  162. package/web/.next/server/chunks/ssr/{_0msh_lv5ns4e9._.js → _12yl1q5vpvmnf._.js} +2 -2
  163. package/web/.next/server/chunks/ssr/{_1a-gh-psko_2f._.js.map → _12yl1q5vpvmnf._.js.map} +1 -1
  164. package/web/.next/server/chunks/ssr/{_1a-gh-psko_2f._.js → _15oq7v7za6xc0._.js} +2 -2
  165. package/web/.next/server/chunks/ssr/{_0msh_lv5ns4e9._.js.map → _15oq7v7za6xc0._.js.map} +1 -1
  166. package/web/.next/server/chunks/ssr/_19gyfcgdw7y22._.js +57 -0
  167. package/web/.next/server/chunks/ssr/_19gyfcgdw7y22._.js.map +1 -0
  168. package/web/.next/server/chunks/ssr/_1cs_0d0h7mhw0._.js +1 -1
  169. package/web/.next/server/chunks/ssr/_1cs_0d0h7mhw0._.js.map +1 -1
  170. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js +1 -1
  171. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js.map +1 -1
  172. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js +1 -1
  173. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js.map +1 -1
  174. package/web/.next/server/chunks/ssr/_1whn-m68y_cvc._.js +57 -0
  175. package/web/.next/server/chunks/ssr/_1whn-m68y_cvc._.js.map +1 -0
  176. package/web/.next/server/chunks/ssr/web_0a9n7acgjrk5c._.js +1 -1
  177. package/web/.next/server/chunks/ssr/web_0a9n7acgjrk5c._.js.map +1 -1
  178. package/web/.next/server/chunks/ssr/web_1vvrekkq5mirt._.js +1 -1
  179. package/web/.next/server/chunks/ssr/web_1vvrekkq5mirt._.js.map +1 -1
  180. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_basket_page_actions_0g7q_rc5nma1e.js +1 -1
  181. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_basket_page_actions_0g7q_rc5nma1e.js.map +1 -1
  182. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_done_page_actions_0kjm34arntdzv.js +1 -1
  183. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_done_page_actions_0kjm34arntdzv.js.map +1 -1
  184. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_fleet_page_actions_19wmo6phgvqfk.js +1 -1
  185. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_fleet_page_actions_19wmo6phgvqfk.js.map +1 -1
  186. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_page_actions_1ok64rg3edm_u.js +1 -1
  187. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_page_actions_1ok64rg3edm_u.js.map +1 -1
  188. package/web/.next/server/chunks/ssr/{web_features_11rwm0rhf5957._.js → web_features_05tyk8t8uz71m._.js} +2 -2
  189. package/web/.next/server/chunks/ssr/{web_features_11rwm0rhf5957._.js.map → web_features_05tyk8t8uz71m._.js.map} +1 -1
  190. package/web/.next/server/chunks/ssr/{web_features_0cgvngtsgzu24._.js → web_features_0hnjtl8jg_qhq._.js} +2 -2
  191. package/web/.next/server/chunks/ssr/{web_features_0cgvngtsgzu24._.js.map → web_features_0hnjtl8jg_qhq._.js.map} +1 -1
  192. package/web/.next/server/chunks/ssr/{web_features_1loqabdanp8wi._.js → web_features_1_648zpxn76jp._.js} +2 -2
  193. package/web/.next/server/chunks/ssr/{web_features_1loqabdanp8wi._.js.map → web_features_1_648zpxn76jp._.js.map} +1 -1
  194. package/web/.next/server/chunks/ssr/{web_features_1r2u065j-hgrq._.js → web_features_1uzz6jypukhkx._.js} +2 -2
  195. package/web/.next/server/chunks/ssr/{web_features_1r2u065j-hgrq._.js.map → web_features_1uzz6jypukhkx._.js.map} +1 -1
  196. package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js +1 -1
  197. package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js.map +1 -1
  198. package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js +1 -1
  199. package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js.map +1 -1
  200. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js +1 -1
  201. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js.map +1 -1
  202. package/web/.next/server/chunks/ssr/{web_features_bridge_17dx2edv4zsex._.js → web_features_bridge_0ldot9q_-xh4o._.js} +2 -2
  203. package/web/.next/server/chunks/ssr/{web_features_bridge_17dx2edv4zsex._.js.map → web_features_bridge_0ldot9q_-xh4o._.js.map} +1 -1
  204. package/web/.next/server/chunks/ssr/web_features_bridge_hooks_bridge-actions_ts_0h-_xm2rcb-ij._.js +1 -1
  205. package/web/.next/server/chunks/ssr/web_features_bridge_state_basket-panel_tsx_1qi_kzld0rfgs._.js +1 -1
  206. package/web/.next/server/chunks/ssr/web_features_bridge_state_basket-panel_tsx_1qi_kzld0rfgs._.js.map +1 -1
  207. package/web/.next/server/chunks/ssr/web_features_bridge_state_decision-panel_tsx_1mzsixgc8zuxc._.js +1 -1
  208. package/web/.next/server/chunks/ssr/web_features_bridge_state_decision-panel_tsx_1mzsixgc8zuxc._.js.map +1 -1
  209. package/web/.next/server/chunks/ssr/web_features_bridge_state_done-panel_tsx_1m844-qb1z9p_._.js +1 -1
  210. package/web/.next/server/chunks/ssr/web_features_bridge_state_done-panel_tsx_1m844-qb1z9p_._.js.map +1 -1
  211. package/web/.next/server/chunks/ssr/web_features_meeting_state_meeting-controls_tsx_12g4kzk2mbvvz._.js +1 -1
  212. package/web/.next/server/chunks/ssr/web_features_meeting_state_meeting-controls_tsx_12g4kzk2mbvvz._.js.map +1 -1
  213. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js +1 -1
  214. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js.map +1 -1
  215. package/web/.next/server/chunks/ssr/web_features_outside-party_1-lre9nfakki7._.js +1 -1
  216. package/web/.next/server/chunks/ssr/web_features_outside-party_1-lre9nfakki7._.js.map +1 -1
  217. package/web/.next/server/chunks/ssr/web_features_outside-party_actions_ts_102ar5pdowf8s._.js +1 -1
  218. package/web/.next/server/chunks/ssr/web_features_parties_actions_ts_0r-tbfsig2ty-._.js +1 -1
  219. package/web/.next/server/chunks/ssr/web_features_slack_actions_ts_1l3yg9vl20_vu._.js +1 -1
  220. package/web/.next/server/middleware-build-manifest.js +3 -3
  221. package/web/.next/server/pages/500.html +1 -1
  222. package/web/.next/server/preview-props.json +3 -3
  223. package/web/.next/server/server-reference-manifest.js +1 -1
  224. package/web/.next/server/server-reference-manifest.json +49 -49
  225. package/web/.next/static/chunks/{3nqasvqr8d81s.js → 037n80h9g7uj9.js} +1 -1
  226. package/web/.next/static/chunks/{0klu03tcnjzsm.js → 07m-_glbqp-37.js} +1 -1
  227. package/web/.next/static/chunks/0aa4uzjjhyqka.js +1 -0
  228. package/web/.next/static/chunks/{3bvcgvk4m3hxh.js → 10irrhgnj6fen.js} +1 -1
  229. package/web/.next/static/chunks/{12kwix3z2z-fs.js → 13wwvyhf3sngt.js} +1 -1
  230. package/web/.next/static/chunks/15n0w5axo2pz9.js +1 -0
  231. package/web/.next/static/chunks/{1oipnf2j_m8oy.js → 1zz_y28tujbue.js} +1 -1
  232. package/web/.next/static/chunks/{2ztqsnh1sq5f9.js → 2bdw63_s9xtu_.js} +1 -1
  233. package/web/.next/static/chunks/{0d0fsf26a1ep_.js → 2v9rmbrsi3gic.js} +1 -1
  234. package/web/.next/static/chunks/{1az8wx3bt0tc-.js → 3-1jjh1cn7c8-.js} +1 -1
  235. package/web/.next/static/chunks/{3c2whoiify4hd.js → 37he-4csbzq66.js} +1 -1
  236. package/web/.next/static/chunks/{3q_d1vlm22cy0.js → 3ce0mcxr613x9.js} +1 -1
  237. package/web/.next/static/chunks/3q96u74uhyutq.js +1 -0
  238. package/web/.next/static/chunks/{3po7blcdi5_y6.js → 3qdxrlqdxsqgz.js} +1 -1
  239. package/web/.next/static/chunks/{0jqdvhip5x6im.js → 3tjpz6bq80t74.js} +1 -1
  240. package/web/.next/trace +1 -1
  241. package/web/.next/trace-build +1 -1
  242. package/web/.next/server/chunks/ssr/_1e720g1qty0xj._.js +0 -57
  243. package/web/.next/server/chunks/ssr/_1e720g1qty0xj._.js.map +0 -1
  244. package/web/.next/server/chunks/ssr/_1xjxj1ur-j87t._.js +0 -57
  245. package/web/.next/server/chunks/ssr/_1xjxj1ur-j87t._.js.map +0 -1
  246. package/web/.next/static/chunks/04r-53h_fb5rq.js +0 -1
  247. package/web/.next/static/chunks/2fjzmc7-5sf_m.js +0 -1
  248. package/web/.next/static/chunks/38w8690okopia.js +0 -1
  249. /package/web/.next/static/{waEyx88w-M7TBm3nu35s- → LxcgnSJuKSN0rA6kJgwr6}/_buildManifest.js +0 -0
  250. /package/web/.next/static/{waEyx88w-M7TBm3nu35s- → LxcgnSJuKSN0rA6kJgwr6}/_clientMiddlewareManifest.js +0 -0
  251. /package/web/.next/static/{waEyx88w-M7TBm3nu35s- → LxcgnSJuKSN0rA6kJgwr6}/_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,"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))}}])}]})();
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,"60f1f67a5a9c4a66d82b64de9a2fcda18002be29f3",null);var i=a.i(43889);a.s(["402178a50b87ba4c595a0dc3c15ba2600a42686bb3",()=>i.e,"4077ea8b7cbe4e193d103d2b8488e0db3bff1e57be",()=>b.f,"40c9b55161e222dbf6898829a3635ae686adcb3490",()=>i.u,"60f1f67a5a9c4a66d82b64de9a2fcda18002be29f3",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 '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":"6CAAA,IAAA,EAAA,EAAA,CAAA,CAAA,oBCOA,EAAA,EAAA,CAAA,CAAA,OAEA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,OAKO,eAAeA,EAAaC,CAA4B,CAAEC,CAAc,EAC7E,IAAMC,EAAc,CAAA,EAAA,EAAA,CAAA,AAAQ,EAAC,QAAQC,SAAS,CAAC,CAAA,EAAA,EAAA,CAAA,AAAO,EAACF,EAAM,gBAC7D,GAAI,CAACC,EAAYE,OAAO,CACtB,CADwB,KACjB,CAAEC,KAAM,UAAWC,QAAS,gBAAiB,EAEtD,IAAMC,EAAM,MAAM,CAAA,EAAA,EAAA,CAAA,AAAU,EAAC,CAAA,EAAA,EAAA,CAAO,AAAP,EAAQN,EAAM,EAAA,CAAW,GACtD,GAAI,CACF,IAAMO,EAAQ,MAAMD,EAAIE,OAAO,CAACV,YAAY,CAACW,MAAM,CAAC,CAAEC,UAAW,CAAA,EAAA,EAAA,CAAA,AAAO,EAACV,EAAM,aAAcW,KAAM,CAAA,EAAA,EAAA,CAAA,AAAO,EAACX,EAAM,QAASC,YAAaA,EAAYW,IAAI,CAAEC,OAAQ,CAAA,EAAA,EAAA,CAAA,AAAY,EAAC,CAAA,EAAA,EAAA,CAAA,AAAQ,EAACb,GAAO,GAC9L,MAAO,CAAEI,KAAM,QAASO,KAAMJ,EAAMO,KAAK,CAACH,IAAI,CAAEI,OAAQR,EAAMQ,MAAM,AAAC,CACvE,CAAE,MAAOC,EAAO,CACd,MAAO,CAAEZ,KAAM,UAAWC,QAAS,CAAA,EAAA,EAAA,CAAgB,AAAhB,EAAiBW,EAAO,CAC7D,CACF,0CAZsBlB,IAAAA,CAAAA,EAAAA,EAAAA,uBAAAA,EAAAA,EAAAA,6CAAAA,MDdtB,IAAA,EAAA,EAAA,CAAA,CAAA,+OEFA,IAAA,EAAA,EAAA,CAAA,CAAA,kBAGO,SAAsBoB,AAAbD,CAAqD,EACnE,OAAOE,OAAOC,IAAI,CAACF,GAAQG,OAAO,CAAC,AAACC,GAAWA,EAAMC,UAAU,CAAC,EAAA,CAAkB,EAAI,CAACD,EAAME,KAAK,CAAC,EAAA,CAAkB,CAACC,MAAM,EAAE,CAAG,EAAE,CACrI,yBCoB2B,cAXpB,SAASE,AAAQ3B,CAAc,CAAEW,CAAY,EAClD,IAAMiB,EAAQ5B,EAAK6B,GAAG,CAAClB,GACvB,MAAwB,UAAjB,OAAOiB,EAAqBA,EAAQ,EAC7C,QAGO,SAAkB5B,AAAT8B,CAAuB,EACrC,OAAOX,OAAOY,WAAW,CAAC,IAAI/B,EAAKgC,OAAO,GAAG,CAACX,OAAO,CAAC,CAAC,CAACV,EAAMiB,EAAM,GAAM,AAAiB,iBAAVA,EAAqB,CAAC,CAACjB,EAAMiB,EAAM,CAAC,CAAG,EAAE,EAC5H,eChBA,IAAA,EAAA,EAAA,CAAA,CAAA,OAGO,IAAMM,EAA2C,CAAC,gBAAiB,mBAAmB,CAGhFC,EAAqB,SAGrBC,EAAqB,iDAI3B,SAASC,AAAUvB,CAAuE,CAAEwB,CAA2E,EAC5K,IAEIrC,EAFE,MAAED,CAAI,QAAEa,CAAM,CAAE,CAAGyB,EACnBC,EAAYvC,EAAKC,WAAW,EAAEuC,OAEpC,GAAkBC,SAAdF,GAA2BA,IAAczB,EAAMb,WAAW,CAAE,CAC9D,IAAMyC,EAAS,CAAA,EAAA,EAAA,CAAA,AAAQ,EAAC,QAAQxC,SAAS,CAACqC,GAC1C,GAAI,CAACG,EAAOvC,OAAO,CACjB,CADmB,KACZ,CAAEC,KAAM,UAAWC,QAAS,gDAAiD,EAEtFJ,EAAcyC,EAAO9B,IAAI,AAC3B,CACA,IAAM+B,OAAwBF,IAAhBxC,EAA4B,CAAC,EAAI,aAAEA,CAAY,EACvD2C,EAAO9B,EAAMD,MAAM,CACzB,GAAiC,SAA7Bb,CAAI,CAACoC,EAAmB,EAAwB,MAAM,CAAfQ,EACzC,MAAO,CAAExC,KAAM,UAAW,GAAGuC,CAAK,CAAEE,MAAO,EAAE,CAAEC,OAAQ,EAAG,AAAD,EAE3D,IAAMC,EAAMlC,EAAOmC,MAAM,CAAC,AAACC,GAAU,CAACf,EAAsBgB,QAAQ,CAACD,IAC/DE,EAAW,AAACF,QAA4DR,IAA1CzC,CAAI,CAAC,CAAA,EAAGmC,EAAAA,EAAqBc,EAAAA,CAAO,CAAC,CACzE,MAAO,CACL7C,KAAM,UACN,GAAGuC,CAAK,CACRE,MAAOE,EAAIC,MAAM,CAAEC,AAAD,GAAWE,EAASF,IAAU,CAACL,EAAKM,QAAQ,CAACD,IAC/DH,OAAQC,EAAIC,MAAM,CAAC,AAACC,GAAU,CAACE,EAASF,IAAUL,EAAKM,QAAQ,CAACD,GAClE,CACF"}
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 '4077ea8b7cbe4e193d103d2b8488e0db3bff1e57be'} from 'ACTIONS_MODULE0'\nexport {addA2aClient as '60f1f67a5a9c4a66d82b64de9a2fcda18002be29f3'} from 'ACTIONS_MODULE1'\nexport {readSendTo as '402178a50b87ba4c595a0dc3c15ba2600a42686bb3'} from 'ACTIONS_MODULE2'\nexport {sendShipMessage as '40c9b55161e222dbf6898829a3635ae686adcb3490'} 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":"6CAAA,IAAA,EAAA,EAAA,CAAA,CAAA,oBCOA,EAAA,EAAA,CAAA,CAAA,OAEA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,MACA,EAAA,EAAA,CAAA,CAAA,OAKO,eAAeA,EAAaC,CAA4B,CAAEC,CAAc,EAC7E,IAAMC,EAAc,CAAA,EAAA,EAAA,CAAA,AAAQ,EAAC,QAAQC,SAAS,CAAC,CAAA,EAAA,EAAA,CAAA,AAAO,EAACF,EAAM,gBAC7D,GAAI,CAACC,EAAYE,OAAO,CACtB,CADwB,KACjB,CAAEC,KAAM,UAAWC,QAAS,gBAAiB,EAEtD,IAAMC,EAAM,MAAM,CAAA,EAAA,EAAA,CAAA,AAAU,EAAC,CAAA,EAAA,EAAA,CAAO,AAAP,EAAQN,EAAM,EAAA,CAAW,GACtD,GAAI,CACF,IAAMO,EAAQ,MAAMD,EAAIE,OAAO,CAACV,YAAY,CAACW,MAAM,CAAC,CAAEC,UAAW,CAAA,EAAA,EAAA,CAAA,AAAO,EAACV,EAAM,aAAcW,KAAM,CAAA,EAAA,EAAA,CAAA,AAAO,EAACX,EAAM,QAASC,YAAaA,EAAYW,IAAI,CAAEC,OAAQ,CAAA,EAAA,EAAA,CAAA,AAAY,EAAC,CAAA,EAAA,EAAA,CAAA,AAAQ,EAACb,GAAO,GAC9L,MAAO,CAAEI,KAAM,QAASO,KAAMJ,EAAMO,KAAK,CAACH,IAAI,CAAEI,OAAQR,EAAMQ,MAAM,AAAC,CACvE,CAAE,MAAOC,EAAO,CACd,MAAO,CAAEZ,KAAM,UAAWC,QAAS,CAAA,EAAA,EAAA,CAAgB,AAAhB,EAAiBW,EAAO,CAC7D,CACF,0CAZsBlB,IAAAA,CAAAA,EAAAA,EAAAA,uBAAAA,EAAAA,EAAAA,6CAAAA,MDdtB,IAAA,EAAA,EAAA,CAAA,CAAA,+OEFA,IAAA,EAAA,EAAA,CAAA,CAAA,kBAGO,SAAsBoB,AAAbD,CAAqD,EACnE,OAAOE,OAAOC,IAAI,CAACF,GAAQG,OAAO,CAAC,AAACC,GAAWA,EAAMC,UAAU,CAAC,EAAA,CAAkB,EAAI,CAACD,EAAME,KAAK,CAAC,EAAA,CAAkB,CAACC,MAAM,EAAE,CAAG,EAAE,CACrI,yBCoB2B,cAXpB,SAASE,AAAQ3B,CAAc,CAAEW,CAAY,EAClD,IAAMiB,EAAQ5B,EAAK6B,GAAG,CAAClB,GACvB,MAAwB,UAAjB,OAAOiB,EAAqBA,EAAQ,EAC7C,QAGO,SAAkB5B,AAAT8B,CAAuB,EACrC,OAAOX,OAAOY,WAAW,CAAC,IAAI/B,EAAKgC,OAAO,GAAG,CAACX,OAAO,CAAC,CAAC,CAACV,EAAMiB,EAAM,GAAM,AAAiB,iBAAVA,EAAqB,CAAC,CAACjB,EAAMiB,EAAM,CAAC,CAAG,EAAE,EAC5H,eChBA,IAAA,EAAA,EAAA,CAAA,CAAA,OAGO,IAAMM,EAA2C,CAAC,gBAAiB,mBAAmB,CAGhFC,EAAqB,SAGrBC,EAAqB,iDAI3B,SAASC,AAAUvB,CAAuE,CAAEwB,CAA2E,EAC5K,IAEIrC,EAFE,MAAED,CAAI,QAAEa,CAAM,CAAE,CAAGyB,EACnBC,EAAYvC,EAAKC,WAAW,EAAEuC,OAEpC,GAAkBC,SAAdF,GAA2BA,IAAczB,EAAMb,WAAW,CAAE,CAC9D,IAAMyC,EAAS,CAAA,EAAA,EAAA,CAAA,AAAQ,EAAC,QAAQxC,SAAS,CAACqC,GAC1C,GAAI,CAACG,EAAOvC,OAAO,CACjB,CADmB,KACZ,CAAEC,KAAM,UAAWC,QAAS,gDAAiD,EAEtFJ,EAAcyC,EAAO9B,IAAI,AAC3B,CACA,IAAM+B,OAAwBF,IAAhBxC,EAA4B,CAAC,EAAI,aAAEA,CAAY,EACvD2C,EAAO9B,EAAMD,MAAM,CACzB,GAAiC,SAA7Bb,CAAI,CAACoC,EAAmB,EAAwB,MAAM,CAAfQ,EACzC,MAAO,CAAExC,KAAM,UAAW,GAAGuC,CAAK,CAAEE,MAAO,EAAE,CAAEC,OAAQ,EAAG,AAAD,EAE3D,IAAMC,EAAMlC,EAAOmC,MAAM,CAAC,AAACC,GAAU,CAACf,EAAsBgB,QAAQ,CAACD,IAC/DE,EAAW,AAACF,QAA4DR,IAA1CzC,CAAI,CAAC,CAAA,EAAGmC,EAAAA,EAAqBc,EAAAA,CAAO,CAAC,CACzE,MAAO,CACL7C,KAAM,UACN,GAAGuC,CAAK,CACRE,MAAOE,EAAIC,MAAM,CAAEC,AAAD,GAAWE,EAASF,IAAU,CAACL,EAAKM,QAAQ,CAACD,IAC/DH,OAAQC,EAAIC,MAAM,CAAC,AAACC,GAAU,CAACE,EAASF,IAAUL,EAAKM,QAAQ,CAACD,GAClE,CACF"}
@@ -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,"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}`}`}])}]})();
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,"6026e3b3dbb068da98f61988cab6a37183349cfed7",null);var i=a.i(43889);a.s(["402178a50b87ba4c595a0dc3c15ba2600a42686bb3",()=>i.e,"4077ea8b7cbe4e193d103d2b8488e0db3bff1e57be",()=>b.f,"40c9b55161e222dbf6898829a3635ae686adcb3490",()=>i.u,"6026e3b3dbb068da98f61988cab6a37183349cfed7",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 '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
+ {"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 '4077ea8b7cbe4e193d103d2b8488e0db3bff1e57be'} from 'ACTIONS_MODULE0'\nexport {switchOutsideParties as '6026e3b3dbb068da98f61988cab6a37183349cfed7'} from 'ACTIONS_MODULE1'\nexport {readSendTo as '402178a50b87ba4c595a0dc3c15ba2600a42686bb3'} from 'ACTIONS_MODULE2'\nexport {sendShipMessage as '40c9b55161e222dbf6898829a3635ae686adcb3490'} 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,"40f534a69ce118b9a051eed56b02d6f3ce60cc9009,f",0,c,"4016b132ef866b9d27d7894582f05d8e1c2bb7fa64,G,4037a88f28c885946acaffd1cdfafe0cbe8f0da59d,e,4046bfd2ba403a6ee3e6b63e6a1173263664f48c30,u,4059c1a1cc11277e11c263c228f98e4ef7fcca8cc2,K,4068b06b8eff75e3700a4c5c8fbb83ac83a0c6d854,y,40a5abaacfa2044f020ac5264a4e3d8b3018d86036,q,40b57cfcc56ae2b8aee12201c69fbc898d6d8d98dd,W,6024c7dcfcbd6f0a3f3b2aa2cbc7a042e558d6ecdd,D,609e39a46252ea14c60d18ab89290bc08365819fd7,v"],70336)}];
1
+ module.exports=[70336,a=>{"use strict";var b=a.i(70043),c=a.i(43889);a.S([b,"4077ea8b7cbe4e193d103d2b8488e0db3bff1e57be,f",0,c,"400b37ebb0a90a0f73cb1978ec8c9e4c4a171c9ecc,G,402178a50b87ba4c595a0dc3c15ba2600a42686bb3,e,406b7f07eedaeed4fd555b667f17f87127627eaee6,q,40782571a3d14714151f0e9ee3d153d9c227e67e85,K,40c9b55161e222dbf6898829a3635ae686adcb3490,u,40e0e357a857fdaa7a9ce19fdf8f13562b3a39d45c,W,40f5769695179d460f57ef659223c7bbc4c7cf4e5d,y,601f20d58885510639cdb9c1e160334e405f3688cf,D,60298acc1cc947c4fd5df829eef7f60ac01f66426f,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 '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
+ {"version":3,"sources":["../../../../../web/.next-internal/server/app/%28bridge%29/bridge/basket/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {setTheme as '4077ea8b7cbe4e193d103d2b8488e0db3bff1e57be'} from 'ACTIONS_MODULE0'\nexport {readSendTo as '402178a50b87ba4c595a0dc3c15ba2600a42686bb3'} from 'ACTIONS_MODULE1'\nexport {sendShipMessage as '40c9b55161e222dbf6898829a3635ae686adcb3490'} from 'ACTIONS_MODULE1'\nexport {removeFromBasket as '601f20d58885510639cdb9c1e160334e405f3688cf'} from 'ACTIONS_MODULE1'\nexport {sendBasket as '40782571a3d14714151f0e9ee3d153d9c227e67e85'} from 'ACTIONS_MODULE1'\nexport {answerDelivery as '406b7f07eedaeed4fd555b667f17f87127627eaee6'} from 'ACTIONS_MODULE1'\nexport {doneDelivery as '400b37ebb0a90a0f73cb1978ec8c9e4c4a171c9ecc'} from 'ACTIONS_MODULE1'\nexport {openDelivery as '60298acc1cc947c4fd5df829eef7f60ac01f66426f'} from 'ACTIONS_MODULE1'\nexport {putInBasket as '40f5769695179d460f57ef659223c7bbc4c7cf4e5d'} from 'ACTIONS_MODULE1'\nexport {putPickInBasket as '40e0e357a857fdaa7a9ce19fdf8f13562b3a39d45c'} 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,"40f534a69ce118b9a051eed56b02d6f3ce60cc9009,f",0,c,"4037a88f28c885946acaffd1cdfafe0cbe8f0da59d,e,4046bfd2ba403a6ee3e6b63e6a1173263664f48c30,u,60ce27d809d94e7753d994a2637442403a3a82dac6,F"],90923)}];
1
+ module.exports=[90923,a=>{"use strict";var b=a.i(70043),c=a.i(43889);a.S([b,"4077ea8b7cbe4e193d103d2b8488e0db3bff1e57be,f",0,c,"402178a50b87ba4c595a0dc3c15ba2600a42686bb3,e,40c9b55161e222dbf6898829a3635ae686adcb3490,u,609cde3947135dddb7e6749dfa6a43edc2eff6a9aa,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 '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
+ {"version":3,"sources":["../../../../../web/.next-internal/server/app/%28bridge%29/bridge/done/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {setTheme as '4077ea8b7cbe4e193d103d2b8488e0db3bff1e57be'} from 'ACTIONS_MODULE0'\nexport {readSendTo as '402178a50b87ba4c595a0dc3c15ba2600a42686bb3'} from 'ACTIONS_MODULE1'\nexport {sendShipMessage as '40c9b55161e222dbf6898829a3635ae686adcb3490'} from 'ACTIONS_MODULE1'\nexport {readMoreRecord as '609cde3947135dddb7e6749dfa6a43edc2eff6a9aa'} 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,"40f534a69ce118b9a051eed56b02d6f3ce60cc9009,f",0,c,"4037a88f28c885946acaffd1cdfafe0cbe8f0da59d,e,4046bfd2ba403a6ee3e6b63e6a1173263664f48c30,u"],28592)}];
1
+ module.exports=[28592,a=>{"use strict";var b=a.i(70043),c=a.i(43889);a.S([b,"4077ea8b7cbe4e193d103d2b8488e0db3bff1e57be,f",0,c,"402178a50b87ba4c595a0dc3c15ba2600a42686bb3,e,40c9b55161e222dbf6898829a3635ae686adcb3490,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 '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
+ {"version":3,"sources":["../../../../../web/.next-internal/server/app/%28bridge%29/bridge/fleet/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {setTheme as '4077ea8b7cbe4e193d103d2b8488e0db3bff1e57be'} from 'ACTIONS_MODULE0'\nexport {readSendTo as '402178a50b87ba4c595a0dc3c15ba2600a42686bb3'} from 'ACTIONS_MODULE1'\nexport {sendShipMessage as '40c9b55161e222dbf6898829a3635ae686adcb3490'} 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,"40f534a69ce118b9a051eed56b02d6f3ce60cc9009,f",0,c,"4016b132ef866b9d27d7894582f05d8e1c2bb7fa64,G,4037a88f28c885946acaffd1cdfafe0cbe8f0da59d,e,4046bfd2ba403a6ee3e6b63e6a1173263664f48c30,u,4068b06b8eff75e3700a4c5c8fbb83ac83a0c6d854,y,40a5abaacfa2044f020ac5264a4e3d8b3018d86036,q,40b57cfcc56ae2b8aee12201c69fbc898d6d8d98dd,W,6024c7dcfcbd6f0a3f3b2aa2cbc7a042e558d6ecdd,D,609e39a46252ea14c60d18ab89290bc08365819fd7,v"],97856)}];
1
+ module.exports=[97856,a=>{"use strict";var b=a.i(70043),c=a.i(43889);a.S([b,"4077ea8b7cbe4e193d103d2b8488e0db3bff1e57be,f",0,c,"400b37ebb0a90a0f73cb1978ec8c9e4c4a171c9ecc,G,402178a50b87ba4c595a0dc3c15ba2600a42686bb3,e,406b7f07eedaeed4fd555b667f17f87127627eaee6,q,40c9b55161e222dbf6898829a3635ae686adcb3490,u,40e0e357a857fdaa7a9ce19fdf8f13562b3a39d45c,W,40f5769695179d460f57ef659223c7bbc4c7cf4e5d,y,601f20d58885510639cdb9c1e160334e405f3688cf,D,60298acc1cc947c4fd5df829eef7f60ac01f66426f,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 '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"}
1
+ {"version":3,"sources":["../../../../../web/.next-internal/server/app/%28bridge%29/bridge/page/actions.js%20%28server%20actions%20loader%29"],"sourcesContent":["export {setTheme as '4077ea8b7cbe4e193d103d2b8488e0db3bff1e57be'} from 'ACTIONS_MODULE0'\nexport {readSendTo as '402178a50b87ba4c595a0dc3c15ba2600a42686bb3'} from 'ACTIONS_MODULE1'\nexport {sendShipMessage as '40c9b55161e222dbf6898829a3635ae686adcb3490'} from 'ACTIONS_MODULE1'\nexport {answerDelivery as '406b7f07eedaeed4fd555b667f17f87127627eaee6'} from 'ACTIONS_MODULE1'\nexport {doneDelivery as '400b37ebb0a90a0f73cb1978ec8c9e4c4a171c9ecc'} from 'ACTIONS_MODULE1'\nexport {openDelivery as '60298acc1cc947c4fd5df829eef7f60ac01f66426f'} from 'ACTIONS_MODULE1'\nexport {putInBasket as '40f5769695179d460f57ef659223c7bbc4c7cf4e5d'} from 'ACTIONS_MODULE1'\nexport {putPickInBasket as '40e0e357a857fdaa7a9ce19fdf8f13562b3a39d45c'} from 'ACTIONS_MODULE1'\nexport {removeFromBasket as '601f20d58885510639cdb9c1e160334e405f3688cf'} from 'ACTIONS_MODULE1'\n"],"names":[],"mappings":"uCAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA"}
@@ -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":""}`})})}])},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)}]})();
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":""}`})})}])},48143,a=>{var b=a.i(5050);let c=(0,b.createServerReference)("60a17908e3b22eb1b4a494def6f12126d6cf55c66d",b.callServer,void 0,b.findSourceMapURL,"signInToParty");a.s(["f",0,c])},96532,55322,66296,45937,881,92389,a=>{var b=a.i(5050);let c=(0,b.createServerReference)("401284c106092aed666ad781af234d01577ff2b95e",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],96532),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(96532),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(96532),aV=a.i(5050);let aW=(0,aV.createServerReference)("40c18db91023b8f8bfeedd193b1b60a0bdaa9f8dbe",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)("40453b580ccdd09578e88f323f0a6362beb9d7d45d",e.callServer,void 0,e.findSourceMapURL,"readMoreSignIns"),g=(0,e.createServerReference)("40094ca59cc39534e76a0c0ec939f97c2759b691cd",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)("604dd8193dbf8404c214de2b04259fef11650543b4",g.callServer,void 0,g.findSourceMapURL,"removeOwnSignIn");var i=a.i(48143);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)("604043d009b1b0f58f8fe209d3f0ea9e38582341c8",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_11rwm0rhf5957._.js.map
3
+ //# sourceMappingURL=web_features_05tyk8t8uz71m._.js.map