@aeolus-fleet/console 0.24.1 → 0.25.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (254) hide show
  1. package/.next/standalone/packages/console/.next/BUILD_ID +1 -1
  2. package/.next/standalone/packages/console/.next/build-manifest.json +3 -3
  3. package/.next/standalone/packages/console/.next/prerender-manifest.json +3 -3
  4. package/.next/standalone/packages/console/.next/server/app/(console)/inbox/page/server-reference-manifest.json +16 -16
  5. package/.next/standalone/packages/console/.next/server/app/(console)/inbox/page.js.nft.json +1 -1
  6. package/.next/standalone/packages/console/.next/server/app/(console)/inbox/page_client-reference-manifest.js +1 -1
  7. package/.next/standalone/packages/console/.next/server/app/(console)/labels/page/server-reference-manifest.json +16 -16
  8. package/.next/standalone/packages/console/.next/server/app/(console)/labels/page.js.nft.json +1 -1
  9. package/.next/standalone/packages/console/.next/server/app/(console)/labels/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/packages/console/.next/server/app/(console)/needs-attention/page/server-reference-manifest.json +16 -16
  11. package/.next/standalone/packages/console/.next/server/app/(console)/needs-attention/page.js.nft.json +1 -1
  12. package/.next/standalone/packages/console/.next/server/app/(console)/needs-attention/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/packages/console/.next/server/app/(console)/needs-crew/page/server-reference-manifest.json +16 -16
  14. package/.next/standalone/packages/console/.next/server/app/(console)/needs-crew/page.js.nft.json +1 -1
  15. package/.next/standalone/packages/console/.next/server/app/(console)/needs-crew/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/packages/console/.next/server/app/(console)/network/page/server-reference-manifest.json +16 -16
  17. package/.next/standalone/packages/console/.next/server/app/(console)/network/page.js.nft.json +1 -1
  18. package/.next/standalone/packages/console/.next/server/app/(console)/network/page_client-reference-manifest.js +1 -1
  19. package/.next/standalone/packages/console/.next/server/app/(console)/page/server-reference-manifest.json +16 -16
  20. package/.next/standalone/packages/console/.next/server/app/(console)/page.js.nft.json +1 -1
  21. package/.next/standalone/packages/console/.next/server/app/(console)/page_client-reference-manifest.js +1 -1
  22. package/.next/standalone/packages/console/.next/server/app/(console)/questions/page/server-reference-manifest.json +16 -16
  23. package/.next/standalone/packages/console/.next/server/app/(console)/questions/page.js.nft.json +1 -1
  24. package/.next/standalone/packages/console/.next/server/app/(console)/questions/page_client-reference-manifest.js +1 -1
  25. package/.next/standalone/packages/console/.next/server/app/(console)/settings/page/server-reference-manifest.json +16 -16
  26. package/.next/standalone/packages/console/.next/server/app/(console)/settings/page.js.nft.json +1 -1
  27. package/.next/standalone/packages/console/.next/server/app/(console)/settings/page_client-reference-manifest.js +1 -1
  28. package/.next/standalone/packages/console/.next/server/app/(console)/ships/[shipId]/page/server-reference-manifest.json +16 -16
  29. package/.next/standalone/packages/console/.next/server/app/(console)/ships/[shipId]/page.js.nft.json +1 -1
  30. package/.next/standalone/packages/console/.next/server/app/(console)/ships/[shipId]/page_client-reference-manifest.js +1 -1
  31. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/[squadronId]/page/server-reference-manifest.json +16 -16
  32. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/[squadronId]/page.js.nft.json +1 -1
  33. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/[squadronId]/page_client-reference-manifest.js +1 -1
  34. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/blueprints/[name]/page/server-reference-manifest.json +16 -16
  35. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/blueprints/[name]/page.js.nft.json +1 -1
  36. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/blueprints/[name]/page_client-reference-manifest.js +1 -1
  37. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/page/server-reference-manifest.json +16 -16
  38. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/page.js.nft.json +1 -1
  39. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/templates/[name]/page/server-reference-manifest.json +16 -16
  41. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/templates/[name]/page.js.nft.json +1 -1
  42. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/templates/[name]/page_client-reference-manifest.js +1 -1
  43. package/.next/standalone/packages/console/.next/server/app/(console)/trierarchs/[shipId]/page/server-reference-manifest.json +16 -16
  44. package/.next/standalone/packages/console/.next/server/app/(console)/trierarchs/[shipId]/page.js.nft.json +1 -1
  45. package/.next/standalone/packages/console/.next/server/app/(console)/trierarchs/[shipId]/page_client-reference-manifest.js +1 -1
  46. package/.next/standalone/packages/console/.next/server/app/(console)/trierarchs/page/server-reference-manifest.json +16 -16
  47. package/.next/standalone/packages/console/.next/server/app/(console)/trierarchs/page.js.nft.json +1 -1
  48. package/.next/standalone/packages/console/.next/server/app/(console)/trierarchs/page_client-reference-manifest.js +1 -1
  49. package/.next/standalone/packages/console/.next/server/app/_global-error/page.js.nft.json +1 -1
  50. package/.next/standalone/packages/console/.next/server/app/_global-error.html +1 -1
  51. package/.next/standalone/packages/console/.next/server/app/_global-error.rsc +1 -1
  52. package/.next/standalone/packages/console/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  53. package/.next/standalone/packages/console/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  54. package/.next/standalone/packages/console/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  55. package/.next/standalone/packages/console/.next/server/app/_not-found/page.js.nft.json +1 -1
  56. package/.next/standalone/packages/console/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  57. package/.next/standalone/packages/console/.next/server/app/api/reads/[read]/route.js.nft.json +1 -1
  58. package/.next/standalone/packages/console/.next/server/app/sign-in/failed/page.js.nft.json +1 -1
  59. package/.next/standalone/packages/console/.next/server/app/sign-in/failed/page_client-reference-manifest.js +1 -1
  60. package/.next/standalone/packages/console/.next/server/app/sign-in/page.js.nft.json +1 -1
  61. package/.next/standalone/packages/console/.next/server/app/sign-in/page_client-reference-manifest.js +1 -1
  62. package/.next/standalone/packages/console/.next/server/app/version/route.js.nft.json +1 -1
  63. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__06f_104._.js +1 -1
  64. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__14r_nz7._.js +1 -1
  65. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__1cfwaji._.js +1 -1
  66. package/.next/standalone/packages/console/.next/server/chunks/_1uqphll._.js +1 -1
  67. package/.next/standalone/packages/console/.next/server/chunks/ssr/0mxb_server_app_(console)_squadrons_blueprints_[name]_page_actions_170owr_.js +1 -1
  68. package/.next/standalone/packages/console/.next/server/chunks/ssr/0mxb_server_app_(console)_squadrons_templates_[name]_page_actions_09abrr0.js +1 -1
  69. package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console__next-internal_server_app_(console)_needs-crew_page_actions_08gu8-f.js +1 -1
  70. package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console__next-internal_server_app_(console)_network_page_actions_1muuv-j.js +1 -1
  71. package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console__next-internal_server_app_(console)_questions_page_actions_12d6yd2.js +1 -1
  72. package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console__next-internal_server_app_(console)_settings_page_actions_0b6qztr.js +1 -1
  73. package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console__next-internal_server_app_(console)_ships_[shipId]_page_actions_0g2nd1p.js +1 -1
  74. package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console__next-internal_server_app_(console)_squadrons_page_actions_1x3afts.js +1 -1
  75. package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console__next-internal_server_app_(console)_trierarchs_page_actions_1ow37mz.js +1 -1
  76. package/.next/standalone/packages/console/.next/server/chunks/ssr/1eui__next-internal_server_app_(console)_needs-attention_page_actions_1jfgclw.js +1 -1
  77. package/.next/standalone/packages/console/.next/server/chunks/ssr/1eui__next-internal_server_app_(console)_squadrons_[squadronId]_page_actions_1lzqlye.js +1 -1
  78. package/.next/standalone/packages/console/.next/server/chunks/ssr/1eui__next-internal_server_app_(console)_trierarchs_[shipId]_page_actions_0l7bxva.js +1 -1
  79. package/.next/standalone/packages/console/.next/server/chunks/ssr/{[root-of-the-server]__0-cdyrs._.js → [root-of-the-server]__0_jpfes._.js} +2 -2
  80. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__197gd9r._.js +1 -1
  81. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0-xdh8c._.js +3 -0
  82. package/.next/standalone/packages/console/.next/server/chunks/ssr/_00in26l._.js +1 -1
  83. package/.next/standalone/packages/console/.next/server/chunks/ssr/_01eyvjo._.js +3 -0
  84. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0584-vx._.js +3 -0
  85. package/.next/standalone/packages/console/.next/server/chunks/ssr/{_0-xv1jc._.js → _07bnv77._.js} +1 -1
  86. package/.next/standalone/packages/console/.next/server/chunks/ssr/_09_ui2l._.js +1 -1
  87. package/.next/standalone/packages/console/.next/server/chunks/ssr/{_1_6-t9y._.js → _09we890._.js} +2 -2
  88. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0cak8i7._.js +1 -1
  89. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0i1lwyh._.js +3 -0
  90. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0ie3s47._.js +3 -0
  91. package/.next/standalone/packages/console/.next/server/chunks/ssr/{_0j64h07._.js → _0jmht-i._.js} +1 -1
  92. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0ll55v1._.js +1 -1
  93. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0nelrz_._.js +3 -0
  94. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0q2azsd._.js +3 -0
  95. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0qrugya._.js +3 -0
  96. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0r-y7ty._.js +3 -0
  97. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0tree1w._.js +1 -1
  98. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0u0wzbz._.js +3 -0
  99. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0vw1jgi._.js +3 -0
  100. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0wy-ep_._.js +1 -1
  101. package/.next/standalone/packages/console/.next/server/chunks/ssr/_11s1izd._.js +1 -1
  102. package/.next/standalone/packages/console/.next/server/chunks/ssr/_127j_99._.js +3 -0
  103. package/.next/standalone/packages/console/.next/server/chunks/ssr/_130xl-e._.js +1 -1
  104. package/.next/standalone/packages/console/.next/server/chunks/ssr/_13q51ov._.js +1 -1
  105. package/.next/standalone/packages/console/.next/server/chunks/ssr/_15_xzod._.js +1 -1
  106. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1615ei-._.js +3 -0
  107. package/.next/standalone/packages/console/.next/server/chunks/ssr/_18ym0gp._.js +3 -0
  108. package/.next/standalone/packages/console/.next/server/chunks/ssr/_195z53h._.js +1 -1
  109. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1adtjss._.js +3 -0
  110. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1buuyye._.js +1 -1
  111. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1cgq4el._.js +3 -0
  112. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1geqwzr._.js +3 -0
  113. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1hs5dvz._.js +3 -0
  114. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1lbotqi._.js +3 -0
  115. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1lr2spu._.js +1 -1
  116. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1mk5_2i._.js +3 -0
  117. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1or2awi._.js +1 -1
  118. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1p-k4-7._.js +3 -0
  119. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1qdwv0j._.js +1 -1
  120. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1u0h4gj._.js +1 -1
  121. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1vwkopd._.js +3 -0
  122. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1wmq3ah._.js +1 -1
  123. package/.next/standalone/packages/console/.next/server/chunks/ssr/_207-ta6._.js +3 -0
  124. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_next_dist_1v8aef8._.js +1 -1
  125. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_common_dist_1_gq_cl._.js +1 -1
  126. package/.next/standalone/packages/console/.next/server/chunks/ssr/{packages_console_0ra01-g._.js → packages_console_0ogk6t7._.js} +1 -1
  127. package/.next/standalone/packages/console/.next/server/chunks/ssr/{packages_console_0udiuzu._.js → packages_console_0sqk26-._.js} +1 -1
  128. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_1ey0_d3._.js +3 -0
  129. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console__next-internal_server_app_(console)_inbox_page_actions_0q9_xye.js +1 -1
  130. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console__next-internal_server_app_(console)_labels_page_actions_0tk7mqs.js +1 -1
  131. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console__next-internal_server_app_(console)_page_actions_1ftjjyq.js +1 -1
  132. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_needs-attention_page_tsx_03s6y-o._.js +1 -1
  133. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_overview-page_tsx_15siba6._.js +1 -1
  134. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_ships_[shipId]_ship-page_tsx_0oahz0r._.js +1 -1
  135. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_squadrons_[squadronId]_page_tsx_0f8nmsh._.js +1 -1
  136. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_squadrons_page_tsx_1xpvx8n._.js +1 -1
  137. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_components_1_88pm4._.js +1 -1
  138. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_components_1cwibut._.js +1 -1
  139. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_components_1s1xs87._.js +1 -1
  140. package/.next/standalone/packages/console/.next/server/chunks/ssr/{packages_console_features_02isbga._.js → packages_console_features_0tur713._.js} +2 -2
  141. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_features_ship_1ndu25i._.js +60 -0
  142. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_features_ship_organisms_message-sheet_tsx_0quy9k0._.js +1 -1
  143. package/.next/standalone/packages/console/.next/server/chunks/ssr/{packages_console_features_squadrons_organisms_form-squadron-dialog_tsx_0u86bst._.js → packages_console_features_squadrons_organisms_form-squadron-dialog_tsx_0la8z4f._.js} +1 -1
  144. package/.next/standalone/packages/console/.next/server/chunks/ssr/{packages_console_features_trierarchs_organisms_clear-worktree-dialog_tsx_14icmo7._.js → packages_console_features_trierarchs_organisms_clear-worktree-dialog_tsx_01eb-00._.js} +1 -1
  145. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_lib_11xnux-._.js +1 -1
  146. package/.next/standalone/packages/console/.next/server/functions-config-manifest.json +2 -2
  147. package/.next/standalone/packages/console/.next/server/middleware-build-manifest.js +3 -3
  148. package/.next/standalone/packages/console/.next/server/pages/500.html +1 -1
  149. package/.next/standalone/packages/console/.next/server/server-reference-manifest.js +1 -1
  150. package/.next/standalone/packages/console/.next/server/server-reference-manifest.json +17 -17
  151. package/.next/standalone/packages/console/.next/static/bXH06v_D0kt92IaQZhnO3/_clientMiddlewareManifest.js +6 -0
  152. package/.next/standalone/packages/console/.next/static/chunks/024gtos6941vd.js +1 -0
  153. package/.next/standalone/packages/console/.next/static/chunks/0bb19hfyc42kn.js +1 -0
  154. package/.next/standalone/packages/console/.next/static/chunks/{2livhrlemepl2.js → 0hdn93y7e5xwj.js} +1 -1
  155. package/.next/standalone/packages/console/.next/static/chunks/{05bfzj94tyl8h.js → 0jla970vmpygy.js} +1 -1
  156. package/.next/standalone/packages/console/.next/static/chunks/{1m-y884h34ihx.js → 0jvnv44qtww0y.js} +1 -1
  157. package/.next/standalone/packages/console/.next/static/chunks/{272z35i6ulqd6.js → 0rr9rjc_bc3gf.js} +1 -1
  158. package/.next/standalone/packages/console/.next/static/chunks/{2ys91r118pnlx.js → 0t6-mtlfuonvu.js} +1 -1
  159. package/.next/standalone/packages/console/.next/static/chunks/0yi6kd19bc8bq.js +1 -0
  160. package/.next/standalone/packages/console/.next/static/chunks/{1gzb5gjzdx1fj.js → 13adqemu7o09r.js} +1 -1
  161. package/.next/standalone/packages/console/.next/static/chunks/14gq9h4bre4zl.js +1 -0
  162. package/.next/standalone/packages/console/.next/static/chunks/1bh-eec4wo6y4.css +3 -0
  163. package/.next/standalone/packages/console/.next/static/chunks/1cg31hv7ug_rw.js +1 -0
  164. package/.next/standalone/packages/console/.next/static/chunks/1d60j998mgxed.js +1 -0
  165. package/.next/standalone/packages/console/.next/static/chunks/{22vsj-fp7lwfm.js → 1ek70m0owmcgq.js} +1 -1
  166. package/.next/standalone/packages/console/.next/static/chunks/1jz4bf7w_acy8.js +1 -0
  167. package/.next/standalone/packages/console/.next/static/chunks/{0pxkg9fqe7c2a.js → 1kzen4nzgfhzx.js} +1 -1
  168. package/.next/standalone/packages/console/.next/static/chunks/1s_391feiypzt.js +1 -0
  169. package/.next/standalone/packages/console/.next/static/chunks/1z5kuqw6npyei.js +1 -0
  170. package/.next/standalone/packages/console/.next/static/chunks/26b3un_8lel5h.js +1 -0
  171. package/.next/standalone/packages/console/.next/static/chunks/{2olrngonwovg1.js → 2euphq2qdtm42.js} +1 -1
  172. package/.next/standalone/packages/console/.next/static/chunks/2ghnwtwxugay1.js +1 -0
  173. package/.next/standalone/packages/console/.next/static/chunks/2iwxdddbd25in.js +1 -0
  174. package/.next/standalone/packages/console/.next/static/chunks/2jf-hefdqyy1k.js +1 -0
  175. package/.next/standalone/packages/console/.next/static/chunks/2kx4hg-vr3v9r.js +1 -0
  176. package/.next/standalone/packages/console/.next/static/chunks/{2y1ychuj013ho.js → 2mlx4u2m3gj4n.js} +1 -1
  177. package/.next/standalone/packages/console/.next/static/chunks/{440cmkngdnwjl.js → 2otflfbehbza4.js} +1 -1
  178. package/.next/standalone/packages/console/.next/static/chunks/2umcallzycy-l.js +1 -0
  179. package/.next/standalone/packages/console/.next/static/chunks/2vjnc-m734xfm.js +1 -0
  180. package/.next/standalone/packages/console/.next/static/chunks/{3xerv7zkfjj5f.js → 2vnmap15_4ik5.js} +1 -1
  181. package/.next/standalone/packages/console/.next/static/chunks/2w9atwkwe6d4r.js +1 -0
  182. package/.next/standalone/packages/console/.next/static/chunks/2zu0p9hjzqg_-.js +1 -0
  183. package/.next/standalone/packages/console/.next/static/chunks/3-d52kayngqrj.js +1 -0
  184. package/.next/standalone/packages/console/.next/static/chunks/31e5y4a7udpwd.js +58 -0
  185. package/.next/standalone/packages/console/.next/static/chunks/38apellmoht8h.js +1 -0
  186. package/.next/standalone/packages/console/.next/static/chunks/3cajv70h_jwc3.js +1 -0
  187. package/.next/standalone/packages/console/.next/static/chunks/3dmesrmg4eee9.js +1 -0
  188. package/.next/standalone/packages/console/.next/static/chunks/3dok--efprx9e.js +1 -0
  189. package/.next/standalone/packages/console/.next/static/chunks/3faqga4wbve_5.js +1 -0
  190. package/.next/standalone/packages/console/.next/static/chunks/3fz2o2p_07f9u.js +1 -0
  191. package/.next/standalone/packages/console/.next/static/chunks/3nkqw06zkp9-v.js +1 -0
  192. package/.next/standalone/packages/console/.next/static/chunks/3sgvr4qucbnoq.js +1 -0
  193. package/.next/standalone/packages/console/.next/static/chunks/3xpa57z5k1j9u.js +1 -0
  194. package/.next/standalone/packages/console/.next/static/chunks/41sjts3oeho4o.js +1 -0
  195. package/.next/standalone/packages/console/.next/static/chunks/4415nlj5ho-d-.js +1 -0
  196. package/.next/standalone/packages/console/package.json +3 -3
  197. package/package.json +3 -3
  198. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0002gxt._.js +0 -3
  199. package/.next/standalone/packages/console/.next/server/chunks/ssr/_02c2pnv._.js +0 -3
  200. package/.next/standalone/packages/console/.next/server/chunks/ssr/_03-jvct._.js +0 -3
  201. package/.next/standalone/packages/console/.next/server/chunks/ssr/_035_swl._.js +0 -3
  202. package/.next/standalone/packages/console/.next/server/chunks/ssr/_05dxqcz._.js +0 -3
  203. package/.next/standalone/packages/console/.next/server/chunks/ssr/_07efnzg._.js +0 -3
  204. package/.next/standalone/packages/console/.next/server/chunks/ssr/_07l5_l3._.js +0 -3
  205. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0c8r4ic._.js +0 -3
  206. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0c_dtjp._.js +0 -3
  207. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0gfonj-._.js +0 -3
  208. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0mjh8m_._.js +0 -3
  209. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0vz062m._.js +0 -3
  210. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0wv-tvp._.js +0 -3
  211. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0xokkhj._.js +0 -3
  212. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0z4io62._.js +0 -3
  213. package/.next/standalone/packages/console/.next/server/chunks/ssr/_109o83b._.js +0 -3
  214. package/.next/standalone/packages/console/.next/server/chunks/ssr/_10j98zy._.js +0 -3
  215. package/.next/standalone/packages/console/.next/server/chunks/ssr/_17tqcfc._.js +0 -3
  216. package/.next/standalone/packages/console/.next/server/chunks/ssr/_18-oreb._.js +0 -3
  217. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1ufgm_3._.js +0 -3
  218. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1yexojo._.js +0 -3
  219. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_0v_tqts._.js +0 -3
  220. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_1-pfly6._.js +0 -3
  221. package/.next/standalone/packages/console/.next/static/chunks/07obh07hyi82g.js +0 -1
  222. package/.next/standalone/packages/console/.next/static/chunks/09gltimtd_1jl.js +0 -1
  223. package/.next/standalone/packages/console/.next/static/chunks/0_r81qz0t6xsb.js +0 -1
  224. package/.next/standalone/packages/console/.next/static/chunks/0ejh40p__h8t0.js +0 -1
  225. package/.next/standalone/packages/console/.next/static/chunks/0n7_dj8kftk93.js +0 -1
  226. package/.next/standalone/packages/console/.next/static/chunks/0nxdhjyy-zyni.js +0 -1
  227. package/.next/standalone/packages/console/.next/static/chunks/0pzres1skm0vd.js +0 -1
  228. package/.next/standalone/packages/console/.next/static/chunks/0y-anncq_7ras.js +0 -1
  229. package/.next/standalone/packages/console/.next/static/chunks/1-im18syfc51b.js +0 -1
  230. package/.next/standalone/packages/console/.next/static/chunks/11eajkv31amlr.js +0 -1
  231. package/.next/standalone/packages/console/.next/static/chunks/1232gyv4_vuub.js +0 -1
  232. package/.next/standalone/packages/console/.next/static/chunks/18sc7_9xzyla2.js +0 -1
  233. package/.next/standalone/packages/console/.next/static/chunks/1awzsmwjij89c.js +0 -1
  234. package/.next/standalone/packages/console/.next/static/chunks/1cq5tafbz355h.js +0 -1
  235. package/.next/standalone/packages/console/.next/static/chunks/1m0eh_ikmo5ic.js +0 -1
  236. package/.next/standalone/packages/console/.next/static/chunks/23yi1fmk4otyc.js +0 -1
  237. package/.next/standalone/packages/console/.next/static/chunks/2c9rf46r9v6zt.js +0 -1
  238. package/.next/standalone/packages/console/.next/static/chunks/2iwt_mra-l0br.css +0 -3
  239. package/.next/standalone/packages/console/.next/static/chunks/2l7o37ff43udf.js +0 -1
  240. package/.next/standalone/packages/console/.next/static/chunks/2ncq4nhbwsdgs.js +0 -1
  241. package/.next/standalone/packages/console/.next/static/chunks/2nijjozl4ghek.js +0 -1
  242. package/.next/standalone/packages/console/.next/static/chunks/2xfw5mgj7ik9t.js +0 -1
  243. package/.next/standalone/packages/console/.next/static/chunks/2zx0k65lh804w.js +0 -1
  244. package/.next/standalone/packages/console/.next/static/chunks/339os1nkzjvc6.js +0 -1
  245. package/.next/standalone/packages/console/.next/static/chunks/39rzz1f2t8dal.js +0 -1
  246. package/.next/standalone/packages/console/.next/static/chunks/3b6yqiji78oyk.js +0 -1
  247. package/.next/standalone/packages/console/.next/static/chunks/3ee04cqroz80b.js +0 -1
  248. package/.next/standalone/packages/console/.next/static/chunks/3ltpx0tfiz0nk.js +0 -1
  249. package/.next/standalone/packages/console/.next/static/chunks/3n_6jrpcjyg8-.js +0 -1
  250. package/.next/standalone/packages/console/.next/static/chunks/3vuchf-sh4562.js +0 -1
  251. package/.next/standalone/packages/console/.next/static/chunks/43-fwug3m1u53.js +0 -1
  252. package/.next/standalone/packages/console/.next/static/yg_hh1BH0519FZsmnyKJX/_clientMiddlewareManifest.js +0 -6
  253. /package/.next/standalone/packages/console/.next/static/{yg_hh1BH0519FZsmnyKJX → bXH06v_D0kt92IaQZhnO3}/_buildManifest.js +0 -0
  254. /package/.next/standalone/packages/console/.next/static/{yg_hh1BH0519FZsmnyKJX → bXH06v_D0kt92IaQZhnO3}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[96138,a=>{"use strict";var b=a.i(87924),c=a.i(50944),d=a.i(72131),e=a.i(94777),f=a.i(86002),g=a.i(64831);let h={name:"arrow-down-left",size:24,node:[["path",{d:"M17 7 7 17",key:"15tmo1"}],["path",{d:"M17 17H7V7",key:"1org7z"}]]};h.node;let i=(0,g.default)(h),j={name:"arrow-up-right",size:24,node:[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]};j.node;let k=(0,g.default)(j),l={name:"mail",size:24,node:[["path",{d:"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7",key:"132q7q"}],["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}]]};l.node;let m=(0,g.default)(l);var n=a.i(48819),o=a.i(80487),p=a.i(9854);function q(a,b){return RegExp(`"${b}"\\s*:\\s*"((?:[^"\\\\]|\\\\.)*)"`).exec(a)?.[1]}let r={"application/vnd.aeolus.squadron.check-in+json":()=>"Checked in at its flagship","application/vnd.aeolus.squadron.role+json":a=>{let b=q(a,"role");return void 0===b?"Given its role":`Given the role: ${b}`},"application/vnd.aeolus.squadron.on-station+json":a=>{let b=q(a,"role");return void 0===b?"Took up its role":`Took up the role: ${b}`},"application/vnd.aeolus.squadron.stand-down+json":()=>"Asked to stand down","application/vnd.aeolus.squadron.stood-down+json":()=>"Stood down"};var s=a.i(72872),t=a.i(31429);function u(a,b){return a.sentAt.localeCompare(b.sentAt)||a.id.localeCompare(b.id)}var v=a.i(12068),w=a.i(24173),x=a.i(40392),y=a.i(50808),z=a.i(97281),A=a.i(23063);function B({message:a,shipId:c,now:d,onOpenMessage:e}){var f,g,h;let j,l,m=a.sender.id===c,n=new Date(a.sentAt),q=void 0!==(l=r[g=(f=a).contentType,g.split(";")[0]?.trim().toLowerCase()??""])?{text:l(f.preview),isCode:!1}:(0,p.isJson)(f.contentType)?{text:0===(j=function(a){let b,c=[],d=0,e=0;for(;e<a.length;){let f=a[e]??"";if('"'===f){let{value:f,end:g}=function(a,b){let c=b+1;for(;c<a.length&&'"'!==a[c];)c+="\\"===a[c]?2:1;return{value:a.slice(b+1,c),end:c+1}}(a,e);1===d&&void 0===b&&a.slice(g).trimStart().startsWith(":")?b=f:1===d&&void 0!==b&&g<=a.length&&'"'===a[g-1]&&(c.push([b,f]),b=void 0),e=g;continue}if("{"===f||"["===f)1===d&&void 0!==b&&(c.push([b,"…"]),b=void 0),d+=1;else if("}"===f||"]"===f)d-=1;else if(1===d&&void 0!==b&&/[-\dtfn]/.test(f)){let d=/^(-?\d[\d.eE+-]*|true|false|null)/.exec(a.slice(e))?.[1];if(void 0!==d){c.push([b,d]),b=void 0,e+=d.length;continue}}e+=1}return c}(h=f.preview)).length?h:j.map(([a,b])=>`${a} ${b}`).join(" · "),isCode:!0}:{text:f.preview,isCode:!1};return(0,b.jsx)("li",{className:"border-b border-border last:border-b-0",children:(0,b.jsxs)("button",{type:"button","data-testid":"message-row","data-message-id":a.id,"aria-label":`${m?"Sent":"Received"} message: ${q.text}`,className:"flex w-full items-start gap-3 px-3.5 py-3 text-left transition-colors duration-(--duration-fast) hover:bg-accent",onClick:()=>{e(a.id)},children:[(0,b.jsx)("span",{"aria-hidden":!0,className:"mt-0.5 flex size-7 shrink-0 items-center justify-center rounded-md border border-tone-ended-border bg-tone-ended-bg text-tone-ended-fg [&_svg]:size-(--size-icon-sm)",children:(0,b.jsx)(m?k:i,{})}),(0,b.jsxs)("span",{className:"flex min-w-0 flex-1 flex-col gap-1",children:[(0,b.jsxs)("span",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,b.jsx)(z.Sentence,{parts:m?"ship"===a.recipient.kind?[(0,t.text)("To "),(0,t.ship)(a.recipient.ship)]:[(0,t.text)(`To any ship of type ${a.recipient.type}`)]:[(0,t.text)("From "),(0,t.ship)(a.sender)],className:"text-body text-foreground max-sm:text-body-touch"}),(0,b.jsx)(A.StatusBadge,{status:a.delivery.state})]}),(0,b.jsx)("span",{"data-testid":"message-line",className:(0,o.classNames)("truncate text-muted-foreground",q.isCode?"font-mono text-id":"text-meta"),children:q.text}),(0,b.jsx)("time",{dateTime:a.sentAt,title:(0,s.fullDateTime)(n),className:"text-meta text-muted-foreground tabular-nums",children:(0,s.relativeTime)(n,d)})]})]})})}function C({shipId:a,messages:c,state:d,onRetry:e,now:f,onOpenMessage:g}){return"loading"===d?(0,b.jsx)(y.LoadingSkeleton,{variant:"list",rows:3,label:"Loading the messages"}):"error"===d?(0,b.jsxs)("div",{className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-3",children:[(0,b.jsx)(x.InlineError,{title:"Couldn’t load the messages",description:"The rest of the page is current. Try again in a moment."}),e?(0,b.jsx)(v.Button,{size:"sm",icon:(0,b.jsx)(n.RotateCw,{"aria-hidden":!0}),onClick:e,className:"self-start",children:"Try again"}):null]}):0===c.length?(0,b.jsx)(w.EmptyState,{variant:"section",icon:(0,b.jsx)(m,{}),title:"No messages yet",description:"Messages this ship sends or receives appear here as they happen."}):(0,b.jsx)("div",{className:"flex flex-col gap-3",children:(function(a){let b=new Map(a.map(a=>[a.id,a])),c=new Map;for(let d of a){let a=function(a,b){let c=new Set([a.id]),d=a,e=null===d.inReplyTo?void 0:b.get(d.inReplyTo);for(;e&&!c.has(e.id);)c.add(e.id),e=null===(d=e).inReplyTo?void 0:b.get(d.inReplyTo);return d}(d,b);c.set(a.id,[...c.get(a.id)??[],d])}return[...c.entries()].map(([a,b])=>{let c=b.toSorted(u);return{id:a,messages:c,lastSentAt:c.at(-1)?.sentAt??""}}).toSorted((a,b)=>b.lastSentAt.localeCompare(a.lastSentAt)||b.id.localeCompare(a.id))})(c).map(c=>(0,b.jsx)("section",{"data-testid":"message-thread","aria-label":`Thread of ${String(c.messages.length)} ${1===c.messages.length?"message":"messages"}`,className:"overflow-hidden rounded-lg border border-border bg-card",children:(0,b.jsx)("ol",{children:c.messages.map(c=>(0,b.jsx)(B,{message:c,shipId:a,now:f,onOpenMessage:g},c.id))})},c.id))})}var D=a.i(34301),E=a.i(65563),F=a.i(6071),G=a.i(2955),H=a.i(90146),I=a.i(65230),J=a.i(17024),K=a.i(82611),L=a.i(38058),M=a.i(93454),N=a.i(88191),O=a.i(73370),P=a.i(8311),Q=a.i(26766),R=a.i(62140),S=a.i(58983),T=a.i(58724),U=a.i(13931),V=a.i(33838),W=a.i(23636),X=a.i(38246),Y=a.i(1851),Z=a.i(67042),$=a.i(36501);let _={request:"Couldn’t request crew",remove:"Couldn’t remove the request",restart:"Couldn’t restart the crew"};function aa({at:a,now:c,children:d}){return(0,b.jsx)("time",{dateTime:a,title:(0,s.fullDateTime)(new Date(a)),className:"tabular-nums",children:d??(0,s.sinceTime)(new Date(a),c)})}function ab({trierarch:a,hasTrierarchs:c}){return(0,b.jsxs)(X.default,{href:c?`/trierarchs/${a.id}`:`/ships/${a.id}`,"data-testid":"crew-request-trierarch",className:"inline-flex min-w-0 items-center gap-1.5 font-medium text-foreground underline decoration-input underline-offset-3 [&_svg]:size-(--size-icon-sm) [&_svg]:shrink-0 [&_svg]:text-muted-foreground",children:[(0,b.jsx)(W.ShipWheel,{"aria-hidden":!0}),(0,b.jsx)("span",{className:"truncate",children:a.name})]})}function ac({requestedBy:a,requestedAt:c,now:d}){let e=null===a?null:a.name===t.OPERATOR_NAME?"you":a.name;return(0,b.jsxs)("span",{"data-testid":"crew-request-requested-by",children:[null===e?"Requested ":`Requested by ${e} `,(0,b.jsx)(aa,{at:c,now:d,children:(0,s.relativeTime)(new Date(c),d)}),"."]})}let ad={note:"border-border bg-muted text-muted-foreground",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 ae({tone:a,icon:c,children:d}){return(0,b.jsxs)("div",{role:"attention"===a?"alert":"waiting"===a?"status":"note","data-testid":"crew-request-note",className:`flex items-start gap-2 rounded-lg border px-3 py-2.5 text-meta [&_svg]:mt-0.5 [&_svg]:size-(--size-icon-sm) [&_svg]:shrink-0 ${ad[a]}`,children:[c,(0,b.jsx)("span",{children:d})]})}function af({stage:a,now:c}){let d="running"===a.status?a.startedAt:null,e=(0,F.restartWords)(a);return null===d&&void 0===e?null:(0,b.jsxs)("span",{className:"text-meta text-muted-foreground","data-testid":"crew-request-session",children:[null===d?null:(0,b.jsxs)(b.Fragment,{children:["since ",(0,b.jsx)(aa,{at:d,now:c})]}),null!==d&&void 0!==e?" · ":null,e]})}function ag({rows:a,machineLabels:c=[]}){return(0,b.jsxs)("dl",{"data-testid":"crew-request-settings",className:"grid grid-cols-[repeat(auto-fill,minmax(8.5rem,1fr))] gap-x-5 gap-y-3 border-t border-border pt-3",children:[a.map(a=>(0,b.jsxs)("div",{className:"flex min-w-0 flex-col gap-0.5",children:[(0,b.jsx)("dt",{className:"text-caption font-medium text-muted-foreground",children:a.label}),(0,b.jsxs)("dd",{className:"flex min-w-0 flex-wrap items-baseline gap-x-1.5 text-body font-medium",children:[null===a.value?(0,b.jsx)("span",{className:"font-normal text-muted-foreground",children:"None"}):(0,b.jsx)("span",{className:a.isMono?"truncate font-mono text-id":"truncate",children:"Harness"===a.label?(0,Z.harnessWord)(a.value):a.value}),void 0===a.meta?null:(0,b.jsx)("span",{className:"text-meta font-normal text-muted-foreground",children:a.meta})]})]},a.label)),0===c.length?null:(0,b.jsxs)("div",{className:"col-span-full flex min-w-0 flex-col gap-0.5","data-testid":"crew-request-machine-labels",children:[(0,b.jsx)("dt",{className:"text-caption font-medium text-muted-foreground",children:"Machine labels"}),(0,b.jsx)("dd",{className:"flex min-w-0 flex-wrap items-center gap-1.5",children:c.map((a,c)=>(0,b.jsxs)(d.Fragment,{children:[0===c?null:(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:"and"}),(0,b.jsx)($.LabelChip,{chip:a})]},a.valueId))})]})]})}function ah(){return(0,b.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,b.jsx)(R.ListChecks,{"aria-hidden":!0,className:"size-(--size-icon) text-muted-foreground"}),(0,b.jsx)("h2",{className:"text-section font-semibold",children:"Crew request"})]})}function ai(a){let{noMachineMatchesReason:c}=(0,Y.useConsoleConstants)(),{stage:d,requestedBy:e,now:f,canManage:g,isAwaitingCrew:h,busy:i,error:j}=a,k=void 0===j?null:(0,b.jsx)(x.InlineError,{title:_[j.action],description:`${j.message} Nothing changed.`});if("none"===d.kind)return(0,b.jsxs)("section",{"aria-label":"Crew request","data-testid":"crew-request",className:"flex flex-col gap-2.5 rounded-lg border border-border bg-card px-4 py-3.5 shadow-sm",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3.5",children:[(0,b.jsx)(ah,{}),(0,b.jsx)("p",{className:"min-w-0 flex-1 text-meta text-muted-foreground",children:a.hasTrierarchs?"No crew request. A crew request keeps this ship crewed: a trierarch starts a session for it and restarts it when it stops.":"No crew request. A crew request puts this ship on your Needs crew list until you crew it by hand."}),g?(0,b.jsx)(v.Button,{size:"sm",icon:(0,b.jsx)(R.ListChecks,{}),isLoading:"request"===i,onClick:a.onRequest,"data-testid":"crew-request-request",children:"Request crew"}):null]}),k]});let l=(0,F.crewRequestAction)(d),m=void 0!==i;return(0,b.jsxs)("section",{"aria-label":"Crew request","data-testid":"crew-request",className:"flex flex-col gap-2.5 rounded-lg border border-border bg-card px-4 py-3.5 shadow-sm",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,b.jsx)(ah,{}),(0,b.jsxs)("span",{className:"inline-flex min-w-0 items-center gap-2","data-testid":"crew-request-state",children:["assigned"===d.kind?(0,b.jsx)(A.StatusBadge,{status:d.status}):(0,b.jsx)(A.StatusBadge,{status:d.kind}),"needsCrew"===d.kind?(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:a.hasTrierarchs?"not assigned yet":d.reason??(0,b.jsxs)(b.Fragment,{children:["since ",(0,b.jsx)(aa,{at:d.requestedAt,now:f})]})}):null,"crewedByHand"===d.kind&&null!==d.since?(0,b.jsxs)("span",{className:"text-meta text-muted-foreground",children:["since ",(0,b.jsx)(aa,{at:d.since,now:f})]}):null,"assigned"===d.kind?(0,b.jsx)(af,{stage:d,now:f}):null,"assigned"===d.kind&&"releasing"===d.status&&void 0!==a.statusChangedAt?(0,b.jsxs)("span",{className:"text-meta text-muted-foreground",children:["asked ",(0,b.jsx)(aa,{at:a.statusChangedAt,now:f})]}):null]}),"assigned"===d.kind?(0,b.jsxs)("span",{className:"inline-flex min-w-0 items-center gap-1 text-meta",children:["on ",(0,b.jsx)(ab,{trierarch:d.trierarch,hasTrierarchs:a.hasTrierarchs??!1})]}):null,(0,b.jsx)("span",{className:"flex-1"}),"assigned"===d.kind&&"releasing"===d.status?(0,b.jsxs)("span",{className:"text-meta text-muted-foreground",children:["Waiting for ",d.trierarch.name]}):null,g?(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:["remove"===l?(0,b.jsx)(v.Button,{size:"sm",variant:"ghost",isLoading:"remove"===i,disabled:m,onClick:a.onRemove,"data-testid":"crew-request-remove",children:"Remove request"}):null,(0,F.isRestartable)(d)?(0,b.jsx)(v.Button,{size:"sm",icon:(0,b.jsx)(V.RotateCcw,{}),isLoading:"restart"===i,disabled:m,onClick:a.onRestart,"data-testid":"crew-request-restart",children:"Restart"}):null,void 0!==a.onEdit&&void 0!==l?(0,b.jsx)(v.Button,{size:"sm",icon:(0,b.jsx)(T.Pen,{}),disabled:m,onClick:a.onEdit,"data-testid":"crew-request-edit",children:"Edit…"}):null,"release"===l?(0,b.jsx)(v.Button,{size:"sm",icon:(0,b.jsx)(U.Power,{}),disabled:m,onClick:a.onRelease,"data-testid":"crew-request-release",children:"Release…"}):null,"needsCrew"===d.kind&&h&&!a.hasTrierarchs?(0,b.jsx)(v.Button,{size:"sm",variant:"primary",icon:(0,b.jsx)(Q.KeyRound,{}),disabled:m,onClick:a.onGetStartingPrompt,"data-testid":"crew-request-prompt",children:"Get starting prompt"}):null]}):null]}),"assigned"===d.kind?function(a,c){let{trierarch:d}=a,e=void 0===c.statusChangedAt?null:(0,b.jsx)(aa,{at:c.statusChangedAt,now:c.now});switch(a.status){case"crewing":return(0,b.jsxs)(ae,{tone:"note",icon:(0,b.jsx)(S.LoaderCircle,{"aria-hidden":!0}),children:[d.name," is starting the session."]});case"running":return null;case"restarting":return(0,b.jsxs)(ae,{tone:"waiting",icon:(0,b.jsx)(V.RotateCcw,{"aria-hidden":!0}),children:[(0,b.jsx)("strong",{className:"font-medium",children:null===e?"The session stopped.":(0,b.jsxs)(b.Fragment,{children:["The session stopped at ",e,"."]})})," ",d.name," is starting it again. Once its restarts are used up it stops trying and the request shows Crashed."]});case"crashed":return(0,b.jsxs)(ae,{tone:"attention",icon:(0,b.jsx)(O.CircleX,{"aria-hidden":!0}),children:[(0,b.jsx)("strong",{className:"font-medium",children:null===e?"Crashed.":(0,b.jsxs)(b.Fragment,{children:["Crashed at ",e,"."]})})," The session kept stopping and ",d.name," ","stopped trying. The lease still holds, so new deliveries wait in the inbox. Restart crews it again with the same settings."]});case"releasing":return(0,b.jsxs)(ae,{tone:"note",icon:(0,b.jsx)(U.Power,{"aria-hidden":!0}),children:["Releasing: ",d.name," is stopping the session and cleaning up. The request goes away once it confirms."]})}}(d,{statusChangedAt:a.statusChangedAt,now:f}):null,"needsCrew"===d.kind&&a.hasTrierarchs?null===d.reason?(0,b.jsx)(ae,{tone:"note",icon:(0,b.jsx)(S.LoaderCircle,{"aria-hidden":!0}),children:"Waiting for the trierarch plugin to assign a trierarch."}):d.reason===c&&void 0!==a.machineLabels&&a.machineLabels.length>0?(0,b.jsxs)(ae,{tone:"waiting",icon:(0,b.jsx)(P.Clock,{"aria-hidden":!0}),children:[(0,b.jsx)("strong",{className:"font-medium",children:"No machine matches these labels."})," The plugin places this ship only on a machine with ",(0,K.machineLabelsText)(a.machineLabels),", and none"," ",(0,K.noMatchWords)(a.machineLabels.length).carries,". It assigns a trierarch as soon as one does; until then this ship is on Needs crew."]}):(0,b.jsxs)(ae,{tone:"waiting",icon:(0,b.jsx)(P.Clock,{"aria-hidden":!0}),children:[(0,b.jsxs)("strong",{className:"font-medium",children:[(0,t.capitalised)(d.reason),"."]})," The plugin assigns a trierarch as soon as one fits. Until then this ship is on Needs crew."]}):null,k,void 0===a.settingsRows?null:(0,b.jsx)(ag,{rows:a.settingsRows,machineLabels:a.machineLabels}),(0,b.jsxs)("p",{className:"text-meta text-muted-foreground",children:["needsCrew"!==d.kind||a.hasTrierarchs?null:"On your Needs crew list. Crew it by hand: get a starting prompt and start a session with it. Crewing it fulfils the request; the request stays until you remove it. ","crewedByHand"===d.kind?`${d.crewedBy.name===t.OPERATOR_NAME?"You":d.crewedBy.name} crewed it by hand. The request stands: if the lease ends, the ship is back on Needs crew until you crew it again or release it. `:null,(0,b.jsx)(ac,{requestedBy:e,requestedAt:d.requestedAt,now:f}),"assigned"===d.kind&&"releasing"!==d.status?" The trierarch keeps it crewed until you release it.":null]})]})}var aj=a.i(54763),ak=a.i(12540);let al=(0,D.lazyDialog)(()=>a.A(63219).then(a=>a.RequestCrewDialog),a=>a.isOpen),am=(0,D.lazyDialog)(()=>a.A(94191).then(a=>a.CrewReleaseDialog),a=>a.isOpen),an=(0,D.lazyDialog)(()=>a.A(68359).then(a=>a.StartingPromptDialog),a=>a.isOpen);function ao({ship:a,timeline:c,now:e}){let f=(0,E.useAccess)(),g=(0,M.useHasTrierarchPlugin)(),h=(0,H.useRequestCrew)(),i=(0,H.useLabelContext)(),j=(0,H.useRemoveCrewRequest)(),k=(0,H.useReleaseShip)(),l=(0,H.useGetStartingPrompt)(),[m,n]=(0,d.useState)(),[o,p]=(0,d.useState)(),[q,r]=(0,d.useState)(!1),[s,t]=(0,d.useState)(),[u,v]=(0,d.useState)(!1),[w,x]=(0,d.useState)(),[y]=(0,J.useCrewSettings)(null===a.crewRequest?[]:[a.crewRequest.settings])??[],z=function(a){let c=(0,M.useMachines)(),e=(0,aj.useSquadronsConnection)(),f=(0,ak.useSquadrons)(),g=(0,H.useRequestCrew)(),h=(0,H.useLabelContext)(),[i,j]=(0,d.useState)(),[k,l]=(0,d.useState)(null),[m,n]=(0,d.useState)(),o=(0,G.offersOf)(c.data??[]),{shipLabelsMax:p}=(0,Y.useConsoleConstants)(),q=void 0===h||void 0===c.data?void 0:(0,K.machineLabelsInputOf)(h,{machines:c.data,shipLabelsMax:p}),r=(0,J.useCrewSettings)(a?.heldSettings===void 0?[]:[a.heldSettings]),s=r?.[0]??null,t=(0,G.settingsOf)("edit"===i?(0,G.valuesOf)(s,o):(0,G.defaultValues)(o)),u=void 0!==i&&void 0!==a&&("edit"!==i||void 0!==r),v=(0,M.useCrewSettingsCheck)(u&&void 0!==c.data?null===k?t:k:void 0),w=async b=>{if(void 0!==a&&void 0!==i){g.reset();try{let a=await v.checkNow();if("refused"===a.kind)return void n(new Date)}catch{}g.mutate({shipId:a.shipId,settings:b},{onSuccess:()=>{j(void 0),(0,N.showToast)("edit"===i?{title:`Settings saved for ${a.shipName}`,description:"Its trierarch restarts the session with them.",tone:"success"}:{title:`Crew requested for ${a.shipName}`,description:"The trierarch plugin assigns a trierarch that fits.",tone:"success"})}})}};return{open:a=>{g.reset(),l(null),n(void 0),j(a)},dialog:void 0===a?null:(0,b.jsx)(al,{shipName:a.shipName,mode:i??"request",state:c.isError?"unreachable":void 0===c.data?"loading":"ready",offers:o,heldSettings:s,squadrons:"connected"===e?(f.data??[]).filter(a=>"disbanded"!==a.state).map(a=>a.id):void 0,...void 0===q?{}:{machineLabels:q},check:v.data,refusedAt:m,error:g.error?.message,isPending:g.isPending,isOpen:u,onOpenChange:a=>{a||j(void 0)},onSettingsChange:a=>{l(a),n(void 0)},onSubmit:a=>void w(a),onRetry:()=>{c.refetch()}})}}("agent"===a.kind&&"retired"!==a.status?{shipId:a.id,shipName:a.name,heldSettings:a.crewRequest?.settings}:void 0);if("agent"!==a.kind||"retired"===a.status)return null;let A=(0,F.crewRequestStage)(a),B=a.crewRequest,C=async(a,b)=>{n(a),p(void 0);try{return await b(),!0}catch(b){return p({action:a,message:b instanceof Error?b.message:String(b)}),!1}finally{n(void 0)}},D=()=>{l.reset(),x((0,L.isUnclaimedPromptOut)(a)&&a.startingPrompt?{issuedAt:a.startingPrompt.issuedAt}:void 0),v(!0),l.mutate({shipId:a.id})},O=async()=>{await C("request",()=>h.mutateAsync({shipId:a.id,settings:{}}))&&(0,N.showToast)({title:`${a.name} needs crew`,description:"It is on your Needs crew list until you crew it.",tone:"success",..."awaitingCrew"===a.status&&f.canManage?{action:{label:"Get starting prompt",onClick:D}}:{}})},P=async()=>{null===B||"assigned"!==A.kind||await C("restart",()=>h.mutateAsync({shipId:a.id,settings:B.settings}))&&(0,N.showToast)({title:`Restarting ${a.name}`,description:`${A.trierarch.name} starts its session again with the same settings.`,tone:"success"})},Q=async b=>{t(void 0);let c=(0,F.releaseSteps)(b),d=0;try{for(let b of c)await ("removeCrewRequest"===b?j.mutateAsync({shipId:a.id}):k.mutateAsync({shipId:a.id})),d+=1;r(!1)}catch(b){let a=b instanceof Error?b.message:String(b);t(0===d?`${a} Nothing changed.`:`${a} Its crew request is removed; the session still holds the ship. Try again to end its lease.`)}};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(ai,{stage:A,requestedBy:(0,F.requestedBy)(c),statusChangedAt:(0,F.statusChangedAt)(c),now:e,canManage:f.canManage,isAwaitingCrew:"awaitingCrew"===a.status,hasTrierarchs:g,busy:m,error:o,settingsRows:null===B?void 0:(0,G.settingsRows)(y),...null===B||void 0===i?{}:{machineLabels:(0,I.pickedChips)((0,K.machineLabelIdsOf)(y),i)},onRequest:()=>{g?z.open("request"):O()},...g?{onEdit:()=>{z.open("edit")}}:{},onRemove:()=>void C("remove",()=>j.mutateAsync({shipId:a.id})),onRelease:()=>{t(void 0),r(!0)},onRestart:()=>void P(),onGetStartingPrompt:D}),z.dialog,"crewedByHand"===A.kind||"assigned"===A.kind?(0,b.jsx)(am,{shipName:a.name,stage:A,sessionLocation:null===a.location?null:a.location.description??a.location.kind.toLowerCase(),inFlightCount:a.inFlightDeliveries,isOpen:q,onOpenChange:r,isPending:j.isPending||k.isPending,error:s,onConfirm:()=>void Q(A)}):null,(0,b.jsx)(an,{shipName:a.name,state:l.data?"shown":l.isError?"error":"issuing",prompt:l.data?.prompt,crewLines:l.data?.crewLines,replacesUnclaimed:w,error:l.error?.message,isOpen:u,onOpenChange:a=>{a||(l.reset(),v(!1))},onConfirm:()=>{l.mutate({shipId:a.id})}})]})}var ap=a.i(8219),aq=a.i(75971);function ar({label:a,children:c}){return(0,b.jsxs)("div",{className:"flex min-w-0 flex-col gap-1 bg-card px-3.5 py-3",children:[(0,b.jsx)("dt",{className:"text-meta text-muted-foreground",children:a}),(0,b.jsx)("dd",{className:"flex min-w-0 flex-wrap items-center gap-1.5 text-body text-foreground",children:c})]})}function as({shipId:a,now:c}){let d=(0,ak.useSquadrons)(),e=(0,ak.useCatalogue)(),f=d.data?.find(b=>b.flagship.shipId===a||b.members.some(b=>b.shipId===a));if(!f)return null;let g=(0,b.jsx)(X.default,{href:`/squadrons/${f.id}`,className:"font-mono hover:underline","data-testid":"ship-squadron-link",children:f.id});if(f.flagship.shipId===a)return(0,b.jsxs)("div",{role:"note","data-testid":"ship-flagship-note",className:"flex flex-wrap items-center gap-3 rounded-lg border border-border bg-muted px-3.5 py-3 text-meta text-foreground",children:[(0,b.jsxs)("span",{className:"grow",children:["Flagship of squadron ",g,": the address for work sent to the team. The squadron manager crews it, so it can’t be released, renamed or retired; it retires when the squadron disbands."]}),(0,b.jsx)(v.Button,{size:"xs",nativeButton:!1,render:(0,b.jsx)(X.default,{href:`/squadrons/${f.id}`}),"data-testid":"ship-open-squadron",children:"Open squadron"})]});let h=f.members.find(b=>b.shipId===a);if(!h)return null;let i=e.data?.blueprints.find(a=>a.repository===f.blueprint.repository&&a.name===f.blueprint.name&&a.version===f.blueprint.version),j=i?.roles.find(a=>a.name===h.role)?.template,k=null===h.crew.lastSeenAt?void 0:(0,s.duration)(new Date(h.crew.lastSeenAt),c);return(0,b.jsxs)("div",{className:"flex flex-col gap-3",children:["silent"===h.health&&"disbanded"!==f.state&&(0,b.jsxs)("div",{role:"alert","data-testid":"ship-silent-alert",className:"rounded-lg border border-tone-attention-border bg-tone-attention-bg px-3.5 py-3 text-meta text-foreground",children:[(0,b.jsx)("strong",{className:"font-semibold text-tone-attention-fg",children:void 0===k?"Silent.":`Silent: not seen for ${k}.`})," It checks in"," ",(0,ap.checkInText)(h.checkInMinutes),", so its session has probably stopped. Get a new crew line and start a new session; the old crew line then stops working."]}),(0,b.jsxs)("dl",{"data-testid":"ship-squadron-facts",className:"grid grid-cols-4 gap-px overflow-hidden rounded-lg border border-border bg-border max-sm:grid-cols-2",children:[(0,b.jsxs)(ar,{label:"Squadron",children:[g,(0,b.jsx)(A.StatusBadge,{status:f.state})]}),(0,b.jsxs)(ar,{label:"Role and template",children:[(0,b.jsx)("span",{className:"rounded-sm bg-secondary px-1.5 font-mono text-id",children:h.role}),j&&(0,b.jsxs)(X.default,{href:(0,ap.templatePath)(j),className:"font-mono text-meta hover:underline",children:[j.name,"@",j.version]})]}),(0,b.jsx)(ar,{label:"Health",children:(0,b.jsx)(aq.HealthIndicator,{health:h.health,detail:"silent"===h.health||"late"===h.health?k:void 0})}),(0,b.jsx)(ar,{label:"Hand-offs",children:i?(0,b.jsx)("span",{className:"text-meta",children:(0,ap.handoffsText)((0,ap.handoffsOf)(i,h.role))}):(0,b.jsx)(X.default,{href:(0,ap.blueprintPath)(f.blueprint),className:"text-meta text-muted-foreground hover:underline",children:"See its blueprint"})})]})]})}var at=a.i(53805),au=a.i(71027),av=a.i(79762),aw=a.i(93817),ax=a.i(52357),ay=a.i(71094),az=a.i(87005),aA=a.i(76166),aB=a.i(82314),aC=a.i(33809),aD=a.i(40108);function aE({harness:a,model:c,testId:d}){return null===a&&null===c?null:(0,b.jsxs)("span",{"data-testid":d,className:"flex min-w-0 flex-wrap items-center gap-x-1 text-meta text-muted-foreground",children:[null===a?null:(0,b.jsx)("span",{children:(0,Z.harnessWord)(a)}),null!==a&&null!==c?(0,b.jsx)("span",{"aria-hidden":!0,children:"·"}):null,null===c?null:(0,b.jsx)("span",{className:"truncate font-mono text-id",children:c})]})}var aF=a.i(26955);function aG({ping:a,now:c,testId:d}){return null===a?null:(0,b.jsx)("span",{title:`Pinged ${(0,s.fullDateTime)(new Date(a.sentAt))}`,"data-testid":d,"data-state":a.state,className:"text-meta text-muted-foreground tabular-nums",children:(0,aF.pingLine)(a,c)})}var aH=a.i(41146),aI=a.i(45185),aJ=a.i(84980);function aK({details:a,bytes:c,version:d,testId:e}){return(0,b.jsxs)("details",{"data-testid":e,className:"group rounded-lg border border-border bg-card",children:[(0,b.jsxs)("summary",{className:"flex cursor-pointer list-none items-center gap-1.5 px-3.5 py-2.5 text-meta text-muted-foreground [&::-webkit-details-marker]:hidden",children:[(0,b.jsx)(aH.ChevronRight,{"aria-hidden":!0,className:"size-(--size-icon-sm) shrink-0 transition-transform group-open:rotate-90"}),(0,b.jsx)("span",{className:"font-medium text-foreground",children:"Report details"}),(0,b.jsxs)("span",{className:"tabular-nums",children:["· version ",d]})]}),(0,b.jsx)("div",{className:"px-3.5 pb-3.5",children:(0,b.jsx)(aJ.CodeBlock,{label:(0,aI.reportDetailsLabel)(c),code:(0,aI.reportDetailsJson)(a),copyLabel:"Copy report details",codeTestId:`${e}-code`})})]})}var aL=a.i(92717),aM=a.i(90468);function aN({label:a,children:c}){return(0,b.jsxs)("div",{className:"flex min-w-0 flex-col gap-1 bg-card px-3.5 py-3",children:[(0,b.jsx)("dt",{className:"text-meta text-muted-foreground",children:a}),(0,b.jsx)("dd",{className:"flex min-w-0 items-center gap-1.5 text-body text-foreground",children:c})]})}function aO({ship:a,now:c,labels:d}){let e,f="operator"===a.kind,g=null===a.crewedSince?null:new Date(a.crewedSince),h=new Date(a.commissionedAt);return(0,b.jsxs)("dl",{className:"grid grid-cols-4 gap-px overflow-hidden rounded-lg border border-border bg-border max-sm:grid-cols-2",children:[(0,b.jsx)(aN,{label:"Location",children:(0,b.jsxs)("span",{className:"inline-flex min-w-0 flex-col gap-0.5",children:[(0,b.jsx)(aD.LocationTag,{kind:a.location?.kind??null,description:a.location?.description,size:"md"}),(0,b.jsx)(aE,{harness:a.harness,model:a.model?.id??null,testId:"ship-model"}),null===a.lastSeenAt?null:(0,b.jsx)("time",{dateTime:a.lastSeenAt,title:(0,s.fullDateTime)(new Date(a.lastSeenAt)),"data-testid":"ship-last-seen",className:"text-meta text-muted-foreground tabular-nums",children:(0,s.lastSeen)(new Date(a.lastSeenAt),c)}),(0,b.jsx)(aG,{ping:a.ping,now:c,testId:"ship-ping-status"}),"agent"!==a.kind?null:(0,b.jsx)(aL.ReportLine,{report:a.report,now:c,variant:"full",testId:"ship-report"})]})}),(0,b.jsx)(aN,{label:"Crewed since",children:g?(0,b.jsx)("time",{dateTime:a.crewedSince??void 0,title:(0,s.fullDateTime)(g),className:"tabular-nums",children:(e=c.getTime()-g.getTime()<864e5?(0,s.clockTime)(g):(0,s.shortDateTime)(g),`${e} \xb7 ${(0,s.duration)(g,c)}`)}):(0,b.jsx)("span",{className:"text-muted-foreground",children:"Not crewed"})}),(0,b.jsx)(aN,{label:"Commissioned",children:(0,b.jsx)("time",{dateTime:a.commissionedAt,title:(0,s.fullDateTime)(h),children:f?`Fleet created ${(0,s.dayDate)(h)}`:(0,s.dayDate)(h)})}),(0,b.jsxs)(aN,{label:"Ship id",children:[(0,b.jsx)("span",{className:"truncate font-mono text-id",children:a.id}),(0,b.jsx)(aB.CopyButton,{value:a.id,label:"Copy ship id"})]}),void 0===d?null:(0,b.jsxs)("div",{className:"col-span-4 flex min-w-0 items-center gap-4 bg-card px-3.5 py-2.5 max-sm:col-span-2 max-sm:flex-col max-sm:items-start max-sm:gap-1.5","data-testid":"ship-labels",children:[(0,b.jsx)("dt",{className:"shrink-0 text-meta text-muted-foreground",children:"Labels"}),(0,b.jsx)("dd",{className:"min-w-0 flex-1",children:d})]})]})}function aP({icon:a,children:c}){return(0,b.jsxs)("p",{className:"flex items-center gap-2 rounded-lg border border-border bg-muted px-3.5 py-2.5 text-meta text-muted-foreground [&_svg]:size-(--size-icon-sm) [&_svg]:shrink-0",children:[a,(0,b.jsx)("span",{children:c})]})}function aQ({ship:a,shipId:c,state:d,actions:e,crewRequest:f,now:g,backHref:h="/",labels:i,isPluginShip:j=!1}){let{fleetScopes:k}=(0,Y.useConsoleConstants)();if("loading"===d||"ready"===d&&void 0===a)return(0,b.jsxs)("div",{"aria-busy":!0,"data-testid":"ship-header",className:"flex flex-col gap-4",children:[(0,b.jsx)("span",{className:"sr-only",children:"Loading the ship"}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(aC.Skeleton,{className:"h-8 w-40"}),(0,b.jsx)(aC.Skeleton,{className:"h-6 w-20"}),(0,b.jsx)(aC.Skeleton,{className:"h-6 w-16"})]}),(0,b.jsx)(aC.Skeleton,{className:"h-16 w-full rounded-lg"})]});if("not-found"===d||void 0===a)return(0,b.jsx)("div",{"data-testid":"ship-header",children:(0,b.jsx)(w.EmptyState,{variant:"section",icon:(0,b.jsx)(aw.CircleAlert,{}),title:"Ship not found",description:(0,b.jsxs)(b.Fragment,{children:["No ship with the id ",c?(0,b.jsx)("span",{className:"font-mono text-id",children:c}):"given"," exists in this fleet. The link may be incomplete. Retired ships keep their page."]}),action:(0,b.jsx)(v.Button,{size:"sm",nativeButton:!1,render:({children:a,...c})=>(0,b.jsx)(X.default,{href:h,...c,children:a}),children:"Back to fleet overview"})})});let l="operator"===a.kind,m="retired"===a.status;return(0,b.jsxs)("div",{"data-testid":"ship-header",className:"flex flex-col gap-4 max-sm:gap-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-2.5 max-sm:flex-col max-sm:items-start max-sm:gap-1.5",children:[(0,b.jsx)("h1",{className:"min-w-0",children:(0,b.jsx)(aM.ShipName,{name:a.name,shipId:a.id,size:"title",isSuffixShown:m})}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(A.StatusBadge,{status:a.status}),l?(0,b.jsxs)(aA.Badge,{variant:"kind",children:[(0,b.jsx)(az.UserRound,{"aria-hidden":!0}),"operator"]}):(0,b.jsxs)(b.Fragment,{children:[j?(0,b.jsxs)(aA.Badge,{variant:"kind","data-testid":"ship-plugin",children:[(0,b.jsx)(ay.Plug,{"aria-hidden":!0}),"plugin"]}):null,(0,b.jsx)(aA.Badge,{variant:"type",children:a.type}),a.scopes.filter(a=>k.some(b=>b===a)).map(a=>(0,b.jsx)(aA.Badge,{variant:"kind","data-testid":"ship-fleet-scope",children:a},a))]}),"awaitingCrew"===a.status&&null===a.startingPrompt?(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-meta text-muted-foreground [&_svg]:size-(--size-icon-sm)",children:[(0,b.jsx)(Q.KeyRound,{"aria-hidden":!0}),"No starting prompt issued"]}):null,"awaitingCrew"===a.status&&null!==a.startingPrompt?(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-meta text-muted-foreground [&_svg]:size-(--size-icon-sm)",children:[(0,b.jsx)(Q.KeyRound,{"aria-hidden":!0}),(0,b.jsxs)("span",{children:["Prompt issued"," ",(0,b.jsx)("time",{dateTime:a.startingPrompt.issuedAt,title:(0,s.fullDateTime)(new Date(a.startingPrompt.issuedAt)),children:(0,s.relativeTime)(new Date(a.startingPrompt.issuedAt),g)}),a.startingPrompt.isClaimed?", claimed":", not claimed yet"]})]}):null]})]}),e&&!m?(0,b.jsx)("div",{className:(0,o.classNames)("flex flex-wrap items-center gap-2","max-sm:w-full max-sm:[&>*]:flex-1"),children:e}):null]}),l?(0,b.jsx)(aP,{icon:(0,b.jsx)(ax.Info,{"aria-hidden":!0}),children:"argo is your ship. This console session crews it. It can’t be released, renamed or retired."}):null,m&&null!==a.retiredAt?(0,b.jsxs)(aP,{icon:(0,b.jsx)(av.Archive,{"aria-hidden":!0}),children:["Retired on ",(0,s.fullDateTime)(new Date(a.retiredAt)),". Read-only."]}):null,f,(0,b.jsx)(aO,{ship:a,now:g,labels:i}),"agent"===a.kind&&a.report?.details&&null!==a.report.detailsBytes?(0,b.jsx)(aK,{details:a.report.details,bytes:a.report.detailsBytes,version:a.report.detailsVersion,testId:"ship-report-details"}):null]})}var aR=a.i(63511),aS=a.i(52562),aT=a.i(89027),aU=a.i(13608),aV=a.i(3512),aW=a.i(74215),aX=a.i(19721),aY=a.i(60275);let aZ=(0,aX.default)(async()=>{},{loadableGenerated:{modules:[59068]},ssr:!1});function a$({chip:a,labelKey:c,isBusy:e,onUnassign:f,onChange:g}){let[h,i]=(0,d.useState)(!1);return(0,b.jsxs)(aY.Popover,{open:h,onOpenChange:i,children:[(0,b.jsx)(aY.PopoverTrigger,{render:(0,b.jsx)("button",{type:"button","aria-label":`Change or remove ${a.key}=${a.value}`,"data-testid":"ship-label-yours",disabled:e,className:"inline-flex items-center rounded-sm focus-visible:outline-2 focus-visible:outline-ring disabled:opacity-60"}),children:(0,b.jsx)($.LabelChip,{chip:a,trailing:(0,b.jsx)(aT.ChevronDown,{"aria-hidden":!0}),className:"hover:bg-accent"})}),(0,b.jsxs)(aY.PopoverContent,{align:"start",sideOffset:6,className:"w-72 p-1.5","data-testid":"ship-label-menu",children:[(0,b.jsxs)("span",{className:"flex items-center justify-between px-2 pt-1 pb-1.5 text-meta",children:[(0,b.jsxs)("span",{className:"font-mono",children:[a.key,"=",(0,b.jsx)("span",{className:"text-muted-foreground",children:a.value})]}),(0,b.jsx)("span",{className:"text-muted-foreground",children:"Change the value"})]}),(0,b.jsx)("ul",{className:"flex flex-col",children:(c?.values??[]).map(d=>{let e=d.valueId===a.valueId,f=c?.carriedValueIds.includes(d.valueId)??!1;return(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button",disabled:f,"data-testid":"ship-label-value",className:"flex h-(--size-control-sm) w-full items-center gap-2 rounded-sm px-2 text-left text-body hover:bg-accent focus-visible:outline-2 focus-visible:outline-ring disabled:pointer-events-none [&_svg]:size-(--size-icon-sm)",onClick:()=>{i(!1),g({from:a.valueId,to:d.valueId})},children:[(0,b.jsx)("span",{className:"w-4",children:f?(0,b.jsx)(aS.Check,{"aria-hidden":!0}):null}),(0,b.jsx)("span",{className:(0,o.classNames)("min-w-0 grow truncate font-mono",f&&!e?"text-muted-foreground":void 0),children:d.value}),(0,b.jsx)("span",{className:"text-meta text-muted-foreground tabular-nums",children:f&&!e?"Carried":`${String(d.shipCount)} ${1===d.shipCount?"ship":"ships"}`})]})},d.valueId)})}),(0,b.jsx)("div",{className:"mt-1 border-t border-border pt-1",children:(0,b.jsxs)("button",{type:"button","data-testid":"ship-label-remove",className:"flex h-(--size-control-sm) w-full items-center gap-2 rounded-sm px-2 text-body text-destructive-text hover:bg-accent focus-visible:outline-2 focus-visible:outline-ring [&_svg]:size-(--size-icon-sm)",onClick:()=>{i(!1),f(a.valueId)},children:[(0,b.jsx)(aW.X,{"aria-hidden":!0}),"Remove label"]})})]})]})}function a_({keys:a,isBusy:c,onAssign:e}){let[f,g]=(0,d.useState)(!1);return(0,b.jsxs)(aY.Popover,{open:f,onOpenChange:g,children:[(0,b.jsx)(aY.PopoverTrigger,{render:(0,b.jsx)(v.Button,{variant:"ghost",size:"xs",icon:(0,b.jsx)(aV.Plus,{}),disabled:c,"data-testid":"ship-labels-add"}),children:"Add label"}),(0,b.jsxs)(aY.PopoverContent,{align:"start",sideOffset:6,className:"w-80 p-2","data-testid":"ship-labels-add-popover",children:[(0,b.jsxs)("span",{className:"flex items-center justify-between px-2 pt-1 pb-2 text-body font-medium",children:["Add a label",(0,b.jsx)("span",{className:"text-meta font-normal text-muted-foreground",children:"Yours"})]}),0===a.length?(0,b.jsx)("p",{className:"px-2 py-2 text-meta text-muted-foreground",children:"You have no labels yet. Define one on the Labels page, then put it on ships here."}):(0,b.jsx)(aZ,{groups:[{title:"Yours",keys:[...a]}],pickedValueIds:a.flatMap(a=>a.carriedValueIds),pickedWord:"Carried",onPick:a=>{g(!1),e(a)}}),(0,b.jsx)("p",{className:"mt-2 flex items-center justify-between border-t border-border px-2 pt-2 text-meta",children:(0,b.jsx)(X.default,{href:"/labels",className:"font-medium hover:underline",children:0===a.length?"Define a label":"Manage labels"})})]})]})}function a0({chips:a,keys:c,limit:e,isBusy:f,error:g,onAssign:h,onUnassign:i,onChange:j}){let[k,l]=(0,d.useState)(!1),m=!k&&a.length>3,n=m?a.slice(0,2):a,o=[...new Set(n.filter(a=>"none"!==a.mark).map(a=>a.ownerName))];return(0,b.jsxs)("span",{className:"flex min-w-0 flex-col gap-2","data-testid":"ship-labels-edit",children:[(0,b.jsxs)("span",{className:"flex min-w-0 flex-wrap items-center gap-1.5",children:[0===a.length?(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:"No labels"}):null,n.filter(a=>"none"===a.mark).map(a=>(0,b.jsx)(a$,{chip:a,labelKey:c.find(b=>b.labelId===a.labelId),isBusy:f,onUnassign:i,onChange:j},a.valueId)),m?(0,b.jsxs)("button",{type:"button","aria-label":`Show all ${String(a.length)} labels`,"data-testid":"ship-labels-more",className:"inline-flex h-5.5 items-center rounded-sm bg-secondary px-1.5 text-caption font-medium tabular-nums hover:bg-accent focus-visible:outline-2 focus-visible:outline-ring",onClick:()=>{l(!0)},children:["+",a.length-2]}):null,e.isAtLimit?null:(0,b.jsx)(a_,{keys:c,isBusy:f,onAssign:h}),o.map(a=>(0,b.jsxs)("span",{className:"inline-flex flex-wrap items-center gap-1.5",children:[(0,b.jsxs)("span",{className:"text-meta text-muted-foreground",children:["by ",a]}),n.filter(b=>"none"!==b.mark&&b.ownerName===a).map(a=>(0,b.jsx)($.LabelChip,{chip:a,testId:"ship-label"},a.valueId))]},a)),k&&a.length>3?(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1 rounded-sm px-1 text-meta hover:bg-accent focus-visible:outline-2 focus-visible:outline-ring [&_svg]:size-(--size-icon-sm)",onClick:()=>{l(!1)},children:[(0,b.jsx)(aU.ChevronUp,{"aria-hidden":!0}),"Show fewer"]}):null,e.isAtLimit?(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:"At the limit: a ship carries at most 20 labels (decision 0031)."}):null,void 0===e.count?null:(0,b.jsx)("span",{className:"ml-auto text-meta text-muted-foreground tabular-nums","data-testid":"ship-labels-count",children:e.count})]}),void 0===g?null:(0,b.jsx)(x.InlineError,{title:g.title,description:`Refused: ${g.message}. Nothing changed.`})]})}function a1(a,b){for(let c of a){let a=c.values.find(a=>a.valueId===b);if(void 0!==a)return`${c.key}=${a.value}`}return"the label"}function a2({ship:a}){let{shipLabelsMax:c}=(0,Y.useConsoleConstants)(),e=(0,H.useLabelContext)(),f=(0,E.useAccess)(),g=(0,H.useAssignLabel)(),h=(0,H.useUnassignLabel)(),[i,j]=(0,d.useState)(void 0);if(void 0===e)return(0,b.jsx)(aC.Skeleton,{className:"h-5.5 w-40"});let k=(0,I.chipsOf)(a,e);if(!(0,I.canAssignLabelsTo)(a,f))return(0,b.jsx)(aR.ShipLabels,{chips:k});let l=(0,I.assignKeysOf)(a,e),m=a=>b=>{j({title:a,message:b.message})};return(0,b.jsx)(a0,{chips:k,keys:l,limit:(0,I.labelLimitOf)(a,c),isBusy:g.isPending||h.isPending,error:i,onAssign:b=>{j(void 0),g.mutate({shipId:a.id,valueId:b},{onError:m(`Couldn’t add ${a1(l,b)}`)})},onUnassign:b=>{j(void 0),h.mutate({shipId:a.id,valueId:b},{onError:m(`Couldn’t remove ${a1(l,b)}`)})},onChange:({from:b,to:c})=>{j(void 0),h.mutate({shipId:a.id,valueId:b},{onSuccess:()=>{g.mutate({shipId:a.id,valueId:c},{onError:d=>{g.mutate({shipId:a.id,valueId:b}),m(`Couldn’t change ${a1(l,b)} to ${a1(l,c)}`)(d)}})},onError:m(`Couldn’t change ${a1(l,b)}`)})}})}var a3=a.i(59027),a4=a.i(25039);let a5={name:"lock-keyhole",size:24,node:[["circle",{cx:"12",cy:"16",r:"1",key:"1au0dj"}],["rect",{x:"3",y:"10",width:"18",height:"12",rx:"2",key:"6s8ecr"}],["path",{d:"M7 10V7a5 5 0 0 1 10 0v3",key:"1pqi11"}]]};a5.node;let a6=(0,g.default)(a5),a7={name:"log-in",size:24,node:[["path",{d:"m10 17 5-5-5-5",key:"1bsop3"}],["path",{d:"M15 12H3",key:"6jk70r"}],["path",{d:"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4",key:"u53s6r"}]]};a7.node;let a8=(0,g.default)(a7);var a9=a.i(57230);let ba={name:"mail-check",size:24,node:[["path",{d:"M22 13V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h8",key:"12jkf8"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}],["path",{d:"m16 19 2 2 4-4",key:"1b14m6"}]]};ba.node;let bb=(0,g.default)(ba),bc={name:"mail-minus",size:24,node:[["path",{d:"M22 15V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h8",key:"fuxbkv"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}],["path",{d:"M16 19h6",key:"xwg31i"}]]};bc.node;let bd=(0,g.default)(bc),be={name:"mail-x",size:24,node:[["path",{d:"M22 12.532V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8.792",key:"8lpqwp"}],["path",{d:"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7",key:"132q7q"}],["path",{d:"m16.5 16.5 5 5",key:"zc9lw7"}],["path",{d:"m21.5 16.5-5 5",key:"1empo3"}]]};be.node;let bf=(0,g.default)(be),bg={name:"message-square-text",size:24,node:[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}],["path",{d:"M7 11h10",key:"1twpyw"}],["path",{d:"M7 15h6",key:"d9of3u"}],["path",{d:"M7 7h8",key:"af5zfr"}]]};bg.node;let bh=(0,g.default)(bg),bi={name:"package-x",size:24,node:[["path",{d:"M12 22V12",key:"d0xqtd"}],["path",{d:"m16.5 14.5 5 5",key:"ozpm51"}],["path",{d:"m16.5 19.5 5-5",key:"syf6b9"}],["path",{d:"M21 10.5V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.729l7 4a2 2 0 0 0 2 .001l.13-.074",key:"isw6gs"}],["path",{d:"M3.29 7 12 12l8.71-5",key:"19ckod"}],["path",{d:"m7.5 4.27 8.997 5.148",key:"9yrvtv"}]]};bi.node;let bj=(0,g.default)(bi),bk={name:"pen-line",size:24,node:[["path",{d:"M13 21h8",key:"1jsn5i"}],["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}]],aliases:["edit-3"]};bk.node;let bl=(0,g.default)(bk),bm={name:"shield-alert",size:24,node:[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]};bm.node;let bn=(0,g.default)(bm);var bo=a.i(23422),bp=a.i(29703);function bq(a,b){let c=a.details[b];return"string"==typeof c?c:void 0}function br(a){return bq(a,"key")??""}function bs(a){return(bq(a,"values")??"").split(",").join(", ")}function bt(a){return a?[(0,t.text)(" by "),(0,t.ship)(a)]:[]}let bu={deregistered:"Its session deregistered.",takenOver:"Taken over by a new console session.",signedOut:"The operator signed out.",passwordReset:"Its session ended with the operator password reset.",retired:"Its session ended: the ship was retired."};function bv(a){return a.message?.isPing===!0}function bw(a){return a.message?[(0,t.text)(bv(a)?"a ping from ":"a message from "),(0,t.ship)(a.message.sender)]:[(0,t.text)("a message")]}function bx(a){let[b,...c]=bw(a);return b?.kind==="text"?[(0,t.text)((0,t.capitalised)(b.text)),...c]:bw(a)}function by(a,b){let{shipId:c,verb:d}=b,e=a.actor;return[...null===e||e.id===c?[(0,t.text)((0,t.capitalised)(d))]:[(0,t.ship)(e),(0,t.text)(` ${d}`)],(0,t.text)(" "),...bw(a)]}let bz={received:i,sent:k,claimed:a8,released:a9.LogOut,prompt:Q.KeyRound,commissioned:a4.Flag,acknowledged:bb,returned:bo.Undo2,undeliverable:bf,secret:a6,fleet:a3.Anchor,password:bn,retired:av.Archive,abandoned:bj,dismissed:bd,renamed:bl,reported:bh},bA={waiting:"border-tone-waiting-border bg-tone-waiting-bg text-tone-waiting-fg",active:"border-tone-active-border bg-tone-active-bg text-tone-active-fg",ok:"border-tone-ok-border bg-tone-ok-bg text-tone-ok-fg",attention:"border-tone-attention-border bg-tone-attention-bg text-tone-attention-fg",ended:"border-tone-ended-border bg-tone-ended-bg text-tone-ended-fg"},bB="flex w-full gap-3 px-3.5 py-3 text-left";function bC({entry:a,shipId:c,now:d,onOpenMessage:e}){let{parts:f,tone:g,icon:h}=function(a,b){switch(a.type){case"FleetInitialised":return{parts:[(0,t.text)("Fleet initialised")],tone:"ended",icon:"fleet"};case"ShipCommissioned":{let b=bq(a,"type");return{parts:[(0,t.text)("Commissioned"),...bt(a.actor),...void 0===b?[]:[(0,t.text)(` as ${b}`)]],tone:"ended",icon:"commissioned"}}case"StartingPromptIssued":return{parts:[(0,t.text)("Starting prompt issued")],tone:"ended",icon:"prompt"};case"ShipClaimed":return{parts:[(0,t.text)(`Claimed by a session on ${function(a){let b=bq(a,"locationDescription");if(void 0!==b&&""!==b)return b;let c=bq(a,"location");return"DEVICE"===c||"CLOUD"===c||"SERVER"===c||"OTHER"===c?(0,bp.locationKindWord)(c):"an unknown location"}(a)}`)],tone:"ok",icon:"claimed"};case"LeaseRevoked":let c,d;return{parts:[..."released"===(c=bq(a,"reason")??"")?[(0,t.text)("Released"),...bt(a.actor),(0,t.text)(".")]:[(0,t.text)(bu[c]??"Its session ended.")],..."number"==typeof(d=a.details.returnedDeliveries)&&d>0?[(0,t.text)(` ${(0,t.counted)(d,{one:"in-flight delivery",many:"in-flight deliveries"})} went back to pending.`)]:[]],tone:"waiting",icon:"released"};case"CredentialRevoked":return{parts:[(0,t.text)("Secret invalidated")],tone:"ended",icon:"secret"};case"OperatorPasswordReset":return{parts:[(0,t.text)("Operator password reset")],tone:"waiting",icon:"password"};case"FleetLimitsChanged":return{parts:[(0,t.text)("Fleet limits changed")],tone:"ended",icon:"fleet"};case"SignInTicketIssued":return{parts:[(0,t.text)("Sign-in ticket issued")],tone:"ended",icon:"password"};case"ViewerSessionStarted":return{parts:[(0,t.text)("Someone started viewing the fleet")],tone:"ended",icon:"password"};case"CrewRequested":return{parts:[(0,t.text)("Crew requested"),...bt(a.actor)],tone:"waiting",icon:"claimed"};case"CrewRequestRemoved":return{parts:[(0,t.text)("Crew request removed"),...bt(a.actor)],tone:"ended",icon:"released"};case"CrewRequestExplained":{let b=bq(a,"reason");return{parts:[(0,t.text)(void 0===b?"Crew request can not be placed yet":`Crew request can not be placed: ${b}`),...bt(a.actor)],tone:"waiting",icon:"reported"}}case"CrewRequestGivenBack":{let b=bq(a,"reason");return{parts:[(0,t.text)(void 0===b?"Crew request given back":`Crew request given back: ${b}`),...bt(a.actor)],tone:"waiting",icon:"released"}}case"WorktreeClearRequested":return{parts:[(0,t.text)(`Clearing of the kept ${bq(a,"repository")??""} worktree requested`),...bt(a.actor)],tone:"waiting",icon:"reported"};case"WorktreeCleared":return{parts:[(0,t.text)("not-kept"===bq(a,"outcome")?`Kept ${bq(a,"repository")??""} worktree cleared (none was kept)`:`Kept ${bq(a,"repository")??""} worktree cleared`),...bt(a.actor)],tone:"ended",icon:"retired"};case"WorktreeClearRemoved":return{parts:[(0,t.text)(`Clearing of the kept ${bq(a,"repository")??""} worktree dropped`),...bt(a.actor)],tone:"ended",icon:"released"};case"CrewAssigned":return{parts:[(0,t.text)("Crew request assigned"),...bt(a.actor)],tone:"waiting",icon:"claimed"};case"CrewStatusChanged":{let b=bq(a,"status");return{parts:[(0,t.text)(void 0===b?"Crew status changed":`Crew ${b}`),...bt(a.actor)],tone:"crashed"===b?"attention":"active",icon:"reported"}}case"LabelDefined":return{parts:[(0,t.text)(`Label ${br(a)} defined: ${bs(a)}`)],tone:"ended",icon:"reported"};case"LabelValuesChanged":return{parts:[(0,t.text)(`Label ${br(a)} values changed: ${bs(a)}`)],tone:"ended",icon:"reported"};case"LabelRetired":return{parts:[(0,t.text)(`Label ${br(a)} retired`)],tone:"ended",icon:"retired"};case"NetworkRulesSet":{let b=a.details.rules,c=String(a.details.version??""),d="number"==typeof b?`Network rules set: ${String(b)} rules`:"Network rules cleared: every ship reaches every ship";return{parts:[(0,t.text)(`${d}, version ${c}`),...bt(a.actor)],tone:"ended",icon:"fleet"}}case"NetworkRulesDeclared":{let b=a.details.rules,c="number"==typeof b&&b>0?`Network rules declared: ${String(b)} rules`:"Declared network rules withdrawn";return{parts:[(0,t.text)(c),...bt(a.actor)],tone:"ended",icon:"fleet"}}case"NetworkPluginRegistered":return{parts:[(0,t.text)(`Networking plugin registered: while unavailable ${bq(a,"whileUnavailable")??""}, version ${String(a.details.version??"")}`),...bt(a.actor)],tone:"ended",icon:"fleet"};case"NetworkPluginUnregistered":return{parts:[(0,t.text)(`Networking plugin unregistered: every ship reaches every ship, version ${String(a.details.version??"")}`),...bt(a.actor)],tone:"ended",icon:"fleet"};case"LabelDeleted":return{parts:[(0,t.text)(`Label ${br(a)} deleted`)],tone:"ended",icon:"retired"};case"LabelAssigned":return{parts:[(0,t.text)(`Labelled ${br(a)}=${bq(a,"value")??""}`),...bt(a.actor)],tone:"ended",icon:"reported"};case"LabelUnassigned":return{parts:[(0,t.text)(`Label ${br(a)}=${bq(a,"value")??""} removed`),...bt(a.actor)],tone:"ended",icon:"reported"};case"MessageAccepted":let e;return{parts:(e=a.message)?bv(a)&&"ship"===e.recipient.kind?e.sender.id===b?[(0,t.text)("Pinged "),(0,t.ship)(e.recipient.ship)]:[(0,t.text)("Pinged by "),(0,t.ship)(e.sender)]:e.sender.id===b?"ship"===e.recipient.kind?[(0,t.text)("Sent a message to "),(0,t.ship)(e.recipient.ship)]:[(0,t.text)(`Sent a message to any ship of type ${e.recipient.type}`)]:[(0,t.text)("Received a message from "),(0,t.ship)(e.sender)]:[(0,t.text)("A message was sent")],tone:"ended",icon:a.message?.sender.id===b?"sent":"received"};case"DeliveryClaimed":return{parts:by(a,{shipId:b,verb:"took"}),tone:"active",icon:"received"};case"DeliveryAcknowledged":return{parts:"pong"===bq(a,"answer")?[...by(a,{shipId:b,verb:"answered"}),(0,t.text)(" with pong")]:by(a,{shipId:b,verb:"acknowledged"}),tone:"ok",icon:"acknowledged"};case"DeliveryReturned":return{parts:[...bx(a),(0,t.text)(" went back to pending")],tone:"waiting",icon:"returned"};case"DeliveryUndeliverable":return{parts:[...bx(a),(0,t.text)(" became undeliverable")],tone:"attention",icon:"undeliverable"};case"ShipRetired":{let b=a.details.abandonedDeliveries;return{parts:[(0,t.text)("Retired"),...bt(a.actor),(0,t.text)("."),..."number"==typeof b&&b>0?[(0,t.text)(` ${(0,t.counted)(b,{one:"delivery",many:"deliveries"})} abandoned.`)]:[]],tone:"ended",icon:"retired"}}case"DeliveryAbandoned":return{parts:[...bx(a),(0,t.text)(" was abandoned")],tone:"ended",icon:"abandoned"};case"ShipReported":{let b=bq(a,"state")??"in",c=bq(a,"note");return{parts:[(0,t.text)(void 0===c?`Reported ${b}`:`Reported ${b}: ${c}`)],tone:Object.hasOwn(aI.REPORT_TONES,b)?aI.REPORT_TONES[b]:"ended",icon:"reported"}}case"ShipRenamed":{let b=bq(a,"from"),c=bq(a,"to");return{parts:[(0,t.text)(void 0===b||void 0===c?"Renamed":`Renamed from ${b} to ${c}`),...bt(a.actor)],tone:"ended",icon:"renamed"}}case"DeliveryDismissed":return{parts:[...bx(a),(0,t.text)(" was dismissed"),...bt(a.actor)],tone:"ended",icon:"dismissed"}}}(a,c),i=bz[h],j=new Date(a.occurredAt),k=(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{"aria-hidden":!0,className:(0,o.classNames)("flex size-7 shrink-0 items-center justify-center rounded-md border [&_svg]:size-(--size-icon-sm)",bA[g]),children:(0,b.jsx)(i,{})}),(0,b.jsxs)("span",{className:"flex min-w-0 flex-col gap-1",children:[(0,b.jsx)(z.Sentence,{parts:f,className:"text-body text-foreground max-sm:text-body-touch"}),(0,b.jsx)("time",{dateTime:a.occurredAt,title:(0,s.fullDateTime)(j),className:"text-meta text-muted-foreground tabular-nums",children:(0,s.relativeTime)(j,d)})]})]}),{message:l}=a;return(0,b.jsx)("li",{"data-testid":"ship-timeline-entry","data-type":a.type,className:"border-b border-border last:border-b-0",children:l?(0,b.jsx)("button",{type:"button",className:(0,o.classNames)(bB,"transition-colors duration-(--duration-fast) hover:bg-accent"),onClick:()=>{e(l.id)},children:k}):(0,b.jsx)("div",{className:bB,children:k})})}function bD({shipId:a,entries:c,state:d,onRetry:e,now:f,onOpenMessage:g}){return"loading"===d?(0,b.jsx)(y.LoadingSkeleton,{variant:"list",rows:4,label:"Loading the timeline"}):"error"===d?(0,b.jsxs)("div",{"data-testid":"ship-timeline",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-3",children:[(0,b.jsx)(x.InlineError,{title:"Couldn’t load the timeline",description:"The rest of the page is current. Try again in a moment."}),e?(0,b.jsx)(v.Button,{size:"sm",icon:(0,b.jsx)(n.RotateCw,{"aria-hidden":!0}),onClick:e,className:"self-start",children:"Try again"}):null]}):(0,b.jsxs)("div",{"data-testid":"ship-timeline",className:"overflow-hidden rounded-lg border border-border bg-card",children:[(0,b.jsx)("ol",{"aria-label":"Timeline",children:c.map(c=>(0,b.jsx)(bC,{entry:c,shipId:a,now:f,onOpenMessage:g},c.id))}),c.length<=1?(0,b.jsx)("p",{className:"border-t border-border px-3.5 py-3 text-center text-meta text-muted-foreground first:border-t-0",children:"Nothing else yet. Claims, releases and messages appear here as they happen."}):null]})}var bE=a.i(35559),bF=a.i(38023),bG=a.i(91154),bH=a.i(67336),bI=a.i(68450),bJ=a.i(45065),bK=a.i(10572),bL=a.i(99929);let bM="timeline",bN="messages",bO=(0,D.lazyDialog)(()=>a.A(86839).then(a=>a.MessageSheet),a=>a.isOpen);a.s(["ShipPageFor",0,function({shipId:a,tab:g,messageId:h}){let i=(0,c.useRouter)(),j=(0,bI.useNow)(),k=(0,bJ.usePluginShipIds)(),l=(0,bL.useShip)(a),m=(0,bL.useShipTimeline)(a),n=(0,bL.useShipMessages)(a),o=(0,bL.useMessage)(h),p=(0,bH.useLiveFleet)(),q=(0,bF.useConsoleFrame)(),r=(0,ak.useSquadrons)(),s=(0,E.useAccess)(),[t,u]=(0,d.useState)();(0,bK.useSignInWhenSessionEnds)([l.error,m.error,n.error,o.error,p.error]);let v=b=>{let c,d;i.replace((c=new URLSearchParams,b.tab!==bM&&c.set("tab",b.tab),void 0!==b.messageId&&c.set("message",b.messageId),""===(d=c.toString())?`/ships/${a}`:`/ships/${a}?${d}`),{scroll:!1})},w=a=>{v({tab:g,messageId:a})},x="NOT_FOUND"===(0,bG.trpcErrorCode)(l.error),y=(0,ap.shipsInSquadrons)(r.data??[]).get(a);return(0,b.jsx)(bE.DetailPage,{onCompose:q.onCompose,onSearch:q.onSearch,banner:q.banner,title:l.data?.name??"Ship",parents:y?[{href:"/squadrons",label:"Squadrons"},{href:`/squadrons/${y.squadronId}`,label:y.squadronId}]:[{href:"/",label:"Fleet overview"}],live:p.live,header:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(aQ,{ship:l.data,shipId:a,state:x?"not-found":l.data?"ready":"loading",now:j,actions:l.data?(0,b.jsx)(at.ShipActions,{ship:l.data,compose:f.ComposeMessage,crewLineFlow:au.NewCrewLineFlow}):void 0,crewRequest:l.data?(0,b.jsx)(ao,{ship:l.data,timeline:m.data??[],now:j}):void 0,labels:l.data?(0,b.jsx)(a2,{ship:l.data}):void 0,isPluginShip:k.has(a)}),x?null:(0,b.jsx)(as,{shipId:a,now:j})]}),sheet:(0,b.jsx)(bO,{message:o.data,messageId:h,state:"NOT_FOUND"===(0,bG.trpcErrorCode)(o.error)?"not-found":o.data?"ready":"loading",isOpen:void 0!==h,onOpenChange:a=>{a||v({tab:g})},onReply:s.canSend?a=>{u({messageId:a.id,sender:a.sender})}:void 0}),children:(0,b.jsxs)(b.Fragment,{children:[x?null:(0,b.jsxs)(e.Tabs,{value:g,onValueChange:a=>{v({tab:a===bN?bN:bM,messageId:h})},children:[(0,b.jsxs)(e.TabsList,{variant:"line","aria-label":`${l.data?.name??"Ship"} history`,children:[(0,b.jsx)(e.TabsTrigger,{variant:"line",value:bM,children:"Timeline"}),(0,b.jsx)(e.TabsTrigger,{variant:"line",value:bN,children:"Messages"})]}),(0,b.jsx)(e.TabsContent,{value:bM,className:"pt-4",children:(0,b.jsx)(bD,{shipId:a,entries:m.data??[],state:m.isError?"error":m.data?"ready":"loading",onRetry:()=>{m.refetch()},now:j,onOpenMessage:w})}),(0,b.jsx)(e.TabsContent,{value:bN,className:"pt-4",children:(0,b.jsx)(C,{shipId:a,messages:n.data??[],state:n.isError?"error":n.data?"ready":"loading",onRetry:()=>{n.refetch()},now:j,onOpenMessage:w})})]}),(0,b.jsx)(f.ComposeMessage,{isOpen:void 0!==t,onOpenChange:a=>{a||u(void 0)},replyTo:t})]})})}],96138)}];
1
+ module.exports=[96138,a=>{"use strict";var b=a.i(87924),c=a.i(50944),d=a.i(72131),e=a.i(94777),f=a.i(86002),g=a.i(64831);let h={name:"arrow-down-left",size:24,node:[["path",{d:"M17 7 7 17",key:"15tmo1"}],["path",{d:"M17 17H7V7",key:"1org7z"}]]};h.node;let i=(0,g.default)(h),j={name:"arrow-up-right",size:24,node:[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]};j.node;let k=(0,g.default)(j),l={name:"mail",size:24,node:[["path",{d:"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7",key:"132q7q"}],["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}]]};l.node;let m=(0,g.default)(l);var n=a.i(48819),o=a.i(80487),p=a.i(9854);function q(a,b){return RegExp(`"${b}"\\s*:\\s*"((?:[^"\\\\]|\\\\.)*)"`).exec(a)?.[1]}let r={"application/vnd.aeolus.squadron.check-in+json":()=>"Checked in at its flagship","application/vnd.aeolus.squadron.role+json":a=>{let b=q(a,"role");return void 0===b?"Given its role":`Given the role: ${b}`},"application/vnd.aeolus.squadron.on-station+json":a=>{let b=q(a,"role");return void 0===b?"Took up its role":`Took up the role: ${b}`},"application/vnd.aeolus.squadron.stand-down+json":()=>"Asked to stand down","application/vnd.aeolus.squadron.stood-down+json":()=>"Stood down"};var s=a.i(17408),t=a.i(72872),u=a.i(31429);function v(a,b){return a.sentAt.localeCompare(b.sentAt)||a.id.localeCompare(b.id)}var w=a.i(12068),x=a.i(24173),y=a.i(40392),z=a.i(50808),A=a.i(97281),B=a.i(23063);function C({message:a,shipId:c,now:d,onOpenMessage:e}){var f,g,h;let j,l,m=a.sender.id===c,n=new Date(a.sentAt),q=void 0!==(l=r[g=(f=a).contentType,g.split(";")[0]?.trim().toLowerCase()??""])?{text:l(f.preview),isCode:!1}:(0,p.isJson)(f.contentType)?{text:0===(j=function(a){let b,c=[],d=0,e=0;for(;e<a.length;){let f=a[e]??"";if('"'===f){let{value:f,end:g}=function(a,b){let c=b+1;for(;c<a.length&&'"'!==a[c];)c+="\\"===a[c]?2:1;return{value:a.slice(b+1,c),end:c+1}}(a,e);1===d&&void 0===b&&a.slice(g).trimStart().startsWith(":")?b=f:1===d&&void 0!==b&&g<=a.length&&'"'===a[g-1]&&(c.push([b,f]),b=void 0),e=g;continue}if("{"===f||"["===f)1===d&&void 0!==b&&(c.push([b,"…"]),b=void 0),d+=1;else if("}"===f||"]"===f)d-=1;else if(1===d&&void 0!==b&&/[-\dtfn]/.test(f)){let d=/^(-?\d[\d.eE+-]*|true|false|null)/.exec(a.slice(e))?.[1];if(void 0!==d){c.push([b,d]),b=void 0,e+=d.length;continue}}e+=1}return c}(h=f.preview)).length?h:j.map(([a,b])=>`${a} ${b}`).join(" · "),isCode:!0}:{text:f.preview,isCode:!1};return(0,b.jsx)("li",{className:"border-b border-border last:border-b-0",children:(0,b.jsxs)("button",{type:"button","data-testid":"message-row","data-message-id":a.id,"aria-label":`${m?"Sent":"Received"} message: ${q.text}`,className:"flex w-full items-start gap-3 px-3.5 py-3 text-left transition-colors duration-(--duration-fast) hover:bg-accent",onClick:()=>{e(a.id)},children:[(0,b.jsx)("span",{"aria-hidden":!0,className:"mt-0.5 flex size-7 shrink-0 items-center justify-center rounded-md border border-tone-ended-border bg-tone-ended-bg text-tone-ended-fg [&_svg]:size-(--size-icon-sm)",children:(0,b.jsx)(m?k:i,{})}),(0,b.jsxs)("span",{className:"flex min-w-0 flex-1 flex-col gap-1",children:[(0,b.jsxs)("span",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,b.jsx)(A.Sentence,{parts:m?"ship"===a.recipient.kind?[(0,u.text)("To "),(0,u.ship)(a.recipient.ship)]:[(0,u.text)(`To any ship of type ${a.recipient.type}`)]:[(0,u.text)("From "),(0,u.ship)(a.sender)],className:"text-body text-foreground max-sm:text-body-touch"}),(0,b.jsx)(B.StatusBadge,{status:(0,s.deliveryStatus)(a.delivery)})]}),(0,b.jsx)("span",{"data-testid":"message-line",className:(0,o.classNames)("truncate text-muted-foreground",q.isCode?"font-mono text-id":"text-meta"),children:q.text}),(0,b.jsx)("time",{dateTime:a.sentAt,title:(0,t.fullDateTime)(n),className:"text-meta text-muted-foreground tabular-nums",children:(0,t.relativeTime)(n,d)})]})]})})}function D({shipId:a,messages:c,state:d,onRetry:e,now:f,onOpenMessage:g}){return"loading"===d?(0,b.jsx)(z.LoadingSkeleton,{variant:"list",rows:3,label:"Loading the messages"}):"error"===d?(0,b.jsxs)("div",{className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-3",children:[(0,b.jsx)(y.InlineError,{title:"Couldn’t load the messages",description:"The rest of the page is current. Try again in a moment."}),e?(0,b.jsx)(w.Button,{size:"sm",icon:(0,b.jsx)(n.RotateCw,{"aria-hidden":!0}),onClick:e,className:"self-start",children:"Try again"}):null]}):0===c.length?(0,b.jsx)(x.EmptyState,{variant:"section",icon:(0,b.jsx)(m,{}),title:"No messages yet",description:"Messages this ship sends or receives appear here as they happen."}):(0,b.jsx)("div",{className:"flex flex-col gap-3",children:(function(a){let b=new Map(a.map(a=>[a.id,a])),c=new Map;for(let d of a){let a=function(a,b){let c=new Set([a.id]),d=a,e=null===d.inReplyTo?void 0:b.get(d.inReplyTo);for(;e&&!c.has(e.id);)c.add(e.id),e=null===(d=e).inReplyTo?void 0:b.get(d.inReplyTo);return d}(d,b);c.set(a.id,[...c.get(a.id)??[],d])}return[...c.entries()].map(([a,b])=>{let c=b.toSorted(v);return{id:a,messages:c,lastSentAt:c.at(-1)?.sentAt??""}}).toSorted((a,b)=>b.lastSentAt.localeCompare(a.lastSentAt)||b.id.localeCompare(a.id))})(c).map(c=>(0,b.jsx)("section",{"data-testid":"message-thread","aria-label":`Thread of ${String(c.messages.length)} ${1===c.messages.length?"message":"messages"}`,className:"overflow-hidden rounded-lg border border-border bg-card",children:(0,b.jsx)("ol",{children:c.messages.map(c=>(0,b.jsx)(C,{message:c,shipId:a,now:f,onOpenMessage:g},c.id))})},c.id))})}var E=a.i(34301),F=a.i(65563),G=a.i(6071),H=a.i(2955),I=a.i(90146),J=a.i(65230),K=a.i(17024),L=a.i(82611),M=a.i(38058),N=a.i(93454),O=a.i(88191),P=a.i(73370),Q=a.i(8311),R=a.i(26766),S=a.i(62140),T=a.i(58983),U=a.i(58724),V=a.i(13931),W=a.i(33838),X=a.i(23636),Y=a.i(38246),Z=a.i(1851),$=a.i(67042),_=a.i(36501);let aa={request:"Couldn’t request crew",remove:"Couldn’t remove the request",restart:"Couldn’t restart the crew"};function ab({at:a,now:c,children:d}){return(0,b.jsx)("time",{dateTime:a,title:(0,t.fullDateTime)(new Date(a)),className:"tabular-nums",children:d??(0,t.sinceTime)(new Date(a),c)})}function ac({trierarch:a,hasTrierarchs:c}){return(0,b.jsxs)(Y.default,{href:c?`/trierarchs/${a.id}`:`/ships/${a.id}`,"data-testid":"crew-request-trierarch",className:"inline-flex min-w-0 items-center gap-1.5 font-medium text-foreground underline decoration-input underline-offset-3 [&_svg]:size-(--size-icon-sm) [&_svg]:shrink-0 [&_svg]:text-muted-foreground",children:[(0,b.jsx)(X.ShipWheel,{"aria-hidden":!0}),(0,b.jsx)("span",{className:"truncate",children:a.name})]})}function ad({requestedBy:a,requestedAt:c,now:d}){let e=null===a?null:a.name===u.OPERATOR_NAME?"you":a.name;return(0,b.jsxs)("span",{"data-testid":"crew-request-requested-by",children:[null===e?"Requested ":`Requested by ${e} `,(0,b.jsx)(ab,{at:c,now:d,children:(0,t.relativeTime)(new Date(c),d)}),"."]})}let ae={note:"border-border bg-muted text-muted-foreground",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 af({tone:a,icon:c,children:d}){return(0,b.jsxs)("div",{role:"attention"===a?"alert":"waiting"===a?"status":"note","data-testid":"crew-request-note",className:`flex items-start gap-2 rounded-lg border px-3 py-2.5 text-meta [&_svg]:mt-0.5 [&_svg]:size-(--size-icon-sm) [&_svg]:shrink-0 ${ae[a]}`,children:[c,(0,b.jsx)("span",{children:d})]})}function ag({stage:a,now:c}){let d="running"===a.status?a.startedAt:null,e=(0,G.restartWords)(a);return null===d&&void 0===e?null:(0,b.jsxs)("span",{className:"text-meta text-muted-foreground","data-testid":"crew-request-session",children:[null===d?null:(0,b.jsxs)(b.Fragment,{children:["since ",(0,b.jsx)(ab,{at:d,now:c})]}),null!==d&&void 0!==e?" · ":null,e]})}function ah({rows:a,machineLabels:c=[]}){return(0,b.jsxs)("dl",{"data-testid":"crew-request-settings",className:"grid grid-cols-[repeat(auto-fill,minmax(8.5rem,1fr))] gap-x-5 gap-y-3 border-t border-border pt-3",children:[a.map(a=>(0,b.jsxs)("div",{className:"flex min-w-0 flex-col gap-0.5",children:[(0,b.jsx)("dt",{className:"text-caption font-medium text-muted-foreground",children:a.label}),(0,b.jsxs)("dd",{className:"flex min-w-0 flex-wrap items-baseline gap-x-1.5 text-body font-medium",children:[null===a.value?(0,b.jsx)("span",{className:"font-normal text-muted-foreground",children:"None"}):(0,b.jsx)("span",{className:a.isMono?"truncate font-mono text-id":"truncate",children:"Harness"===a.label?(0,$.harnessWord)(a.value):a.value}),void 0===a.meta?null:(0,b.jsx)("span",{className:"text-meta font-normal text-muted-foreground",children:a.meta})]})]},a.label)),0===c.length?null:(0,b.jsxs)("div",{className:"col-span-full flex min-w-0 flex-col gap-0.5","data-testid":"crew-request-machine-labels",children:[(0,b.jsx)("dt",{className:"text-caption font-medium text-muted-foreground",children:"Machine labels"}),(0,b.jsx)("dd",{className:"flex min-w-0 flex-wrap items-center gap-1.5",children:c.map((a,c)=>(0,b.jsxs)(d.Fragment,{children:[0===c?null:(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:"and"}),(0,b.jsx)(_.LabelChip,{chip:a})]},a.valueId))})]})]})}function ai(){return(0,b.jsxs)("span",{className:"inline-flex items-center gap-2",children:[(0,b.jsx)(S.ListChecks,{"aria-hidden":!0,className:"size-(--size-icon) text-muted-foreground"}),(0,b.jsx)("h2",{className:"text-section font-semibold",children:"Crew request"})]})}function aj(a){let{noMachineMatchesReason:c}=(0,Z.useConsoleConstants)(),{stage:d,requestedBy:e,now:f,canManage:g,isAwaitingCrew:h,busy:i,error:j}=a,k=void 0===j?null:(0,b.jsx)(y.InlineError,{title:aa[j.action],description:`${j.message} Nothing changed.`});if("none"===d.kind)return(0,b.jsxs)("section",{"aria-label":"Crew request","data-testid":"crew-request",className:"flex flex-col gap-2.5 rounded-lg border border-border bg-card px-4 py-3.5 shadow-sm",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3.5",children:[(0,b.jsx)(ai,{}),(0,b.jsx)("p",{className:"min-w-0 flex-1 text-meta text-muted-foreground",children:a.hasTrierarchs?"No crew request. A crew request keeps this ship crewed: a trierarch starts a session for it and restarts it when it stops.":"No crew request. A crew request puts this ship on your Needs crew list until you crew it by hand."}),g?(0,b.jsx)(w.Button,{size:"sm",icon:(0,b.jsx)(S.ListChecks,{}),isLoading:"request"===i,onClick:a.onRequest,"data-testid":"crew-request-request",children:"Request crew"}):null]}),k]});let l=(0,G.crewRequestAction)(d),m=void 0!==i;return(0,b.jsxs)("section",{"aria-label":"Crew request","data-testid":"crew-request",className:"flex flex-col gap-2.5 rounded-lg border border-border bg-card px-4 py-3.5 shadow-sm",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,b.jsx)(ai,{}),(0,b.jsxs)("span",{className:"inline-flex min-w-0 items-center gap-2","data-testid":"crew-request-state",children:["assigned"===d.kind?(0,b.jsx)(B.StatusBadge,{status:d.status}):(0,b.jsx)(B.StatusBadge,{status:d.kind}),"needsCrew"===d.kind?(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:a.hasTrierarchs?"not assigned yet":d.reason??(0,b.jsxs)(b.Fragment,{children:["since ",(0,b.jsx)(ab,{at:d.requestedAt,now:f})]})}):null,"crewedByHand"===d.kind&&null!==d.since?(0,b.jsxs)("span",{className:"text-meta text-muted-foreground",children:["since ",(0,b.jsx)(ab,{at:d.since,now:f})]}):null,"assigned"===d.kind?(0,b.jsx)(ag,{stage:d,now:f}):null,"assigned"===d.kind&&"releasing"===d.status&&void 0!==a.statusChangedAt?(0,b.jsxs)("span",{className:"text-meta text-muted-foreground",children:["asked ",(0,b.jsx)(ab,{at:a.statusChangedAt,now:f})]}):null]}),"assigned"===d.kind?(0,b.jsxs)("span",{className:"inline-flex min-w-0 items-center gap-1 text-meta",children:["on ",(0,b.jsx)(ac,{trierarch:d.trierarch,hasTrierarchs:a.hasTrierarchs??!1})]}):null,(0,b.jsx)("span",{className:"flex-1"}),"assigned"===d.kind&&"releasing"===d.status?(0,b.jsxs)("span",{className:"text-meta text-muted-foreground",children:["Waiting for ",d.trierarch.name]}):null,g?(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:["remove"===l?(0,b.jsx)(w.Button,{size:"sm",variant:"ghost",isLoading:"remove"===i,disabled:m,onClick:a.onRemove,"data-testid":"crew-request-remove",children:"Remove request"}):null,(0,G.isRestartable)(d)?(0,b.jsx)(w.Button,{size:"sm",icon:(0,b.jsx)(W.RotateCcw,{}),isLoading:"restart"===i,disabled:m,onClick:a.onRestart,"data-testid":"crew-request-restart",children:"Restart"}):null,void 0!==a.onEdit&&void 0!==l?(0,b.jsx)(w.Button,{size:"sm",icon:(0,b.jsx)(U.Pen,{}),disabled:m,onClick:a.onEdit,"data-testid":"crew-request-edit",children:"Edit…"}):null,"release"===l?(0,b.jsx)(w.Button,{size:"sm",icon:(0,b.jsx)(V.Power,{}),disabled:m,onClick:a.onRelease,"data-testid":"crew-request-release",children:"Release…"}):null,"needsCrew"===d.kind&&h&&!a.hasTrierarchs?(0,b.jsx)(w.Button,{size:"sm",variant:"primary",icon:(0,b.jsx)(R.KeyRound,{}),disabled:m,onClick:a.onGetStartingPrompt,"data-testid":"crew-request-prompt",children:"Get starting prompt"}):null]}):null]}),"assigned"===d.kind?function(a,c){let{trierarch:d}=a,e=void 0===c.statusChangedAt?null:(0,b.jsx)(ab,{at:c.statusChangedAt,now:c.now});switch(a.status){case"crewing":return(0,b.jsxs)(af,{tone:"note",icon:(0,b.jsx)(T.LoaderCircle,{"aria-hidden":!0}),children:[d.name," is starting the session."]});case"running":return null;case"restarting":return(0,b.jsxs)(af,{tone:"waiting",icon:(0,b.jsx)(W.RotateCcw,{"aria-hidden":!0}),children:[(0,b.jsx)("strong",{className:"font-medium",children:null===e?"The session stopped.":(0,b.jsxs)(b.Fragment,{children:["The session stopped at ",e,"."]})})," ",d.name," is starting it again. Once its restarts are used up it stops trying and the request shows Crashed."]});case"crashed":return(0,b.jsxs)(af,{tone:"attention",icon:(0,b.jsx)(P.CircleX,{"aria-hidden":!0}),children:[(0,b.jsx)("strong",{className:"font-medium",children:null===e?"Crashed.":(0,b.jsxs)(b.Fragment,{children:["Crashed at ",e,"."]})})," The session kept stopping and ",d.name," ","stopped trying. The lease still holds, so new deliveries wait in the inbox. Restart crews it again with the same settings."]});case"releasing":return(0,b.jsxs)(af,{tone:"note",icon:(0,b.jsx)(V.Power,{"aria-hidden":!0}),children:["Releasing: ",d.name," is stopping the session and cleaning up. The request goes away once it confirms."]})}}(d,{statusChangedAt:a.statusChangedAt,now:f}):null,"needsCrew"===d.kind&&a.hasTrierarchs?null===d.reason?(0,b.jsx)(af,{tone:"note",icon:(0,b.jsx)(T.LoaderCircle,{"aria-hidden":!0}),children:"Waiting for the trierarch plugin to assign a trierarch."}):d.reason===c&&void 0!==a.machineLabels&&a.machineLabels.length>0?(0,b.jsxs)(af,{tone:"waiting",icon:(0,b.jsx)(Q.Clock,{"aria-hidden":!0}),children:[(0,b.jsx)("strong",{className:"font-medium",children:"No machine matches these labels."})," The plugin places this ship only on a machine with ",(0,L.machineLabelsText)(a.machineLabels),", and none"," ",(0,L.noMatchWords)(a.machineLabels.length).carries,". It assigns a trierarch as soon as one does; until then this ship is on Needs crew."]}):(0,b.jsxs)(af,{tone:"waiting",icon:(0,b.jsx)(Q.Clock,{"aria-hidden":!0}),children:[(0,b.jsxs)("strong",{className:"font-medium",children:[(0,u.capitalised)(d.reason),"."]})," The plugin assigns a trierarch as soon as one fits. Until then this ship is on Needs crew."]}):null,k,void 0===a.settingsRows?null:(0,b.jsx)(ah,{rows:a.settingsRows,machineLabels:a.machineLabels}),(0,b.jsxs)("p",{className:"text-meta text-muted-foreground",children:["needsCrew"!==d.kind||a.hasTrierarchs?null:"On your Needs crew list. Crew it by hand: get a starting prompt and start a session with it. Crewing it fulfils the request; the request stays until you remove it. ","crewedByHand"===d.kind?`${d.crewedBy.name===u.OPERATOR_NAME?"You":d.crewedBy.name} crewed it by hand. The request stands: if the lease ends, the ship is back on Needs crew until you crew it again or release it. `:null,(0,b.jsx)(ad,{requestedBy:e,requestedAt:d.requestedAt,now:f}),"assigned"===d.kind&&"releasing"!==d.status?" The trierarch keeps it crewed until you release it.":null]})]})}var ak=a.i(54763),al=a.i(12540);let am=(0,E.lazyDialog)(()=>a.A(63219).then(a=>a.RequestCrewDialog),a=>a.isOpen),an=(0,E.lazyDialog)(()=>a.A(94191).then(a=>a.CrewReleaseDialog),a=>a.isOpen),ao=(0,E.lazyDialog)(()=>a.A(68359).then(a=>a.StartingPromptDialog),a=>a.isOpen);function ap({ship:a,timeline:c,now:e}){let f=(0,F.useAccess)(),g=(0,N.useHasTrierarchPlugin)(),h=(0,I.useRequestCrew)(),i=(0,I.useLabelContext)(),j=(0,I.useRemoveCrewRequest)(),k=(0,I.useReleaseShip)(),l=(0,I.useGetStartingPrompt)(),[m,n]=(0,d.useState)(),[o,p]=(0,d.useState)(),[q,r]=(0,d.useState)(!1),[s,t]=(0,d.useState)(),[u,v]=(0,d.useState)(!1),[w,x]=(0,d.useState)(),[y]=(0,K.useCrewSettings)(null===a.crewRequest?[]:[a.crewRequest.settings])??[],z=function(a){let c=(0,N.useMachines)(),e=(0,ak.useSquadronsConnection)(),f=(0,al.useSquadrons)(),g=(0,I.useRequestCrew)(),h=(0,I.useLabelContext)(),[i,j]=(0,d.useState)(),[k,l]=(0,d.useState)(null),[m,n]=(0,d.useState)(),o=(0,H.offersOf)(c.data??[]),{shipLabelsMax:p}=(0,Z.useConsoleConstants)(),q=void 0===h||void 0===c.data?void 0:(0,L.machineLabelsInputOf)(h,{machines:c.data,shipLabelsMax:p}),r=(0,K.useCrewSettings)(a?.heldSettings===void 0?[]:[a.heldSettings]),s=r?.[0]??null,t=(0,H.settingsOf)("edit"===i?(0,H.valuesOf)(s,o):(0,H.defaultValues)(o)),u=void 0!==i&&void 0!==a&&("edit"!==i||void 0!==r),v=(0,N.useCrewSettingsCheck)(u&&void 0!==c.data?null===k?t:k:void 0),w=async b=>{if(void 0!==a&&void 0!==i){g.reset();try{let a=await v.checkNow();if("refused"===a.kind)return void n(new Date)}catch{}g.mutate({shipId:a.shipId,settings:b},{onSuccess:()=>{j(void 0),(0,O.showToast)("edit"===i?{title:`Settings saved for ${a.shipName}`,description:"Its trierarch restarts the session with them.",tone:"success"}:{title:`Crew requested for ${a.shipName}`,description:"The trierarch plugin assigns a trierarch that fits.",tone:"success"})}})}};return{open:a=>{g.reset(),l(null),n(void 0),j(a)},dialog:void 0===a?null:(0,b.jsx)(am,{shipName:a.shipName,mode:i??"request",state:c.isError?"unreachable":void 0===c.data?"loading":"ready",offers:o,heldSettings:s,squadrons:"connected"===e?(f.data??[]).filter(a=>"disbanded"!==a.state).map(a=>a.id):void 0,...void 0===q?{}:{machineLabels:q},check:v.data,refusedAt:m,error:g.error?.message,isPending:g.isPending,isOpen:u,onOpenChange:a=>{a||j(void 0)},onSettingsChange:a=>{l(a),n(void 0)},onSubmit:a=>void w(a),onRetry:()=>{c.refetch()}})}}("agent"===a.kind&&"retired"!==a.status?{shipId:a.id,shipName:a.name,heldSettings:a.crewRequest?.settings}:void 0);if("agent"!==a.kind||"retired"===a.status)return null;let A=(0,G.crewRequestStage)(a),B=a.crewRequest,C=async(a,b)=>{n(a),p(void 0);try{return await b(),!0}catch(b){return p({action:a,message:b instanceof Error?b.message:String(b)}),!1}finally{n(void 0)}},D=()=>{l.reset(),x((0,M.isUnclaimedPromptOut)(a)&&a.startingPrompt?{issuedAt:a.startingPrompt.issuedAt}:void 0),v(!0),l.mutate({shipId:a.id})},E=async()=>{await C("request",()=>h.mutateAsync({shipId:a.id,settings:{}}))&&(0,O.showToast)({title:`${a.name} needs crew`,description:"It is on your Needs crew list until you crew it.",tone:"success",..."awaitingCrew"===a.status&&f.canManage?{action:{label:"Get starting prompt",onClick:D}}:{}})},P=async()=>{null===B||"assigned"!==A.kind||await C("restart",()=>h.mutateAsync({shipId:a.id,settings:B.settings}))&&(0,O.showToast)({title:`Restarting ${a.name}`,description:`${A.trierarch.name} starts its session again with the same settings.`,tone:"success"})},Q=async b=>{t(void 0);let c=(0,G.releaseSteps)(b),d=0;try{for(let b of c)await ("removeCrewRequest"===b?j.mutateAsync({shipId:a.id}):k.mutateAsync({shipId:a.id})),d+=1;r(!1)}catch(b){let a=b instanceof Error?b.message:String(b);t(0===d?`${a} Nothing changed.`:`${a} Its crew request is removed; the session still holds the ship. Try again to end its lease.`)}};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(aj,{stage:A,requestedBy:(0,G.requestedBy)(c),statusChangedAt:(0,G.statusChangedAt)(c),now:e,canManage:f.canManage,isAwaitingCrew:"awaitingCrew"===a.status,hasTrierarchs:g,busy:m,error:o,settingsRows:null===B?void 0:(0,H.settingsRows)(y),...null===B||void 0===i?{}:{machineLabels:(0,J.pickedChips)((0,L.machineLabelIdsOf)(y),i)},onRequest:()=>{g?z.open("request"):E()},...g?{onEdit:()=>{z.open("edit")}}:{},onRemove:()=>void C("remove",()=>j.mutateAsync({shipId:a.id})),onRelease:()=>{t(void 0),r(!0)},onRestart:()=>void P(),onGetStartingPrompt:D}),z.dialog,"crewedByHand"===A.kind||"assigned"===A.kind?(0,b.jsx)(an,{shipName:a.name,stage:A,sessionLocation:null===a.location?null:a.location.description??a.location.kind.toLowerCase(),inFlightCount:a.inFlightDeliveries,isOpen:q,onOpenChange:r,isPending:j.isPending||k.isPending,error:s,onConfirm:()=>void Q(A)}):null,(0,b.jsx)(ao,{shipName:a.name,state:l.data?"shown":l.isError?"error":"issuing",prompt:l.data?.prompt,crewLines:l.data?.crewLines,replacesUnclaimed:w,error:l.error?.message,isOpen:u,onOpenChange:a=>{a||(l.reset(),v(!1))},onConfirm:()=>{l.mutate({shipId:a.id})}})]})}var aq=a.i(8219),ar=a.i(75971);function as({label:a,children:c}){return(0,b.jsxs)("div",{className:"flex min-w-0 flex-col gap-1 bg-card px-3.5 py-3",children:[(0,b.jsx)("dt",{className:"text-meta text-muted-foreground",children:a}),(0,b.jsx)("dd",{className:"flex min-w-0 flex-wrap items-center gap-1.5 text-body text-foreground",children:c})]})}function at({shipId:a,now:c}){let d=(0,al.useSquadrons)(),e=(0,al.useCatalogue)(),f=d.data?.find(b=>b.flagship.shipId===a||b.members.some(b=>b.shipId===a));if(!f)return null;let g=(0,b.jsx)(Y.default,{href:`/squadrons/${f.id}`,className:"font-mono hover:underline","data-testid":"ship-squadron-link",children:f.id});if(f.flagship.shipId===a)return(0,b.jsxs)("div",{role:"note","data-testid":"ship-flagship-note",className:"flex flex-wrap items-center gap-3 rounded-lg border border-border bg-muted px-3.5 py-3 text-meta text-foreground",children:[(0,b.jsxs)("span",{className:"grow",children:["Flagship of squadron ",g,": the address for work sent to the team. The squadron manager crews it, so it can’t be released, renamed or retired; it retires when the squadron disbands."]}),(0,b.jsx)(w.Button,{size:"xs",nativeButton:!1,render:(0,b.jsx)(Y.default,{href:`/squadrons/${f.id}`}),"data-testid":"ship-open-squadron",children:"Open squadron"})]});let h=f.members.find(b=>b.shipId===a);if(!h)return null;let i=e.data?.blueprints.find(a=>a.repository===f.blueprint.repository&&a.name===f.blueprint.name&&a.version===f.blueprint.version),j=i?.roles.find(a=>a.name===h.role)?.template,k=null===h.crew.lastSeenAt?void 0:(0,t.duration)(new Date(h.crew.lastSeenAt),c);return(0,b.jsxs)("div",{className:"flex flex-col gap-3",children:["silent"===h.health&&"disbanded"!==f.state&&(0,b.jsxs)("div",{role:"alert","data-testid":"ship-silent-alert",className:"rounded-lg border border-tone-attention-border bg-tone-attention-bg px-3.5 py-3 text-meta text-foreground",children:[(0,b.jsx)("strong",{className:"font-semibold text-tone-attention-fg",children:void 0===k?"Silent.":`Silent: not seen for ${k}.`})," It checks in"," ",(0,aq.checkInText)(h.checkInMinutes),", so its session has probably stopped. Get a new crew line and start a new session; the old crew line then stops working."]}),(0,b.jsxs)("dl",{"data-testid":"ship-squadron-facts",className:"grid grid-cols-4 gap-px overflow-hidden rounded-lg border border-border bg-border max-sm:grid-cols-2",children:[(0,b.jsxs)(as,{label:"Squadron",children:[g,(0,b.jsx)(B.StatusBadge,{status:f.state})]}),(0,b.jsxs)(as,{label:"Role and template",children:[(0,b.jsx)("span",{className:"rounded-sm bg-secondary px-1.5 font-mono text-id",children:h.role}),j&&(0,b.jsxs)(Y.default,{href:(0,aq.templatePath)(j),className:"font-mono text-meta hover:underline",children:[j.name,"@",j.version]})]}),(0,b.jsx)(as,{label:"Health",children:(0,b.jsx)(ar.HealthIndicator,{health:h.health,detail:"silent"===h.health||"late"===h.health?k:void 0})}),(0,b.jsx)(as,{label:"Hand-offs",children:i?(0,b.jsx)("span",{className:"text-meta",children:(0,aq.handoffsText)((0,aq.handoffsOf)(i,h.role))}):(0,b.jsx)(Y.default,{href:(0,aq.blueprintPath)(f.blueprint),className:"text-meta text-muted-foreground hover:underline",children:"See its blueprint"})})]})]})}var au=a.i(53805),av=a.i(71027),aw=a.i(79762),ax=a.i(93817),ay=a.i(52357),az=a.i(71094),aA=a.i(87005),aB=a.i(76166),aC=a.i(82314),aD=a.i(33809),aE=a.i(40108);function aF({harness:a,model:c,testId:d}){return null===a&&null===c?null:(0,b.jsxs)("span",{"data-testid":d,className:"flex min-w-0 flex-wrap items-center gap-x-1 text-meta text-muted-foreground",children:[null===a?null:(0,b.jsx)("span",{children:(0,$.harnessWord)(a)}),null!==a&&null!==c?(0,b.jsx)("span",{"aria-hidden":!0,children:"·"}):null,null===c?null:(0,b.jsx)("span",{className:"truncate font-mono text-id",children:c})]})}var aG=a.i(26955);function aH({ping:a,now:c,testId:d}){return null===a?null:(0,b.jsx)("span",{title:`Pinged ${(0,t.fullDateTime)(new Date(a.sentAt))}`,"data-testid":d,"data-state":a.state,className:"text-meta text-muted-foreground tabular-nums",children:(0,aG.pingLine)(a,c)})}var aI=a.i(41146),aJ=a.i(45185),aK=a.i(84980);function aL({details:a,bytes:c,version:d,testId:e}){return(0,b.jsxs)("details",{"data-testid":e,className:"group rounded-lg border border-border bg-card",children:[(0,b.jsxs)("summary",{className:"flex cursor-pointer list-none items-center gap-1.5 px-3.5 py-2.5 text-meta text-muted-foreground [&::-webkit-details-marker]:hidden",children:[(0,b.jsx)(aI.ChevronRight,{"aria-hidden":!0,className:"size-(--size-icon-sm) shrink-0 transition-transform group-open:rotate-90"}),(0,b.jsx)("span",{className:"font-medium text-foreground",children:"Report details"}),(0,b.jsxs)("span",{className:"tabular-nums",children:["· version ",d]})]}),(0,b.jsx)("div",{className:"px-3.5 pb-3.5",children:(0,b.jsx)(aK.CodeBlock,{label:(0,aJ.reportDetailsLabel)(c),code:(0,aJ.reportDetailsJson)(a),copyLabel:"Copy report details",codeTestId:`${e}-code`})})]})}var aM=a.i(92717),aN=a.i(90468);function aO({label:a,children:c}){return(0,b.jsxs)("div",{className:"flex min-w-0 flex-col gap-1 bg-card px-3.5 py-3",children:[(0,b.jsx)("dt",{className:"text-meta text-muted-foreground",children:a}),(0,b.jsx)("dd",{className:"flex min-w-0 items-center gap-1.5 text-body text-foreground",children:c})]})}function aP({ship:a,now:c,labels:d,way:e}){let f,g="operator"===a.kind,h=null===a.crewedSince?null:new Date(a.crewedSince),i=new Date(a.commissionedAt);return(0,b.jsxs)("dl",{className:"grid grid-cols-4 gap-px overflow-hidden rounded-lg border border-border bg-border max-sm:grid-cols-2",children:[(0,b.jsx)(aO,{label:"Location",children:(0,b.jsxs)("span",{className:"inline-flex min-w-0 flex-col gap-0.5",children:[(0,b.jsx)(aE.LocationTag,{kind:a.location?.kind??null,description:a.location?.description,size:"md"}),(0,b.jsx)(aF,{harness:a.harness,model:a.model?.id??null,testId:"ship-model"}),null===a.lastSeenAt?null:(0,b.jsx)("time",{dateTime:a.lastSeenAt,title:(0,t.fullDateTime)(new Date(a.lastSeenAt)),"data-testid":"ship-last-seen",className:"text-meta text-muted-foreground tabular-nums",children:(0,t.lastSeen)(new Date(a.lastSeenAt),c)}),(0,b.jsx)(aH,{ping:a.ping,now:c,testId:"ship-ping-status"}),"agent"!==a.kind?null:(0,b.jsx)(aM.ReportLine,{report:a.report,now:c,variant:"full",testId:"ship-report"})]})}),(0,b.jsx)(aO,{label:"Crewed since",children:h?(0,b.jsx)("time",{dateTime:a.crewedSince??void 0,title:(0,t.fullDateTime)(h),className:"tabular-nums",children:(f=c.getTime()-h.getTime()<864e5?(0,t.clockTime)(h):(0,t.shortDateTime)(h),`${f} \xb7 ${(0,t.duration)(h,c)}`)}):(0,b.jsx)("span",{className:"text-muted-foreground",children:"Not crewed"})}),(0,b.jsx)(aO,{label:"Commissioned",children:(0,b.jsx)("time",{dateTime:a.commissionedAt,title:(0,t.fullDateTime)(i),children:g?`Fleet created ${(0,t.dayDate)(i)}`:(0,t.dayDate)(i)})}),(0,b.jsxs)(aO,{label:"Ship id",children:[(0,b.jsx)("span",{className:"truncate font-mono text-id",children:a.id}),(0,b.jsx)(aC.CopyButton,{value:a.id,label:"Copy ship id"})]}),void 0===e?null:(0,b.jsxs)("div",{className:"col-span-4 flex min-w-0 items-start gap-4 bg-card px-3.5 py-2.5 max-sm:col-span-2 max-sm:flex-col max-sm:gap-1.5","data-testid":"ship-delivery",children:[(0,b.jsx)("dt",{className:"shrink-0 text-meta text-muted-foreground",children:"Delivery"}),(0,b.jsx)("dd",{className:"min-w-0 flex-1",children:e})]}),void 0===d?null:(0,b.jsxs)("div",{className:"col-span-4 flex min-w-0 items-center gap-4 bg-card px-3.5 py-2.5 max-sm:col-span-2 max-sm:flex-col max-sm:items-start max-sm:gap-1.5","data-testid":"ship-labels",children:[(0,b.jsx)("dt",{className:"shrink-0 text-meta text-muted-foreground",children:"Labels"}),(0,b.jsx)("dd",{className:"min-w-0 flex-1",children:d})]})]})}function aQ({icon:a,children:c}){return(0,b.jsxs)("p",{className:"flex items-center gap-2 rounded-lg border border-border bg-muted px-3.5 py-2.5 text-meta text-muted-foreground [&_svg]:size-(--size-icon-sm) [&_svg]:shrink-0",children:[a,(0,b.jsx)("span",{children:c})]})}function aR({ship:a,shipId:c,state:d,actions:e,crewRequest:f,now:g,backHref:h="/",labels:i,isPluginShip:j=!1,way:k}){let{fleetScopes:l}=(0,Z.useConsoleConstants)();if("loading"===d||"ready"===d&&void 0===a)return(0,b.jsxs)("div",{"aria-busy":!0,"data-testid":"ship-header",className:"flex flex-col gap-4",children:[(0,b.jsx)("span",{className:"sr-only",children:"Loading the ship"}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(aD.Skeleton,{className:"h-8 w-40"}),(0,b.jsx)(aD.Skeleton,{className:"h-6 w-20"}),(0,b.jsx)(aD.Skeleton,{className:"h-6 w-16"})]}),(0,b.jsx)(aD.Skeleton,{className:"h-16 w-full rounded-lg"})]});if("not-found"===d||void 0===a)return(0,b.jsx)("div",{"data-testid":"ship-header",children:(0,b.jsx)(x.EmptyState,{variant:"section",icon:(0,b.jsx)(ax.CircleAlert,{}),title:"Ship not found",description:(0,b.jsxs)(b.Fragment,{children:["No ship with the id ",c?(0,b.jsx)("span",{className:"font-mono text-id",children:c}):"given"," exists in this fleet. The link may be incomplete. Retired ships keep their page."]}),action:(0,b.jsx)(w.Button,{size:"sm",nativeButton:!1,render:({children:a,...c})=>(0,b.jsx)(Y.default,{href:h,...c,children:a}),children:"Back to fleet overview"})})});let m="operator"===a.kind,n="retired"===a.status;return(0,b.jsxs)("div",{"data-testid":"ship-header",className:"flex flex-col gap-4 max-sm:gap-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[(0,b.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-2.5 max-sm:flex-col max-sm:items-start max-sm:gap-1.5",children:[(0,b.jsx)("h1",{className:"min-w-0",children:(0,b.jsx)(aN.ShipName,{name:a.name,shipId:a.id,size:"title",isSuffixShown:n})}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(B.StatusBadge,{status:a.status}),m?(0,b.jsxs)(aB.Badge,{variant:"kind",children:[(0,b.jsx)(aA.UserRound,{"aria-hidden":!0}),"operator"]}):(0,b.jsxs)(b.Fragment,{children:[j?(0,b.jsxs)(aB.Badge,{variant:"kind","data-testid":"ship-plugin",children:[(0,b.jsx)(az.Plug,{"aria-hidden":!0}),"plugin"]}):null,(0,b.jsx)(aB.Badge,{variant:"type",children:a.type}),a.scopes.filter(a=>l.some(b=>b===a)).map(a=>(0,b.jsx)(aB.Badge,{variant:"kind","data-testid":"ship-fleet-scope",children:a},a))]}),"awaitingCrew"===a.status&&null===a.startingPrompt?(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-meta text-muted-foreground [&_svg]:size-(--size-icon-sm)",children:[(0,b.jsx)(R.KeyRound,{"aria-hidden":!0}),"No starting prompt issued"]}):null,"awaitingCrew"===a.status&&null!==a.startingPrompt?(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-meta text-muted-foreground [&_svg]:size-(--size-icon-sm)",children:[(0,b.jsx)(R.KeyRound,{"aria-hidden":!0}),(0,b.jsxs)("span",{children:["Prompt issued"," ",(0,b.jsx)("time",{dateTime:a.startingPrompt.issuedAt,title:(0,t.fullDateTime)(new Date(a.startingPrompt.issuedAt)),children:(0,t.relativeTime)(new Date(a.startingPrompt.issuedAt),g)}),a.startingPrompt.isClaimed?", claimed":", not claimed yet"]})]}):null]})]}),e&&!n?(0,b.jsx)("div",{className:(0,o.classNames)("flex flex-wrap items-center gap-2","max-sm:w-full max-sm:[&>*]:flex-1"),children:e}):null]}),m?(0,b.jsx)(aQ,{icon:(0,b.jsx)(ay.Info,{"aria-hidden":!0}),children:"argo is your ship. This console session crews it. It can’t be released, renamed or retired."}):null,n&&null!==a.retiredAt?(0,b.jsxs)(aQ,{icon:(0,b.jsx)(aw.Archive,{"aria-hidden":!0}),children:["Retired on ",(0,t.fullDateTime)(new Date(a.retiredAt)),". Read-only."]}):null,f,(0,b.jsx)(aP,{ship:a,now:g,labels:i,way:k}),"agent"===a.kind&&a.report?.details&&null!==a.report.detailsBytes?(0,b.jsx)(aL,{details:a.report.details,bytes:a.report.detailsBytes,version:a.report.detailsVersion,testId:"ship-report-details"}):null]})}var aS=a.i(55325),aT=a.i(11657);function aU({view:a,onOpenMessage:c}){let{lines:d,oldest:e}=a;return(0,b.jsxs)("ul",{"data-testid":"ship-way","aria-label":"Its side of the way",className:"flex flex-col gap-1",children:[d.map(a=>(0,b.jsx)(aT.WayLineItem,{line:a,testId:"ship-way-line"},a.text)),e?(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button","data-testid":"ship-way-oldest","aria-label":`Open the oldest message waiting: ${e.text}`,onClick:()=>{c(e.messageId)},className:"inline-flex flex-wrap items-center gap-1.5 rounded-xs text-left text-meta hover:underline focus-visible:outline-2 focus-visible:outline-ring max-sm:text-body-touch",children:[(0,b.jsx)(B.StatusBadge,{status:e.status}),e.isOverdue?(0,b.jsx)(aS.AlarmClock,{"aria-hidden":!0,className:"size-3.5 shrink-0 text-tone-attention-fg"}):null,(0,b.jsx)("span",{className:(0,o.classNames)(e.isOverdue?"text-tone-attention-fg":"text-muted-foreground"),children:e.text}),(0,b.jsx)(aI.ChevronRight,{"aria-hidden":!0,className:"size-(--size-icon-sm)"})]})}):null]})}var aV=a.i(63511),aW=a.i(52562),aX=a.i(89027),aY=a.i(13608),aZ=a.i(3512),a$=a.i(74215),a_=a.i(19721),a0=a.i(60275);let a1=(0,a_.default)(async()=>{},{loadableGenerated:{modules:[59068]},ssr:!1});function a2({chip:a,labelKey:c,isBusy:e,onUnassign:f,onChange:g}){let[h,i]=(0,d.useState)(!1);return(0,b.jsxs)(a0.Popover,{open:h,onOpenChange:i,children:[(0,b.jsx)(a0.PopoverTrigger,{render:(0,b.jsx)("button",{type:"button","aria-label":`Change or remove ${a.key}=${a.value}`,"data-testid":"ship-label-yours",disabled:e,className:"inline-flex items-center rounded-sm focus-visible:outline-2 focus-visible:outline-ring disabled:opacity-60"}),children:(0,b.jsx)(_.LabelChip,{chip:a,trailing:(0,b.jsx)(aX.ChevronDown,{"aria-hidden":!0}),className:"hover:bg-accent"})}),(0,b.jsxs)(a0.PopoverContent,{align:"start",sideOffset:6,className:"w-72 p-1.5","data-testid":"ship-label-menu",children:[(0,b.jsxs)("span",{className:"flex items-center justify-between px-2 pt-1 pb-1.5 text-meta",children:[(0,b.jsxs)("span",{className:"font-mono",children:[a.key,"=",(0,b.jsx)("span",{className:"text-muted-foreground",children:a.value})]}),(0,b.jsx)("span",{className:"text-muted-foreground",children:"Change the value"})]}),(0,b.jsx)("ul",{className:"flex flex-col",children:(c?.values??[]).map(d=>{let e=d.valueId===a.valueId,f=c?.carriedValueIds.includes(d.valueId)??!1;return(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button",disabled:f,"data-testid":"ship-label-value",className:"flex h-(--size-control-sm) w-full items-center gap-2 rounded-sm px-2 text-left text-body hover:bg-accent focus-visible:outline-2 focus-visible:outline-ring disabled:pointer-events-none [&_svg]:size-(--size-icon-sm)",onClick:()=>{i(!1),g({from:a.valueId,to:d.valueId})},children:[(0,b.jsx)("span",{className:"w-4",children:f?(0,b.jsx)(aW.Check,{"aria-hidden":!0}):null}),(0,b.jsx)("span",{className:(0,o.classNames)("min-w-0 grow truncate font-mono",f&&!e?"text-muted-foreground":void 0),children:d.value}),(0,b.jsx)("span",{className:"text-meta text-muted-foreground tabular-nums",children:f&&!e?"Carried":`${String(d.shipCount)} ${1===d.shipCount?"ship":"ships"}`})]})},d.valueId)})}),(0,b.jsx)("div",{className:"mt-1 border-t border-border pt-1",children:(0,b.jsxs)("button",{type:"button","data-testid":"ship-label-remove",className:"flex h-(--size-control-sm) w-full items-center gap-2 rounded-sm px-2 text-body text-destructive-text hover:bg-accent focus-visible:outline-2 focus-visible:outline-ring [&_svg]:size-(--size-icon-sm)",onClick:()=>{i(!1),f(a.valueId)},children:[(0,b.jsx)(a$.X,{"aria-hidden":!0}),"Remove label"]})})]})]})}function a3({keys:a,isBusy:c,onAssign:e}){let[f,g]=(0,d.useState)(!1);return(0,b.jsxs)(a0.Popover,{open:f,onOpenChange:g,children:[(0,b.jsx)(a0.PopoverTrigger,{render:(0,b.jsx)(w.Button,{variant:"ghost",size:"xs",icon:(0,b.jsx)(aZ.Plus,{}),disabled:c,"data-testid":"ship-labels-add"}),children:"Add label"}),(0,b.jsxs)(a0.PopoverContent,{align:"start",sideOffset:6,className:"w-80 p-2","data-testid":"ship-labels-add-popover",children:[(0,b.jsxs)("span",{className:"flex items-center justify-between px-2 pt-1 pb-2 text-body font-medium",children:["Add a label",(0,b.jsx)("span",{className:"text-meta font-normal text-muted-foreground",children:"Yours"})]}),0===a.length?(0,b.jsx)("p",{className:"px-2 py-2 text-meta text-muted-foreground",children:"You have no labels yet. Define one on the Labels page, then put it on ships here."}):(0,b.jsx)(a1,{groups:[{title:"Yours",keys:[...a]}],pickedValueIds:a.flatMap(a=>a.carriedValueIds),pickedWord:"Carried",onPick:a=>{g(!1),e(a)}}),(0,b.jsx)("p",{className:"mt-2 flex items-center justify-between border-t border-border px-2 pt-2 text-meta",children:(0,b.jsx)(Y.default,{href:"/labels",className:"font-medium hover:underline",children:0===a.length?"Define a label":"Manage labels"})})]})]})}function a4({chips:a,keys:c,limit:e,isBusy:f,error:g,onAssign:h,onUnassign:i,onChange:j}){let[k,l]=(0,d.useState)(!1),m=!k&&a.length>3,n=m?a.slice(0,2):a,o=[...new Set(n.filter(a=>"none"!==a.mark).map(a=>a.ownerName))];return(0,b.jsxs)("span",{className:"flex min-w-0 flex-col gap-2","data-testid":"ship-labels-edit",children:[(0,b.jsxs)("span",{className:"flex min-w-0 flex-wrap items-center gap-1.5",children:[0===a.length?(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:"No labels"}):null,n.filter(a=>"none"===a.mark).map(a=>(0,b.jsx)(a2,{chip:a,labelKey:c.find(b=>b.labelId===a.labelId),isBusy:f,onUnassign:i,onChange:j},a.valueId)),m?(0,b.jsxs)("button",{type:"button","aria-label":`Show all ${String(a.length)} labels`,"data-testid":"ship-labels-more",className:"inline-flex h-5.5 items-center rounded-sm bg-secondary px-1.5 text-caption font-medium tabular-nums hover:bg-accent focus-visible:outline-2 focus-visible:outline-ring",onClick:()=>{l(!0)},children:["+",a.length-2]}):null,e.isAtLimit?null:(0,b.jsx)(a3,{keys:c,isBusy:f,onAssign:h}),o.map(a=>(0,b.jsxs)("span",{className:"inline-flex flex-wrap items-center gap-1.5",children:[(0,b.jsxs)("span",{className:"text-meta text-muted-foreground",children:["by ",a]}),n.filter(b=>"none"!==b.mark&&b.ownerName===a).map(a=>(0,b.jsx)(_.LabelChip,{chip:a,testId:"ship-label"},a.valueId))]},a)),k&&a.length>3?(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1 rounded-sm px-1 text-meta hover:bg-accent focus-visible:outline-2 focus-visible:outline-ring [&_svg]:size-(--size-icon-sm)",onClick:()=>{l(!1)},children:[(0,b.jsx)(aY.ChevronUp,{"aria-hidden":!0}),"Show fewer"]}):null,e.isAtLimit?(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:"At the limit: a ship carries at most 20 labels (decision 0031)."}):null,void 0===e.count?null:(0,b.jsx)("span",{className:"ml-auto text-meta text-muted-foreground tabular-nums","data-testid":"ship-labels-count",children:e.count})]}),void 0===g?null:(0,b.jsx)(y.InlineError,{title:g.title,description:`Refused: ${g.message}. Nothing changed.`})]})}function a5(a,b){for(let c of a){let a=c.values.find(a=>a.valueId===b);if(void 0!==a)return`${c.key}=${a.value}`}return"the label"}function a6({ship:a}){let{shipLabelsMax:c}=(0,Z.useConsoleConstants)(),e=(0,I.useLabelContext)(),f=(0,F.useAccess)(),g=(0,I.useAssignLabel)(),h=(0,I.useUnassignLabel)(),[i,j]=(0,d.useState)(void 0);if(void 0===e)return(0,b.jsx)(aD.Skeleton,{className:"h-5.5 w-40"});let k=(0,J.chipsOf)(a,e);if(!(0,J.canAssignLabelsTo)(a,f))return(0,b.jsx)(aV.ShipLabels,{chips:k});let l=(0,J.assignKeysOf)(a,e),m=a=>b=>{j({title:a,message:b.message})};return(0,b.jsx)(a4,{chips:k,keys:l,limit:(0,J.labelLimitOf)(a,c),isBusy:g.isPending||h.isPending,error:i,onAssign:b=>{j(void 0),g.mutate({shipId:a.id,valueId:b},{onError:m(`Couldn’t add ${a5(l,b)}`)})},onUnassign:b=>{j(void 0),h.mutate({shipId:a.id,valueId:b},{onError:m(`Couldn’t remove ${a5(l,b)}`)})},onChange:({from:b,to:c})=>{j(void 0),h.mutate({shipId:a.id,valueId:b},{onSuccess:()=>{g.mutate({shipId:a.id,valueId:c},{onError:d=>{g.mutate({shipId:a.id,valueId:b}),m(`Couldn’t change ${a5(l,b)} to ${a5(l,c)}`)(d)}})},onError:m(`Couldn’t change ${a5(l,b)}`)})}})}var a7=a.i(59027),a8=a.i(25039);let a9={name:"lock-keyhole",size:24,node:[["circle",{cx:"12",cy:"16",r:"1",key:"1au0dj"}],["rect",{x:"3",y:"10",width:"18",height:"12",rx:"2",key:"6s8ecr"}],["path",{d:"M7 10V7a5 5 0 0 1 10 0v3",key:"1pqi11"}]]};a9.node;let ba=(0,g.default)(a9),bb={name:"log-in",size:24,node:[["path",{d:"m10 17 5-5-5-5",key:"1bsop3"}],["path",{d:"M15 12H3",key:"6jk70r"}],["path",{d:"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4",key:"u53s6r"}]]};bb.node;let bc=(0,g.default)(bb);var bd=a.i(57230);let be={name:"mail-check",size:24,node:[["path",{d:"M22 13V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h8",key:"12jkf8"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}],["path",{d:"m16 19 2 2 4-4",key:"1b14m6"}]]};be.node;let bf=(0,g.default)(be),bg={name:"mail-minus",size:24,node:[["path",{d:"M22 15V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h8",key:"fuxbkv"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}],["path",{d:"M16 19h6",key:"xwg31i"}]]};bg.node;let bh=(0,g.default)(bg),bi={name:"mail-x",size:24,node:[["path",{d:"M22 12.532V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h8.792",key:"8lpqwp"}],["path",{d:"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7",key:"132q7q"}],["path",{d:"m16.5 16.5 5 5",key:"zc9lw7"}],["path",{d:"m21.5 16.5-5 5",key:"1empo3"}]]};bi.node;let bj=(0,g.default)(bi),bk={name:"message-square-text",size:24,node:[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}],["path",{d:"M7 11h10",key:"1twpyw"}],["path",{d:"M7 15h6",key:"d9of3u"}],["path",{d:"M7 7h8",key:"af5zfr"}]]};bk.node;let bl=(0,g.default)(bk),bm={name:"package-x",size:24,node:[["path",{d:"M12 22V12",key:"d0xqtd"}],["path",{d:"m16.5 14.5 5 5",key:"ozpm51"}],["path",{d:"m16.5 19.5 5-5",key:"syf6b9"}],["path",{d:"M21 10.5V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.729l7 4a2 2 0 0 0 2 .001l.13-.074",key:"isw6gs"}],["path",{d:"M3.29 7 12 12l8.71-5",key:"19ckod"}],["path",{d:"m7.5 4.27 8.997 5.148",key:"9yrvtv"}]]};bm.node;let bn=(0,g.default)(bm),bo={name:"pen-line",size:24,node:[["path",{d:"M13 21h8",key:"1jsn5i"}],["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}]],aliases:["edit-3"]};bo.node;let bp=(0,g.default)(bo),bq={name:"shield-alert",size:24,node:[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]};bq.node;let br=(0,g.default)(bq);var bs=a.i(23422),bt=a.i(29703);function bu(a,b){let c=a.details[b];return"string"==typeof c?c:void 0}function bv(a){return bu(a,"key")??""}function bw(a){return(bu(a,"values")??"").split(",").join(", ")}function bx(a){return a?[(0,u.text)(" by "),(0,u.ship)(a)]:[]}let by={deregistered:"Its session deregistered.",takenOver:"Taken over by a new console session.",signedOut:"The operator signed out.",passwordReset:"Its session ended with the operator password reset.",retired:"Its session ended: the ship was retired."};function bz(a){return a.message?.isPing===!0}function bA(a){return a.message?[(0,u.text)(bz(a)?"a ping from ":"a message from "),(0,u.ship)(a.message.sender)]:[(0,u.text)("a message")]}function bB(a){let[b,...c]=bA(a);return b?.kind==="text"?[(0,u.text)((0,u.capitalised)(b.text)),...c]:bA(a)}function bC(a,b){let{shipId:c,verb:d}=b,e=a.actor;return[...null===e||e.id===c?[(0,u.text)((0,u.capitalised)(d))]:[(0,u.ship)(e),(0,u.text)(` ${d}`)],(0,u.text)(" "),...bA(a)]}let bD={received:i,sent:k,claimed:bc,released:bd.LogOut,prompt:R.KeyRound,commissioned:a8.Flag,acknowledged:bf,returned:bs.Undo2,undeliverable:bj,secret:ba,fleet:a7.Anchor,password:br,retired:aw.Archive,abandoned:bn,dismissed:bh,renamed:bp,reported:bl},bE={waiting:"border-tone-waiting-border bg-tone-waiting-bg text-tone-waiting-fg",active:"border-tone-active-border bg-tone-active-bg text-tone-active-fg",ok:"border-tone-ok-border bg-tone-ok-bg text-tone-ok-fg",attention:"border-tone-attention-border bg-tone-attention-bg text-tone-attention-fg",ended:"border-tone-ended-border bg-tone-ended-bg text-tone-ended-fg"},bF="flex w-full gap-3 px-3.5 py-3 text-left";function bG({entry:a,shipId:c,now:d,onOpenMessage:e}){let{parts:f,tone:g,icon:h}=function(a,b){switch(a.type){case"FleetInitialised":return{parts:[(0,u.text)("Fleet initialised")],tone:"ended",icon:"fleet"};case"ShipCommissioned":{let b=bu(a,"type");return{parts:[(0,u.text)("Commissioned"),...bx(a.actor),...void 0===b?[]:[(0,u.text)(` as ${b}`)]],tone:"ended",icon:"commissioned"}}case"StartingPromptIssued":return{parts:[(0,u.text)("Starting prompt issued")],tone:"ended",icon:"prompt"};case"ShipClaimed":return{parts:[(0,u.text)(`Claimed by a session on ${function(a){let b=bu(a,"locationDescription");if(void 0!==b&&""!==b)return b;let c=bu(a,"location");return"DEVICE"===c||"CLOUD"===c||"SERVER"===c||"OTHER"===c?(0,bt.locationKindWord)(c):"an unknown location"}(a)}`)],tone:"ok",icon:"claimed"};case"LeaseRevoked":let c,d;return{parts:[..."released"===(c=bu(a,"reason")??"")?[(0,u.text)("Released"),...bx(a.actor),(0,u.text)(".")]:[(0,u.text)(by[c]??"Its session ended.")],..."number"==typeof(d=a.details.returnedDeliveries)&&d>0?[(0,u.text)(` ${(0,u.counted)(d,{one:"in-flight delivery",many:"in-flight deliveries"})} went back to pending.`)]:[]],tone:"waiting",icon:"released"};case"CredentialRevoked":return{parts:[(0,u.text)("Secret invalidated")],tone:"ended",icon:"secret"};case"OperatorPasswordReset":return{parts:[(0,u.text)("Operator password reset")],tone:"waiting",icon:"password"};case"FleetLimitsChanged":return{parts:[(0,u.text)("Fleet limits changed")],tone:"ended",icon:"fleet"};case"SignInTicketIssued":return{parts:[(0,u.text)("Sign-in ticket issued")],tone:"ended",icon:"password"};case"ViewerSessionStarted":return{parts:[(0,u.text)("Someone started viewing the fleet")],tone:"ended",icon:"password"};case"CrewRequested":return{parts:[(0,u.text)("Crew requested"),...bx(a.actor)],tone:"waiting",icon:"claimed"};case"CrewRequestRemoved":return{parts:[(0,u.text)("Crew request removed"),...bx(a.actor)],tone:"ended",icon:"released"};case"CrewRequestExplained":{let b=bu(a,"reason");return{parts:[(0,u.text)(void 0===b?"Crew request can not be placed yet":`Crew request can not be placed: ${b}`),...bx(a.actor)],tone:"waiting",icon:"reported"}}case"CrewRequestGivenBack":{let b=bu(a,"reason");return{parts:[(0,u.text)(void 0===b?"Crew request given back":`Crew request given back: ${b}`),...bx(a.actor)],tone:"waiting",icon:"released"}}case"WorktreeClearRequested":return{parts:[(0,u.text)(`Clearing of the kept ${bu(a,"repository")??""} worktree requested`),...bx(a.actor)],tone:"waiting",icon:"reported"};case"WorktreeCleared":return{parts:[(0,u.text)("not-kept"===bu(a,"outcome")?`Kept ${bu(a,"repository")??""} worktree cleared (none was kept)`:`Kept ${bu(a,"repository")??""} worktree cleared`),...bx(a.actor)],tone:"ended",icon:"retired"};case"WorktreeClearRemoved":return{parts:[(0,u.text)(`Clearing of the kept ${bu(a,"repository")??""} worktree dropped`),...bx(a.actor)],tone:"ended",icon:"released"};case"CrewAssigned":return{parts:[(0,u.text)("Crew request assigned"),...bx(a.actor)],tone:"waiting",icon:"claimed"};case"CrewStatusChanged":{let b=bu(a,"status");return{parts:[(0,u.text)(void 0===b?"Crew status changed":`Crew ${b}`),...bx(a.actor)],tone:"crashed"===b?"attention":"active",icon:"reported"}}case"LabelDefined":return{parts:[(0,u.text)(`Label ${bv(a)} defined: ${bw(a)}`)],tone:"ended",icon:"reported"};case"LabelValuesChanged":return{parts:[(0,u.text)(`Label ${bv(a)} values changed: ${bw(a)}`)],tone:"ended",icon:"reported"};case"LabelRetired":return{parts:[(0,u.text)(`Label ${bv(a)} retired`)],tone:"ended",icon:"retired"};case"NetworkRulesSet":{let b=a.details.rules,c=String(a.details.version??""),d="number"==typeof b?`Network rules set: ${String(b)} rules`:"Network rules cleared: every ship reaches every ship";return{parts:[(0,u.text)(`${d}, version ${c}`),...bx(a.actor)],tone:"ended",icon:"fleet"}}case"NetworkRulesDeclared":{let b=a.details.rules,c="number"==typeof b&&b>0?`Network rules declared: ${String(b)} rules`:"Declared network rules withdrawn";return{parts:[(0,u.text)(c),...bx(a.actor)],tone:"ended",icon:"fleet"}}case"NetworkPluginRegistered":return{parts:[(0,u.text)(`Networking plugin registered: while unavailable ${bu(a,"whileUnavailable")??""}, version ${String(a.details.version??"")}`),...bx(a.actor)],tone:"ended",icon:"fleet"};case"NetworkPluginUnregistered":return{parts:[(0,u.text)(`Networking plugin unregistered: every ship reaches every ship, version ${String(a.details.version??"")}`),...bx(a.actor)],tone:"ended",icon:"fleet"};case"LabelDeleted":return{parts:[(0,u.text)(`Label ${bv(a)} deleted`)],tone:"ended",icon:"retired"};case"LabelAssigned":return{parts:[(0,u.text)(`Labelled ${bv(a)}=${bu(a,"value")??""}`),...bx(a.actor)],tone:"ended",icon:"reported"};case"LabelUnassigned":return{parts:[(0,u.text)(`Label ${bv(a)}=${bu(a,"value")??""} removed`),...bx(a.actor)],tone:"ended",icon:"reported"};case"MessageAccepted":let e;return{parts:(e=a.message)?bz(a)&&"ship"===e.recipient.kind?e.sender.id===b?[(0,u.text)("Pinged "),(0,u.ship)(e.recipient.ship)]:[(0,u.text)("Pinged by "),(0,u.ship)(e.sender)]:e.sender.id===b?"ship"===e.recipient.kind?[(0,u.text)("Sent a message to "),(0,u.ship)(e.recipient.ship)]:[(0,u.text)(`Sent a message to any ship of type ${e.recipient.type}`)]:[(0,u.text)("Received a message from "),(0,u.ship)(e.sender)]:[(0,u.text)("A message was sent")],tone:"ended",icon:a.message?.sender.id===b?"sent":"received"};case"LeasePushed":return{parts:[(0,u.text)("Pushed: its trierarch or plugin watcher receives for its session")],tone:"ok",icon:"received"};case"DeliveryReceived":return{parts:bC(a,{shipId:b,verb:!0===a.details.again?"received again":"received"}),tone:"active",icon:"received"};case"DeliveryHanded":return{parts:bC(a,{shipId:b,verb:!0===a.details.onceMore?"took once more":"took"}),tone:"active",icon:"received"};case"DeliveryHandled":return{parts:bC(a,{shipId:b,verb:"handled"}),tone:"ok",icon:"acknowledged"};case"DeliveryNotHandled":return{parts:[...bB(a),(0,u.text)(" was not handled: its turn died twice")],tone:"attention",icon:"undeliverable"};case"DeliveryOverdue":let f,g,h;return{parts:[...bB(a),(0,u.text)(` is overdue: ${(g="number"==typeof(f=a.details.minutes)?`${String(f)} min`:"too long","notConfirmed"===(h=bu(a,"clock"))?`handed, not confirmed for ${g}`:`waiting ${g} while its session is ${"busy"===h?"busy":"idle"}`)}, argo told`)],tone:"attention",icon:"undeliverable"};case"DeliveryAcknowledged":return{parts:"pong"===bu(a,"answer")?[...bC(a,{shipId:b,verb:"answered"}),(0,u.text)(" with pong")]:bC(a,{shipId:b,verb:"acknowledged"}),tone:"ok",icon:"acknowledged"};case"DeliveryReturned":return{parts:[...bB(a),(0,u.text)(" went back to pending")],tone:"waiting",icon:"returned"};case"DeliveryUndeliverable":return{parts:[...bB(a),(0,u.text)(" became undeliverable")],tone:"attention",icon:"undeliverable"};case"ShipRetired":{let b=a.details.abandonedDeliveries;return{parts:[(0,u.text)("Retired"),...bx(a.actor),(0,u.text)("."),..."number"==typeof b&&b>0?[(0,u.text)(` ${(0,u.counted)(b,{one:"delivery",many:"deliveries"})} abandoned.`)]:[]],tone:"ended",icon:"retired"}}case"DeliveryAbandoned":return{parts:[...bB(a),(0,u.text)(" was abandoned")],tone:"ended",icon:"abandoned"};case"ShipReported":{let b=bu(a,"state")??"in",c=bu(a,"note");return{parts:[(0,u.text)(void 0===c?`Reported ${b}`:`Reported ${b}: ${c}`)],tone:Object.hasOwn(aJ.REPORT_TONES,b)?aJ.REPORT_TONES[b]:"ended",icon:"reported"}}case"TurnReported":{let b=bu(a,"turn");return{parts:[(0,u.text)("busy"===b?"Turn started: busy":"Turn ended: idle")],tone:"busy"===b?"active":"ended",icon:"reported"}}case"ShipRenamed":{let b=bu(a,"from"),c=bu(a,"to");return{parts:[(0,u.text)(void 0===b||void 0===c?"Renamed":`Renamed from ${b} to ${c}`),...bx(a.actor)],tone:"ended",icon:"renamed"}}case"DeliveryDismissed":return{parts:[...bB(a),(0,u.text)(" was dismissed"),...bx(a.actor)],tone:"ended",icon:"dismissed"}}}(a,c),i=bD[h],j=new Date(a.occurredAt),k=(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{"aria-hidden":!0,className:(0,o.classNames)("flex size-7 shrink-0 items-center justify-center rounded-md border [&_svg]:size-(--size-icon-sm)",bE[g]),children:(0,b.jsx)(i,{})}),(0,b.jsxs)("span",{className:"flex min-w-0 flex-col gap-1",children:[(0,b.jsx)(A.Sentence,{parts:f,className:"text-body text-foreground max-sm:text-body-touch"}),(0,b.jsx)("time",{dateTime:a.occurredAt,title:(0,t.fullDateTime)(j),className:"text-meta text-muted-foreground tabular-nums",children:(0,t.relativeTime)(j,d)})]})]}),{message:l}=a;return(0,b.jsx)("li",{"data-testid":"ship-timeline-entry","data-type":a.type,className:"border-b border-border last:border-b-0",children:l?(0,b.jsx)("button",{type:"button",className:(0,o.classNames)(bF,"transition-colors duration-(--duration-fast) hover:bg-accent"),onClick:()=>{e(l.id)},children:k}):(0,b.jsx)("div",{className:bF,children:k})})}function bH({shipId:a,entries:c,state:d,onRetry:e,now:f,onOpenMessage:g}){return"loading"===d?(0,b.jsx)(z.LoadingSkeleton,{variant:"list",rows:4,label:"Loading the timeline"}):"error"===d?(0,b.jsxs)("div",{"data-testid":"ship-timeline",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-3",children:[(0,b.jsx)(y.InlineError,{title:"Couldn’t load the timeline",description:"The rest of the page is current. Try again in a moment."}),e?(0,b.jsx)(w.Button,{size:"sm",icon:(0,b.jsx)(n.RotateCw,{"aria-hidden":!0}),onClick:e,className:"self-start",children:"Try again"}):null]}):(0,b.jsxs)("div",{"data-testid":"ship-timeline",className:"overflow-hidden rounded-lg border border-border bg-card",children:[(0,b.jsx)("ol",{"aria-label":"Timeline",children:c.map(c=>(0,b.jsx)(bG,{entry:c,shipId:a,now:f,onOpenMessage:g},c.id))}),c.length<=1?(0,b.jsx)("p",{className:"border-t border-border px-3.5 py-3 text-center text-meta text-muted-foreground first:border-t-0",children:"Nothing else yet. Claims, releases and messages appear here as they happen."}):null]})}var bI=a.i(35559),bJ=a.i(38023),bK=a.i(91154),bL=a.i(67336),bM=a.i(68450),bN=a.i(45065),bO=a.i(10572),bP=a.i(99929);let bQ="timeline",bR="messages",bS=(0,E.lazyDialog)(()=>a.A(86839).then(a=>a.MessageSheet),a=>a.isOpen);a.s(["ShipPageFor",0,function({shipId:a,tab:g,messageId:h}){let i=(0,c.useRouter)(),j=(0,bM.useNow)(),k=(0,bN.usePluginShipIds)(),l=(0,bP.useShip)(a),m=(0,bP.useShipTimeline)(a),n=(0,bP.useShipMessages)(a),o=(0,bP.useMessage)(h),p=(0,bP.useShipWay)(a),q=(0,N.useMachines)(),r=(0,bL.useLiveFleet)(),u=(0,bJ.useConsoleFrame)(),v=(0,al.useSquadrons)(),w=(0,F.useAccess)(),[x,y]=(0,d.useState)();(0,bO.useSignInWhenSessionEnds)([l.error,m.error,n.error,o.error,r.error]);let z=b=>{let c,d;i.replace((c=new URLSearchParams,b.tab!==bQ&&c.set("tab",b.tab),void 0!==b.messageId&&c.set("message",b.messageId),""===(d=c.toString())?`/ships/${a}`:`/ships/${a}?${d}`),{scroll:!1})},A=a=>{z({tab:g,messageId:a})},B="NOT_FOUND"===(0,bK.trpcErrorCode)(l.error),C=p.data&&l.data?.kind==="agent"?function(a,b){let{now:c,machines:d=[]}=b;if(null===a.lease)return{lines:[],oldest:null};let{by:e,turn:f}=a.lease,g=0===a.waiting?[{icon:"time",tone:"neutral",text:"Nothing waiting"}]:[];return{lines:[null===e?{icon:"pull",tone:"neutral",text:"No trierarch, no plugin (pull)"}:"trierarch"===e.kind?{icon:"computer",tone:"neutral",text:`Trierarch on ${e.trierarch.name}`}:{icon:"watcher",tone:"neutral",text:"Plugin watcher"},...function(a,b){if(a?.kind!=="trierarch")return[];let c=b.machines.find(b=>b.shipId===a.trierarch.id);if(!c?.isSilent)return[];let d=null===c.lastSeenAt?"":` since ${(0,t.sinceTime)(new Date(c.lastSeenAt),b.now)}`;return[{icon:"silent",tone:"attention",text:`Trierarch on ${a.trierarch.name} silent${d}`}]}(e,{now:c,machines:d}),...function(a,b){if(null===a)return[];let c=(0,t.sinceTime)(new Date(a.at),b);return"busy"===a.turn?[{icon:"busy",tone:"active",text:`Busy since ${c}`}]:[{icon:"idle",tone:"neutral",text:`Idle since ${c}`}]}(f,c),...g],oldest:function(a,b){let{oldest:c,waiting:d}=a;if(null===c)return null;let{state:e,way:f}=c.delivery,g=[(0,t.relativeTime)(new Date(f.since),b).toLowerCase()];return"handed"===e&&g.push(f.isPulled?"not acknowledged":"not confirmed"),f.overdue&&g.push(`argo told at ${String(f.overdue.minutes)} min`),d>1&&g.push(`oldest of ${String(d)}`),{messageId:c.messageId,status:(0,s.deliveryStatus)({state:e,isPulled:f.isPulled}),isOverdue:null!==f.overdue,text:g.join(" · ")}}(a,c)}}(p.data,{now:j,machines:q.data??[]}):void 0,E=(0,aq.shipsInSquadrons)(v.data??[]).get(a);return(0,b.jsx)(bI.DetailPage,{onCompose:u.onCompose,onSearch:u.onSearch,banner:u.banner,title:l.data?.name??"Ship",parents:E?[{href:"/squadrons",label:"Squadrons"},{href:`/squadrons/${E.squadronId}`,label:E.squadronId}]:[{href:"/",label:"Fleet overview"}],live:r.live,header:(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(aR,{ship:l.data,shipId:a,state:B?"not-found":l.data?"ready":"loading",now:j,actions:l.data?(0,b.jsx)(au.ShipActions,{ship:l.data,compose:f.ComposeMessage,crewLineFlow:av.NewCrewLineFlow}):void 0,crewRequest:l.data?(0,b.jsx)(ap,{ship:l.data,timeline:m.data??[],now:j}):void 0,labels:l.data?(0,b.jsx)(a6,{ship:l.data}):void 0,isPluginShip:k.has(a),way:C&&p.data?.lease?(0,b.jsx)(aU,{view:C,onOpenMessage:A}):void 0}),B?null:(0,b.jsx)(at,{shipId:a,now:j})]}),sheet:(0,b.jsx)(bS,{message:o.data,messageId:h,state:"NOT_FOUND"===(0,bK.trpcErrorCode)(o.error)?"not-found":o.data?"ready":"loading",isOpen:void 0!==h,now:j,machines:q.data??[],onOpenMessage:A,onOpenChange:a=>{a||z({tab:g})},onReply:w.canSend?a=>{y({messageId:a.id,sender:a.sender})}:void 0}),children:(0,b.jsxs)(b.Fragment,{children:[B?null:(0,b.jsxs)(e.Tabs,{value:g,onValueChange:a=>{z({tab:a===bR?bR:bQ,messageId:h})},children:[(0,b.jsxs)(e.TabsList,{variant:"line","aria-label":`${l.data?.name??"Ship"} history`,children:[(0,b.jsx)(e.TabsTrigger,{variant:"line",value:bQ,children:"Timeline"}),(0,b.jsx)(e.TabsTrigger,{variant:"line",value:bR,children:"Messages"})]}),(0,b.jsx)(e.TabsContent,{value:bQ,className:"pt-4",children:(0,b.jsx)(bH,{shipId:a,entries:m.data??[],state:m.isError?"error":m.data?"ready":"loading",onRetry:()=>{m.refetch()},now:j,onOpenMessage:A})}),(0,b.jsx)(e.TabsContent,{value:bR,className:"pt-4",children:(0,b.jsx)(D,{shipId:a,messages:n.data??[],state:n.isError?"error":n.data?"ready":"loading",onRetry:()=>{n.refetch()},now:j,onOpenMessage:A})})]}),(0,b.jsx)(f.ComposeMessage,{isOpen:void 0!==x,onOpenChange:a=>{a||y(void 0)},replyTo:x})]})})}],96138)}];
2
2
 
3
3
  //# sourceMappingURL=packages_console_app_%28console%29_ships_%5BshipId%5D_ship-page_tsx_0oahz0r._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[18005,a=>{"use strict";var b=a.i(87924),c=a.i(50944),d=a.i(72131),e=a.i(86002),f=a.i(95409),g=a.i(41146),h=a.i(78958),i=a.i(38246),j=a.i(72872),k=a.i(24173),l=a.i(40392),m=a.i(50808);function n({messages:a,state:c,error:d,onRetry:e,flagshipId:f,now:o}){return(0,b.jsxs)("section",{"aria-labelledby":"kept-messages","data-testid":"kept-messages",className:"flex flex-col gap-2",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,b.jsx)("h2",{id:"kept-messages",className:"text-body font-semibold",children:"Messages the flagship kept"}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"Messages to the flagship it does not handle: kept here, never forwarded."})]}),"loading"===c?(0,b.jsx)(m.LoadingSkeleton,{variant:"list",rows:2,label:"Loading the kept messages"}):"error"===c?(0,b.jsx)(l.InlineError,{title:"Couldn’t load the kept messages",description:"The rest of the page is current. Try again in a moment.",detail:d,onRetry:e}):0===a.length?(0,b.jsx)(k.EmptyState,{variant:"section",icon:(0,b.jsx)(h.Inbox,{"aria-hidden":!0}),title:"No kept messages",description:"Every message to the flagship was the squadron's own."}):(0,b.jsx)("ul",{className:"divide-y divide-border overflow-hidden rounded-lg border border-border",children:a.map(a=>(0,b.jsx)("li",{"data-testid":"kept-message",children:(0,b.jsxs)(i.default,{href:`/ships/${f}?tab=messages&message=${a.messageId}`,className:"flex items-center gap-3 px-3 py-2.5 hover:bg-accent",children:[(0,b.jsxs)("span",{className:"flex min-w-0 grow flex-col gap-0.5",children:[(0,b.jsxs)("span",{className:"flex flex-wrap items-center gap-x-2 text-meta",children:[(0,b.jsx)("span",{className:"font-medium text-foreground",children:a.senderName}),(0,b.jsx)("span",{className:"font-mono text-muted-foreground",children:a.contentType}),(0,b.jsx)("time",{dateTime:a.receivedAt,className:"text-muted-foreground",children:(0,j.relativeTime)(new Date(a.receivedAt),o)})]}),(0,b.jsx)("span",{className:"truncate text-body",children:a.payload.split("\n")[0]??""})]}),(0,b.jsx)(g.ChevronRight,{"aria-hidden":!0,className:"size-(--size-icon) shrink-0 text-muted-foreground"}),(0,b.jsx)("span",{className:"sr-only",children:"Open the message"})]})},a.deliveryId))})]})}var o=a.i(85650),p=a.i(42955),q=a.i(26766),r=a.i(17256),s=a.i(64831);let t={name:"square-arrow-out-up-right",size:24,node:[["path",{d:"M21 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h6",key:"y09zxi"}],["path",{d:"m21 3-9 9",key:"mpx6sq"}],["path",{d:"M15 3h6v6",key:"1q9fwt"}]],aliases:["arrow-up-right-from-square"]};t.node;let u=(0,s.default)(t);var v=a.i(28339),w=a.i(12068),x=a.i(55280),y=a.i(4838),z=a.i(88191),A=a.i(71027);function B({squadronId:a,member:c,ship:e,template:f,canManage:g,canSend:h,isRemovable:j,onRemove:k,compose:l}){let[m,n]=(0,d.useState)(!1),s="retired"===c.crew.status||e?.status==="retired",t=(0,A.useNewCrewLineFlow)(g&&!s?{squadronId:a,member:c,ship:e,template:f}:void 0),C=async()=>{try{await navigator.clipboard.writeText(c.shipId),(0,z.showToast)({title:"Ship id copied",description:c.shipId,tone:"success"})}catch{(0,z.showToast)({title:"Couldn’t copy the ship id",description:c.shipId,tone:"error"})}},D=[{key:"open",label:"Open ship page",icon:u,testId:"member-open-ship",href:`/ships/${c.shipId}`},...h&&!s?[{key:"message",label:"Message…",icon:r.SquarePen,testId:"member-message",onSelect:()=>{n(!0)}}]:[],...g&&!s?[{key:"crew-line",label:"Get new crew line…",icon:q.KeyRound,testId:"member-new-crew-line",isDisabled:!t.isReady,onSelect:t.start}]:[],{key:"copy",label:"Copy ship id",icon:o.Copy,testId:"member-copy-id",onSelect:()=>void C()}],E=g&&j&&!s?{key:"remove",label:"Remove from squadron…",icon:v.UserMinus,testId:"member-remove",isDestructive:!0,onSelect:k}:void 0,F=a=>(0,b.jsx)(w.Button,{size:a,variant:"ghost",isIconOnly:!0,"aria-label":`Actions for ${c.name}`,icon:(0,b.jsx)(p.Ellipsis,{}),"data-testid":"member-actions"});return(0,b.jsxs)("span",{className:"flex shrink-0 items-center gap-1",children:[g&&!s&&"silent"===c.health&&(0,b.jsx)(w.Button,{size:"xs",disabled:!t.isReady,"data-testid":"member-new-crew-line-primary",onClick:t.start,children:"Get new crew line"}),(0,b.jsx)("span",{className:"max-sm:hidden",children:(0,b.jsxs)(x.DropdownMenu,{children:[(0,b.jsx)(x.DropdownMenuTrigger,{render:F("xs")}),(0,b.jsxs)(x.DropdownMenuContent,{align:"end",children:[D.map(a=>void 0===a.href?(0,b.jsxs)(x.DropdownMenuItem,{disabled:a.isDisabled,onClick:a.onSelect,"data-testid":a.testId,children:[(0,b.jsx)(a.icon,{"aria-hidden":!0}),a.label]},a.key):(0,b.jsxs)(x.DropdownMenuItem,{render:(0,b.jsx)(i.default,{href:a.href}),"data-testid":a.testId,children:[(0,b.jsx)(a.icon,{"aria-hidden":!0}),a.label]},a.key)),E&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(x.DropdownMenuSeparator,{}),(0,b.jsxs)(x.DropdownMenuItem,{variant:"destructive",onClick:E.onSelect,"data-testid":E.testId,children:[(0,b.jsx)(E.icon,{"aria-hidden":!0}),E.label]})]})]})]})}),(0,b.jsx)("span",{className:"sm:hidden",children:(0,b.jsxs)(y.Sheet,{children:[(0,b.jsx)(y.SheetTrigger,{render:F("touch")}),(0,b.jsxs)(y.SheetContent,{side:"bottom",children:[(0,b.jsx)(y.SheetHeader,{children:(0,b.jsx)(y.SheetTitle,{children:c.name})}),(0,b.jsx)("ul",{className:"flex flex-col pb-2",children:[...D,...E?[E]:[]].map(a=>(0,b.jsx)("li",{className:!0===a.isDestructive?"mt-1 border-t border-border pt-1":void 0,children:(0,b.jsxs)(y.SheetClose,{render:void 0===a.href?(0,b.jsx)("button",{type:"button",disabled:a.isDisabled,onClick:a.onSelect}):(0,b.jsx)(i.default,{href:a.href}),className:`flex h-(--size-control-touch) w-full items-center gap-3 px-4 text-left text-body-touch disabled:opacity-45 [&_svg]:size-(--size-icon) [&_svg]:shrink-0 ${!0===a.isDestructive?"text-destructive-text":"text-foreground"}`,children:[(0,b.jsx)(a.icon,{"aria-hidden":!0}),a.label.replace(/…$/,"")]})},a.key))}),(0,b.jsx)("div",{className:"px-4 pb-4",children:(0,b.jsx)(y.SheetClose,{render:(0,b.jsx)(w.Button,{size:"touch",className:"w-full"}),children:"Cancel"})})]})]})}),t.dialog,(0,b.jsx)(l,{isOpen:m,onOpenChange:n,toShipId:c.shipId})]})}let C={name:"octagon-x",size:24,node:[["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z",key:"2d38gg"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],aliases:["x-octagon"]};C.node;let D=(0,s.default)(C);var E=a.i(73594),F=a.i(46916);function G({squadronId:a,offered:c,onAddMember:d,onMessageFlagship:e,onStandDown:f,onForceStandDown:g}){let h=async()=>{try{await navigator.clipboard.writeText(a),(0,z.showToast)({title:"Squadron id copied",description:a,tone:"success"})}catch{(0,z.showToast)({title:"Couldn’t copy the squadron id",description:a,tone:"error"})}},i={key:"copy",label:"Copy squadron id",icon:o.Copy,testId:"squadron-copy-id",onSelect:()=>void h()},j=[...c.canStandDown?[{key:"stand-down",label:"Stand down…",icon:F.Waves,testId:"squadron-stand-down",isDestructive:!0,onSelect:f}]:[],...c.canForceStandDown?[{key:"force",label:"Force stand down…",icon:D,testId:"squadron-force-stand-down",isDestructive:!0,onSelect:g}]:[]],k=a=>(0,b.jsx)(w.Button,{size:a,variant:"ghost",isIconOnly:!0,"aria-label":"Squadron actions",icon:(0,b.jsx)(p.Ellipsis,{}),"data-testid":"squadron-actions"});return(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[c.canAddMember&&(0,b.jsx)(w.Button,{size:"xs",icon:(0,b.jsx)(E.UserPlus,{}),"data-testid":"squadron-add-member",onClick:d,children:"Add member"}),c.canMessageFlagship&&(0,b.jsx)(w.Button,{size:"xs",icon:(0,b.jsx)(r.SquarePen,{}),"data-testid":"squadron-message-flagship",onClick:e,children:"Message"}),(0,b.jsx)("div",{className:"max-sm:hidden",children:(0,b.jsxs)(x.DropdownMenu,{children:[(0,b.jsx)(x.DropdownMenuTrigger,{render:k("xs")}),(0,b.jsxs)(x.DropdownMenuContent,{align:"end",children:[(0,b.jsxs)(x.DropdownMenuItem,{onClick:i.onSelect,"data-testid":i.testId,children:[(0,b.jsx)(o.Copy,{"aria-hidden":!0}),i.label]}),j.length>0&&(0,b.jsx)(x.DropdownMenuSeparator,{}),j.map(a=>(0,b.jsxs)(x.DropdownMenuItem,{variant:"destructive",onClick:a.onSelect,"data-testid":a.testId,children:[(0,b.jsx)(a.icon,{"aria-hidden":!0}),a.label]},a.key))]})]})}),(0,b.jsx)("div",{className:"sm:hidden",children:(0,b.jsxs)(y.Sheet,{children:[(0,b.jsx)(y.SheetTrigger,{render:k("touch")}),(0,b.jsxs)(y.SheetContent,{side:"bottom","data-testid":"squadron-actions-sheet",children:[(0,b.jsx)(y.SheetHeader,{children:(0,b.jsx)(y.SheetTitle,{children:a})}),(0,b.jsx)("ul",{className:"flex flex-col pb-2",children:[i,...j].map((a,c)=>(0,b.jsx)("li",{className:1===c?"mt-1 border-t border-border pt-1":void 0,children:(0,b.jsxs)(y.SheetClose,{render:(0,b.jsx)("button",{type:"button",onClick:a.onSelect}),className:`flex h-(--size-control-touch) w-full items-center gap-3 px-4 text-left text-body-touch [&_svg]:size-(--size-icon) [&_svg]:shrink-0 ${!0===a.isDestructive?"text-destructive-text":"text-foreground"}`,children:[(0,b.jsx)(a.icon,{"aria-hidden":!0}),a.label.replace(/…$/,"")]})},a.key))}),(0,b.jsx)("div",{className:"px-4 pb-4",children:(0,b.jsx)(y.SheetClose,{render:(0,b.jsx)(w.Button,{size:"touch",className:"w-full"}),children:"Cancel"})})]})]})})]})}var H=a.i(52357),I=a.i(8219),J=a.i(21327),K=a.i(75971),L=a.i(3842),M=a.i(40108),N=a.i(92717),O=a.i(23063);function P({ship:a,now:c}){return a?(0,b.jsxs)("div",{className:"flex grow flex-wrap items-center justify-end gap-x-4 gap-y-1 text-meta",children:["crewed"===a.status?(0,b.jsx)(N.ReportLine,{report:a.report,now:c,variant:"row",testId:"member-report"}):(0,b.jsx)(O.StatusBadge,{status:a.status}),a.location?(0,b.jsx)(M.LocationTag,{kind:a.location.kind,description:a.location.description,isCompact:!0,size:"sm"}):(0,b.jsx)("span",{className:"text-muted-foreground",children:"No session"}),(0,b.jsxs)("span",{className:"flex items-center gap-1 text-muted-foreground","data-testid":"member-inbox",children:[(0,b.jsx)(h.Inbox,{"aria-hidden":!0,className:"size-(--size-icon-sm)"}),a.openDeliveries,(0,b.jsx)("span",{className:"sr-only",children:" open"})]})]}):null}function Q({role:a,blueprint:c,templates:d,count:e}){let f=c?.roles.find(b=>b.name===a)?.template,g=d.find(a=>a.repository===f?.repository&&a.name===f.name&&a.version===f.version);return(0,b.jsxs)("div",{className:"flex items-center gap-2 bg-muted px-3 py-1.5 text-meta",children:[(0,b.jsx)("span",{className:"rounded-sm bg-card px-1.5 font-mono",children:a}),f&&(0,b.jsx)("span",{className:"font-mono text-muted-foreground",children:`${f.name}@${String(f.version)}`}),g&&(0,b.jsxs)("span",{className:"text-muted-foreground",children:["checks in ",(0,I.checkInText)(g.checkInMinutes)]}),(0,b.jsxs)("span",{className:"ml-auto text-muted-foreground",children:[e," ",1===e?"member":"members"]})]})}function R({issued:a,template:c}){return(0,b.jsxs)("div",{className:"flex flex-col gap-2 border-b border-border px-3 py-2.5",children:[(0,b.jsx)(L.LaunchNote,{note:a.launchNote,model:a.model,template:c,testId:"member-launch-note"}),(0,b.jsxs)("p",{className:"flex items-center gap-1.5 text-meta text-muted-foreground",children:[(0,b.jsx)(H.Info,{"aria-hidden":!0,className:"size-(--size-icon-sm) shrink-0"}),(0,b.jsxs)("span",{children:[(0,b.jsx)("span",{className:"font-medium",children:"Shown once."})," Paste a member’s crew line into Claude Code or Codex started where the launch note says, or into a chat client with the fleet’s connector."]})]})]})}function S({member:a,issued:c,ship:d,now:e,renderActions:f}){return(0,b.jsxs)("li",{"data-testid":"member-row",className:"flex flex-col gap-2 px-3 py-2.5",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)(i.default,{href:`/ships/${a.shipId}`,className:"font-medium hover:underline","data-testid":"member-name",children:a.name}),(0,b.jsx)(K.HealthIndicator,{health:a.health,detail:function(a,{ship:b,now:c}){let{lastSeenAt:d}=a.crew;if("late"!==a.health&&"silent"!==a.health||null===d)return;let e=(0,j.lastSeen)(new Date(d),c).replace(/^Last/,"last"),f=b?.location?.description;return f?`${e} on ${f}`:e}(a,{ship:d,now:e}),className:"shrink-0"}),a.model.isMismatch&&(0,b.jsxs)("span",{className:"text-meta text-tone-attention-fg",children:["Runs ",a.model.stated??"an unstated model",", not ",a.model.pinned]}),(0,b.jsx)(P,{ship:d,now:e}),f?.(a)]}),c&&(0,b.jsx)(J.CompactCrewLine,{crewLines:c.crewLines,subject:a.name,testIdPrefix:"member-crew-line"})]})}function T({squadron:a,blueprint:c,templates:d,crewLines:e,ships:f,now:g,renderActions:h}){if(0===a.members.length)return(0,b.jsx)(k.EmptyState,{variant:"section",title:"No members",description:"This squadron has no members."});let i=a=>null===a.onStationAt?e.get(a.shipId):void 0;return(0,b.jsx)("div",{"data-testid":"member-list",className:"flex flex-col overflow-hidden rounded-lg border border-border",children:(0,I.membersByRole)(a.members).map(a=>{let e=c?.roles.find(b=>b.name===a.role)?.template,j=a.members.map(i).find(a=>void 0!==a);return(0,b.jsxs)("section",{"aria-label":`Role ${a.role}`,children:[(0,b.jsx)(Q,{role:a.role,blueprint:c,templates:d,count:a.members.length}),j&&(0,b.jsx)(R,{issued:j,template:e&&`${e.name}@${String(e.version)}`}),(0,b.jsx)("ul",{className:"divide-y divide-border",children:a.members.map(a=>(0,b.jsx)(S,{member:a,issued:i(a),ship:f.get(a.shipId),now:g,renderActions:h},a.shipId))})]},a.role)})})}var U=a.i(80487);let V={forming:{done:"on station",next:"Sails when all are on station"},standdown:{done:"finished their work",next:"Disbands when all are done"}};function W({done:a,total:c,variant:d,className:e}){let f=V[d],g=1===c?"member":"members";return(0,b.jsxs)("div",{"data-slot":"station-progress",role:"progressbar","aria-valuemin":0,"aria-valuemax":c,"aria-valuenow":a,"aria-label":`${String(a)} of ${String(c)} ${g} ${f.done}`,className:(0,U.classNames)("flex flex-col gap-1.5",e),children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-baseline justify-between gap-2 text-meta",children:[(0,b.jsxs)("p",{role:"status","aria-live":"polite",className:"text-foreground","data-testid":"station-progress",children:[(0,b.jsxs)("span",{className:"font-medium",children:[a," of ",c," ",g]})," ",f.done]}),(0,b.jsx)("span",{className:"text-muted-foreground",children:f.next})]}),(0,b.jsx)("div",{"aria-hidden":!0,className:"flex gap-1",children:Array.from({length:c},(c,d)=>(0,b.jsx)("span",{className:(0,U.classNames)("h-1.5 grow rounded-full",d<a?"bg-tone-ok-fg":"bg-muted")},`segment-${String(d)}`))})]})}function X({squadron:a,squadronId:c,state:d,actions:e,onForceStandDown:f}){if("loading"===d)return(0,b.jsx)(m.LoadingSkeleton,{variant:"detail",rows:2,label:"Loading the squadron"});if("not-found"===d||!a)return(0,b.jsx)(k.EmptyState,{title:"No such squadron",description:`The squadron manager knows no squadron ${c}.`});let{onStation:g,total:h}=(0,I.stationCount)(a);return(0,b.jsxs)("header",{"data-testid":"squadron-header",className:"flex flex-col gap-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2.5",children:[(0,b.jsx)("h1",{className:"text-title font-semibold",children:a.id}),(0,b.jsx)(O.StatusBadge,{status:a.state}),(0,b.jsxs)(i.default,{href:(0,I.blueprintPath)(a.blueprint),className:"text-meta text-muted-foreground hover:underline","data-testid":"squadron-blueprint",children:[(0,b.jsx)("span",{className:"font-mono",children:a.blueprint.name})," v",a.blueprint.version]}),e&&(0,b.jsx)("div",{className:"ml-auto flex gap-2",children:e})]}),(0,b.jsxs)("dl",{className:"flex flex-wrap gap-x-6 gap-y-1 text-meta text-muted-foreground",children:[(0,b.jsxs)("div",{className:"flex gap-1.5",children:[(0,b.jsx)("dt",{children:"Flagship"}),(0,b.jsx)("dd",{className:"font-mono text-foreground",children:a.flagship.name})]}),(0,b.jsxs)("div",{className:"flex gap-1.5",children:[(0,b.jsx)("dt",{children:"Members"}),(0,b.jsx)("dd",{className:"text-foreground",children:h})]}),(0,b.jsxs)("div",{className:"flex gap-1.5",children:[(0,b.jsx)("dt",{children:"Formed"}),(0,b.jsx)("dd",{className:"text-foreground",children:(0,j.shortDateTime)(new Date(a.formedAt))})]})]}),"standing-down"===a.state&&(0,b.jsxs)("div",{role:"status","data-testid":"squadron-state-notice",className:"flex flex-wrap items-center gap-3 rounded-lg border border-tone-waiting-border bg-tone-waiting-bg px-3 py-2.5 text-meta text-foreground",children:[(0,b.jsx)("span",{className:"grow",children:"No new work reaches its members. They finish their open work, then retire and the squadron disbands."}),f&&(0,b.jsx)(w.Button,{size:"xs","data-testid":"squadron-notice-force-stand-down",onClick:f,children:"Force stand down…"})]}),"disbanded"===a.state&&(0,b.jsxs)("div",{role:"status","data-testid":"squadron-state-notice",className:"rounded-lg border border-tone-ended-border bg-tone-ended-bg px-3 py-2.5 text-meta text-foreground",children:["Read-only. Its ",1===h?"1 member ship":`${String(h)} member ships`," and its flagship were retired; their history stays."]}),"forming"===a.state&&(0,b.jsx)(W,{done:g,total:h,variant:"forming",className:"max-w-md"}),"standing-down"===a.state&&(0,b.jsx)(W,{done:a.members.filter(a=>"retired"===a.crew.status).length,total:h,variant:"standdown",className:"max-w-md"})]})}var Y=a.i(35559),Z=a.i(38023);let $={working:"working",idle:"idle",blocked:"blocked"};function _({label:a,children:c}){return(0,b.jsxs)("div",{className:"flex min-w-0 flex-col gap-1",children:[(0,b.jsx)("span",{className:"text-caption font-medium text-muted-foreground",children:a}),(0,b.jsx)("span",{className:"text-meta text-foreground",children:c})]})}function aa({health:a,work:c,openDeliveries:d,keptCount:e}){return(0,b.jsxs)("div",{"aria-label":"Squadron summary","data-testid":"squadron-summary",className:"grid grid-cols-4 gap-4 rounded-lg border border-border bg-card px-4 py-3 shadow-sm max-sm:grid-cols-2 max-sm:gap-3",children:[(0,b.jsx)(_,{label:"Health",children:0===a.length?"None":(0,b.jsx)(K.HealthSummary,{counts:a})}),(0,b.jsx)(_,{label:"Work",children:0===c.length?"None reported":c.map(({state:a,count:b})=>`${String(b)} ${$[a]}`).join(", ")}),(0,b.jsx)(_,{label:"Open deliveries",children:void 0===d?"…":`${String(d)} in member inboxes`}),(0,b.jsx)(_,{label:"Kept by the flagship",children:void 0===e?"…":0===e?"None":String(e)})]})}var ab=a.i(10590),ac=a.i(34301),ad=a.i(65563),ae=a.i(67336),af=a.i(10023),ag=a.i(68450),ah=a.i(10572),ai=a.i(99929),aj=a.i(54763),ak=a.i(12540);let al=(0,ac.lazyDialog)(()=>a.A(13316).then(a=>a.AddMemberDialog),a=>a.isOpen),am=(0,ac.lazyDialog)(()=>a.A(43020).then(a=>a.CrewLineDialog),a=>a.isOpen),an=(0,ac.lazyDialog)(()=>a.A(53831).then(a=>a.RemoveMemberDialog),a=>a.isOpen),ao=(0,ac.lazyDialog)(()=>a.A(91861).then(a=>a.StandDownDialog),a=>a.isOpen);a.s(["default",0,function({params:a,searchParams:g}){let{squadronId:h}=(0,d.use)(a),i=(0,d.use)(g).action,j=(0,c.useRouter)(),k=(0,ag.useNow)(),l=(0,Z.useConsoleFrame)(),o=(0,af.useNeedsAttention)(),p=(0,ae.useLiveFleet)(),q=(0,ak.useSquadrons)(),r=(0,aj.useSquadronsConnection)(),s=(0,ak.useCatalogue)(),t=(0,ak.useIssuedCrewLines)(h),u=(0,ak.useKeptMessages)(h),v=(0,ak.useStandDown)(),[w,x]=(0,d.useState)(!1),y=(0,ak.useForceStandDown)(),[z,A]=(0,d.useState)(!1),C=(0,ak.useAddMember)(),[D,E]=(0,d.useState)(!1),[F,H]=(0,d.useState)(void 0),J=(0,ak.useRemoveMember)(),[K,L]=(0,d.useState)(void 0),M=(0,ad.useAccess)(),[N,O]=(0,d.useState)(!1);(0,ah.useSignInWhenSessionEnds)([o.error,p.error]);let P=q.data?.find(a=>a.id===h),Q=(0,ai.useShips)(P?.members.map(a=>a.shipId)??[]),R=[...Q.values()].reduce((a,b)=>a+b.openDeliveries,0),S=[...Q.values()].reduce((a,b)=>a+b.inFlightDeliveries,0),U=s.data?.blueprints.find(a=>a.repository===P?.blueprint.repository&&a.name===P.blueprint.name&&a.version===P.blueprint.version),V=P&&U?(0,I.roleOptions)(P,{blueprint:U,templates:s.data?.templates??[]}):[],W=K?Q.get(K.shipId):void 0,$=K?V.find(a=>a.role===K.role):void 0,_=P?.flagship.shipId,ac=P?(0,I.squadronActionsOffered)(P,{canManage:M.canManage,canSend:M.canSend,hasRoles:V.length>0}):void 0,ap="add-member"===i&&ac?.canAddMember===!0,aq="stand-down"===i&&ac?.canStandDown===!0,ar=()=>{void 0!==i&&j.replace(`/squadrons/${h}`,{scroll:!1})},as=P?.state==="sailing"||P?.state==="standing-down";return(0,b.jsxs)(Y.DetailPage,{onCompose:l.onCompose,onSearch:l.onSearch,banner:l.banner,title:h,parents:[{href:"/squadrons",label:"Squadrons"}],header:(0,b.jsx)(X,{squadron:P,squadronId:h,state:q.data?P?"ready":"not-found":"loading",actions:P&&ac?(0,b.jsx)(G,{squadronId:P.id,offered:ac,onAddMember:()=>{C.reset(),E(!0)},onMessageFlagship:()=>{O(!0)},onStandDown:()=>{v.reset(),x(!0)},onForceStandDown:()=>{y.reset(),A(!0)}}):void 0,onForceStandDown:M.canManage?()=>{y.reset(),A(!0)}:void 0}),live:p.live,children:["not-connected"===r?(0,b.jsx)(ab.SquadronsNotConnected,{}):P?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(aa,{health:(0,I.healthCounts)(P.members),work:(0,I.workCounts)(P.members.map(a=>Q.get(a.shipId)?.report??null)),openDeliveries:Q.size===P.members.length?R:void 0,keptCount:u.data?.length}),(0,b.jsx)(T,{squadron:P,blueprint:U,templates:s.data?.templates??[],crewLines:t,ships:Q,now:k,renderActions:a=>(0,b.jsx)(B,{squadronId:P.id,member:a,ship:Q.get(a.shipId),template:V.find(b=>b.role===a.role)?.template,canManage:M.canManage,canSend:M.canSend,isRemovable:as,onRemove:()=>{J.reset(),L(a)},compose:e.ComposeMessage})})]}):q.data?null:(0,b.jsx)(m.LoadingSkeleton,{variant:"list",label:"Loading the members"}),U&&(0,b.jsx)(f.HandoffWiring,{blueprint:U}),P&&(0,b.jsx)(n,{messages:u.data??[],state:u.isError?"error":u.data?"ready":"loading",error:u.error?.message,onRetry:()=>{u.refetch()},flagshipId:P.flagship.shipId,now:k}),P&&(0,b.jsx)(ao,{squadronId:P.id,memberCount:P.members.length,openDeliveries:R,inFlightDeliveries:S,isOpen:w||aq,onOpenChange:a=>{x(a),a||ar()},isPending:v.isPending,error:v.error?.message,onConfirm:()=>{v.mutate(P.id,{onSuccess:()=>{x(!1),ar()}})}}),P&&(0,b.jsx)(ao,{isForced:!0,squadronId:P.id,memberCount:P.members.length,openDeliveries:R,inFlightDeliveries:S,isOpen:z,onOpenChange:A,isPending:y.isPending,error:y.error?.message,onConfirm:()=>{y.mutate(P.id,{onSuccess:()=>{A(!1)}})}}),P&&V.length>0&&(0,b.jsx)(al,{squadronId:P.id,blueprint:`${P.blueprint.name} v${String(P.blueprint.version)}`,roles:V,isOpen:D||ap,onOpenChange:a=>{E(a),a||ar()},isPending:C.isPending,error:C.error?.message,onSubmit:a=>{C.mutate({squadronId:P.id,role:a},{onSuccess:a=>{E(!1),ar(),H(a)}})}}),P&&K&&(0,b.jsx)(an,{squadronId:P.id,member:K,othersOfRole:(0,I.otherMembersOfRole)(P,K.shipId),blueprint:$?{label:`${P.blueprint.name} v${String(P.blueprint.version)}`,count:$.inBlueprint}:void 0,openDeliveries:W?.openDeliveries??0,inFlightDeliveries:W?.inFlightDeliveries??0,isOpen:void 0!==W,onOpenChange:a=>{a||L(void 0)},isPending:J.isPending,error:J.error?.message,onConfirm:()=>{J.mutate({squadronId:P.id,shipId:K.shipId},{onSuccess:()=>{L(void 0)}})}}),F&&(0,b.jsx)(am,{memberName:F.name,state:"shown",template:V.find(a=>a.role===F.role)?.template,launchNote:F.launchNote,model:F.model,crewLines:F.crewLines,isOpen:!0,onOpenChange:a=>{a||H(void 0)}}),_&&(0,b.jsx)(e.ComposeMessage,{isOpen:N,onOpenChange:O,toShipId:_})]})}],18005)}];
1
+ module.exports=[18005,a=>{"use strict";var b=a.i(87924),c=a.i(50944),d=a.i(72131),e=a.i(86002),f=a.i(95409),g=a.i(41146),h=a.i(78958),i=a.i(38246),j=a.i(72872),k=a.i(24173),l=a.i(40392),m=a.i(50808);function n({messages:a,state:c,error:d,onRetry:e,flagshipId:f,now:o}){return(0,b.jsxs)("section",{"aria-labelledby":"kept-messages","data-testid":"kept-messages",className:"flex flex-col gap-2",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,b.jsx)("h2",{id:"kept-messages",className:"text-body font-semibold",children:"Messages the flagship kept"}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"Messages to the flagship it does not handle: kept here, never forwarded."})]}),"loading"===c?(0,b.jsx)(m.LoadingSkeleton,{variant:"list",rows:2,label:"Loading the kept messages"}):"error"===c?(0,b.jsx)(l.InlineError,{title:"Couldn’t load the kept messages",description:"The rest of the page is current. Try again in a moment.",detail:d,onRetry:e}):0===a.length?(0,b.jsx)(k.EmptyState,{variant:"section",icon:(0,b.jsx)(h.Inbox,{"aria-hidden":!0}),title:"No kept messages",description:"Every message to the flagship was the squadron's own."}):(0,b.jsx)("ul",{className:"divide-y divide-border overflow-hidden rounded-lg border border-border",children:a.map(a=>(0,b.jsx)("li",{"data-testid":"kept-message",children:(0,b.jsxs)(i.default,{href:`/ships/${f}?tab=messages&message=${a.messageId}`,className:"flex items-center gap-3 px-3 py-2.5 hover:bg-accent",children:[(0,b.jsxs)("span",{className:"flex min-w-0 grow flex-col gap-0.5",children:[(0,b.jsxs)("span",{className:"flex flex-wrap items-center gap-x-2 text-meta",children:[(0,b.jsx)("span",{className:"font-medium text-foreground",children:a.senderName}),(0,b.jsx)("span",{className:"font-mono text-muted-foreground",children:a.contentType}),(0,b.jsx)("time",{dateTime:a.receivedAt,className:"text-muted-foreground",children:(0,j.relativeTime)(new Date(a.receivedAt),o)})]}),(0,b.jsx)("span",{className:"truncate text-body",children:a.payload.split("\n")[0]??""})]}),(0,b.jsx)(g.ChevronRight,{"aria-hidden":!0,className:"size-(--size-icon) shrink-0 text-muted-foreground"}),(0,b.jsx)("span",{className:"sr-only",children:"Open the message"})]})},a.deliveryId))})]})}var o=a.i(85650),p=a.i(42955),q=a.i(26766),r=a.i(17256),s=a.i(64831);let t={name:"square-arrow-out-up-right",size:24,node:[["path",{d:"M21 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h6",key:"y09zxi"}],["path",{d:"m21 3-9 9",key:"mpx6sq"}],["path",{d:"M15 3h6v6",key:"1q9fwt"}]],aliases:["arrow-up-right-from-square"]};t.node;let u=(0,s.default)(t);var v=a.i(28339),w=a.i(12068),x=a.i(55280),y=a.i(4838),z=a.i(88191),A=a.i(71027);function B({squadronId:a,member:c,ship:e,template:f,canManage:g,canSend:h,isRemovable:j,onRemove:k,compose:l}){let[m,n]=(0,d.useState)(!1),s="retired"===c.crew.status||e?.status==="retired",t=(0,A.useNewCrewLineFlow)(g&&!s?{squadronId:a,member:c,ship:e,template:f}:void 0),C=async()=>{try{await navigator.clipboard.writeText(c.shipId),(0,z.showToast)({title:"Ship id copied",description:c.shipId,tone:"success"})}catch{(0,z.showToast)({title:"Couldn’t copy the ship id",description:c.shipId,tone:"error"})}},D=[{key:"open",label:"Open ship page",icon:u,testId:"member-open-ship",href:`/ships/${c.shipId}`},...h&&!s?[{key:"message",label:"Message…",icon:r.SquarePen,testId:"member-message",onSelect:()=>{n(!0)}}]:[],...g&&!s?[{key:"crew-line",label:"Get new crew line…",icon:q.KeyRound,testId:"member-new-crew-line",isDisabled:!t.isReady,onSelect:t.start}]:[],{key:"copy",label:"Copy ship id",icon:o.Copy,testId:"member-copy-id",onSelect:()=>void C()}],E=g&&j&&!s?{key:"remove",label:"Remove from squadron…",icon:v.UserMinus,testId:"member-remove",isDestructive:!0,onSelect:k}:void 0,F=a=>(0,b.jsx)(w.Button,{size:a,variant:"ghost",isIconOnly:!0,"aria-label":`Actions for ${c.name}`,icon:(0,b.jsx)(p.Ellipsis,{}),"data-testid":"member-actions"});return(0,b.jsxs)("span",{className:"flex shrink-0 items-center gap-1",children:[g&&!s&&"silent"===c.health&&(0,b.jsx)(w.Button,{size:"xs",disabled:!t.isReady,"data-testid":"member-new-crew-line-primary",onClick:t.start,children:"Get new crew line"}),(0,b.jsx)("span",{className:"max-sm:hidden",children:(0,b.jsxs)(x.DropdownMenu,{children:[(0,b.jsx)(x.DropdownMenuTrigger,{render:F("xs")}),(0,b.jsxs)(x.DropdownMenuContent,{align:"end",children:[D.map(a=>void 0===a.href?(0,b.jsxs)(x.DropdownMenuItem,{disabled:a.isDisabled,onClick:a.onSelect,"data-testid":a.testId,children:[(0,b.jsx)(a.icon,{"aria-hidden":!0}),a.label]},a.key):(0,b.jsxs)(x.DropdownMenuItem,{render:(0,b.jsx)(i.default,{href:a.href}),"data-testid":a.testId,children:[(0,b.jsx)(a.icon,{"aria-hidden":!0}),a.label]},a.key)),E&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(x.DropdownMenuSeparator,{}),(0,b.jsxs)(x.DropdownMenuItem,{variant:"destructive",onClick:E.onSelect,"data-testid":E.testId,children:[(0,b.jsx)(E.icon,{"aria-hidden":!0}),E.label]})]})]})]})}),(0,b.jsx)("span",{className:"sm:hidden",children:(0,b.jsxs)(y.Sheet,{children:[(0,b.jsx)(y.SheetTrigger,{render:F("touch")}),(0,b.jsxs)(y.SheetContent,{side:"bottom",children:[(0,b.jsx)(y.SheetHeader,{children:(0,b.jsx)(y.SheetTitle,{children:c.name})}),(0,b.jsx)("ul",{className:"flex flex-col pb-2",children:[...D,...E?[E]:[]].map(a=>(0,b.jsx)("li",{className:!0===a.isDestructive?"mt-1 border-t border-border pt-1":void 0,children:(0,b.jsxs)(y.SheetClose,{render:void 0===a.href?(0,b.jsx)("button",{type:"button",disabled:a.isDisabled,onClick:a.onSelect}):(0,b.jsx)(i.default,{href:a.href}),className:`flex h-(--size-control-touch) w-full items-center gap-3 px-4 text-left text-body-touch disabled:opacity-45 [&_svg]:size-(--size-icon) [&_svg]:shrink-0 ${!0===a.isDestructive?"text-destructive-text":"text-foreground"}`,children:[(0,b.jsx)(a.icon,{"aria-hidden":!0}),a.label.replace(/…$/,"")]})},a.key))}),(0,b.jsx)("div",{className:"px-4 pb-4",children:(0,b.jsx)(y.SheetClose,{render:(0,b.jsx)(w.Button,{size:"touch",className:"w-full"}),children:"Cancel"})})]})]})}),t.dialog,(0,b.jsx)(l,{isOpen:m,onOpenChange:n,toShipId:c.shipId})]})}let C={name:"octagon-x",size:24,node:[["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z",key:"2d38gg"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],aliases:["x-octagon"]};C.node;let D=(0,s.default)(C);var E=a.i(73594),F=a.i(46916);function G({squadronId:a,offered:c,onAddMember:d,onMessageFlagship:e,onStandDown:f,onForceStandDown:g}){let h=async()=>{try{await navigator.clipboard.writeText(a),(0,z.showToast)({title:"Squadron id copied",description:a,tone:"success"})}catch{(0,z.showToast)({title:"Couldn’t copy the squadron id",description:a,tone:"error"})}},i={key:"copy",label:"Copy squadron id",icon:o.Copy,testId:"squadron-copy-id",onSelect:()=>void h()},j=[...c.canStandDown?[{key:"stand-down",label:"Stand down…",icon:F.Waves,testId:"squadron-stand-down",isDestructive:!0,onSelect:f}]:[],...c.canForceStandDown?[{key:"force",label:"Force stand down…",icon:D,testId:"squadron-force-stand-down",isDestructive:!0,onSelect:g}]:[]],k=a=>(0,b.jsx)(w.Button,{size:a,variant:"ghost",isIconOnly:!0,"aria-label":"Squadron actions",icon:(0,b.jsx)(p.Ellipsis,{}),"data-testid":"squadron-actions"});return(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[c.canAddMember&&(0,b.jsx)(w.Button,{size:"xs",icon:(0,b.jsx)(E.UserPlus,{}),"data-testid":"squadron-add-member",onClick:d,children:"Add member"}),c.canMessageFlagship&&(0,b.jsx)(w.Button,{size:"xs",icon:(0,b.jsx)(r.SquarePen,{}),"data-testid":"squadron-message-flagship",onClick:e,children:"Message"}),(0,b.jsx)("div",{className:"max-sm:hidden",children:(0,b.jsxs)(x.DropdownMenu,{children:[(0,b.jsx)(x.DropdownMenuTrigger,{render:k("xs")}),(0,b.jsxs)(x.DropdownMenuContent,{align:"end",children:[(0,b.jsxs)(x.DropdownMenuItem,{onClick:i.onSelect,"data-testid":i.testId,children:[(0,b.jsx)(o.Copy,{"aria-hidden":!0}),i.label]}),j.length>0&&(0,b.jsx)(x.DropdownMenuSeparator,{}),j.map(a=>(0,b.jsxs)(x.DropdownMenuItem,{variant:"destructive",onClick:a.onSelect,"data-testid":a.testId,children:[(0,b.jsx)(a.icon,{"aria-hidden":!0}),a.label]},a.key))]})]})}),(0,b.jsx)("div",{className:"sm:hidden",children:(0,b.jsxs)(y.Sheet,{children:[(0,b.jsx)(y.SheetTrigger,{render:k("touch")}),(0,b.jsxs)(y.SheetContent,{side:"bottom","data-testid":"squadron-actions-sheet",children:[(0,b.jsx)(y.SheetHeader,{children:(0,b.jsx)(y.SheetTitle,{children:a})}),(0,b.jsx)("ul",{className:"flex flex-col pb-2",children:[i,...j].map((a,c)=>(0,b.jsx)("li",{className:1===c?"mt-1 border-t border-border pt-1":void 0,children:(0,b.jsxs)(y.SheetClose,{render:(0,b.jsx)("button",{type:"button",onClick:a.onSelect}),className:`flex h-(--size-control-touch) w-full items-center gap-3 px-4 text-left text-body-touch [&_svg]:size-(--size-icon) [&_svg]:shrink-0 ${!0===a.isDestructive?"text-destructive-text":"text-foreground"}`,children:[(0,b.jsx)(a.icon,{"aria-hidden":!0}),a.label.replace(/…$/,"")]})},a.key))}),(0,b.jsx)("div",{className:"px-4 pb-4",children:(0,b.jsx)(y.SheetClose,{render:(0,b.jsx)(w.Button,{size:"touch",className:"w-full"}),children:"Cancel"})})]})]})})]})}var H=a.i(52357),I=a.i(8219),J=a.i(21327),K=a.i(75971),L=a.i(3842),M=a.i(40108),N=a.i(92717),O=a.i(23063);function P({ship:a,now:c}){return a?(0,b.jsxs)("div",{className:"flex grow flex-wrap items-center justify-end gap-x-4 gap-y-1 text-meta",children:["crewed"===a.status?(0,b.jsx)(N.ReportLine,{report:a.report,now:c,variant:"row",testId:"member-report"}):(0,b.jsx)(O.StatusBadge,{status:a.status}),a.location?(0,b.jsx)(M.LocationTag,{kind:a.location.kind,description:a.location.description,isCompact:!0,size:"sm"}):(0,b.jsx)("span",{className:"text-muted-foreground",children:"No session"}),(0,b.jsxs)("span",{className:"flex items-center gap-1 text-muted-foreground","data-testid":"member-inbox",children:[(0,b.jsx)(h.Inbox,{"aria-hidden":!0,className:"size-(--size-icon-sm)"}),a.openDeliveries,(0,b.jsx)("span",{className:"sr-only",children:" open"})]})]}):null}function Q({role:a,blueprint:c,templates:d,count:e}){let f=c?.roles.find(b=>b.name===a)?.template,g=d.find(a=>a.repository===f?.repository&&a.name===f.name&&a.version===f.version);return(0,b.jsxs)("div",{className:"flex items-center gap-2 bg-muted px-3 py-1.5 text-meta",children:[(0,b.jsx)("span",{className:"rounded-sm bg-card px-1.5 font-mono",children:a}),f&&(0,b.jsx)("span",{className:"font-mono text-muted-foreground",children:`${f.name}@${String(f.version)}`}),g&&(0,b.jsxs)("span",{className:"text-muted-foreground",children:["checks in ",(0,I.checkInText)(g.checkInMinutes)]}),(0,b.jsxs)("span",{className:"ml-auto text-muted-foreground",children:[e," ",1===e?"member":"members"]})]})}function R({issued:a,template:c}){return(0,b.jsxs)("div",{className:"flex flex-col gap-2 border-b border-border px-3 py-2.5",children:[(0,b.jsx)(L.LaunchNote,{note:a.launchNote,model:a.model,template:c,testId:"member-launch-note"}),(0,b.jsxs)("p",{className:"flex items-center gap-1.5 text-meta text-muted-foreground",children:[(0,b.jsx)(H.Info,{"aria-hidden":!0,className:"size-(--size-icon-sm) shrink-0"}),(0,b.jsxs)("span",{children:[(0,b.jsx)("span",{className:"font-medium",children:"Shown once."})," Paste a member’s crew line into Claude Code or Codex started where the launch note says, or the Chat one, the ship’s crew instructions for a chat, into a chat app."]})]})]})}function S({member:a,issued:c,ship:d,now:e,renderActions:f}){return(0,b.jsxs)("li",{"data-testid":"member-row",className:"flex flex-col gap-2 px-3 py-2.5",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)(i.default,{href:`/ships/${a.shipId}`,className:"font-medium hover:underline","data-testid":"member-name",children:a.name}),(0,b.jsx)(K.HealthIndicator,{health:a.health,detail:function(a,{ship:b,now:c}){let{lastSeenAt:d}=a.crew;if("late"!==a.health&&"silent"!==a.health||null===d)return;let e=(0,j.lastSeen)(new Date(d),c).replace(/^Last/,"last"),f=b?.location?.description;return f?`${e} on ${f}`:e}(a,{ship:d,now:e}),className:"shrink-0"}),a.model.isMismatch&&(0,b.jsxs)("span",{className:"text-meta text-tone-attention-fg",children:["Runs ",a.model.stated??"an unstated model",", not ",a.model.pinned]}),(0,b.jsx)(P,{ship:d,now:e}),f?.(a)]}),c&&(0,b.jsx)(J.CompactCrewLine,{crewLines:c.crewLines,subject:a.name,testIdPrefix:"member-crew-line"})]})}function T({squadron:a,blueprint:c,templates:d,crewLines:e,ships:f,now:g,renderActions:h}){if(0===a.members.length)return(0,b.jsx)(k.EmptyState,{variant:"section",title:"No members",description:"This squadron has no members."});let i=a=>null===a.onStationAt?e.get(a.shipId):void 0;return(0,b.jsx)("div",{"data-testid":"member-list",className:"flex flex-col overflow-hidden rounded-lg border border-border",children:(0,I.membersByRole)(a.members).map(a=>{let e=c?.roles.find(b=>b.name===a.role)?.template,j=a.members.map(i).find(a=>void 0!==a);return(0,b.jsxs)("section",{"aria-label":`Role ${a.role}`,children:[(0,b.jsx)(Q,{role:a.role,blueprint:c,templates:d,count:a.members.length}),j&&(0,b.jsx)(R,{issued:j,template:e&&`${e.name}@${String(e.version)}`}),(0,b.jsx)("ul",{className:"divide-y divide-border",children:a.members.map(a=>(0,b.jsx)(S,{member:a,issued:i(a),ship:f.get(a.shipId),now:g,renderActions:h},a.shipId))})]},a.role)})})}var U=a.i(80487);let V={forming:{done:"on station",next:"Sails when all are on station"},standdown:{done:"finished their work",next:"Disbands when all are done"}};function W({done:a,total:c,variant:d,className:e}){let f=V[d],g=1===c?"member":"members";return(0,b.jsxs)("div",{"data-slot":"station-progress",role:"progressbar","aria-valuemin":0,"aria-valuemax":c,"aria-valuenow":a,"aria-label":`${String(a)} of ${String(c)} ${g} ${f.done}`,className:(0,U.classNames)("flex flex-col gap-1.5",e),children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-baseline justify-between gap-2 text-meta",children:[(0,b.jsxs)("p",{role:"status","aria-live":"polite",className:"text-foreground","data-testid":"station-progress",children:[(0,b.jsxs)("span",{className:"font-medium",children:[a," of ",c," ",g]})," ",f.done]}),(0,b.jsx)("span",{className:"text-muted-foreground",children:f.next})]}),(0,b.jsx)("div",{"aria-hidden":!0,className:"flex gap-1",children:Array.from({length:c},(c,d)=>(0,b.jsx)("span",{className:(0,U.classNames)("h-1.5 grow rounded-full",d<a?"bg-tone-ok-fg":"bg-muted")},`segment-${String(d)}`))})]})}function X({squadron:a,squadronId:c,state:d,actions:e,onForceStandDown:f}){if("loading"===d)return(0,b.jsx)(m.LoadingSkeleton,{variant:"detail",rows:2,label:"Loading the squadron"});if("not-found"===d||!a)return(0,b.jsx)(k.EmptyState,{title:"No such squadron",description:`The squadron manager knows no squadron ${c}.`});let{onStation:g,total:h}=(0,I.stationCount)(a);return(0,b.jsxs)("header",{"data-testid":"squadron-header",className:"flex flex-col gap-3",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2.5",children:[(0,b.jsx)("h1",{className:"text-title font-semibold",children:a.id}),(0,b.jsx)(O.StatusBadge,{status:a.state}),(0,b.jsxs)(i.default,{href:(0,I.blueprintPath)(a.blueprint),className:"text-meta text-muted-foreground hover:underline","data-testid":"squadron-blueprint",children:[(0,b.jsx)("span",{className:"font-mono",children:a.blueprint.name})," v",a.blueprint.version]}),e&&(0,b.jsx)("div",{className:"ml-auto flex gap-2",children:e})]}),(0,b.jsxs)("dl",{className:"flex flex-wrap gap-x-6 gap-y-1 text-meta text-muted-foreground",children:[(0,b.jsxs)("div",{className:"flex gap-1.5",children:[(0,b.jsx)("dt",{children:"Flagship"}),(0,b.jsx)("dd",{className:"font-mono text-foreground",children:a.flagship.name})]}),(0,b.jsxs)("div",{className:"flex gap-1.5",children:[(0,b.jsx)("dt",{children:"Members"}),(0,b.jsx)("dd",{className:"text-foreground",children:h})]}),(0,b.jsxs)("div",{className:"flex gap-1.5",children:[(0,b.jsx)("dt",{children:"Formed"}),(0,b.jsx)("dd",{className:"text-foreground",children:(0,j.shortDateTime)(new Date(a.formedAt))})]})]}),"standing-down"===a.state&&(0,b.jsxs)("div",{role:"status","data-testid":"squadron-state-notice",className:"flex flex-wrap items-center gap-3 rounded-lg border border-tone-waiting-border bg-tone-waiting-bg px-3 py-2.5 text-meta text-foreground",children:[(0,b.jsx)("span",{className:"grow",children:"No new work reaches its members. They finish their open work, then retire and the squadron disbands."}),f&&(0,b.jsx)(w.Button,{size:"xs","data-testid":"squadron-notice-force-stand-down",onClick:f,children:"Force stand down…"})]}),"disbanded"===a.state&&(0,b.jsxs)("div",{role:"status","data-testid":"squadron-state-notice",className:"rounded-lg border border-tone-ended-border bg-tone-ended-bg px-3 py-2.5 text-meta text-foreground",children:["Read-only. Its ",1===h?"1 member ship":`${String(h)} member ships`," and its flagship were retired; their history stays."]}),"forming"===a.state&&(0,b.jsx)(W,{done:g,total:h,variant:"forming",className:"max-w-md"}),"standing-down"===a.state&&(0,b.jsx)(W,{done:a.members.filter(a=>"retired"===a.crew.status).length,total:h,variant:"standdown",className:"max-w-md"})]})}var Y=a.i(35559),Z=a.i(38023);let $={working:"working",idle:"idle",blocked:"blocked"};function _({label:a,children:c}){return(0,b.jsxs)("div",{className:"flex min-w-0 flex-col gap-1",children:[(0,b.jsx)("span",{className:"text-caption font-medium text-muted-foreground",children:a}),(0,b.jsx)("span",{className:"text-meta text-foreground",children:c})]})}function aa({health:a,work:c,openDeliveries:d,keptCount:e}){return(0,b.jsxs)("div",{"aria-label":"Squadron summary","data-testid":"squadron-summary",className:"grid grid-cols-4 gap-4 rounded-lg border border-border bg-card px-4 py-3 shadow-sm max-sm:grid-cols-2 max-sm:gap-3",children:[(0,b.jsx)(_,{label:"Health",children:0===a.length?"None":(0,b.jsx)(K.HealthSummary,{counts:a})}),(0,b.jsx)(_,{label:"Work",children:0===c.length?"None reported":c.map(({state:a,count:b})=>`${String(b)} ${$[a]}`).join(", ")}),(0,b.jsx)(_,{label:"Open deliveries",children:void 0===d?"…":`${String(d)} in member inboxes`}),(0,b.jsx)(_,{label:"Kept by the flagship",children:void 0===e?"…":0===e?"None":String(e)})]})}var ab=a.i(10590),ac=a.i(34301),ad=a.i(65563),ae=a.i(67336),af=a.i(10023),ag=a.i(68450),ah=a.i(10572),ai=a.i(99929),aj=a.i(54763),ak=a.i(12540);let al=(0,ac.lazyDialog)(()=>a.A(13316).then(a=>a.AddMemberDialog),a=>a.isOpen),am=(0,ac.lazyDialog)(()=>a.A(43020).then(a=>a.CrewLineDialog),a=>a.isOpen),an=(0,ac.lazyDialog)(()=>a.A(53831).then(a=>a.RemoveMemberDialog),a=>a.isOpen),ao=(0,ac.lazyDialog)(()=>a.A(91861).then(a=>a.StandDownDialog),a=>a.isOpen);a.s(["default",0,function({params:a,searchParams:g}){let{squadronId:h}=(0,d.use)(a),i=(0,d.use)(g).action,j=(0,c.useRouter)(),k=(0,ag.useNow)(),l=(0,Z.useConsoleFrame)(),o=(0,af.useNeedsAttention)(),p=(0,ae.useLiveFleet)(),q=(0,ak.useSquadrons)(),r=(0,aj.useSquadronsConnection)(),s=(0,ak.useCatalogue)(),t=(0,ak.useIssuedCrewLines)(h),u=(0,ak.useKeptMessages)(h),v=(0,ak.useStandDown)(),[w,x]=(0,d.useState)(!1),y=(0,ak.useForceStandDown)(),[z,A]=(0,d.useState)(!1),C=(0,ak.useAddMember)(),[D,E]=(0,d.useState)(!1),[F,H]=(0,d.useState)(void 0),J=(0,ak.useRemoveMember)(),[K,L]=(0,d.useState)(void 0),M=(0,ad.useAccess)(),[N,O]=(0,d.useState)(!1);(0,ah.useSignInWhenSessionEnds)([o.error,p.error]);let P=q.data?.find(a=>a.id===h),Q=(0,ai.useShips)(P?.members.map(a=>a.shipId)??[]),R=[...Q.values()].reduce((a,b)=>a+b.openDeliveries,0),S=[...Q.values()].reduce((a,b)=>a+b.inFlightDeliveries,0),U=s.data?.blueprints.find(a=>a.repository===P?.blueprint.repository&&a.name===P.blueprint.name&&a.version===P.blueprint.version),V=P&&U?(0,I.roleOptions)(P,{blueprint:U,templates:s.data?.templates??[]}):[],W=K?Q.get(K.shipId):void 0,$=K?V.find(a=>a.role===K.role):void 0,_=P?.flagship.shipId,ac=P?(0,I.squadronActionsOffered)(P,{canManage:M.canManage,canSend:M.canSend,hasRoles:V.length>0}):void 0,ap="add-member"===i&&ac?.canAddMember===!0,aq="stand-down"===i&&ac?.canStandDown===!0,ar=()=>{void 0!==i&&j.replace(`/squadrons/${h}`,{scroll:!1})},as=P?.state==="sailing"||P?.state==="standing-down";return(0,b.jsxs)(Y.DetailPage,{onCompose:l.onCompose,onSearch:l.onSearch,banner:l.banner,title:h,parents:[{href:"/squadrons",label:"Squadrons"}],header:(0,b.jsx)(X,{squadron:P,squadronId:h,state:q.data?P?"ready":"not-found":"loading",actions:P&&ac?(0,b.jsx)(G,{squadronId:P.id,offered:ac,onAddMember:()=>{C.reset(),E(!0)},onMessageFlagship:()=>{O(!0)},onStandDown:()=>{v.reset(),x(!0)},onForceStandDown:()=>{y.reset(),A(!0)}}):void 0,onForceStandDown:M.canManage?()=>{y.reset(),A(!0)}:void 0}),live:p.live,children:["not-connected"===r?(0,b.jsx)(ab.SquadronsNotConnected,{}):P?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(aa,{health:(0,I.healthCounts)(P.members),work:(0,I.workCounts)(P.members.map(a=>Q.get(a.shipId)?.report??null)),openDeliveries:Q.size===P.members.length?R:void 0,keptCount:u.data?.length}),(0,b.jsx)(T,{squadron:P,blueprint:U,templates:s.data?.templates??[],crewLines:t,ships:Q,now:k,renderActions:a=>(0,b.jsx)(B,{squadronId:P.id,member:a,ship:Q.get(a.shipId),template:V.find(b=>b.role===a.role)?.template,canManage:M.canManage,canSend:M.canSend,isRemovable:as,onRemove:()=>{J.reset(),L(a)},compose:e.ComposeMessage})})]}):q.data?null:(0,b.jsx)(m.LoadingSkeleton,{variant:"list",label:"Loading the members"}),U&&(0,b.jsx)(f.HandoffWiring,{blueprint:U}),P&&(0,b.jsx)(n,{messages:u.data??[],state:u.isError?"error":u.data?"ready":"loading",error:u.error?.message,onRetry:()=>{u.refetch()},flagshipId:P.flagship.shipId,now:k}),P&&(0,b.jsx)(ao,{squadronId:P.id,memberCount:P.members.length,openDeliveries:R,inFlightDeliveries:S,isOpen:w||aq,onOpenChange:a=>{x(a),a||ar()},isPending:v.isPending,error:v.error?.message,onConfirm:()=>{v.mutate(P.id,{onSuccess:()=>{x(!1),ar()}})}}),P&&(0,b.jsx)(ao,{isForced:!0,squadronId:P.id,memberCount:P.members.length,openDeliveries:R,inFlightDeliveries:S,isOpen:z,onOpenChange:A,isPending:y.isPending,error:y.error?.message,onConfirm:()=>{y.mutate(P.id,{onSuccess:()=>{A(!1)}})}}),P&&V.length>0&&(0,b.jsx)(al,{squadronId:P.id,blueprint:`${P.blueprint.name} v${String(P.blueprint.version)}`,roles:V,isOpen:D||ap,onOpenChange:a=>{E(a),a||ar()},isPending:C.isPending,error:C.error?.message,onSubmit:a=>{C.mutate({squadronId:P.id,role:a},{onSuccess:a=>{E(!1),ar(),H(a)}})}}),P&&K&&(0,b.jsx)(an,{squadronId:P.id,member:K,othersOfRole:(0,I.otherMembersOfRole)(P,K.shipId),blueprint:$?{label:`${P.blueprint.name} v${String(P.blueprint.version)}`,count:$.inBlueprint}:void 0,openDeliveries:W?.openDeliveries??0,inFlightDeliveries:W?.inFlightDeliveries??0,isOpen:void 0!==W,onOpenChange:a=>{a||L(void 0)},isPending:J.isPending,error:J.error?.message,onConfirm:()=>{J.mutate({squadronId:P.id,shipId:K.shipId},{onSuccess:()=>{L(void 0)}})}}),F&&(0,b.jsx)(am,{memberName:F.name,state:"shown",template:V.find(a=>a.role===F.role)?.template,launchNote:F.launchNote,model:F.model,crewLines:F.crewLines,isOpen:!0,onOpenChange:a=>{a||H(void 0)}}),_&&(0,b.jsx)(e.ComposeMessage,{isOpen:N,onOpenChange:O,toShipId:_})]})}],18005)}];
2
2
 
