@aeolus-fleet/console 0.28.2 → 0.29.0

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 (662) hide show
  1. package/.next/standalone/packages/console/.next/BUILD_ID +1 -1
  2. package/.next/standalone/packages/console/.next/app-path-routes-manifest.json +12 -0
  3. package/.next/standalone/packages/console/.next/build-manifest.json +3 -3
  4. package/.next/standalone/packages/console/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/packages/console/.next/routes-manifest.json +72 -0
  6. package/.next/standalone/packages/console/.next/server/app/(console)/fleet-health/[cause]/page/server-reference-manifest.json +14 -14
  7. package/.next/standalone/packages/console/.next/server/app/(console)/fleet-health/[cause]/page.js +7 -6
  8. package/.next/standalone/packages/console/.next/server/app/(console)/fleet-health/[cause]/page.js.nft.json +1 -1
  9. package/.next/standalone/packages/console/.next/server/app/(console)/fleet-health/[cause]/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/packages/console/.next/server/app/(console)/fleet-health/page/server-reference-manifest.json +14 -14
  11. package/.next/standalone/packages/console/.next/server/app/(console)/fleet-health/page.js +7 -6
  12. package/.next/standalone/packages/console/.next/server/app/(console)/fleet-health/page.js.nft.json +1 -1
  13. package/.next/standalone/packages/console/.next/server/app/(console)/fleet-health/page_client-reference-manifest.js +1 -1
  14. package/.next/standalone/packages/console/.next/server/app/(console)/inbox/page/server-reference-manifest.json +14 -14
  15. package/.next/standalone/packages/console/.next/server/app/(console)/inbox/page.js +7 -6
  16. package/.next/standalone/packages/console/.next/server/app/(console)/inbox/page.js.nft.json +1 -1
  17. package/.next/standalone/packages/console/.next/server/app/(console)/inbox/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/packages/console/.next/server/app/(console)/labels/page/server-reference-manifest.json +14 -14
  19. package/.next/standalone/packages/console/.next/server/app/(console)/labels/page.js +7 -6
  20. package/.next/standalone/packages/console/.next/server/app/(console)/labels/page.js.nft.json +1 -1
  21. package/.next/standalone/packages/console/.next/server/app/(console)/labels/page_client-reference-manifest.js +1 -1
  22. package/.next/standalone/packages/console/.next/server/app/(console)/needs-attention/page/server-reference-manifest.json +14 -14
  23. package/.next/standalone/packages/console/.next/server/app/(console)/needs-attention/page.js +7 -6
  24. package/.next/standalone/packages/console/.next/server/app/(console)/needs-attention/page.js.nft.json +1 -1
  25. package/.next/standalone/packages/console/.next/server/app/(console)/needs-attention/page_client-reference-manifest.js +1 -1
  26. package/.next/standalone/packages/console/.next/server/app/(console)/needs-crew/page/server-reference-manifest.json +14 -14
  27. package/.next/standalone/packages/console/.next/server/app/(console)/needs-crew/page.js +7 -6
  28. package/.next/standalone/packages/console/.next/server/app/(console)/needs-crew/page.js.nft.json +1 -1
  29. package/.next/standalone/packages/console/.next/server/app/(console)/needs-crew/page_client-reference-manifest.js +1 -1
  30. package/.next/standalone/packages/console/.next/server/app/(console)/network/page/react-loadable-manifest.json +1 -1
  31. package/.next/standalone/packages/console/.next/server/app/(console)/network/page/server-reference-manifest.json +14 -14
  32. package/.next/standalone/packages/console/.next/server/app/(console)/network/page.js +7 -6
  33. package/.next/standalone/packages/console/.next/server/app/(console)/network/page.js.nft.json +1 -1
  34. package/.next/standalone/packages/console/.next/server/app/(console)/network/page_client-reference-manifest.js +1 -1
  35. package/.next/standalone/packages/console/.next/server/app/(console)/page/react-loadable-manifest.json +1 -1
  36. package/.next/standalone/packages/console/.next/server/app/(console)/page/server-reference-manifest.json +14 -14
  37. package/.next/standalone/packages/console/.next/server/app/(console)/page.js +7 -6
  38. package/.next/standalone/packages/console/.next/server/app/(console)/page.js.nft.json +1 -1
  39. package/.next/standalone/packages/console/.next/server/app/(console)/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/packages/console/.next/server/app/(console)/settings/page/server-reference-manifest.json +14 -14
  41. package/.next/standalone/packages/console/.next/server/app/(console)/settings/page.js +7 -6
  42. package/.next/standalone/packages/console/.next/server/app/(console)/settings/page.js.nft.json +1 -1
  43. package/.next/standalone/packages/console/.next/server/app/(console)/settings/page_client-reference-manifest.js +1 -1
  44. package/.next/standalone/packages/console/.next/server/app/(console)/ships/[shipId]/page/react-loadable-manifest.json +2 -2
  45. package/.next/standalone/packages/console/.next/server/app/(console)/ships/[shipId]/page/server-reference-manifest.json +14 -14
  46. package/.next/standalone/packages/console/.next/server/app/(console)/ships/[shipId]/page.js +7 -6
  47. package/.next/standalone/packages/console/.next/server/app/(console)/ships/[shipId]/page.js.nft.json +1 -1
  48. package/.next/standalone/packages/console/.next/server/app/(console)/ships/[shipId]/page_client-reference-manifest.js +1 -1
  49. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/[squadronId]/page/server-reference-manifest.json +14 -14
  50. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/[squadronId]/page.js +7 -6
  51. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/[squadronId]/page.js.nft.json +1 -1
  52. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/[squadronId]/page_client-reference-manifest.js +1 -1
  53. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/blueprints/[name]/page/react-loadable-manifest.json +2 -2
  54. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/blueprints/[name]/page/server-reference-manifest.json +14 -14
  55. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/blueprints/[name]/page.js +7 -6
  56. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/blueprints/[name]/page.js.nft.json +1 -1
  57. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/blueprints/[name]/page_client-reference-manifest.js +1 -1
  58. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/page/react-loadable-manifest.json +1 -1
  59. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/page/server-reference-manifest.json +14 -14
  60. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/page.js +7 -6
  61. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/page.js.nft.json +1 -1
  62. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/page_client-reference-manifest.js +1 -1
  63. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/templates/[name]/page/server-reference-manifest.json +14 -14
  64. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/templates/[name]/page.js +7 -6
  65. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/templates/[name]/page.js.nft.json +1 -1
  66. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/templates/[name]/page_client-reference-manifest.js +1 -1
  67. package/.next/standalone/packages/console/.next/server/app/(console)/trierarchs/[shipId]/page/server-reference-manifest.json +14 -14
  68. package/.next/standalone/packages/console/.next/server/app/(console)/trierarchs/[shipId]/page.js +7 -6
  69. package/.next/standalone/packages/console/.next/server/app/(console)/trierarchs/[shipId]/page.js.nft.json +1 -1
  70. package/.next/standalone/packages/console/.next/server/app/(console)/trierarchs/[shipId]/page_client-reference-manifest.js +1 -1
  71. package/.next/standalone/packages/console/.next/server/app/(console)/trierarchs/page/server-reference-manifest.json +14 -14
  72. package/.next/standalone/packages/console/.next/server/app/(console)/trierarchs/page.js +7 -6
  73. package/.next/standalone/packages/console/.next/server/app/(console)/trierarchs/page.js.nft.json +1 -1
  74. package/.next/standalone/packages/console/.next/server/app/(console)/trierarchs/page_client-reference-manifest.js +1 -1
  75. package/.next/standalone/packages/console/.next/server/app/_global-error/page.js +1 -1
  76. package/.next/standalone/packages/console/.next/server/app/_global-error/page.js.nft.json +1 -1
  77. package/.next/standalone/packages/console/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  78. package/.next/standalone/packages/console/.next/server/app/_global-error.html +1 -1
  79. package/.next/standalone/packages/console/.next/server/app/_global-error.rsc +1 -1
  80. package/.next/standalone/packages/console/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  81. package/.next/standalone/packages/console/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  82. package/.next/standalone/packages/console/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  83. package/.next/standalone/packages/console/.next/server/app/_not-found/page.js +6 -5
  84. package/.next/standalone/packages/console/.next/server/app/_not-found/page.js.nft.json +1 -1
  85. package/.next/standalone/packages/console/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  86. package/.next/standalone/packages/console/.next/server/app/api/analytics/route.js +1 -1
  87. package/.next/standalone/packages/console/.next/server/app/api/analytics/route.js.nft.json +1 -1
  88. package/.next/standalone/packages/console/.next/server/app/api/reads/[read]/route.js +3 -2
  89. package/.next/standalone/packages/console/.next/server/app/api/reads/[read]/route.js.nft.json +1 -1
  90. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/confirm/page/app-paths-manifest.json +3 -0
  91. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/confirm/page/build-manifest.json +20 -0
  92. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/confirm/page/next-font-manifest.json +11 -0
  93. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/confirm/page/react-loadable-manifest.json +1 -0
  94. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/confirm/page/server-reference-manifest.json +4 -0
  95. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/confirm/page.js +21 -0
  96. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/confirm/page.js.nft.json +1 -0
  97. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/confirm/page_client-reference-manifest.js +3 -0
  98. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/out/route/app-paths-manifest.json +3 -0
  99. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/out/route/build-manifest.json +12 -0
  100. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/out/route/server-reference-manifest.json +4 -0
  101. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/out/route.js +8 -0
  102. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/out/route.js.nft.json +1 -0
  103. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/out/route_client-reference-manifest.js +3 -0
  104. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/refused/page/app-paths-manifest.json +3 -0
  105. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/refused/page/build-manifest.json +20 -0
  106. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/refused/page/next-font-manifest.json +11 -0
  107. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/refused/page/react-loadable-manifest.json +1 -0
  108. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/refused/page/server-reference-manifest.json +4 -0
  109. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/refused/page.js +20 -0
  110. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/refused/page.js.nft.json +1 -0
  111. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/refused/page_client-reference-manifest.js +3 -0
  112. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/route/app-paths-manifest.json +3 -0
  113. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/route/build-manifest.json +12 -0
  114. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/route/server-reference-manifest.json +4 -0
  115. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/route.js +8 -0
  116. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/route.js.nft.json +1 -0
  117. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/route_client-reference-manifest.js +3 -0
  118. package/.next/standalone/packages/console/.next/server/app/sign-in/done/route/app-paths-manifest.json +3 -0
  119. package/.next/standalone/packages/console/.next/server/app/sign-in/done/route/build-manifest.json +12 -0
  120. package/.next/standalone/packages/console/.next/server/app/sign-in/done/route/server-reference-manifest.json +4 -0
  121. package/.next/standalone/packages/console/.next/server/app/sign-in/done/route.js +7 -0
  122. package/.next/standalone/packages/console/.next/server/app/sign-in/done/route.js.nft.json +1 -0
  123. package/.next/standalone/packages/console/.next/server/app/sign-in/done/route_client-reference-manifest.js +3 -0
  124. package/.next/standalone/packages/console/.next/server/app/sign-in/enter/route/app-paths-manifest.json +3 -0
  125. package/.next/standalone/packages/console/.next/server/app/sign-in/enter/route/build-manifest.json +12 -0
  126. package/.next/standalone/packages/console/.next/server/app/sign-in/enter/route/server-reference-manifest.json +4 -0
  127. package/.next/standalone/packages/console/.next/server/app/sign-in/enter/route.js +7 -0
  128. package/.next/standalone/packages/console/.next/server/app/sign-in/enter/route.js.nft.json +1 -0
  129. package/.next/standalone/packages/console/.next/server/app/sign-in/enter/route_client-reference-manifest.js +3 -0
  130. package/.next/standalone/packages/console/.next/server/app/sign-in/failed/page.js +9 -8
  131. package/.next/standalone/packages/console/.next/server/app/sign-in/failed/page.js.nft.json +1 -1
  132. package/.next/standalone/packages/console/.next/server/app/sign-in/failed/page_client-reference-manifest.js +1 -1
  133. package/.next/standalone/packages/console/.next/server/app/sign-in/no-rights/page/app-paths-manifest.json +3 -0
  134. package/.next/standalone/packages/console/.next/server/app/sign-in/no-rights/page/build-manifest.json +20 -0
  135. package/.next/standalone/packages/console/.next/server/app/sign-in/no-rights/page/next-font-manifest.json +11 -0
  136. package/.next/standalone/packages/console/.next/server/app/sign-in/no-rights/page/react-loadable-manifest.json +1 -0
  137. package/.next/standalone/packages/console/.next/server/app/sign-in/no-rights/page/server-reference-manifest.json +4 -0
  138. package/.next/standalone/packages/console/.next/server/app/sign-in/no-rights/page.js +20 -0
  139. package/.next/standalone/packages/console/.next/server/app/sign-in/no-rights/page.js.nft.json +1 -0
  140. package/.next/standalone/packages/console/.next/server/app/sign-in/no-rights/page_client-reference-manifest.js +3 -0
  141. package/.next/standalone/packages/console/.next/server/app/sign-in/nothing-to-manage/page/app-paths-manifest.json +3 -0
  142. package/.next/standalone/packages/console/.next/server/app/sign-in/nothing-to-manage/page/build-manifest.json +20 -0
  143. package/.next/standalone/packages/console/.next/server/app/sign-in/nothing-to-manage/page/next-font-manifest.json +11 -0
  144. package/.next/standalone/packages/console/.next/server/app/sign-in/nothing-to-manage/page/react-loadable-manifest.json +1 -0
  145. package/.next/standalone/packages/console/.next/server/app/sign-in/nothing-to-manage/page/server-reference-manifest.json +4 -0
  146. package/.next/standalone/packages/console/.next/server/app/sign-in/nothing-to-manage/page.js +20 -0
  147. package/.next/standalone/packages/console/.next/server/app/sign-in/nothing-to-manage/page.js.nft.json +1 -0
  148. package/.next/standalone/packages/console/.next/server/app/sign-in/nothing-to-manage/page_client-reference-manifest.js +3 -0
  149. package/.next/standalone/packages/console/.next/server/app/sign-in/out/route/app-paths-manifest.json +3 -0
  150. package/.next/standalone/packages/console/.next/server/app/sign-in/out/route/build-manifest.json +12 -0
  151. package/.next/standalone/packages/console/.next/server/app/sign-in/out/route/server-reference-manifest.json +4 -0
  152. package/.next/standalone/packages/console/.next/server/app/sign-in/out/route.js +7 -0
  153. package/.next/standalone/packages/console/.next/server/app/sign-in/out/route.js.nft.json +1 -0
  154. package/.next/standalone/packages/console/.next/server/app/sign-in/out/route_client-reference-manifest.js +3 -0
  155. package/.next/standalone/packages/console/.next/server/app/sign-in/page.js +10 -9
  156. package/.next/standalone/packages/console/.next/server/app/sign-in/page.js.nft.json +1 -1
  157. package/.next/standalone/packages/console/.next/server/app/sign-in/page_client-reference-manifest.js +1 -1
  158. package/.next/standalone/packages/console/.next/server/app/sign-in/renew/route/app-paths-manifest.json +3 -0
  159. package/.next/standalone/packages/console/.next/server/app/sign-in/renew/route/build-manifest.json +12 -0
  160. package/.next/standalone/packages/console/.next/server/app/sign-in/renew/route/server-reference-manifest.json +4 -0
  161. package/.next/standalone/packages/console/.next/server/app/sign-in/renew/route.js +7 -0
  162. package/.next/standalone/packages/console/.next/server/app/sign-in/renew/route.js.nft.json +1 -0
  163. package/.next/standalone/packages/console/.next/server/app/sign-in/renew/route_client-reference-manifest.js +3 -0
  164. package/.next/standalone/packages/console/.next/server/app/sign-in/start/route/app-paths-manifest.json +3 -0
  165. package/.next/standalone/packages/console/.next/server/app/sign-in/start/route/build-manifest.json +12 -0
  166. package/.next/standalone/packages/console/.next/server/app/sign-in/start/route/server-reference-manifest.json +4 -0
  167. package/.next/standalone/packages/console/.next/server/app/sign-in/start/route.js +7 -0
  168. package/.next/standalone/packages/console/.next/server/app/sign-in/start/route.js.nft.json +1 -0
  169. package/.next/standalone/packages/console/.next/server/app/sign-in/start/route_client-reference-manifest.js +3 -0
  170. package/.next/standalone/packages/console/.next/server/app/sign-in/unreachable/page/app-paths-manifest.json +3 -0
  171. package/.next/standalone/packages/console/.next/server/app/sign-in/unreachable/page/build-manifest.json +20 -0
  172. package/.next/standalone/packages/console/.next/server/app/sign-in/unreachable/page/next-font-manifest.json +11 -0
  173. package/.next/standalone/packages/console/.next/server/app/sign-in/unreachable/page/react-loadable-manifest.json +1 -0
  174. package/.next/standalone/packages/console/.next/server/app/sign-in/unreachable/page/server-reference-manifest.json +4 -0
  175. package/.next/standalone/packages/console/.next/server/app/sign-in/unreachable/page.js +20 -0
  176. package/.next/standalone/packages/console/.next/server/app/sign-in/unreachable/page.js.nft.json +1 -0
  177. package/.next/standalone/packages/console/.next/server/app/sign-in/unreachable/page_client-reference-manifest.js +3 -0
  178. package/.next/standalone/packages/console/.next/server/app/version/route.js +1 -1
  179. package/.next/standalone/packages/console/.next/server/app/version/route.js.nft.json +1 -1
  180. package/.next/standalone/packages/console/.next/server/app-paths-manifest.json +12 -0
  181. package/.next/standalone/packages/console/.next/server/chunks/0ysl_console__next-internal_server_app_sign-in_argo_out_route_actions_0vmj7f3.js +3 -0
  182. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__068mq_-._.js +3 -0
  183. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__0t12h4i._.js +3 -0
  184. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__100cvar._.js +3 -0
  185. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__14r_nz7._.js +82 -25
  186. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__1_k7w7t._.js +3 -0
  187. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__1ab1dve._.js +3 -0
  188. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__1cfwaji._.js +1 -1
  189. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__1fjj038._.js +3 -0
  190. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__1jqu864._.js +3 -0
  191. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__217-ins._.js +3 -0
  192. package/.next/standalone/packages/console/.next/server/chunks/{_0rwh9wo._.js → _02-7tdl._.js} +6 -6
  193. package/.next/standalone/packages/console/.next/server/chunks/{_1-to-jv._.js → _0l8ph40._.js} +6 -6
  194. package/.next/standalone/packages/console/.next/server/chunks/_16i3nlz._.js +60 -0
  195. package/.next/standalone/packages/console/.next/server/chunks/_1uqphll._.js +1 -1
  196. package/.next/standalone/packages/console/.next/server/chunks/packages_console__next-internal_server_app_sign-in_argo_route_actions_1d9vk1o.js +3 -0
  197. package/.next/standalone/packages/console/.next/server/chunks/packages_console__next-internal_server_app_sign-in_done_route_actions_06h8w2b.js +3 -0
  198. package/.next/standalone/packages/console/.next/server/chunks/packages_console__next-internal_server_app_sign-in_enter_route_actions_0yau020.js +3 -0
  199. package/.next/standalone/packages/console/.next/server/chunks/packages_console__next-internal_server_app_sign-in_out_route_actions_1hvzhe6.js +3 -0
  200. package/.next/standalone/packages/console/.next/server/chunks/packages_console__next-internal_server_app_sign-in_renew_route_actions_01ck9ks.js +3 -0
  201. package/.next/standalone/packages/console/.next/server/chunks/packages_console__next-internal_server_app_sign-in_start_route_actions_1iuwttz.js +3 -0
  202. package/.next/standalone/packages/console/.next/server/chunks/packages_console_instrumentation_ts_0x-7ff6._.js +2 -1
  203. package/.next/standalone/packages/console/.next/server/chunks/packages_console_lib_argo-sign-in_ts_1lekusk._.js +3 -0
  204. package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console__next-internal_server_app_sign-in_argo_confirm_page_actions_0909_h9.js +3 -0
  205. package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console__next-internal_server_app_sign-in_argo_refused_page_actions_0grr4f-.js +3 -0
  206. package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console__next-internal_server_app_sign-in_no-rights_page_actions_1_uzulg.js +3 -0
  207. package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console__next-internal_server_app_sign-in_unreachable_page_actions_07md7et.js +3 -0
  208. package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console_features_trierarchs_ui_organisms_join-machine-dialog_tsx_18550i0._.js +3 -0
  209. package/.next/standalone/packages/console/.next/server/chunks/ssr/1eui__next-internal_server_app_sign-in_nothing-to-manage_page_actions_1mhf4v_.js +3 -0
  210. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__06uu50p._.js +3 -0
  211. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__0c1m_hd._.js +3 -0
  212. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__0g-j_l2._.js +3 -0
  213. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__0pws5x4._.js +23 -0
  214. package/.next/standalone/packages/console/.next/server/chunks/ssr/{[root-of-the-server]__17m7m-y._.js → [root-of-the-server]__0r6g-bg._.js} +1 -1
  215. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__0w3uw0-._.js +3 -0
  216. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__13qgk8t._.js +3 -0
  217. package/.next/standalone/packages/console/.next/server/chunks/ssr/{[root-of-the-server]__050xnon._.js → [root-of-the-server]__1o0x0z-._.js} +1 -1
  218. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__1qxxq74._.js +3 -0
  219. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__1tmvu6h._.js +3 -0
  220. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0303p7e._.js +3 -0
  221. package/.next/standalone/packages/console/.next/server/chunks/ssr/_03x447c._.js +3 -0
  222. package/.next/standalone/packages/console/.next/server/chunks/ssr/_03xphjy._.js +3 -0
  223. package/.next/standalone/packages/console/.next/server/chunks/ssr/_04lz0pk._.js +3 -0
  224. package/.next/standalone/packages/console/.next/server/chunks/ssr/_05eg_8f._.js +3 -0
  225. package/.next/standalone/packages/console/.next/server/chunks/ssr/_05q4e87._.js +3 -0
  226. package/.next/standalone/packages/console/.next/server/chunks/ssr/_07hh279._.js +3 -0
  227. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0__21m1._.js +3 -0
  228. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0_b0_q2._.js +1 -1
  229. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0a0lmhf._.js +3 -0
  230. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0c6zkeh._.js +3 -0
  231. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0cuj1m9._.js +3 -0
  232. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0dmnshs._.js +3 -0
  233. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0h0wdc8._.js +3 -0
  234. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0h3dzkf._.js +1 -1
  235. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0hq-chu._.js +3 -0
  236. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0ictsnq._.js +1 -1
  237. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0krkeof._.js +3 -0
  238. package/.next/standalone/packages/console/.next/server/chunks/ssr/{_04q8k0c._.js → _0lx73da._.js} +2 -2
  239. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0mjq1cb._.js +1 -1
  240. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0nmqout._.js +1 -1
  241. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0oln7j0._.js +3 -0
  242. package/.next/standalone/packages/console/.next/server/chunks/ssr/{_1eftnop._.js → _0q5-u3a._.js} +2 -2
  243. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0qf98-v._.js +3 -0
  244. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0s-n56c._.js +3 -0
  245. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0ulogg0._.js +3 -0
  246. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0v9bn49._.js +3 -0
  247. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0wcfqga._.js +3 -0
  248. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0wevgo7._.js +3 -0
  249. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0wmn_e6._.js +3 -0
  250. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0wx5h7b._.js +3 -0
  251. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0xbhvct._.js +3 -0
  252. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0y1i-i8._.js +3 -0
  253. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0yu4kbh._.js +3 -0
  254. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1-i186h._.js +3 -0
  255. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1-q8u_u._.js +3 -0
  256. package/.next/standalone/packages/console/.next/server/chunks/ssr/_11y_v2f._.js +3 -0
  257. package/.next/standalone/packages/console/.next/server/chunks/ssr/_12i23xy._.js +3 -0
  258. package/.next/standalone/packages/console/.next/server/chunks/ssr/_142u8s0._.js +3 -0
  259. package/.next/standalone/packages/console/.next/server/chunks/ssr/_14x03yf._.js +3 -0
  260. package/.next/standalone/packages/console/.next/server/chunks/ssr/{_1qvspj2._.js → _15jub2f._.js} +2 -2
  261. package/.next/standalone/packages/console/.next/server/chunks/ssr/_16mtur4._.js +3 -0
  262. package/.next/standalone/packages/console/.next/server/chunks/ssr/_17ez_-4._.js +3 -0
  263. package/.next/standalone/packages/console/.next/server/chunks/ssr/_181kxvr._.js +1 -1
  264. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1_1nacl._.js +3 -0
  265. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1_wy_tl._.js +3 -0
  266. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1bc8get._.js +3 -3
  267. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1diq6u_._.js +3 -0
  268. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1efms7i._.js +3 -0
  269. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1h_9ti4._.js +3 -0
  270. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1jksmvi._.js +3 -0
  271. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1k7vocd._.js +3 -0
  272. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1l1eyqx._.js +3 -0
  273. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1lazbiz._.js +3 -0
  274. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1lt6p4q._.js +3 -0
  275. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1mate5q._.js +3 -0
  276. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1n-0pn5._.js +3 -0
  277. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1n8dahj._.js +1 -1
  278. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1nov-za._.js +1 -1
  279. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1o4qsts._.js +3 -0
  280. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1oe1n9l._.js +3 -0
  281. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1pld039._.js +3 -0
  282. package/.next/standalone/packages/console/.next/server/chunks/ssr/{node_modules_@base-ui_09kve9f._.js → _1q4ibin._.js} +2 -2
  283. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1qde2ge._.js +1 -1
  284. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1u0h4gj._.js +1 -1
  285. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1uz6pzy._.js +3 -0
  286. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1v4ialy._.js +3 -0
  287. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1w20t_w._.js +3 -0
  288. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1xez-bc._.js +3 -0
  289. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1xgomnp._.js +3 -0
  290. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1yz7z57._.js +1 -1
  291. package/.next/standalone/packages/console/.next/server/chunks/ssr/_20krie7._.js +3 -0
  292. package/.next/standalone/packages/console/.next/server/chunks/ssr/{_0tgr0il._.js → _20t51mx._.js} +2 -2
  293. package/.next/standalone/packages/console/.next/server/chunks/ssr/_20u8c82._.js +3 -0
  294. package/.next/standalone/packages/console/.next/server/chunks/ssr/_20xkukj._.js +3 -0
  295. package/.next/standalone/packages/console/.next/server/chunks/ssr/_211ib7c._.js +3 -0
  296. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_0do_axk._.js +3 -0
  297. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_0oy4wre._.js +3 -0
  298. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_0tb1et9._.js +3 -0
  299. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_0tebh-w._.js +3 -0
  300. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_16ifz1a._.js +3 -0
  301. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_1tm6j2u._.js +3 -0
  302. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_@base-ui_1zrp1ru._.js +3 -0
  303. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_@base-ui_react_0hr-0pm._.js +3 -0
  304. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_@base-ui_react_0lxpx21._.js +3 -0
  305. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_@base-ui_react_18l-yav._.js +3 -0
  306. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_@base-ui_react_1t9_5ft._.js +3 -0
  307. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_@base-ui_react_dialog_0qkqfb3._.js +3 -0
  308. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_@base-ui_react_dialog_1y13e3a._.js +3 -0
  309. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_@tanstack_0jhfl56._.js +3 -0
  310. package/.next/standalone/packages/console/.next/server/chunks/ssr/{packages_common_dist_ids_index_0vpngvd.js → node_modules_zod_v4_classic_external_071rx-x.js} +3 -3
  311. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_15ka30f._.js +3 -0
  312. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_1mgddl0._.js +3 -0
  313. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_1t6joug._.js +1 -1
  314. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_common_dist_0wn-l78._.js +3 -0
  315. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_common_dist_header_atoms_tooltip_1518pdz.js +3 -0
  316. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_common_dist_header_command-palette_05c03w-.js +3 -0
  317. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_common_dist_rules_sign-in_0qqgqum.js +3 -0
  318. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_00m30so._.js +3 -0
  319. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_00qg_s6._.js +3 -0
  320. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_02v53na._.js +3 -0
  321. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_02wkudy._.js +3 -0
  322. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_04rox65._.js +3 -0
  323. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_05zitd2._.js +3 -0
  324. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_065nea1._.js +3 -0
  325. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_0h_376h._.js +3 -0
  326. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_0hdablp._.js +3 -0
  327. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_0ko_ogs._.js +3 -0
  328. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_0sr2-oa._.js +3 -0
  329. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_0t6m_wf._.js +3 -0
  330. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_0ub5v8q._.js +3 -0
  331. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_0ydkif0._.js +3 -0
  332. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_0ye2mp0._.js +3 -0
  333. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_0ysbad7._.js +3 -0
  334. package/.next/standalone/packages/console/.next/server/chunks/ssr/{packages_console_0_14dli._.js → packages_console_0zftums._.js} +2 -2
  335. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_108sez2._.js +3 -0
  336. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_11eh-8v._.js +1 -1
  337. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_1foyyva._.js +1 -1
  338. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_1gp9yi0._.js +3 -0
  339. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_1i0al2p._.js +3 -0
  340. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_1jy5-0g._.js +3 -0
  341. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_1l72l5g._.js +3 -0
  342. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_1n8w8x0._.js +3 -0
  343. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_1oz8iu7._.js +3 -0
  344. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_1rdu3gt._.js +3 -0
  345. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_1yfimad._.js +3 -0
  346. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_fleet-health_page_tsx_0vcosw1._.js +1 -1
  347. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_inbox_inbox-page_tsx_1lm_c0k._.js +1 -1
  348. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_labels_page_tsx_1qggshd._.js +1 -1
  349. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_network_network-page_tsx_0qc3h-9._.js +1 -1
  350. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_overview-page_tsx_15siba6._.js +1 -1
  351. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_settings_page_tsx_1p8ay87._.js +1 -1
  352. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_ships_[shipId]_ship-page_tsx_0oahz0r._.js +1 -1
  353. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_signed-in-layout_tsx_13vv8fo._.js +1 -1
  354. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_squadrons_[squadronId]_page_tsx_0f8nmsh._.js +1 -1
  355. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_squadrons_page_tsx_1xpvx8n._.js +1 -1
  356. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_trierarchs_[shipId]_page_tsx_1u845f4._.js +1 -1
  357. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_providers_tsx_06ai92n._.js +1 -1
  358. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_components_0wbp67g._.js +3 -0
  359. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_components_14_6o0z._.js +3 -0
  360. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_components_1xbabe0._.js +3 -0
  361. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_components_1zx3jz4._.js +1 -1
  362. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_components_atoms_combobox_tsx_1cy612l._.js +1 -1
  363. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_components_atoms_input_tsx_0ux0uln._.js +1 -1
  364. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_components_atoms_popover_tsx_0_sbc_0._.js +1 -1
  365. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_components_atoms_select_tsx_1v_3j3i._.js +1 -1
  366. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_components_atoms_tabs_tsx_1qpb4iv._.js +3 -0
  367. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_components_atoms_toast_tsx_1kqrqe7._.js +1 -1
  368. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_components_organisms_crew-line-dialog_tsx_1n3v4kg._.js +3 -0
  369. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_components_organisms_crew-line-dialog_tsx_1s32s-m._.js +3 -0
  370. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_features_048mw7t._.js +3 -0
  371. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_features_ship_ui_organisms_message-sheet_tsx_08bg9ly._.js +1 -1
  372. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_features_squadrons_organisms_add-member-dialog_tsx_1qunr7p._.js +3 -0
  373. package/.next/standalone/packages/console/.next/server/chunks/ssr/{packages_console_features_squadrons_organisms_form-squadron-dialog_tsx_0u45tfm._.js → packages_console_features_squadrons_organisms_form-squadron-dialog_tsx_0oapb3r._.js} +2 -2
  374. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_features_squadrons_organisms_form-squadron-dialog_tsx_1y1h3bn._.js +1 -1
  375. package/.next/standalone/packages/console/.next/server/middleware-build-manifest.js +3 -3
  376. package/.next/standalone/packages/console/.next/server/next-font-manifest.js +1 -1
  377. package/.next/standalone/packages/console/.next/server/next-font-manifest.json +20 -0
  378. package/.next/standalone/packages/console/.next/server/pages/500.html +1 -1
  379. package/.next/standalone/packages/console/.next/server/server-reference-manifest.js +1 -1
  380. package/.next/standalone/packages/console/.next/server/server-reference-manifest.json +15 -15
  381. package/.next/standalone/packages/console/.next/static/chunks/0-y_zfams28pu.js +1 -0
  382. package/.next/standalone/packages/console/.next/static/chunks/00xk_lkpl8l4v.js +1 -0
  383. package/.next/standalone/packages/console/.next/static/chunks/{2z1se1z1svhba.js → 03xttwj2kpz_4.js} +1 -1
  384. package/.next/standalone/packages/console/.next/static/chunks/05_3esi8-xe97.js +1 -0
  385. package/.next/standalone/packages/console/.next/static/chunks/08yt2fbvw3qnu.js +1 -0
  386. package/.next/standalone/packages/console/.next/static/chunks/09vrons-brzfx.js +1 -0
  387. package/.next/standalone/packages/console/.next/static/chunks/0bc8z51nm5psf.js +1 -0
  388. package/.next/standalone/packages/console/.next/static/chunks/0f92fmhgha5i3.js +1 -0
  389. package/.next/standalone/packages/console/.next/static/chunks/0gtglg3etrj5u.js +1 -0
  390. package/.next/standalone/packages/console/.next/static/chunks/0j7p9ku8391p7.js +1 -0
  391. package/.next/standalone/packages/console/.next/static/chunks/{3ratrwsbommzd.js → 0jnr250p6aywr.js} +1 -1
  392. package/.next/standalone/packages/console/.next/static/chunks/0l1wdm7vdsanu.js +1 -0
  393. package/.next/standalone/packages/console/.next/static/chunks/0nozb1otb31kw.js +1 -0
  394. package/.next/standalone/packages/console/.next/static/chunks/0nxvr0eizj4o2.js +1 -0
  395. package/.next/standalone/packages/console/.next/static/chunks/0ovyr6jpg0vxy.js +1 -0
  396. package/.next/standalone/packages/console/.next/static/chunks/0sybybtinglf9.js +1 -0
  397. package/.next/standalone/packages/console/.next/static/chunks/0xvff0tc43mkc.js +1 -0
  398. package/.next/standalone/packages/console/.next/static/chunks/0ymnx1obwsbxg.js +1 -0
  399. package/.next/standalone/packages/console/.next/static/chunks/1-5zemam8twzv.js +1 -0
  400. package/.next/standalone/packages/console/.next/static/chunks/{3-e47olei182t.js → 11dlhw3zb89tr.js} +1 -1
  401. package/.next/standalone/packages/console/.next/static/chunks/134xgz0lwpxgv.js +1 -0
  402. package/.next/standalone/packages/console/.next/static/chunks/13ht20kl8axao.js +1 -0
  403. package/.next/standalone/packages/console/.next/static/chunks/{3jszhx5rvbjvw.js → 14mdrtic40xtp.js} +1 -1
  404. package/.next/standalone/packages/console/.next/static/chunks/15e7rn42etsif.js +1 -0
  405. package/.next/standalone/packages/console/.next/static/chunks/1827x5-cobc3q.js +1 -0
  406. package/.next/standalone/packages/console/.next/static/chunks/1980pgv670cjs.js +1 -0
  407. package/.next/standalone/packages/console/.next/static/chunks/19cc8h-euk_vw.js +1 -0
  408. package/.next/standalone/packages/console/.next/static/chunks/1_i24pyymdpwo.js +1 -0
  409. package/.next/standalone/packages/console/.next/static/chunks/{318upe1zitwt6.js → 1b2h_-7rckbs5.js} +1 -1
  410. package/.next/standalone/packages/console/.next/static/chunks/{28xc8g7o4b9a-.js → 1c2_p_g506huu.js} +1 -1
  411. package/.next/standalone/packages/console/.next/static/chunks/1cp9wi7f3ez56.js +1 -0
  412. package/.next/standalone/packages/console/.next/static/chunks/1ex_ig9e275p1.js +1 -0
  413. package/.next/standalone/packages/console/.next/static/chunks/1fecr8m-wmmcc.js +1 -0
  414. package/.next/standalone/packages/console/.next/static/chunks/1gn13zeuxfqav.js +1 -0
  415. package/.next/standalone/packages/console/.next/static/chunks/1hrkkpr_jntrf.js +1 -0
  416. package/.next/standalone/packages/console/.next/static/chunks/1inwd9-noendt.js +1 -0
  417. package/.next/standalone/packages/console/.next/static/chunks/1j1drerg6u1c4.js +1 -0
  418. package/.next/standalone/packages/console/.next/static/chunks/1jj64r75eud93.js +1 -0
  419. package/.next/standalone/packages/console/.next/static/chunks/{2-ncr8s35g33z.js → 1jwd5buaaiibg.js} +1 -1
  420. package/.next/standalone/packages/console/.next/static/chunks/1n42oyyc2m78p.js +1 -0
  421. package/.next/standalone/packages/console/.next/static/chunks/1rv_ubq9yeind.js +1 -0
  422. package/.next/standalone/packages/console/.next/static/chunks/1sjyv60jja8wg.js +1 -0
  423. package/.next/standalone/packages/console/.next/static/chunks/1v3zboey1lzrw.js +1 -0
  424. package/.next/standalone/packages/console/.next/static/chunks/1vgdxhp8hjmtg.js +1 -0
  425. package/.next/standalone/packages/console/.next/static/chunks/1vymbhrnm5qfl.js +1 -0
  426. package/.next/standalone/packages/console/.next/static/chunks/1w3nq8yv0k8zc.js +1 -0
  427. package/.next/standalone/packages/console/.next/static/chunks/{3gw93hpgh57gl.js → 1wbjbr34zn98p.js} +1 -1
  428. package/.next/standalone/packages/console/.next/static/chunks/1xl5a7chqnwwk.js +1 -0
  429. package/.next/standalone/packages/console/.next/static/chunks/{1l_1my5pd97do.js → 1y5tnspjl_c7i.js} +1 -1
  430. package/.next/standalone/packages/console/.next/static/chunks/1yepkvdl1av3c.js +1 -0
  431. package/.next/standalone/packages/console/.next/static/chunks/20b7zss5f15j_.js +1 -0
  432. package/.next/standalone/packages/console/.next/static/chunks/2140ob12x5g72.js +1 -0
  433. package/.next/standalone/packages/console/.next/static/chunks/21i493_zfcygr.js +1 -0
  434. package/.next/standalone/packages/console/.next/static/chunks/{2elihu80hf26q.js → 24kpwb_f69kew.js} +1 -1
  435. package/.next/standalone/packages/console/.next/static/chunks/26ozm4anoj943.js +1 -0
  436. package/.next/standalone/packages/console/.next/static/chunks/{2cqwvmsk2n95d.js → 2b0_pg5e55bi-.js} +1 -1
  437. package/.next/standalone/packages/console/.next/static/chunks/2by2_j7h-ol_s.js +1 -0
  438. package/.next/standalone/packages/console/.next/static/chunks/2i59z-m-92-ll.js +1 -0
  439. package/.next/standalone/packages/console/.next/static/chunks/2kv-h65_ki8r3.js +1 -0
  440. package/.next/standalone/packages/console/.next/static/chunks/2kxvan45lpose.js +1 -0
  441. package/.next/standalone/packages/console/.next/static/chunks/2miouvmnmiq27.js +1 -0
  442. package/.next/standalone/packages/console/.next/static/chunks/{01ew2ssfbg4fk.js → 2oinamab9i2io.js} +1 -1
  443. package/.next/standalone/packages/console/.next/static/chunks/{3yue418t7-gne.js → 2qzwd-r5rf_pd.js} +1 -1
  444. package/.next/standalone/packages/console/.next/static/chunks/2rc0goysrrai_.js +1 -0
  445. package/.next/standalone/packages/console/.next/static/chunks/{32eiz8wfxjh13.js → 2v8nnxm3j-4rc.js} +1 -1
  446. package/.next/standalone/packages/console/.next/static/chunks/2wt-z8em601th.js +1 -0
  447. package/.next/standalone/packages/console/.next/static/chunks/2y1kwp6sm4xef.js +1 -0
  448. package/.next/standalone/packages/console/.next/static/chunks/2yg8yrv6zs598.js +1 -0
  449. package/.next/standalone/packages/console/.next/static/chunks/2yl7mh2bi7a7n.js +1 -0
  450. package/.next/standalone/packages/console/.next/static/chunks/2ynb_atn6efmi.js +1 -0
  451. package/.next/standalone/packages/console/.next/static/chunks/307--wbao6s4g.js +1 -0
  452. package/.next/standalone/packages/console/.next/static/chunks/357prv95ii3f3.js +1 -0
  453. package/.next/standalone/packages/console/.next/static/chunks/3_4ke6pfsvci9.js +1 -0
  454. package/.next/standalone/packages/console/.next/static/chunks/3a8b6mvuxff0x.js +1 -0
  455. package/.next/standalone/packages/console/.next/static/chunks/{117637vz-8m5h.js → 3cdx7wdipcaom.js} +1 -1
  456. package/.next/standalone/packages/console/.next/static/chunks/3ctea3_zumb_6.js +1 -0
  457. package/.next/standalone/packages/console/.next/static/chunks/3cziwrehzxww4.js +1 -0
  458. package/.next/standalone/packages/console/.next/static/chunks/3dbvabbuspuew.js +1 -0
  459. package/.next/standalone/packages/console/.next/static/chunks/{40x7asvp3p80z.js → 3dkl2qi0_kamw.js} +1 -1
  460. package/.next/standalone/packages/console/.next/static/chunks/{1-__o5ef7kyzn.js → 3dnldo4qdbp9_.js} +1 -1
  461. package/.next/standalone/packages/console/.next/static/chunks/3fbga59st-ddo.js +1 -0
  462. package/.next/standalone/packages/console/.next/static/chunks/3fza191yvz2g4.js +1 -0
  463. package/.next/standalone/packages/console/.next/static/chunks/3g6b5hm825cu-.css +3 -0
  464. package/.next/standalone/packages/console/.next/static/chunks/3jri5ummt9-kn.js +1 -0
  465. package/.next/standalone/packages/console/.next/static/chunks/3m6d29nmyh_tp.js +1 -0
  466. package/.next/standalone/packages/console/.next/static/chunks/3me5h13yg09mt.js +1 -0
  467. package/.next/standalone/packages/console/.next/static/chunks/3my0dvew3kf4i.js +1 -0
  468. package/.next/standalone/packages/console/.next/static/chunks/3n7qy45kd4y26.js +1 -0
  469. package/.next/standalone/packages/console/.next/static/chunks/{25lpj_dr-j9wk.js → 3nlzuzl3hjvvu.js} +1 -1
  470. package/.next/standalone/packages/console/.next/static/chunks/3vtv9qizo-3h1.js +1 -0
  471. package/.next/standalone/packages/console/.next/static/chunks/3wnk_9b0hsk-4.js +1 -0
  472. package/.next/standalone/packages/console/.next/static/chunks/3wpdfxv2ydrbs.js +1 -0
  473. package/.next/standalone/packages/console/.next/static/chunks/{3hh1avdkv004-.js → 3x9dzriwxj2jr.js} +1 -1
  474. package/.next/standalone/packages/console/.next/static/chunks/3yb7bojcnm336.js +1 -0
  475. package/.next/standalone/packages/console/.next/static/chunks/3z-vdr9trwnib.js +1 -0
  476. package/.next/standalone/packages/console/.next/static/chunks/4127doqwcf9tk.js +1 -0
  477. package/.next/standalone/packages/console/.next/static/chunks/42buia95mk04g.js +1 -0
  478. package/.next/standalone/packages/console/.next/static/chunks/43i0ct-bpzy-w.js +1 -0
  479. package/.next/standalone/packages/console/.next/static/chunks/4484sh3l0tijv.js +1 -0
  480. package/.next/standalone/packages/console/.next/static/chunks/45160g3zbzbin.js +1 -0
  481. package/.next/standalone/packages/console/package.json +3 -3
  482. package/README.md +5 -4
  483. package/package.json +3 -3
  484. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__06f_104._.js +0 -3
  485. package/.next/standalone/packages/console/.next/server/chunks/ssr/0mxb_server_app_(console)_squadrons_blueprints_[name]_page_actions_1ccrd2_.js +0 -3
  486. package/.next/standalone/packages/console/.next/server/chunks/ssr/0mxb_server_app_(console)_squadrons_templates_[name]_page_actions_0qzhozy.js +0 -3
  487. package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console__next-internal_server_app_(console)_fleet-health_page_actions_0dxyn06.js +0 -3
  488. package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console__next-internal_server_app_(console)_needs-crew_page_actions_0rhp085.js +0 -3
  489. package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console__next-internal_server_app_(console)_network_page_actions_1qbofc5.js +0 -3
  490. package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console__next-internal_server_app_(console)_settings_page_actions_07zyuya.js +0 -3
  491. package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console__next-internal_server_app_(console)_ships_[shipId]_page_actions_09ros_6.js +0 -3
  492. package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console__next-internal_server_app_(console)_squadrons_page_actions_04wqu1c.js +0 -3
  493. package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console__next-internal_server_app_(console)_trierarchs_page_actions_13sd72a.js +0 -3
  494. package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console_features_trierarchs_ui_organisms_clear-worktree-dialog_tsx_0i0l1qp._.js +0 -3
  495. package/.next/standalone/packages/console/.next/server/chunks/ssr/1eui__next-internal_server_app_(console)_fleet-health_[cause]_page_actions_196vwwc.js +0 -3
  496. package/.next/standalone/packages/console/.next/server/chunks/ssr/1eui__next-internal_server_app_(console)_needs-attention_page_actions_17c4s8j.js +0 -3
  497. package/.next/standalone/packages/console/.next/server/chunks/ssr/1eui__next-internal_server_app_(console)_squadrons_[squadronId]_page_actions_0183_z3.js +0 -3
  498. package/.next/standalone/packages/console/.next/server/chunks/ssr/1eui__next-internal_server_app_(console)_trierarchs_[shipId]_page_actions_1yx88bk.js +0 -3
  499. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__00fnze5._.js +0 -3
  500. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__0wp2s5c._.js +0 -3
  501. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__1h4o4cz._.js +0 -3
  502. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0-lk0hi._.js +0 -3
  503. package/.next/standalone/packages/console/.next/server/chunks/ssr/_00in26l._.js +0 -3
  504. package/.next/standalone/packages/console/.next/server/chunks/ssr/_015akym._.js +0 -3
  505. package/.next/standalone/packages/console/.next/server/chunks/ssr/_02ozs01._.js +0 -3
  506. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0b6kjfz._.js +0 -3
  507. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0bx9rsi._.js +0 -3
  508. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0dq16_0._.js +0 -3
  509. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0eeox-9._.js +0 -3
  510. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0gnkc87._.js +0 -3
  511. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0h21fie._.js +0 -3
  512. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0ibcqy0._.js +0 -3
  513. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0kf6nva._.js +0 -3
  514. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0lxqar1._.js +0 -3
  515. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0mvp-z7._.js +0 -3
  516. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0ni0d5t._.js +0 -3
  517. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0oso5ke._.js +0 -3
  518. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0pd94ci._.js +0 -3
  519. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0q3cblh._.js +0 -3
  520. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0qft7s4._.js +0 -3
  521. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0qo94ne._.js +0 -3
  522. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0sgf57y._.js +0 -3
  523. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0txw0_-._.js +0 -3
  524. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0v442oo._.js +0 -3
  525. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0v8gdqq._.js +0 -3
  526. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0v9163-._.js +0 -3
  527. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0vwj8z1._.js +0 -3
  528. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0wmw6gw._.js +0 -3
  529. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0wy-ep_._.js +0 -3
  530. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0xju-eu._.js +0 -3
  531. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0z9_vmu._.js +0 -3
  532. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1150wmd._.js +0 -3
  533. package/.next/standalone/packages/console/.next/server/chunks/ssr/_131-0_x._.js +0 -3
  534. package/.next/standalone/packages/console/.next/server/chunks/ssr/_13q51ov._.js +0 -3
  535. package/.next/standalone/packages/console/.next/server/chunks/ssr/_14uj1da._.js +0 -3
  536. package/.next/standalone/packages/console/.next/server/chunks/ssr/_15caqvu._.js +0 -3
  537. package/.next/standalone/packages/console/.next/server/chunks/ssr/_15inzfl._.js +0 -3
  538. package/.next/standalone/packages/console/.next/server/chunks/ssr/_167gn91._.js +0 -3
  539. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1_9jlty._.js +0 -3
  540. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1adtjss._.js +0 -3
  541. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1ahxcm_._.js +0 -3
  542. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1cak3vp._.js +0 -3
  543. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1dwmj6t._.js +0 -3
  544. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1gfvjcx._.js +0 -3
  545. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1gz4-du._.js +0 -3
  546. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1icypol._.js +0 -3
  547. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1k24d9t._.js +0 -3
  548. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1ktyb1o._.js +0 -3
  549. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1oygmyf._.js +0 -3
  550. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1pst1lb._.js +0 -3
  551. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1q4-osx._.js +0 -3
  552. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1qdwv0j._.js +0 -3
  553. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1r1o8we._.js +0 -23
  554. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1slf1qq._.js +0 -3
  555. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1svohzj._.js +0 -3
  556. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1t4d5qx._.js +0 -3
  557. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1tmr0q5._.js +0 -3
  558. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1uaftha._.js +0 -3
  559. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1uofvu3._.js +0 -3
  560. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1uw6vsz._.js +0 -3
  561. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1yjxbcr._.js +0 -3
  562. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1yr1u1_._.js +0 -3
  563. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_00km8nm._.js +0 -3
  564. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_1822c4m._.js +0 -3
  565. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_@base-ui_react_1of81la._.js +0 -3
  566. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_0kaxn3-._.js +0 -3
  567. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_common_dist_1_gq_cl._.js +0 -3
  568. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_02e024f._.js +0 -3
  569. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_070hz38._.js +0 -3
  570. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_0k-cs8i._.js +0 -3
  571. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_0qpt_ib._.js +0 -3
  572. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_0xg819q._.js +0 -3
  573. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_1-yelol._.js +0 -3
  574. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_16na741._.js +0 -3
  575. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_1bm_b0f._.js +0 -3
  576. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_1khqht9._.js +0 -3
  577. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_1xsnp3g._.js +0 -3
  578. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console__next-internal_server_app_(console)_inbox_page_actions_1g5uv6y.js +0 -3
  579. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console__next-internal_server_app_(console)_labels_page_actions_14z7vqr.js +0 -3
  580. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console__next-internal_server_app_(console)_page_actions_05lw-oq.js +0 -3
  581. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_components_1_88pm4._.js +0 -3
  582. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_components_1cwibut._.js +0 -3
  583. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_components_1s1xs87._.js +0 -3
  584. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_components_organisms_crew-line-dialog_tsx_0gvko9u._.js +0 -3
  585. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_features_1s0ws5z._.js +0 -3
  586. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_features_sign-in_organisms_sign-in-form_tsx_16_oswu._.js +0 -3
  587. package/.next/standalone/packages/console/.next/static/chunks/0-dlu3v5-3xjy.js +0 -1
  588. package/.next/standalone/packages/console/.next/static/chunks/0-fzym4ddbgfl.js +0 -1
  589. package/.next/standalone/packages/console/.next/static/chunks/00i6q5loemcdb.js +0 -1
  590. package/.next/standalone/packages/console/.next/static/chunks/02_0efuv8zr04.js +0 -1
  591. package/.next/standalone/packages/console/.next/static/chunks/05am0bszfimzd.js +0 -1
  592. package/.next/standalone/packages/console/.next/static/chunks/0c7bjft6zc04t.js +0 -1
  593. package/.next/standalone/packages/console/.next/static/chunks/0f-unpjyzseoa.js +0 -1
  594. package/.next/standalone/packages/console/.next/static/chunks/0k37l03brt1lx.js +0 -1
  595. package/.next/standalone/packages/console/.next/static/chunks/0l1m73b3b3ljl.js +0 -1
  596. package/.next/standalone/packages/console/.next/static/chunks/0q7s6fjx5zvzy.js +0 -1
  597. package/.next/standalone/packages/console/.next/static/chunks/0qpp7ptesfktl.js +0 -1
  598. package/.next/standalone/packages/console/.next/static/chunks/0tkkcpk4sco9r.js +0 -1
  599. package/.next/standalone/packages/console/.next/static/chunks/0u8cdjuofezss.js +0 -1
  600. package/.next/standalone/packages/console/.next/static/chunks/0v_4cozk4gbpq.js +0 -1
  601. package/.next/standalone/packages/console/.next/static/chunks/0wklya9nqkzxn.js +0 -1
  602. package/.next/standalone/packages/console/.next/static/chunks/0yi6kd19bc8bq.js +0 -1
  603. package/.next/standalone/packages/console/.next/static/chunks/0yzjghzog-cdi.js +0 -1
  604. package/.next/standalone/packages/console/.next/static/chunks/0zj3018sf6h0f.js +0 -1
  605. package/.next/standalone/packages/console/.next/static/chunks/126uqxulir3hs.js +0 -1
  606. package/.next/standalone/packages/console/.next/static/chunks/12bv9goo6bo3g.js +0 -1
  607. package/.next/standalone/packages/console/.next/static/chunks/13adqemu7o09r.js +0 -1
  608. package/.next/standalone/packages/console/.next/static/chunks/14e-f0w_cfqhg.js +0 -1
  609. package/.next/standalone/packages/console/.next/static/chunks/1619u51m6z_zy.js +0 -1
  610. package/.next/standalone/packages/console/.next/static/chunks/17krrf-x0pc58.js +0 -1
  611. package/.next/standalone/packages/console/.next/static/chunks/1a9zf8kv0co9n.js +0 -1
  612. package/.next/standalone/packages/console/.next/static/chunks/1aabfo3ikk3ba.js +0 -1
  613. package/.next/standalone/packages/console/.next/static/chunks/1e5jqgsx_ixev.js +0 -1
  614. package/.next/standalone/packages/console/.next/static/chunks/1iip53cb0n1ho.js +0 -1
  615. package/.next/standalone/packages/console/.next/static/chunks/1kyd6gpr8krm1.js +0 -1
  616. package/.next/standalone/packages/console/.next/static/chunks/1n-j3wnxttgxl.js +0 -1
  617. package/.next/standalone/packages/console/.next/static/chunks/1omv57sjorlof.js +0 -1
  618. package/.next/standalone/packages/console/.next/static/chunks/1qpq5_mt8o9ya.css +0 -3
  619. package/.next/standalone/packages/console/.next/static/chunks/1rnej87ue7-0n.js +0 -1
  620. package/.next/standalone/packages/console/.next/static/chunks/1t5lh13vevgx4.js +0 -1
  621. package/.next/standalone/packages/console/.next/static/chunks/1vdn610i7k8j1.js +0 -1
  622. package/.next/standalone/packages/console/.next/static/chunks/1yovlgke6tn_e.js +0 -1
  623. package/.next/standalone/packages/console/.next/static/chunks/20ovb1g3kmfc1.js +0 -1
  624. package/.next/standalone/packages/console/.next/static/chunks/22sev5tbikm_p.js +0 -1
  625. package/.next/standalone/packages/console/.next/static/chunks/24bvw3_s7h3f3.js +0 -1
  626. package/.next/standalone/packages/console/.next/static/chunks/26b3un_8lel5h.js +0 -1
  627. package/.next/standalone/packages/console/.next/static/chunks/28pbrg59hx8sb.js +0 -1
  628. package/.next/standalone/packages/console/.next/static/chunks/292f5okbjz46-.js +0 -1
  629. package/.next/standalone/packages/console/.next/static/chunks/2_g87mjk-iym-.js +0 -1
  630. package/.next/standalone/packages/console/.next/static/chunks/2cgenpdif8p18.js +0 -1
  631. package/.next/standalone/packages/console/.next/static/chunks/2do8biailpt9q.js +0 -1
  632. package/.next/standalone/packages/console/.next/static/chunks/2e383naxva7i6.js +0 -1
  633. package/.next/standalone/packages/console/.next/static/chunks/2fwpxzwprq1qx.js +0 -1
  634. package/.next/standalone/packages/console/.next/static/chunks/2jf-hefdqyy1k.js +0 -1
  635. package/.next/standalone/packages/console/.next/static/chunks/2k8crfymkve8d.js +0 -1
  636. package/.next/standalone/packages/console/.next/static/chunks/2lposccpgczy6.js +0 -1
  637. package/.next/standalone/packages/console/.next/static/chunks/2luplqg0e_2uu.js +0 -1
  638. package/.next/standalone/packages/console/.next/static/chunks/2prg50nyxhd0_.js +0 -1
  639. package/.next/standalone/packages/console/.next/static/chunks/2rl754q2x339f.js +0 -1
  640. package/.next/standalone/packages/console/.next/static/chunks/2x_shz1upn2oi.js +0 -1
  641. package/.next/standalone/packages/console/.next/static/chunks/2xli-100dinmp.js +0 -1
  642. package/.next/standalone/packages/console/.next/static/chunks/3-dxt127ediq-.js +0 -1
  643. package/.next/standalone/packages/console/.next/static/chunks/308ap36uxw87y.js +0 -1
  644. package/.next/standalone/packages/console/.next/static/chunks/36p__5trrhe2z.js +0 -1
  645. package/.next/standalone/packages/console/.next/static/chunks/38apellmoht8h.js +0 -1
  646. package/.next/standalone/packages/console/.next/static/chunks/38m23vcd1_u5i.js +0 -1
  647. package/.next/standalone/packages/console/.next/static/chunks/3de33oyyxuiv9.js +0 -1
  648. package/.next/standalone/packages/console/.next/static/chunks/3gkbshhf6rusu.js +0 -1
  649. package/.next/standalone/packages/console/.next/static/chunks/3hi4swa3z-hby.js +0 -1
  650. package/.next/standalone/packages/console/.next/static/chunks/3k61es128845f.js +0 -1
  651. package/.next/standalone/packages/console/.next/static/chunks/3l_z58wbwf7v6.js +0 -1
  652. package/.next/standalone/packages/console/.next/static/chunks/3lwa1pmekf5yn.js +0 -1
  653. package/.next/standalone/packages/console/.next/static/chunks/3nkqw06zkp9-v.js +0 -1
  654. package/.next/standalone/packages/console/.next/static/chunks/3op57o5tmo836.js +0 -1
  655. package/.next/standalone/packages/console/.next/static/chunks/3su35xz056zu0.js +0 -1
  656. package/.next/standalone/packages/console/.next/static/chunks/3wqzb_30qmu4l.js +0 -1
  657. package/.next/standalone/packages/console/.next/static/chunks/40kwaybl7nu8j.js +0 -1
  658. package/.next/standalone/packages/console/.next/static/chunks/41sjts3oeho4o.js +0 -1
  659. package/.next/standalone/packages/console/.next/static/chunks/41t0n1c_xovg1.js +0 -1
  660. /package/.next/standalone/packages/console/.next/static/{xh_6szRQLXv1U5hRaPsHB → rUtCidyfjHa_ABLuy5oG9}/_buildManifest.js +0 -0
  661. /package/.next/standalone/packages/console/.next/static/{xh_6szRQLXv1U5hRaPsHB → rUtCidyfjHa_ABLuy5oG9}/_clientMiddlewareManifest.js +0 -0
  662. /package/.next/standalone/packages/console/.next/static/{xh_6szRQLXv1U5hRaPsHB → rUtCidyfjHa_ABLuy5oG9}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[71915,a=>{"use strict";var b=a.i(87924),c=a.i(65913),d=a.i(50944),e=a.i(24173),f=a.i(40392),g=a.i(50808),h=a.i(39353),i=a.i(76166),j=a.i(45469);let k={argo:"You turn it on or off.",rules:"Applying rules turns it off; applying none turns it on again."};function l({rows:a,error:c,onRetry:d,isTurning:e,turnError:m,onViewerReadChange:n}){let o;return o=void 0!==c?(0,b.jsx)(f.InlineError,{title:"Couldn’t read the built-in rules",description:c,onRetry:d}):void 0===a?(0,b.jsx)(g.LoadingSkeleton,{variant:"list",rows:3,label:"Loading the built-in rules"}):(0,b.jsx)("ul",{className:"flex flex-col divide-y divide-border",children:a.map(a=>(0,b.jsxs)("li",{"data-testid":"network-built-in-rule",className:"flex items-start justify-between gap-3 py-2 first:pt-0 last:pb-0",children:[(0,b.jsxs)("div",{className:"flex min-w-0 flex-col gap-0.5",children:[(0,b.jsx)("span",{className:"text-body font-medium","data-testid":"network-built-in-rule-name",children:a.name}),(0,b.jsxs)("span",{className:"text-meta text-muted-foreground",children:[a.meaning," ","never"===a.turnedBy?null:k[a.turnedBy]]})]}),"argo"===a.turnedBy?(0,b.jsx)(j.Switch,{checked:a.isOn,disabled:e,"aria-label":`${a.name}: ${a.isOn?"on":"off"}`,"data-testid":"network-built-in-viewer-read",onCheckedChange:a=>{n(a)}}):(0,b.jsx)(i.Badge,{variant:"outline","data-testid":"network-built-in-rule-state",children:"never"===a.turnedBy?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h.Lock,{"aria-hidden":!0}),"Never off"]}):a.isOn?"On":"Off"})]},a.key))}),(0,b.jsxs)("section",{"aria-labelledby":"network-built-in","data-testid":"network-built-in",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsx)("h2",{id:"network-built-in",className:"text-body font-semibold",children:"Built-in rules"}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"The fleet’s own rules, beside yours and the declared ones. They hold before any rule below."}),o,void 0===m?null:(0,b.jsx)(f.InlineError,{variant:"field",title:"Couldn’t turn the viewer reading",description:m})]})}var m=a.i(18783),n=a.i(93817),o=a.i(72131),p=a.i(56757),q=a.i(2811);let r=p.z.enum(["messages:send","messages:receive","messages:force","messages:resend","fleet:read","fleet:commission","fleet:manage","crew:assign","crew:run","labels:define","labels:assign","fleet:network","fleet:on-behalf","fleet:person","fleet:owner","fleet:explain","fleet:connect","labels:any","fleet:verify","scopes:declare","scopes:grant"]),s=["messages","fleet","crew","labels","scopes"],t="[a-z][a-z0-9-]{0,31}";RegExp(`^${t}$`);let u=RegExp(`^${t}:${t}$`),v=p.z.string().regex(u,"A scope is <namespace>:<action>").refine(a=>{var b;return b=a.slice(0,a.indexOf(":")),!s.some(a=>a===b)||r.safeParse(a).success},"No such core scope");p.z.enum(["messages:resend","fleet:read","fleet:commission","fleet:manage","crew:assign","crew:run","labels:define","labels:assign","fleet:network","fleet:on-behalf","fleet:person","fleet:owner","fleet:explain","fleet:connect","labels:any","fleet:verify"]),p.z.enum(["operator","agent","viewer","person","app"]),p.z.enum(["agent","person","app"]),p.z.enum(["DEVICE","CLOUD","SERVER","OTHER"]),p.z.enum(["awaitingCrew","crewed","retired"]),p.z.enum(["ship","type"]),p.z.enum(["pending","received","handed","acknowledged","handled","notHandled","undeliverable","dismissed","abandoned"]),p.z.enum(["FleetInitialised","ShipCommissioned","OwnerSet","OwnerChanged","ShipClaimed","LeaseRevoked","CredentialRevoked","StartingPromptIssued","OperatorPasswordReset","MessageAccepted","LeasePushed","DeliveryReceived","DeliveryHanded","DeliveryAcknowledged","DeliveryHandled","DeliveryNotHandled","DeliveryOverdue","DeliveryUndeliverable","DeliveryReturned","ShipRetired","DeliveryAbandoned","DeliveryDismissed","ShipRenamed","ShipReported","StatementSet","TurnReported","SignInTicketIssued","FleetLimitsChanged","ViewerSessionStarted","CrewRequested","CrewRequestRemoved","CrewAssigned","CrewStatusChanged","CrewRequestExplained","CrewRequestGivenBack","LabelDefined","LabelValuesChanged","LabelRetired","LabelAssigned","LabelUnassigned","LabelDeleted","WorktreeClearRequested","WorktreeCleared","WorktreeClearRemoved","NetworkRulesSet","NetworkRulesDeclared","NetworkRulesDraftSaved","NetworkRulesDraftDiscarded","NetworkPluginRegistered","NetworkPluginUnregistered","BuiltInRuleChanged","ScopesDeclared","ScopesChanged","PluginConnected","PluginDisconnected","VerifiedFactsSet","VerifiedFactsRemoved"]);let w=p.z.string().min(1).max(128).brand();p.z.object({iss:p.z.string(),aud:(0,q.idSchema)("fleet"),sub:w,org:p.z.string().min(1),scope:p.z.string(),group:p.z.array(p.z.string()),person_ship:(0,q.idSchema)("ship").optional(),iat:p.z.number(),exp:p.z.number()}).transform((a,b)=>{let c=a.scope.split(" ").filter(a=>""!==a),d=p.z.array(v).safeParse(c);return d.success?{issuer:a.iss,fleetId:a.aud,accountId:a.sub,organisationId:a.org,scopes:d.data,groupValues:a.group,personShipId:a.person_ship??null,issuedAt:new Date(1e3*a.iat),endsAt:new Date(1e3*a.exp)}:(b.addIssue({code:"custom",message:"scope holds a malformed or unknown scope",path:["scope"]}),p.z.NEVER)});let x=p.z.string(),y=p.z.object({id:(0,q.idSchema)("labelValue"),value:p.z.string()}),z=p.z.object({labelId:(0,q.idSchema)("label"),key:p.z.string(),valueId:(0,q.idSchema)("labelValue"),value:p.z.string()});p.z.object({valueIds:p.z.array((0,q.idSchema)("labelValue")).optional()}).optional(),p.z.object({key:x,values:p.z.array(x)}),p.z.object({labelId:(0,q.idSchema)("label"),values:p.z.array(y)}),p.z.object({labelId:(0,q.idSchema)("label"),values:p.z.array(x)}),p.z.object({values:p.z.array(y)}),p.z.object({labelId:(0,q.idSchema)("label")}),p.z.object({key:x,value:x}),p.z.object({labelId:(0,q.idSchema)("label"),valueId:(0,q.idSchema)("labelValue")}),p.z.object({shipId:(0,q.idSchema)("ship"),valueId:(0,q.idSchema)("labelValue")}),p.z.object({});let A=p.z.discriminatedUnion("kind",[p.z.object({kind:p.z.literal("ship"),id:(0,q.idSchema)("ship"),name:p.z.string()}),p.z.object({kind:p.z.literal("installation")})]),B=p.z.object({id:(0,q.idSchema)("label"),key:p.z.string(),values:p.z.array(y),owner:A});p.z.array(B);let C=p.z.union([(0,q.idSchema)("labelValue"),p.z.object({labelId:(0,q.idSchema)("label"),value:p.z.enum(["*","#"])}),p.z.object({owner:p.z.union([(0,q.idSchema)("ship"),p.z.enum(["*","#"])])})]);function D(a){return"string"!=typeof a&&"owner"in a}let E=p.z.array(C),F=["send","read","manage"],G=p.z.object({verb:p.z.enum(F),from:E,to:E}),H=p.z.array(G).nullable();p.z.object({rules:H}),p.z.object({savedAgainstVersion:p.z.int().min(0)}),p.z.object({version:p.z.int().min(0)}),p.z.object({applied:p.z.object({rules:H,version:p.z.int().min(0)}),draft:p.z.object({rules:H,savedAt:p.z.iso.datetime(),savedAgainstVersion:p.z.int().min(0)}).nullable()}),p.z.object({});let I=["argo","owner","answer","pluginRead","viewerRead","installation","open"];p.z.object({rule:p.z.enum(I),isOn:p.z.boolean()});let J=p.z.object({rule:p.z.enum(I),isOn:p.z.boolean()});p.z.array(J),p.z.object({version:p.z.int().min(0)}),p.z.object({rules:p.z.array(G)}),p.z.object({rules:p.z.int().min(0)});let K=p.z.discriminatedUnion("kind",[p.z.object({kind:p.z.literal("ship"),shipId:(0,q.idSchema)("ship")}),p.z.object({kind:p.z.literal("installation")})]);p.z.array(p.z.object({declarer:K,rules:p.z.array(G)}));let L=p.z.object({id:(0,q.idSchema)("ship"),name:p.z.string(),labels:p.z.array(z),owner:p.z.object({id:(0,q.idSchema)("ship"),name:p.z.string()}).nullable()}),M=p.z.discriminatedUnion("kind",[L.extend({kind:p.z.literal("ship")}),p.z.object({kind:p.z.literal("account"),accountId:w,labels:p.z.array(z),personShip:p.z.object({id:(0,q.idSchema)("ship"),name:p.z.string()}).nullable()}),p.z.object({kind:p.z.literal("installation")})]),N=p.z.object({id:(0,q.idSchema)("reachRefusal"),at:p.z.iso.datetime(),sender:M,askedBy:L.nullable(),recipient:p.z.discriminatedUnion("kind",[p.z.object({kind:p.z.literal("ship"),ship:L}),p.z.object({kind:p.z.literal("type"),type:p.z.string(),ships:p.z.array(L)})]),verb:p.z.enum(F),settingsVersion:p.z.int().min(1)});p.z.array(N),p.z.object({fromShipId:(0,q.idSchema)("ship"),toShipId:(0,q.idSchema)("ship").optional(),against:p.z.enum(["applied","draft"]).optional()});let O=p.z.union([p.z.object({builtIn:p.z.enum(I)}),p.z.object({rule:p.z.int().min(0)}),p.z.object({declared:K,index:p.z.int().min(0)})]),P=p.z.array(p.z.object({shipId:(0,q.idSchema)("ship"),rule:O}));p.z.object({send:P,read:P,manage:P});let Q=p.z.array(p.z.object({fromShipId:(0,q.idSchema)("ship"),toShipId:(0,q.idSchema)("ship"),rule:O}));p.z.object({send:p.z.object({gained:Q,lost:Q}),read:p.z.object({gained:Q,lost:Q}),manage:p.z.object({gained:Q,lost:Q})});var R=a.i(65230);let S={send:"May send to",read:"May read",manage:"May manage"};function T(a,b){return null===a?{kind:"all-to-all"}:{kind:"rules",rules:a.map(a=>({key:b(),verb:a.verb,from:[...a.from],to:[...a.to]}))}}function U(a){return"all-to-all"===a.kind?null:a.rules.map(a=>({verb:a.verb,from:[...a.from],to:[...a.to]}))}function V(a,b){return b?"rules"===a.kind?a:{kind:"rules",rules:[]}:{kind:"all-to-all"}}function W(a,b){return"all-to-all"===a.kind?a:{kind:"rules",rules:a.rules.map(a=>a.key===b.key?b.change(a):a)}}function X(a,b){return Y(a)===Y(b)}function Y(a){return"string"==typeof a?a:D(a)?`owner=${a.owner}`:`${a.labelId}=${a.value}`}let Z={"*":"Any value","#":"The same value as the other side"},$={"*":"Any owner","#":"The same owner as the other side"};function _(a,b){let c=[],d=[],e=[];for(let f of a){if(D(f)){let a=function(a,b){if("*"===a.owner||"#"===a.owner)return{term:a,text:`owner=${a.owner}`};let c=b.ships.find(b=>b.id===a.owner);return void 0===c?void 0:{term:a,text:`owner=${c.name}`}}(f,b);void 0===a?e.push(f):d.push(a);continue}let a=function(a,b){if("string"==typeof a){let[c]=(0,R.pickedChips)([a],b);return void 0===c?void 0:{labelId:c.labelId,key:c.key,value:c.value,mark:c.mark,ownerName:c.ownerName,term:a}}let c=b.labels.find(b=>b.id===a.labelId);if(void 0===c)return;let d=b.ownerOf.get(c.id);return{labelId:c.id,key:c.key,value:a.value,mark:d?.mark??"ship",ownerName:d?.name??(0,R.labelOwnerName)(c.owner),term:a}}(f,b);void 0===a?e.push(f):c.push(a)}return{chips:c,owners:d,unknown:e}}function aa(a,b){let c=a["from"===b?"to":"from"];return a[b].filter(a=>"string"!=typeof a&&!D(a)&&"#"===a.value&&!c.some(b=>X(b,a)))}function ab(a,b){let c=a=>a.some(a=>D(a)&&"#"===a.owner);return c(a[b])&&!c(a["from"===b?"to":"from"])}var ac=a.i(36501);let ad=[{side:"from",label:"From ships with"},{side:"to",label:"To ships with"}];function ae({declared:a,error:c,onRetry:d,context:h}){let i;return i=void 0!==c?(0,b.jsx)(f.InlineError,{title:"Couldn’t read the declared rules",description:c,onRetry:d}):void 0===a?(0,b.jsx)(g.LoadingSkeleton,{variant:"list",rows:2,label:"Loading the declared rules"}):0===a.length?(0,b.jsx)(e.EmptyState,{variant:"section",title:"Nothing declares rules."}):(0,b.jsx)("ul",{className:"flex flex-col gap-3",children:a.map(a=>(0,b.jsxs)("li",{"data-testid":"network-declared-plugin",className:"flex flex-col gap-2",children:[(0,b.jsxs)("h3",{className:"text-meta font-medium","data-testid":"network-declared-by",children:["Declared by ",a.declaredBy]}),(0,b.jsx)("ul",{className:"flex flex-col gap-2",children:a.rules.map(a=>(0,b.jsx)("li",{"data-testid":"network-declared-rule",className:"flex flex-col gap-2 rounded-md border border-border p-3 sm:flex-row sm:items-start sm:gap-3",children:ad.map(({side:c,label:d})=>(0,b.jsxs)("div",{className:"flex min-w-0 grow basis-0 items-start gap-3",children:["to"===c?(0,b.jsx)("span",{className:"mt-6 shrink-0 text-meta text-muted-foreground","data-testid":"network-declared-rule-verb",children:S[a.verb]}):null,"to"===c?(0,b.jsx)(m.ArrowRight,{"aria-hidden":!0,className:"mt-6 hidden size-(--size-icon) shrink-0 text-muted-foreground sm:block"}):null,(0,b.jsx)(af,{label:d,terms:a[c],context:h,testId:`network-declared-rule-${c}`})]},c))},JSON.stringify(a)))})]},a.declarerId))}),(0,b.jsxs)("section",{"aria-labelledby":"network-declared","data-testid":"network-declared",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsx)("h2",{id:"network-declared",className:"text-body font-semibold",children:"Declared by plugins and the installation"}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"Rules plugins and the installation need on the labels they own. The networking plugin adds them to your rules; while every ship may message every ship, they change nothing. Only their declarer changes them, and switching a plugin off withdraws its rules."}),i]})}function af({label:a,terms:c,context:d,testId:e}){let{chips:f,unknown:g}=_(c,d);return(0,b.jsxs)("div",{className:"flex flex-col gap-1","data-testid":e,children:[(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:a}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[f.length+g.length===0?(0,b.jsx)("span",{className:"text-body",children:"Every ship"}):null,f.map((a,c)=>(0,b.jsxs)(o.Fragment,{children:[0===c?null:(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:"and"}),(0,b.jsx)(ac.LabelChip,{chip:a,testId:`${e}-value`,..."string"==typeof a.term?{}:{meaning:Z[a.term.value]}})]},Y(a.term))),g.map(a=>(0,b.jsxs)("span",{"data-testid":`${e}-unknown`,title:`${Y(a)}: no longer in this fleet`,className:"inline-flex h-5.5 items-center gap-1 rounded-sm border border-tone-attention-border bg-tone-attention-bg px-1.5 text-id text-tone-attention-fg [&_svg]:size-3",children:[(0,b.jsx)(n.CircleAlert,{"aria-hidden":!0}),"A removed label"]},Y(a)))]})]})}var ag=a.i(70840),ah=a.i(52562),ai=a.i(64831);let aj={name:"crosshair",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"22",x2:"18",y1:"12",y2:"12",key:"l9bcsi"}],["line",{x1:"6",x2:"2",y1:"12",y2:"12",key:"13hhkx"}],["line",{x1:"12",x2:"12",y1:"6",y2:"2",key:"10w3f3"}],["line",{x1:"12",x2:"12",y1:"22",y2:"18",key:"15g9kq"}]]};aj.node;let ak=(0,ai.default)(aj);var al=a.i(80487);function am(a){return a.send.map(a=>a.shipId)}let an=-Math.PI/2,ao=2*Math.PI;function ap(a){return Math.round(100*a)/100}var aq=a.i(12068),ar=a.i(94777);let as=["applied","draft"],at={picked:"picked",reached:"may be messaged",unreached:"out of reach"};function au({ships:a,pickedShipId:c,reachableShipIds:d,reachError:e,onPick:g,onRetry:h,against:i="applied",onAgainstChange:j}){var k;let l=(k=void 0===c?void 0:{pickedShipId:c,reachableShipIds:void 0===e?d:void 0},a.map((b,c)=>{var d,e;let f=an+ao*c/a.length,g=1===a.length;return{ship:b,x:g?50:ap(50+38*Math.cos(f)),y:g?50:ap(50+38*Math.sin(f)),mark:(d=b.id,void 0===(e=k)?"none":d===e.pickedShipId?"picked":void 0===e.reachableShipIds?"none":e.reachableShipIds.includes(d)?"reached":"unreached")}})),m=l.find(a=>"picked"===a.mark),n=l.filter(a=>"reached"===a.mark);return(0,b.jsxs)("section",{"aria-labelledby":"network-reach","data-testid":"network-reach",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsx)("h2",{id:"network-reach",className:"text-body font-semibold",children:"Reach"}),(0,b.jsxs)("p",{className:"text-meta text-muted-foreground",children:["draft"===i?"The fleet as the draft would leave it once applied: pick a ship to see which ships the draft lets it message.":"The fleet as it stands now: pick a ship to see which ships the rules let it message."," ","Argo reaches every ship, and every ship reaches argo."]}),void 0===j?null:(0,b.jsx)(ar.Tabs,{value:i,onValueChange:a=>{let b=as.find(b=>b===a);void 0!==b&&j(b)},children:(0,b.jsxs)(ar.TabsList,{"aria-label":"Explain reach against",children:[(0,b.jsx)(ar.TabsTrigger,{value:"applied","data-testid":"network-reach-applied",children:"Applied rules"}),(0,b.jsx)(ar.TabsTrigger,{value:"draft","data-testid":"network-reach-draft",children:"Draft"})]})}),(0,b.jsxs)("div",{className:"relative flex flex-wrap gap-2 md:mx-auto md:block md:aspect-square md:w-full md:max-w-xl","data-testid":"network-reach-graph",children:[void 0===m?null:(0,b.jsx)("svg",{"aria-hidden":!0,viewBox:"0 0 100 100",preserveAspectRatio:"none",className:"pointer-events-none absolute inset-0 hidden size-full md:block",children:n.map(a=>(0,b.jsx)("line",{x1:m.x,y1:m.y,x2:a.x,y2:a.y,vectorEffect:"non-scaling-stroke",className:"stroke-muted-foreground",strokeWidth:1.5},a.ship.id))}),l.map(a=>(0,b.jsx)(av,{node:a,onPick:()=>{g("picked"===a.mark?void 0:a.ship.id)}},a.ship.id))]}),void 0===e?(0,b.jsx)("p",{className:"text-body",role:"status","data-testid":"network-reach-summary",children:function(a){let b=a.find(a=>"picked"===a.mark);if(void 0===b)return"Pick a ship to see which ships it may message.";let c=a.length-1,d=a.filter(a=>"reached"===a.mark).map(a=>a.ship.name);return a.every(a=>"picked"===a.mark||"none"===a.mark)?0===c?`${b.ship.name} is the only ship of the fleet.`:`Finding the ships ${b.ship.name} may message…`:d.length===c?`${b.ship.name} may message every other ship (${String(c)}).`:0===d.length?`${b.ship.name} may message no other ship.`:`${b.ship.name} may message ${String(d.length)} of ${String(c)} ships: ${d.join(", ")}.`}(l)}):(0,b.jsx)(f.InlineError,{title:"Couldn’t explain this ship’s reach",description:e,onRetry:h})]})}function av({node:a,onPick:c}){let{ship:d,mark:e}=a;return(0,b.jsx)(aq.Button,{size:"sm",variant:"secondary","aria-pressed":"picked"===e,"aria-label":"none"===e?d.name:`${d.name}, ${at[e]}`,icon:function(a){switch(a){case"picked":return(0,b.jsx)(ak,{"aria-hidden":!0});case"reached":return(0,b.jsx)(ah.Check,{"aria-hidden":!0});case"unreached":return(0,b.jsx)(ag.Ban,{"aria-hidden":!0});case"none":return}}(e),"data-testid":"network-reach-ship","data-mark":e,style:{left:`${String(a.x)}%`,top:`${String(a.y)}%`},className:(0,al.classNames)("md:absolute md:-translate-x-1/2 md:-translate-y-1/2","picked"===e&&"bg-accent ring-2 ring-ring","unreached"===e&&"opacity-45"),onClick:c,children:d.name})}var aw=a.i(59613),ax=a.i(2374);let ay={apply:{title:"Apply the draft?",description:"Every send, read and manage is checked against the draft from now on, and the rules before it are gone.",action:"Apply draft"},discard:{title:"Discard the draft?",description:"The draft is gone; the applied rules stay as they are.",action:"Discard draft"}};function az({draft:a,appliedVersion:c,isApplying:d,applyError:e,onApply:g,isDiscarding:h,discardError:i,onDiscard:j}){let[k,l]=(0,o.useState)(null),m=d||h;return(0,b.jsxs)("section",{"aria-labelledby":"network-rules-apply","data-testid":"network-rules-apply",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsx)("h2",{id:"network-rules-apply",className:"text-body font-semibold",children:"Apply"}),null===a?(0,b.jsx)("p",{className:"text-meta text-muted-foreground","data-testid":"network-rules-apply-state",children:"No draft: the applied rules are the ones above. Save a draft to apply it."}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("p",{className:"text-body","data-testid":"network-rules-apply-state",children:["A draft is saved. Every send, read and manage is checked against the applied rules, at version ",c,", until it is applied."]}),a.savedAgainstVersion===c?null:(0,b.jsxs)("p",{className:"text-meta text-muted-foreground","data-testid":"network-rules-apply-moved",children:["The settings moved from version ",a.savedAgainstVersion," since the draft was saved."]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(aq.Button,{variant:"primary",isLoading:d,disabled:h,"data-testid":"network-rules-apply-open",onClick:()=>{l("apply")},children:"Apply draft"}),(0,b.jsx)(aq.Button,{variant:"ghost",isLoading:h,disabled:d,"data-testid":"network-rules-discard-open",onClick:()=>{l("discard")},children:"Discard draft"})]})]}),void 0===e?null:(0,b.jsx)(f.InlineError,{variant:"field",title:"Couldn’t apply the draft",description:e}),void 0===i?null:(0,b.jsx)(f.InlineError,{variant:"field",title:"Couldn’t discard the draft",description:i}),(0,b.jsx)(aw.AlertDialog,{open:null!==k,onOpenChange:a=>{a||m||l(null)},children:null===k?null:(0,b.jsxs)(aw.AlertDialogContent,{"data-testid":`network-rules-${k}-dialog`,className:ax.dialogSurface.phoneSheet,children:[(0,b.jsxs)(aw.AlertDialogHeader,{children:[(0,b.jsx)(aw.AlertDialogTitle,{children:ay[k].title}),(0,b.jsx)(aw.AlertDialogDescription,{children:ay[k].description})]}),(0,b.jsxs)(aw.AlertDialogFooter,{children:[(0,b.jsx)(aw.AlertDialogClose,{render:(0,b.jsx)(aq.Button,{disabled:m}),children:"Cancel"}),(0,b.jsx)(aq.Button,{variant:"apply"===k?"primary":"destructive",isLoading:m,"data-testid":`network-rules-${k}-confirm`,onClick:()=>{l(null),"apply"===k?g():j()},children:ay[k].action})]})]})})]})}let aA={argo:"argo",owner:"Owner",answer:"Answer",pluginRead:"Connected plugins read",viewerRead:"Viewer reads",installation:"Installation manages",open:"Open"};function aB(a){switch(a.rule){case"argo":return{key:a.rule,name:aA[a.rule],meaning:"argo sends to, reads and manages every ship, and every ship reaches argo.",isOn:a.isOn,turnedBy:"never"};case"owner":return{key:a.rule,name:aA[a.rule],meaning:"A ship’s owner sends to, reads and manages the ships it owns.",isOn:a.isOn,turnedBy:"never"};case"answer":return{key:a.rule,name:aA[a.rule],meaning:"A ship may always answer the sender of a message it received.",isOn:a.isOn,turnedBy:"never"};case"pluginRead":return{key:a.rule,name:aA[a.rule],meaning:"A plugin argo connected reads every ship, whatever the rules.",isOn:a.isOn,turnedBy:"never"};case"viewerRead":return{key:a.rule,name:aA[a.rule],meaning:"The viewer reads every ship.",isOn:a.isOn,turnedBy:"argo"};case"installation":return{key:a.rule,name:aA[a.rule],meaning:"The installation manages person ships and the ships they own, so a leaver is always released.",isOn:a.isOn,turnedBy:"never"};case"open":return{key:a.rule,name:aA[a.rule],meaning:"Every ship may send to, read and manage every ship.",isOn:a.isOn,turnedBy:"rules"}}}function aC({changes:a,error:c,onRetry:d}){let e;return e=void 0!==c?(0,b.jsx)(f.InlineError,{title:"Couldn’t read what the draft changes",description:c,onRetry:d}):void 0===a?(0,b.jsx)(g.LoadingSkeleton,{variant:"detail",rows:3,label:"Loading what the draft changes"}):a.every(({gained:a,lost:b})=>0===a.length&&0===b.length)?(0,b.jsx)("p",{className:"text-meta text-muted-foreground","data-testid":"network-draft-changes-none",children:"The draft changes no reach."}):a.filter(({gained:a,lost:b})=>a.length+b.length>0).map(({verb:a,gained:c,lost:d})=>(0,b.jsxs)("div",{className:"flex flex-col gap-2","data-testid":"network-draft-changes-verb",children:[(0,b.jsx)("h3",{className:"text-meta font-semibold",children:S[a]}),(0,b.jsx)(aD,{title:"Gains",rows:c,testId:"network-draft-gained"}),(0,b.jsx)(aD,{title:"Loses",rows:d,testId:"network-draft-lost"})]},a)),(0,b.jsxs)("section",{"aria-labelledby":"network-draft-changes","data-testid":"network-draft-changes",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsx)("h2",{id:"network-draft-changes",className:"text-body font-semibold",children:"What the draft changes"}),e]})}function aD({title:a,rows:c,testId:d}){return 0===c.length?null:(0,b.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,b.jsxs)("p",{className:"text-meta text-muted-foreground",children:[a," ",c.length," ",1===c.length?"pair":"pairs"]}),(0,b.jsx)("ul",{className:"flex flex-col gap-1",children:c.map(a=>(0,b.jsxs)("li",{"data-testid":d,className:"flex flex-wrap items-center gap-x-2 text-body",children:[(0,b.jsx)("span",{children:a.from}),(0,b.jsx)(m.ArrowRight,{"aria-label":"to",className:"size-4 text-muted-foreground"}),(0,b.jsx)("span",{children:a.to}),(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:a.rule})]},a.key))})]})}var aE=a.i(3512),aF=a.i(51675),aG=a.i(48136),aH=a.i(87005),aI=a.i(74215),aJ=a.i(19721),aK=a.i(38246),aL=a.i(60275);let aM=(0,aJ.default)(async()=>{},{loadableGenerated:{modules:[59068]},ssr:!1});function aN({label:a,picked:c,owners:d,ownerChoices:e,unknown:f,groups:g,max:h,isDisabled:i,problem:j,onAdd:k,onRemove:l,testId:m,popoverTestId:p}){let[q,r]=(0,o.useState)(!1),[s,t]=(0,o.useState)(!1),u=c.length+d.length+f.length,v=new Set(d.map(a=>Y(a.term))),w=[...["*","#"].map(a=>({term:{owner:a},text:$[a]})),...e.map(a=>({term:{owner:a.shipId},text:a.name}))];return(0,b.jsxs)("div",{className:"flex flex-col gap-1","data-testid":m,children:[(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:a}),(0,b.jsxs)("div",{className:"flex min-h-(--size-control-sm) flex-wrap items-center gap-1.5",children:[0===u?(0,b.jsx)("span",{className:"text-body",children:"Every ship"}):null,c.map((a,c)=>(0,b.jsxs)(o.Fragment,{children:[0===c?null:(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:"and"}),(0,b.jsx)(ac.LabelChip,{chip:a,testId:`${m}-value`,..."string"==typeof a.term?{}:{meaning:Z[a.term.value]},...i?{}:{onRemove:()=>{l(a.term)}}})]},Y(a.term))),d.map((a,d)=>(0,b.jsxs)(o.Fragment,{children:[0===d&&0===c.length?null:(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:"and"}),(0,b.jsx)(aO,{owner:a,testId:`${m}-owner`,...!0===i?{}:{onRemove:()=>{l(a.term)}}})]},Y(a.term))),f.map(a=>(0,b.jsxs)("span",{"data-testid":`${m}-unknown`,title:`${Y(a)}: no longer in this fleet`,className:"inline-flex h-5.5 items-center gap-1 rounded-sm border border-tone-attention-border bg-tone-attention-bg px-1.5 text-id text-tone-attention-fg [&_svg]:size-3",children:[(0,b.jsx)(n.CircleAlert,{"aria-hidden":!0}),"string"!=typeof a&&"owner"in a?"A removed owner":"A removed label",!0===i?null:(0,b.jsx)("button",{type:"button","aria-label":"string"!=typeof a&&"owner"in a?"Remove the removed owner":"Remove the removed label",onClick:()=>{l(a)},className:"-mr-1 ml-0.5 inline-flex size-4 items-center justify-center rounded-xs hover:bg-accent focus-visible:outline-2 focus-visible:outline-ring",children:(0,b.jsx)(aI.X,{"aria-hidden":!0})})]},Y(a))),u>=h?null:(0,b.jsxs)(aL.Popover,{open:q,onOpenChange:r,children:[(0,b.jsx)(aL.PopoverTrigger,{render:(0,b.jsx)(aq.Button,{type:"button",variant:"ghost",size:"xs",icon:(0,b.jsx)(aE.Plus,{}),disabled:i,"data-testid":`${m}-add`}),children:"Add label"}),(0,b.jsxs)(aL.PopoverContent,{align:"start",sideOffset:6,className:"w-80 p-2","data-testid":p,children:[(0,b.jsx)("span",{className:"block px-2 pt-1 pb-2 text-body font-medium",children:a}),(0,b.jsx)(aM,{groups:g,pickedValueIds:c.flatMap(a=>"string"==typeof a.term?[a.term]:[]),onPick:a=>{r(!1),k(a)},terms:{picked:c.flatMap(a=>"string"==typeof a.term?[]:[a.term]),onPick:a=>{r(!1),k(a)}}}),(0,b.jsxs)("p",{className:"mt-2 flex items-center justify-between gap-2 border-t border-border px-2 pt-2 text-meta text-muted-foreground",children:["All must hold. * is any value, # the same as the other side.",(0,b.jsx)(aK.default,{href:"/labels",className:"font-medium text-foreground hover:underline",children:"Manage labels"})]})]})]}),u>=h?null:(0,b.jsxs)(aL.Popover,{open:s,onOpenChange:t,children:[(0,b.jsx)(aL.PopoverTrigger,{render:(0,b.jsx)(aq.Button,{type:"button",variant:"ghost",size:"xs",icon:(0,b.jsx)(aE.Plus,{}),disabled:i,"data-testid":`${m}-owner-add`}),children:"Add owner"}),(0,b.jsxs)(aL.PopoverContent,{align:"start",sideOffset:6,className:"w-72 p-2","data-testid":`${p}-owner`,children:[(0,b.jsxs)("span",{className:"block px-2 pt-1 pb-2 text-body font-medium",children:[a," the owner"]}),(0,b.jsx)("ul",{className:"flex flex-col",children:w.map(a=>(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button",disabled:v.has(Y(a.term)),"data-testid":`${m}-owner-option`,onClick:()=>{t(!1),k(a.term)},className:"flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-body hover:bg-accent focus-visible:outline-2 focus-visible:outline-ring disabled:text-muted-foreground disabled:hover:bg-transparent",children:[(0,b.jsx)(aH.UserRound,{"aria-hidden":!0,className:"size-(--size-icon) shrink-0 text-muted-foreground"}),a.text]})},Y(a.term)))}),(0,b.jsx)("p",{className:"mt-2 border-t border-border px-2 pt-2 text-meta text-muted-foreground",children:"An owner is argo or a person’s ship. # is the same owner as the other side."})]})]})]}),void 0===j?null:(0,b.jsx)("p",{role:"status",className:"text-meta text-tone-attention-fg","data-testid":`${m}-problem`,children:j}),0===f.length?null:(0,b.jsx)("p",{role:"alert",className:"text-meta text-tone-attention-fg",children:"A label or owner here was removed from the fleet: this side matches no ship until you remove it."})]})}function aO({owner:a,onRemove:c,testId:d}){let{owner:e}=a.term,f="*"===e||"#"===e?`${a.text}. ${$[e]}`:`${a.text}: ships it owns`;return(0,b.jsxs)("span",{role:"group","aria-label":f,title:f,"data-testid":d,className:"inline-flex h-5.5 max-w-full min-w-0 shrink-0 items-center gap-1 rounded-sm border border-border bg-secondary px-1.5 font-mono text-id whitespace-nowrap text-foreground [&_svg]:size-3 [&_svg]:shrink-0 [&_svg]:text-muted-foreground",children:[(0,b.jsx)(aH.UserRound,{"aria-hidden":!0}),(0,b.jsxs)("span",{className:"truncate",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:"owner="}),(0,b.jsx)("span",{className:"font-medium",children:a.text.slice(6)})]}),void 0===c?null:(0,b.jsx)("button",{type:"button","aria-label":`Remove ${a.text}`,onClick:c,className:"-mr-1 ml-0.5 inline-flex size-4 items-center justify-center rounded-xs text-muted-foreground hover:bg-accent hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring",children:(0,b.jsx)(aI.X,{"aria-hidden":!0})})]})}let aP=[{side:"from",label:"From ships with"},{side:"to",label:"To ships with"}],aQ=()=>crypto.randomUUID();function aR({rules:a,context:c,limits:d,isSaving:e,saveError:g,savedNote:h,onSave:i}){let[j,k]=(0,o.useState)(()=>T(a,aQ)),l=(0,R.filterGroupsOf)(c),n=c.ships.filter(a=>("operator"===a.kind||"person"===a.kind)&&"retired"!==a.status).map(a=>({shipId:a.id,name:a.name})),p=JSON.stringify(U(j))!==JSON.stringify(a);return(0,b.jsxs)("section",{"aria-labelledby":"network-rules","data-testid":"network-rules",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsx)("h2",{id:"network-rules",className:"text-body font-semibold",children:"Rules"}),"all-to-all"===j.kind?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("p",{className:"text-body","data-testid":"network-rules-state",children:"No rules: every ship may send to, read and manage every ship."}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"With rules, a ship may send to, read or manage another only when a rule of that verb or a built-in rule allows it."}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(aq.Button,{variant:p?"secondary":"primary",icon:(0,b.jsx)(aE.Plus,{"aria-hidden":!0}),disabled:e,"data-testid":"network-rules-on",onClick:()=>{k(V(j,!0))},children:"Set rules"}),p?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(aq.Button,{variant:"primary",isLoading:e,"data-testid":"network-rules-save",onClick:()=>{i(null)},children:"Save draft"}),(0,b.jsx)(aq.Button,{disabled:e,"data-testid":"network-rules-discard",onClick:()=>{k(T(a,aQ))},children:"Discard changes"})]}):null]})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("p",{className:"text-body","data-testid":"network-rules-state",children:0===j.rules.length?"No rule allows anything yet: once saved, only the built-in rules hold.":"A ship may send to, read or manage another only when a rule of that verb or a built-in rule allows it."}),0===j.rules.length?null:(0,b.jsx)("ul",{className:"flex flex-col gap-2",children:j.rules.map((a,f)=>(0,b.jsxs)("li",{"data-testid":"network-rule",className:"flex flex-col gap-2 rounded-md border border-border p-3 sm:flex-row sm:items-start sm:gap-3",children:[aP.map(({side:g,label:h})=>{let i,o=_(a[g],c);return(0,b.jsxs)("div",{className:"flex min-w-0 grow basis-0 items-start gap-3",children:["to"===g?(0,b.jsxs)("div",{className:"flex shrink-0 flex-col gap-1",children:[(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:"Verb"}),(0,b.jsxs)(aG.Select,{items:S,value:a.verb,disabled:e,onValueChange:b=>{var c;F.some(a=>a===b)&&k(W(j,{key:(c={rule:a.key,verb:b}).rule,change:a=>({...a,verb:c.verb})}))},children:[(0,b.jsx)(aG.SelectTrigger,{"aria-label":`Verb of rule ${String(f+1)}`,"data-testid":"network-rule-verb",size:"sm",children:(0,b.jsx)(aG.SelectValue,{})}),(0,b.jsx)(aG.SelectContent,{children:F.map(a=>(0,b.jsx)(aG.SelectItem,{value:a,children:S[a]},a))})]})]}):null,"to"===g?(0,b.jsx)(m.ArrowRight,{"aria-hidden":!0,className:"mt-6 hidden size-(--size-icon) shrink-0 text-muted-foreground sm:block"}):null,(0,b.jsx)(aN,{label:h,picked:o.chips,owners:o.owners,ownerChoices:n,unknown:o.unknown,groups:l,max:d.selectorMax,isDisabled:e,...void 0===(i=function(a,b){let[c]=aa(a,b.side);if(void 0===c)return ab(a,b.side)?"owner=# needs owner=# on the other side: # matches the same owner there.":void 0;let d=b.context.labels.find(a=>a.id===c.labelId)?.key??c.labelId;return`${d}=# needs ${d}=# on the other side: # matches the same value there.`}(a,{side:g,context:c}))?{}:{problem:i},testId:`network-rule-${g}`,popoverTestId:"network-rule-popover",onAdd:b=>{var c;k(W(j,{key:(c={rule:a.key,side:g,term:b,limits:d}).rule,change:a=>{let b=a[c.side];return b.some(a=>X(a,c.term))||b.length>=c.limits.selectorMax?a:{...a,[c.side]:[...b,c.term]}}}))},onRemove:b=>{var c;k(W(j,{key:(c={rule:a.key,side:g,term:b}).rule,change:a=>({...a,[c.side]:a[c.side].filter(a=>!X(a,c.term))})}))}})]},g)}),(0,b.jsx)(aq.Button,{variant:"ghost",size:"xs",icon:(0,b.jsx)(aF.Trash2,{"aria-hidden":!0}),disabled:e,"aria-label":`Remove rule ${String(f+1)}`,"data-testid":"network-rule-remove",onClick:()=>{var b;k((b=a.key,"all-to-all"===j.kind?j:{kind:"rules",rules:j.rules.filter(a=>a.key!==b)}))}})]},a.key))}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[j.rules.length>=d.rulesMax?null:(0,b.jsx)(aq.Button,{size:"sm",icon:(0,b.jsx)(aE.Plus,{"aria-hidden":!0}),disabled:e,"data-testid":"network-rules-add",onClick:()=>{var a;k((a={newKey:aQ,limits:d},"all-to-all"===j.kind||j.rules.length>=a.limits.rulesMax?j:{kind:"rules",rules:[...j.rules,{key:a.newKey(),verb:"send",from:[],to:[]}]}))},children:"Add rule"}),(0,b.jsxs)("span",{className:"text-meta text-muted-foreground tabular-nums","data-testid":"network-rules-count",children:[j.rules.length," of ",d.rulesMax," rules"]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2 border-t border-border pt-3",children:[(0,b.jsx)(aq.Button,{variant:"primary",isLoading:e,disabled:!p||"rules"===j.kind&&j.rules.some(a=>aa(a,"from").length+aa(a,"to").length>0||ab(a,"from")||ab(a,"to")),"data-testid":"network-rules-save",onClick:()=>{i(U(j))},children:"Save draft"}),p?(0,b.jsx)(aq.Button,{disabled:e,"data-testid":"network-rules-discard",onClick:()=>{k(T(a,aQ))},children:"Discard changes"}):null,(0,b.jsx)(aq.Button,{variant:"ghost",className:"ml-auto",disabled:e,"data-testid":"network-rules-off",onClick:()=>{k(V(j,!1))},children:"Remove all rules"})]})]}),void 0===g?null:(0,b.jsx)(f.InlineError,{variant:"field",title:"Couldn’t save the rules",description:g}),void 0===h||p?null:(0,b.jsx)("p",{role:"status",className:"text-meta text-muted-foreground","data-testid":"network-rules-note",children:h})]})}function aS(a){switch(a.kind){case"ship":return a.name;case"account":return`Account ${a.accountId}`;case"installation":return"The installation"}}var aT=a.i(72872);function aU({refusals:a,error:c,onRetry:d,context:h,now:i}){let j;return j=void 0!==c?(0,b.jsx)(f.InlineError,{title:"Couldn’t read the refusals",description:c,onRetry:d}):void 0===a?(0,b.jsx)(g.LoadingSkeleton,{variant:"list",rows:3,label:"Loading the refusals"}):0===a.length?(0,b.jsx)(e.EmptyState,{variant:"section",title:"No send has been refused."}):(0,b.jsx)("ol",{className:"flex flex-col gap-2","data-testid":"network-refusals-list",children:a.map(a=>(0,b.jsx)(aV,{refusal:a,context:h,now:i},a.id))}),(0,b.jsxs)("section",{"aria-labelledby":"network-refusals","data-testid":"network-refusals",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsx)("h2",{id:"network-refusals",className:"text-body font-semibold",children:"Refusals"}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"The sends the rules refused, newest first, with both ships’ labels as they were then. The sender was told only that its send was refused."}),j]})}function aV({refusal:a,context:c,now:d}){let e=new Date(a.at),{recipient:f}=a,g="ship"===f.kind?[f.ship]:f.ships;return(0,b.jsxs)("li",{"data-testid":"network-refusal",className:"flex flex-col gap-2 rounded-md border border-border px-3 py-2.5",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-baseline justify-between gap-x-3 gap-y-0.5",children:[(0,b.jsx)("p",{className:"text-body font-medium",children:function(a){let{sender:b,recipient:c}=a,d=`${aS(b)} tried to ${"ship"===b.kind?"message":"reach"}`;switch(c.kind){case"ship":return`${d} ${c.ship.name}.`;case"type":return`${d} the type ${c.type}: ${(0,R.listed)(c.ships.map(a=>a.name))}.`}}(a)}),(0,b.jsx)("time",{dateTime:a.at,title:(0,aT.fullDateTime)(e),className:"text-meta text-muted-foreground tabular-nums",children:(0,aT.relativeTime)(e,d)})]}),(0,b.jsxs)("dl",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(aW,{side:"From",ship:{name:aS(a.sender),labels:"installation"===a.sender.kind?[]:a.sender.labels},context:c}),g.map(a=>(0,b.jsx)(aW,{side:"To",ship:a,context:c},a.id))]}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:`Refused by network settings version ${String(a.settingsVersion)}.`})]})}function aW({side:a,ship:c,context:d}){let e=(0,R.chipsOf)(c,d);return(0,b.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1",children:[(0,b.jsxs)("dt",{className:"text-meta text-muted-foreground",children:[a," ",(0,b.jsx)("span",{className:"font-medium text-foreground",children:c.name})]}),(0,b.jsx)("dd",{className:"flex min-w-0 flex-wrap items-center gap-1",children:0===e.length?(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:"No labels"}):e.map(a=>(0,b.jsx)(ac.LabelChip,{chip:a,testId:"network-refusal-label"},a.valueId))})]})}var aX=a.i(91003),aY=a.i(38023),aZ=a.i(65563),a$=a.i(1851),a_=a.i(90146),a0=a.i(67336),a1=a.i(10023),a2=a.i(70025),a3=a.i(33217),a4=a.i(37927),a5=a.i(14499);function a6(){let a=(0,a5.useTRPC)(),b=(0,a4.useQueryClient)();return async()=>{await Promise.all([b.invalidateQueries({queryKey:a.fleet.networkRules.queryKey()}),b.invalidateQueries({queryKey:a.fleet.networkRulesDraftChanges.queryKey()}),b.invalidateQueries({queryKey:a.fleet.explainReach.pathKey()})])}}var a7=a.i(68450),a8=a.i(42871);function a9(a,b="applied"){let c=new URLSearchParams([...void 0===a?[]:[["reach",a]],..."draft"===b?[["against","draft"]]:[]]).toString();return""===c?"/network":`/network?${c}`}var ba=a.i(10572);a.s(["NetworkPageFor",0,function({pickedShipId:a,against:h}){var i,j,k,m;let n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E=(0,d.useRouter)(),G=(0,a7.useNow)(),H=(0,aY.useConsoleFrame)(),I=(0,a1.useNeedsAttention)(),J=(0,a0.useLiveFleet)(),K=(0,aZ.useAccess)().canEditNetwork,L=(o=(0,a5.useTRPC)(),(0,a3.useQuery)(o.fleet.networkRules.queryOptions(void 0,{enabled:K}))),M=void 0!==L.data&&null!==L.data.draft,N=M?h:"applied",O=(i=K&&M,p=(0,a5.useTRPC)(),(0,a3.useQuery)(p.fleet.networkRulesDraftChanges.queryOptions(void 0,{enabled:i}))),P=(0,a_.useLabelContext)(),Q=(0,a_.useFleetSnapshot)(),R=(j=K?a:void 0,q=(0,a5.useTRPC)(),(0,a3.useQuery)({...q.fleet.explainReach.queryOptions(void 0===j?a8.skipToken:{fromShipId:j,against:N}),select:am})),S=(r=(0,a5.useTRPC)(),(0,a3.useQuery)(r.fleet.reachRefusals.queryOptions(void 0,{enabled:K}))),T=(s=(0,a5.useTRPC)(),(0,a3.useQuery)(s.fleet.declaredNetworkRules.queryOptions(void 0,{enabled:K}))),U=(t=(0,a5.useTRPC)(),(0,a3.useQuery)(t.fleet.builtInRules.queryOptions(void 0,{enabled:K}))),V=(u=(0,a5.useTRPC)(),v=(0,a4.useQueryClient)(),{setViewerRead:a=>{w.mutate({rule:"viewerRead",isOn:a})},isPending:(w=(0,a2.useMutation)(u.fleet.setBuiltInRule.mutationOptions({onSuccess:()=>v.invalidateQueries({queryKey:u.fleet.builtInRules.queryKey()})}))).isPending,error:w.error?.message}),W=(x=(0,a5.useTRPC)(),y=a6(),(0,a2.useMutation)(x.fleet.saveNetworkRulesDraft.mutationOptions({onSuccess:y}))),X=(z=(0,a5.useTRPC)(),A=(0,a4.useQueryClient)(),B=a6(),(0,a2.useMutation)(z.fleet.applyNetworkRules.mutationOptions({onSuccess:async()=>{await Promise.all([B(),A.invalidateQueries({queryKey:z.fleet.builtInRules.queryKey()})])}}))),Y=(C=(0,a5.useTRPC)(),D=a6(),(0,a2.useMutation)(C.fleet.discardNetworkRulesDraft.mutationOptions({onSuccess:D}))),{networkRulesMax:Z,shipLabelsMax:$}=(0,a$.useConsoleConstants)();if((0,ba.useSignInWhenSessionEnds)([I.error,J.error]),K)if(L.isError)n=(0,b.jsx)(f.InlineError,{title:"Couldn’t read the network",description:L.error.message,onRetry:()=>{L.refetch()}});else if(void 0===L.data||void 0===P||void 0===Q.data)n=(0,b.jsx)(g.LoadingSkeleton,{variant:"detail",rows:4,label:"Loading the network"});else{let c,d,e;n=(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(l,{rows:void 0===U.data?void 0:U.data.map(aB),error:U.error?.message,onRetry:()=>{U.refetch()},isTurning:V.isPending,turnError:V.error,onViewerReadChange:V.setViewerRead}),(0,b.jsx)(aR,{rules:(L.data.draft??L.data.applied).rules,context:P,limits:{rulesMax:Z,selectorMax:$},isSaving:W.isPending,saveError:W.error?.message,savedNote:void 0===W.data?void 0:"Draft saved. Nothing changes until it is applied.",onSave:a=>{W.mutate({rules:a})}},JSON.stringify(L.data.draft??L.data.applied)),null===L.data.draft?null:(0,b.jsx)(aC,{changes:void 0===O.data?void 0:(k=O.data,c=new Map(Q.data.map(a=>[a.id,a.name])),d=a=>a.map(({fromShipId:a,toShipId:b,rule:d})=>({key:`${a}>${b}`,from:c.get(a)??a,to:c.get(b)??b,rule:function(a,b){if("builtIn"in a)return`Built-in: ${aA[a.builtIn]}`;if("rule"in a)return`Rule ${String(a.rule+1)}`;let c="installation"===a.declared.kind?"the installation":b.get(a.declared.shipId)??a.declared.shipId;return`Declared by ${c}, rule ${String(a.index+1)}`}(d,c)})).sort((a,b)=>a.from.localeCompare(b.from)||a.to.localeCompare(b.to)),F.map(a=>({verb:a,gained:d(k[a].gained),lost:d(k[a].lost)}))),error:O.error?.message,onRetry:()=>{O.refetch()}}),(0,b.jsx)(az,{draft:L.data.draft,appliedVersion:L.data.applied.version,isApplying:X.isPending,applyError:X.error?.message,onApply:()=>{X.mutate({version:L.data.applied.version})},isDiscarding:Y.isPending,discardError:Y.error?.message,onDiscard:()=>{Y.mutate()}}),(0,b.jsx)(ae,{declared:void 0===T.data?void 0:(m=T.data,e=new Map(Q.data.map(a=>[a.id,a.name])),m.filter(({rules:a})=>a.length>0).map(({declarer:a,rules:b})=>"installation"===a.kind?{declarerId:"installation",declaredBy:"the installation",rules:b}:{declarerId:a.shipId,declaredBy:e.get(a.shipId)??a.shipId,rules:b}).sort((a,b)=>a.declaredBy.localeCompare(b.declaredBy))),error:T.error?.message,onRetry:()=>{T.refetch()},context:P}),(0,b.jsx)(au,{ships:Q.data.filter(a=>"retired"!==a.status&&"viewer"!==a.kind).map(a=>({id:a.id,name:a.name,isOperator:"operator"===a.kind})).sort((a,b)=>Number(b.isOperator)-Number(a.isOperator)||a.name.localeCompare(b.name)),pickedShipId:a,reachableShipIds:R.data,reachError:R.error?.message,onPick:a=>{E.replace(a9(a,N),{scroll:!1})},against:N,...M?{onAgainstChange:b=>{E.replace(a9(a,b),{scroll:!1})}}:{},onRetry:()=>{R.refetch()}}),(0,b.jsx)(aU,{refusals:S.data,error:S.error?.message,onRetry:()=>{S.refetch()},context:P,now:G})]})}else n=(0,b.jsx)(e.EmptyState,{icon:(0,b.jsx)(c.Network,{"aria-hidden":!0}),title:"Only a session holding fleet:network sees the network rules"});return(0,b.jsx)(aX.ListPage,{...H,title:"Network",description:"Who may send to, read or manage whom. The fleet checks the applied rules on every send; a draft changes nothing until it is applied.",live:J.live,children:n})}],71915)}];
1
+ module.exports=[71915,a=>{"use strict";var b=a.i(87924),c=a.i(65913),d=a.i(50944),e=a.i(24173),f=a.i(40392),g=a.i(50808),h=a.i(39353),i=a.i(33274),j=a.i(45469);let k={argo:"You turn it on or off.",rules:"Applying rules turns it off; applying none turns it on again."};function l({rows:a,error:c,onRetry:d,isTurning:e,turnError:m,onViewerReadChange:n}){let o;return o=void 0!==c?(0,b.jsx)(f.InlineError,{title:"Couldn’t read the built-in rules",description:c,onRetry:d}):void 0===a?(0,b.jsx)(g.LoadingSkeleton,{variant:"list",rows:3,label:"Loading the built-in rules"}):(0,b.jsx)("ul",{className:"flex flex-col divide-y divide-border",children:a.map(a=>(0,b.jsxs)("li",{"data-testid":"network-built-in-rule",className:"flex items-start justify-between gap-3 py-2 first:pt-0 last:pb-0",children:[(0,b.jsxs)("div",{className:"flex min-w-0 flex-col gap-0.5",children:[(0,b.jsx)("span",{className:"text-body font-medium","data-testid":"network-built-in-rule-name",children:a.name}),(0,b.jsxs)("span",{className:"text-meta text-muted-foreground",children:[a.meaning," ","never"===a.turnedBy?null:k[a.turnedBy]]})]}),"argo"===a.turnedBy?(0,b.jsx)(j.Switch,{checked:a.isOn,disabled:e,"aria-label":`${a.name}: ${a.isOn?"on":"off"}`,"data-testid":"network-built-in-viewer-read",onCheckedChange:a=>{n(a)}}):(0,b.jsx)(i.Badge,{variant:"outline","data-testid":"network-built-in-rule-state",children:"never"===a.turnedBy?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h.Lock,{"aria-hidden":!0}),"Never off"]}):a.isOn?"On":"Off"})]},a.key))}),(0,b.jsxs)("section",{"aria-labelledby":"network-built-in","data-testid":"network-built-in",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsx)("h2",{id:"network-built-in",className:"text-body font-semibold",children:"Built-in rules"}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"The fleet’s own rules, beside yours and the declared ones. They hold before any rule below."}),o,void 0===m?null:(0,b.jsx)(f.InlineError,{variant:"field",title:"Couldn’t turn the viewer reading",description:m})]})}var m=a.i(18783),n=a.i(93817),o=a.i(72131),p=a.i(56757),q=a.i(2811);let r=p.z.enum(["messages:send","messages:receive","messages:force","messages:resend","fleet:read","fleet:commission","fleet:manage","crew:assign","crew:run","labels:define","labels:assign","fleet:network","fleet:on-behalf","fleet:person","fleet:owner","fleet:explain","fleet:connect","labels:any","fleet:verify","scopes:declare","scopes:grant"]),s=["messages","fleet","crew","labels","scopes"],t="[a-z][a-z0-9-]{0,31}";RegExp(`^${t}$`);let u=RegExp(`^${t}:${t}$`),v=p.z.string().regex(u,"A scope is <namespace>:<action>").refine(a=>{var b;return b=a.slice(0,a.indexOf(":")),!s.some(a=>a===b)||r.safeParse(a).success},"No such core scope");p.z.enum(["messages:resend","fleet:read","fleet:commission","fleet:manage","crew:assign","crew:run","labels:define","labels:assign","fleet:network","fleet:on-behalf","fleet:person","fleet:owner","fleet:explain","fleet:connect","labels:any","fleet:verify"]),p.z.enum(["operator","agent","viewer","person","app","plugin"]),p.z.enum(["agent","person","app","plugin"]),p.z.enum(["DEVICE","CLOUD","SERVER","OTHER"]),p.z.enum(["awaitingCrew","crewed","retired"]),p.z.enum(["ship","type"]),p.z.enum(["pending","received","handed","acknowledged","handled","notHandled","undeliverable","dismissed","abandoned"]),p.z.enum(["FleetInitialised","ShipCommissioned","OwnerSet","OwnerChanged","ShipClaimed","LeaseRevoked","CredentialRevoked","StartingPromptIssued","OperatorPasswordReset","OperatorLoginSet","MessageAccepted","LeasePushed","DeliveryReceived","DeliveryHanded","DeliveryAcknowledged","DeliveryHandled","DeliveryNotHandled","DeliveryOverdue","DeliveryUndeliverable","DeliveryReturned","ShipRetired","DeliveryAbandoned","DeliveryDismissed","ShipRenamed","ShipReported","StatementSet","TurnReported","SignInTicketIssued","FleetLimitsChanged","ViewerSessionStarted","CrewRequested","CrewRequestRemoved","CrewAssigned","CrewStatusChanged","CrewRequestExplained","CrewRequestGivenBack","LabelDefined","LabelValuesChanged","LabelRetired","LabelAssigned","LabelUnassigned","LabelDeleted","WorktreeClearRequested","WorktreeCleared","WorktreeClearRemoved","NetworkRulesSet","NetworkRulesDeclared","NetworkRulesDraftSaved","NetworkRulesDraftDiscarded","NetworkPluginRegistered","NetworkPluginUnregistered","BuiltInRuleChanged","ScopesDeclared","ScopesChanged","PluginConnected","PluginDisconnected","VerifiedFactsSet","VerifiedFactsRemoved"]);let w=p.z.string().min(1).max(128).brand();p.z.object({iss:p.z.string(),aud:(0,q.idSchema)("fleet"),sub:w,org:p.z.string().min(1),scope:p.z.string(),group:p.z.array(p.z.string()),person_ship:(0,q.idSchema)("ship").optional(),argo:p.z.boolean().optional(),iat:p.z.number(),exp:p.z.number()}).transform((a,b)=>{let c=a.scope.split(" ").filter(a=>""!==a),d=p.z.array(v).safeParse(c);return d.success?{issuer:a.iss,fleetId:a.aud,accountId:a.sub,organisationId:a.org,scopes:d.data,groupValues:a.group,personShipId:a.person_ship??null,isArgoAllowed:a.argo??!1,issuedAt:new Date(1e3*a.iat),endsAt:new Date(1e3*a.exp)}:(b.addIssue({code:"custom",message:"scope holds a malformed or unknown scope",path:["scope"]}),p.z.NEVER)});let x=p.z.string(),y=p.z.object({id:(0,q.idSchema)("labelValue"),value:p.z.string()}),z=p.z.object({labelId:(0,q.idSchema)("label"),key:p.z.string(),valueId:(0,q.idSchema)("labelValue"),value:p.z.string()});p.z.object({valueIds:p.z.array((0,q.idSchema)("labelValue")).optional()}).optional(),p.z.object({key:x,values:p.z.array(x)}),p.z.object({labelId:(0,q.idSchema)("label"),values:p.z.array(y)}),p.z.object({labelId:(0,q.idSchema)("label"),values:p.z.array(x)}),p.z.object({values:p.z.array(y)}),p.z.object({labelId:(0,q.idSchema)("label")}),p.z.object({key:x,value:x}),p.z.object({labelId:(0,q.idSchema)("label"),valueId:(0,q.idSchema)("labelValue")}),p.z.object({shipId:(0,q.idSchema)("ship"),valueId:(0,q.idSchema)("labelValue")}),p.z.object({});let A=p.z.discriminatedUnion("kind",[p.z.object({kind:p.z.literal("ship"),id:(0,q.idSchema)("ship"),name:p.z.string()}),p.z.object({kind:p.z.literal("installation")})]),B=p.z.object({id:(0,q.idSchema)("label"),key:p.z.string(),values:p.z.array(y),owner:A});p.z.array(B);let C=p.z.union([(0,q.idSchema)("labelValue"),p.z.object({labelId:(0,q.idSchema)("label"),value:p.z.enum(["*","#"])}),p.z.object({owner:p.z.union([(0,q.idSchema)("ship"),p.z.enum(["*","#"])])})]);function D(a){return"string"!=typeof a&&"owner"in a}let E=p.z.array(C),F=["send","read","manage"],G=p.z.object({verb:p.z.enum(F),from:E,to:E}),H=p.z.array(G).nullable();p.z.object({rules:H}),p.z.object({savedAgainstVersion:p.z.int().min(0)}),p.z.object({version:p.z.int().min(0)}),p.z.object({applied:p.z.object({rules:H,version:p.z.int().min(0)}),draft:p.z.object({rules:H,savedAt:p.z.iso.datetime(),savedAgainstVersion:p.z.int().min(0)}).nullable()}),p.z.object({});let I=["argo","owner","answer","pluginRead","viewerRead","installation","open"];p.z.object({rule:p.z.enum(I),isOn:p.z.boolean()});let J=p.z.object({rule:p.z.enum(I),isOn:p.z.boolean()});p.z.array(J),p.z.object({version:p.z.int().min(0)}),p.z.object({rules:p.z.array(G)}),p.z.object({rules:p.z.int().min(0)});let K=p.z.discriminatedUnion("kind",[p.z.object({kind:p.z.literal("ship"),shipId:(0,q.idSchema)("ship")}),p.z.object({kind:p.z.literal("installation")})]);p.z.array(p.z.object({declarer:K,rules:p.z.array(G)}));let L=p.z.object({id:(0,q.idSchema)("ship"),name:p.z.string(),labels:p.z.array(z),owner:p.z.object({id:(0,q.idSchema)("ship"),name:p.z.string()}).nullable()}),M=p.z.discriminatedUnion("kind",[L.extend({kind:p.z.literal("ship")}),p.z.object({kind:p.z.literal("account"),accountId:w,labels:p.z.array(z),personShip:p.z.object({id:(0,q.idSchema)("ship"),name:p.z.string()}).nullable()}),p.z.object({kind:p.z.literal("installation")})]),N=p.z.object({id:(0,q.idSchema)("reachRefusal"),at:p.z.iso.datetime(),sender:M,askedBy:L.nullable(),recipient:p.z.discriminatedUnion("kind",[p.z.object({kind:p.z.literal("ship"),ship:L}),p.z.object({kind:p.z.literal("type"),type:p.z.string(),ships:p.z.array(L)})]),verb:p.z.enum(F),settingsVersion:p.z.int().min(1)});p.z.array(N),p.z.object({fromShipId:(0,q.idSchema)("ship"),toShipId:(0,q.idSchema)("ship").optional(),against:p.z.enum(["applied","draft"]).optional()});let O=p.z.union([p.z.object({builtIn:p.z.enum(I)}),p.z.object({rule:p.z.int().min(0)}),p.z.object({declared:K,index:p.z.int().min(0)})]),P=p.z.array(p.z.object({shipId:(0,q.idSchema)("ship"),rule:O}));p.z.object({send:P,read:P,manage:P});let Q=p.z.array(p.z.object({fromShipId:(0,q.idSchema)("ship"),toShipId:(0,q.idSchema)("ship"),rule:O}));p.z.object({send:p.z.object({gained:Q,lost:Q}),read:p.z.object({gained:Q,lost:Q}),manage:p.z.object({gained:Q,lost:Q})});var R=a.i(65230);let S={send:"May send to",read:"May read",manage:"May manage"};function T(a,b){return null===a?{kind:"all-to-all"}:{kind:"rules",rules:a.map(a=>({key:b(),verb:a.verb,from:[...a.from],to:[...a.to]}))}}function U(a){return"all-to-all"===a.kind?null:a.rules.map(a=>({verb:a.verb,from:[...a.from],to:[...a.to]}))}function V(a,b){return b?"rules"===a.kind?a:{kind:"rules",rules:[]}:{kind:"all-to-all"}}function W(a,b){return"all-to-all"===a.kind?a:{kind:"rules",rules:a.rules.map(a=>a.key===b.key?b.change(a):a)}}function X(a,b){return Y(a)===Y(b)}function Y(a){return"string"==typeof a?a:D(a)?`owner=${a.owner}`:`${a.labelId}=${a.value}`}let Z={"*":"Any value","#":"The same value as the other side"},$={"*":"Any owner","#":"The same owner as the other side"};function _(a,b){let c=[],d=[],e=[];for(let f of a){if(D(f)){let a=function(a,b){if("*"===a.owner||"#"===a.owner)return{term:a,text:`owner=${a.owner}`};let c=b.ships.find(b=>b.id===a.owner);return void 0===c?void 0:{term:a,text:`owner=${c.name}`}}(f,b);void 0===a?e.push(f):d.push(a);continue}let a=function(a,b){if("string"==typeof a){let[c]=(0,R.pickedChips)([a],b);return void 0===c?void 0:{labelId:c.labelId,key:c.key,value:c.value,mark:c.mark,ownerName:c.ownerName,term:a}}let c=b.labels.find(b=>b.id===a.labelId);if(void 0===c)return;let d=b.ownerOf.get(c.id);return{labelId:c.id,key:c.key,value:a.value,mark:d?.mark??"ship",ownerName:d?.name??(0,R.labelOwnerName)(c.owner),term:a}}(f,b);void 0===a?e.push(f):c.push(a)}return{chips:c,owners:d,unknown:e}}function aa(a,b){let c=a["from"===b?"to":"from"];return a[b].filter(a=>"string"!=typeof a&&!D(a)&&"#"===a.value&&!c.some(b=>X(b,a)))}function ab(a,b){let c=a=>a.some(a=>D(a)&&"#"===a.owner);return c(a[b])&&!c(a["from"===b?"to":"from"])}var ac=a.i(36501);let ad=[{side:"from",label:"From ships with"},{side:"to",label:"To ships with"}];function ae({declared:a,error:c,onRetry:d,context:h}){let i;return i=void 0!==c?(0,b.jsx)(f.InlineError,{title:"Couldn’t read the declared rules",description:c,onRetry:d}):void 0===a?(0,b.jsx)(g.LoadingSkeleton,{variant:"list",rows:2,label:"Loading the declared rules"}):0===a.length?(0,b.jsx)(e.EmptyState,{variant:"section",title:"Nothing declares rules."}):(0,b.jsx)("ul",{className:"flex flex-col gap-3",children:a.map(a=>(0,b.jsxs)("li",{"data-testid":"network-declared-plugin",className:"flex flex-col gap-2",children:[(0,b.jsxs)("h3",{className:"text-meta font-medium","data-testid":"network-declared-by",children:["Declared by ",a.declaredBy]}),(0,b.jsx)("ul",{className:"flex flex-col gap-2",children:a.rules.map(a=>(0,b.jsx)("li",{"data-testid":"network-declared-rule",className:"flex flex-col gap-2 rounded-md border border-border p-3 sm:flex-row sm:items-start sm:gap-3",children:ad.map(({side:c,label:d})=>(0,b.jsxs)("div",{className:"flex min-w-0 grow basis-0 items-start gap-3",children:["to"===c?(0,b.jsx)("span",{className:"mt-6 shrink-0 text-meta text-muted-foreground","data-testid":"network-declared-rule-verb",children:S[a.verb]}):null,"to"===c?(0,b.jsx)(m.ArrowRight,{"aria-hidden":!0,className:"mt-6 hidden size-(--size-icon) shrink-0 text-muted-foreground sm:block"}):null,(0,b.jsx)(af,{label:d,terms:a[c],context:h,testId:`network-declared-rule-${c}`})]},c))},JSON.stringify(a)))})]},a.declarerId))}),(0,b.jsxs)("section",{"aria-labelledby":"network-declared","data-testid":"network-declared",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsx)("h2",{id:"network-declared",className:"text-body font-semibold",children:"Declared by plugins and the installation"}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"Rules plugins and the installation need on the labels they own. The networking plugin adds them to your rules; while every ship may message every ship, they change nothing. Only their declarer changes them, and switching a plugin off withdraws its rules."}),i]})}function af({label:a,terms:c,context:d,testId:e}){let{chips:f,unknown:g}=_(c,d);return(0,b.jsxs)("div",{className:"flex flex-col gap-1","data-testid":e,children:[(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:a}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[f.length+g.length===0?(0,b.jsx)("span",{className:"text-body",children:"Every ship"}):null,f.map((a,c)=>(0,b.jsxs)(o.Fragment,{children:[0===c?null:(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:"and"}),(0,b.jsx)(ac.LabelChip,{chip:a,testId:`${e}-value`,..."string"==typeof a.term?{}:{meaning:Z[a.term.value]}})]},Y(a.term))),g.map(a=>(0,b.jsxs)("span",{"data-testid":`${e}-unknown`,title:`${Y(a)}: no longer in this fleet`,className:"inline-flex h-5.5 items-center gap-1 rounded-sm border border-tone-attention-border bg-tone-attention-bg px-1.5 text-id text-tone-attention-fg [&_svg]:size-3",children:[(0,b.jsx)(n.CircleAlert,{"aria-hidden":!0}),"A removed label"]},Y(a)))]})]})}var ag=a.i(70840),ah=a.i(52562),ai=a.i(64831);let aj={name:"crosshair",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"22",x2:"18",y1:"12",y2:"12",key:"l9bcsi"}],["line",{x1:"6",x2:"2",y1:"12",y2:"12",key:"13hhkx"}],["line",{x1:"12",x2:"12",y1:"6",y2:"2",key:"10w3f3"}],["line",{x1:"12",x2:"12",y1:"22",y2:"18",key:"15g9kq"}]]};aj.node;let ak=(0,ai.default)(aj);var al=a.i(31856),am=a.i(83556);function an(a){return a.send.map(a=>a.shipId)}let ao=-Math.PI/2,ap=2*Math.PI;function aq(a){return Math.round(100*a)/100}var ar=a.i(94777);let as=["applied","draft"],at={picked:"picked",reached:"may be messaged",unreached:"out of reach"};function au({ships:a,pickedShipId:c,reachableShipIds:d,reachError:e,onPick:g,onRetry:h,against:i="applied",onAgainstChange:j}){var k;let l=(k=void 0===c?void 0:{pickedShipId:c,reachableShipIds:void 0===e?d:void 0},a.map((b,c)=>{var d,e;let f=ao+ap*c/a.length,g=1===a.length;return{ship:b,x:g?50:aq(50+38*Math.cos(f)),y:g?50:aq(50+38*Math.sin(f)),mark:(d=b.id,void 0===(e=k)?"none":d===e.pickedShipId?"picked":void 0===e.reachableShipIds?"none":e.reachableShipIds.includes(d)?"reached":"unreached")}})),m=l.find(a=>"picked"===a.mark),n=l.filter(a=>"reached"===a.mark);return(0,b.jsxs)("section",{"aria-labelledby":"network-reach","data-testid":"network-reach",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsx)("h2",{id:"network-reach",className:"text-body font-semibold",children:"Reach"}),(0,b.jsxs)("p",{className:"text-meta text-muted-foreground",children:["draft"===i?"The fleet as the draft would leave it once applied: pick a ship to see which ships the draft lets it message.":"The fleet as it stands now: pick a ship to see which ships the rules let it message."," ","Argo reaches every ship, and every ship reaches argo."]}),void 0===j?null:(0,b.jsx)(ar.Tabs,{value:i,onValueChange:a=>{let b=as.find(b=>b===a);void 0!==b&&j(b)},children:(0,b.jsxs)(ar.TabsList,{"aria-label":"Explain reach against",children:[(0,b.jsx)(ar.TabsTrigger,{value:"applied","data-testid":"network-reach-applied",children:"Applied rules"}),(0,b.jsx)(ar.TabsTrigger,{value:"draft","data-testid":"network-reach-draft",children:"Draft"})]})}),(0,b.jsxs)("div",{className:"relative flex flex-wrap gap-2 md:mx-auto md:block md:aspect-square md:w-full md:max-w-xl","data-testid":"network-reach-graph",children:[void 0===m?null:(0,b.jsx)("svg",{"aria-hidden":!0,viewBox:"0 0 100 100",preserveAspectRatio:"none",className:"pointer-events-none absolute inset-0 hidden size-full md:block",children:n.map(a=>(0,b.jsx)("line",{x1:m.x,y1:m.y,x2:a.x,y2:a.y,vectorEffect:"non-scaling-stroke",className:"stroke-muted-foreground",strokeWidth:1.5},a.ship.id))}),l.map(a=>(0,b.jsx)(av,{node:a,onPick:()=>{g("picked"===a.mark?void 0:a.ship.id)}},a.ship.id))]}),void 0===e?(0,b.jsx)("p",{className:"text-body",role:"status","data-testid":"network-reach-summary",children:function(a){let b=a.find(a=>"picked"===a.mark);if(void 0===b)return"Pick a ship to see which ships it may message.";let c=a.length-1,d=a.filter(a=>"reached"===a.mark).map(a=>a.ship.name);return a.every(a=>"picked"===a.mark||"none"===a.mark)?0===c?`${b.ship.name} is the only ship of the fleet.`:`Finding the ships ${b.ship.name} may message…`:d.length===c?`${b.ship.name} may message every other ship (${String(c)}).`:0===d.length?`${b.ship.name} may message no other ship.`:`${b.ship.name} may message ${String(d.length)} of ${String(c)} ships: ${d.join(", ")}.`}(l)}):(0,b.jsx)(f.InlineError,{title:"Couldn’t explain this ship’s reach",description:e,onRetry:h})]})}function av({node:a,onPick:c}){let{ship:d,mark:e}=a;return(0,b.jsx)(al.Button,{size:"sm",variant:"secondary","aria-pressed":"picked"===e,"aria-label":"none"===e?d.name:`${d.name}, ${at[e]}`,icon:function(a){switch(a){case"picked":return(0,b.jsx)(ak,{"aria-hidden":!0});case"reached":return(0,b.jsx)(ah.Check,{"aria-hidden":!0});case"unreached":return(0,b.jsx)(ag.Ban,{"aria-hidden":!0});case"none":return}}(e),"data-testid":"network-reach-ship","data-mark":e,style:{left:`${String(a.x)}%`,top:`${String(a.y)}%`},className:(0,am.classNames)("md:absolute md:-translate-x-1/2 md:-translate-y-1/2","picked"===e&&"bg-accent ring-2 ring-ring","unreached"===e&&"opacity-45"),onClick:c,children:d.name})}var aw=a.i(59613),ax=a.i(71736);let ay={apply:{title:"Apply the draft?",description:"Every send, read and manage is checked against the draft from now on, and the rules before it are gone.",action:"Apply draft"},discard:{title:"Discard the draft?",description:"The draft is gone; the applied rules stay as they are.",action:"Discard draft"}};function az({draft:a,appliedVersion:c,isApplying:d,applyError:e,onApply:g,isDiscarding:h,discardError:i,onDiscard:j}){let[k,l]=(0,o.useState)(null),m=d||h;return(0,b.jsxs)("section",{"aria-labelledby":"network-rules-apply","data-testid":"network-rules-apply",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsx)("h2",{id:"network-rules-apply",className:"text-body font-semibold",children:"Apply"}),null===a?(0,b.jsx)("p",{className:"text-meta text-muted-foreground","data-testid":"network-rules-apply-state",children:"No draft: the applied rules are the ones above. Save a draft to apply it."}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("p",{className:"text-body","data-testid":"network-rules-apply-state",children:["A draft is saved. Every send, read and manage is checked against the applied rules, at version ",c,", until it is applied."]}),a.savedAgainstVersion===c?null:(0,b.jsxs)("p",{className:"text-meta text-muted-foreground","data-testid":"network-rules-apply-moved",children:["The settings moved from version ",a.savedAgainstVersion," since the draft was saved."]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(al.Button,{variant:"primary",isLoading:d,disabled:h,"data-testid":"network-rules-apply-open",onClick:()=>{l("apply")},children:"Apply draft"}),(0,b.jsx)(al.Button,{variant:"ghost",isLoading:h,disabled:d,"data-testid":"network-rules-discard-open",onClick:()=>{l("discard")},children:"Discard draft"})]})]}),void 0===e?null:(0,b.jsx)(f.InlineError,{variant:"field",title:"Couldn’t apply the draft",description:e}),void 0===i?null:(0,b.jsx)(f.InlineError,{variant:"field",title:"Couldn’t discard the draft",description:i}),(0,b.jsx)(aw.AlertDialog,{open:null!==k,onOpenChange:a=>{a||m||l(null)},children:null===k?null:(0,b.jsxs)(aw.AlertDialogContent,{"data-testid":`network-rules-${k}-dialog`,className:ax.dialogSurface.phoneSheet,children:[(0,b.jsxs)(aw.AlertDialogHeader,{children:[(0,b.jsx)(aw.AlertDialogTitle,{children:ay[k].title}),(0,b.jsx)(aw.AlertDialogDescription,{children:ay[k].description})]}),(0,b.jsxs)(aw.AlertDialogFooter,{children:[(0,b.jsx)(aw.AlertDialogClose,{render:(0,b.jsx)(al.Button,{disabled:m}),children:"Cancel"}),(0,b.jsx)(al.Button,{variant:"apply"===k?"primary":"destructive",isLoading:m,"data-testid":`network-rules-${k}-confirm`,onClick:()=>{l(null),"apply"===k?g():j()},children:ay[k].action})]})]})})]})}let aA={argo:"argo",owner:"Owner",answer:"Answer",pluginRead:"Connected plugins read",viewerRead:"Viewer reads",installation:"Installation manages",open:"Open"};function aB(a){switch(a.rule){case"argo":return{key:a.rule,name:aA[a.rule],meaning:"argo sends to, reads and manages every ship, and every ship reaches argo.",isOn:a.isOn,turnedBy:"never"};case"owner":return{key:a.rule,name:aA[a.rule],meaning:"A ship’s owner sends to, reads and manages the ships it owns.",isOn:a.isOn,turnedBy:"never"};case"answer":return{key:a.rule,name:aA[a.rule],meaning:"A ship may always answer the sender of a message it received.",isOn:a.isOn,turnedBy:"never"};case"pluginRead":return{key:a.rule,name:aA[a.rule],meaning:"A plugin argo connected reads every ship, whatever the rules.",isOn:a.isOn,turnedBy:"never"};case"viewerRead":return{key:a.rule,name:aA[a.rule],meaning:"The viewer reads every ship.",isOn:a.isOn,turnedBy:"argo"};case"installation":return{key:a.rule,name:aA[a.rule],meaning:"The installation manages person ships and the ships they own, so a leaver is always released.",isOn:a.isOn,turnedBy:"never"};case"open":return{key:a.rule,name:aA[a.rule],meaning:"Every ship may send to, read and manage every ship.",isOn:a.isOn,turnedBy:"rules"}}}function aC({changes:a,error:c,onRetry:d}){let e;return e=void 0!==c?(0,b.jsx)(f.InlineError,{title:"Couldn’t read what the draft changes",description:c,onRetry:d}):void 0===a?(0,b.jsx)(g.LoadingSkeleton,{variant:"detail",rows:3,label:"Loading what the draft changes"}):a.every(({gained:a,lost:b})=>0===a.length&&0===b.length)?(0,b.jsx)("p",{className:"text-meta text-muted-foreground","data-testid":"network-draft-changes-none",children:"The draft changes no reach."}):a.filter(({gained:a,lost:b})=>a.length+b.length>0).map(({verb:a,gained:c,lost:d})=>(0,b.jsxs)("div",{className:"flex flex-col gap-2","data-testid":"network-draft-changes-verb",children:[(0,b.jsx)("h3",{className:"text-meta font-semibold",children:S[a]}),(0,b.jsx)(aD,{title:"Gains",rows:c,testId:"network-draft-gained"}),(0,b.jsx)(aD,{title:"Loses",rows:d,testId:"network-draft-lost"})]},a)),(0,b.jsxs)("section",{"aria-labelledby":"network-draft-changes","data-testid":"network-draft-changes",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsx)("h2",{id:"network-draft-changes",className:"text-body font-semibold",children:"What the draft changes"}),e]})}function aD({title:a,rows:c,testId:d}){return 0===c.length?null:(0,b.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,b.jsxs)("p",{className:"text-meta text-muted-foreground",children:[a," ",c.length," ",1===c.length?"pair":"pairs"]}),(0,b.jsx)("ul",{className:"flex flex-col gap-1",children:c.map(a=>(0,b.jsxs)("li",{"data-testid":d,className:"flex flex-wrap items-center gap-x-2 text-body",children:[(0,b.jsx)("span",{children:a.from}),(0,b.jsx)(m.ArrowRight,{"aria-label":"to",className:"size-4 text-muted-foreground"}),(0,b.jsx)("span",{children:a.to}),(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:a.rule})]},a.key))})]})}var aE=a.i(3512),aF=a.i(51675),aG=a.i(48136),aH=a.i(87005),aI=a.i(74215),aJ=a.i(19721),aK=a.i(38246),aL=a.i(60275);let aM=(0,aJ.default)(async()=>{},{loadableGenerated:{modules:[59068]},ssr:!1});function aN({label:a,picked:c,owners:d,ownerChoices:e,unknown:f,groups:g,max:h,isDisabled:i,problem:j,onAdd:k,onRemove:l,testId:m,popoverTestId:p}){let[q,r]=(0,o.useState)(!1),[s,t]=(0,o.useState)(!1),u=c.length+d.length+f.length,v=new Set(d.map(a=>Y(a.term))),w=[...["*","#"].map(a=>({term:{owner:a},text:$[a]})),...e.map(a=>({term:{owner:a.shipId},text:a.name}))];return(0,b.jsxs)("div",{className:"flex flex-col gap-1","data-testid":m,children:[(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:a}),(0,b.jsxs)("div",{className:"flex min-h-(--size-control-sm) flex-wrap items-center gap-1.5",children:[0===u?(0,b.jsx)("span",{className:"text-body",children:"Every ship"}):null,c.map((a,c)=>(0,b.jsxs)(o.Fragment,{children:[0===c?null:(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:"and"}),(0,b.jsx)(ac.LabelChip,{chip:a,testId:`${m}-value`,..."string"==typeof a.term?{}:{meaning:Z[a.term.value]},...i?{}:{onRemove:()=>{l(a.term)}}})]},Y(a.term))),d.map((a,d)=>(0,b.jsxs)(o.Fragment,{children:[0===d&&0===c.length?null:(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:"and"}),(0,b.jsx)(aO,{owner:a,testId:`${m}-owner`,...!0===i?{}:{onRemove:()=>{l(a.term)}}})]},Y(a.term))),f.map(a=>(0,b.jsxs)("span",{"data-testid":`${m}-unknown`,title:`${Y(a)}: no longer in this fleet`,className:"inline-flex h-5.5 items-center gap-1 rounded-sm border border-tone-attention-border bg-tone-attention-bg px-1.5 text-id text-tone-attention-fg [&_svg]:size-3",children:[(0,b.jsx)(n.CircleAlert,{"aria-hidden":!0}),"string"!=typeof a&&"owner"in a?"A removed owner":"A removed label",!0===i?null:(0,b.jsx)("button",{type:"button","aria-label":"string"!=typeof a&&"owner"in a?"Remove the removed owner":"Remove the removed label",onClick:()=>{l(a)},className:"-mr-1 ml-0.5 inline-flex size-4 items-center justify-center rounded-xs hover:bg-accent focus-visible:outline-2 focus-visible:outline-ring",children:(0,b.jsx)(aI.X,{"aria-hidden":!0})})]},Y(a))),u>=h?null:(0,b.jsxs)(aL.Popover,{open:q,onOpenChange:r,children:[(0,b.jsx)(aL.PopoverTrigger,{render:(0,b.jsx)(al.Button,{type:"button",variant:"ghost",size:"xs",icon:(0,b.jsx)(aE.Plus,{}),disabled:i,"data-testid":`${m}-add`}),children:"Add label"}),(0,b.jsxs)(aL.PopoverContent,{align:"start",sideOffset:6,className:"w-80 p-2","data-testid":p,children:[(0,b.jsx)("span",{className:"block px-2 pt-1 pb-2 text-body font-medium",children:a}),(0,b.jsx)(aM,{groups:g,pickedValueIds:c.flatMap(a=>"string"==typeof a.term?[a.term]:[]),onPick:a=>{r(!1),k(a)},terms:{picked:c.flatMap(a=>"string"==typeof a.term?[]:[a.term]),onPick:a=>{r(!1),k(a)}}}),(0,b.jsxs)("p",{className:"mt-2 flex items-center justify-between gap-2 border-t border-border px-2 pt-2 text-meta text-muted-foreground",children:["All must hold. * is any value, # the same as the other side.",(0,b.jsx)(aK.default,{href:"/labels",className:"font-medium text-foreground hover:underline",children:"Manage labels"})]})]})]}),u>=h?null:(0,b.jsxs)(aL.Popover,{open:s,onOpenChange:t,children:[(0,b.jsx)(aL.PopoverTrigger,{render:(0,b.jsx)(al.Button,{type:"button",variant:"ghost",size:"xs",icon:(0,b.jsx)(aE.Plus,{}),disabled:i,"data-testid":`${m}-owner-add`}),children:"Add owner"}),(0,b.jsxs)(aL.PopoverContent,{align:"start",sideOffset:6,className:"w-72 p-2","data-testid":`${p}-owner`,children:[(0,b.jsxs)("span",{className:"block px-2 pt-1 pb-2 text-body font-medium",children:[a," the owner"]}),(0,b.jsx)("ul",{className:"flex flex-col",children:w.map(a=>(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button",disabled:v.has(Y(a.term)),"data-testid":`${m}-owner-option`,onClick:()=>{t(!1),k(a.term)},className:"flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-body hover:bg-accent focus-visible:outline-2 focus-visible:outline-ring disabled:text-muted-foreground disabled:hover:bg-transparent",children:[(0,b.jsx)(aH.UserRound,{"aria-hidden":!0,className:"size-(--size-icon) shrink-0 text-muted-foreground"}),a.text]})},Y(a.term)))}),(0,b.jsx)("p",{className:"mt-2 border-t border-border px-2 pt-2 text-meta text-muted-foreground",children:"An owner is argo or a person’s ship. # is the same owner as the other side."})]})]})]}),void 0===j?null:(0,b.jsx)("p",{role:"status",className:"text-meta text-tone-attention-fg","data-testid":`${m}-problem`,children:j}),0===f.length?null:(0,b.jsx)("p",{role:"alert",className:"text-meta text-tone-attention-fg",children:"A label or owner here was removed from the fleet: this side matches no ship until you remove it."})]})}function aO({owner:a,onRemove:c,testId:d}){let{owner:e}=a.term,f="*"===e||"#"===e?`${a.text}. ${$[e]}`:`${a.text}: ships it owns`;return(0,b.jsxs)("span",{role:"group","aria-label":f,title:f,"data-testid":d,className:"inline-flex h-5.5 max-w-full min-w-0 shrink-0 items-center gap-1 rounded-sm border border-border bg-secondary px-1.5 font-mono text-id whitespace-nowrap text-foreground [&_svg]:size-3 [&_svg]:shrink-0 [&_svg]:text-muted-foreground",children:[(0,b.jsx)(aH.UserRound,{"aria-hidden":!0}),(0,b.jsxs)("span",{className:"truncate",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:"owner="}),(0,b.jsx)("span",{className:"font-medium",children:a.text.slice(6)})]}),void 0===c?null:(0,b.jsx)("button",{type:"button","aria-label":`Remove ${a.text}`,onClick:c,className:"-mr-1 ml-0.5 inline-flex size-4 items-center justify-center rounded-xs text-muted-foreground hover:bg-accent hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring",children:(0,b.jsx)(aI.X,{"aria-hidden":!0})})]})}let aP=[{side:"from",label:"From ships with"},{side:"to",label:"To ships with"}],aQ=()=>crypto.randomUUID();function aR({rules:a,context:c,limits:d,isSaving:e,saveError:g,savedNote:h,onSave:i}){let[j,k]=(0,o.useState)(()=>T(a,aQ)),l=(0,R.filterGroupsOf)(c),n=c.ships.filter(a=>("operator"===a.kind||"person"===a.kind)&&"retired"!==a.status).map(a=>({shipId:a.id,name:a.name})),p=JSON.stringify(U(j))!==JSON.stringify(a);return(0,b.jsxs)("section",{"aria-labelledby":"network-rules","data-testid":"network-rules",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsx)("h2",{id:"network-rules",className:"text-body font-semibold",children:"Rules"}),"all-to-all"===j.kind?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("p",{className:"text-body","data-testid":"network-rules-state",children:"No rules: every ship may send to, read and manage every ship."}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"With rules, a ship may send to, read or manage another only when a rule of that verb or a built-in rule allows it."}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(al.Button,{variant:p?"secondary":"primary",icon:(0,b.jsx)(aE.Plus,{"aria-hidden":!0}),disabled:e,"data-testid":"network-rules-on",onClick:()=>{k(V(j,!0))},children:"Set rules"}),p?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(al.Button,{variant:"primary",isLoading:e,"data-testid":"network-rules-save",onClick:()=>{i(null)},children:"Save draft"}),(0,b.jsx)(al.Button,{disabled:e,"data-testid":"network-rules-discard",onClick:()=>{k(T(a,aQ))},children:"Discard changes"})]}):null]})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("p",{className:"text-body","data-testid":"network-rules-state",children:0===j.rules.length?"No rule allows anything yet: once saved, only the built-in rules hold.":"A ship may send to, read or manage another only when a rule of that verb or a built-in rule allows it."}),0===j.rules.length?null:(0,b.jsx)("ul",{className:"flex flex-col gap-2",children:j.rules.map((a,f)=>(0,b.jsxs)("li",{"data-testid":"network-rule",className:"flex flex-col gap-2 rounded-md border border-border p-3 sm:flex-row sm:items-start sm:gap-3",children:[aP.map(({side:g,label:h})=>{let i,o=_(a[g],c);return(0,b.jsxs)("div",{className:"flex min-w-0 grow basis-0 items-start gap-3",children:["to"===g?(0,b.jsxs)("div",{className:"flex shrink-0 flex-col gap-1",children:[(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:"Verb"}),(0,b.jsxs)(aG.Select,{items:S,value:a.verb,disabled:e,onValueChange:b=>{var c;F.some(a=>a===b)&&k(W(j,{key:(c={rule:a.key,verb:b}).rule,change:a=>({...a,verb:c.verb})}))},children:[(0,b.jsx)(aG.SelectTrigger,{"aria-label":`Verb of rule ${String(f+1)}`,"data-testid":"network-rule-verb",size:"sm",children:(0,b.jsx)(aG.SelectValue,{})}),(0,b.jsx)(aG.SelectContent,{children:F.map(a=>(0,b.jsx)(aG.SelectItem,{value:a,children:S[a]},a))})]})]}):null,"to"===g?(0,b.jsx)(m.ArrowRight,{"aria-hidden":!0,className:"mt-6 hidden size-(--size-icon) shrink-0 text-muted-foreground sm:block"}):null,(0,b.jsx)(aN,{label:h,picked:o.chips,owners:o.owners,ownerChoices:n,unknown:o.unknown,groups:l,max:d.selectorMax,isDisabled:e,...void 0===(i=function(a,b){let[c]=aa(a,b.side);if(void 0===c)return ab(a,b.side)?"owner=# needs owner=# on the other side: # matches the same owner there.":void 0;let d=b.context.labels.find(a=>a.id===c.labelId)?.key??c.labelId;return`${d}=# needs ${d}=# on the other side: # matches the same value there.`}(a,{side:g,context:c}))?{}:{problem:i},testId:`network-rule-${g}`,popoverTestId:"network-rule-popover",onAdd:b=>{var c;k(W(j,{key:(c={rule:a.key,side:g,term:b,limits:d}).rule,change:a=>{let b=a[c.side];return b.some(a=>X(a,c.term))||b.length>=c.limits.selectorMax?a:{...a,[c.side]:[...b,c.term]}}}))},onRemove:b=>{var c;k(W(j,{key:(c={rule:a.key,side:g,term:b}).rule,change:a=>({...a,[c.side]:a[c.side].filter(a=>!X(a,c.term))})}))}})]},g)}),(0,b.jsx)(al.Button,{variant:"ghost",size:"xs",icon:(0,b.jsx)(aF.Trash2,{"aria-hidden":!0}),disabled:e,"aria-label":`Remove rule ${String(f+1)}`,"data-testid":"network-rule-remove",onClick:()=>{var b;k((b=a.key,"all-to-all"===j.kind?j:{kind:"rules",rules:j.rules.filter(a=>a.key!==b)}))}})]},a.key))}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[j.rules.length>=d.rulesMax?null:(0,b.jsx)(al.Button,{size:"sm",icon:(0,b.jsx)(aE.Plus,{"aria-hidden":!0}),disabled:e,"data-testid":"network-rules-add",onClick:()=>{var a;k((a={newKey:aQ,limits:d},"all-to-all"===j.kind||j.rules.length>=a.limits.rulesMax?j:{kind:"rules",rules:[...j.rules,{key:a.newKey(),verb:"send",from:[],to:[]}]}))},children:"Add rule"}),(0,b.jsxs)("span",{className:"text-meta text-muted-foreground tabular-nums","data-testid":"network-rules-count",children:[j.rules.length," of ",d.rulesMax," rules"]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2 border-t border-border pt-3",children:[(0,b.jsx)(al.Button,{variant:"primary",isLoading:e,disabled:!p||"rules"===j.kind&&j.rules.some(a=>aa(a,"from").length+aa(a,"to").length>0||ab(a,"from")||ab(a,"to")),"data-testid":"network-rules-save",onClick:()=>{i(U(j))},children:"Save draft"}),p?(0,b.jsx)(al.Button,{disabled:e,"data-testid":"network-rules-discard",onClick:()=>{k(T(a,aQ))},children:"Discard changes"}):null,(0,b.jsx)(al.Button,{variant:"ghost",className:"ml-auto",disabled:e,"data-testid":"network-rules-off",onClick:()=>{k(V(j,!1))},children:"Remove all rules"})]})]}),void 0===g?null:(0,b.jsx)(f.InlineError,{variant:"field",title:"Couldn’t save the rules",description:g}),void 0===h||p?null:(0,b.jsx)("p",{role:"status",className:"text-meta text-muted-foreground","data-testid":"network-rules-note",children:h})]})}function aS(a){switch(a.kind){case"ship":return a.name;case"account":return`Account ${a.accountId}`;case"installation":return"The installation"}}var aT=a.i(72872);function aU({refusals:a,error:c,onRetry:d,context:h,now:i}){let j;return j=void 0!==c?(0,b.jsx)(f.InlineError,{title:"Couldn’t read the refusals",description:c,onRetry:d}):void 0===a?(0,b.jsx)(g.LoadingSkeleton,{variant:"list",rows:3,label:"Loading the refusals"}):0===a.length?(0,b.jsx)(e.EmptyState,{variant:"section",title:"No send has been refused."}):(0,b.jsx)("ol",{className:"flex flex-col gap-2","data-testid":"network-refusals-list",children:a.map(a=>(0,b.jsx)(aV,{refusal:a,context:h,now:i},a.id))}),(0,b.jsxs)("section",{"aria-labelledby":"network-refusals","data-testid":"network-refusals",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsx)("h2",{id:"network-refusals",className:"text-body font-semibold",children:"Refusals"}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"The sends the rules refused, newest first, with both ships’ labels as they were then. The sender was told only that its send was refused."}),j]})}function aV({refusal:a,context:c,now:d}){let e=new Date(a.at),{recipient:f}=a,g="ship"===f.kind?[f.ship]:f.ships;return(0,b.jsxs)("li",{"data-testid":"network-refusal",className:"flex flex-col gap-2 rounded-md border border-border px-3 py-2.5",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-baseline justify-between gap-x-3 gap-y-0.5",children:[(0,b.jsx)("p",{className:"text-body font-medium",children:function(a){let{sender:b,recipient:c}=a,d=`${aS(b)} tried to ${"ship"===b.kind?"message":"reach"}`;switch(c.kind){case"ship":return`${d} ${c.ship.name}.`;case"type":return`${d} the type ${c.type}: ${(0,R.listed)(c.ships.map(a=>a.name))}.`}}(a)}),(0,b.jsx)("time",{dateTime:a.at,title:(0,aT.fullDateTime)(e),className:"text-meta text-muted-foreground tabular-nums",children:(0,aT.relativeTime)(e,d)})]}),(0,b.jsxs)("dl",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(aW,{side:"From",ship:{name:aS(a.sender),labels:"installation"===a.sender.kind?[]:a.sender.labels},context:c}),g.map(a=>(0,b.jsx)(aW,{side:"To",ship:a,context:c},a.id))]}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:`Refused by network settings version ${String(a.settingsVersion)}.`})]})}function aW({side:a,ship:c,context:d}){let e=(0,R.chipsOf)(c,d);return(0,b.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1",children:[(0,b.jsxs)("dt",{className:"text-meta text-muted-foreground",children:[a," ",(0,b.jsx)("span",{className:"font-medium text-foreground",children:c.name})]}),(0,b.jsx)("dd",{className:"flex min-w-0 flex-wrap items-center gap-1",children:0===e.length?(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:"No labels"}):e.map(a=>(0,b.jsx)(ac.LabelChip,{chip:a,testId:"network-refusal-label"},a.valueId))})]})}var aX=a.i(91003),aY=a.i(38023),aZ=a.i(65563),a$=a.i(1851),a_=a.i(90146),a0=a.i(67336),a1=a.i(10023),a2=a.i(70025),a3=a.i(33217),a4=a.i(37927),a5=a.i(14499);function a6(){let a=(0,a5.useTRPC)(),b=(0,a4.useQueryClient)();return async()=>{await Promise.all([b.invalidateQueries({queryKey:a.fleet.networkRules.queryKey()}),b.invalidateQueries({queryKey:a.fleet.networkRulesDraftChanges.queryKey()}),b.invalidateQueries({queryKey:a.fleet.explainReach.pathKey()})])}}var a7=a.i(68450),a8=a.i(42871);function a9(a,b="applied"){let c=new URLSearchParams([...void 0===a?[]:[["reach",a]],..."draft"===b?[["against","draft"]]:[]]).toString();return""===c?"/network":`/network?${c}`}var ba=a.i(10572);a.s(["NetworkPageFor",0,function({pickedShipId:a,against:h}){var i,j,k,m;let n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E=(0,d.useRouter)(),G=(0,a7.useNow)(),H=(0,aY.useConsoleFrame)(),I=(0,a1.useNeedsAttention)(),J=(0,a0.useLiveFleet)(),K=(0,aZ.useAccess)().canEditNetwork,L=(o=(0,a5.useTRPC)(),(0,a3.useQuery)(o.fleet.networkRules.queryOptions(void 0,{enabled:K}))),M=void 0!==L.data&&null!==L.data.draft,N=M?h:"applied",O=(i=K&&M,p=(0,a5.useTRPC)(),(0,a3.useQuery)(p.fleet.networkRulesDraftChanges.queryOptions(void 0,{enabled:i}))),P=(0,a_.useLabelContext)(),Q=(0,a_.useFleetSnapshot)(),R=(j=K?a:void 0,q=(0,a5.useTRPC)(),(0,a3.useQuery)({...q.fleet.explainReach.queryOptions(void 0===j?a8.skipToken:{fromShipId:j,against:N}),select:an})),S=(r=(0,a5.useTRPC)(),(0,a3.useQuery)(r.fleet.reachRefusals.queryOptions(void 0,{enabled:K}))),T=(s=(0,a5.useTRPC)(),(0,a3.useQuery)(s.fleet.declaredNetworkRules.queryOptions(void 0,{enabled:K}))),U=(t=(0,a5.useTRPC)(),(0,a3.useQuery)(t.fleet.builtInRules.queryOptions(void 0,{enabled:K}))),V=(u=(0,a5.useTRPC)(),v=(0,a4.useQueryClient)(),{setViewerRead:a=>{w.mutate({rule:"viewerRead",isOn:a})},isPending:(w=(0,a2.useMutation)(u.fleet.setBuiltInRule.mutationOptions({onSuccess:()=>v.invalidateQueries({queryKey:u.fleet.builtInRules.queryKey()})}))).isPending,error:w.error?.message}),W=(x=(0,a5.useTRPC)(),y=a6(),(0,a2.useMutation)(x.fleet.saveNetworkRulesDraft.mutationOptions({onSuccess:y}))),X=(z=(0,a5.useTRPC)(),A=(0,a4.useQueryClient)(),B=a6(),(0,a2.useMutation)(z.fleet.applyNetworkRules.mutationOptions({onSuccess:async()=>{await Promise.all([B(),A.invalidateQueries({queryKey:z.fleet.builtInRules.queryKey()})])}}))),Y=(C=(0,a5.useTRPC)(),D=a6(),(0,a2.useMutation)(C.fleet.discardNetworkRulesDraft.mutationOptions({onSuccess:D}))),{networkRulesMax:Z,shipLabelsMax:$}=(0,a$.useConsoleConstants)();if((0,ba.useSignInWhenSessionEnds)([I.error,J.error]),K)if(L.isError)n=(0,b.jsx)(f.InlineError,{title:"Couldn’t read the network",description:L.error.message,onRetry:()=>{L.refetch()}});else if(void 0===L.data||void 0===P||void 0===Q.data)n=(0,b.jsx)(g.LoadingSkeleton,{variant:"detail",rows:4,label:"Loading the network"});else{let c,d,e;n=(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(l,{rows:void 0===U.data?void 0:U.data.map(aB),error:U.error?.message,onRetry:()=>{U.refetch()},isTurning:V.isPending,turnError:V.error,onViewerReadChange:V.setViewerRead}),(0,b.jsx)(aR,{rules:(L.data.draft??L.data.applied).rules,context:P,limits:{rulesMax:Z,selectorMax:$},isSaving:W.isPending,saveError:W.error?.message,savedNote:void 0===W.data?void 0:"Draft saved. Nothing changes until it is applied.",onSave:a=>{W.mutate({rules:a})}},JSON.stringify(L.data.draft??L.data.applied)),null===L.data.draft?null:(0,b.jsx)(aC,{changes:void 0===O.data?void 0:(k=O.data,c=new Map(Q.data.map(a=>[a.id,a.name])),d=a=>a.map(({fromShipId:a,toShipId:b,rule:d})=>({key:`${a}>${b}`,from:c.get(a)??a,to:c.get(b)??b,rule:function(a,b){if("builtIn"in a)return`Built-in: ${aA[a.builtIn]}`;if("rule"in a)return`Rule ${String(a.rule+1)}`;let c="installation"===a.declared.kind?"the installation":b.get(a.declared.shipId)??a.declared.shipId;return`Declared by ${c}, rule ${String(a.index+1)}`}(d,c)})).sort((a,b)=>a.from.localeCompare(b.from)||a.to.localeCompare(b.to)),F.map(a=>({verb:a,gained:d(k[a].gained),lost:d(k[a].lost)}))),error:O.error?.message,onRetry:()=>{O.refetch()}}),(0,b.jsx)(az,{draft:L.data.draft,appliedVersion:L.data.applied.version,isApplying:X.isPending,applyError:X.error?.message,onApply:()=>{X.mutate({version:L.data.applied.version})},isDiscarding:Y.isPending,discardError:Y.error?.message,onDiscard:()=>{Y.mutate()}}),(0,b.jsx)(ae,{declared:void 0===T.data?void 0:(m=T.data,e=new Map(Q.data.map(a=>[a.id,a.name])),m.filter(({rules:a})=>a.length>0).map(({declarer:a,rules:b})=>"installation"===a.kind?{declarerId:"installation",declaredBy:"the installation",rules:b}:{declarerId:a.shipId,declaredBy:e.get(a.shipId)??a.shipId,rules:b}).sort((a,b)=>a.declaredBy.localeCompare(b.declaredBy))),error:T.error?.message,onRetry:()=>{T.refetch()},context:P}),(0,b.jsx)(au,{ships:Q.data.filter(a=>"retired"!==a.status&&"viewer"!==a.kind).map(a=>({id:a.id,name:a.name,isOperator:"operator"===a.kind})).sort((a,b)=>Number(b.isOperator)-Number(a.isOperator)||a.name.localeCompare(b.name)),pickedShipId:a,reachableShipIds:R.data,reachError:R.error?.message,onPick:a=>{E.replace(a9(a,N),{scroll:!1})},against:N,...M?{onAgainstChange:b=>{E.replace(a9(a,b),{scroll:!1})}}:{},onRetry:()=>{R.refetch()}}),(0,b.jsx)(aU,{refusals:S.data,error:S.error?.message,onRetry:()=>{S.refetch()},context:P,now:G})]})}else n=(0,b.jsx)(e.EmptyState,{icon:(0,b.jsx)(c.Network,{"aria-hidden":!0}),title:"Only a session holding fleet:network sees the network rules"});return(0,b.jsx)(aX.ListPage,{...H,title:"Network",description:"Who may send to, read or manage whom. The fleet checks the applied rules on every send; a draft changes nothing until it is applied.",live:J.live,children:n})}],71915)}];
2
2
 
3
3
  //# sourceMappingURL=packages_console_app_%28console%29_network_network-page_tsx_0qc3h-9._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[59446,a=>{"use strict";var b=a.i(87924),c=a.i(31247),d=a.i(38246),e=a.i(50944),f=a.i(72131),g=a.i(12068),h=a.i(86002),i=a.i(56987),j=a.i(79520),k=a.i(88931),l=a.i(80487);let m={ok:"border-tone-ok-border bg-tone-ok-bg text-tone-ok-fg",waiting:"border-tone-waiting-border bg-tone-waiting-bg text-tone-waiting-fg",attention:"border-tone-attention-border bg-tone-attention-bg text-tone-attention-fg"};function n({label:a,shortLabel:c,value:e,detail:f,href:g,icon:h,tone:i,testId:j}){return(0,b.jsxs)(d.default,{href:g,"data-testid":j,className:"flex min-w-0 flex-col gap-2 rounded-lg border border-border bg-card px-4.5 py-4 shadow-sm transition-colors duration-(--duration-fast) hover:bg-accent max-sm:gap-1.5 max-sm:rounded-xl max-sm:px-3.5 max-sm:py-3",children:[(0,b.jsxs)("span",{className:"flex items-center justify-between gap-2 text-meta font-medium text-muted-foreground",children:[(0,b.jsx)("span",{className:"max-sm:hidden",children:a}),(0,b.jsx)("span",{className:"sm:hidden",children:c??a}),(0,b.jsx)("span",{className:(0,l.classNames)("flex size-6.5 shrink-0 items-center justify-center rounded-md border max-sm:size-5.5",m[i]),children:(0,b.jsx)(h,{"aria-hidden":!0,className:"size-3.5"})})]}),(0,b.jsx)("span",{className:"text-[28px] leading-none font-semibold tracking-tight tabular-nums text-foreground max-sm:text-2xl",children:e}),(0,b.jsx)("span",{className:"truncate text-meta text-muted-foreground",children:f})]})}var o=a.i(90146),p=a.i(34564),q=a.i(68450),r=a.i(72872);function s(a){return a.filter(a=>"agent"===a.kind&&"retired"!==a.status)}function t(){var a;let c,d,e,f,g=(0,o.useFleetSnapshot)(),h=(0,p.useFleetHealth)(),l=(0,q.useNow)();if(!g.data)return null;let m=(e=(d=(c=s((a={ships:g.data,stuck:h.data?.stuck??[],now:l}).ships)).filter(a=>"awaitingCrew"===a.status)).flatMap(a=>null===a.awaitingCrewSince?[]:[{name:a.name,since:new Date(a.awaitingCrewSince)}]).sort((a,b)=>a.since.getTime()-b.since.getTime())[0],f=a.stuck.map(a=>new Date(a.oldestSince)).sort((a,b)=>a.getTime()-b.getTime())[0],{activeCount:c.length,crewedCount:c.filter(a=>"crewed"===a.status).length,awaitingCount:d.length,longestWait:e&&{name:e.name,wait:(0,r.duration)(e.since,a.now)},oldestStuck:f&&(0,r.duration)(f,a.now)});return 0===m.activeCount?null:(0,b.jsxs)("div",{className:"grid grid-cols-3 gap-4 max-sm:grid-cols-2 max-sm:gap-2.5","data-testid":"overview-metrics",children:[(0,b.jsx)(n,{label:"Ships crewed",shortLabel:"Crewed",value:m.crewedCount,detail:`of ${String(m.activeCount)} active ships`,href:"/?status=crewed",icon:k.UserCheck,tone:"ok",testId:"overview-crewed"}),(0,b.jsx)(n,{label:"Awaiting crew",value:m.awaitingCount,detail:m.longestWait?`Longest wait: ${m.longestWait.name}, ${m.longestWait.wait}`:"Every active ship is crewed",href:"/?status=awaitingCrew",icon:i.CircleDashed,tone:"waiting",testId:"overview-awaiting"}),(0,b.jsx)(n,{label:"Stuck",value:(0,p.stuckCountOf)(h.data)??0,detail:m.oldestStuck?`Deliveries stuck, oldest ${m.oldestStuck}`:"Delivering",href:"/fleet-health",icon:j.OctagonAlert,tone:"attention",testId:"overview-stuck"})]})}var u=a.i(3512),v=a.i(34301),w=a.i(1851),x=a.i(2955),y=a.i(82611),z=a.i(88191),A=a.i(64906),B=a.i(47468),C=a.i(82252),D=a.i(54763),E=a.i(12540),F=a.i(93454);let G=(0,v.lazyDialog)(()=>a.A(59777).then(a=>a.CommissionDialog),a=>a.isOpen),H=(0,v.lazyDialog)(()=>a.A(68359).then(a=>a.StartingPromptDialog),a=>a.isOpen);function I({isOpen:a,onOpenChange:c}){var d;let e,h=(0,o.useFleetSnapshot)(),i=(0,A.useFleetLimits)(),j=(0,B.useHostedAccountUrl)(),k=(0,o.useCommissionShip)(),l=(0,o.useRequestCrew)(),m="connected"===(0,F.useTrierarchPluginConnection)(),n=(0,F.useMachines)(),p=(0,D.useSquadronsConnection)(),q=(0,E.useSquadrons)(),[r,s]=(0,f.useState)(!1),[t,v]=(0,f.useState)(null),J=(0,x.offersOf)(n.data??[]),K=(0,o.useLabelContext)(),{shipLabelsMax:L,fleetScopes:M}=(0,w.useConsoleConstants)(),N=(0,o.useFleetScopes)(),O=void 0===K||void 0===n.data?void 0:(0,y.machineLabelsInputOf)(K,{machines:n.data,shipLabelsMax:L}),P=(0,F.useCrewSettingsCheck)(a&&m?null===t?(0,x.settingsOf)((0,x.defaultValues)(J)):t:void 0),Q=(h.data??[]).filter(a=>"retired"!==a.status),R=(a,b)=>{k.mutate(a,{onSuccess:({shipId:d})=>{c(!1);let e=m&&void 0!==b;e||s(!0),void 0!==b&&l.mutate({shipId:d,settings:b.settings},{onSuccess:()=>{e&&(0,z.showToast)({title:`${a.name} commissioned, crew requested`,description:"The trierarch plugin assigns a trierarch that fits.",tone:"success"})},onError:b=>{(0,z.showToast)({title:`Couldn’t request a crew for ${a.name}`,description:`${b.message} The ship is commissioned; request a crew on its page.`,tone:"error"})}})}})};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(g.Button,{variant:"primary",icon:(0,b.jsx)(u.Plus,{}),"data-testid":"fleet-commission",onClick:()=>{k.reset(),v(null),c(!0)},children:"Commission ship"}),(0,b.jsx)(G,{activeShips:Q,isOpen:a,onOpenChange:c,isPending:k.isPending,error:k.error?.message,shipLimit:(0,C.shipLimitReached)(i.data),accountUrl:j,scopeGroups:void 0===N.data?void 0:(d=N.data,e=new Map(d.filter(({declaredBy:a})=>null===a).flatMap(({scopes:a})=>a.map(({scope:a,description:b})=>[a,b]))),[{title:"Fleet access",namespace:null,scopes:M.flatMap(a=>{let b=e.get(a);return void 0===b?[]:[{scope:a,description:b}]})},...d.flatMap(({namespace:a,declaredBy:b,scopes:c})=>null===b||0===c.length?[]:[{title:b.name,namespace:a,scopes:c.map(({scope:a,description:b})=>({scope:a,description:b}))}])]),...m?{crewRequest:{offers:J,squadrons:"connected"===p?(q.data??[]).filter(a=>"disbanded"!==a.state).map(a=>a.id):void 0,...void 0===O?{}:{machineLabels:O},check:P.data,onSettingsChange:v}}:{},onSubmit:(a,b)=>{let c={...a,idempotencyKey:crypto.randomUUID()};m&&void 0!==b?P.checkNow().catch(()=>void 0).then(a=>{a?.kind!=="refused"&&R(c,b)}).catch(()=>void 0):R(c,b)}}),(0,b.jsx)(H,{shipName:k.variables?.name??"",state:"shown",prompt:k.data?.prompt??void 0,crewLines:k.data?.crewLines??void 0,isOpen:r&&void 0!==k.data,onOpenChange:a=>{a||(s(!1),k.reset())},onConfirm:()=>void 0})]})}var J=a.i(64831);let K={name:"infinity",size:24,node:[["path",{d:"M6 16c5 0 7-8 12-8a4 4 0 0 1 0 8c-5 0-7-8-12-8a4 4 0 1 0 0 8",key:"18ogeb"}]]};K.node;let L=(0,J.default)(K);var M=a.i(74746),N=a.i(98238),O=a.i(23063);let P={ships:{label:"Ships",unit:"ships",Icon:N.Ship},messages:{label:"Messages today",unit:"messages",Icon:M.Send}},Q={below:"bg-primary",at:"bg-tone-waiting-fg",over:"bg-tone-attention-fg"},R={at:"at-limit",over:"over-limit"};function S({kind:a,count:c,limit:d,resetsAt:e}){let{label:f,unit:g,Icon:h}=P[a],i=(0,C.meterState)({count:c,limit:d}),j=R[i],k=(0,C.meterCaption)({count:c,limit:d}),m=null===d?0:0===d?1:Math.min(c/d,1);return(0,b.jsxs)("div",{"data-testid":`limit-meter-${a}`,"data-state":i,className:"flex flex-col gap-2 rounded-lg border border-border bg-card p-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-meta font-medium text-muted-foreground",children:[(0,b.jsx)(h,{"aria-hidden":!0,className:"size-(--size-icon-sm)"}),f]}),void 0===j?null:(0,b.jsx)(O.StatusBadge,{status:j})]}),(0,b.jsxs)("p",{className:"flex items-baseline gap-1.5",children:[(0,b.jsx)("span",{className:"text-metric font-semibold tabular-nums",children:(0,C.meterCount)(c)}),(0,b.jsx)("span",{className:"text-body text-muted-foreground",children:null===d?g:`of ${(0,C.meterCount)(d)} ${g}`})]}),null===d?(0,b.jsxs)("p",{className:"inline-flex items-center gap-1.5 text-meta text-muted-foreground",children:[(0,b.jsx)(L,{"aria-hidden":!0,className:"size-(--size-icon-sm)"}),"No limit"]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{role:"meter","aria-label":`${f}: ${String(c)} of ${String(d)}`,"aria-valuenow":c,"aria-valuemin":0,"aria-valuemax":d,className:"block h-1.5 overflow-hidden rounded-full bg-secondary",children:(0,b.jsx)("span",{className:(0,l.classNames)("block h-full rounded-full","none"===i?void 0:Q[i]),style:{width:`${String(100*m)}%`}})}),(0,b.jsxs)("p",{"data-testid":`limit-meter-${a}-caption`,className:"text-caption text-muted-foreground",children:[k,void 0===e?null:` \xb7 resets at ${(0,C.resetTime)(e)}`]})]})]})}function T(){let a=(0,A.useFleetLimits)().data,c=(0,B.useHostedAccountUrl)();return(0,C.hasLimits)(a)?(0,b.jsxs)("section",{"aria-labelledby":"overview-limits-title","data-testid":"overview-limits",className:"flex flex-col gap-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)("h2",{id:"overview-limits-title",className:"text-body font-semibold",children:"Limits"}),void 0===c?null:(0,b.jsx)("a",{href:c,"data-testid":"overview-limits-view",className:"text-meta font-medium text-primary underline underline-offset-2",children:"View limits"})]}),(0,b.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2",children:[(0,b.jsx)(S,{kind:"ships",count:a.ships.count,limit:a.ships.limit}),(0,b.jsx)(S,{kind:"messages",count:a.dailyMessages.count,limit:a.dailyMessages.limit,resetsAt:a.dailyMessages.resetsAt})]})]}):null}var U=a.i(45065),V=a.i(8219),W=a.i(55681),X=a.i(25039),Y=a.i(71094),Z=a.i(33540);let $={name:"sliders-horizontal",size:24,node:[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]]};$.node;let _=(0,J.default)($);var aa=a.i(87005);let ab=["console","claudeCode","codex","trierarch","plugin","other"],ac={console:"Console",claudeCode:"Claude Code",codex:"Codex",trierarch:"Trierarch",plugin:"Plugin",other:"Other"},ad={"claude-code":"claudeCode",codex:"codex"};function ae(a){return ab.some(b=>b===a)}let af={awaitingCrew:"Awaiting crew",crewed:"Crewed",retired:"Retired"};function ag(a,{column:b,squadronsOf:c}){switch(b){case"ship":return a.name;case"status":return af[a.status];case"report":return"agent"===a.kind&&"crewed"===a.status?a.report?.note??void 0:void 0;case"squadronAndLabels":{let b=c?.get(a.id);if(void 0!==b&&null!==b.role)return b.squadronId;let[d]=a.labels;return void 0===d?void 0:`${d.key}=${d.value}`}case"runsOn":if("crewed"!==a.status||"viewer"===a.kind)return;return"operator"===a.kind?"console":a.harness??void 0;case"seen":return a.lastSeenAt??void 0}}var ah=a.i(6071),ai=a.i(65230),aj=a.i(60271);let ak={query:"",filters:{status:[],crewRequest:[],kind:[],type:[],squadron:[],isRetiredShown:!1,labelValueIds:[]},sort:null},al=new Set;function am(a,b){return 0===a.length||void 0!==b&&a.includes(b)}function an(a,b){return a.kind!==b.kind?"operator"===a.kind?-1:+("operator"===b.kind):0}function ao(a,b){return[...new Set(a.filter(a=>b||"retired"!==a.status).map(a=>a.type))].toSorted((a,b)=>a.localeCompare(b))}function ap(a){return a.filter(a=>"retired"===a.status).length}function aq(a){return[...new Set([...a.values()].map(a=>a.squadronId))].toSorted((a,b)=>a.localeCompare(b))}let ar={crewed:"Crewed",awaitingCrew:"Awaiting crew"};function as(a){return au(a).length+a.labelValueIds.length}function at(a,b){return 0===b.length?void 0:`${a}: ${b.join(", ")}`}function au(a){return[at("Status",a.status.map(a=>ar[a])),at("Crew request",a.crewRequest.map(aj.crewRequestKeyWord)),at("Kind",a.kind.map(a=>ac[a])),at("Type",a.type),at("Squadron",a.squadron),a.isRetiredShown?"Retired shown":void 0].filter(a=>void 0!==a)}var av=a.i(76166),aw=a.i(75297),ax=a.i(45098),ay=a.i(4838),az=a.i(45469),aA=a.i(77339),aB=a.i(24173),aC=a.i(40392),aD=a.i(36501);function aE({chips:a,width:c,testId:e,href:f}){if(0===a.length)return null;let{shown:g,folded:h}=0===c?{shown:[],folded:a}:(0,ai.rowChips)(a,c);return(0,b.jsxs)("span",{"data-testid":e,className:"flex min-w-0 items-center gap-1 overflow-hidden",children:[g.map((a,c)=>(0,b.jsx)(aD.LabelChip,{chip:a,className:0===c?"min-w-0 shrink":void 0},a.valueId)),0===h.length?null:void 0===f?(0,b.jsxs)("span",{title:h.map(ai.chipTitleOf).join("; "),className:"inline-flex h-5.5 shrink-0 items-center rounded-sm bg-secondary px-1.5 text-caption font-medium text-foreground tabular-nums",children:["+",h.length,(0,b.jsx)("span",{className:"sr-only",children:" more labels"})]}):(0,b.jsxs)(d.default,{href:f,title:h.map(ai.chipTitleOf).join("; "),"aria-label":`View ${h.length} more labels`,className:"inline-flex h-5.5 shrink-0 items-center rounded-sm bg-secondary px-1.5 text-caption font-medium text-foreground tabular-nums hover:underline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring",children:["+",h.length]})]})}var aF=a.i(50808);let aG={name:"signal",size:24,node:[["path",{d:"M2 20h.01",key:"4haj6o"}],["path",{d:"M7 20v-4",key:"j294jx"}],["path",{d:"M12 20v-8",key:"i3yub9"}],["path",{d:"M17 20V8",key:"1tkaf5"}],["path",{d:"M22 4v16",key:"sih9yq"}]]};aG.node;let aH=(0,J.default)(aG),aI={name:"signal-low",size:24,node:[["path",{d:"M2 20h.01",key:"4haj6o"}],["path",{d:"M7 20v-4",key:"j294jx"}]]};aI.node;let aJ=(0,J.default)(aI),aK={name:"signal-medium",size:24,node:[["path",{d:"M2 20h.01",key:"4haj6o"}],["path",{d:"M7 20v-4",key:"j294jx"}],["path",{d:"M12 20v-8",key:"i3yub9"}]]};aK.node;let aL=(0,J.default)(aK);a.s([],65156),a.i(65156);var aM=a.i(22050),aN=a.i(24715),aO=a.i(57738),aP=a.i(54662);let aQ=f.createContext(void 0);function aR(a){let b=f.useContext(aQ);if(void 0===b&&!a)throw Error((0,aP.default)(72));return b}var aS=a.i(68536),aT=a.i(54401),aU=a.i(26476),aV=a.i(30116),aW=a.i(14209);function aX(a){return null!=a&&null!=a.clientX}var aY=a.i(38939),aZ=a.i(94552),a$=a.i(84204),a_=a.i(32318),a0=a.i(17498),a1=a.i(7436),a2=a.i(14239),a3=a.i(17017),a4=a.i(51943);let a5={...a3.popupStoreSelectors,disabled:a=>a.disabled,instantType:a=>a.instantType,isInstantPhase:a=>a.isInstantPhase,trackCursorAxis:a=>a.trackCursorAxis,disableHoverablePopup:a=>a.disableHoverablePopup,lastOpenChangeReason:a=>a.openChangeReason,closeOnClick:a=>a.closeOnClick,closeDelay:a=>a.closeDelay,adaptiveOrigin:a=>a.adaptiveOrigin};class a6 extends a0.ReactStore{constructor(a,b,c){const d=new a4.PopupTriggerMap;super(a7(a,d,b,c),a8(d),a5)}setOpen=(a,b)=>{(0,a$.applyPopupOpenChange)(this,a,b,{extraState:{openChangeReason:b.reason}})};cancelPendingOpen(a){this.state.floatingRootContext.dispatchOpenChange(!1,(0,aZ.createChangeEventDetails)(a1.REASONS.triggerPress,a))}}function a7(a,b,c,d=!1){return{...(0,a3.createInitialPopupStoreState)(b,c,d),disabled:!1,instantType:void 0,isInstantPhase:!1,trackCursorAxis:"none",disableHoverablePopup:!1,openChangeReason:null,closeOnClick:!0,closeDelay:0,adaptiveOrigin:void 0,...a}}function a8(a){return{popupRef:f.createRef(),onOpenChange:void 0,onOpenChangeComplete:void 0,triggerElements:a}}let a9=(0,aM.fastComponent)(function(a){let{disabled:c=!1,defaultOpen:d=!1,open:e,disableHoverablePopup:g=!1,trackCursorAxis:h="none",actionsRef:i,onOpenChange:j,onOpenChangeComplete:k,handle:l,triggerId:m,defaultTriggerId:n=null,children:o}=a,p=(0,a$.usePopupRootStore)((a,b)=>new a6({open:d,openProp:e,activeTriggerId:n,triggerIdProp:m},a,b));p.useControlledProp("openProp",e),p.useControlledProp("triggerIdProp",m),p.useContextCallback("onOpenChange",j),p.useContextCallback("onOpenChangeComplete",k);let q=p.useState("open"),r=!c&&q,s=p.useState("activeTriggerId"),t=p.useState("mounted"),u=p.useState("payload");p.useSyncedValues({trackCursorAxis:h,disableHoverablePopup:g,disabled:c}),(0,a$.useImplicitActiveTrigger)(p,{closeOnActiveTriggerUnmount:!0});let{forceUnmount:v,transitionStatus:w}=(0,a$.useOpenStateTransitions)(r,p),x=p.useState("isInstantPhase"),y=p.useState("instantType"),z=p.useState("lastOpenChangeReason"),A=f.useRef(null);(0,aO.useIsoLayoutEffect)(()=>{q&&c&&p.setOpen(!1,(0,aZ.createChangeEventDetails)(a1.REASONS.disabled))},[q,c,p]),(0,aO.useIsoLayoutEffect)(()=>{"ending"===w&&z===a1.REASONS.none||"ending"!==w&&x?("delay"!==y&&(A.current=y),p.set("instantType","delay")):null!==A.current&&(p.set("instantType",A.current),A.current=null)},[w,x,z,y,p]),(0,aO.useIsoLayoutEffect)(()=>{r&&null==s&&p.set("payload",void 0)},[p,s,r]),f.useImperativeHandle(i,()=>({unmount:v,close:()=>p.setOpen(!1,(0,aZ.createChangeEventDetails)(a1.REASONS.imperativeAction))}),[v,p]);let B=r||t||!c&&"none"!==h;return(0,b.jsxs)(aQ.Provider,{value:p,children:[l&&(0,b.jsx)(a$.PopupHandleAttachment,{handle:l,store:p}),B&&(0,b.jsx)(ba,{store:p,disabled:c,trackCursorAxis:h}),"function"==typeof o?o({payload:u}):o]})});function ba({store:a,disabled:b,trackCursorAxis:c}){let d=a.useState("floatingRootContext"),e=(0,aY.useDismiss)(d,{enabled:!b,referencePress:()=>a.select("closeOnClick")}),g=function(a,b={}){let{enabled:c=!0,axis:d="both"}=b,e="rootStore"in a?a.rootStore:a,g=e.useState("open"),h=e.useState("floatingElement"),i=e.useState("domReferenceElement"),j=e.context.dataRef,k=f.useRef(!1),l=f.useRef(null),[m,n]=f.useState(),[o,p]=f.useState([]),q=(0,aT.useStableCallback)(a=>{e.set("positionReference",a)}),r=(0,aT.useStableCallback)((a,b,c)=>{if(!k.current&&(!j.current.openEvent||aX(j.current.openEvent))){var f,g;let h,k,l;e.set("positionReference",(f=c??i,g={x:a,y:b,axis:d,dataRef:j,pointerType:m},h=null,k=null,l=!1,{contextElement:f||void 0,getBoundingClientRect(){let a=f?.getBoundingClientRect()||{width:0,height:0,x:0,y:0},b="x"===g.axis||"both"===g.axis,c="y"===g.axis||"both"===g.axis,d=["mouseenter","mousemove"].includes(g.dataRef.current.openEvent?.type||"")&&"touch"!==g.pointerType,e=a.width,i=a.height,j=a.x,m=a.y;return null==h&&g.x&&b&&(h=a.x-g.x),null==k&&g.y&&c&&(k=a.y-g.y),j-=h||0,m-=k||0,e=0,i=0,!l||d?(e="y"===g.axis?a.width:0,i="x"===g.axis?a.height:0,j=b&&null!=g.x?g.x:j,m=c&&null!=g.y?g.y:m):l&&!d&&(i="x"===g.axis?a.height:i,e="y"===g.axis?a.width:e),l=!0,{width:e,height:i,x:j,y:m,top:m,right:j+e,bottom:m+i,left:j}}}))}}),s=(0,aT.useStableCallback)(a=>{g?l.current||(r(a.clientX,a.clientY,a.currentTarget),p([])):r(a.clientX,a.clientY,a.currentTarget)}),t=(0,aW.isMouseLikePointerType)(m)?h:g;f.useEffect(()=>{if(!c)return void q(i);if(!t)return;function a(){l.current?.(),l.current=null}let b=(0,aU.getWindow)(h);return!j.current.openEvent||aX(j.current.openEvent)?l.current=(0,aS.addEventListener)(b,"mousemove",function(b){let c=(0,aV.getTarget)(b);(0,aV.contains)(h,c)?a():r(b.clientX,b.clientY)}):q(i),a},[t,c,h,j,i,e,r,q,o]),f.useEffect(()=>()=>{e.set("positionReference",null)},[e]),f.useEffect(()=>{c&&!h&&(k.current=!1)},[c,h]),f.useEffect(()=>{!c&&g&&(k.current=!0)},[c,g]);let u=f.useMemo(()=>{function a(a){n(a.pointerType)}return{onPointerDown:a,onPointerEnter:a,onMouseMove:s,onMouseEnter:s}},[s]);return f.useMemo(()=>c?{reference:u,trigger:u}:{},[c,u])}(d,{enabled:!b&&"none"!==c,axis:"none"===c?void 0:c}),h=f.useMemo(()=>(0,a_.mergeProps)(g.reference,e.reference),[g.reference,e.reference]);return(0,a$.usePopupInteractionProps)(a,{activeTriggerProps:h,inactiveTriggerProps:h,popupProps:e.floating??aN.EMPTY_OBJECT}),null}var bb=a.i(36069),bc=a.i(89862),bd=a.i(4478),be=a.i(26184),bf=a.i(97151),bg=a.i(557);let bh=f.createContext(void 0);var bi=a.i(25003),bj=a.i(85252);let bk=f.createContext({hasProvider:!1,timeoutMs:0,delayRef:{current:0},initialDelayRef:{current:0},timeout:new bb.Timeout,currentIdRef:{current:null},currentContextRef:{current:null}});function bl(a){let{children:c,delay:d,timeoutMs:e=0}=a,g=f.useRef(d),h=f.useRef(d),i=f.useRef(null),j=f.useRef(null),k=(0,bb.useTimeout)();return(0,aO.useIsoLayoutEffect)(()=>{if(h.current=d,!i.current){g.current=d;return}g.current={open:(0,bj.getDelay)(g.current,"open"),close:(0,bj.getDelay)(d,"close")}},[d,i,g,h]),(0,b.jsx)(bk.Provider,{value:f.useMemo(()=>({hasProvider:!0,delayRef:g,initialDelayRef:h,currentIdRef:i,timeoutMs:e,currentContextRef:j,timeout:k}),[e,k]),children:c})}var bm=a.i(84842),bn=a.i(5735),bo=a.i(72077),bp=a.i(63734);let bq="data-base-ui-tooltip-trigger";function br(a){if("composedPath"in a){let b=a.composedPath();for(let a=0;a<b.length;a+=1){let c=b[a];if((0,aU.isElement)(c))return c}}let b=a.target;return(0,aU.isElement)(b)?b:null}let bs=(0,aM.fastComponentRef)(function(a,b){let{render:c,className:d,style:e,handle:g,payload:h,disabled:i,delay:j,closeOnClick:k=!0,closeDelay:l,id:m,...n}=a,o=aR(!0),p=(0,bf.usePopupHandleStore)(g)??o;if(!p)throw Error((0,aP.default)(82));let q=(0,bg.useBaseUiId)(m),r=p.useState("isTriggerActive",q),s=p.useState("isOpenedByTrigger",q),t=p.useState("floatingRootContext"),u=f.useRef(null),v=l??0,{registerTrigger:w,isMountedByThisTrigger:x}=(0,a$.useTriggerDataForwarding)(q,u,p,{payload:h,closeOnClick:k,closeDelay:v}),y=f.useContext(bh),{activeIdRef:z,delayRef:A,isInstantPhase:B,hasProvider:C}=function(a,b={open:!1}){let{open:c}=b,d="rootStore"in a?a.rootStore:a,e=d.useState("floatingId"),{currentIdRef:g,delayRef:h,timeoutMs:i,initialDelayRef:j,currentContextRef:k,hasProvider:l,timeout:m}=f.useContext(bk),[n,o]=f.useState(!1),p=f.useRef(c);return(0,aO.useIsoLayoutEffect)(()=>{p.current=c},[c]),(0,aO.useIsoLayoutEffect)(()=>{function a(){k.current?.setIsInstantPhase(!1),g.current=null,k.current=null,h.current=j.current,m.clear()}if(g.current&&!c&&g.current===e){if(o(!1),i)return m.start(i,()=>{d.select("open")||g.current&&g.current!==e||a()}),()=>{(p.current||g.current!==e)&&m.clear()};a()}},[c,e,g,h,i,j,k,m,d]),(0,aO.useIsoLayoutEffect)(()=>{if(!c)return;let a=k.current,b=g.current;m.clear(),k.current={onOpenChange:d.setOpen,setIsInstantPhase:o},g.current=e,h.current={open:0,close:(0,bj.getDelay)(j.current,"close")},null!==b&&b!==e?(o(!0),a?.setIsInstantPhase(!0),a?.onOpenChange(!1,(0,aZ.createChangeEventDetails)(a1.REASONS.none))):(o(!1),a?.setIsInstantPhase(!1))},[c,e,d,g,h,j,k,m]),(0,aO.useIsoLayoutEffect)(()=>()=>{g.current===e&&(k.current=null,p.current)&&(g.current=null,h.current=j.current,m.clear())},[k,g,h,e,j,m]),f.useMemo(()=>({activeIdRef:g,hasProvider:l,delayRef:h,isInstantPhase:n}),[g,l,h,n])}(t,{open:s}),D=(0,bo.useHoverInteractionSharedState)(t);p.useSyncedValue("isInstantPhase",B);let E=p.useState("disabled"),F=i??E,G=(0,bc.useValueAsRef)(F),H=p.useState("trackCursorAxis"),I=p.useState("disableHoverablePopup"),J=f.useRef(!1),K=(0,bb.useTimeout)(),L=f.useRef(void 0);function M(){return C&&null!=z.current?0:j??y??600}function N(a){let b=u.current;if(!b||!a)return!1;let c=function(a){let b=a;for(;b;){let a=b.closest(`[${bq}]`);if(a)return a;let c=b.getRootNode();b="host"in c&&(0,aU.isElement)(c.host)?c.host:null}return null}(a);return null!==c&&c!==b&&(0,aV.contains)(b,c)}let O=(0,bn.useHoverReferenceInteraction)(t,{enabled:!F,mouseOnly:!0,move:!1,handleClose:I||"both"===H?null:(0,bi.safePolygon)(),restMs:M,delay:()=>null==l&&C?{close:(0,bj.getDelay)(A.current,"close")}:{close:v},triggerElementRef:u,isActiveTrigger:r,isClosing:()=>"ending"===p.select("transitionStatus"),shouldOpen:()=>!J.current}),P=(0,bm.useFocus)(t,{enabled:!F}).reference,Q=p.useState("triggerProps",x),R=x||"none"!==H;return(0,be.useRenderElement)("button",a,{state:{open:s},ref:[b,w,u],props:[O,P,R?Q:void 0,{onMouseOver(a){(a=>{let b,c=J.current,d=br(a),e=(J.current=b=N(d),b&&(D.openChangeTimeout.clear(),D.restTimeout.clear(),D.restTimeoutPending=!1,K.clear()),b),f=u.current,g=f&&d&&(0,aV.contains)(f,d);if(e&&p.select("open")&&p.select("lastOpenChangeReason")===a1.REASONS.triggerHover)return p.setOpen(!1,(0,aZ.createChangeEventDetails)(a1.REASONS.triggerHover,a));if(c&&!e&&g&&!G.current&&!p.select("open")&&f&&(0,aW.isMouseLikePointerType)(L.current)){let b=()=>{J.current||G.current||p.select("open")||p.setOpen(!0,(0,aZ.createChangeEventDetails)(a1.REASONS.triggerHover,a,f))},c=M();0===c?(K.clear(),b()):K.start(c,b)}})(a.nativeEvent)},onFocus(a){N(br(a.nativeEvent))&&a.preventBaseUIHandler()},onMouseLeave(){J.current=!1,K.clear(),L.current=void 0},onPointerEnter(a){L.current=a.pointerType},onPointerDown(a){L.current=a.pointerType,p.set("closeOnClick",k),k&&!p.select("open")&&p.cancelPendingOpen(a.nativeEvent)},onClick(a){k&&!p.select("open")&&p.cancelPendingOpen(a.nativeEvent)},id:q,[bp.triggerDisabled]:F?"":void 0,[bq]:F?void 0:""},n],stateAttributesMapping:bd.triggerOpenStateMapping})}),bt=f.createContext(void 0);var bu=a.i(35112),bv=a.i(54098);let bw=f.forwardRef(function(a,c){let{children:d,container:e,className:g,render:h,style:i,...j}=a,{node:k,subtree:l}=(0,bv.useFloatingPortalNode)({container:e,ref:c,componentProps:a,elementProps:j});return l||k?(0,b.jsxs)(f.Fragment,{children:[l,k&&bu.createPortal(d,k)]}):null}),bx=f.forwardRef(function(a,c){let{keepMounted:d=!1,...e}=a;return aR().useState("mounted")||d?(0,b.jsx)(bt.Provider,{value:d,children:(0,b.jsx)(bw,{ref:c,...e})}):null}),by=f.createContext(void 0);function bz(){let a=f.useContext(by);if(void 0===a)throw Error((0,aP.default)(71));return a}var bA=a.i(44871),bB=a.i(82204),bC=a.i(56011);let bD=f.forwardRef(function(a,c){let{render:d,className:e,anchor:g,positionMethod:h="absolute",side:i="top",align:j="center",sideOffset:k=0,alignOffset:l=0,collisionBoundary:m="clipping-ancestors",collisionPadding:n=5,arrowPadding:o=5,sticky:p=!1,disableAnchorTracking:q=!1,collisionAvoidance:r=bB.POPUP_COLLISION_AVOIDANCE,style:s,...t}=a,u=aR(),v=function(){let a=f.useContext(bt);if(void 0===a)throw Error((0,aP.default)(70));return a}(),w=u.useState("open"),x=u.useState("mounted"),y=u.useState("trackCursorAxis"),z=u.useState("disableHoverablePopup"),A=u.useState("floatingRootContext"),B=u.useState("instantType"),C=u.useState("transitionStatus"),D=u.useState("adaptiveOrigin"),E=(0,bA.useAnchorPositioning)({anchor:g,positionMethod:h,floatingRootContext:A,mounted:x,side:i,sideOffset:k,align:j,alignOffset:l,collisionBoundary:m,collisionPadding:n,sticky:p,arrowPadding:o,disableAnchorTracking:q,keepMounted:v,collisionAvoidance:r,adaptiveOrigin:D}),F=f.useMemo(()=>({open:w,side:E.side,align:E.align,anchorHidden:E.anchorHidden,instant:"none"!==y?"tracking-cursor":B}),[w,E.side,E.align,E.anchorHidden,y,B]),G=(0,bC.usePositioner)(a,F,{styles:E.positionerStyles,transitionStatus:C,props:t,refs:[c,u.useStateSetter("positionerElement")],hidden:!x,inert:!w||"both"===y||z});return(0,b.jsx)(by.Provider,{value:E,children:G})});var bE=a.i(5687),bF=a.i(3861),bG=a.i(81673);let bH=f.forwardRef(function(a,b){let{render:c,className:d,style:e,...f}=a,g=aR(),{side:h,align:i}=bz(),j=g.useState("open"),k=g.useState("instantType"),l=g.useState("transitionStatus"),m=g.useState("popupProps"),n=g.useState("floatingRootContext"),o=g.useState("disabled"),p=g.useState("closeDelay");(0,bE.useOpenChangeComplete)({open:j,ref:g.context.popupRef,onComplete(){j&&g.context.onOpenChangeComplete?.(!0)}}),(0,bG.useHoverFloatingInteraction)(n,{enabled:!o,closeDelay:p});let q=g.useStateSetter("popupElement");return(0,be.useRenderElement)("div",a,{state:{open:j,side:h,align:i,instant:k,transitionStatus:l},ref:[b,g.context.popupRef,q],props:[a$.FOCUSABLE_POPUP_PROPS,m,(0,bF.getDisabledMountTransitionStyles)(l),f],stateAttributesMapping:bd.popupTransitionStateMapping})}),bI=f.forwardRef(function(a,b){let{render:c,className:d,style:e,...f}=a,g=aR(),{arrowRef:h,side:i,align:j,arrowUncentered:k,arrowStyles:l}=bz(),m=g.useState("open"),n=g.useState("instantType");return(0,be.useRenderElement)("div",a,{state:{open:m,side:i,align:j,uncentered:k,instant:n},ref:[b,h],props:[{style:l,"aria-hidden":!0},f],stateAttributesMapping:bd.popupStateMapping})});var bJ=a.i(62092);let bK=f.forwardRef(function(a,b){let{render:c,className:d,style:e,children:f,...g}=a,h=aR(),i=bz(),j=h.useState("instantType"),{children:k,state:l}=(0,bJ.usePopupViewport)({store:h,side:i.side,children:f}),m={activationDirection:l.activationDirection,transitioning:l.transitioning,instant:j};return(0,be.useRenderElement)("div",a,{state:m,ref:b,props:[g,{children:k}],stateAttributesMapping:bJ.popupViewportStateMapping})});var bL=a.i(4675);class bM extends bL.BasePopupHandle{constructor(){super(function(){let a=new a4.PopupTriggerMap;return Object.assign(new a2.NullStore(Object.freeze(a7(void 0,a)),Object.freeze(a8(a)),a5),{setOpen:aN.NOOP,cancelPendingOpen:aN.NOOP})}(),"Tooltip")}open(a){this.openByTrigger(a)}close(){this.closePopup()}get isOpen(){return this.attachedStore?.select("open")??!1}}a.s(["Arrow",0,bI,"Handle",0,bM,"Popup",0,bH,"Portal",0,bx,"Positioner",0,bD,"Provider",0,function(a){let{delay:c,closeDelay:d,timeout:e=400}=a,g=f.useMemo(()=>({open:c,close:d}),[c,d]);return(0,b.jsx)(bh.Provider,{value:c,children:(0,b.jsx)(bl,{delay:g,timeoutMs:e,children:a.children})})},"Root",0,a9,"Trigger",0,bs,"Viewport",0,bK,"createHandle",0,function(){return new bM}],3191);var bN=a.i(3191),bN=bN;function bO(a){return(0,b.jsx)(bN.Root,{"data-slot":"tooltip",...a})}function bP(a){return(0,b.jsx)(bN.Trigger,{"data-slot":"tooltip-trigger",...a})}function bQ({className:a,side:c="top",sideOffset:d=6,align:e="center",...f}){return(0,b.jsx)(bN.Portal,{children:(0,b.jsx)(bN.Positioner,{align:e,side:c,sideOffset:d,className:"isolate z-50 max-sm:hidden",children:(0,b.jsx)(bN.Popup,{"data-slot":"tooltip-content",className:(0,l.classNames)("w-fit max-w-xs origin-(--transform-origin) rounded-sm bg-foreground px-2 py-1 text-caption font-medium text-background shadow-md duration-(--duration-fast) data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",a),...f})})})}let bR={fresh:{Icon:aH,tone:"text-tone-ok-fg"},while:{Icon:aL,tone:"text-muted-foreground"},long:{Icon:aJ,tone:"text-tone-waiting-fg"}};function bS({seenAt:a,now:c,testId:d}){let e;if(null===a)return null;let f=new Date(a),g=(e=c.getTime()-f.getTime())<6e4?"fresh":e<=9e5?"while":"long",{Icon:h,tone:i}=bR[g],j=(0,r.lastSeen)(f,c);return(0,b.jsxs)(bO,{children:[(0,b.jsx)(bP,{render:(0,b.jsx)("span",{role:"img","aria-label":j,"data-testid":d,"data-signal":g,className:(0,l.classNames)("inline-flex [&_svg]:size-(--size-icon) max-sm:[&_svg]:size-4",i)}),children:(0,b.jsx)(h,{"aria-hidden":!0})}),(0,b.jsx)(bQ,{children:j})]})}var bT=a.i(40108);function bU({model:a,now:c}){let d=function(a,b){var c;let d=new Date(a.statedAt),e=Math.max(0,b.getTime()-d.getTime()),f=(c=a.id).startsWith("@")||/@\d+\.\d+\.\d+$/.test(c)?"Software":"Model";if(e<6e4)return`${f}, stated ${String(Math.floor(e/1e3))} s ago`;let g=(0,r.relativeTime)(d,b);return`${f}, stated ${g.charAt(0).toLowerCase()}${g.slice(1)}`}(a,c);return(0,b.jsxs)(bO,{children:[(0,b.jsxs)(bP,{render:(0,b.jsx)("span",{"data-testid":"fleet-model-hint",className:"min-w-0 truncate font-mono text-id text-muted-foreground"}),children:[a.id,(0,b.jsxs)("span",{className:"sr-only",children:[", ",d]})]}),(0,b.jsx)(bQ,{children:(0,b.jsxs)("span",{className:"flex flex-col gap-0.5",children:[(0,b.jsx)("span",{className:"font-mono",children:a.id}),(0,b.jsx)("span",{children:d})]})})]})}var bV=a.i(92717),bW=a.i(58523),bX=a.i(90468),bY=a.i(48136);function bZ({label:a,items:c,picked:d,onPickedChange:e,size:f="sm",valueClassName:g,testId:h}){let i=function(a,b){let[c]=a;return void 0===c?{kind:"all"}:1===a.length?{kind:"one",word:b[c]??c}:{kind:"several",count:a.length}}(d,c);return(0,b.jsxs)(bY.Select,{multiple:!0,value:0===d.length?["all"]:[...d],onValueChange:a=>{e(d.length>0&&a.includes("all")?[]:a.filter(a=>"all"!==a))},children:[(0,b.jsx)(bY.SelectTrigger,{size:f,"aria-label":a,"data-testid":h,children:(0,b.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:a}),"several"===i.kind?(0,b.jsxs)("span",{className:"inline-flex size-5 items-center justify-center rounded-full bg-primary text-caption font-semibold text-primary-foreground tabular-nums",children:[i.count,(0,b.jsx)("span",{className:"sr-only",children:" picked"})]}):(0,b.jsx)("span",{className:(0,l.classNames)("font-medium","one"===i.kind?g:void 0),children:"one"===i.kind?i.word:"All"})]})}),(0,b.jsxs)(bY.SelectContent,{children:[(0,b.jsx)(bY.SelectItem,{value:"all",children:"All"}),Object.entries(c).map(([a,c])=>(0,b.jsx)(bY.SelectItem,{value:a,className:g,children:c},a))]})]})}function b$({label:a,allLabel:c="All",items:d,picked:e,onPickedChange:f,layout:h="chips",testId:i}){return(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsx)("span",{"aria-hidden":!0,className:"text-meta font-medium text-muted-foreground",children:a}),(0,b.jsxs)("div",{role:"group","aria-label":a,"data-testid":i,className:"segments"===h?"flex gap-1.5 [&>*]:flex-1":"flex flex-wrap gap-1.5",children:[(0,b.jsx)(g.Button,{variant:0===e.length?"primary":"secondary",size:"touch","aria-pressed":0===e.length,onClick:()=>{f([])},children:c}),Object.entries(d).map(([a,c])=>{let d=e.includes(a);return(0,b.jsx)(g.Button,{variant:d?"primary":"secondary",size:"touch","aria-pressed":d,onClick:()=>{f(d?e.filter(b=>b!==a):[...e,a])},children:c},a)})]})]})}var b_=a.i(89027),b0=a.i(3894),b1=a.i(19721),b2=a.i(60275);let b3=(0,b1.default)(async()=>{},{loadableGenerated:{modules:[59068]},ssr:!1});function b4({groups:a,picked:c,onPick:e,trigger:g}){let[h,i]=(0,f.useState)(!1);return(0,b.jsxs)(b2.Popover,{open:h,onOpenChange:i,children:[(0,b.jsx)(b2.PopoverTrigger,{render:g}),(0,b.jsxs)(b2.PopoverContent,{align:"start",sideOffset:6,className:"w-80 p-2","data-testid":"label-filter-popover",children:[(0,b.jsx)("span",{className:"block px-2 pt-1 pb-2 text-body font-medium",children:"Filter by label"}),(0,b.jsx)(b3,{groups:a,pickedValueIds:c.map(a=>a.valueId),onPick:a=>{e(a),i(!1)}}),(0,b.jsxs)("p",{className:"mt-2 flex items-center justify-between gap-2 border-t border-border px-2 pt-2 text-meta text-muted-foreground",children:["Exact matches, all must hold.",(0,b.jsx)(d.default,{href:"/labels",className:"font-medium text-foreground hover:underline","data-testid":"label-filter-manage",children:"Manage labels"})]})]})]})}function b5({groups:a,picked:d,onPick:e}){return(0,b.jsx)(b4,{groups:a,picked:d,onPick:e,trigger:(0,b.jsxs)(g.Button,{variant:"secondary",size:"sm",icon:(0,b.jsx)(c.Tag,{}),"data-testid":"fleet-filter-labels",children:["Labels",0===d.length?null:(0,b.jsxs)("span",{className:"inline-flex size-5 items-center justify-center rounded-full bg-primary text-caption font-semibold text-primary-foreground tabular-nums",children:[d.length,(0,b.jsx)("span",{className:"sr-only",children:" picked"})]}),(0,b.jsx)(b_.ChevronDown,{"aria-hidden":!0,className:"text-muted-foreground"})]})})}function b6({groups:a,picked:c,onPick:d,onRemove:e,onClear:f}){return 0===c.length?null:(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-x-2 gap-y-1.5 text-meta max-sm:hidden","data-testid":"fleet-picked-labels",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:"Ships with"}),c.map((a,c)=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-2",children:[0===c?null:(0,b.jsx)("span",{className:"text-muted-foreground",children:"and"}),(0,b.jsx)(aD.LabelChip,{chip:a,testId:"fleet-picked-label",onRemove:()=>{e(a.valueId)}})]},a.valueId)),(0,b.jsx)(b4,{groups:a,picked:c,onPick:d,trigger:(0,b.jsx)(g.Button,{variant:"ghost",size:"xs",icon:(0,b.jsx)(u.Plus,{}),children:"Add"})}),(0,b.jsx)("span",{"aria-hidden":!0,className:"h-4 w-px bg-border"}),(0,b.jsx)(g.Button,{variant:"ghost",size:"xs",onClick:f,"data-testid":"fleet-labels-clear",children:"Clear labels"})]})}function b7({groups:a,picked:c,onPick:e,onRemove:h}){let[i,j]=(0,f.useState)(!1);return(0,b.jsxs)("div",{className:"flex flex-col gap-2","data-testid":"fleet-filter-labels-touch",children:[(0,b.jsxs)("span",{className:"flex items-center gap-2 text-meta font-medium text-muted-foreground",children:["Labels ",(0,b.jsx)("span",{className:"font-normal",children:"all must hold"})]}),0===c.length?null:(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-2 text-meta",children:c.map((a,c)=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-2",children:[0===c?null:(0,b.jsx)("span",{className:"text-muted-foreground",children:"and"}),(0,b.jsx)(aD.LabelChip,{chip:a,onRemove:()=>{h(a.valueId)}})]},a.valueId))}),i?(0,b.jsx)("div",{className:"rounded-lg border border-border p-2",children:(0,b.jsx)(b3,{groups:a,pickedValueIds:c.map(a=>a.valueId),size:"touch",onPick:a=>{e(a),j(!1)}})}):(0,b.jsx)(g.Button,{variant:"secondary",size:"touch",icon:(0,b.jsx)(u.Plus,{}),className:"self-start",onClick:()=>{j(!0)},children:"Add label"}),(0,b.jsxs)(d.default,{href:"/labels",className:"inline-flex items-center gap-1.5 self-start text-meta text-muted-foreground hover:underline [&_svg]:size-(--size-icon-sm)",children:[(0,b.jsx)(b0.Tags,{"aria-hidden":!0}),"All labels and their owners"]})]})}function b8(a,b){return{...a,filters:{...a.filters,labelValueIds:b}}}function b9(a){return Object.hasOwn(ar,a)}function ca(a){return Object.fromEntries((0,aj.crewRequestKeysOf)(a).map(a=>[a,(0,aj.crewRequestKeyWord)(a)]))}function cb(a,b){return Object.hasOwn(b,a)}function cc(a){return Object.fromEntries(a.map(a=>[a,a]))}function cd({ship:a,squadron:c,isPluginShip:d}){return"operator"===a.kind?(0,b.jsxs)(av.Badge,{variant:"kind",children:[(0,b.jsx)(aa.UserRound,{"aria-hidden":!0}),"operator"]}):"viewer"===a.kind?(0,b.jsxs)(av.Badge,{variant:"kind","data-testid":"fleet-viewer",children:[(0,b.jsx)(W.Eye,{"aria-hidden":!0}),"viewer"]}):d?(0,b.jsxs)(av.Badge,{variant:"kind","data-testid":"fleet-plugin",children:[(0,b.jsx)(Y.Plug,{"aria-hidden":!0}),"plugin"]}):c?.role===null?(0,b.jsxs)(av.Badge,{variant:"kind","data-testid":"fleet-flagship",children:[(0,b.jsx)(X.Flag,{"aria-hidden":!0}),"flagship"]}):null}function ce({ship:a,now:c}){return"crewed"!==a.status||"viewer"===a.kind?null:(0,b.jsxs)("span",{"data-testid":"fleet-runs-on",className:"flex min-w-0 items-center gap-3 max-sm:flex-wrap max-sm:gap-y-1",children:[(0,b.jsx)(bT.LocationTag,{kind:"operator"===a.kind&&null!==a.location?"DEVICE":a.location?.kind??null,description:a.location?.description,harness:"operator"===a.kind?"console":a.harness,size:"sm",className:"shrink-0"}),"agent"===a.kind&&null!==a.model?(0,b.jsx)(bU,{model:a.model,now:c}):null]})}function cf({ship:a,squadron:c,labels:d}){let e=c?.role===null?void 0:c,f=void 0===d?[]:(0,ai.chipsOf)(a,d).filter(a=>void 0===e||("squadron"!==a.key||a.value!==e.squadronId)&&("squadron-role"!==a.key||a.value!==e.role));return void 0===e&&0===f.length?null:(0,b.jsxs)("span",{className:"flex min-w-0 items-center gap-2 overflow-hidden",children:[void 0===e?null:(0,b.jsx)("span",{className:"min-w-0 shrink",title:null===e.role?e.squadronId:`${e.squadronId} \xb7 ${e.role}`,children:(0,b.jsx)(bW.SquadronTag,{squadronId:e.squadronId,size:"sm"})}),(0,b.jsx)(aE,{chips:f,width:22*(void 0===e),testId:"fleet-labels",href:`/ships/${a.id}`})]})}function cg({ship:a,now:c,next:d}){let e="agent"===a.kind&&"crewed"===a.status;return(0,b.jsxs)("span",{className:"flex min-w-0 items-center gap-2 max-sm:flex-col max-sm:items-stretch [&:has(button)>[data-testid=fleet-report]]:hidden",children:[e?(0,b.jsx)(bV.ReportLine,{report:a.report,now:c,variant:"row",isTimeInTitle:!0,testId:"fleet-report"}):null,d]})}function ch({ships:a,view:c,onViewChange:d,size:e,squadronsOf:f,labels:h}){let i=ca((0,w.useConsoleConstants)().crewStatuses),{filters:j}=c,k=ap(a),m="sm"===e?"fleet-show-retired":"fleet-show-retired-touch",n=a=>{d({...c,filters:{...j,...a}})},o="touch"===e;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(bZ,{label:"Status",items:ar,picked:j.status,onPickedChange:a=>{n({status:a.filter(b9)})},size:e,testId:o?void 0:"fleet-filter-status"}),(0,b.jsx)(bZ,{label:"Crew request",items:i,picked:j.crewRequest,onPickedChange:a=>{n({crewRequest:a.filter(a=>cb(a,i))})},size:e,testId:o?void 0:"fleet-filter-crew-request"}),(0,b.jsx)(bZ,{label:"Kind",items:ac,picked:j.kind,onPickedChange:a=>{n({kind:a.filter(ae)})},size:e,testId:o?void 0:"fleet-filter-kind"}),(0,b.jsx)(bZ,{label:"Type",items:cc(ao(a,j.isRetiredShown)),picked:j.type,onPickedChange:a=>{n({type:a})},size:e,valueClassName:"font-mono",testId:o?void 0:"fleet-filter-type"}),f&&(0,b.jsx)(bZ,{label:"Squadron",items:cc(aq(f)),picked:j.squadron,onPickedChange:a=>{n({squadron:a})},size:e,testId:o?void 0:"fleet-filter-squadron"}),void 0===h||o?null:(0,b.jsx)(b5,{groups:(0,ai.filterGroupsOf)(h),picked:(0,ai.pickedChips)(j.labelValueIds,h),onPick:a=>{d(b8(c,[...j.labelValueIds,a]))}}),au(j).length>0&&!o?(0,b.jsx)(g.Button,{variant:"ghost",size:"xs","data-testid":"fleet-filters-clear",onClick:()=>{d({...c,filters:ak.filters})},children:"Clear filters"}):null,(0,b.jsxs)("div",{className:(0,l.classNames)("inline-flex items-center gap-2",o?"py-2":"sm:ml-auto"),children:[(0,b.jsx)(az.Switch,{id:m,"data-testid":o?void 0:"fleet-show-retired",checked:j.isRetiredShown,onCheckedChange:a=>{n({isRetiredShown:a})}}),(0,b.jsxs)(ax.Label,{htmlFor:m,className:(0,l.classNames)("font-normal text-muted-foreground",o?"text-body-touch":"text-meta"),children:["Show retired (",k,")"]})]})]})}function ci({ships:a,view:c,onViewChange:d,shownCount:e,squadronsOf:f,labels:h}){let i=ca((0,w.useConsoleConstants)().crewStatuses),{filters:j}=c,k=a=>{d({...c,filters:{...j,...a}})},l=as(j),m=ap(a);return(0,b.jsxs)(ay.Sheet,{children:[(0,b.jsx)(ay.SheetTrigger,{render:(0,b.jsx)(g.Button,{size:"touch",isIconOnly:!0,"aria-label":l>0?`Filter ships, ${String(l)} active`:"Filter ships","data-testid":"fleet-filters-open",icon:(0,b.jsx)(_,{}),className:"relative sm:hidden",children:l>0?(0,b.jsx)("span",{"aria-hidden":!0,className:"absolute top-1.5 right-1.5 size-2 rounded-full bg-primary"}):null})}),(0,b.jsxs)(ay.SheetContent,{side:"bottom",children:[(0,b.jsxs)(ay.SheetHeader,{className:"flex-row items-center justify-between",children:[(0,b.jsx)(ay.SheetTitle,{children:"Filter ships"}),(0,b.jsx)(g.Button,{variant:"ghost",size:"touch","data-testid":"fleet-filters-reset",onClick:()=>{d({...c,filters:ak.filters})},children:"Reset"})]}),(0,b.jsxs)(ay.SheetBody,{className:"flex flex-col gap-4 pb-4",children:[(0,b.jsx)(b$,{label:"Status",layout:"segments",items:ar,picked:j.status,onPickedChange:a=>{k({status:a.filter(b9)})}}),(0,b.jsx)(b$,{label:"Crew request",items:i,picked:j.crewRequest,onPickedChange:a=>{k({crewRequest:a.filter(a=>cb(a,i))})}}),(0,b.jsx)(b$,{label:"Kind",items:ac,picked:j.kind,onPickedChange:a=>{k({kind:a.filter(ae)})},testId:"fleet-filter-kind-touch"}),(0,b.jsx)(b$,{label:"Type",allLabel:"All types",items:cc(ao(a,j.isRetiredShown)),picked:j.type,onPickedChange:a=>{k({type:a})}}),f&&(0,b.jsx)(b$,{label:"Squadron",items:cc(aq(f)),picked:j.squadron,onPickedChange:a=>{k({squadron:a})}}),void 0===h?null:(0,b.jsx)(b7,{groups:(0,ai.filterGroupsOf)(h),picked:(0,ai.pickedChips)(j.labelValueIds,h),onPick:a=>{d(b8(c,[...j.labelValueIds,a]))},onRemove:a=>{d(b8(c,j.labelValueIds.filter(b=>b!==a)))}}),(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2 py-1",children:[(0,b.jsxs)(ax.Label,{htmlFor:"fleet-show-retired-touch",className:"text-body-touch font-normal",children:["Show retired ships ",(0,b.jsxs)("span",{className:"text-muted-foreground",children:["(",m,")"]})]}),(0,b.jsx)(az.Switch,{id:"fleet-show-retired-touch",checked:j.isRetiredShown,onCheckedChange:a=>{k({isRetiredShown:a})}})]}),(0,b.jsx)(ay.SheetClose,{render:(0,b.jsx)(g.Button,{size:"touch","data-testid":"fleet-filters-apply"}),children:1===e?"Show 1 ship":`Show ${String(e)} ships`})]})]})]})}function cj({view:a,onViewChange:c,labels:d}){let e=au(a.filters),f=void 0===d?[]:(0,ai.pickedChips)(a.filters.labelValueIds,d);return 0===e.length&&0===f.length?null:(0,b.jsxs)("div",{className:"flex w-full flex-wrap items-center gap-1.5 sm:hidden","data-testid":"fleet-filter-chips",children:[e.map(a=>(0,b.jsx)(av.Badge,{variant:"outline",className:"max-w-full truncate",children:a},a)),f.map(d=>(0,b.jsx)(aD.LabelChip,{chip:d,onRemove:()=>{c(b8(a,a.filters.labelValueIds.filter(a=>a!==d.valueId)))}},d.valueId)),(0,b.jsx)(g.Button,{variant:"ghost",size:"touch",onClick:()=>{c({...a,filters:ak.filters})},children:"Clear filters"})]})}function ck({ships:a,view:c,onViewChange:d,shownCount:e,squadronsOf:f,labels:g}){return(0,b.jsxs)("div",{"data-slot":"fleet-toolbar",className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("div",{className:"w-60 max-sm:min-w-0 max-sm:flex-1",children:(0,b.jsx)(aw.Input,{type:"search","aria-label":"Search ships by name or type",placeholder:"Search ships by name","data-testid":"fleet-search",value:c.query,onChange:a=>{d({...c,query:a.target.value})},leadingIcon:(0,b.jsx)(Z.Search,{}),className:"h-(--size-control-sm) text-meta max-sm:h-(--size-control-touch) max-sm:text-input-touch"})}),(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-2 max-sm:hidden sm:flex-1",children:(0,b.jsx)(ch,{ships:a,view:c,onViewChange:d,squadronsOf:f,labels:g,size:"sm"})}),(0,b.jsx)(ci,{ships:a,view:c,onViewChange:d,shownCount:e,squadronsOf:f,labels:g}),(0,b.jsx)(cj,{view:c,onViewChange:d,labels:g}),(0,b.jsxs)("p",{"aria-live":"polite",className:"text-meta text-muted-foreground tabular-nums max-sm:w-full",children:[e," of ",a.length," ships"]})]})}function cl({ship:a}){return(0,b.jsx)(bX.ShipName,{name:a.name,shipId:a.id,isSuffixShown:"retired"===a.status,href:"operator"===a.kind?"/inbox":`/ships/${a.id}`,className:"[&_a]:max-sm:whitespace-normal [&_a]:max-sm:break-all [&_a]:max-sm:text-body-touch"})}let cm=[{column:"ship",head:"Ship"},{column:"status",head:"Status"},{column:"report",head:"Report"},{column:"squadronAndLabels",head:"Squadron and labels"},{column:"runsOn",head:"Runs on"},{column:"seen",head:"Seen"}];function cn({ships:a,highlightedShipIds:c,now:d,renderRowActions:e,squadronsOf:f,labels:g,pluginShipIds:h,sort:i,onSort:j}){return(0,b.jsx)("div",{className:"max-sm:hidden",children:(0,b.jsxs)(aA.Table,{"aria-label":"Ships",className:"min-w-320 table-fixed",children:[(0,b.jsxs)("colgroup",{children:[(0,b.jsx)("col",{className:"w-56"}),(0,b.jsx)("col",{className:"w-40"}),(0,b.jsx)("col",{className:"w-64"}),(0,b.jsx)("col",{className:"w-56"}),(0,b.jsx)("col",{className:"w-80"}),(0,b.jsx)("col",{className:"w-12"}),(0,b.jsx)("col",{className:"w-12"})]}),(0,b.jsx)(aA.TableHeader,{children:(0,b.jsxs)(aA.TableRow,{children:[cm.map(({column:a,head:c})=>void 0===j?(0,b.jsx)(aA.TableHead,{children:c},a):(0,b.jsx)(aA.TableSortHead,{"data-testid":`fleet-sort-${a}`,direction:i?.column===a?i.direction:null,onSort:()=>{j(a)},children:c},a)),(0,b.jsx)(aA.TableHead,{children:(0,b.jsx)("span",{className:"sr-only",children:"Actions"})})]})}),(0,b.jsx)(aA.TableBody,{children:a.map(a=>(0,b.jsxs)(aA.TableRow,{"data-testid":`fleet-row-${a.name}`,"data-new":c?.has(a.id)?"":void 0,className:"h-12",children:[(0,b.jsx)(aA.TableCell,{children:(0,b.jsxs)("span",{className:"flex min-w-0 items-center gap-2 whitespace-nowrap",children:[(0,b.jsx)(cl,{ship:a}),(0,b.jsx)(cd,{ship:a,squadron:f?.get(a.id),isPluginShip:h?.has(a.id)??!1})]})}),(0,b.jsx)(aA.TableCell,{children:(0,b.jsx)(O.StatusBadge,{status:a.status})}),(0,b.jsx)(aA.TableCell,{children:(0,b.jsx)(cg,{ship:a,now:d,next:e?.(a,"next")})}),(0,b.jsx)(aA.TableCell,{children:(0,b.jsx)(cf,{ship:a,squadron:f?.get(a.id),labels:g})}),(0,b.jsx)(aA.TableCell,{children:(0,b.jsx)(ce,{ship:a,now:d})}),(0,b.jsx)(aA.TableCell,{children:(0,b.jsx)(bS,{seenAt:a.lastSeenAt,now:d,testId:"fleet-last-seen"})}),(0,b.jsx)(aA.TableCell,{className:"w-10 text-right",children:e?.(a,"table")})]},a.id))})]})})}function co({ships:a,highlightedShipIds:c,now:d,renderRowActions:e,squadronsOf:f,pluginShipIds:g}){return(0,b.jsx)("ul",{"aria-label":"Ships",className:"overflow-hidden rounded-lg border border-border bg-card sm:hidden",children:a.map(a=>(0,b.jsxs)("li",{"data-testid":`fleet-card-${a.name}`,"data-new":c?.has(a.id)?"":void 0,className:"flex items-start gap-2 border-b border-border px-3.5 py-3 last:border-0 data-new:animate-highlight",children:[(0,b.jsxs)("div",{className:"flex min-w-0 grow flex-col gap-1.5",children:[(0,b.jsx)("div",{className:"text-body-touch",children:(0,b.jsx)(cl,{ship:a})}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(O.StatusBadge,{status:a.status}),(0,b.jsx)(cd,{ship:a,squadron:f?.get(a.id),isPluginShip:g?.has(a.id)??!1})]}),(0,b.jsx)(cf,{ship:a,squadron:f?.get(a.id)}),(0,b.jsx)(cg,{ship:a,now:d,next:e?.(a,"next")}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-x-3 gap-y-1",children:[(0,b.jsx)(ce,{ship:a,now:d}),(0,b.jsx)(bS,{seenAt:a.lastSeenAt,now:d})]})]}),e?.(a,"phone")]},a.id))})}function cp({ships:a,view:c,onViewChange:d,state:e,error:f,highlightedShipIds:h,now:i,renderRowActions:j,emptyAction:k,squadronsOf:l,labels:m,pluginShipIds:n}){var o,p,q;let r,s,t;if("loading"===e)return(0,b.jsxs)("div",{"data-slot":"fleet-table","data-state":"loading",className:"flex flex-col gap-3",children:[(0,b.jsx)(aF.LoadingSkeleton,{variant:"table",rows:6,label:"Loading the fleet",className:"max-sm:hidden"}),(0,b.jsx)(aF.LoadingSkeleton,{variant:"list",rows:5,label:"Loading the fleet",className:"sm:hidden"})]});if("error"===e)return(0,b.jsx)(aC.InlineError,{variant:"page",title:"Couldn’t load the fleet",description:"This page couldn’t reach the fleet server. Check that the server is running and reachable from this browser, then try again.",detail:f?.detail,onRetry:f?.onRetry});let u={highlightedShipIds:h,now:i,renderRowActions:j,squadronsOf:l,pluginShipIds:n};if(a.every(a=>"operator"===a.kind||"retired"===a.status)){let c=a.filter(a=>"operator"===a.kind);return(0,b.jsxs)("div",{"data-slot":"fleet-table","data-state":"empty",className:"flex flex-col gap-3",children:[(0,b.jsx)(cn,{ships:c,labels:m,...u}),(0,b.jsx)(co,{ships:c,...u}),(0,b.jsx)(aB.EmptyState,{icon:(0,b.jsx)(N.Ship,{}),title:"No ships besides argo yet",description:"argo is your own ship: messages to the operator land in its inbox. Commission a ship to add an agent to the fleet.",action:k})]})}let v=(s=null===(o={...c,squadronsOf:l,pluginShipIds:n}).sort?an:(p=o.sort,q=o.squadronsOf,r=("ascending"===p.direction?1:-1)*("seen"===p.column?-1:1),(a,b)=>{let c=ag(a,{column:p.column,squadronsOf:q}),d=ag(b,{column:p.column,squadronsOf:q});return void 0===c||void 0===d?Number(void 0===c)-Number(void 0===d):r*c.localeCompare(d,void 0,{sensitivity:"base"})}),a.filter(a=>{let b;return(""===(b=o.query.trim().toLowerCase())||a.name.toLowerCase().includes(b)||a.type.toLowerCase().includes(b))&&function(a,b){let{filters:c,squadronsOf:d,pluginShipIds:e=al}=b;if("retired"===a.status&&!c.isRetiredShown)return!1;let f="retired"===a.status?void 0:a.status;return am(c.squadron,d?.get(a.id)?.squadronId)&&am(c.status,f)&&am(c.crewRequest,(0,aj.crewRequestKey)((0,ah.crewRequestStage)(a)))&&am(c.kind,"operator"===a.kind||"viewer"===a.kind?"console":e.has(a.id)?"plugin":"trierarch"===a.type?"trierarch":(null===a.harness?void 0:ad[a.harness])??"other")&&am(c.type,a.type)&&(0,ai.carriesEvery)(a,c.labelValueIds)}(a,o)}).toSorted((a,b)=>s(a,b)||a.name.localeCompare(b.name)||a.id.localeCompare(b.id))),w=c.query.trim();return(0,b.jsxs)("div",{"data-slot":"fleet-table","data-state":"ready",className:"flex flex-col gap-3",children:[(0,b.jsx)(ck,{ships:a,view:c,onViewChange:d,shownCount:v.length,squadronsOf:l,labels:m}),void 0===m?null:(0,b.jsx)(b6,{groups:(0,ai.filterGroupsOf)(m),picked:(0,ai.pickedChips)(c.filters.labelValueIds,m),onPick:a=>{d(b8(c,[...c.filters.labelValueIds,a]))},onRemove:a=>{d(b8(c,c.filters.labelValueIds.filter(b=>b!==a)))},onClear:()=>{d(b8(c,[]))}}),0===v.length?(0,b.jsx)(aB.EmptyState,{variant:"no-results",title:""===w?"No ships match these filters.":`No ships match “${w}”.`,action:(0,b.jsx)(g.Button,{size:"xs","data-testid":"fleet-clear-filters",onClick:()=>{d({...ak,sort:c.sort})},children:(t=as(c.filters)>0,""===w?"Clear filters":t?"Clear search and filters":"Clear search")})}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(cn,{ships:v,labels:m,sort:c.sort,onSort:a=>{var b;d({...c,sort:(b=c.sort,b?.column!==a?{column:a,direction:"ascending"}:"ascending"===b.direction?{column:a,direction:"descending"}:null)})},...u}),(0,b.jsx)(co,{ships:v,...u})]})]})}function cq({view:a,onViewChange:c,newShipIds:d,renderRowActions:e}){let f=(0,o.useFleetSnapshot)(),g=(0,q.useNow)(),h=(0,E.useSquadrons)(),i=(0,o.useLabelContext)(),j=(0,U.usePluginShipIds)();return(0,b.jsx)("section",{"aria-label":"Fleet",className:"flex flex-col gap-3",children:(0,b.jsx)(cp,{ships:f.data??[],view:a,onViewChange:c,state:f.isPending?"loading":f.isError?"error":"ready",error:{detail:f.error?.message,onRetry:()=>{f.refetch()}},highlightedShipIds:d,now:g,renderRowActions:e,squadronsOf:h.data?(0,V.shipsInSquadrons)(h.data):void 0,labels:i,pluginShipIds:j})})}var cr=a.i(53805),cs=a.i(71027),ct=a.i(21521),cu=a.i(91003),cv=a.i(38023),cw=a.i(73224),cx=a.i(65563),cy=a.i(67336),cz=a.i(10572),cA=a.i(34159);a.s(["OverviewPage",0,function({view:a,isCommissionAsked:i}){let j=(0,e.useRouter)(),k=(0,o.useFleetSnapshot)(),l=(0,cy.useLiveFleet)(),m=(0,cv.useConsoleFrame)(),n=(0,C.messageLimitReached)((0,A.useFleetLimits)().data),p=(0,B.useHostedAccountUrl)(),q=(0,cx.useAccess)(),r=(0,cA.usePluginNav)(),[u,v]=(0,f.useState)(!1),[w,x]=(0,f.useOptimistic)(a);(0,cz.useSignInWhenSessionEnds)([k.error,l.error]);let y=a=>{let b=(function(a){let b=new URLSearchParams;for(let[c,d]of(""!==a.query&&b.set("q",a.query),[["status",a.filters.status],["crew",a.filters.crewRequest],["kind",a.filters.kind],["type",a.filters.type],["squadron",a.filters.squadron]]))for(let a of d)b.append(c,a);for(let c of(a.filters.isRetiredShown&&b.set("retired","1"),a.filters.labelValueIds))b.append("label",c);return null!==a.sort&&(b.set("sort",a.sort.column),"descending"===a.sort.direction&&b.set("order","desc")),b})(a).toString();(0,f.startTransition)(()=>{x(a),j.replace(""===b?"/":`/?${b}`,{scroll:!1})})};return(0,b.jsxs)(cu.ListPage,{...m,title:"Fleet overview",description:k.data?function(a){let b=s(a.ships).length,c=a.ships.filter(a=>"agent"===a.kind&&"retired"===a.status).length;if(0===b&&0===c)return a.canCommission?"Only argo so far. Ships you commission appear here.":"Only argo so far.";let d=0===c?"":`, ${String(c)} retired`;return`${1===b?"1 active ship":`${String(b)} active ships`} and argo${d}. Changes appear as they happen.`}({ships:k.data,canCommission:q.canManage}):"Loading your fleet",primaryAction:(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2 max-sm:flex-col max-sm:items-stretch",children:[(0,b.jsx)(g.Button,{render:(0,b.jsx)(d.default,{href:"/labels"}),nativeButton:!1,icon:(0,b.jsx)(c.Tag,{}),"data-testid":"overview-labels",children:q.canDefineLabels?"Manage labels":"View labels"}),q.canManage?(0,b.jsx)(I,{isOpen:u||i,onOpenChange:b=>{v(b),!b&&i&&y(a)}}):null]}),live:l.live,children:[(0,b.jsx)(cw.FleetSegments,{active:"ships",needsCrewCount:r.needsCrewCount}),void 0===n?null:(0,b.jsx)(ct.LimitNotice,{...(0,C.messageLimitNotice)(n),accountUrl:p,testId:"overview-message-limit"}),(0,b.jsx)(T,{}),(0,b.jsx)(t,{}),(0,b.jsx)(cq,{view:w,onViewChange:y,newShipIds:l.newShipIds,renderRowActions:(a,c)=>(0,b.jsx)(cr.ShipActions,{ship:a,layout:"table"===c?"menu":"phone"===c?"sheet":"next",compose:h.ComposeMessage,crewLineFlow:cs.NewCrewLineFlow})})]})}],59446)}];
1
+ module.exports=[59446,a=>{"use strict";var b=a.i(87924),c=a.i(31247),d=a.i(38246),e=a.i(50944),f=a.i(72131),g=a.i(31856),h=a.i(86002),i=a.i(56987),j=a.i(79520),k=a.i(88931),l=a.i(83556);let m={ok:"border-tone-ok-border bg-tone-ok-bg text-tone-ok-fg",waiting:"border-tone-waiting-border bg-tone-waiting-bg text-tone-waiting-fg",attention:"border-tone-attention-border bg-tone-attention-bg text-tone-attention-fg"};function n({label:a,shortLabel:c,value:e,detail:f,href:g,icon:h,tone:i,testId:j}){return(0,b.jsxs)(d.default,{href:g,"data-testid":j,className:"flex min-w-0 flex-col gap-2 rounded-lg border border-border bg-card px-4.5 py-4 shadow-sm transition-colors duration-(--duration-fast) hover:bg-accent max-sm:gap-1.5 max-sm:rounded-xl max-sm:px-3.5 max-sm:py-3",children:[(0,b.jsxs)("span",{className:"flex items-center justify-between gap-2 text-meta font-medium text-muted-foreground",children:[(0,b.jsx)("span",{className:"max-sm:hidden",children:a}),(0,b.jsx)("span",{className:"sm:hidden",children:c??a}),(0,b.jsx)("span",{className:(0,l.classNames)("flex size-6.5 shrink-0 items-center justify-center rounded-md border max-sm:size-5.5",m[i]),children:(0,b.jsx)(h,{"aria-hidden":!0,className:"size-3.5"})})]}),(0,b.jsx)("span",{className:"text-[28px] leading-none font-semibold tracking-tight tabular-nums text-foreground max-sm:text-2xl",children:e}),(0,b.jsx)("span",{className:"truncate text-meta text-muted-foreground",children:f})]})}var o=a.i(90146),p=a.i(34564),q=a.i(68450),r=a.i(72872);function s(a){return a.filter(a=>"agent"===a.kind&&"retired"!==a.status)}function t(){var a;let c,d,e,f,g=(0,o.useFleetSnapshot)(),h=(0,p.useFleetHealth)(),l=(0,q.useNow)();if(!g.data)return null;let m=(e=(d=(c=s((a={ships:g.data,stuck:h.data?.stuck??[],now:l}).ships)).filter(a=>"awaitingCrew"===a.status)).flatMap(a=>null===a.awaitingCrewSince?[]:[{name:a.name,since:new Date(a.awaitingCrewSince)}]).sort((a,b)=>a.since.getTime()-b.since.getTime())[0],f=a.stuck.map(a=>new Date(a.oldestSince)).sort((a,b)=>a.getTime()-b.getTime())[0],{activeCount:c.length,crewedCount:c.filter(a=>"crewed"===a.status).length,awaitingCount:d.length,longestWait:e&&{name:e.name,wait:(0,r.duration)(e.since,a.now)},oldestStuck:f&&(0,r.duration)(f,a.now)});return 0===m.activeCount?null:(0,b.jsxs)("div",{className:"grid grid-cols-3 gap-4 max-sm:grid-cols-2 max-sm:gap-2.5","data-testid":"overview-metrics",children:[(0,b.jsx)(n,{label:"Ships crewed",shortLabel:"Crewed",value:m.crewedCount,detail:`of ${String(m.activeCount)} active ships`,href:"/?status=crewed",icon:k.UserCheck,tone:"ok",testId:"overview-crewed"}),(0,b.jsx)(n,{label:"Awaiting crew",value:m.awaitingCount,detail:m.longestWait?`Longest wait: ${m.longestWait.name}, ${m.longestWait.wait}`:"Every active ship is crewed",href:"/?status=awaitingCrew",icon:i.CircleDashed,tone:"waiting",testId:"overview-awaiting"}),(0,b.jsx)(n,{label:"Stuck",value:(0,p.stuckCountOf)(h.data)??0,detail:m.oldestStuck?`Deliveries stuck, oldest ${m.oldestStuck}`:"Delivering",href:"/fleet-health",icon:j.OctagonAlert,tone:"attention",testId:"overview-stuck"})]})}var u=a.i(3512),v=a.i(34301),w=a.i(1851),x=a.i(2955),y=a.i(82611),z=a.i(88191),A=a.i(64906),B=a.i(47468),C=a.i(82252),D=a.i(54763),E=a.i(12540),F=a.i(93454);let G=(0,v.lazyDialog)(()=>a.A(59777).then(a=>a.CommissionDialog),a=>a.isOpen),H=(0,v.lazyDialog)(()=>a.A(68359).then(a=>a.StartingPromptDialog),a=>a.isOpen);function I({isOpen:a,onOpenChange:c}){var d;let e,h=(0,o.useFleetSnapshot)(),i=(0,A.useFleetLimits)(),j=(0,B.useHostedAccountUrl)(),k=(0,o.useCommissionShip)(),l=(0,o.useRequestCrew)(),m="connected"===(0,F.useTrierarchPluginConnection)(),n=(0,F.useMachines)(),p=(0,D.useSquadronsConnection)(),q=(0,E.useSquadrons)(),[r,s]=(0,f.useState)(!1),[t,v]=(0,f.useState)(null),J=(0,x.offersOf)(n.data??[]),K=(0,o.useLabelContext)(),{shipLabelsMax:L,fleetScopes:M}=(0,w.useConsoleConstants)(),N=(0,o.useFleetScopes)(),O=void 0===K||void 0===n.data?void 0:(0,y.machineLabelsInputOf)(K,{machines:n.data,shipLabelsMax:L}),P=(0,F.useCrewSettingsCheck)(a&&m?null===t?(0,x.settingsOf)((0,x.defaultValues)(J)):t:void 0),Q=(h.data??[]).filter(a=>"retired"!==a.status),R=(a,b)=>{k.mutate(a,{onSuccess:({shipId:d})=>{c(!1);let e=m&&void 0!==b;e||s(!0),void 0!==b&&l.mutate({shipId:d,settings:b.settings},{onSuccess:()=>{e&&(0,z.showToast)({title:`${a.name} commissioned, crew requested`,description:"The trierarch plugin assigns a trierarch that fits.",tone:"success"})},onError:b=>{(0,z.showToast)({title:`Couldn’t request a crew for ${a.name}`,description:`${b.message} The ship is commissioned; request a crew on its page.`,tone:"error"})}})}})};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(g.Button,{variant:"primary",icon:(0,b.jsx)(u.Plus,{}),"data-testid":"fleet-commission",onClick:()=>{k.reset(),v(null),c(!0)},children:"Commission ship"}),(0,b.jsx)(G,{activeShips:Q,isOpen:a,onOpenChange:c,isPending:k.isPending,error:k.error?.message,shipLimit:(0,C.shipLimitReached)(i.data),accountUrl:j,scopeGroups:void 0===N.data?void 0:(d=N.data,e=new Map(d.filter(({declaredBy:a})=>null===a).flatMap(({scopes:a})=>a.map(({scope:a,description:b})=>[a,b]))),[{title:"Fleet access",namespace:null,scopes:M.flatMap(a=>{let b=e.get(a);return void 0===b?[]:[{scope:a,description:b}]})},...d.flatMap(({namespace:a,declaredBy:b,scopes:c})=>null===b||0===c.length?[]:[{title:b.name,namespace:a,scopes:c.map(({scope:a,description:b})=>({scope:a,description:b}))}])]),...m?{crewRequest:{offers:J,squadrons:"connected"===p?(q.data??[]).filter(a=>"disbanded"!==a.state).map(a=>a.id):void 0,...void 0===O?{}:{machineLabels:O},check:P.data,onSettingsChange:v}}:{},onSubmit:(a,b)=>{let c={...a,idempotencyKey:crypto.randomUUID()};m&&void 0!==b?P.checkNow().catch(()=>void 0).then(a=>{a?.kind!=="refused"&&R(c,b)}).catch(()=>void 0):R(c,b)}}),(0,b.jsx)(H,{shipName:k.variables?.name??"",state:"shown",prompt:k.data?.prompt??void 0,crewLines:k.data?.crewLines??void 0,isOpen:r&&void 0!==k.data,onOpenChange:a=>{a||(s(!1),k.reset())},onConfirm:()=>void 0})]})}var J=a.i(64831);let K={name:"infinity",size:24,node:[["path",{d:"M6 16c5 0 7-8 12-8a4 4 0 0 1 0 8c-5 0-7-8-12-8a4 4 0 1 0 0 8",key:"18ogeb"}]]};K.node;let L=(0,J.default)(K);var M=a.i(74746),N=a.i(98238),O=a.i(23063);let P={ships:{label:"Ships",unit:"ships",Icon:N.Ship},messages:{label:"Messages today",unit:"messages",Icon:M.Send}},Q={below:"bg-primary",at:"bg-tone-waiting-fg",over:"bg-tone-attention-fg"},R={at:"at-limit",over:"over-limit"};function S({kind:a,count:c,limit:d,resetsAt:e}){let{label:f,unit:g,Icon:h}=P[a],i=(0,C.meterState)({count:c,limit:d}),j=R[i],k=(0,C.meterCaption)({count:c,limit:d}),m=null===d?0:0===d?1:Math.min(c/d,1);return(0,b.jsxs)("div",{"data-testid":`limit-meter-${a}`,"data-state":i,className:"flex flex-col gap-2 rounded-lg border border-border bg-card p-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-meta font-medium text-muted-foreground",children:[(0,b.jsx)(h,{"aria-hidden":!0,className:"size-(--size-icon-sm)"}),f]}),void 0===j?null:(0,b.jsx)(O.StatusBadge,{status:j})]}),(0,b.jsxs)("p",{className:"flex items-baseline gap-1.5",children:[(0,b.jsx)("span",{className:"text-metric font-semibold tabular-nums",children:(0,C.meterCount)(c)}),(0,b.jsx)("span",{className:"text-body text-muted-foreground",children:null===d?g:`of ${(0,C.meterCount)(d)} ${g}`})]}),null===d?(0,b.jsxs)("p",{className:"inline-flex items-center gap-1.5 text-meta text-muted-foreground",children:[(0,b.jsx)(L,{"aria-hidden":!0,className:"size-(--size-icon-sm)"}),"No limit"]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{role:"meter","aria-label":`${f}: ${String(c)} of ${String(d)}`,"aria-valuenow":c,"aria-valuemin":0,"aria-valuemax":d,className:"block h-1.5 overflow-hidden rounded-full bg-secondary",children:(0,b.jsx)("span",{className:(0,l.classNames)("block h-full rounded-full","none"===i?void 0:Q[i]),style:{width:`${String(100*m)}%`}})}),(0,b.jsxs)("p",{"data-testid":`limit-meter-${a}-caption`,className:"text-caption text-muted-foreground",children:[k,void 0===e?null:` \xb7 resets at ${(0,C.resetTime)(e)}`]})]})]})}function T(){let a=(0,A.useFleetLimits)().data,c=(0,B.useHostedAccountUrl)();return(0,C.hasLimits)(a)?(0,b.jsxs)("section",{"aria-labelledby":"overview-limits-title","data-testid":"overview-limits",className:"flex flex-col gap-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)("h2",{id:"overview-limits-title",className:"text-body font-semibold",children:"Limits"}),void 0===c?null:(0,b.jsx)("a",{href:c,"data-testid":"overview-limits-view",className:"text-meta font-medium text-primary underline underline-offset-2",children:"View limits"})]}),(0,b.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2",children:[(0,b.jsx)(S,{kind:"ships",count:a.ships.count,limit:a.ships.limit}),(0,b.jsx)(S,{kind:"messages",count:a.dailyMessages.count,limit:a.dailyMessages.limit,resetsAt:a.dailyMessages.resetsAt})]})]}):null}var U=a.i(45065),V=a.i(8219),W=a.i(55681),X=a.i(25039),Y=a.i(71094),Z=a.i(33540);let $={name:"sliders-horizontal",size:24,node:[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]]};$.node;let _=(0,J.default)($);var aa=a.i(87005),ab=a.i(49219);let ac=["console","claudeCode","codex","trierarch","plugin","other"],ad={console:"Console",claudeCode:"Claude Code",codex:"Codex",trierarch:"Trierarch",plugin:"Plugin",other:"Other"},ae={"claude-code":"claudeCode",codex:"codex"};function af(a){return ac.some(b=>b===a)}let ag={awaitingCrew:"Awaiting crew",crewed:"Crewed",retired:"Retired"};function ah(a,{column:b,squadronsOf:c}){switch(b){case"ship":return a.name;case"status":return ag[a.status];case"report":return("agent"===a.kind||"plugin"===a.kind)&&"crewed"===a.status?a.report?.note??void 0:void 0;case"squadronAndLabels":{let b=c?.get(a.id);if(void 0!==b&&null!==b.role)return b.squadronId;let[d]=a.labels;return void 0===d?void 0:`${d.key}=${d.value}`}case"runsOn":if("crewed"!==a.status||"viewer"===a.kind)return;return"operator"===a.kind?"console":a.harness??void 0;case"seen":return a.lastSeenAt??void 0}}var ai=a.i(6071),aj=a.i(65230),ak=a.i(60271);let al={query:"",filters:{status:[],crewRequest:[],kind:[],type:[],squadron:[],isRetiredShown:!1,labelValueIds:[]},sort:null},am=new Set;function an(a,b){return 0===a.length||void 0!==b&&a.includes(b)}function ao(a,b){return a.kind!==b.kind?"operator"===a.kind?-1:+("operator"===b.kind):0}function ap(a,b){return[...new Set(a.filter(a=>b||"retired"!==a.status).map(a=>a.type))].toSorted((a,b)=>a.localeCompare(b))}function aq(a){return a.filter(a=>"retired"===a.status).length}function ar(a){return[...new Set([...a.values()].map(a=>a.squadronId))].toSorted((a,b)=>a.localeCompare(b))}let as={crewed:"Crewed",awaitingCrew:"Awaiting crew"};function at(a){return av(a).length+a.labelValueIds.length}function au(a,b){return 0===b.length?void 0:`${a}: ${b.join(", ")}`}function av(a){return[au("Status",a.status.map(a=>as[a])),au("Crew request",a.crewRequest.map(ak.crewRequestKeyWord)),au("Kind",a.kind.map(a=>ad[a])),au("Type",a.type),au("Squadron",a.squadron),a.isRetiredShown?"Retired shown":void 0].filter(a=>void 0!==a)}var aw=a.i(33274),ax=a.i(75297),ay=a.i(45098),az=a.i(45469),aA=a.i(77339),aB=a.i(24173),aC=a.i(40392),aD=a.i(36501);function aE({chips:a,width:c,testId:e,href:f}){if(0===a.length)return null;let{shown:g,folded:h}=0===c?{shown:[],folded:a}:(0,aj.rowChips)(a,c);return(0,b.jsxs)("span",{"data-testid":e,className:"flex min-w-0 items-center gap-1 overflow-hidden",children:[g.map((a,c)=>(0,b.jsx)(aD.LabelChip,{chip:a,className:0===c?"min-w-0 shrink":void 0},a.valueId)),0===h.length?null:void 0===f?(0,b.jsxs)("span",{title:h.map(aj.chipTitleOf).join("; "),className:"inline-flex h-5.5 shrink-0 items-center rounded-sm bg-secondary px-1.5 text-caption font-medium text-foreground tabular-nums",children:["+",h.length,(0,b.jsx)("span",{className:"sr-only",children:" more labels"})]}):(0,b.jsxs)(d.default,{href:f,title:h.map(aj.chipTitleOf).join("; "),"aria-label":`View ${h.length} more labels`,className:"inline-flex h-5.5 shrink-0 items-center rounded-sm bg-secondary px-1.5 text-caption font-medium text-foreground tabular-nums hover:underline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring",children:["+",h.length]})]})}var aF=a.i(50808);let aG={name:"signal",size:24,node:[["path",{d:"M2 20h.01",key:"4haj6o"}],["path",{d:"M7 20v-4",key:"j294jx"}],["path",{d:"M12 20v-8",key:"i3yub9"}],["path",{d:"M17 20V8",key:"1tkaf5"}],["path",{d:"M22 4v16",key:"sih9yq"}]]};aG.node;let aH=(0,J.default)(aG),aI={name:"signal-low",size:24,node:[["path",{d:"M2 20h.01",key:"4haj6o"}],["path",{d:"M7 20v-4",key:"j294jx"}]]};aI.node;let aJ=(0,J.default)(aI),aK={name:"signal-medium",size:24,node:[["path",{d:"M2 20h.01",key:"4haj6o"}],["path",{d:"M7 20v-4",key:"j294jx"}],["path",{d:"M12 20v-8",key:"i3yub9"}]]};aK.node;let aL=(0,J.default)(aK);var aM=a.i(14501);let aN={fresh:{Icon:aH,tone:"text-tone-ok-fg"},while:{Icon:aL,tone:"text-muted-foreground"},long:{Icon:aJ,tone:"text-tone-waiting-fg"}};function aO({seenAt:a,now:c,testId:d}){let e;if(null===a)return null;let f=new Date(a),g=(e=c.getTime()-f.getTime())<6e4?"fresh":e<=9e5?"while":"long",{Icon:h,tone:i}=aN[g],j=(0,r.lastSeen)(f,c);return(0,b.jsxs)(aM.Tooltip,{children:[(0,b.jsx)(aM.TooltipTrigger,{render:(0,b.jsx)("span",{role:"img","aria-label":j,"data-testid":d,"data-signal":g,className:(0,l.classNames)("inline-flex [&_svg]:size-(--size-icon) max-sm:[&_svg]:size-4",i)}),children:(0,b.jsx)(h,{"aria-hidden":!0})}),(0,b.jsx)(aM.TooltipContent,{children:j})]})}var aP=a.i(40108);function aQ({model:a,now:c}){let d=function(a,b){var c;let d=new Date(a.statedAt),e=Math.max(0,b.getTime()-d.getTime()),f=(c=a.id).startsWith("@")||/@\d+\.\d+\.\d+$/.test(c)?"Software":"Model";if(e<6e4)return`${f}, stated ${String(Math.floor(e/1e3))} s ago`;let g=(0,r.relativeTime)(d,b);return`${f}, stated ${g.charAt(0).toLowerCase()}${g.slice(1)}`}(a,c);return(0,b.jsxs)(aM.Tooltip,{children:[(0,b.jsxs)(aM.TooltipTrigger,{render:(0,b.jsx)("span",{"data-testid":"fleet-model-hint",className:"min-w-0 truncate font-mono text-id text-muted-foreground"}),children:[a.id,(0,b.jsxs)("span",{className:"sr-only",children:[", ",d]})]}),(0,b.jsx)(aM.TooltipContent,{children:(0,b.jsxs)("span",{className:"flex flex-col gap-0.5",children:[(0,b.jsx)("span",{className:"font-mono",children:a.id}),(0,b.jsx)("span",{children:d})]})})]})}var aR=a.i(92717),aS=a.i(58523),aT=a.i(90468),aU=a.i(48136);function aV({label:a,items:c,picked:d,onPickedChange:e,size:f="sm",valueClassName:g,testId:h}){let i=function(a,b){let[c]=a;return void 0===c?{kind:"all"}:1===a.length?{kind:"one",word:b[c]??c}:{kind:"several",count:a.length}}(d,c);return(0,b.jsxs)(aU.Select,{multiple:!0,value:0===d.length?["all"]:[...d],onValueChange:a=>{e(d.length>0&&a.includes("all")?[]:a.filter(a=>"all"!==a))},children:[(0,b.jsx)(aU.SelectTrigger,{size:f,"aria-label":a,"data-testid":h,children:(0,b.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:a}),"several"===i.kind?(0,b.jsxs)("span",{className:"inline-flex size-5 items-center justify-center rounded-full bg-primary text-caption font-semibold text-primary-foreground tabular-nums",children:[i.count,(0,b.jsx)("span",{className:"sr-only",children:" picked"})]}):(0,b.jsx)("span",{className:(0,l.classNames)("font-medium","one"===i.kind?g:void 0),children:"one"===i.kind?i.word:"All"})]})}),(0,b.jsxs)(aU.SelectContent,{children:[(0,b.jsx)(aU.SelectItem,{value:"all",children:"All"}),Object.entries(c).map(([a,c])=>(0,b.jsx)(aU.SelectItem,{value:a,className:g,children:c},a))]})]})}function aW({label:a,allLabel:c="All",items:d,picked:e,onPickedChange:f,layout:h="chips",testId:i}){return(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsx)("span",{"aria-hidden":!0,className:"text-meta font-medium text-muted-foreground",children:a}),(0,b.jsxs)("div",{role:"group","aria-label":a,"data-testid":i,className:"segments"===h?"flex gap-1.5 [&>*]:flex-1":"flex flex-wrap gap-1.5",children:[(0,b.jsx)(g.Button,{variant:0===e.length?"primary":"secondary",size:"touch","aria-pressed":0===e.length,onClick:()=>{f([])},children:c}),Object.entries(d).map(([a,c])=>{let d=e.includes(a);return(0,b.jsx)(g.Button,{variant:d?"primary":"secondary",size:"touch","aria-pressed":d,onClick:()=>{f(d?e.filter(b=>b!==a):[...e,a])},children:c},a)})]})]})}var aX=a.i(89027),aY=a.i(3894),aZ=a.i(19721),a$=a.i(60275);let a_=(0,aZ.default)(async()=>{},{loadableGenerated:{modules:[59068]},ssr:!1});function a0({groups:a,picked:c,onPick:e,trigger:g}){let[h,i]=(0,f.useState)(!1);return(0,b.jsxs)(a$.Popover,{open:h,onOpenChange:i,children:[(0,b.jsx)(a$.PopoverTrigger,{render:g}),(0,b.jsxs)(a$.PopoverContent,{align:"start",sideOffset:6,className:"w-80 p-2","data-testid":"label-filter-popover",children:[(0,b.jsx)("span",{className:"block px-2 pt-1 pb-2 text-body font-medium",children:"Filter by label"}),(0,b.jsx)(a_,{groups:a,pickedValueIds:c.map(a=>a.valueId),onPick:a=>{e(a),i(!1)}}),(0,b.jsxs)("p",{className:"mt-2 flex items-center justify-between gap-2 border-t border-border px-2 pt-2 text-meta text-muted-foreground",children:["Exact matches, all must hold.",(0,b.jsx)(d.default,{href:"/labels",className:"font-medium text-foreground hover:underline","data-testid":"label-filter-manage",children:"Manage labels"})]})]})]})}function a1({groups:a,picked:d,onPick:e}){return(0,b.jsx)(a0,{groups:a,picked:d,onPick:e,trigger:(0,b.jsxs)(g.Button,{variant:"secondary",size:"sm",icon:(0,b.jsx)(c.Tag,{}),"data-testid":"fleet-filter-labels",children:["Labels",0===d.length?null:(0,b.jsxs)("span",{className:"inline-flex size-5 items-center justify-center rounded-full bg-primary text-caption font-semibold text-primary-foreground tabular-nums",children:[d.length,(0,b.jsx)("span",{className:"sr-only",children:" picked"})]}),(0,b.jsx)(aX.ChevronDown,{"aria-hidden":!0,className:"text-muted-foreground"})]})})}function a2({groups:a,picked:c,onPick:d,onRemove:e,onClear:f}){return 0===c.length?null:(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-x-2 gap-y-1.5 text-meta max-sm:hidden","data-testid":"fleet-picked-labels",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:"Ships with"}),c.map((a,c)=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-2",children:[0===c?null:(0,b.jsx)("span",{className:"text-muted-foreground",children:"and"}),(0,b.jsx)(aD.LabelChip,{chip:a,testId:"fleet-picked-label",onRemove:()=>{e(a.valueId)}})]},a.valueId)),(0,b.jsx)(a0,{groups:a,picked:c,onPick:d,trigger:(0,b.jsx)(g.Button,{variant:"ghost",size:"xs",icon:(0,b.jsx)(u.Plus,{}),children:"Add"})}),(0,b.jsx)("span",{"aria-hidden":!0,className:"h-4 w-px bg-border"}),(0,b.jsx)(g.Button,{variant:"ghost",size:"xs",onClick:f,"data-testid":"fleet-labels-clear",children:"Clear labels"})]})}function a3({groups:a,picked:c,onPick:e,onRemove:h}){let[i,j]=(0,f.useState)(!1);return(0,b.jsxs)("div",{className:"flex flex-col gap-2","data-testid":"fleet-filter-labels-touch",children:[(0,b.jsxs)("span",{className:"flex items-center gap-2 text-meta font-medium text-muted-foreground",children:["Labels ",(0,b.jsx)("span",{className:"font-normal",children:"all must hold"})]}),0===c.length?null:(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-2 text-meta",children:c.map((a,c)=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-2",children:[0===c?null:(0,b.jsx)("span",{className:"text-muted-foreground",children:"and"}),(0,b.jsx)(aD.LabelChip,{chip:a,onRemove:()=>{h(a.valueId)}})]},a.valueId))}),i?(0,b.jsx)("div",{className:"rounded-lg border border-border p-2",children:(0,b.jsx)(a_,{groups:a,pickedValueIds:c.map(a=>a.valueId),size:"touch",onPick:a=>{e(a),j(!1)}})}):(0,b.jsx)(g.Button,{variant:"secondary",size:"touch",icon:(0,b.jsx)(u.Plus,{}),className:"self-start",onClick:()=>{j(!0)},children:"Add label"}),(0,b.jsxs)(d.default,{href:"/labels",className:"inline-flex items-center gap-1.5 self-start text-meta text-muted-foreground hover:underline [&_svg]:size-(--size-icon-sm)",children:[(0,b.jsx)(aY.Tags,{"aria-hidden":!0}),"All labels and their owners"]})]})}function a4(a,b){return{...a,filters:{...a.filters,labelValueIds:b}}}function a5(a){return Object.hasOwn(as,a)}function a6(a){return Object.fromEntries((0,ak.crewRequestKeysOf)(a).map(a=>[a,(0,ak.crewRequestKeyWord)(a)]))}function a7(a,b){return Object.hasOwn(b,a)}function a8(a){return Object.fromEntries(a.map(a=>[a,a]))}function a9({ship:a,squadron:c,isPluginShip:d}){return"operator"===a.kind?(0,b.jsxs)(aw.Badge,{variant:"kind",children:[(0,b.jsx)(aa.UserRound,{"aria-hidden":!0}),"operator"]}):"viewer"===a.kind?(0,b.jsxs)(aw.Badge,{variant:"kind","data-testid":"fleet-viewer",children:[(0,b.jsx)(W.Eye,{"aria-hidden":!0}),"viewer"]}):d?(0,b.jsxs)(aw.Badge,{variant:"kind","data-testid":"fleet-plugin",children:[(0,b.jsx)(Y.Plug,{"aria-hidden":!0}),"plugin"]}):c?.role===null?(0,b.jsxs)(aw.Badge,{variant:"kind","data-testid":"fleet-flagship",children:[(0,b.jsx)(X.Flag,{"aria-hidden":!0}),"flagship"]}):null}function ba({ship:a,now:c}){return"crewed"!==a.status||"viewer"===a.kind?null:(0,b.jsxs)("span",{"data-testid":"fleet-runs-on",className:"flex min-w-0 items-center gap-3 max-sm:flex-wrap max-sm:gap-y-1",children:[(0,b.jsx)(aP.LocationTag,{kind:"operator"===a.kind&&null!==a.location?"DEVICE":a.location?.kind??null,description:a.location?.description,harness:"operator"===a.kind?"console":a.harness,size:"sm",className:"shrink-0"}),"agent"===a.kind&&null!==a.model?(0,b.jsx)(aQ,{model:a.model,now:c}):null]})}function bb({ship:a,squadron:c,labels:d}){let e=c?.role===null?void 0:c,f=void 0===d?[]:(0,aj.chipsOf)(a,d).filter(a=>void 0===e||("squadron"!==a.key||a.value!==e.squadronId)&&("squadron-role"!==a.key||a.value!==e.role));return void 0===e&&0===f.length?null:(0,b.jsxs)("span",{className:"flex min-w-0 items-center gap-2 overflow-hidden",children:[void 0===e?null:(0,b.jsx)("span",{className:"min-w-0 shrink",title:null===e.role?e.squadronId:`${e.squadronId} \xb7 ${e.role}`,children:(0,b.jsx)(aS.SquadronTag,{squadronId:e.squadronId,size:"sm"})}),(0,b.jsx)(aE,{chips:f,width:22*(void 0===e),testId:"fleet-labels",href:`/ships/${a.id}`})]})}function bc({ship:a,now:c,next:d}){let e=("agent"===a.kind||"plugin"===a.kind)&&"crewed"===a.status;return(0,b.jsxs)("span",{className:"flex min-w-0 items-center gap-2 max-sm:flex-col max-sm:items-stretch [&:has(button)>[data-testid=fleet-report]]:hidden",children:[e?(0,b.jsx)(aR.ReportLine,{report:a.report,now:c,variant:"row",isTimeInTitle:!0,testId:"fleet-report"}):null,d]})}function bd({ships:a,view:c,onViewChange:d,size:e,squadronsOf:f,labels:h}){let i=a6((0,w.useConsoleConstants)().crewStatuses),{filters:j}=c,k=aq(a),m="sm"===e?"fleet-show-retired":"fleet-show-retired-touch",n=a=>{d({...c,filters:{...j,...a}})},o="touch"===e;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(aV,{label:"Status",items:as,picked:j.status,onPickedChange:a=>{n({status:a.filter(a5)})},size:e,testId:o?void 0:"fleet-filter-status"}),(0,b.jsx)(aV,{label:"Crew request",items:i,picked:j.crewRequest,onPickedChange:a=>{n({crewRequest:a.filter(a=>a7(a,i))})},size:e,testId:o?void 0:"fleet-filter-crew-request"}),(0,b.jsx)(aV,{label:"Kind",items:ad,picked:j.kind,onPickedChange:a=>{n({kind:a.filter(af)})},size:e,testId:o?void 0:"fleet-filter-kind"}),(0,b.jsx)(aV,{label:"Type",items:a8(ap(a,j.isRetiredShown)),picked:j.type,onPickedChange:a=>{n({type:a})},size:e,valueClassName:"font-mono",testId:o?void 0:"fleet-filter-type"}),f&&(0,b.jsx)(aV,{label:"Squadron",items:a8(ar(f)),picked:j.squadron,onPickedChange:a=>{n({squadron:a})},size:e,testId:o?void 0:"fleet-filter-squadron"}),void 0===h||o?null:(0,b.jsx)(a1,{groups:(0,aj.filterGroupsOf)(h),picked:(0,aj.pickedChips)(j.labelValueIds,h),onPick:a=>{d(a4(c,[...j.labelValueIds,a]))}}),av(j).length>0&&!o?(0,b.jsx)(g.Button,{variant:"ghost",size:"xs","data-testid":"fleet-filters-clear",onClick:()=>{d({...c,filters:al.filters})},children:"Clear filters"}):null,(0,b.jsxs)("div",{className:(0,l.classNames)("inline-flex items-center gap-2",o?"py-2":"sm:ml-auto"),children:[(0,b.jsx)(az.Switch,{id:m,"data-testid":o?void 0:"fleet-show-retired",checked:j.isRetiredShown,onCheckedChange:a=>{n({isRetiredShown:a})}}),(0,b.jsxs)(ay.Label,{htmlFor:m,className:(0,l.classNames)("font-normal text-muted-foreground",o?"text-body-touch":"text-meta"),children:["Show retired (",k,")"]})]})]})}function be({ships:a,view:c,onViewChange:d,shownCount:e,squadronsOf:f,labels:h}){let i=a6((0,w.useConsoleConstants)().crewStatuses),{filters:j}=c,k=a=>{d({...c,filters:{...j,...a}})},l=at(j),m=aq(a);return(0,b.jsxs)(ab.Sheet,{children:[(0,b.jsx)(ab.SheetTrigger,{render:(0,b.jsx)(g.Button,{size:"touch",isIconOnly:!0,"aria-label":l>0?`Filter ships, ${String(l)} active`:"Filter ships","data-testid":"fleet-filters-open",icon:(0,b.jsx)(_,{}),className:"relative sm:hidden",children:l>0?(0,b.jsx)("span",{"aria-hidden":!0,className:"absolute top-1.5 right-1.5 size-2 rounded-full bg-primary"}):null})}),(0,b.jsxs)(ab.SheetContent,{side:"bottom",children:[(0,b.jsxs)(ab.SheetHeader,{className:"flex-row items-center justify-between",children:[(0,b.jsx)(ab.SheetTitle,{children:"Filter ships"}),(0,b.jsx)(g.Button,{variant:"ghost",size:"touch","data-testid":"fleet-filters-reset",onClick:()=>{d({...c,filters:al.filters})},children:"Reset"})]}),(0,b.jsxs)(ab.SheetBody,{className:"flex flex-col gap-4 pb-4",children:[(0,b.jsx)(aW,{label:"Status",layout:"segments",items:as,picked:j.status,onPickedChange:a=>{k({status:a.filter(a5)})}}),(0,b.jsx)(aW,{label:"Crew request",items:i,picked:j.crewRequest,onPickedChange:a=>{k({crewRequest:a.filter(a=>a7(a,i))})}}),(0,b.jsx)(aW,{label:"Kind",items:ad,picked:j.kind,onPickedChange:a=>{k({kind:a.filter(af)})},testId:"fleet-filter-kind-touch"}),(0,b.jsx)(aW,{label:"Type",allLabel:"All types",items:a8(ap(a,j.isRetiredShown)),picked:j.type,onPickedChange:a=>{k({type:a})}}),f&&(0,b.jsx)(aW,{label:"Squadron",items:a8(ar(f)),picked:j.squadron,onPickedChange:a=>{k({squadron:a})}}),void 0===h?null:(0,b.jsx)(a3,{groups:(0,aj.filterGroupsOf)(h),picked:(0,aj.pickedChips)(j.labelValueIds,h),onPick:a=>{d(a4(c,[...j.labelValueIds,a]))},onRemove:a=>{d(a4(c,j.labelValueIds.filter(b=>b!==a)))}}),(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2 py-1",children:[(0,b.jsxs)(ay.Label,{htmlFor:"fleet-show-retired-touch",className:"text-body-touch font-normal",children:["Show retired ships ",(0,b.jsxs)("span",{className:"text-muted-foreground",children:["(",m,")"]})]}),(0,b.jsx)(az.Switch,{id:"fleet-show-retired-touch",checked:j.isRetiredShown,onCheckedChange:a=>{k({isRetiredShown:a})}})]}),(0,b.jsx)(ab.SheetClose,{render:(0,b.jsx)(g.Button,{size:"touch","data-testid":"fleet-filters-apply"}),children:1===e?"Show 1 ship":`Show ${String(e)} ships`})]})]})]})}function bf({view:a,onViewChange:c,labels:d}){let e=av(a.filters),f=void 0===d?[]:(0,aj.pickedChips)(a.filters.labelValueIds,d);return 0===e.length&&0===f.length?null:(0,b.jsxs)("div",{className:"flex w-full flex-wrap items-center gap-1.5 sm:hidden","data-testid":"fleet-filter-chips",children:[e.map(a=>(0,b.jsx)(aw.Badge,{variant:"outline",className:"max-w-full truncate",children:a},a)),f.map(d=>(0,b.jsx)(aD.LabelChip,{chip:d,onRemove:()=>{c(a4(a,a.filters.labelValueIds.filter(a=>a!==d.valueId)))}},d.valueId)),(0,b.jsx)(g.Button,{variant:"ghost",size:"touch",onClick:()=>{c({...a,filters:al.filters})},children:"Clear filters"})]})}function bg({ships:a,view:c,onViewChange:d,shownCount:e,squadronsOf:f,labels:g}){return(0,b.jsxs)("div",{"data-slot":"fleet-toolbar",className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("div",{className:"w-60 max-sm:min-w-0 max-sm:flex-1",children:(0,b.jsx)(ax.Input,{type:"search","aria-label":"Search ships by name or type",placeholder:"Search ships by name","data-testid":"fleet-search",value:c.query,onChange:a=>{d({...c,query:a.target.value})},leadingIcon:(0,b.jsx)(Z.Search,{}),className:"h-(--size-control-sm) text-meta max-sm:h-(--size-control-touch) max-sm:text-input-touch"})}),(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-2 max-sm:hidden sm:flex-1",children:(0,b.jsx)(bd,{ships:a,view:c,onViewChange:d,squadronsOf:f,labels:g,size:"sm"})}),(0,b.jsx)(be,{ships:a,view:c,onViewChange:d,shownCount:e,squadronsOf:f,labels:g}),(0,b.jsx)(bf,{view:c,onViewChange:d,labels:g}),(0,b.jsxs)("p",{"aria-live":"polite",className:"text-meta text-muted-foreground tabular-nums max-sm:w-full",children:[e," of ",a.length," ships"]})]})}function bh({ship:a}){return(0,b.jsx)(aT.ShipName,{name:a.name,shipId:a.id,isSuffixShown:"retired"===a.status,href:"operator"===a.kind?"/inbox":`/ships/${a.id}`,className:"[&_a]:max-sm:whitespace-normal [&_a]:max-sm:break-all [&_a]:max-sm:text-body-touch"})}let bi=[{column:"ship",head:"Ship"},{column:"status",head:"Status"},{column:"report",head:"Report"},{column:"squadronAndLabels",head:"Squadron and labels"},{column:"runsOn",head:"Runs on"},{column:"seen",head:"Seen"}];function bj({ships:a,highlightedShipIds:c,now:d,renderRowActions:e,squadronsOf:f,labels:g,pluginShipIds:h,sort:i,onSort:j}){return(0,b.jsx)("div",{className:"max-sm:hidden",children:(0,b.jsxs)(aA.Table,{"aria-label":"Ships",className:"min-w-320 table-fixed",children:[(0,b.jsxs)("colgroup",{children:[(0,b.jsx)("col",{className:"w-56"}),(0,b.jsx)("col",{className:"w-40"}),(0,b.jsx)("col",{className:"w-64"}),(0,b.jsx)("col",{className:"w-56"}),(0,b.jsx)("col",{className:"w-80"}),(0,b.jsx)("col",{className:"w-12"}),(0,b.jsx)("col",{className:"w-12"})]}),(0,b.jsx)(aA.TableHeader,{children:(0,b.jsxs)(aA.TableRow,{children:[bi.map(({column:a,head:c})=>void 0===j?(0,b.jsx)(aA.TableHead,{children:c},a):(0,b.jsx)(aA.TableSortHead,{"data-testid":`fleet-sort-${a}`,direction:i?.column===a?i.direction:null,onSort:()=>{j(a)},children:c},a)),(0,b.jsx)(aA.TableHead,{children:(0,b.jsx)("span",{className:"sr-only",children:"Actions"})})]})}),(0,b.jsx)(aA.TableBody,{children:a.map(a=>(0,b.jsxs)(aA.TableRow,{"data-testid":`fleet-row-${a.name}`,"data-new":c?.has(a.id)?"":void 0,className:"h-12",children:[(0,b.jsx)(aA.TableCell,{children:(0,b.jsxs)("span",{className:"flex min-w-0 items-center gap-2 whitespace-nowrap",children:[(0,b.jsx)(bh,{ship:a}),(0,b.jsx)(a9,{ship:a,squadron:f?.get(a.id),isPluginShip:h?.has(a.id)??!1})]})}),(0,b.jsx)(aA.TableCell,{children:(0,b.jsx)(O.StatusBadge,{status:a.status})}),(0,b.jsx)(aA.TableCell,{children:(0,b.jsx)(bc,{ship:a,now:d,next:e?.(a,"next")})}),(0,b.jsx)(aA.TableCell,{children:(0,b.jsx)(bb,{ship:a,squadron:f?.get(a.id),labels:g})}),(0,b.jsx)(aA.TableCell,{children:(0,b.jsx)(ba,{ship:a,now:d})}),(0,b.jsx)(aA.TableCell,{children:(0,b.jsx)(aO,{seenAt:a.lastSeenAt,now:d,testId:"fleet-last-seen"})}),(0,b.jsx)(aA.TableCell,{className:"w-10 text-right",children:e?.(a,"table")})]},a.id))})]})})}function bk({ships:a,highlightedShipIds:c,now:d,renderRowActions:e,squadronsOf:f,pluginShipIds:g}){return(0,b.jsx)("ul",{"aria-label":"Ships",className:"overflow-hidden rounded-lg border border-border bg-card sm:hidden",children:a.map(a=>(0,b.jsxs)("li",{"data-testid":`fleet-card-${a.name}`,"data-new":c?.has(a.id)?"":void 0,className:"flex items-start gap-2 border-b border-border px-3.5 py-3 last:border-0 data-new:animate-highlight",children:[(0,b.jsxs)("div",{className:"flex min-w-0 grow flex-col gap-1.5",children:[(0,b.jsx)("div",{className:"text-body-touch",children:(0,b.jsx)(bh,{ship:a})}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(O.StatusBadge,{status:a.status}),(0,b.jsx)(a9,{ship:a,squadron:f?.get(a.id),isPluginShip:g?.has(a.id)??!1})]}),(0,b.jsx)(bb,{ship:a,squadron:f?.get(a.id)}),(0,b.jsx)(bc,{ship:a,now:d,next:e?.(a,"next")}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-x-3 gap-y-1",children:[(0,b.jsx)(ba,{ship:a,now:d}),(0,b.jsx)(aO,{seenAt:a.lastSeenAt,now:d})]})]}),e?.(a,"phone")]},a.id))})}function bl({ships:a,view:c,onViewChange:d,state:e,error:f,highlightedShipIds:h,now:i,renderRowActions:j,emptyAction:k,squadronsOf:l,labels:m,pluginShipIds:n}){var o,p,q;let r,s,t;if("loading"===e)return(0,b.jsxs)("div",{"data-slot":"fleet-table","data-state":"loading",className:"flex flex-col gap-3",children:[(0,b.jsx)(aF.LoadingSkeleton,{variant:"table",rows:6,label:"Loading the fleet",className:"max-sm:hidden"}),(0,b.jsx)(aF.LoadingSkeleton,{variant:"list",rows:5,label:"Loading the fleet",className:"sm:hidden"})]});if("error"===e)return(0,b.jsx)(aC.InlineError,{variant:"page",title:"Couldn’t load the fleet",description:"This page couldn’t reach the fleet server. Check that the server is running and reachable from this browser, then try again.",detail:f?.detail,onRetry:f?.onRetry});let u={highlightedShipIds:h,now:i,renderRowActions:j,squadronsOf:l,pluginShipIds:n};if(a.every(a=>"operator"===a.kind||"retired"===a.status)){let c=a.filter(a=>"operator"===a.kind);return(0,b.jsxs)("div",{"data-slot":"fleet-table","data-state":"empty",className:"flex flex-col gap-3",children:[(0,b.jsx)(bj,{ships:c,labels:m,...u}),(0,b.jsx)(bk,{ships:c,...u}),(0,b.jsx)(aB.EmptyState,{icon:(0,b.jsx)(N.Ship,{}),title:"No ships besides argo yet",description:"argo is your own ship: messages to the operator land in its inbox. Commission a ship to add an agent to the fleet.",action:k})]})}let v=(s=null===(o={...c,squadronsOf:l,pluginShipIds:n}).sort?ao:(p=o.sort,q=o.squadronsOf,r=("ascending"===p.direction?1:-1)*("seen"===p.column?-1:1),(a,b)=>{let c=ah(a,{column:p.column,squadronsOf:q}),d=ah(b,{column:p.column,squadronsOf:q});return void 0===c||void 0===d?Number(void 0===c)-Number(void 0===d):r*c.localeCompare(d,void 0,{sensitivity:"base"})}),a.filter(a=>{let b;return(""===(b=o.query.trim().toLowerCase())||a.name.toLowerCase().includes(b)||a.type.toLowerCase().includes(b))&&function(a,b){let{filters:c,squadronsOf:d,pluginShipIds:e=am}=b;if("retired"===a.status&&!c.isRetiredShown)return!1;let f="retired"===a.status?void 0:a.status;return an(c.squadron,d?.get(a.id)?.squadronId)&&an(c.status,f)&&an(c.crewRequest,(0,ak.crewRequestKey)((0,ai.crewRequestStage)(a)))&&an(c.kind,"operator"===a.kind||"viewer"===a.kind?"console":e.has(a.id)?"plugin":"trierarch"===a.type?"trierarch":(null===a.harness?void 0:ae[a.harness])??"other")&&an(c.type,a.type)&&(0,aj.carriesEvery)(a,c.labelValueIds)}(a,o)}).toSorted((a,b)=>s(a,b)||a.name.localeCompare(b.name)||a.id.localeCompare(b.id))),w=c.query.trim();return(0,b.jsxs)("div",{"data-slot":"fleet-table","data-state":"ready",className:"flex flex-col gap-3",children:[(0,b.jsx)(bg,{ships:a,view:c,onViewChange:d,shownCount:v.length,squadronsOf:l,labels:m}),void 0===m?null:(0,b.jsx)(a2,{groups:(0,aj.filterGroupsOf)(m),picked:(0,aj.pickedChips)(c.filters.labelValueIds,m),onPick:a=>{d(a4(c,[...c.filters.labelValueIds,a]))},onRemove:a=>{d(a4(c,c.filters.labelValueIds.filter(b=>b!==a)))},onClear:()=>{d(a4(c,[]))}}),0===v.length?(0,b.jsx)(aB.EmptyState,{variant:"no-results",title:""===w?"No ships match these filters.":`No ships match “${w}”.`,action:(0,b.jsx)(g.Button,{size:"xs","data-testid":"fleet-clear-filters",onClick:()=>{d({...al,sort:c.sort})},children:(t=at(c.filters)>0,""===w?"Clear filters":t?"Clear search and filters":"Clear search")})}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(bj,{ships:v,labels:m,sort:c.sort,onSort:a=>{var b;d({...c,sort:(b=c.sort,b?.column!==a?{column:a,direction:"ascending"}:"ascending"===b.direction?{column:a,direction:"descending"}:null)})},...u}),(0,b.jsx)(bk,{ships:v,...u})]})]})}function bm({view:a,onViewChange:c,newShipIds:d,renderRowActions:e}){let f=(0,o.useFleetSnapshot)(),g=(0,q.useNow)(),h=(0,E.useSquadrons)(),i=(0,o.useLabelContext)(),j=(0,U.usePluginShipIds)();return(0,b.jsx)("section",{"aria-label":"Fleet",className:"flex flex-col gap-3",children:(0,b.jsx)(bl,{ships:f.data??[],view:a,onViewChange:c,state:f.isPending?"loading":f.isError?"error":"ready",error:{detail:f.error?.message,onRetry:()=>{f.refetch()}},highlightedShipIds:d,now:g,renderRowActions:e,squadronsOf:h.data?(0,V.shipsInSquadrons)(h.data):void 0,labels:i,pluginShipIds:j})})}var bn=a.i(53805),bo=a.i(71027),bp=a.i(21521),bq=a.i(91003),br=a.i(38023),bs=a.i(73224),bt=a.i(65563),bu=a.i(67336),bv=a.i(10572),bw=a.i(34159);a.s(["OverviewPage",0,function({view:a,isCommissionAsked:i}){let j=(0,e.useRouter)(),k=(0,o.useFleetSnapshot)(),l=(0,bu.useLiveFleet)(),m=(0,br.useConsoleFrame)(),n=(0,C.messageLimitReached)((0,A.useFleetLimits)().data),p=(0,B.useHostedAccountUrl)(),q=(0,bt.useAccess)(),r=(0,bw.usePluginNav)(),[u,v]=(0,f.useState)(!1),[w,x]=(0,f.useOptimistic)(a);(0,bv.useSignInWhenSessionEnds)([k.error,l.error]);let y=a=>{let b=(function(a){let b=new URLSearchParams;for(let[c,d]of(""!==a.query&&b.set("q",a.query),[["status",a.filters.status],["crew",a.filters.crewRequest],["kind",a.filters.kind],["type",a.filters.type],["squadron",a.filters.squadron]]))for(let a of d)b.append(c,a);for(let c of(a.filters.isRetiredShown&&b.set("retired","1"),a.filters.labelValueIds))b.append("label",c);return null!==a.sort&&(b.set("sort",a.sort.column),"descending"===a.sort.direction&&b.set("order","desc")),b})(a).toString();(0,f.startTransition)(()=>{x(a),j.replace(""===b?"/":`/?${b}`,{scroll:!1})})};return(0,b.jsxs)(bq.ListPage,{...m,title:"Fleet overview",description:k.data?function(a){let b=s(a.ships).length,c=a.ships.filter(a=>"agent"===a.kind&&"retired"===a.status).length;if(0===b&&0===c)return a.canCommission?"Only argo so far. Ships you commission appear here.":"Only argo so far.";let d=0===c?"":`, ${String(c)} retired`;return`${1===b?"1 active ship":`${String(b)} active ships`} and argo${d}. Changes appear as they happen.`}({ships:k.data,canCommission:q.canManage}):"Loading your fleet",primaryAction:(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2 max-sm:flex-col max-sm:items-stretch",children:[(0,b.jsx)(g.Button,{render:(0,b.jsx)(d.default,{href:"/labels"}),nativeButton:!1,icon:(0,b.jsx)(c.Tag,{}),"data-testid":"overview-labels",children:q.canDefineLabels?"Manage labels":"View labels"}),q.canManage?(0,b.jsx)(I,{isOpen:u||i,onOpenChange:b=>{v(b),!b&&i&&y(a)}}):null]}),live:l.live,children:[(0,b.jsx)(bs.FleetSegments,{active:"ships",needsCrewCount:r.needsCrewCount}),void 0===n?null:(0,b.jsx)(bp.LimitNotice,{...(0,C.messageLimitNotice)(n),accountUrl:p,testId:"overview-message-limit"}),(0,b.jsx)(T,{}),(0,b.jsx)(t,{}),(0,b.jsx)(bm,{view:w,onViewChange:y,newShipIds:l.newShipIds,renderRowActions:(a,c)=>(0,b.jsx)(bn.ShipActions,{ship:a,layout:"table"===c?"menu":"phone"===c?"sheet":"next",compose:h.ComposeMessage,crewLineFlow:bo.NewCrewLineFlow})})]})}],59446)}];
2
2
 
3
3
  //# sourceMappingURL=packages_console_app_%28console%29_overview-page_tsx_15siba6._.js.map