3
3
  //# sourceMappingURL=packages_console_app_%28console%29_squadrons_%5BsquadronId%5D_page_tsx_0f8nmsh._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[82904,a=>{"use strict";var b=a.i(87924),c=a.i(3512),d=a.i(50944),e=a.i(72131),f=a.i(12068),g=a.i(94777),h=a.i(41146),i=a.i(64040),j=a.i(38246),k=a.i(72872),l=a.i(47480),m=a.i(8219),n=a.i(77339),o=a.i(24173),p=a.i(40392),q=a.i(50808),r=a.i(20847);function s({blueprints:a,squadrons:c,state:d,error:e,onRetry:f}){if("loading"===d)return(0,b.jsx)(q.LoadingSkeleton,{variant:"table",label:"Loading blueprints"});if("error"===d)return(0,b.jsx)(p.InlineError,{variant:"page",title:"Couldn’t read blueprints from git",description:"The squadron manager couldn’t fetch the squadrons repository. Running squadrons are not affected.",detail:e,onRetry:f});if(0===a.length)return(0,b.jsx)(o.EmptyState,{icon:(0,b.jsx)(i.DraftingCompass,{"aria-hidden":!0}),title:"No blueprints in git",description:"The squadron manager reads blueprints from .aeolus/squadrons/blueprints. Commit one there; it shows up here on its own."});let g=a.flatMap(a=>{let b=a.versions[0];return b?[{blueprint:a,latest:b,formed:(0,m.squadronsText)((0,m.squadronsFromBlueprint)(c,a))}]:[]});return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(n.Table,{"data-testid":"blueprint-table",className:"max-sm:hidden",children:[(0,b.jsx)(n.TableHeader,{children:(0,b.jsxs)(n.TableRow,{children:[(0,b.jsx)(n.TableHead,{children:"Blueprint"}),(0,b.jsx)(n.TableHead,{children:"Source"}),(0,b.jsx)(n.TableHead,{children:"Latest"}),(0,b.jsx)(n.TableHead,{children:"Roles"}),(0,b.jsx)(n.TableHead,{children:"Squadrons"}),(0,b.jsx)(n.TableHead,{children:"Committed"})]})}),(0,b.jsx)(n.TableBody,{children:g.map(({blueprint:a,latest:c,formed:d})=>(0,b.jsxs)(n.TableRow,{"data-testid":"blueprint-row",children:[(0,b.jsx)(n.TableCell,{className:"font-medium",children:(0,b.jsx)(j.default,{href:(0,m.blueprintPath)(a),className:"hover:underline",children:a.name})}),(0,b.jsx)(n.TableCell,{"data-testid":"blueprint-row-source",children:(0,b.jsx)(r.RepositoryName,{name:c.repository,href:(0,l.versionFileUrl)(c)})}),(0,b.jsxs)(n.TableCell,{children:["v",c.version]}),(0,b.jsx)(n.TableCell,{children:(0,m.rolesText)(c)}),(0,b.jsx)(n.TableCell,{className:""===d?"text-muted-foreground":void 0,children:""===d?"None":d}),(0,b.jsxs)(n.TableCell,{className:"text-muted-foreground",children:[(0,k.dayMonth)(new Date(c.committedAt))," · ",(0,b.jsx)("span",{className:"font-mono",children:c.commit.slice(0,7)})]})]},a.key))})]}),(0,b.jsx)("ul",{className:"divide-y divide-border overflow-hidden rounded-lg border border-border sm:hidden",children:g.map(({blueprint:a,latest:c})=>(0,b.jsx)("li",{children:(0,b.jsxs)(j.default,{href:(0,m.blueprintPath)(a),className:"flex items-center gap-2 px-3 py-2.5",children:[(0,b.jsxs)("span",{className:"flex min-w-0 grow flex-col gap-0.5",children:[(0,b.jsxs)("span",{className:"font-medium",children:[a.name," ",(0,b.jsxs)("span",{className:"text-meta font-normal text-muted-foreground",children:["v",c.version]})]}),(0,b.jsx)("span",{className:"truncate text-meta text-muted-foreground",children:(0,m.rolesText)(c)}),(0,b.jsx)("span",{className:"flex min-w-0 text-meta text-muted-foreground",children:(0,b.jsx)(r.RepositoryName,{name:c.repository})})]}),(0,b.jsx)(h.ChevronRight,{"aria-hidden":!0,className:"size-(--size-icon-sm) shrink-0 text-muted-foreground"})]})},a.key))})]})}var t=a.i(64831);let u={name:"layout-template",size:24,node:[["rect",{width:"18",height:"7",x:"3",y:"3",rx:"1",key:"f1a2em"}],["rect",{width:"9",height:"7",x:"3",y:"14",rx:"1",key:"jqznyg"}],["rect",{width:"5",height:"7",x:"16",y:"14",rx:"1",key:"q5h2i8"}]]};u.node;let v=(0,t.default)(u);function w({templates:a,blueprints:c,state:d,error:e,onRetry:f}){if("loading"===d)return(0,b.jsx)(q.LoadingSkeleton,{variant:"table",label:"Loading templates"});if("error"===d)return(0,b.jsx)(p.InlineError,{variant:"page",title:"Couldn’t read templates from git",description:"The squadron manager couldn’t fetch the squadrons repository. Running squadrons are not affected.",detail:e,onRetry:f});if(0===a.length)return(0,b.jsx)(o.EmptyState,{icon:(0,b.jsx)(v,{"aria-hidden":!0}),title:"No templates in git",description:"The squadron manager reads templates from .aeolus/squadrons/templates. Commit one there; it shows up here on its own."});let g=a.flatMap(a=>{let b=a.versions[0];return b?[{template:a,latest:b,users:function(a,b){let c=new Map;for(let a of b){let b=`${a.repository}#${a.name}`,d=c.get(b);(!d||d.version<a.version)&&c.set(b,a)}return(0,m.blueprintsUsing)([...c.values()],a).map(a=>a.name).sort().join(", ")}(a,c)}]:[]});return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(n.Table,{"data-testid":"template-table",className:"max-sm:hidden",children:[(0,b.jsx)(n.TableHeader,{children:(0,b.jsxs)(n.TableRow,{children:[(0,b.jsx)(n.TableHead,{children:"Template"}),(0,b.jsx)(n.TableHead,{children:"Source"}),(0,b.jsx)(n.TableHead,{children:"Latest"}),(0,b.jsx)(n.TableHead,{children:"Check-in"}),(0,b.jsx)(n.TableHead,{children:"Used by blueprints"}),(0,b.jsx)(n.TableHead,{children:"Committed"})]})}),(0,b.jsx)(n.TableBody,{children:g.map(({template:a,latest:c,users:d})=>(0,b.jsxs)(n.TableRow,{"data-testid":"template-row",children:[(0,b.jsx)(n.TableCell,{className:"font-medium",children:(0,b.jsx)(j.default,{href:(0,m.templatePath)(a),className:"hover:underline",children:a.name})}),(0,b.jsx)(n.TableCell,{"data-testid":"template-row-source",children:(0,b.jsx)(r.RepositoryName,{name:c.repository,href:(0,l.versionFileUrl)(c)})}),(0,b.jsxs)(n.TableCell,{children:["v",c.version]}),(0,b.jsx)(n.TableCell,{children:(0,m.checkInText)(c.checkInMinutes)}),(0,b.jsx)(n.TableCell,{className:""===d?"text-muted-foreground":void 0,children:""===d?"None":d}),(0,b.jsx)(n.TableCell,{className:"text-muted-foreground",children:(0,k.dayMonth)(new Date(c.committedAt))})]},a.key))})]}),(0,b.jsx)("ul",{className:"divide-y divide-border overflow-hidden rounded-lg border border-border sm:hidden",children:g.map(({template:a,latest:c})=>(0,b.jsx)("li",{children:(0,b.jsxs)(j.default,{href:(0,m.templatePath)(a),className:"flex items-center gap-2 px-3 py-2.5",children:[(0,b.jsxs)("span",{className:"flex min-w-0 grow flex-col gap-0.5",children:[(0,b.jsxs)("span",{className:"font-medium",children:[a.name," ",(0,b.jsxs)("span",{className:"text-meta font-normal text-muted-foreground",children:["v",c.version]})]}),(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:(0,m.checkInText)(c.checkInMinutes)}),(0,b.jsx)("span",{className:"flex min-w-0 text-meta text-muted-foreground",children:(0,b.jsx)(r.RepositoryName,{name:c.repository})})]}),(0,b.jsx)(h.ChevronRight,{"aria-hidden":!0,className:"size-(--size-icon-sm) shrink-0 text-muted-foreground"})]})},a.key))})]})}var x=a.i(88468),y=a.i(31668);let z={name:"wifi-off",size:24,node:[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]};z.node;let A=(0,t.default)(z),B=["forming","sailing","standing-down","disbanded"],C="state",D="blueprint",E="disbanded";var F=a.i(75297),G=a.i(45098),H=a.i(48136),I=a.i(45469),J=a.i(75971),K=a.i(23063);function L({squadrons:a,state:d,hasBlueprints:e,error:g,onRetry:h,onForm:i,view:j,onViewChange:k}){let l;if("loading"===d)return(0,b.jsx)(q.LoadingSkeleton,{variant:"table",label:"Loading squadrons"});if("error"===d)return(0,b.jsx)(p.InlineError,{title:"Couldn’t load squadrons",description:"The console couldn’t reach the squadron manager. Your ships keep running; nothing is lost.",detail:g,onRetry:h});if(0===a.length)return e?(0,b.jsx)(o.EmptyState,{icon:(0,b.jsx)(y.Shapes,{"aria-hidden":!0}),title:"No squadrons yet",description:"A squadron is a team of ships formed from a blueprint: a planner, implementers, a tester. You start each member's session by hand with its crew line.",action:i&&(0,b.jsx)(f.Button,{variant:"primary",icon:(0,b.jsx)(c.Plus,{"aria-hidden":!0}),onClick:i,"data-testid":"squadrons-form-first",children:"Form your first squadron"})}):(0,b.jsx)(o.EmptyState,{icon:(0,b.jsx)(A,{"aria-hidden":!0}),title:"No blueprints found",description:"The squadron manager reads blueprints and templates from git. Add a blueprint there; it shows up here on its own."});let m=(l=j.query.trim().toLowerCase(),a.filter(a=>(j.isDisbandedShown||"disbanded"!==a.state)&&("all"===j.state||a.state===j.state)&&("all"===j.blueprint||a.blueprint.name===j.blueprint)&&(""===l||a.id.toLowerCase().includes(l)||a.blueprint.name.toLowerCase().includes(l))));return(0,b.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,b.jsx)(N,{squadrons:a,view:j,onViewChange:k,shownCount:m.length}),0===m.length?(0,b.jsx)(o.EmptyState,{variant:"no-results",title:"No squadrons match",action:(0,b.jsx)(f.Button,{onClick:()=>{k({query:"",state:"all",blueprint:"all",isDisbandedShown:j.isDisbandedShown})},children:"Clear filters"})}):(0,b.jsx)(O,{squadrons:m})]})}let M={all:"All",forming:"Forming",sailing:"Sailing","standing-down":"Standing down"};function N({squadrons:a,view:c,onViewChange:d,shownCount:e}){let f={all:"All",...Object.fromEntries([...new Set(a.map(a=>a.blueprint.name))].toSorted((a,b)=>a.localeCompare(b)).map(a=>[a,a]))};return(0,b.jsxs)("div",{"data-slot":"squadrons-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)(F.Input,{type:"search","aria-label":"Search squadrons",placeholder:"Search squadrons","data-testid":"squadrons-search",value:c.query,onChange:a=>{d({...c,query:a.target.value})}})}),(0,b.jsxs)(H.Select,{items:M,value:c.state,onValueChange:a=>{null!==a&&Object.hasOwn(M,a)&&d({...c,state:a})},children:[(0,b.jsx)(H.SelectTrigger,{size:"sm","aria-label":"State","data-testid":"squadrons-filter-state",children:(0,b.jsxs)("span",{className:"flex gap-1.5",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:"State"}),(0,b.jsx)(H.SelectValue,{className:"font-medium"})]})}),(0,b.jsx)(H.SelectContent,{children:Object.entries(M).map(([a,c])=>(0,b.jsx)(H.SelectItem,{value:a,children:c},a))})]}),(0,b.jsxs)(H.Select,{items:f,value:c.blueprint,onValueChange:a=>{null!==a&&d({...c,blueprint:a})},children:[(0,b.jsx)(H.SelectTrigger,{size:"sm","aria-label":"Blueprint","data-testid":"squadrons-filter-blueprint",children:(0,b.jsxs)("span",{className:"flex gap-1.5",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:"Blueprint"}),(0,b.jsx)(H.SelectValue,{className:"font-medium"})]})}),(0,b.jsx)(H.SelectContent,{children:Object.entries(f).map(([a,c])=>(0,b.jsx)(H.SelectItem,{value:a,className:"all"===a?void 0:"font-mono",children:c},a))})]}),(0,b.jsxs)("div",{className:"inline-flex items-center gap-2 sm:ml-auto",children:[(0,b.jsx)(I.Switch,{id:"squadrons-show-disbanded","data-testid":"squadrons-show-disbanded",checked:c.isDisbandedShown,onCheckedChange:a=>{d({...c,isDisbandedShown:a})}}),(0,b.jsxs)(G.Label,{htmlFor:"squadrons-show-disbanded",className:"text-meta font-normal text-muted-foreground",children:["Show disbanded (",a.filter(a=>"disbanded"===a.state).length,")"]}),(0,b.jsxs)("span",{className:"text-meta text-muted-foreground",children:[e," of ",a.length," squadrons"]})]})]})}function O({squadrons:a}){return(0,b.jsxs)(n.Table,{"data-testid":"squadrons-table",children:[(0,b.jsx)(n.TableHeader,{children:(0,b.jsxs)(n.TableRow,{children:[(0,b.jsx)(n.TableHead,{children:"Squadron"}),(0,b.jsx)(n.TableHead,{children:"Blueprint"}),(0,b.jsx)(n.TableHead,{children:"State"}),(0,b.jsx)(n.TableHead,{children:"Members"}),(0,b.jsx)(n.TableHead,{children:"Health"}),(0,b.jsx)(n.TableHead,{children:"Formed"})]})}),(0,b.jsx)(n.TableBody,{children:a.map(a=>(0,b.jsxs)(n.TableRow,{"data-testid":"squadrons-row",children:[(0,b.jsx)(n.TableCell,{children:(0,b.jsx)(j.default,{href:`/squadrons/${a.id}`,className:"font-medium hover:underline",children:a.id})}),(0,b.jsx)(n.TableCell,{children:(0,b.jsxs)(j.default,{href:(0,m.blueprintPath)(a.blueprint),className:"hover:underline",children:[(0,b.jsx)("span",{className:"font-mono",children:a.blueprint.name})," ",(0,b.jsxs)("span",{className:"text-muted-foreground",children:["v",a.blueprint.version]})]})}),(0,b.jsx)(n.TableCell,{children:(0,b.jsx)(K.StatusBadge,{status:a.state})}),(0,b.jsx)(n.TableCell,{children:function(a){if("forming"===a.state){let{onStation:b,total:c}=(0,m.stationCount)(a);return`${String(b)} of ${String(c)} on station`}return`${String(a.members.length)} ${1===a.members.length?"member":"members"}`}(a)}),(0,b.jsx)(n.TableCell,{children:(0,b.jsx)(J.HealthSummary,{counts:(0,m.healthCounts)(a.members)})}),(0,b.jsx)(n.TableCell,{className:"text-muted-foreground",children:(0,k.shortDateTime)(new Date(a.formedAt))})]},a.id))})]})}var P=a.i(91003),Q=a.i(38023),R=a.i(10590),S=a.i(65563),T=a.i(67336),U=a.i(10023),V=a.i(10572),W=a.i(54763),X=a.i(12540);let Y=["squadrons","blueprints","templates"];function Z(a){return Y.find(b=>b===a)??"squadrons"}a.s(["default",0,function({searchParams:a}){var h,i;let j,k=(0,d.useRouter)(),l=(0,e.use)(a),n={query:(h=new URLSearchParams(Object.entries(l).flatMap(([a,b])=>"string"==typeof b?[[a,b]]:[]))).get("q")??"",state:(i=h.get(C),void 0===(j=B.find(a=>a===i))||"disbanded"===j?"all":j),blueprint:h.get(D)??"all",isDisbandedShown:"1"===h.get(E)},o="new"===l.form,p=Z(l.tab),q=a=>{let b,c=(b=new URLSearchParams,""!==a.query&&b.set("q",a.query),"all"!==a.state&&b.set(C,a.state),"all"!==a.blueprint&&b.set(D,a.blueprint),a.isDisbandedShown&&b.set(E,"1"),b).toString();k.replace(""===c?"/squadrons":`/squadrons?${c}`,{scroll:!1})},r=(0,Q.useConsoleFrame)(),t=(0,U.useNeedsAttention)(),u=(0,T.useLiveFleet)(),v=(0,X.useSquadrons)(),y=(0,W.useSquadronsConnection)(),z=(0,X.useCatalogue)(),[A,F]=(0,e.useState)(!1),G=(0,S.useAccess)();(0,V.useSignInWhenSessionEnds)([t.error,u.error]);let H=(0,m.blueprintChoices)(z.data??{blueprints:[]}),I=()=>{F(!0)};return(0,b.jsxs)(P.ListPage,{...r,title:"Squadrons",description:"Teams of ships formed from blueprints in git.",live:u.live,primaryAction:G.canManage&&H.length>0?(0,b.jsx)(f.Button,{variant:"primary",icon:(0,b.jsx)(c.Plus,{"aria-hidden":!0}),onClick:I,"data-testid":"squadrons-form",children:"Form squadron"}):void 0,children:["not-connected"===y?(0,b.jsx)(R.SquadronsNotConnected,{}):(0,b.jsxs)(g.Tabs,{value:p,onValueChange:a=>{let b=Z(a);k.replace("squadrons"===b?"/squadrons":`/squadrons?tab=${b}`,{scroll:!1})},children:[(0,b.jsxs)(g.TabsList,{variant:"line","aria-label":"Squadrons sections",children:[(0,b.jsx)(g.TabsTrigger,{variant:"line",value:"squadrons","data-testid":"squadrons-tab-squadrons",children:"Squadrons"}),(0,b.jsx)(g.TabsTrigger,{variant:"line",value:"blueprints","data-testid":"squadrons-tab-blueprints",children:"Blueprints"}),(0,b.jsx)(g.TabsTrigger,{variant:"line",value:"templates","data-testid":"squadrons-tab-templates",children:"Templates"})]}),(0,b.jsx)(g.TabsContent,{value:"squadrons",className:"pt-4",children:(0,b.jsx)(L,{squadrons:v.data??[],state:v.isError?"error":v.data?"ready":"loading",hasBlueprints:H.length>0,error:v.error?.message,onRetry:()=>{v.refetch()},onForm:G.canManage?I:void 0,view:n,onViewChange:q})}),(0,b.jsx)(g.TabsContent,{value:"blueprints",className:"pt-4",children:(0,b.jsx)(s,{blueprints:H,squadrons:v.data??[],state:z.isError?"error":z.data?"ready":"loading",error:z.error?.message,onRetry:()=>{z.refetch()}})}),(0,b.jsx)(g.TabsContent,{value:"templates",className:"pt-4",children:(0,b.jsx)(w,{templates:(0,m.templateChoices)(z.data??{templates:[]}),blueprints:z.data?.blueprints??[],state:z.isError?"error":z.data?"ready":"loading",error:z.error?.message,onRetry:()=>{z.refetch()}})})]}),H.length>0&&(0,b.jsx)(x.FormSquadron,{blueprints:H,templates:z.data?.templates??[],isOpen:A||o,onOpenChange:a=>{F(a),!a&&o&&q(n)},onFormed:a=>{F(!1),k.push(`/squadrons/${a}`)}})]})}],82904)}];
1
+ module.exports=[82904,a=>{"use strict";var b=a.i(87924),c=a.i(3512),d=a.i(50944),e=a.i(72131),f=a.i(12068),g=a.i(94777),h=a.i(41146),i=a.i(64040),j=a.i(38246),k=a.i(72872),l=a.i(47480),m=a.i(8219),n=a.i(77339),o=a.i(24173),p=a.i(40392),q=a.i(50808),r=a.i(20847);function s({blueprints:a,squadrons:c,state:d,error:e,onRetry:f}){if("loading"===d)return(0,b.jsx)(q.LoadingSkeleton,{variant:"table",label:"Loading blueprints"});if("error"===d)return(0,b.jsx)(p.InlineError,{variant:"page",title:"Couldn’t read blueprints from git",description:"The squadron manager couldn’t fetch the squadrons repository. Running squadrons are not affected.",detail:e,onRetry:f});if(0===a.length)return(0,b.jsx)(o.EmptyState,{icon:(0,b.jsx)(i.DraftingCompass,{"aria-hidden":!0}),title:"No blueprints in git",description:"The squadron manager reads blueprints from .aeolus/squadrons/blueprints. Commit one there; it shows up here on its own."});let g=a.flatMap(a=>{let b=a.versions[0];return b?[{blueprint:a,latest:b,formed:(0,m.squadronsText)((0,m.squadronsFromBlueprint)(c,a))}]:[]});return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(n.Table,{"data-testid":"blueprint-table",className:"max-sm:hidden",children:[(0,b.jsx)(n.TableHeader,{children:(0,b.jsxs)(n.TableRow,{children:[(0,b.jsx)(n.TableHead,{children:"Blueprint"}),(0,b.jsx)(n.TableHead,{children:"Source"}),(0,b.jsx)(n.TableHead,{children:"Latest"}),(0,b.jsx)(n.TableHead,{children:"Roles"}),(0,b.jsx)(n.TableHead,{children:"Squadrons"}),(0,b.jsx)(n.TableHead,{children:"Committed"})]})}),(0,b.jsx)(n.TableBody,{children:g.map(({blueprint:a,latest:c,formed:d})=>(0,b.jsxs)(n.TableRow,{"data-testid":"blueprint-row",children:[(0,b.jsx)(n.TableCell,{className:"font-medium",children:(0,b.jsx)(j.default,{href:(0,m.blueprintPath)(a),className:"hover:underline",children:a.name})}),(0,b.jsx)(n.TableCell,{"data-testid":"blueprint-row-source",children:(0,b.jsx)(r.RepositoryName,{name:c.repository,href:(0,l.versionFileUrl)(c)})}),(0,b.jsxs)(n.TableCell,{children:["v",c.version]}),(0,b.jsx)(n.TableCell,{children:(0,m.rolesText)(c)}),(0,b.jsx)(n.TableCell,{className:""===d?"text-muted-foreground":void 0,children:""===d?"None":d}),(0,b.jsxs)(n.TableCell,{className:"text-muted-foreground",children:[(0,k.dayMonth)(new Date(c.committedAt))," · ",(0,b.jsx)("span",{className:"font-mono",children:c.commit.slice(0,7)})]})]},a.key))})]}),(0,b.jsx)("ul",{className:"divide-y divide-border overflow-hidden rounded-lg border border-border sm:hidden",children:g.map(({blueprint:a,latest:c})=>(0,b.jsx)("li",{children:(0,b.jsxs)(j.default,{href:(0,m.blueprintPath)(a),className:"flex items-center gap-2 px-3 py-2.5",children:[(0,b.jsxs)("span",{className:"flex min-w-0 grow flex-col gap-0.5",children:[(0,b.jsxs)("span",{className:"font-medium",children:[a.name," ",(0,b.jsxs)("span",{className:"text-meta font-normal text-muted-foreground",children:["v",c.version]})]}),(0,b.jsx)("span",{className:"truncate text-meta text-muted-foreground",children:(0,m.rolesText)(c)}),(0,b.jsx)("span",{className:"flex min-w-0 text-meta text-muted-foreground",children:(0,b.jsx)(r.RepositoryName,{name:c.repository})})]}),(0,b.jsx)(h.ChevronRight,{"aria-hidden":!0,className:"size-(--size-icon-sm) shrink-0 text-muted-foreground"})]})},a.key))})]})}var t=a.i(64831);let u={name:"layout-template",size:24,node:[["rect",{width:"18",height:"7",x:"3",y:"3",rx:"1",key:"f1a2em"}],["rect",{width:"9",height:"7",x:"3",y:"14",rx:"1",key:"jqznyg"}],["rect",{width:"5",height:"7",x:"16",y:"14",rx:"1",key:"q5h2i8"}]]};u.node;let v=(0,t.default)(u);function w({templates:a,blueprints:c,state:d,error:e,onRetry:f}){if("loading"===d)return(0,b.jsx)(q.LoadingSkeleton,{variant:"table",label:"Loading templates"});if("error"===d)return(0,b.jsx)(p.InlineError,{variant:"page",title:"Couldn’t read templates from git",description:"The squadron manager couldn’t fetch the squadrons repository. Running squadrons are not affected.",detail:e,onRetry:f});if(0===a.length)return(0,b.jsx)(o.EmptyState,{icon:(0,b.jsx)(v,{"aria-hidden":!0}),title:"No templates in git",description:"The squadron manager reads templates from .aeolus/squadrons/templates. Commit one there; it shows up here on its own."});let g=a.flatMap(a=>{let b=a.versions[0];return b?[{template:a,latest:b,users:function(a,b){let c=new Map;for(let a of b){let b=`${a.repository}#${a.name}`,d=c.get(b);(!d||d.version<a.version)&&c.set(b,a)}return(0,m.blueprintsUsing)([...c.values()],a).map(a=>a.name).sort().join(", ")}(a,c)}]:[]});return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(n.Table,{"data-testid":"template-table",className:"max-sm:hidden",children:[(0,b.jsx)(n.TableHeader,{children:(0,b.jsxs)(n.TableRow,{children:[(0,b.jsx)(n.TableHead,{children:"Template"}),(0,b.jsx)(n.TableHead,{children:"Source"}),(0,b.jsx)(n.TableHead,{children:"Latest"}),(0,b.jsx)(n.TableHead,{children:"Check-in"}),(0,b.jsx)(n.TableHead,{children:"Used by blueprints"}),(0,b.jsx)(n.TableHead,{children:"Committed"})]})}),(0,b.jsx)(n.TableBody,{children:g.map(({template:a,latest:c,users:d})=>(0,b.jsxs)(n.TableRow,{"data-testid":"template-row",children:[(0,b.jsx)(n.TableCell,{className:"font-medium",children:(0,b.jsx)(j.default,{href:(0,m.templatePath)(a),className:"hover:underline",children:a.name})}),(0,b.jsx)(n.TableCell,{"data-testid":"template-row-source",children:(0,b.jsx)(r.RepositoryName,{name:c.repository,href:(0,l.versionFileUrl)(c)})}),(0,b.jsxs)(n.TableCell,{children:["v",c.version]}),(0,b.jsx)(n.TableCell,{children:(0,m.checkInText)(c.checkInMinutes)}),(0,b.jsx)(n.TableCell,{className:""===d?"text-muted-foreground":void 0,children:""===d?"None":d}),(0,b.jsx)(n.TableCell,{className:"text-muted-foreground",children:(0,k.dayMonth)(new Date(c.committedAt))})]},a.key))})]}),(0,b.jsx)("ul",{className:"divide-y divide-border overflow-hidden rounded-lg border border-border sm:hidden",children:g.map(({template:a,latest:c})=>(0,b.jsx)("li",{children:(0,b.jsxs)(j.default,{href:(0,m.templatePath)(a),className:"flex items-center gap-2 px-3 py-2.5",children:[(0,b.jsxs)("span",{className:"flex min-w-0 grow flex-col gap-0.5",children:[(0,b.jsxs)("span",{className:"font-medium",children:[a.name," ",(0,b.jsxs)("span",{className:"text-meta font-normal text-muted-foreground",children:["v",c.version]})]}),(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:(0,m.checkInText)(c.checkInMinutes)}),(0,b.jsx)("span",{className:"flex min-w-0 text-meta text-muted-foreground",children:(0,b.jsx)(r.RepositoryName,{name:c.repository})})]}),(0,b.jsx)(h.ChevronRight,{"aria-hidden":!0,className:"size-(--size-icon-sm) shrink-0 text-muted-foreground"})]})},a.key))})]})}var x=a.i(88468),y=a.i(31668),z=a.i(84637);let A=["forming","sailing","standing-down","disbanded"],B="state",C="blueprint",D="disbanded";var E=a.i(75297),F=a.i(45098),G=a.i(48136),H=a.i(45469),I=a.i(75971),J=a.i(23063);function K({squadrons:a,state:d,hasBlueprints:e,error:g,onRetry:h,onForm:i,view:j,onViewChange:k}){let l;if("loading"===d)return(0,b.jsx)(q.LoadingSkeleton,{variant:"table",label:"Loading squadrons"});if("error"===d)return(0,b.jsx)(p.InlineError,{title:"Couldn’t load squadrons",description:"The console couldn’t reach the squadron manager. Your ships keep running; nothing is lost.",detail:g,onRetry:h});if(0===a.length)return e?(0,b.jsx)(o.EmptyState,{icon:(0,b.jsx)(y.Shapes,{"aria-hidden":!0}),title:"No squadrons yet",description:"A squadron is a team of ships formed from a blueprint: a planner, implementers, a tester. You start each member's session by hand with its crew line.",action:i&&(0,b.jsx)(f.Button,{variant:"primary",icon:(0,b.jsx)(c.Plus,{"aria-hidden":!0}),onClick:i,"data-testid":"squadrons-form-first",children:"Form your first squadron"})}):(0,b.jsx)(o.EmptyState,{icon:(0,b.jsx)(z.WifiOff,{"aria-hidden":!0}),title:"No blueprints found",description:"The squadron manager reads blueprints and templates from git. Add a blueprint there; it shows up here on its own."});let m=(l=j.query.trim().toLowerCase(),a.filter(a=>(j.isDisbandedShown||"disbanded"!==a.state)&&("all"===j.state||a.state===j.state)&&("all"===j.blueprint||a.blueprint.name===j.blueprint)&&(""===l||a.id.toLowerCase().includes(l)||a.blueprint.name.toLowerCase().includes(l))));return(0,b.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,b.jsx)(M,{squadrons:a,view:j,onViewChange:k,shownCount:m.length}),0===m.length?(0,b.jsx)(o.EmptyState,{variant:"no-results",title:"No squadrons match",action:(0,b.jsx)(f.Button,{onClick:()=>{k({query:"",state:"all",blueprint:"all",isDisbandedShown:j.isDisbandedShown})},children:"Clear filters"})}):(0,b.jsx)(N,{squadrons:m})]})}let L={all:"All",forming:"Forming",sailing:"Sailing","standing-down":"Standing down"};function M({squadrons:a,view:c,onViewChange:d,shownCount:e}){let f={all:"All",...Object.fromEntries([...new Set(a.map(a=>a.blueprint.name))].toSorted((a,b)=>a.localeCompare(b)).map(a=>[a,a]))};return(0,b.jsxs)("div",{"data-slot":"squadrons-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)(E.Input,{type:"search","aria-label":"Search squadrons",placeholder:"Search squadrons","data-testid":"squadrons-search",value:c.query,onChange:a=>{d({...c,query:a.target.value})}})}),(0,b.jsxs)(G.Select,{items:L,value:c.state,onValueChange:a=>{null!==a&&Object.hasOwn(L,a)&&d({...c,state:a})},children:[(0,b.jsx)(G.SelectTrigger,{size:"sm","aria-label":"State","data-testid":"squadrons-filter-state",children:(0,b.jsxs)("span",{className:"flex gap-1.5",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:"State"}),(0,b.jsx)(G.SelectValue,{className:"font-medium"})]})}),(0,b.jsx)(G.SelectContent,{children:Object.entries(L).map(([a,c])=>(0,b.jsx)(G.SelectItem,{value:a,children:c},a))})]}),(0,b.jsxs)(G.Select,{items:f,value:c.blueprint,onValueChange:a=>{null!==a&&d({...c,blueprint:a})},children:[(0,b.jsx)(G.SelectTrigger,{size:"sm","aria-label":"Blueprint","data-testid":"squadrons-filter-blueprint",children:(0,b.jsxs)("span",{className:"flex gap-1.5",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:"Blueprint"}),(0,b.jsx)(G.SelectValue,{className:"font-medium"})]})}),(0,b.jsx)(G.SelectContent,{children:Object.entries(f).map(([a,c])=>(0,b.jsx)(G.SelectItem,{value:a,className:"all"===a?void 0:"font-mono",children:c},a))})]}),(0,b.jsxs)("div",{className:"inline-flex items-center gap-2 sm:ml-auto",children:[(0,b.jsx)(H.Switch,{id:"squadrons-show-disbanded","data-testid":"squadrons-show-disbanded",checked:c.isDisbandedShown,onCheckedChange:a=>{d({...c,isDisbandedShown:a})}}),(0,b.jsxs)(F.Label,{htmlFor:"squadrons-show-disbanded",className:"text-meta font-normal text-muted-foreground",children:["Show disbanded (",a.filter(a=>"disbanded"===a.state).length,")"]}),(0,b.jsxs)("span",{className:"text-meta text-muted-foreground",children:[e," of ",a.length," squadrons"]})]})]})}function N({squadrons:a}){return(0,b.jsxs)(n.Table,{"data-testid":"squadrons-table",children:[(0,b.jsx)(n.TableHeader,{children:(0,b.jsxs)(n.TableRow,{children:[(0,b.jsx)(n.TableHead,{children:"Squadron"}),(0,b.jsx)(n.TableHead,{children:"Blueprint"}),(0,b.jsx)(n.TableHead,{children:"State"}),(0,b.jsx)(n.TableHead,{children:"Members"}),(0,b.jsx)(n.TableHead,{children:"Health"}),(0,b.jsx)(n.TableHead,{children:"Formed"})]})}),(0,b.jsx)(n.TableBody,{children:a.map(a=>(0,b.jsxs)(n.TableRow,{"data-testid":"squadrons-row",children:[(0,b.jsx)(n.TableCell,{children:(0,b.jsx)(j.default,{href:`/squadrons/${a.id}`,className:"font-medium hover:underline",children:a.id})}),(0,b.jsx)(n.TableCell,{children:(0,b.jsxs)(j.default,{href:(0,m.blueprintPath)(a.blueprint),className:"hover:underline",children:[(0,b.jsx)("span",{className:"font-mono",children:a.blueprint.name})," ",(0,b.jsxs)("span",{className:"text-muted-foreground",children:["v",a.blueprint.version]})]})}),(0,b.jsx)(n.TableCell,{children:(0,b.jsx)(J.StatusBadge,{status:a.state})}),(0,b.jsx)(n.TableCell,{children:function(a){if("forming"===a.state){let{onStation:b,total:c}=(0,m.stationCount)(a);return`${String(b)} of ${String(c)} on station`}return`${String(a.members.length)} ${1===a.members.length?"member":"members"}`}(a)}),(0,b.jsx)(n.TableCell,{children:(0,b.jsx)(I.HealthSummary,{counts:(0,m.healthCounts)(a.members)})}),(0,b.jsx)(n.TableCell,{className:"text-muted-foreground",children:(0,k.shortDateTime)(new Date(a.formedAt))})]},a.id))})]})}var O=a.i(91003),P=a.i(38023),Q=a.i(10590),R=a.i(65563),S=a.i(67336),T=a.i(10023),U=a.i(10572),V=a.i(54763),W=a.i(12540);let X=["squadrons","blueprints","templates"];function Y(a){return X.find(b=>b===a)??"squadrons"}a.s(["default",0,function({searchParams:a}){var h,i;let j,k=(0,d.useRouter)(),l=(0,e.use)(a),n={query:(h=new URLSearchParams(Object.entries(l).flatMap(([a,b])=>"string"==typeof b?[[a,b]]:[]))).get("q")??"",state:(i=h.get(B),void 0===(j=A.find(a=>a===i))||"disbanded"===j?"all":j),blueprint:h.get(C)??"all",isDisbandedShown:"1"===h.get(D)},o="new"===l.form,p=Y(l.tab),q=a=>{let b,c=(b=new URLSearchParams,""!==a.query&&b.set("q",a.query),"all"!==a.state&&b.set(B,a.state),"all"!==a.blueprint&&b.set(C,a.blueprint),a.isDisbandedShown&&b.set(D,"1"),b).toString();k.replace(""===c?"/squadrons":`/squadrons?${c}`,{scroll:!1})},r=(0,P.useConsoleFrame)(),t=(0,T.useNeedsAttention)(),u=(0,S.useLiveFleet)(),v=(0,W.useSquadrons)(),y=(0,V.useSquadronsConnection)(),z=(0,W.useCatalogue)(),[E,F]=(0,e.useState)(!1),G=(0,R.useAccess)();(0,U.useSignInWhenSessionEnds)([t.error,u.error]);let H=(0,m.blueprintChoices)(z.data??{blueprints:[]}),I=()=>{F(!0)};return(0,b.jsxs)(O.ListPage,{...r,title:"Squadrons",description:"Teams of ships formed from blueprints in git.",live:u.live,primaryAction:G.canManage&&H.length>0?(0,b.jsx)(f.Button,{variant:"primary",icon:(0,b.jsx)(c.Plus,{"aria-hidden":!0}),onClick:I,"data-testid":"squadrons-form",children:"Form squadron"}):void 0,children:["not-connected"===y?(0,b.jsx)(Q.SquadronsNotConnected,{}):(0,b.jsxs)(g.Tabs,{value:p,onValueChange:a=>{let b=Y(a);k.replace("squadrons"===b?"/squadrons":`/squadrons?tab=${b}`,{scroll:!1})},children:[(0,b.jsxs)(g.TabsList,{variant:"line","aria-label":"Squadrons sections",children:[(0,b.jsx)(g.TabsTrigger,{variant:"line",value:"squadrons","data-testid":"squadrons-tab-squadrons",children:"Squadrons"}),(0,b.jsx)(g.TabsTrigger,{variant:"line",value:"blueprints","data-testid":"squadrons-tab-blueprints",children:"Blueprints"}),(0,b.jsx)(g.TabsTrigger,{variant:"line",value:"templates","data-testid":"squadrons-tab-templates",children:"Templates"})]}),(0,b.jsx)(g.TabsContent,{value:"squadrons",className:"pt-4",children:(0,b.jsx)(K,{squadrons:v.data??[],state:v.isError?"error":v.data?"ready":"loading",hasBlueprints:H.length>0,error:v.error?.message,onRetry:()=>{v.refetch()},onForm:G.canManage?I:void 0,view:n,onViewChange:q})}),(0,b.jsx)(g.TabsContent,{value:"blueprints",className:"pt-4",children:(0,b.jsx)(s,{blueprints:H,squadrons:v.data??[],state:z.isError?"error":z.data?"ready":"loading",error:z.error?.message,onRetry:()=>{z.refetch()}})}),(0,b.jsx)(g.TabsContent,{value:"templates",className:"pt-4",children:(0,b.jsx)(w,{templates:(0,m.templateChoices)(z.data??{templates:[]}),blueprints:z.data?.blueprints??[],state:z.isError?"error":z.data?"ready":"loading",error:z.error?.message,onRetry:()=>{z.refetch()}})})]}),H.length>0&&(0,b.jsx)(x.FormSquadron,{blueprints:H,templates:z.data?.templates??[],isOpen:E||o,onOpenChange:a=>{F(a),!a&&o&&q(n)},onFormed:a=>{F(!1),k.push(`/squadrons/${a}`)}})]})}],82904)}];
2
2
 
3
3
  //# sourceMappingURL=packages_console_app_%28console%29_squadrons_page_tsx_1xpvx8n._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[18441,a=>{"use strict";var b=a.i(87924),c=a.i(94203),d=a.i(80487),e=a.i(2374);a.s(["Dialog",0,function(a){return(0,b.jsx)(c.Dialog.Root,{"data-slot":"dialog",...a})},"DialogClose",0,function(a){return(0,b.jsx)(c.Dialog.Close,{"data-slot":"dialog-close",...a})},"DialogContent",0,function({className:a,size:f,children:g,...h}){return(0,b.jsxs)(c.Dialog.Portal,{children:[(0,b.jsx)(c.Dialog.Backdrop,{"data-slot":"dialog-overlay",className:e.dialogSurface.overlay}),(0,b.jsx)(c.Dialog.Popup,{"data-slot":"dialog-content",className:(0,d.classNames)(e.dialogSurface.popup({size:f}),a),...h,children:g})]})},"DialogDescription",0,function({className:a,...f}){return(0,b.jsx)(c.Dialog.Description,{"data-slot":"dialog-description",className:(0,d.classNames)(e.dialogSurface.description,a),...f})},"DialogFooter",0,function({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"dialog-footer",className:(0,d.classNames)(e.dialogSurface.footer,a),...c})},"DialogHeader",0,function({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"dialog-header",className:(0,d.classNames)(e.dialogSurface.header,a),...c})},"DialogTitle",0,function({className:a,...f}){return(0,b.jsx)(c.Dialog.Title,{"data-slot":"dialog-title",className:(0,d.classNames)(e.dialogSurface.title,a),...f})}])},52702,a=>{"use strict";var b=a.i(87924),c=a.i(52357),d=a.i(48819),e=a.i(12068),f=a.i(18441),g=a.i(2374),h=a.i(33809),i=a.i(21327),j=a.i(40392),k=a.i(3842);function l({memberName:a,template:d,launchNote:e,model:f,crewLines:g}){return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(k.LaunchNote,{note:e,model:f,template:d,testId:"crew-line-launch-note"}),(0,b.jsx)(i.CompactCrewLine,{crewLines:g,subject:a,testIdPrefix:"crew-line-text"}),(0,b.jsxs)("p",{className:"flex items-center gap-1.5 text-meta text-muted-foreground",children:[(0,b.jsx)(c.Info,{"aria-hidden":!0,className:"size-(--size-icon-sm) shrink-0"}),(0,b.jsxs)("span",{children:[(0,b.jsx)("span",{className:"font-medium",children:"Shown once."})," Paste the crew line into Claude Code or Codex started where the launch note says, or into a chat client with the fleet’s connector. A new crew line stops it working."]})]})]})}a.s(["CrewLineDialog",0,function({memberName:a,state:c,template:i,launchNote:k=null,model:m=null,crewLines:n,error:o,isOpen:p,onOpenChange:q,onConfirm:r}){let s="issuing"===c;return(0,b.jsx)(f.Dialog,{open:p,onOpenChange:a=>{s||q(a)},children:(0,b.jsxs)(f.DialogContent,{size:"md","data-testid":"crew-line-dialog",className:g.dialogSurface.phoneFullScreen,children:[(0,b.jsxs)(f.DialogHeader,{children:[(0,b.jsxs)(f.DialogTitle,{children:["Crew line for ",a]}),(0,b.jsx)(f.DialogDescription,{children:"Start Claude Code or Codex where the launch note says, or open a chat client with the fleet’s connector, then paste its crew line. The member is on station once its session checks in."})]}),s&&(0,b.jsxs)("div",{"aria-busy":!0,className:"flex flex-col gap-3",children:[(0,b.jsx)("span",{className:"sr-only",children:"Issuing a crew line..."}),(0,b.jsx)(h.Skeleton,{className:"h-10 w-full rounded-lg"}),(0,b.jsx)(h.Skeleton,{className:"h-28 w-full rounded-lg"})]}),"shown"===c&&void 0!==n&&(0,b.jsx)(l,{memberName:a,template:i,launchNote:k,model:m,crewLines:n}),"error"===c&&(0,b.jsx)(j.InlineError,{title:"Couldn’t issue a crew line",description:`${o??"The squadron manager did not answer."} No new secret was created; an earlier crew line still works.`}),(0,b.jsxs)(f.DialogFooter,{children:[("shown"===c||s)&&(0,b.jsx)(f.DialogClose,{render:(0,b.jsx)(e.Button,{variant:"primary","data-testid":"crew-line-done",disabled:s}),children:"Done"}),"error"===c&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f.DialogClose,{render:(0,b.jsx)(e.Button,{}),children:"Close"}),(0,b.jsx)(e.Button,{variant:"primary",icon:(0,b.jsx)(d.RotateCw,{"aria-hidden":!0}),"data-testid":"crew-line-retry",onClick:r,children:"Try again"})]})]})]})})}])}];
1
+ module.exports=[18441,a=>{"use strict";var b=a.i(87924),c=a.i(94203),d=a.i(80487),e=a.i(2374);a.s(["Dialog",0,function(a){return(0,b.jsx)(c.Dialog.Root,{"data-slot":"dialog",...a})},"DialogClose",0,function(a){return(0,b.jsx)(c.Dialog.Close,{"data-slot":"dialog-close",...a})},"DialogContent",0,function({className:a,size:f,children:g,...h}){return(0,b.jsxs)(c.Dialog.Portal,{children:[(0,b.jsx)(c.Dialog.Backdrop,{"data-slot":"dialog-overlay",className:e.dialogSurface.overlay}),(0,b.jsx)(c.Dialog.Popup,{"data-slot":"dialog-content",className:(0,d.classNames)(e.dialogSurface.popup({size:f}),a),...h,children:g})]})},"DialogDescription",0,function({className:a,...f}){return(0,b.jsx)(c.Dialog.Description,{"data-slot":"dialog-description",className:(0,d.classNames)(e.dialogSurface.description,a),...f})},"DialogFooter",0,function({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"dialog-footer",className:(0,d.classNames)(e.dialogSurface.footer,a),...c})},"DialogHeader",0,function({className:a,...c}){return(0,b.jsx)("div",{"data-slot":"dialog-header",className:(0,d.classNames)(e.dialogSurface.header,a),...c})},"DialogTitle",0,function({className:a,...f}){return(0,b.jsx)(c.Dialog.Title,{"data-slot":"dialog-title",className:(0,d.classNames)(e.dialogSurface.title,a),...f})}])},52702,a=>{"use strict";var b=a.i(87924),c=a.i(52357),d=a.i(48819),e=a.i(12068),f=a.i(18441),g=a.i(2374),h=a.i(33809),i=a.i(21327),j=a.i(40392),k=a.i(3842);function l({memberName:a,template:d,launchNote:e,model:f,crewLines:g}){return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(k.LaunchNote,{note:e,model:f,template:d,testId:"crew-line-launch-note"}),(0,b.jsx)(i.CompactCrewLine,{crewLines:g,subject:a,testIdPrefix:"crew-line-text"}),(0,b.jsxs)("p",{className:"flex items-center gap-1.5 text-meta text-muted-foreground",children:[(0,b.jsx)(c.Info,{"aria-hidden":!0,className:"size-(--size-icon-sm) shrink-0"}),(0,b.jsxs)("span",{children:[(0,b.jsx)("span",{className:"font-medium",children:"Shown once."})," Paste the crew line into Claude Code or Codex started where the launch note says, or the Chat one, the ship’s crew instructions for a chat, into a chat app. A new crew line stops it working."]})]})]})}a.s(["CrewLineDialog",0,function({memberName:a,state:c,template:i,launchNote:k=null,model:m=null,crewLines:n,error:o,isOpen:p,onOpenChange:q,onConfirm:r}){let s="issuing"===c;return(0,b.jsx)(f.Dialog,{open:p,onOpenChange:a=>{s||q(a)},children:(0,b.jsxs)(f.DialogContent,{size:"md","data-testid":"crew-line-dialog",className:g.dialogSurface.phoneFullScreen,children:[(0,b.jsxs)(f.DialogHeader,{children:[(0,b.jsxs)(f.DialogTitle,{children:["Crew line for ",a]}),(0,b.jsx)(f.DialogDescription,{children:"Start Claude Code or Codex where the launch note says, or open a chat app, then paste its crew line or the ship’s crew instructions for a chat. The member is on station once its session checks in."})]}),s&&(0,b.jsxs)("div",{"aria-busy":!0,className:"flex flex-col gap-3",children:[(0,b.jsx)("span",{className:"sr-only",children:"Issuing a crew line..."}),(0,b.jsx)(h.Skeleton,{className:"h-10 w-full rounded-lg"}),(0,b.jsx)(h.Skeleton,{className:"h-28 w-full rounded-lg"})]}),"shown"===c&&void 0!==n&&(0,b.jsx)(l,{memberName:a,template:i,launchNote:k,model:m,crewLines:n}),"error"===c&&(0,b.jsx)(j.InlineError,{title:"Couldn’t issue a crew line",description:`${o??"The squadron manager did not answer."} No new secret was created; an earlier crew line still works.`}),(0,b.jsxs)(f.DialogFooter,{children:[("shown"===c||s)&&(0,b.jsx)(f.DialogClose,{render:(0,b.jsx)(e.Button,{variant:"primary","data-testid":"crew-line-done",disabled:s}),children:"Done"}),"error"===c&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f.DialogClose,{render:(0,b.jsx)(e.Button,{}),children:"Close"}),(0,b.jsx)(e.Button,{variant:"primary",icon:(0,b.jsx)(d.RotateCw,{"aria-hidden":!0}),"data-testid":"crew-line-retry",onClick:r,children:"Try again"})]})]})]})})}])}];
2
2
 
3
3
  //# sourceMappingURL=packages_console_components_1_88pm4._.js.map