@aeolus-fleet/console 0.29.2 → 0.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (816) hide show
  1. package/.next/standalone/THIRD_PARTY_NOTICES +9077 -1222
  2. package/.next/standalone/node_modules/@grpc/grpc-js/proto/channelz.proto +564 -0
  3. package/.next/standalone/node_modules/@grpc/grpc-js/proto/protoc-gen-validate/LICENSE +202 -0
  4. package/.next/standalone/node_modules/@grpc/grpc-js/proto/protoc-gen-validate/validate/validate.proto +797 -0
  5. package/.next/standalone/node_modules/@grpc/grpc-js/proto/xds/LICENSE +201 -0
  6. package/.next/standalone/node_modules/@grpc/grpc-js/proto/xds/xds/data/orca/v3/orca_load_report.proto +58 -0
  7. package/.next/standalone/node_modules/@grpc/grpc-js/proto/xds/xds/service/orca/v3/orca.proto +36 -0
  8. package/.next/standalone/node_modules/@opentelemetry/api/build/src/api/context.js +72 -0
  9. package/.next/standalone/node_modules/@opentelemetry/api/build/src/api/diag.js +84 -0
  10. package/.next/standalone/node_modules/@opentelemetry/api/build/src/api/metrics.js +50 -0
  11. package/.next/standalone/node_modules/@opentelemetry/api/build/src/api/propagation.js +80 -0
  12. package/.next/standalone/node_modules/@opentelemetry/api/build/src/api/trace.js +70 -0
  13. package/.next/standalone/node_modules/@opentelemetry/api/build/src/baggage/context-helpers.js +52 -0
  14. package/.next/standalone/node_modules/@opentelemetry/api/build/src/baggage/internal/baggage-impl.js +44 -0
  15. package/.next/standalone/node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.js +12 -0
  16. package/.next/standalone/node_modules/@opentelemetry/api/build/src/baggage/utils.js +41 -0
  17. package/.next/standalone/node_modules/@opentelemetry/api/build/src/context/NoopContextManager.js +27 -0
  18. package/.next/standalone/node_modules/@opentelemetry/api/build/src/context/context.js +52 -0
  19. package/.next/standalone/node_modules/@opentelemetry/api/build/src/context-api.js +16 -0
  20. package/.next/standalone/node_modules/@opentelemetry/api/build/src/diag/ComponentLogger.js +47 -0
  21. package/.next/standalone/node_modules/@opentelemetry/api/build/src/diag/consoleLogger.js +73 -0
  22. package/.next/standalone/node_modules/@opentelemetry/api/build/src/diag/internal/logLevelLogger.js +34 -0
  23. package/.next/standalone/node_modules/@opentelemetry/api/build/src/diag/types.js +33 -0
  24. package/.next/standalone/node_modules/@opentelemetry/api/build/src/diag-api.js +20 -0
  25. package/.next/standalone/node_modules/@opentelemetry/api/build/src/index.js +71 -0
  26. package/.next/standalone/node_modules/@opentelemetry/api/build/src/internal/global-utils.js +60 -0
  27. package/.next/standalone/node_modules/@opentelemetry/api/build/src/internal/semver.js +111 -0
  28. package/.next/standalone/node_modules/@opentelemetry/api/build/src/metrics/Metric.js +18 -0
  29. package/.next/standalone/node_modules/@opentelemetry/api/build/src/metrics/NoopMeter.js +118 -0
  30. package/.next/standalone/node_modules/@opentelemetry/api/build/src/metrics/NoopMeterProvider.js +20 -0
  31. package/.next/standalone/node_modules/@opentelemetry/api/build/src/metrics-api.js +17 -0
  32. package/.next/standalone/node_modules/@opentelemetry/api/build/src/propagation/NoopTextMapPropagator.js +23 -0
  33. package/.next/standalone/node_modules/@opentelemetry/api/build/src/propagation/TextMapPropagator.js +36 -0
  34. package/.next/standalone/node_modules/@opentelemetry/api/build/src/propagation-api.js +17 -0
  35. package/.next/standalone/node_modules/@opentelemetry/api/build/src/trace/NonRecordingSpan.js +58 -0
  36. package/.next/standalone/node_modules/@opentelemetry/api/build/src/trace/NoopTracer.js +68 -0
  37. package/.next/standalone/node_modules/@opentelemetry/api/build/src/trace/NoopTracerProvider.js +21 -0
  38. package/.next/standalone/node_modules/@opentelemetry/api/build/src/trace/ProxyTracer.js +46 -0
  39. package/.next/standalone/node_modules/@opentelemetry/api/build/src/trace/ProxyTracerProvider.js +46 -0
  40. package/.next/standalone/node_modules/@opentelemetry/api/build/src/trace/SamplingResult.js +33 -0
  41. package/.next/standalone/node_modules/@opentelemetry/api/build/src/trace/context-utils.js +71 -0
  42. package/.next/standalone/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-impl.js +94 -0
  43. package/.next/standalone/node_modules/@opentelemetry/api/build/src/trace/internal/tracestate-validators.js +35 -0
  44. package/.next/standalone/node_modules/@opentelemetry/api/build/src/trace/internal/utils.js +16 -0
  45. package/.next/standalone/node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.js +25 -0
  46. package/.next/standalone/node_modules/@opentelemetry/api/build/src/trace/span_kind.js +38 -0
  47. package/.next/standalone/node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.js +66 -0
  48. package/.next/standalone/node_modules/@opentelemetry/api/build/src/trace/status.js +29 -0
  49. package/.next/standalone/node_modules/@opentelemetry/api/build/src/trace/trace_flags.js +18 -0
  50. package/.next/standalone/node_modules/@opentelemetry/api/build/src/trace-api.js +17 -0
  51. package/.next/standalone/node_modules/@opentelemetry/api/build/src/version.js +10 -0
  52. package/.next/standalone/node_modules/@opentelemetry/api/package.json +96 -0
  53. package/.next/standalone/node_modules/@opentelemetry/configuration/build/src/ConfigFactory.js +19 -0
  54. package/.next/standalone/node_modules/@opentelemetry/configuration/build/src/EnvDefinition.js +36 -0
  55. package/.next/standalone/node_modules/@opentelemetry/configuration/build/src/EnvReader.js +60 -0
  56. package/.next/standalone/node_modules/@opentelemetry/configuration/build/src/EnvironmentConfigFactory.js +540 -0
  57. package/.next/standalone/node_modules/@opentelemetry/configuration/build/src/FileConfigFactory.js +177 -0
  58. package/.next/standalone/node_modules/@opentelemetry/configuration/build/src/IConfigFactory.js +7 -0
  59. package/.next/standalone/node_modules/@opentelemetry/configuration/build/src/generated/types.js +13 -0
  60. package/.next/standalone/node_modules/@opentelemetry/configuration/build/src/generated/validator.js +8533 -0
  61. package/.next/standalone/node_modules/@opentelemetry/configuration/build/src/index.js +14 -0
  62. package/.next/standalone/node_modules/@opentelemetry/configuration/build/src/utils.js +188 -0
  63. package/.next/standalone/node_modules/@opentelemetry/configuration/build/src/version.js +10 -0
  64. package/.next/standalone/node_modules/@opentelemetry/otlp-grpc-exporter-base/build/src/configuration/convert-legacy-otlp-grpc-options.js +31 -0
  65. package/.next/standalone/node_modules/@opentelemetry/otlp-grpc-exporter-base/build/src/configuration/otlp-grpc-configuration.js +78 -0
  66. package/.next/standalone/node_modules/@opentelemetry/otlp-grpc-exporter-base/build/src/configuration/otlp-grpc-env-configuration.js +159 -0
  67. package/.next/standalone/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/execAsync.js +8 -0
  68. package/.next/standalone/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-bsd.js +25 -0
  69. package/.next/standalone/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-darwin.js +26 -0
  70. package/.next/standalone/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-linux.js +20 -0
  71. package/.next/standalone/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-unsupported.js +10 -0
  72. package/.next/standalone/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId-win.js +26 -0
  73. package/.next/standalone/node_modules/@opentelemetry/resources/build/esm/detectors/platform/node/machine-id/getMachineId.js +32 -0
  74. package/.next/standalone/node_modules/debug/package.json +64 -0
  75. package/.next/standalone/node_modules/debug/src/browser.js +272 -0
  76. package/.next/standalone/node_modules/debug/src/common.js +292 -0
  77. package/.next/standalone/node_modules/debug/src/index.js +10 -0
  78. package/.next/standalone/node_modules/debug/src/node.js +263 -0
  79. package/.next/standalone/node_modules/import-in-the-middle/index.js +221 -0
  80. package/.next/standalone/node_modules/import-in-the-middle/lib/register.js +285 -0
  81. package/.next/standalone/node_modules/import-in-the-middle/package.json +66 -0
  82. package/.next/standalone/node_modules/module-details-from-path/index.js +41 -0
  83. package/.next/standalone/node_modules/module-details-from-path/package.json +47 -0
  84. package/.next/standalone/node_modules/ms/index.js +162 -0
  85. package/.next/standalone/node_modules/ms/package.json +38 -0
  86. package/.next/standalone/node_modules/require-in-the-middle/index.js +333 -0
  87. package/.next/standalone/node_modules/require-in-the-middle/package.json +57 -0
  88. package/.next/standalone/packages/console/.next/BUILD_ID +1 -1
  89. package/.next/standalone/packages/console/.next/build-manifest.json +8 -8
  90. package/.next/standalone/packages/console/.next/prerender-manifest.json +4 -4
  91. package/.next/standalone/packages/console/.next/server/app/(console)/fleet-health/[cause]/page/build-manifest.json +5 -5
  92. package/.next/standalone/packages/console/.next/server/app/(console)/fleet-health/[cause]/page/server-reference-manifest.json +28 -28
  93. package/.next/standalone/packages/console/.next/server/app/(console)/fleet-health/[cause]/page.js +8 -8
  94. package/.next/standalone/packages/console/.next/server/app/(console)/fleet-health/[cause]/page.js.nft.json +1 -1
  95. package/.next/standalone/packages/console/.next/server/app/(console)/fleet-health/[cause]/page_client-reference-manifest.js +1 -1
  96. package/.next/standalone/packages/console/.next/server/app/(console)/fleet-health/page/build-manifest.json +5 -5
  97. package/.next/standalone/packages/console/.next/server/app/(console)/fleet-health/page/server-reference-manifest.json +28 -28
  98. package/.next/standalone/packages/console/.next/server/app/(console)/fleet-health/page.js +8 -8
  99. package/.next/standalone/packages/console/.next/server/app/(console)/fleet-health/page.js.nft.json +1 -1
  100. package/.next/standalone/packages/console/.next/server/app/(console)/fleet-health/page_client-reference-manifest.js +1 -1
  101. package/.next/standalone/packages/console/.next/server/app/(console)/inbox/page/build-manifest.json +5 -5
  102. package/.next/standalone/packages/console/.next/server/app/(console)/inbox/page/server-reference-manifest.json +28 -28
  103. package/.next/standalone/packages/console/.next/server/app/(console)/inbox/page.js +8 -8
  104. package/.next/standalone/packages/console/.next/server/app/(console)/inbox/page.js.nft.json +1 -1
  105. package/.next/standalone/packages/console/.next/server/app/(console)/inbox/page_client-reference-manifest.js +1 -1
  106. package/.next/standalone/packages/console/.next/server/app/(console)/labels/page/build-manifest.json +5 -5
  107. package/.next/standalone/packages/console/.next/server/app/(console)/labels/page/server-reference-manifest.json +28 -28
  108. package/.next/standalone/packages/console/.next/server/app/(console)/labels/page.js +8 -8
  109. package/.next/standalone/packages/console/.next/server/app/(console)/labels/page.js.nft.json +1 -1
  110. package/.next/standalone/packages/console/.next/server/app/(console)/labels/page_client-reference-manifest.js +1 -1
  111. package/.next/standalone/packages/console/.next/server/app/(console)/needs-attention/page/build-manifest.json +5 -5
  112. package/.next/standalone/packages/console/.next/server/app/(console)/needs-attention/page/server-reference-manifest.json +28 -28
  113. package/.next/standalone/packages/console/.next/server/app/(console)/needs-attention/page.js +6 -6
  114. package/.next/standalone/packages/console/.next/server/app/(console)/needs-attention/page.js.nft.json +1 -1
  115. package/.next/standalone/packages/console/.next/server/app/(console)/needs-attention/page_client-reference-manifest.js +1 -1
  116. package/.next/standalone/packages/console/.next/server/app/(console)/needs-crew/page/build-manifest.json +5 -5
  117. package/.next/standalone/packages/console/.next/server/app/(console)/needs-crew/page/server-reference-manifest.json +28 -28
  118. package/.next/standalone/packages/console/.next/server/app/(console)/needs-crew/page.js +8 -8
  119. package/.next/standalone/packages/console/.next/server/app/(console)/needs-crew/page.js.nft.json +1 -1
  120. package/.next/standalone/packages/console/.next/server/app/(console)/needs-crew/page_client-reference-manifest.js +1 -1
  121. package/.next/standalone/packages/console/.next/server/app/(console)/network/page/build-manifest.json +5 -5
  122. package/.next/standalone/packages/console/.next/server/app/(console)/network/page/react-loadable-manifest.json +3 -3
  123. package/.next/standalone/packages/console/.next/server/app/(console)/network/page/server-reference-manifest.json +28 -28
  124. package/.next/standalone/packages/console/.next/server/app/(console)/network/page.js +8 -8
  125. package/.next/standalone/packages/console/.next/server/app/(console)/network/page.js.nft.json +1 -1
  126. package/.next/standalone/packages/console/.next/server/app/(console)/network/page_client-reference-manifest.js +1 -1
  127. package/.next/standalone/packages/console/.next/server/app/(console)/page/build-manifest.json +5 -5
  128. package/.next/standalone/packages/console/.next/server/app/(console)/page/react-loadable-manifest.json +4 -4
  129. package/.next/standalone/packages/console/.next/server/app/(console)/page/server-reference-manifest.json +28 -28
  130. package/.next/standalone/packages/console/.next/server/app/(console)/page.js +8 -8
  131. package/.next/standalone/packages/console/.next/server/app/(console)/page.js.nft.json +1 -1
  132. package/.next/standalone/packages/console/.next/server/app/(console)/page_client-reference-manifest.js +1 -1
  133. package/.next/standalone/packages/console/.next/server/app/(console)/settings/page/build-manifest.json +5 -5
  134. package/.next/standalone/packages/console/.next/server/app/(console)/settings/page/server-reference-manifest.json +14 -14
  135. package/.next/standalone/packages/console/.next/server/app/(console)/settings/page.js +6 -6
  136. package/.next/standalone/packages/console/.next/server/app/(console)/settings/page.js.nft.json +1 -1
  137. package/.next/standalone/packages/console/.next/server/app/(console)/settings/page_client-reference-manifest.js +1 -1
  138. package/.next/standalone/packages/console/.next/server/app/(console)/ships/[shipId]/page/build-manifest.json +5 -5
  139. package/.next/standalone/packages/console/.next/server/app/(console)/ships/[shipId]/page/react-loadable-manifest.json +4 -4
  140. package/.next/standalone/packages/console/.next/server/app/(console)/ships/[shipId]/page/server-reference-manifest.json +28 -28
  141. package/.next/standalone/packages/console/.next/server/app/(console)/ships/[shipId]/page.js +8 -8
  142. package/.next/standalone/packages/console/.next/server/app/(console)/ships/[shipId]/page.js.nft.json +1 -1
  143. package/.next/standalone/packages/console/.next/server/app/(console)/ships/[shipId]/page_client-reference-manifest.js +1 -1
  144. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/[squadronId]/page/build-manifest.json +5 -5
  145. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/[squadronId]/page/server-reference-manifest.json +28 -28
  146. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/[squadronId]/page.js +6 -6
  147. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/[squadronId]/page.js.nft.json +1 -1
  148. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/[squadronId]/page_client-reference-manifest.js +1 -1
  149. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/blueprints/[name]/page/build-manifest.json +5 -5
  150. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/blueprints/[name]/page/react-loadable-manifest.json +5 -5
  151. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/blueprints/[name]/page/server-reference-manifest.json +28 -28
  152. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/blueprints/[name]/page.js +8 -8
  153. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/blueprints/[name]/page.js.nft.json +1 -1
  154. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/blueprints/[name]/page_client-reference-manifest.js +1 -1
  155. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/page/build-manifest.json +5 -5
  156. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/page/react-loadable-manifest.json +4 -4
  157. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/page/server-reference-manifest.json +28 -28
  158. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/page.js +8 -8
  159. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/page.js.nft.json +1 -1
  160. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/page_client-reference-manifest.js +1 -1
  161. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/templates/[name]/page/build-manifest.json +5 -5
  162. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/templates/[name]/page/server-reference-manifest.json +28 -28
  163. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/templates/[name]/page.js +8 -8
  164. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/templates/[name]/page.js.nft.json +1 -1
  165. package/.next/standalone/packages/console/.next/server/app/(console)/squadrons/templates/[name]/page_client-reference-manifest.js +1 -1
  166. package/.next/standalone/packages/console/.next/server/app/(console)/trierarchs/[shipId]/page/build-manifest.json +5 -5
  167. package/.next/standalone/packages/console/.next/server/app/(console)/trierarchs/[shipId]/page/server-reference-manifest.json +14 -14
  168. package/.next/standalone/packages/console/.next/server/app/(console)/trierarchs/[shipId]/page.js +8 -8
  169. package/.next/standalone/packages/console/.next/server/app/(console)/trierarchs/[shipId]/page.js.nft.json +1 -1
  170. package/.next/standalone/packages/console/.next/server/app/(console)/trierarchs/[shipId]/page_client-reference-manifest.js +1 -1
  171. package/.next/standalone/packages/console/.next/server/app/(console)/trierarchs/page/build-manifest.json +5 -5
  172. package/.next/standalone/packages/console/.next/server/app/(console)/trierarchs/page/server-reference-manifest.json +28 -28
  173. package/.next/standalone/packages/console/.next/server/app/(console)/trierarchs/page.js +8 -8
  174. package/.next/standalone/packages/console/.next/server/app/(console)/trierarchs/page.js.nft.json +1 -1
  175. package/.next/standalone/packages/console/.next/server/app/(console)/trierarchs/page_client-reference-manifest.js +1 -1
  176. package/.next/standalone/packages/console/.next/server/app/_global-error/page/build-manifest.json +5 -5
  177. package/.next/standalone/packages/console/.next/server/app/_global-error/page.js +4 -4
  178. package/.next/standalone/packages/console/.next/server/app/_global-error/page.js.nft.json +1 -1
  179. package/.next/standalone/packages/console/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  180. package/.next/standalone/packages/console/.next/server/app/_global-error.html +1 -1
  181. package/.next/standalone/packages/console/.next/server/app/_global-error.rsc +7 -7
  182. package/.next/standalone/packages/console/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +6 -6
  183. package/.next/standalone/packages/console/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  184. package/.next/standalone/packages/console/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  185. package/.next/standalone/packages/console/.next/server/app/_not-found/page/build-manifest.json +5 -5
  186. package/.next/standalone/packages/console/.next/server/app/_not-found/page.js +8 -8
  187. package/.next/standalone/packages/console/.next/server/app/_not-found/page.js.nft.json +1 -1
  188. package/.next/standalone/packages/console/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  189. package/.next/standalone/packages/console/.next/server/app/api/analytics/route.js +4 -4
  190. package/.next/standalone/packages/console/.next/server/app/api/analytics/route.js.nft.json +1 -1
  191. package/.next/standalone/packages/console/.next/server/app/api/reads/[read]/route.js +3 -3
  192. package/.next/standalone/packages/console/.next/server/app/api/reads/[read]/route.js.nft.json +1 -1
  193. package/.next/standalone/packages/console/.next/server/app/health/route.js +4 -4
  194. package/.next/standalone/packages/console/.next/server/app/health/route.js.nft.json +1 -1
  195. package/.next/standalone/packages/console/.next/server/app/icon.svg/route.js +2 -2
  196. package/.next/standalone/packages/console/.next/server/app/icon.svg/route.js.nft.json +1 -1
  197. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/confirm/page/build-manifest.json +5 -5
  198. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/confirm/page.js +8 -8
  199. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/confirm/page.js.nft.json +1 -1
  200. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/confirm/page_client-reference-manifest.js +1 -1
  201. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/out/route.js +4 -4
  202. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/out/route.js.nft.json +1 -1
  203. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/refused/page/build-manifest.json +5 -5
  204. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/refused/page.js +8 -8
  205. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/refused/page.js.nft.json +1 -1
  206. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/refused/page_client-reference-manifest.js +1 -1
  207. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/route.js +4 -4
  208. package/.next/standalone/packages/console/.next/server/app/sign-in/argo/route.js.nft.json +1 -1
  209. package/.next/standalone/packages/console/.next/server/app/sign-in/done/route.js +4 -4
  210. package/.next/standalone/packages/console/.next/server/app/sign-in/done/route.js.nft.json +1 -1
  211. package/.next/standalone/packages/console/.next/server/app/sign-in/enter/route.js +4 -4
  212. package/.next/standalone/packages/console/.next/server/app/sign-in/enter/route.js.nft.json +1 -1
  213. package/.next/standalone/packages/console/.next/server/app/sign-in/failed/page/build-manifest.json +5 -5
  214. package/.next/standalone/packages/console/.next/server/app/sign-in/failed/page.js +8 -8
  215. package/.next/standalone/packages/console/.next/server/app/sign-in/failed/page.js.nft.json +1 -1
  216. package/.next/standalone/packages/console/.next/server/app/sign-in/failed/page_client-reference-manifest.js +1 -1
  217. package/.next/standalone/packages/console/.next/server/app/sign-in/no-rights/page/build-manifest.json +5 -5
  218. package/.next/standalone/packages/console/.next/server/app/sign-in/no-rights/page.js +8 -8
  219. package/.next/standalone/packages/console/.next/server/app/sign-in/no-rights/page.js.nft.json +1 -1
  220. package/.next/standalone/packages/console/.next/server/app/sign-in/no-rights/page_client-reference-manifest.js +1 -1
  221. package/.next/standalone/packages/console/.next/server/app/sign-in/nothing-to-manage/page/build-manifest.json +5 -5
  222. package/.next/standalone/packages/console/.next/server/app/sign-in/nothing-to-manage/page.js +8 -8
  223. package/.next/standalone/packages/console/.next/server/app/sign-in/nothing-to-manage/page.js.nft.json +1 -1
  224. package/.next/standalone/packages/console/.next/server/app/sign-in/nothing-to-manage/page_client-reference-manifest.js +1 -1
  225. package/.next/standalone/packages/console/.next/server/app/sign-in/out/route.js +4 -4
  226. package/.next/standalone/packages/console/.next/server/app/sign-in/out/route.js.nft.json +1 -1
  227. package/.next/standalone/packages/console/.next/server/app/sign-in/page/build-manifest.json +5 -5
  228. package/.next/standalone/packages/console/.next/server/app/sign-in/page.js +8 -8
  229. package/.next/standalone/packages/console/.next/server/app/sign-in/page.js.nft.json +1 -1
  230. package/.next/standalone/packages/console/.next/server/app/sign-in/page_client-reference-manifest.js +1 -1
  231. package/.next/standalone/packages/console/.next/server/app/sign-in/renew/route.js +4 -4
  232. package/.next/standalone/packages/console/.next/server/app/sign-in/renew/route.js.nft.json +1 -1
  233. package/.next/standalone/packages/console/.next/server/app/sign-in/start/route.js +4 -4
  234. package/.next/standalone/packages/console/.next/server/app/sign-in/start/route.js.nft.json +1 -1
  235. package/.next/standalone/packages/console/.next/server/app/sign-in/ticket/route.js +4 -4
  236. package/.next/standalone/packages/console/.next/server/app/sign-in/ticket/route.js.nft.json +1 -1
  237. package/.next/standalone/packages/console/.next/server/app/sign-in/unreachable/page/build-manifest.json +5 -5
  238. package/.next/standalone/packages/console/.next/server/app/sign-in/unreachable/page.js +8 -8
  239. package/.next/standalone/packages/console/.next/server/app/sign-in/unreachable/page.js.nft.json +1 -1
  240. package/.next/standalone/packages/console/.next/server/app/sign-in/unreachable/page_client-reference-manifest.js +1 -1
  241. package/.next/standalone/packages/console/.next/server/app/version/route.js +4 -4
  242. package/.next/standalone/packages/console/.next/server/app/version/route.js.nft.json +1 -1
  243. package/.next/standalone/packages/console/.next/server/chunks/0ysl_console__next-internal_server_app_api_reads_[read]_route_actions_1dgvk9n.js +1 -1
  244. package/.next/standalone/packages/console/.next/server/chunks/0ysl_console__next-internal_server_app_sign-in_argo_out_route_actions_0vmj7f3.js +1 -1
  245. package/.next/standalone/packages/console/.next/server/chunks/[externals]__021_tlj._.js +3 -0
  246. package/.next/standalone/packages/console/.next/server/chunks/[externals]__1aywz_q._.js +3 -0
  247. package/.next/standalone/packages/console/.next/server/chunks/[externals]_http_1kdsf6k._.js +3 -0
  248. package/.next/standalone/packages/console/.next/server/chunks/[externals]_https_0_2leqi._.js +3 -0
  249. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__0-62e1t._.js +3 -0
  250. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__0-b_d8j._.js +3 -0
  251. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__019n3ek._.js +3 -0
  252. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__05uof7g._.js +222 -0
  253. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__09_r6vp._.js +3 -0
  254. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__0aj1bwp._.js +3 -0
  255. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__0cw2sc4._.js +5 -0
  256. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__0i4cfcj._.js +1 -1
  257. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__0i8nw24._.js +3 -0
  258. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__0im58fd._.js +3 -0
  259. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__0k4x0g5._.js +5 -0
  260. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__0komqne._.js +3 -0
  261. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__0ksb5bq._.js +5 -0
  262. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__0m_d7h2._.js +3 -0
  263. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__0nh0u17._.js +3 -0
  264. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__0nr0jcj._.js +3 -0
  265. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__0pdt_5g._.js +41 -0
  266. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__0sj-m5n._.js +3 -0
  267. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__0w4s32w._.js +3 -0
  268. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__1-09egt._.js +3 -0
  269. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__11n_f2o._.js +3 -0
  270. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__179ym17._.js +3 -0
  271. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__1_5xwm4._.js +3 -0
  272. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__1_h3erx._.js +3 -0
  273. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__1c0qgbj._.js +3 -0
  274. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__1je5foi._.js +3 -0
  275. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__1opbof5._.js +3 -0
  276. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__1vkjojt._.js +3 -0
  277. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__1xpr9l3._.js +3 -0
  278. package/.next/standalone/packages/console/.next/server/chunks/_01mvwcx._.js +1 -1
  279. package/.next/standalone/packages/console/.next/server/chunks/_02-7tdl._.js +5 -5
  280. package/.next/standalone/packages/console/.next/server/chunks/_0l8ph40._.js +5 -5
  281. package/.next/standalone/packages/console/.next/server/chunks/_11q6cmj._.js +1 -1
  282. package/.next/standalone/packages/console/.next/server/chunks/_16i3nlz._.js +5 -5
  283. package/.next/standalone/packages/console/.next/server/chunks/_17v26e_._.js +1 -1
  284. package/.next/standalone/packages/console/.next/server/chunks/_1uqphll._.js +1 -1
  285. package/.next/standalone/packages/console/.next/server/chunks/node_modules_@opentelemetry_0s04xby._.js +3 -0
  286. package/.next/standalone/packages/console/.next/server/chunks/node_modules_@opentelemetry_otlp-transformer_build_esm_00p-k3r._.js +3 -0
  287. package/.next/standalone/packages/console/.next/server/chunks/node_modules_next_dist_11w3z5e._.js +5 -5
  288. package/.next/standalone/packages/console/.next/server/chunks/packages_console_0rnka7r._.js +4 -0
  289. package/.next/standalone/packages/console/.next/server/chunks/packages_console__next-internal_server_app_api_analytics_route_actions_1_9f2-k.js +1 -1
  290. package/.next/standalone/packages/console/.next/server/chunks/packages_console__next-internal_server_app_health_route_actions_0k_orjf.js +1 -1
  291. package/.next/standalone/packages/console/.next/server/chunks/packages_console__next-internal_server_app_icon_svg_route_actions_1n6yt2t.js +1 -1
  292. package/.next/standalone/packages/console/.next/server/chunks/packages_console__next-internal_server_app_sign-in_argo_route_actions_1d9vk1o.js +1 -1
  293. package/.next/standalone/packages/console/.next/server/chunks/packages_console__next-internal_server_app_sign-in_done_route_actions_06h8w2b.js +1 -1
  294. package/.next/standalone/packages/console/.next/server/chunks/packages_console__next-internal_server_app_sign-in_enter_route_actions_0yau020.js +1 -1
  295. package/.next/standalone/packages/console/.next/server/chunks/packages_console__next-internal_server_app_sign-in_out_route_actions_1hvzhe6.js +1 -1
  296. package/.next/standalone/packages/console/.next/server/chunks/packages_console__next-internal_server_app_sign-in_renew_route_actions_01ck9ks.js +1 -1
  297. package/.next/standalone/packages/console/.next/server/chunks/packages_console__next-internal_server_app_sign-in_start_route_actions_1iuwttz.js +1 -1
  298. package/.next/standalone/packages/console/.next/server/chunks/packages_console__next-internal_server_app_sign-in_ticket_route_actions_1ohm05v.js +1 -1
  299. package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console__next-internal_server_app_sign-in_argo_confirm_page_actions_0909_h9.js +1 -1
  300. package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console__next-internal_server_app_sign-in_argo_refused_page_actions_0grr4f-.js +1 -1
  301. package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console__next-internal_server_app_sign-in_no-rights_page_actions_1_uzulg.js +1 -1
  302. package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console__next-internal_server_app_sign-in_unreachable_page_actions_07md7et.js +1 -1
  303. package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console_features_trierarchs_ui_organisms_clear-worktree-dialog_tsx_1rm9l2e._.js +3 -0
  304. package/.next/standalone/packages/console/.next/server/chunks/ssr/1eui__next-internal_server_app_sign-in_nothing-to-manage_page_actions_1mhf4v_.js +1 -1
  305. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__032-xi2._.js +1 -1
  306. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__06uu50p._.js +1 -1
  307. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__09v39g6._.js +3 -0
  308. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__09znqpv._.js +1 -1
  309. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__0bvx015._.js +1 -1
  310. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__0c1m_hd._.js +1 -1
  311. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__0g-j_l2._.js +1 -1
  312. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__0hnb5xn._.js +1 -1
  313. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__0nyiifk._.js +1 -1
  314. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__0pvwbtv._.js +1 -1
  315. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__0r6g-bg._.js +2 -2
  316. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__0tv_82z._.js +14 -0
  317. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__0up8t8p._.js +1 -1
  318. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__0w3uw0-._.js +1 -1
  319. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__0wid7l7._.js +1 -1
  320. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__1047sj3._.js +1 -1
  321. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__13qgk8t._.js +1 -1
  322. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__15t_tm7._.js +1 -1
  323. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__197gd9r._.js +1 -1
  324. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__19b3u9l._.js +1 -1
  325. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__1c0gcvn._.js +1 -1
  326. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__1f3129h._.js +1 -1
  327. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__1fk81--._.js +1 -1
  328. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__1io3bae._.js +2 -2
  329. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__1ohwquq._.js +1 -1
  330. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__1qxxq74._.js +1 -1
  331. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__1tmvu6h._.js +1 -1
  332. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__1wxlfud._.js +1 -1
  333. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__1zbr21v._.js +23 -0
  334. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0-pqdi3._.js +3 -0
  335. package/.next/standalone/packages/console/.next/server/chunks/ssr/_01nj4u4._.js +3 -0
  336. package/.next/standalone/packages/console/.next/server/chunks/ssr/_02sf-6u._.js +3 -0
  337. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0303p7e._.js +1 -1
  338. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0428c0y._.js +3 -0
  339. package/.next/standalone/packages/console/.next/server/chunks/ssr/_04q8k0c._.js +3 -0
  340. package/.next/standalone/packages/console/.next/server/chunks/ssr/_05eg_8f._.js +1 -1
  341. package/.next/standalone/packages/console/.next/server/chunks/ssr/_07_cqry._.js +3 -0
  342. package/.next/standalone/packages/console/.next/server/chunks/ssr/_07hh279._.js +1 -1
  343. package/.next/standalone/packages/console/.next/server/chunks/ssr/_085nqa_._.js +3 -0
  344. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0_b0_q2._.js +1 -1
  345. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0_cizz3._.js +3 -0
  346. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0_ro-a_._.js +3 -0
  347. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0bdsmu0._.js +3 -0
  348. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0bzikib._.js +3 -0
  349. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0bzwxa5._.js +3 -0
  350. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0c2cfln._.js +3 -0
  351. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0c6zkeh._.js +1 -1
  352. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0dmnshs._.js +1 -1
  353. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0e28ysf._.js +3 -0
  354. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0fkqg44._.js +3 -0
  355. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0h3dzkf._.js +1 -1
  356. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0ictsnq._.js +1 -1
  357. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0mjq1cb._.js +1 -1
  358. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0mzsxcj._.js +3 -0
  359. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0nbjb5h._.js +3 -0
  360. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0nmqout._.js +1 -1
  361. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0q5-u3a._.js +1 -1
  362. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0qa_oo2._.js +3 -0
  363. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0qf98-v._.js +1 -1
  364. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0qux6-9._.js +3 -0
  365. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0rdbxnq._.js +3 -0
  366. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0s-n56c._.js +1 -1
  367. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0u_xmpx._.js +3 -0
  368. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0vdc793._.js +3 -0
  369. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0vw3hp0._.js +3 -0
  370. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0wevgo7._.js +1 -1
  371. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0wx5h7b._.js +1 -1
  372. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0x0l8jg._.js +1 -1
  373. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0yu4kbh._.js +1 -1
  374. package/.next/standalone/packages/console/.next/server/chunks/ssr/_11g5bnb._.js +3 -0
  375. package/.next/standalone/packages/console/.next/server/chunks/ssr/_142u8s0._.js +1 -1
  376. package/.next/standalone/packages/console/.next/server/chunks/ssr/_147ti3f._.js +3 -0
  377. package/.next/standalone/packages/console/.next/server/chunks/ssr/_14ww2ld._.js +3 -0
  378. package/.next/standalone/packages/console/.next/server/chunks/ssr/_15jub2f._.js +1 -1
  379. package/.next/standalone/packages/console/.next/server/chunks/ssr/_165mz4l._.js +3 -0
  380. package/.next/standalone/packages/console/.next/server/chunks/ssr/_181kxvr._.js +1 -1
  381. package/.next/standalone/packages/console/.next/server/chunks/ssr/_18fu3-5._.js +3 -0
  382. package/.next/standalone/packages/console/.next/server/chunks/ssr/_18s-bns._.js +3 -0
  383. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1bc8get._.js +3 -3
  384. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1cet9p0._.js +3 -0
  385. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1d2-pry._.js +3 -0
  386. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1diq6u_._.js +1 -1
  387. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1e2tdd6._.js +3 -0
  388. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1eaafw1._.js +3 -0
  389. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1gfvjcx._.js +3 -0
  390. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1hsu1v2._.js +3 -0
  391. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1k19-fy._.js +3 -0
  392. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1kf28sa._.js +3 -0
  393. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1l1eyqx._.js +1 -1
  394. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1lrul1q._.js +3 -0
  395. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1lt6p4q._.js +1 -1
  396. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1mhs3wd._.js +3 -0
  397. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1n8dahj._.js +1 -1
  398. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1nhowde._.js +1 -1
  399. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1nov-za._.js +1 -1
  400. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1o4qsts._.js +1 -1
  401. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1oe1n9l._.js +1 -1
  402. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1q4ibin._.js +1 -1
  403. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1qde2ge._.js +1 -1
  404. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1qzlycs._.js +3 -0
  405. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1r8_v_g._.js +3 -0
  406. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1u0h4gj._.js +2 -2
  407. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1wqk91b._.js +3 -0
  408. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1yarwg1._.js +3 -0
  409. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1ymusis._.js +3 -0
  410. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1yz7z57._.js +1 -1
  411. package/.next/standalone/packages/console/.next/server/chunks/ssr/_20j7vun._.js +3 -0
  412. package/.next/standalone/packages/console/.next/server/chunks/ssr/_20u8c82._.js +1 -1
  413. package/.next/standalone/packages/console/.next/server/chunks/ssr/_20ud1ca._.js +4 -4
  414. package/.next/standalone/packages/console/.next/server/chunks/ssr/_20xkukj._.js +1 -1
  415. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_0do_axk._.js +1 -1
  416. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_0h91jdk._.js +2 -2
  417. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_0oy4wre._.js +1 -1
  418. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_0tb1et9._.js +1 -1
  419. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_0tebh-w._.js +1 -1
  420. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_16ifz1a._.js +1 -1
  421. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_1tm6j2u._.js +1 -1
  422. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_@base-ui_1epham-._.js +1 -1
  423. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_@base-ui_1zrp1ru._.js +1 -1
  424. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_@base-ui_react_0hr-0pm._.js +1 -1
  425. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_@base-ui_react_0lxpx21._.js +1 -1
  426. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_@base-ui_react_18l-yav._.js +1 -1
  427. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_@base-ui_react_1t9_5ft._.js +1 -1
  428. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_@base-ui_react_dialog_0qkqfb3._.js +1 -1
  429. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_@base-ui_react_dialog_1y13e3a._.js +1 -1
  430. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_@tanstack_0jt0oqw._.js +3 -0
  431. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_next_dist_0kq7z60._.js +1 -1
  432. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_next_dist_0nkkbfv._.js +2 -2
  433. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_next_dist_18_d8l1._.js +5 -5
  434. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_next_dist_1v8aef8._.js +1 -1
  435. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j3._.js +1 -1
  436. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9.js +1 -1
  437. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0q-w892.js +1 -1
  438. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0x.js +1 -1
  439. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_zod_v4_classic_external_071rx-x.js +5 -5
  440. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_zod_v4_classic_external_15fmmz3.js +5 -5
  441. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_03-f8b4._.js +3 -0
  442. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_0k1f2rl._.js +3 -0
  443. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_10js6wa._.js +3 -0
  444. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_15ka30f._.js +1 -1
  445. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_common_dist_header_atoms_tooltip_1518pdz.js +1 -1
  446. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_common_dist_rules_sign-in_0qqgqum.js +1 -1
  447. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_common_dist_schemas_fleet_1a-bnwh.js +3 -0
  448. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_00qg_s6._.js +1 -1
  449. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_02v53na._.js +1 -1
  450. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_02wkudy._.js +1 -1
  451. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_04rox65._.js +1 -1
  452. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_05zitd2._.js +1 -1
  453. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_065nea1._.js +1 -1
  454. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_0h_376h._.js +1 -1
  455. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_0hdablp._.js +1 -1
  456. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_0ko_ogs._.js +1 -1
  457. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_0sr2-oa._.js +1 -1
  458. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_0ub5v8q._.js +1 -1
  459. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_0ydkif0._.js +1 -1
  460. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_0ysbad7._.js +1 -1
  461. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_108sez2._.js +1 -1
  462. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_11eh-8v._.js +1 -1
  463. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_11tdbkt._.js +3 -0
  464. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_1foyyva._.js +1 -1
  465. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_1gp9yi0._.js +1 -1
  466. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_1i0al2p._.js +1 -1
  467. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_1jy5-0g._.js +1 -1
  468. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_1l72l5g._.js +1 -1
  469. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_1n8w8x0._.js +1 -1
  470. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_1oz8iu7._.js +1 -1
  471. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_1pslvww._.js +3 -0
  472. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_1pyirkn._.js +3 -0
  473. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_1rdu3gt._.js +1 -1
  474. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_1yfimad._.js +1 -1
  475. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console__next-internal_server_app__global-error_page_actions_1x4w6ky.js +1 -1
  476. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console__next-internal_server_app__not-found_page_actions_070gzsk.js +1 -1
  477. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console__next-internal_server_app_sign-in_failed_page_actions_014n0ub.js +1 -1
  478. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console__next-internal_server_app_sign-in_page_actions_0a1y9sm.js +1 -1
  479. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_12g0s6c._.js +1 -1
  480. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_fleet-health_page_tsx_0vcosw1._.js +1 -1
  481. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_inbox_inbox-page_tsx_1lm_c0k._.js +1 -1
  482. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_labels_page_tsx_1qggshd._.js +1 -1
  483. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_network_network-page_tsx_0qc3h-9._.js +2 -1
  484. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_overview-page_tsx_15siba6._.js +1 -1
  485. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_settings_page_tsx_1p8ay87._.js +1 -1
  486. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_ships_[shipId]_ship-page_tsx_0oahz0r._.js +1 -1
  487. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_signed-in-layout_tsx_13vv8fo._.js +1 -1
  488. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_squadrons_[squadronId]_page_tsx_0f8nmsh._.js +1 -1
  489. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_squadrons_page_tsx_1xpvx8n._.js +1 -1
  490. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_(console)_trierarchs_[shipId]_page_tsx_1u845f4._.js +1 -1
  491. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_app_providers_tsx_06ai92n._.js +1 -1
  492. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_components_0wbp67g._.js +1 -1
  493. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_components_14_6o0z._.js +1 -1
  494. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_components_1zx3jz4._.js +1 -1
  495. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_components_atoms_combobox_tsx_1cy612l._.js +1 -1
  496. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_components_atoms_input_tsx_0ux0uln._.js +1 -1
  497. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_components_atoms_popover_tsx_0_sbc_0._.js +1 -1
  498. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_components_atoms_select_tsx_1v_3j3i._.js +1 -1
  499. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_components_atoms_tabs_tsx_1qpb4iv._.js +1 -1
  500. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_components_atoms_toast_tsx_1kqrqe7._.js +1 -1
  501. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_components_organisms_crew-line-dialog_tsx_03yc7m2._.js +3 -0
  502. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_components_organisms_crew-line-dialog_tsx_1n3v4kg._.js +1 -1
  503. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_features_ship_ui_organisms_message-sheet_tsx_08bg9ly._.js +1 -1
  504. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_features_squadrons_organisms_add-member-dialog_tsx_1qunr7p._.js +1 -1
  505. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_features_squadrons_organisms_form-squadron-dialog_tsx_080dycl._.js +3 -0
  506. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_features_squadrons_organisms_form-squadron-dialog_tsx_1y1h3bn._.js +1 -1
  507. package/.next/standalone/packages/console/.next/server/instrumentation.js +3 -3
  508. package/.next/standalone/packages/console/.next/server/middleware-build-manifest.js +8 -8
  509. package/.next/standalone/packages/console/.next/server/middleware.js +4 -4
  510. package/.next/standalone/packages/console/.next/server/pages/500.html +1 -1
  511. package/.next/standalone/packages/console/.next/server/server-reference-manifest.js +1 -1
  512. package/.next/standalone/packages/console/.next/server/server-reference-manifest.json +211 -211
  513. package/.next/standalone/packages/console/.next/static/chunks/0-t17q21_7x3q.js +1 -0
  514. package/.next/standalone/packages/console/.next/static/chunks/00uwlm6u_15dm.js +1 -0
  515. package/.next/standalone/packages/console/.next/static/chunks/01d9xxtkfuj2v.js +1 -0
  516. package/.next/standalone/packages/console/.next/static/chunks/01ddtfi6ns7ih.js +1 -0
  517. package/.next/standalone/packages/console/.next/static/chunks/01r-gscm_9-mh.js +1 -0
  518. package/.next/standalone/packages/console/.next/static/chunks/01rgiz0wfbntn.js +1 -0
  519. package/.next/standalone/packages/console/.next/static/chunks/027maws9rvn-z.js +1 -0
  520. package/.next/standalone/packages/console/.next/static/chunks/042xy9nj5-p6m.js +1 -0
  521. package/.next/standalone/packages/console/.next/static/chunks/05q5fopmtrwk-.js +1 -0
  522. package/.next/standalone/packages/console/.next/static/chunks/06kpudgvfeyje.js +1 -0
  523. package/.next/standalone/packages/console/.next/static/chunks/06v0wink6h9wc.js +1 -0
  524. package/.next/standalone/packages/console/.next/static/chunks/0742dltqxo7l5.js +1 -0
  525. package/.next/standalone/packages/console/.next/static/chunks/098rv-6zs8gzx.js +1 -0
  526. package/.next/standalone/packages/console/.next/static/chunks/09i8egz-ukq1h.js +1 -0
  527. package/.next/standalone/packages/console/.next/static/chunks/0_uop8oaj8qn9.js +1 -0
  528. package/.next/standalone/packages/console/.next/static/chunks/0b8-il10o0ca2.js +1 -0
  529. package/.next/standalone/packages/console/.next/static/chunks/0bnl87gj176h5.js +1 -0
  530. package/.next/standalone/packages/console/.next/static/chunks/0csfj3pofioj5.js +1 -0
  531. package/.next/standalone/packages/console/.next/static/chunks/0if-vqkhyn-zc.js +1 -0
  532. package/.next/standalone/packages/console/.next/static/chunks/0jy978bstmu2h.js +1 -0
  533. package/.next/standalone/packages/console/.next/static/chunks/0k0ci61du1xf1.js +1 -0
  534. package/.next/standalone/packages/console/.next/static/chunks/0lerfeqv17y3h.js +1 -0
  535. package/.next/standalone/packages/console/.next/static/chunks/0mcbp_1hunti9.js +1 -0
  536. package/.next/standalone/packages/console/.next/static/chunks/0ofpruu2tcm_6.js +1 -0
  537. package/.next/standalone/packages/console/.next/static/chunks/0oyk04r-zhftx.js +1 -0
  538. package/.next/standalone/packages/console/.next/static/chunks/0rnxbow_f9hdj.js +1 -0
  539. package/.next/standalone/packages/console/.next/static/chunks/0rynbs46ao8hb.js +1 -0
  540. package/.next/standalone/packages/console/.next/static/chunks/0t3uvljeo7hs8.js +1 -0
  541. package/.next/standalone/packages/console/.next/static/chunks/0tzezbiiera4t.js +1 -0
  542. package/.next/standalone/packages/console/.next/static/chunks/0vaio3-af1qz7.js +1 -0
  543. package/.next/standalone/packages/console/.next/static/chunks/0w5mjb10dj8-h.js +1 -0
  544. package/.next/standalone/packages/console/.next/static/chunks/0wf2rmyoojkx7.js +31 -0
  545. package/.next/standalone/packages/console/.next/static/chunks/10tnt0_230wbm.js +1 -0
  546. package/.next/standalone/packages/console/.next/static/chunks/12tpena_m0td3.js +1 -0
  547. package/.next/standalone/packages/console/.next/static/chunks/14t6zl5-m6-cv.js +1 -0
  548. package/.next/standalone/packages/console/.next/static/chunks/153phemqeeak4.js +1 -0
  549. package/.next/standalone/packages/console/.next/static/chunks/15esws160fsle.js +1 -0
  550. package/.next/standalone/packages/console/.next/static/chunks/15gkenyyhec4d.js +1 -0
  551. package/.next/standalone/packages/console/.next/static/chunks/16f3x-u_wdfad.js +1 -0
  552. package/.next/standalone/packages/console/.next/static/chunks/18g_vf4h4p4_4.js +1 -0
  553. package/.next/standalone/packages/console/.next/static/chunks/194ocbg7a-yfj.js +2 -0
  554. package/.next/standalone/packages/console/.next/static/chunks/19p4i84gnm2q6.js +1 -0
  555. package/.next/standalone/packages/console/.next/static/chunks/1_oeyt-5xc_e9.js +1 -0
  556. package/.next/standalone/packages/console/.next/static/chunks/1b6ma8umxebkq.js +1 -0
  557. package/.next/standalone/packages/console/.next/static/chunks/1bnzbhinx6t2k.js +1 -0
  558. package/.next/standalone/packages/console/.next/static/chunks/1czgt1z7tqnk-.js +1 -0
  559. package/.next/standalone/packages/console/.next/static/chunks/1dwd950z6uq3v.js +1 -0
  560. package/.next/standalone/packages/console/.next/static/chunks/1e3q_35y2oo1k.js +1 -0
  561. package/.next/standalone/packages/console/.next/static/chunks/1h5fh20hceb_i.js +1 -0
  562. package/.next/standalone/packages/console/.next/static/chunks/1h7b86lgq9lv7.js +1 -0
  563. package/.next/standalone/packages/console/.next/static/chunks/1jqrs0rok_qta.js +1 -0
  564. package/.next/standalone/packages/console/.next/static/chunks/1naopyooi9-v8.js +1 -0
  565. package/.next/standalone/packages/console/.next/static/chunks/1nh5vpmasmibg.js +1 -0
  566. package/.next/standalone/packages/console/.next/static/chunks/1or7a4bzp7ces.js +1 -0
  567. package/.next/standalone/packages/console/.next/static/chunks/1q730nbf90lr2.js +1 -0
  568. package/.next/standalone/packages/console/.next/static/chunks/1rt8i5fvtk2mc.js +1 -0
  569. package/.next/standalone/packages/console/.next/static/chunks/1tp-fe6jeewef.js +1 -0
  570. package/.next/standalone/packages/console/.next/static/chunks/1tw5_upsy-qj_.js +22 -0
  571. package/.next/standalone/packages/console/.next/static/chunks/1w6r-bqm4xdkm.js +1 -0
  572. package/.next/standalone/packages/console/.next/static/chunks/1xlz7-v7tay9s.js +1 -0
  573. package/.next/standalone/packages/console/.next/static/chunks/1z-37z24uifp1.js +1 -0
  574. package/.next/standalone/packages/console/.next/static/chunks/22kprc_dbsgjz.js +1 -0
  575. package/.next/standalone/packages/console/.next/static/chunks/23dflsn8x9e4t.js +1 -0
  576. package/.next/standalone/packages/console/.next/static/chunks/23rmynijvqsdw.js +1 -0
  577. package/.next/standalone/packages/console/.next/static/chunks/24x7ks47qnlqw.js +1 -0
  578. package/.next/standalone/packages/console/.next/static/chunks/26lqmfd6v4qb4.js +1 -0
  579. package/.next/standalone/packages/console/.next/static/chunks/27ov_fdhmd523.js +1 -0
  580. package/.next/standalone/packages/console/.next/static/chunks/29x4em4x1g0hu.js +1 -0
  581. package/.next/standalone/packages/console/.next/static/chunks/29xv6oo61myhv.js +1 -0
  582. package/.next/standalone/packages/console/.next/static/chunks/2_x-45vq7prtl.js +1 -0
  583. package/.next/standalone/packages/console/.next/static/chunks/2bs3zz5ow0i08.js +1 -0
  584. package/.next/standalone/packages/console/.next/static/chunks/2c9lelkw922nc.js +1 -0
  585. package/.next/standalone/packages/console/.next/static/chunks/2c9t_g489tnn5.js +1 -0
  586. package/.next/standalone/packages/console/.next/static/chunks/2ckbufd6psg70.js +1 -0
  587. package/.next/standalone/packages/console/.next/static/chunks/2cpndz4m8u86c.js +1 -0
  588. package/.next/standalone/packages/console/.next/static/chunks/2eid4ylq9mptl.js +1 -0
  589. package/.next/standalone/packages/console/.next/static/chunks/2nprd8lmiucz8.js +1 -0
  590. package/.next/standalone/packages/console/.next/static/chunks/2pkfao79haew9.js +58 -0
  591. package/.next/standalone/packages/console/.next/static/chunks/2t2yy5clzhxdl.js +1 -0
  592. package/.next/standalone/packages/console/.next/static/chunks/2tj5-rkl0ps53.js +1 -0
  593. package/.next/standalone/packages/console/.next/static/chunks/2trb7ad4f0p1k.js +1 -0
  594. package/.next/standalone/packages/console/.next/static/chunks/2u9g6rfau6qkb.js +1 -0
  595. package/.next/standalone/packages/console/.next/static/chunks/2wknkyd6ljffj.js +1 -0
  596. package/.next/standalone/packages/console/.next/static/chunks/3-5a_-zajpox2.js +1 -0
  597. package/.next/standalone/packages/console/.next/static/chunks/31ue9ypdmkhwy.js +1 -0
  598. package/.next/standalone/packages/console/.next/static/chunks/31zson-gkby6x.js +1 -0
  599. package/.next/standalone/packages/console/.next/static/chunks/33t46atd3n2zd.js +1 -0
  600. package/.next/standalone/packages/console/.next/static/chunks/3aa_g50jtvnxi.js +1 -0
  601. package/.next/standalone/packages/console/.next/static/chunks/3aavctmtw4-fi.js +1 -0
  602. package/.next/standalone/packages/console/.next/static/chunks/3do-zyuiyy-p5.js +1 -0
  603. package/.next/standalone/packages/console/.next/static/chunks/3dqw9msbsb0t0.js +1 -0
  604. package/.next/standalone/packages/console/.next/static/chunks/3du6_2nhp24z0.js +1 -0
  605. package/.next/standalone/packages/console/.next/static/chunks/3e1q680dju0rq.js +1 -0
  606. package/.next/standalone/packages/console/.next/static/chunks/3ggtjtpv-ck2m.js +1 -0
  607. package/.next/standalone/packages/console/.next/static/chunks/3h239jvs_g-0p.js +1 -0
  608. package/.next/standalone/packages/console/.next/static/chunks/3ivriv3lk7ps3.js +1 -0
  609. package/.next/standalone/packages/console/.next/static/chunks/3jjdkvw3c2dls.js +1 -0
  610. package/.next/standalone/packages/console/.next/static/chunks/3kjaxj0f2it2j.js +1 -0
  611. package/.next/standalone/packages/console/.next/static/chunks/3l08evl5-acl_.js +1 -0
  612. package/.next/standalone/packages/console/.next/static/chunks/3ld_1c6qilenj.js +1 -0
  613. package/.next/standalone/packages/console/.next/static/chunks/3m5g2od7yc5cq.js +1 -0
  614. package/.next/standalone/packages/console/.next/static/chunks/3olz31yg-hfjz.js +1 -0
  615. package/.next/standalone/packages/console/.next/static/chunks/3p53ceu66mlll.js +1 -0
  616. package/.next/standalone/packages/console/.next/static/chunks/3pbm8tp2tq5mv.css +3 -0
  617. package/.next/standalone/packages/console/.next/static/chunks/3tfmgvn3khg2w.js +1 -0
  618. package/.next/standalone/packages/console/.next/static/chunks/3v8kvo897cw7g.js +1 -0
  619. package/.next/standalone/packages/console/.next/static/chunks/3vah6ubqj4cn_.js +1 -0
  620. package/.next/standalone/packages/console/.next/static/chunks/3wb6uu6fyzg50.js +1 -0
  621. package/.next/standalone/packages/console/.next/static/chunks/3zdjw8fopo0gd.js +1 -0
  622. package/.next/standalone/packages/console/.next/static/chunks/3zotgpae5tgmf.js +1 -0
  623. package/.next/standalone/packages/console/.next/static/chunks/3zp3ole03cbx8.js +1 -0
  624. package/.next/standalone/packages/console/.next/static/chunks/turbopack-44wlqod-9wjc6.js +1 -0
  625. package/.next/standalone/packages/console/package.json +10 -3
  626. package/README.md +1 -0
  627. package/package.json +10 -3
  628. package/.next/standalone/packages/console/.next/server/chunks/[externals]__037yphh._.js +0 -3
  629. package/.next/standalone/packages/console/.next/server/chunks/[externals]__0rvthp2._.js +0 -3
  630. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__0-jlz27._.js +0 -3
  631. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__09wt4n4._.js +0 -3
  632. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__0_vf--n._.js +0 -3
  633. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__0i467le._.js +0 -3
  634. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__0pais09._.js +0 -3
  635. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__0yylv8e._.js +0 -3
  636. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__14r_nz7._.js +0 -222
  637. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__15bjnu5._.js +0 -5
  638. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__1cfwaji._.js +0 -3
  639. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__1gl3yl5._.js +0 -3
  640. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__1hl-5gs._.js +0 -3
  641. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__1u6ep0m._.js +0 -3
  642. package/.next/standalone/packages/console/.next/server/chunks/[root-of-the-server]__1u98gxt._.js +0 -3
  643. package/.next/standalone/packages/console/.next/server/chunks/packages_console_instrumentation_ts_0x-7ff6._.js +0 -4
  644. package/.next/standalone/packages/console/.next/server/chunks/ssr/0ysl_console_features_trierarchs_ui_organisms_join-machine-dialog_tsx_1za3g1j._.js +0 -3
  645. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__0pws5x4._.js +0 -23
  646. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__1o0x0z-._.js +0 -3
  647. package/.next/standalone/packages/console/.next/server/chunks/ssr/[root-of-the-server]__1uan58j._.js +0 -14
  648. package/.next/standalone/packages/console/.next/server/chunks/ssr/_03x447c._.js +0 -3
  649. package/.next/standalone/packages/console/.next/server/chunks/ssr/_03xphjy._.js +0 -3
  650. package/.next/standalone/packages/console/.next/server/chunks/ssr/_04lz0pk._.js +0 -3
  651. package/.next/standalone/packages/console/.next/server/chunks/ssr/_05q4e87._.js +0 -3
  652. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0__21m1._.js +0 -3
  653. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0a0lmhf._.js +0 -3
  654. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0cuj1m9._.js +0 -3
  655. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0h0wdc8._.js +0 -3
  656. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0hq-chu._.js +0 -3
  657. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0krkeof._.js +0 -3
  658. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0lx73da._.js +0 -3
  659. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0oln7j0._.js +0 -3
  660. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0ulogg0._.js +0 -3
  661. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0wcfqga._.js +0 -3
  662. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0wmn_e6._.js +0 -3
  663. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0xbhvct._.js +0 -3
  664. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0y1i-i8._.js +0 -3
  665. package/.next/standalone/packages/console/.next/server/chunks/ssr/_0z-2-5l._.js +0 -3
  666. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1-q8u_u._.js +0 -3
  667. package/.next/standalone/packages/console/.next/server/chunks/ssr/_11y_v2f._.js +0 -3
  668. package/.next/standalone/packages/console/.next/server/chunks/ssr/_12i23xy._.js +0 -3
  669. package/.next/standalone/packages/console/.next/server/chunks/ssr/_14x03yf._.js +0 -3
  670. package/.next/standalone/packages/console/.next/server/chunks/ssr/_16mtur4._.js +0 -3
  671. package/.next/standalone/packages/console/.next/server/chunks/ssr/_17ez_-4._.js +0 -3
  672. package/.next/standalone/packages/console/.next/server/chunks/ssr/_19ck6rb._.js +0 -3
  673. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1_1nacl._.js +0 -3
  674. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1efms7i._.js +0 -3
  675. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1h_9ti4._.js +0 -3
  676. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1jksmvi._.js +0 -3
  677. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1k7vocd._.js +0 -3
  678. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1lazbiz._.js +0 -3
  679. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1mate5q._.js +0 -3
  680. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1n-0pn5._.js +0 -3
  681. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1pld039._.js +0 -3
  682. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1uz6pzy._.js +0 -3
  683. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1v4ialy._.js +0 -3
  684. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1w20t_w._.js +0 -3
  685. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1xez-bc._.js +0 -3
  686. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1xgomnp._.js +0 -3
  687. package/.next/standalone/packages/console/.next/server/chunks/ssr/_1ztyinn._.js +0 -3
  688. package/.next/standalone/packages/console/.next/server/chunks/ssr/_20krie7._.js +0 -3
  689. package/.next/standalone/packages/console/.next/server/chunks/ssr/_20t51mx._.js +0 -3
  690. package/.next/standalone/packages/console/.next/server/chunks/ssr/_211ib7c._.js +0 -3
  691. package/.next/standalone/packages/console/.next/server/chunks/ssr/node_modules_@tanstack_0jhfl56._.js +0 -3
  692. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_1mgddl0._.js +0 -3
  693. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_1t6joug._.js +0 -3
  694. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_common_dist_0wn-l78._.js +0 -3
  695. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_common_dist_header_command-palette_05c03w-.js +0 -3
  696. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_0hhvtiq._.js +0 -3
  697. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_11dyuje._.js +0 -3
  698. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_199kw0r._.js +0 -3
  699. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_1ldpxis._.js +0 -3
  700. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_components_1xbabe0._.js +0 -3
  701. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_components_organisms_crew-line-dialog_tsx_1n7fl_y._.js +0 -3
  702. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_features_1a4rx_k._.js +0 -3
  703. package/.next/standalone/packages/console/.next/server/chunks/ssr/packages_console_features_squadrons_organisms_form-squadron-dialog_tsx_0157v1c._.js +0 -3
  704. package/.next/standalone/packages/console/.next/static/chunks/0-y_zfams28pu.js +0 -1
  705. package/.next/standalone/packages/console/.next/static/chunks/00xk_lkpl8l4v.js +0 -1
  706. package/.next/standalone/packages/console/.next/static/chunks/03xttwj2kpz_4.js +0 -1
  707. package/.next/standalone/packages/console/.next/static/chunks/05_3esi8-xe97.js +0 -1
  708. package/.next/standalone/packages/console/.next/static/chunks/08yt2fbvw3qnu.js +0 -1
  709. package/.next/standalone/packages/console/.next/static/chunks/09vrons-brzfx.js +0 -1
  710. package/.next/standalone/packages/console/.next/static/chunks/0bc8z51nm5psf.js +0 -1
  711. package/.next/standalone/packages/console/.next/static/chunks/0f92fmhgha5i3.js +0 -1
  712. package/.next/standalone/packages/console/.next/static/chunks/0jnr250p6aywr.js +0 -1
  713. package/.next/standalone/packages/console/.next/static/chunks/0l1wdm7vdsanu.js +0 -1
  714. package/.next/standalone/packages/console/.next/static/chunks/0nozb1otb31kw.js +0 -1
  715. package/.next/standalone/packages/console/.next/static/chunks/0nxvr0eizj4o2.js +0 -1
  716. package/.next/standalone/packages/console/.next/static/chunks/0ovyr6jpg0vxy.js +0 -1
  717. package/.next/standalone/packages/console/.next/static/chunks/0r6ln-xb5hs_c.js +0 -1
  718. package/.next/standalone/packages/console/.next/static/chunks/0sybybtinglf9.js +0 -1
  719. package/.next/standalone/packages/console/.next/static/chunks/0xvff0tc43mkc.js +0 -1
  720. package/.next/standalone/packages/console/.next/static/chunks/0ymnx1obwsbxg.js +0 -1
  721. package/.next/standalone/packages/console/.next/static/chunks/1-3m9ur_9k2ly.css +0 -3
  722. package/.next/standalone/packages/console/.next/static/chunks/1-5zemam8twzv.js +0 -1
  723. package/.next/standalone/packages/console/.next/static/chunks/11dlhw3zb89tr.js +0 -1
  724. package/.next/standalone/packages/console/.next/static/chunks/121x3ixnt3ycn.js +0 -1
  725. package/.next/standalone/packages/console/.next/static/chunks/1297u3-5zk7l-.js +0 -1
  726. package/.next/standalone/packages/console/.next/static/chunks/134xgz0lwpxgv.js +0 -1
  727. package/.next/standalone/packages/console/.next/static/chunks/13_-cqj8jnswn.js +0 -1
  728. package/.next/standalone/packages/console/.next/static/chunks/13ht20kl8axao.js +0 -1
  729. package/.next/standalone/packages/console/.next/static/chunks/14mdrtic40xtp.js +0 -1
  730. package/.next/standalone/packages/console/.next/static/chunks/15e7rn42etsif.js +0 -1
  731. package/.next/standalone/packages/console/.next/static/chunks/1827x5-cobc3q.js +0 -1
  732. package/.next/standalone/packages/console/.next/static/chunks/1980pgv670cjs.js +0 -1
  733. package/.next/standalone/packages/console/.next/static/chunks/19cc8h-euk_vw.js +0 -1
  734. package/.next/standalone/packages/console/.next/static/chunks/1_i24pyymdpwo.js +0 -1
  735. package/.next/standalone/packages/console/.next/static/chunks/1b2h_-7rckbs5.js +0 -1
  736. package/.next/standalone/packages/console/.next/static/chunks/1c2_p_g506huu.js +0 -1
  737. package/.next/standalone/packages/console/.next/static/chunks/1cp9wi7f3ez56.js +0 -1
  738. package/.next/standalone/packages/console/.next/static/chunks/1ex_ig9e275p1.js +0 -1
  739. package/.next/standalone/packages/console/.next/static/chunks/1fecr8m-wmmcc.js +0 -1
  740. package/.next/standalone/packages/console/.next/static/chunks/1gn13zeuxfqav.js +0 -1
  741. package/.next/standalone/packages/console/.next/static/chunks/1hrkkpr_jntrf.js +0 -1
  742. package/.next/standalone/packages/console/.next/static/chunks/1inwd9-noendt.js +0 -1
  743. package/.next/standalone/packages/console/.next/static/chunks/1j1drerg6u1c4.js +0 -1
  744. package/.next/standalone/packages/console/.next/static/chunks/1jj64r75eud93.js +0 -1
  745. package/.next/standalone/packages/console/.next/static/chunks/1jwd5buaaiibg.js +0 -1
  746. package/.next/standalone/packages/console/.next/static/chunks/1kqyc3egwf-g6.js +0 -1
  747. package/.next/standalone/packages/console/.next/static/chunks/1n42oyyc2m78p.js +0 -1
  748. package/.next/standalone/packages/console/.next/static/chunks/1rv_ubq9yeind.js +0 -1
  749. package/.next/standalone/packages/console/.next/static/chunks/1sjyv60jja8wg.js +0 -1
  750. package/.next/standalone/packages/console/.next/static/chunks/1v3zboey1lzrw.js +0 -1
  751. package/.next/standalone/packages/console/.next/static/chunks/1vgdxhp8hjmtg.js +0 -1
  752. package/.next/standalone/packages/console/.next/static/chunks/1vymbhrnm5qfl.js +0 -1
  753. package/.next/standalone/packages/console/.next/static/chunks/1wbjbr34zn98p.js +0 -1
  754. package/.next/standalone/packages/console/.next/static/chunks/1xl5a7chqnwwk.js +0 -1
  755. package/.next/standalone/packages/console/.next/static/chunks/1y5tnspjl_c7i.js +0 -1
  756. package/.next/standalone/packages/console/.next/static/chunks/1yepkvdl1av3c.js +0 -1
  757. package/.next/standalone/packages/console/.next/static/chunks/20b7zss5f15j_.js +0 -1
  758. package/.next/standalone/packages/console/.next/static/chunks/2140ob12x5g72.js +0 -1
  759. package/.next/standalone/packages/console/.next/static/chunks/21i493_zfcygr.js +0 -1
  760. package/.next/standalone/packages/console/.next/static/chunks/22i43cg4l4-dq.js +0 -1
  761. package/.next/standalone/packages/console/.next/static/chunks/24kpwb_f69kew.js +0 -1
  762. package/.next/standalone/packages/console/.next/static/chunks/26ozm4anoj943.js +0 -1
  763. package/.next/standalone/packages/console/.next/static/chunks/2b0_pg5e55bi-.js +0 -1
  764. package/.next/standalone/packages/console/.next/static/chunks/2by2_j7h-ol_s.js +0 -1
  765. package/.next/standalone/packages/console/.next/static/chunks/2i51e627rllld.js +0 -1
  766. package/.next/standalone/packages/console/.next/static/chunks/2i59z-m-92-ll.js +0 -1
  767. package/.next/standalone/packages/console/.next/static/chunks/2kv-h65_ki8r3.js +0 -1
  768. package/.next/standalone/packages/console/.next/static/chunks/2kxvan45lpose.js +0 -1
  769. package/.next/standalone/packages/console/.next/static/chunks/2miouvmnmiq27.js +0 -1
  770. package/.next/standalone/packages/console/.next/static/chunks/2oinamab9i2io.js +0 -1
  771. package/.next/standalone/packages/console/.next/static/chunks/2p72fzbj398ze.js +0 -58
  772. package/.next/standalone/packages/console/.next/static/chunks/2pac63cjw_hpu.js +0 -22
  773. package/.next/standalone/packages/console/.next/static/chunks/2qzwd-r5rf_pd.js +0 -1
  774. package/.next/standalone/packages/console/.next/static/chunks/2rc0goysrrai_.js +0 -1
  775. package/.next/standalone/packages/console/.next/static/chunks/2v8nnxm3j-4rc.js +0 -1
  776. package/.next/standalone/packages/console/.next/static/chunks/2wt-z8em601th.js +0 -1
  777. package/.next/standalone/packages/console/.next/static/chunks/2y1kwp6sm4xef.js +0 -1
  778. package/.next/standalone/packages/console/.next/static/chunks/2yg8yrv6zs598.js +0 -1
  779. package/.next/standalone/packages/console/.next/static/chunks/2yl7mh2bi7a7n.js +0 -1
  780. package/.next/standalone/packages/console/.next/static/chunks/2ynb_atn6efmi.js +0 -1
  781. package/.next/standalone/packages/console/.next/static/chunks/307--wbao6s4g.js +0 -1
  782. package/.next/standalone/packages/console/.next/static/chunks/357prv95ii3f3.js +0 -1
  783. package/.next/standalone/packages/console/.next/static/chunks/3_4ke6pfsvci9.js +0 -1
  784. package/.next/standalone/packages/console/.next/static/chunks/3a5gbs3i-8p4w.js +0 -1
  785. package/.next/standalone/packages/console/.next/static/chunks/3a8b6mvuxff0x.js +0 -1
  786. package/.next/standalone/packages/console/.next/static/chunks/3cdx7wdipcaom.js +0 -1
  787. package/.next/standalone/packages/console/.next/static/chunks/3ctea3_zumb_6.js +0 -1
  788. package/.next/standalone/packages/console/.next/static/chunks/3cziwrehzxww4.js +0 -1
  789. package/.next/standalone/packages/console/.next/static/chunks/3dbvabbuspuew.js +0 -1
  790. package/.next/standalone/packages/console/.next/static/chunks/3dkl2qi0_kamw.js +0 -1
  791. package/.next/standalone/packages/console/.next/static/chunks/3dnldo4qdbp9_.js +0 -1
  792. package/.next/standalone/packages/console/.next/static/chunks/3fbga59st-ddo.js +0 -1
  793. package/.next/standalone/packages/console/.next/static/chunks/3fntmmi971322.js +0 -1
  794. package/.next/standalone/packages/console/.next/static/chunks/3fza191yvz2g4.js +0 -1
  795. package/.next/standalone/packages/console/.next/static/chunks/3jri5ummt9-kn.js +0 -1
  796. package/.next/standalone/packages/console/.next/static/chunks/3m6d29nmyh_tp.js +0 -1
  797. package/.next/standalone/packages/console/.next/static/chunks/3mc6dra1m0098.js +0 -31
  798. package/.next/standalone/packages/console/.next/static/chunks/3me5h13yg09mt.js +0 -1
  799. package/.next/standalone/packages/console/.next/static/chunks/3my0dvew3kf4i.js +0 -1
  800. package/.next/standalone/packages/console/.next/static/chunks/3n7qy45kd4y26.js +0 -1
  801. package/.next/standalone/packages/console/.next/static/chunks/3nlzuzl3hjvvu.js +0 -1
  802. package/.next/standalone/packages/console/.next/static/chunks/3vtv9qizo-3h1.js +0 -1
  803. package/.next/standalone/packages/console/.next/static/chunks/3wnk_9b0hsk-4.js +0 -1
  804. package/.next/standalone/packages/console/.next/static/chunks/3wpdfxv2ydrbs.js +0 -1
  805. package/.next/standalone/packages/console/.next/static/chunks/3x9dzriwxj2jr.js +0 -1
  806. package/.next/standalone/packages/console/.next/static/chunks/3yb7bojcnm336.js +0 -1
  807. package/.next/standalone/packages/console/.next/static/chunks/3z-vdr9trwnib.js +0 -1
  808. package/.next/standalone/packages/console/.next/static/chunks/4127doqwcf9tk.js +0 -1
  809. package/.next/standalone/packages/console/.next/static/chunks/42buia95mk04g.js +0 -1
  810. package/.next/standalone/packages/console/.next/static/chunks/43i0ct-bpzy-w.js +0 -1
  811. package/.next/standalone/packages/console/.next/static/chunks/4484sh3l0tijv.js +0 -1
  812. package/.next/standalone/packages/console/.next/static/chunks/45160g3zbzbin.js +0 -1
  813. package/.next/standalone/packages/console/.next/static/chunks/turbopack-03ngddy_g6-7a.js +0 -1
  814. /package/.next/standalone/packages/console/.next/static/{vJo17J2Bhsq_zOcKyKRk2 → 10-qWFsL7UDAGlmmFXFB-}/_buildManifest.js +0 -0
  815. /package/.next/standalone/packages/console/.next/static/{vJo17J2Bhsq_zOcKyKRk2 → 10-qWFsL7UDAGlmmFXFB-}/_clientMiddlewareManifest.js +0 -0
  816. /package/.next/standalone/packages/console/.next/static/{vJo17J2Bhsq_zOcKyKRk2 → 10-qWFsL7UDAGlmmFXFB-}/_ssgManifest.js +0 -0
@@ -1,3 +1,4 @@
1
- module.exports=[71915,a=>{"use strict";var b=a.i(87924),c=a.i(65913),d=a.i(50944),e=a.i(24173),f=a.i(40392),g=a.i(50808),h=a.i(39353),i=a.i(33274),j=a.i(45469);let k={argo:"You turn it on or off.",rules:"Applying rules turns it off; applying none turns it on again."};function l({rows:a,error:c,onRetry:d,isTurning:e,turnError:m,onViewerReadChange:n}){let o;return o=void 0!==c?(0,b.jsx)(f.InlineError,{title:"Couldn’t read the built-in rules",description:c,onRetry:d}):void 0===a?(0,b.jsx)(g.LoadingSkeleton,{variant:"list",rows:3,label:"Loading the built-in rules"}):(0,b.jsx)("ul",{className:"flex flex-col divide-y divide-border",children:a.map(a=>(0,b.jsxs)("li",{"data-testid":"network-built-in-rule",className:"flex items-start justify-between gap-3 py-2 first:pt-0 last:pb-0",children:[(0,b.jsxs)("div",{className:"flex min-w-0 flex-col gap-0.5",children:[(0,b.jsx)("span",{className:"text-body font-medium","data-testid":"network-built-in-rule-name",children:a.name}),(0,b.jsxs)("span",{className:"text-meta text-muted-foreground",children:[a.meaning," ","never"===a.turnedBy?null:k[a.turnedBy]]})]}),"argo"===a.turnedBy?(0,b.jsx)(j.Switch,{checked:a.isOn,disabled:e,"aria-label":`${a.name}: ${a.isOn?"on":"off"}`,"data-testid":"network-built-in-viewer-read",onCheckedChange:a=>{n(a)}}):(0,b.jsx)(i.Badge,{variant:"outline","data-testid":"network-built-in-rule-state",children:"never"===a.turnedBy?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(h.Lock,{"aria-hidden":!0}),"Never off"]}):a.isOn?"On":"Off"})]},a.key))}),(0,b.jsxs)("section",{"aria-labelledby":"network-built-in","data-testid":"network-built-in",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsx)("h2",{id:"network-built-in",className:"text-body font-semibold",children:"Built-in rules"}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"The fleet’s own rules, beside yours and the declared ones. They hold before any rule below."}),o,void 0===m?null:(0,b.jsx)(f.InlineError,{variant:"field",title:"Couldn’t turn the viewer reading",description:m})]})}var m=a.i(18783),n=a.i(93817),o=a.i(72131),p=a.i(56757),q=a.i(2811);let r=p.z.enum(["messages:send","messages:receive","messages:force","messages:resend","fleet:read","fleet:commission","fleet:manage","crew:assign","crew:run","labels:define","labels:assign","fleet:network","fleet:on-behalf","fleet:person","fleet:owner","fleet:explain","fleet:connect","labels:any","fleet:verify","scopes:declare","scopes:grant"]),s=["messages","fleet","crew","labels","scopes"],t="[a-z][a-z0-9-]{0,31}";RegExp(`^${t}$`);let u=RegExp(`^${t}:${t}$`),v=p.z.string().regex(u,"A scope is <namespace>:<action>").refine(a=>{var b;return b=a.slice(0,a.indexOf(":")),!s.some(a=>a===b)||r.safeParse(a).success},"No such core scope");p.z.enum(["messages:resend","fleet:read","fleet:commission","fleet:manage","crew:assign","crew:run","labels:define","labels:assign","fleet:network","fleet:on-behalf","fleet:person","fleet:owner","fleet:explain","fleet:connect","labels:any","fleet:verify"]),p.z.enum(["operator","agent","viewer","person","app","plugin"]),p.z.enum(["agent","person","app","plugin"]),p.z.enum(["DEVICE","CLOUD","SERVER","OTHER"]),p.z.enum(["awaitingCrew","crewed","retired"]),p.z.enum(["ship","type"]),p.z.enum(["pending","received","handed","acknowledged","handled","notHandled","undeliverable","dismissed","abandoned"]),p.z.enum(["FleetInitialised","ShipCommissioned","OwnerSet","OwnerChanged","ShipClaimed","LeaseRevoked","CredentialRevoked","StartingPromptIssued","OperatorPasswordReset","OperatorLoginSet","MessageAccepted","LeasePushed","DeliveryReceived","DeliveryHanded","DeliveryAcknowledged","DeliveryHandled","DeliveryNotHandled","DeliveryOverdue","DeliveryUndeliverable","DeliveryReturned","ShipRetired","DeliveryAbandoned","DeliveryDismissed","ShipRenamed","ShipReported","StatementSet","TurnReported","SignInTicketIssued","FleetLimitsChanged","ViewerSessionStarted","CrewRequested","CrewRequestRemoved","CrewAssigned","CrewStatusChanged","CrewRequestExplained","CrewRequestGivenBack","LabelDefined","LabelValuesChanged","LabelRetired","LabelAssigned","LabelUnassigned","LabelDeleted","WorktreeClearRequested","WorktreeCleared","WorktreeClearRemoved","NetworkRulesSet","NetworkRulesDeclared","NetworkRulesDraftSaved","NetworkRulesDraftDiscarded","NetworkPluginRegistered","NetworkPluginUnregistered","BuiltInRuleChanged","ScopesDeclared","ScopesChanged","PluginConnected","PluginDisconnected","VerifiedFactsSet","VerifiedFactsRemoved"]);let w=p.z.string().min(1).max(128).brand();p.z.object({iss:p.z.string(),aud:(0,q.idSchema)("fleet"),sub:w,org:p.z.string().min(1),scope:p.z.string(),group:p.z.array(p.z.string()),person_ship:(0,q.idSchema)("ship").optional(),argo:p.z.boolean().optional(),iat:p.z.number(),exp:p.z.number()}).transform((a,b)=>{let c=a.scope.split(" ").filter(a=>""!==a),d=p.z.array(v).safeParse(c);return d.success?{issuer:a.iss,fleetId:a.aud,accountId:a.sub,organisationId:a.org,scopes:d.data,groupValues:a.group,personShipId:a.person_ship??null,isArgoAllowed:a.argo??!1,issuedAt:new Date(1e3*a.iat),endsAt:new Date(1e3*a.exp)}:(b.addIssue({code:"custom",message:"scope holds a malformed or unknown scope",path:["scope"]}),p.z.NEVER)});let x=p.z.string(),y=p.z.object({id:(0,q.idSchema)("labelValue"),value:p.z.string()}),z=p.z.object({labelId:(0,q.idSchema)("label"),key:p.z.string(),valueId:(0,q.idSchema)("labelValue"),value:p.z.string()});p.z.object({valueIds:p.z.array((0,q.idSchema)("labelValue")).optional()}).optional(),p.z.object({key:x,values:p.z.array(x)}),p.z.object({labelId:(0,q.idSchema)("label"),values:p.z.array(y)}),p.z.object({labelId:(0,q.idSchema)("label"),values:p.z.array(x)}),p.z.object({values:p.z.array(y)}),p.z.object({labelId:(0,q.idSchema)("label")}),p.z.object({key:x,value:x}),p.z.object({labelId:(0,q.idSchema)("label"),valueId:(0,q.idSchema)("labelValue")}),p.z.object({shipId:(0,q.idSchema)("ship"),valueId:(0,q.idSchema)("labelValue")}),p.z.object({});let A=p.z.discriminatedUnion("kind",[p.z.object({kind:p.z.literal("ship"),id:(0,q.idSchema)("ship"),name:p.z.string()}),p.z.object({kind:p.z.literal("installation")})]),B=p.z.object({id:(0,q.idSchema)("label"),key:p.z.string(),values:p.z.array(y),owner:A});p.z.array(B);let C=p.z.union([(0,q.idSchema)("labelValue"),p.z.object({labelId:(0,q.idSchema)("label"),value:p.z.enum(["*","#"])}),p.z.object({owner:p.z.union([(0,q.idSchema)("ship"),p.z.enum(["*","#"])])})]);function D(a){return"string"!=typeof a&&"owner"in a}let E=p.z.array(C),F=["send","read","manage"],G=p.z.object({verb:p.z.enum(F),from:E,to:E}),H=p.z.array(G).nullable();p.z.object({rules:H}),p.z.object({savedAgainstVersion:p.z.int().min(0)}),p.z.object({version:p.z.int().min(0)}),p.z.object({applied:p.z.object({rules:H,version:p.z.int().min(0)}),draft:p.z.object({rules:H,savedAt:p.z.iso.datetime(),savedAgainstVersion:p.z.int().min(0)}).nullable()}),p.z.object({});let I=["argo","owner","answer","pluginRead","viewerRead","installation","open"];p.z.object({rule:p.z.enum(I),isOn:p.z.boolean()});let J=p.z.object({rule:p.z.enum(I),isOn:p.z.boolean()});p.z.array(J),p.z.object({version:p.z.int().min(0)}),p.z.object({rules:p.z.array(G)}),p.z.object({rules:p.z.int().min(0)});let K=p.z.discriminatedUnion("kind",[p.z.object({kind:p.z.literal("ship"),shipId:(0,q.idSchema)("ship")}),p.z.object({kind:p.z.literal("installation")})]);p.z.array(p.z.object({declarer:K,rules:p.z.array(G)}));let L=p.z.object({id:(0,q.idSchema)("ship"),name:p.z.string(),labels:p.z.array(z),owner:p.z.object({id:(0,q.idSchema)("ship"),name:p.z.string()}).nullable()}),M=p.z.discriminatedUnion("kind",[L.extend({kind:p.z.literal("ship")}),p.z.object({kind:p.z.literal("account"),accountId:w,labels:p.z.array(z),personShip:p.z.object({id:(0,q.idSchema)("ship"),name:p.z.string()}).nullable()}),p.z.object({kind:p.z.literal("installation")})]),N=p.z.object({id:(0,q.idSchema)("reachRefusal"),at:p.z.iso.datetime(),sender:M,askedBy:L.nullable(),recipient:p.z.discriminatedUnion("kind",[p.z.object({kind:p.z.literal("ship"),ship:L}),p.z.object({kind:p.z.literal("type"),type:p.z.string(),ships:p.z.array(L)})]),verb:p.z.enum(F),settingsVersion:p.z.int().min(1)});p.z.array(N),p.z.object({fromShipId:(0,q.idSchema)("ship"),toShipId:(0,q.idSchema)("ship").optional(),against:p.z.enum(["applied","draft"]).optional()});let O=p.z.union([p.z.object({builtIn:p.z.enum(I)}),p.z.object({rule:p.z.int().min(0)}),p.z.object({declared:K,index:p.z.int().min(0)})]),P=p.z.array(p.z.object({shipId:(0,q.idSchema)("ship"),rule:O}));p.z.object({send:P,read:P,manage:P});let Q=p.z.array(p.z.object({fromShipId:(0,q.idSchema)("ship"),toShipId:(0,q.idSchema)("ship"),rule:O}));p.z.object({send:p.z.object({gained:Q,lost:Q}),read:p.z.object({gained:Q,lost:Q}),manage:p.z.object({gained:Q,lost:Q})});var R=a.i(65230);let S={send:"May send to",read:"May read",manage:"May manage"};function T(a,b){return null===a?{kind:"all-to-all"}:{kind:"rules",rules:a.map(a=>({key:b(),verb:a.verb,from:[...a.from],to:[...a.to]}))}}function U(a){return"all-to-all"===a.kind?null:a.rules.map(a=>({verb:a.verb,from:[...a.from],to:[...a.to]}))}function V(a,b){return b?"rules"===a.kind?a:{kind:"rules",rules:[]}:{kind:"all-to-all"}}function W(a,b){return"all-to-all"===a.kind?a:{kind:"rules",rules:a.rules.map(a=>a.key===b.key?b.change(a):a)}}function X(a,b){return Y(a)===Y(b)}function Y(a){return"string"==typeof a?a:D(a)?`owner=${a.owner}`:`${a.labelId}=${a.value}`}let Z={"*":"Any value","#":"The same value as the other side"},$={"*":"Any owner","#":"The same owner as the other side"};function _(a,b){let c=[],d=[],e=[];for(let f of a){if(D(f)){let a=function(a,b){if("*"===a.owner||"#"===a.owner)return{term:a,text:`owner=${a.owner}`};let c=b.ships.find(b=>b.id===a.owner);return void 0===c?void 0:{term:a,text:`owner=${c.name}`}}(f,b);void 0===a?e.push(f):d.push(a);continue}let a=function(a,b){if("string"==typeof a){let[c]=(0,R.pickedChips)([a],b);return void 0===c?void 0:{labelId:c.labelId,key:c.key,value:c.value,mark:c.mark,ownerName:c.ownerName,term:a}}let c=b.labels.find(b=>b.id===a.labelId);if(void 0===c)return;let d=b.ownerOf.get(c.id);return{labelId:c.id,key:c.key,value:a.value,mark:d?.mark??"ship",ownerName:d?.name??(0,R.labelOwnerName)(c.owner),term:a}}(f,b);void 0===a?e.push(f):c.push(a)}return{chips:c,owners:d,unknown:e}}function aa(a,b){let c=a["from"===b?"to":"from"];return a[b].filter(a=>"string"!=typeof a&&!D(a)&&"#"===a.value&&!c.some(b=>X(b,a)))}function ab(a,b){let c=a=>a.some(a=>D(a)&&"#"===a.owner);return c(a[b])&&!c(a["from"===b?"to":"from"])}var ac=a.i(36501);let ad=[{side:"from",label:"From ships with"},{side:"to",label:"To ships with"}];function ae({declared:a,error:c,onRetry:d,context:h}){let i;return i=void 0!==c?(0,b.jsx)(f.InlineError,{title:"Couldn’t read the declared rules",description:c,onRetry:d}):void 0===a?(0,b.jsx)(g.LoadingSkeleton,{variant:"list",rows:2,label:"Loading the declared rules"}):0===a.length?(0,b.jsx)(e.EmptyState,{variant:"section",title:"Nothing declares rules."}):(0,b.jsx)("ul",{className:"flex flex-col gap-3",children:a.map(a=>(0,b.jsxs)("li",{"data-testid":"network-declared-plugin",className:"flex flex-col gap-2",children:[(0,b.jsxs)("h3",{className:"text-meta font-medium","data-testid":"network-declared-by",children:["Declared by ",a.declaredBy]}),(0,b.jsx)("ul",{className:"flex flex-col gap-2",children:a.rules.map(a=>(0,b.jsx)("li",{"data-testid":"network-declared-rule",className:"flex flex-col gap-2 rounded-md border border-border p-3 sm:flex-row sm:items-start sm:gap-3",children:ad.map(({side:c,label:d})=>(0,b.jsxs)("div",{className:"flex min-w-0 grow basis-0 items-start gap-3",children:["to"===c?(0,b.jsx)("span",{className:"mt-6 shrink-0 text-meta text-muted-foreground","data-testid":"network-declared-rule-verb",children:S[a.verb]}):null,"to"===c?(0,b.jsx)(m.ArrowRight,{"aria-hidden":!0,className:"mt-6 hidden size-(--size-icon) shrink-0 text-muted-foreground sm:block"}):null,(0,b.jsx)(af,{label:d,terms:a[c],context:h,testId:`network-declared-rule-${c}`})]},c))},JSON.stringify(a)))})]},a.declarerId))}),(0,b.jsxs)("section",{"aria-labelledby":"network-declared","data-testid":"network-declared",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsx)("h2",{id:"network-declared",className:"text-body font-semibold",children:"Declared by plugins and the installation"}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"Rules plugins and the installation need on the labels they own. The networking plugin adds them to your rules; while every ship may message every ship, they change nothing. Only their declarer changes them, and switching a plugin off withdraws its rules."}),i]})}function af({label:a,terms:c,context:d,testId:e}){let{chips:f,unknown:g}=_(c,d);return(0,b.jsxs)("div",{className:"flex flex-col gap-1","data-testid":e,children:[(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:a}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[f.length+g.length===0?(0,b.jsx)("span",{className:"text-body",children:"Every ship"}):null,f.map((a,c)=>(0,b.jsxs)(o.Fragment,{children:[0===c?null:(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:"and"}),(0,b.jsx)(ac.LabelChip,{chip:a,testId:`${e}-value`,..."string"==typeof a.term?{}:{meaning:Z[a.term.value]}})]},Y(a.term))),g.map(a=>(0,b.jsxs)("span",{"data-testid":`${e}-unknown`,title:`${Y(a)}: no longer in this fleet`,className:"inline-flex h-5.5 items-center gap-1 rounded-sm border border-tone-attention-border bg-tone-attention-bg px-1.5 text-id text-tone-attention-fg [&_svg]:size-3",children:[(0,b.jsx)(n.CircleAlert,{"aria-hidden":!0}),"A removed label"]},Y(a)))]})]})}var ag=a.i(70840),ah=a.i(52562),ai=a.i(64831);let aj={name:"crosshair",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"22",x2:"18",y1:"12",y2:"12",key:"l9bcsi"}],["line",{x1:"6",x2:"2",y1:"12",y2:"12",key:"13hhkx"}],["line",{x1:"12",x2:"12",y1:"6",y2:"2",key:"10w3f3"}],["line",{x1:"12",x2:"12",y1:"22",y2:"18",key:"15g9kq"}]]};aj.node;let ak=(0,ai.default)(aj);var al=a.i(31856),am=a.i(83556);function an(a){return a.send.map(a=>a.shipId)}let ao=-Math.PI/2,ap=2*Math.PI;function aq(a){return Math.round(100*a)/100}var ar=a.i(94777);let as=["applied","draft"],at={picked:"picked",reached:"may be messaged",unreached:"out of reach"};function au({ships:a,pickedShipId:c,reachableShipIds:d,reachError:e,onPick:g,onRetry:h,against:i="applied",onAgainstChange:j}){var k;let l=(k=void 0===c?void 0:{pickedShipId:c,reachableShipIds:void 0===e?d:void 0},a.map((b,c)=>{var d,e;let f=ao+ap*c/a.length,g=1===a.length;return{ship:b,x:g?50:aq(50+38*Math.cos(f)),y:g?50:aq(50+38*Math.sin(f)),mark:(d=b.id,void 0===(e=k)?"none":d===e.pickedShipId?"picked":void 0===e.reachableShipIds?"none":e.reachableShipIds.includes(d)?"reached":"unreached")}})),m=l.find(a=>"picked"===a.mark),n=l.filter(a=>"reached"===a.mark);return(0,b.jsxs)("section",{"aria-labelledby":"network-reach","data-testid":"network-reach",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsx)("h2",{id:"network-reach",className:"text-body font-semibold",children:"Reach"}),(0,b.jsxs)("p",{className:"text-meta text-muted-foreground",children:["draft"===i?"The fleet as the draft would leave it once applied: pick a ship to see which ships the draft lets it message.":"The fleet as it stands now: pick a ship to see which ships the rules let it message."," ","Argo reaches every ship, and every ship reaches argo."]}),void 0===j?null:(0,b.jsx)(ar.Tabs,{value:i,onValueChange:a=>{let b=as.find(b=>b===a);void 0!==b&&j(b)},children:(0,b.jsxs)(ar.TabsList,{"aria-label":"Explain reach against",children:[(0,b.jsx)(ar.TabsTrigger,{value:"applied","data-testid":"network-reach-applied",children:"Applied rules"}),(0,b.jsx)(ar.TabsTrigger,{value:"draft","data-testid":"network-reach-draft",children:"Draft"})]})}),(0,b.jsxs)("div",{className:"relative flex flex-wrap gap-2 md:mx-auto md:block md:aspect-square md:w-full md:max-w-xl","data-testid":"network-reach-graph",children:[void 0===m?null:(0,b.jsx)("svg",{"aria-hidden":!0,viewBox:"0 0 100 100",preserveAspectRatio:"none",className:"pointer-events-none absolute inset-0 hidden size-full md:block",children:n.map(a=>(0,b.jsx)("line",{x1:m.x,y1:m.y,x2:a.x,y2:a.y,vectorEffect:"non-scaling-stroke",className:"stroke-muted-foreground",strokeWidth:1.5},a.ship.id))}),l.map(a=>(0,b.jsx)(av,{node:a,onPick:()=>{g("picked"===a.mark?void 0:a.ship.id)}},a.ship.id))]}),void 0===e?(0,b.jsx)("p",{className:"text-body",role:"status","data-testid":"network-reach-summary",children:function(a){let b=a.find(a=>"picked"===a.mark);if(void 0===b)return"Pick a ship to see which ships it may message.";let c=a.length-1,d=a.filter(a=>"reached"===a.mark).map(a=>a.ship.name);return a.every(a=>"picked"===a.mark||"none"===a.mark)?0===c?`${b.ship.name} is the only ship of the fleet.`:`Finding the ships ${b.ship.name} may message…`:d.length===c?`${b.ship.name} may message every other ship (${String(c)}).`:0===d.length?`${b.ship.name} may message no other ship.`:`${b.ship.name} may message ${String(d.length)} of ${String(c)} ships: ${d.join(", ")}.`}(l)}):(0,b.jsx)(f.InlineError,{title:"Couldn’t explain this ship’s reach",description:e,onRetry:h})]})}function av({node:a,onPick:c}){let{ship:d,mark:e}=a;return(0,b.jsx)(al.Button,{size:"sm",variant:"secondary","aria-pressed":"picked"===e,"aria-label":"none"===e?d.name:`${d.name}, ${at[e]}`,icon:function(a){switch(a){case"picked":return(0,b.jsx)(ak,{"aria-hidden":!0});case"reached":return(0,b.jsx)(ah.Check,{"aria-hidden":!0});case"unreached":return(0,b.jsx)(ag.Ban,{"aria-hidden":!0});case"none":return}}(e),"data-testid":"network-reach-ship","data-mark":e,style:{left:`${String(a.x)}%`,top:`${String(a.y)}%`},className:(0,am.classNames)("md:absolute md:-translate-x-1/2 md:-translate-y-1/2","picked"===e&&"bg-accent ring-2 ring-ring","unreached"===e&&"opacity-45"),onClick:c,children:d.name})}var aw=a.i(59613),ax=a.i(71736);let ay={apply:{title:"Apply the draft?",description:"Every send, read and manage is checked against the draft from now on, and the rules before it are gone.",action:"Apply draft"},discard:{title:"Discard the draft?",description:"The draft is gone; the applied rules stay as they are.",action:"Discard draft"}};function az({draft:a,appliedVersion:c,isApplying:d,applyError:e,onApply:g,isDiscarding:h,discardError:i,onDiscard:j}){let[k,l]=(0,o.useState)(null),m=d||h;return(0,b.jsxs)("section",{"aria-labelledby":"network-rules-apply","data-testid":"network-rules-apply",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsx)("h2",{id:"network-rules-apply",className:"text-body font-semibold",children:"Apply"}),null===a?(0,b.jsx)("p",{className:"text-meta text-muted-foreground","data-testid":"network-rules-apply-state",children:"No draft: the applied rules are the ones above. Save a draft to apply it."}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("p",{className:"text-body","data-testid":"network-rules-apply-state",children:["A draft is saved. Every send, read and manage is checked against the applied rules, at version ",c,", until it is applied."]}),a.savedAgainstVersion===c?null:(0,b.jsxs)("p",{className:"text-meta text-muted-foreground","data-testid":"network-rules-apply-moved",children:["The settings moved from version ",a.savedAgainstVersion," since the draft was saved."]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(al.Button,{variant:"primary",isLoading:d,disabled:h,"data-testid":"network-rules-apply-open",onClick:()=>{l("apply")},children:"Apply draft"}),(0,b.jsx)(al.Button,{variant:"ghost",isLoading:h,disabled:d,"data-testid":"network-rules-discard-open",onClick:()=>{l("discard")},children:"Discard draft"})]})]}),void 0===e?null:(0,b.jsx)(f.InlineError,{variant:"field",title:"Couldn’t apply the draft",description:e}),void 0===i?null:(0,b.jsx)(f.InlineError,{variant:"field",title:"Couldn’t discard the draft",description:i}),(0,b.jsx)(aw.AlertDialog,{open:null!==k,onOpenChange:a=>{a||m||l(null)},children:null===k?null:(0,b.jsxs)(aw.AlertDialogContent,{"data-testid":`network-rules-${k}-dialog`,className:ax.dialogSurface.phoneSheet,children:[(0,b.jsxs)(aw.AlertDialogHeader,{children:[(0,b.jsx)(aw.AlertDialogTitle,{children:ay[k].title}),(0,b.jsx)(aw.AlertDialogDescription,{children:ay[k].description})]}),(0,b.jsxs)(aw.AlertDialogFooter,{children:[(0,b.jsx)(aw.AlertDialogClose,{render:(0,b.jsx)(al.Button,{disabled:m}),children:"Cancel"}),(0,b.jsx)(al.Button,{variant:"apply"===k?"primary":"destructive",isLoading:m,"data-testid":`network-rules-${k}-confirm`,onClick:()=>{l(null),"apply"===k?g():j()},children:ay[k].action})]})]})})]})}let aA={argo:"argo",owner:"Owner",answer:"Answer",pluginRead:"Connected plugins read",viewerRead:"Viewer reads",installation:"Installation manages",open:"Open"};function aB(a){switch(a.rule){case"argo":return{key:a.rule,name:aA[a.rule],meaning:"argo sends to, reads and manages every ship, and every ship reaches argo.",isOn:a.isOn,turnedBy:"never"};case"owner":return{key:a.rule,name:aA[a.rule],meaning:"A ship’s owner sends to, reads and manages the ships it owns.",isOn:a.isOn,turnedBy:"never"};case"answer":return{key:a.rule,name:aA[a.rule],meaning:"A ship may always answer the sender of a message it received.",isOn:a.isOn,turnedBy:"never"};case"pluginRead":return{key:a.rule,name:aA[a.rule],meaning:"A plugin argo connected reads every ship, whatever the rules.",isOn:a.isOn,turnedBy:"never"};case"viewerRead":return{key:a.rule,name:aA[a.rule],meaning:"The viewer reads every ship.",isOn:a.isOn,turnedBy:"argo"};case"installation":return{key:a.rule,name:aA[a.rule],meaning:"The installation manages person ships and the ships they own, so a leaver is always released.",isOn:a.isOn,turnedBy:"never"};case"open":return{key:a.rule,name:aA[a.rule],meaning:"Every ship may send to, read and manage every ship.",isOn:a.isOn,turnedBy:"rules"}}}function aC({changes:a,error:c,onRetry:d}){let e;return e=void 0!==c?(0,b.jsx)(f.InlineError,{title:"Couldn’t read what the draft changes",description:c,onRetry:d}):void 0===a?(0,b.jsx)(g.LoadingSkeleton,{variant:"detail",rows:3,label:"Loading what the draft changes"}):a.every(({gained:a,lost:b})=>0===a.length&&0===b.length)?(0,b.jsx)("p",{className:"text-meta text-muted-foreground","data-testid":"network-draft-changes-none",children:"The draft changes no reach."}):a.filter(({gained:a,lost:b})=>a.length+b.length>0).map(({verb:a,gained:c,lost:d})=>(0,b.jsxs)("div",{className:"flex flex-col gap-2","data-testid":"network-draft-changes-verb",children:[(0,b.jsx)("h3",{className:"text-meta font-semibold",children:S[a]}),(0,b.jsx)(aD,{title:"Gains",rows:c,testId:"network-draft-gained"}),(0,b.jsx)(aD,{title:"Loses",rows:d,testId:"network-draft-lost"})]},a)),(0,b.jsxs)("section",{"aria-labelledby":"network-draft-changes","data-testid":"network-draft-changes",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsx)("h2",{id:"network-draft-changes",className:"text-body font-semibold",children:"What the draft changes"}),e]})}function aD({title:a,rows:c,testId:d}){return 0===c.length?null:(0,b.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,b.jsxs)("p",{className:"text-meta text-muted-foreground",children:[a," ",c.length," ",1===c.length?"pair":"pairs"]}),(0,b.jsx)("ul",{className:"flex flex-col gap-1",children:c.map(a=>(0,b.jsxs)("li",{"data-testid":d,className:"flex flex-wrap items-center gap-x-2 text-body",children:[(0,b.jsx)("span",{children:a.from}),(0,b.jsx)(m.ArrowRight,{"aria-label":"to",className:"size-4 text-muted-foreground"}),(0,b.jsx)("span",{children:a.to}),(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:a.rule})]},a.key))})]})}var aE=a.i(3512),aF=a.i(51675),aG=a.i(48136),aH=a.i(87005),aI=a.i(74215),aJ=a.i(19721),aK=a.i(38246),aL=a.i(60275);let aM=(0,aJ.default)(async()=>{},{loadableGenerated:{modules:[59068]},ssr:!1});function aN({label:a,picked:c,owners:d,ownerChoices:e,unknown:f,groups:g,max:h,isDisabled:i,problem:j,onAdd:k,onRemove:l,testId:m,popoverTestId:p}){let[q,r]=(0,o.useState)(!1),[s,t]=(0,o.useState)(!1),u=c.length+d.length+f.length,v=new Set(d.map(a=>Y(a.term))),w=[...["*","#"].map(a=>({term:{owner:a},text:$[a]})),...e.map(a=>({term:{owner:a.shipId},text:a.name}))];return(0,b.jsxs)("div",{className:"flex flex-col gap-1","data-testid":m,children:[(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:a}),(0,b.jsxs)("div",{className:"flex min-h-(--size-control-sm) flex-wrap items-center gap-1.5",children:[0===u?(0,b.jsx)("span",{className:"text-body",children:"Every ship"}):null,c.map((a,c)=>(0,b.jsxs)(o.Fragment,{children:[0===c?null:(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:"and"}),(0,b.jsx)(ac.LabelChip,{chip:a,testId:`${m}-value`,..."string"==typeof a.term?{}:{meaning:Z[a.term.value]},...i?{}:{onRemove:()=>{l(a.term)}}})]},Y(a.term))),d.map((a,d)=>(0,b.jsxs)(o.Fragment,{children:[0===d&&0===c.length?null:(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:"and"}),(0,b.jsx)(aO,{owner:a,testId:`${m}-owner`,...!0===i?{}:{onRemove:()=>{l(a.term)}}})]},Y(a.term))),f.map(a=>(0,b.jsxs)("span",{"data-testid":`${m}-unknown`,title:`${Y(a)}: no longer in this fleet`,className:"inline-flex h-5.5 items-center gap-1 rounded-sm border border-tone-attention-border bg-tone-attention-bg px-1.5 text-id text-tone-attention-fg [&_svg]:size-3",children:[(0,b.jsx)(n.CircleAlert,{"aria-hidden":!0}),"string"!=typeof a&&"owner"in a?"A removed owner":"A removed label",!0===i?null:(0,b.jsx)("button",{type:"button","aria-label":"string"!=typeof a&&"owner"in a?"Remove the removed owner":"Remove the removed label",onClick:()=>{l(a)},className:"-mr-1 ml-0.5 inline-flex size-4 items-center justify-center rounded-xs hover:bg-accent focus-visible:outline-2 focus-visible:outline-ring",children:(0,b.jsx)(aI.X,{"aria-hidden":!0})})]},Y(a))),u>=h?null:(0,b.jsxs)(aL.Popover,{open:q,onOpenChange:r,children:[(0,b.jsx)(aL.PopoverTrigger,{render:(0,b.jsx)(al.Button,{type:"button",variant:"ghost",size:"xs",icon:(0,b.jsx)(aE.Plus,{}),disabled:i,"data-testid":`${m}-add`}),children:"Add label"}),(0,b.jsxs)(aL.PopoverContent,{align:"start",sideOffset:6,className:"w-80 p-2","data-testid":p,children:[(0,b.jsx)("span",{className:"block px-2 pt-1 pb-2 text-body font-medium",children:a}),(0,b.jsx)(aM,{groups:g,pickedValueIds:c.flatMap(a=>"string"==typeof a.term?[a.term]:[]),onPick:a=>{r(!1),k(a)},terms:{picked:c.flatMap(a=>"string"==typeof a.term?[]:[a.term]),onPick:a=>{r(!1),k(a)}}}),(0,b.jsxs)("p",{className:"mt-2 flex items-center justify-between gap-2 border-t border-border px-2 pt-2 text-meta text-muted-foreground",children:["All must hold. * is any value, # the same as the other side.",(0,b.jsx)(aK.default,{href:"/labels",className:"font-medium text-foreground hover:underline",children:"Manage labels"})]})]})]}),u>=h?null:(0,b.jsxs)(aL.Popover,{open:s,onOpenChange:t,children:[(0,b.jsx)(aL.PopoverTrigger,{render:(0,b.jsx)(al.Button,{type:"button",variant:"ghost",size:"xs",icon:(0,b.jsx)(aE.Plus,{}),disabled:i,"data-testid":`${m}-owner-add`}),children:"Add owner"}),(0,b.jsxs)(aL.PopoverContent,{align:"start",sideOffset:6,className:"w-72 p-2","data-testid":`${p}-owner`,children:[(0,b.jsxs)("span",{className:"block px-2 pt-1 pb-2 text-body font-medium",children:[a," the owner"]}),(0,b.jsx)("ul",{className:"flex flex-col",children:w.map(a=>(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button",disabled:v.has(Y(a.term)),"data-testid":`${m}-owner-option`,onClick:()=>{t(!1),k(a.term)},className:"flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-body hover:bg-accent focus-visible:outline-2 focus-visible:outline-ring disabled:text-muted-foreground disabled:hover:bg-transparent",children:[(0,b.jsx)(aH.UserRound,{"aria-hidden":!0,className:"size-(--size-icon) shrink-0 text-muted-foreground"}),a.text]})},Y(a.term)))}),(0,b.jsx)("p",{className:"mt-2 border-t border-border px-2 pt-2 text-meta text-muted-foreground",children:"An owner is argo or a person’s ship. # is the same owner as the other side."})]})]})]}),void 0===j?null:(0,b.jsx)("p",{role:"status",className:"text-meta text-tone-attention-fg","data-testid":`${m}-problem`,children:j}),0===f.length?null:(0,b.jsx)("p",{role:"alert",className:"text-meta text-tone-attention-fg",children:"A label or owner here was removed from the fleet: this side matches no ship until you remove it."})]})}function aO({owner:a,onRemove:c,testId:d}){let{owner:e}=a.term,f="*"===e||"#"===e?`${a.text}. ${$[e]}`:`${a.text}: ships it owns`;return(0,b.jsxs)("span",{role:"group","aria-label":f,title:f,"data-testid":d,className:"inline-flex h-5.5 max-w-full min-w-0 shrink-0 items-center gap-1 rounded-sm border border-border bg-secondary px-1.5 font-mono text-id whitespace-nowrap text-foreground [&_svg]:size-3 [&_svg]:shrink-0 [&_svg]:text-muted-foreground",children:[(0,b.jsx)(aH.UserRound,{"aria-hidden":!0}),(0,b.jsxs)("span",{className:"truncate",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:"owner="}),(0,b.jsx)("span",{className:"font-medium",children:a.text.slice(6)})]}),void 0===c?null:(0,b.jsx)("button",{type:"button","aria-label":`Remove ${a.text}`,onClick:c,className:"-mr-1 ml-0.5 inline-flex size-4 items-center justify-center rounded-xs text-muted-foreground hover:bg-accent hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring",children:(0,b.jsx)(aI.X,{"aria-hidden":!0})})]})}let aP=[{side:"from",label:"From ships with"},{side:"to",label:"To ships with"}],aQ=()=>crypto.randomUUID();function aR({rules:a,context:c,limits:d,isSaving:e,saveError:g,savedNote:h,onSave:i}){let[j,k]=(0,o.useState)(()=>T(a,aQ)),l=(0,R.filterGroupsOf)(c),n=c.ships.filter(a=>("operator"===a.kind||"person"===a.kind)&&"retired"!==a.status).map(a=>({shipId:a.id,name:a.name})),p=JSON.stringify(U(j))!==JSON.stringify(a);return(0,b.jsxs)("section",{"aria-labelledby":"network-rules","data-testid":"network-rules",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsx)("h2",{id:"network-rules",className:"text-body font-semibold",children:"Rules"}),"all-to-all"===j.kind?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("p",{className:"text-body","data-testid":"network-rules-state",children:"No rules: every ship may send to, read and manage every ship."}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"With rules, a ship may send to, read or manage another only when a rule of that verb or a built-in rule allows it."}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(al.Button,{variant:p?"secondary":"primary",icon:(0,b.jsx)(aE.Plus,{"aria-hidden":!0}),disabled:e,"data-testid":"network-rules-on",onClick:()=>{k(V(j,!0))},children:"Set rules"}),p?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(al.Button,{variant:"primary",isLoading:e,"data-testid":"network-rules-save",onClick:()=>{i(null)},children:"Save draft"}),(0,b.jsx)(al.Button,{disabled:e,"data-testid":"network-rules-discard",onClick:()=>{k(T(a,aQ))},children:"Discard changes"})]}):null]})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("p",{className:"text-body","data-testid":"network-rules-state",children:0===j.rules.length?"No rule allows anything yet: once saved, only the built-in rules hold.":"A ship may send to, read or manage another only when a rule of that verb or a built-in rule allows it."}),0===j.rules.length?null:(0,b.jsx)("ul",{className:"flex flex-col gap-2",children:j.rules.map((a,f)=>(0,b.jsxs)("li",{"data-testid":"network-rule",className:"flex flex-col gap-2 rounded-md border border-border p-3 sm:flex-row sm:items-start sm:gap-3",children:[aP.map(({side:g,label:h})=>{let i,o=_(a[g],c);return(0,b.jsxs)("div",{className:"flex min-w-0 grow basis-0 items-start gap-3",children:["to"===g?(0,b.jsxs)("div",{className:"flex shrink-0 flex-col gap-1",children:[(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:"Verb"}),(0,b.jsxs)(aG.Select,{items:S,value:a.verb,disabled:e,onValueChange:b=>{var c;F.some(a=>a===b)&&k(W(j,{key:(c={rule:a.key,verb:b}).rule,change:a=>({...a,verb:c.verb})}))},children:[(0,b.jsx)(aG.SelectTrigger,{"aria-label":`Verb of rule ${String(f+1)}`,"data-testid":"network-rule-verb",size:"sm",children:(0,b.jsx)(aG.SelectValue,{})}),(0,b.jsx)(aG.SelectContent,{children:F.map(a=>(0,b.jsx)(aG.SelectItem,{value:a,children:S[a]},a))})]})]}):null,"to"===g?(0,b.jsx)(m.ArrowRight,{"aria-hidden":!0,className:"mt-6 hidden size-(--size-icon) shrink-0 text-muted-foreground sm:block"}):null,(0,b.jsx)(aN,{label:h,picked:o.chips,owners:o.owners,ownerChoices:n,unknown:o.unknown,groups:l,max:d.selectorMax,isDisabled:e,...void 0===(i=function(a,b){let[c]=aa(a,b.side);if(void 0===c)return ab(a,b.side)?"owner=# needs owner=# on the other side: # matches the same owner there.":void 0;let d=b.context.labels.find(a=>a.id===c.labelId)?.key??c.labelId;return`${d}=# needs ${d}=# on the other side: # matches the same value there.`}(a,{side:g,context:c}))?{}:{problem:i},testId:`network-rule-${g}`,popoverTestId:"network-rule-popover",onAdd:b=>{var c;k(W(j,{key:(c={rule:a.key,side:g,term:b,limits:d}).rule,change:a=>{let b=a[c.side];return b.some(a=>X(a,c.term))||b.length>=c.limits.selectorMax?a:{...a,[c.side]:[...b,c.term]}}}))},onRemove:b=>{var c;k(W(j,{key:(c={rule:a.key,side:g,term:b}).rule,change:a=>({...a,[c.side]:a[c.side].filter(a=>!X(a,c.term))})}))}})]},g)}),(0,b.jsx)(al.Button,{variant:"ghost",size:"xs",icon:(0,b.jsx)(aF.Trash2,{"aria-hidden":!0}),disabled:e,"aria-label":`Remove rule ${String(f+1)}`,"data-testid":"network-rule-remove",onClick:()=>{var b;k((b=a.key,"all-to-all"===j.kind?j:{kind:"rules",rules:j.rules.filter(a=>a.key!==b)}))}})]},a.key))}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[j.rules.length>=d.rulesMax?null:(0,b.jsx)(al.Button,{size:"sm",icon:(0,b.jsx)(aE.Plus,{"aria-hidden":!0}),disabled:e,"data-testid":"network-rules-add",onClick:()=>{var a;k((a={newKey:aQ,limits:d},"all-to-all"===j.kind||j.rules.length>=a.limits.rulesMax?j:{kind:"rules",rules:[...j.rules,{key:a.newKey(),verb:"send",from:[],to:[]}]}))},children:"Add rule"}),(0,b.jsxs)("span",{className:"text-meta text-muted-foreground tabular-nums","data-testid":"network-rules-count",children:[j.rules.length," of ",d.rulesMax," rules"]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2 border-t border-border pt-3",children:[(0,b.jsx)(al.Button,{variant:"primary",isLoading:e,disabled:!p||"rules"===j.kind&&j.rules.some(a=>aa(a,"from").length+aa(a,"to").length>0||ab(a,"from")||ab(a,"to")),"data-testid":"network-rules-save",onClick:()=>{i(U(j))},children:"Save draft"}),p?(0,b.jsx)(al.Button,{disabled:e,"data-testid":"network-rules-discard",onClick:()=>{k(T(a,aQ))},children:"Discard changes"}):null,(0,b.jsx)(al.Button,{variant:"ghost",className:"ml-auto",disabled:e,"data-testid":"network-rules-off",onClick:()=>{k(V(j,!1))},children:"Remove all rules"})]})]}),void 0===g?null:(0,b.jsx)(f.InlineError,{variant:"field",title:"Couldn’t save the rules",description:g}),void 0===h||p?null:(0,b.jsx)("p",{role:"status",className:"text-meta text-muted-foreground","data-testid":"network-rules-note",children:h})]})}function aS(a){switch(a.kind){case"ship":return a.name;case"account":return`Account ${a.accountId}`;case"installation":return"The installation"}}var aT=a.i(72872);function aU({refusals:a,error:c,onRetry:d,context:h,now:i}){let j;return j=void 0!==c?(0,b.jsx)(f.InlineError,{title:"Couldn’t read the refusals",description:c,onRetry:d}):void 0===a?(0,b.jsx)(g.LoadingSkeleton,{variant:"list",rows:3,label:"Loading the refusals"}):0===a.length?(0,b.jsx)(e.EmptyState,{variant:"section",title:"No send has been refused."}):(0,b.jsx)("ol",{className:"flex flex-col gap-2","data-testid":"network-refusals-list",children:a.map(a=>(0,b.jsx)(aV,{refusal:a,context:h,now:i},a.id))}),(0,b.jsxs)("section",{"aria-labelledby":"network-refusals","data-testid":"network-refusals",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,b.jsx)("h2",{id:"network-refusals",className:"text-body font-semibold",children:"Refusals"}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:"The sends the rules refused, newest first, with both ships’ labels as they were then. The sender was told only that its send was refused."}),j]})}function aV({refusal:a,context:c,now:d}){let e=new Date(a.at),{recipient:f}=a,g="ship"===f.kind?[f.ship]:f.ships;return(0,b.jsxs)("li",{"data-testid":"network-refusal",className:"flex flex-col gap-2 rounded-md border border-border px-3 py-2.5",children:[(0,b.jsxs)("div",{className:"flex flex-wrap items-baseline justify-between gap-x-3 gap-y-0.5",children:[(0,b.jsx)("p",{className:"text-body font-medium",children:function(a){let{sender:b,recipient:c}=a,d=`${aS(b)} tried to ${"ship"===b.kind?"message":"reach"}`;switch(c.kind){case"ship":return`${d} ${c.ship.name}.`;case"type":return`${d} the type ${c.type}: ${(0,R.listed)(c.ships.map(a=>a.name))}.`}}(a)}),(0,b.jsx)("time",{dateTime:a.at,title:(0,aT.fullDateTime)(e),className:"text-meta text-muted-foreground tabular-nums",children:(0,aT.relativeTime)(e,d)})]}),(0,b.jsxs)("dl",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)(aW,{side:"From",ship:{name:aS(a.sender),labels:"installation"===a.sender.kind?[]:a.sender.labels},context:c}),g.map(a=>(0,b.jsx)(aW,{side:"To",ship:a,context:c},a.id))]}),(0,b.jsx)("p",{className:"text-meta text-muted-foreground",children:`Refused by network settings version ${String(a.settingsVersion)}.`})]})}function aW({side:a,ship:c,context:d}){let e=(0,R.chipsOf)(c,d);return(0,b.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1",children:[(0,b.jsxs)("dt",{className:"text-meta text-muted-foreground",children:[a," ",(0,b.jsx)("span",{className:"font-medium text-foreground",children:c.name})]}),(0,b.jsx)("dd",{className:"flex min-w-0 flex-wrap items-center gap-1",children:0===e.length?(0,b.jsx)("span",{className:"text-meta text-muted-foreground",children:"No labels"}):e.map(a=>(0,b.jsx)(ac.LabelChip,{chip:a,testId:"network-refusal-label"},a.valueId))})]})}var aX=a.i(91003),aY=a.i(38023),aZ=a.i(65563),a$=a.i(1851),a_=a.i(90146),a0=a.i(67336),a1=a.i(10023),a2=a.i(70025),a3=a.i(33217),a4=a.i(37927),a5=a.i(14499);function a6(){let a=(0,a5.useTRPC)(),b=(0,a4.useQueryClient)();return async()=>{await Promise.all([b.invalidateQueries({queryKey:a.fleet.networkRules.queryKey()}),b.invalidateQueries({queryKey:a.fleet.networkRulesDraftChanges.queryKey()}),b.invalidateQueries({queryKey:a.fleet.explainReach.pathKey()})])}}var a7=a.i(68450),a8=a.i(42871);function a9(a,b="applied"){let c=new URLSearchParams([...void 0===a?[]:[["reach",a]],..."draft"===b?[["against","draft"]]:[]]).toString();return""===c?"/network":`/network?${c}`}var ba=a.i(10572);a.s(["NetworkPageFor",0,function({pickedShipId:a,against:h}){var i,j,k,m;let n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E=(0,d.useRouter)(),G=(0,a7.useNow)(),H=(0,aY.useConsoleFrame)(),I=(0,a1.useNeedsAttention)(),J=(0,a0.useLiveFleet)(),K=(0,aZ.useAccess)().canEditNetwork,L=(o=(0,a5.useTRPC)(),(0,a3.useQuery)(o.fleet.networkRules.queryOptions(void 0,{enabled:K}))),M=void 0!==L.data&&null!==L.data.draft,N=M?h:"applied",O=(i=K&&M,p=(0,a5.useTRPC)(),(0,a3.useQuery)(p.fleet.networkRulesDraftChanges.queryOptions(void 0,{enabled:i}))),P=(0,a_.useLabelContext)(),Q=(0,a_.useFleetSnapshot)(),R=(j=K?a:void 0,q=(0,a5.useTRPC)(),(0,a3.useQuery)({...q.fleet.explainReach.queryOptions(void 0===j?a8.skipToken:{fromShipId:j,against:N}),select:an})),S=(r=(0,a5.useTRPC)(),(0,a3.useQuery)(r.fleet.reachRefusals.queryOptions(void 0,{enabled:K}))),T=(s=(0,a5.useTRPC)(),(0,a3.useQuery)(s.fleet.declaredNetworkRules.queryOptions(void 0,{enabled:K}))),U=(t=(0,a5.useTRPC)(),(0,a3.useQuery)(t.fleet.builtInRules.queryOptions(void 0,{enabled:K}))),V=(u=(0,a5.useTRPC)(),v=(0,a4.useQueryClient)(),{setViewerRead:a=>{w.mutate({rule:"viewerRead",isOn:a})},isPending:(w=(0,a2.useMutation)(u.fleet.setBuiltInRule.mutationOptions({onSuccess:()=>v.invalidateQueries({queryKey:u.fleet.builtInRules.queryKey()})}))).isPending,error:w.error?.message}),W=(x=(0,a5.useTRPC)(),y=a6(),(0,a2.useMutation)(x.fleet.saveNetworkRulesDraft.mutationOptions({onSuccess:y}))),X=(z=(0,a5.useTRPC)(),A=(0,a4.useQueryClient)(),B=a6(),(0,a2.useMutation)(z.fleet.applyNetworkRules.mutationOptions({onSuccess:async()=>{await Promise.all([B(),A.invalidateQueries({queryKey:z.fleet.builtInRules.queryKey()})])}}))),Y=(C=(0,a5.useTRPC)(),D=a6(),(0,a2.useMutation)(C.fleet.discardNetworkRulesDraft.mutationOptions({onSuccess:D}))),{networkRulesMax:Z,shipLabelsMax:$}=(0,a$.useConsoleConstants)();if((0,ba.useSignInWhenSessionEnds)([I.error,J.error]),K)if(L.isError)n=(0,b.jsx)(f.InlineError,{title:"Couldn’t read the network",description:L.error.message,onRetry:()=>{L.refetch()}});else if(void 0===L.data||void 0===P||void 0===Q.data)n=(0,b.jsx)(g.LoadingSkeleton,{variant:"detail",rows:4,label:"Loading the network"});else{let c,d,e;n=(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(l,{rows:void 0===U.data?void 0:U.data.map(aB),error:U.error?.message,onRetry:()=>{U.refetch()},isTurning:V.isPending,turnError:V.error,onViewerReadChange:V.setViewerRead}),(0,b.jsx)(aR,{rules:(L.data.draft??L.data.applied).rules,context:P,limits:{rulesMax:Z,selectorMax:$},isSaving:W.isPending,saveError:W.error?.message,savedNote:void 0===W.data?void 0:"Draft saved. Nothing changes until it is applied.",onSave:a=>{W.mutate({rules:a})}},JSON.stringify(L.data.draft??L.data.applied)),null===L.data.draft?null:(0,b.jsx)(aC,{changes:void 0===O.data?void 0:(k=O.data,c=new Map(Q.data.map(a=>[a.id,a.name])),d=a=>a.map(({fromShipId:a,toShipId:b,rule:d})=>({key:`${a}>${b}`,from:c.get(a)??a,to:c.get(b)??b,rule:function(a,b){if("builtIn"in a)return`Built-in: ${aA[a.builtIn]}`;if("rule"in a)return`Rule ${String(a.rule+1)}`;let c="installation"===a.declared.kind?"the installation":b.get(a.declared.shipId)??a.declared.shipId;return`Declared by ${c}, rule ${String(a.index+1)}`}(d,c)})).sort((a,b)=>a.from.localeCompare(b.from)||a.to.localeCompare(b.to)),F.map(a=>({verb:a,gained:d(k[a].gained),lost:d(k[a].lost)}))),error:O.error?.message,onRetry:()=>{O.refetch()}}),(0,b.jsx)(az,{draft:L.data.draft,appliedVersion:L.data.applied.version,isApplying:X.isPending,applyError:X.error?.message,onApply:()=>{X.mutate({version:L.data.applied.version})},isDiscarding:Y.isPending,discardError:Y.error?.message,onDiscard:()=>{Y.mutate()}}),(0,b.jsx)(ae,{declared:void 0===T.data?void 0:(m=T.data,e=new Map(Q.data.map(a=>[a.id,a.name])),m.filter(({rules:a})=>a.length>0).map(({declarer:a,rules:b})=>"installation"===a.kind?{declarerId:"installation",declaredBy:"the installation",rules:b}:{declarerId:a.shipId,declaredBy:e.get(a.shipId)??a.shipId,rules:b}).sort((a,b)=>a.declaredBy.localeCompare(b.declaredBy))),error:T.error?.message,onRetry:()=>{T.refetch()},context:P}),(0,b.jsx)(au,{ships:Q.data.filter(a=>"retired"!==a.status&&"viewer"!==a.kind).map(a=>({id:a.id,name:a.name,isOperator:"operator"===a.kind})).sort((a,b)=>Number(b.isOperator)-Number(a.isOperator)||a.name.localeCompare(b.name)),pickedShipId:a,reachableShipIds:R.data,reachError:R.error?.message,onPick:a=>{E.replace(a9(a,N),{scroll:!1})},against:N,...M?{onAgainstChange:b=>{E.replace(a9(a,b),{scroll:!1})}}:{},onRetry:()=>{R.refetch()}}),(0,b.jsx)(aU,{refusals:S.data,error:S.error?.message,onRetry:()=>{S.refetch()},context:P,now:G})]})}else n=(0,b.jsx)(e.EmptyState,{icon:(0,b.jsx)(c.Network,{"aria-hidden":!0}),title:"Only a session holding fleet:network sees the network rules"});return(0,b.jsx)(aX.ListPage,{...H,title:"Network",description:"Who may send to, read or manage whom. The fleet checks the applied rules on every send; a draft changes nothing until it is applied.",live:J.live,children:n})}],71915)}];
1
+ module.exports=[271915,a=>{"use strict";var b,c=a.i(187924),d=a.i(265913),e=a.i(50944),f=a.i(572131),g=a.i(88191),h=a.i(24173),i=a.i(240392),j=a.i(350808),k=a.i(139353),l=a.i(176166),m=a.i(945469);let n={argo:"You turn it on or off.",rules:"Applying rules turns it off; applying none turns it on again."};function o({rows:a,error:b,onRetry:d,isTurning:e,turnError:f,onViewerReadChange:g}){let h;return h=void 0!==b?(0,c.jsx)(i.InlineError,{title:"Couldn’t read the built-in rules",description:b,onRetry:d}):void 0===a?(0,c.jsx)(j.LoadingSkeleton,{variant:"list",rows:3,label:"Loading the built-in rules"}):(0,c.jsx)("ul",{className:"flex flex-col divide-y divide-border",children:a.map(a=>(0,c.jsxs)("li",{"data-testid":"network-built-in-rule",className:"flex items-start justify-between gap-3 py-2 first:pt-0 last:pb-0",children:[(0,c.jsxs)("div",{className:"flex min-w-0 flex-col gap-0.5",children:[(0,c.jsx)("span",{className:"text-body font-medium","data-testid":"network-built-in-rule-name",children:a.name}),(0,c.jsxs)("span",{className:"text-meta text-muted-foreground",children:[a.meaning," ","never"===a.turnedBy?null:n[a.turnedBy]]})]}),"argo"===a.turnedBy?(0,c.jsx)(m.Switch,{checked:a.isOn,disabled:e,"aria-label":`${a.name}: ${a.isOn?"on":"off"}`,"data-testid":"network-built-in-viewer-read",onCheckedChange:a=>{g(a)}}):(0,c.jsx)(l.Badge,{variant:"outline","data-testid":"network-built-in-rule-state",children:"never"===a.turnedBy?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(k.Lock,{"aria-hidden":!0}),"Never off"]}):a.isOn?"On":"Off"})]},a.key))}),(0,c.jsxs)("section",{"aria-labelledby":"network-built-in","data-testid":"network-built-in",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,c.jsx)("h2",{id:"network-built-in",className:"text-body font-semibold",children:"Built-in rules"}),(0,c.jsx)("p",{className:"text-meta text-muted-foreground",children:"The fleet’s own rules, beside yours and the declared ones. They hold before any rule below."}),h,void 0===f?null:(0,c.jsx)(i.InlineError,{variant:"field",title:"Couldn’t turn the viewer reading",description:f})]})}var p=a.i(818783),q=a.i(793817),r=a.i(156757),s=a.i(902811);let t=r.z.enum(["messages:send","messages:receive","messages:force","messages:resend","fleet:read","fleet:commission","fleet:manage","crew:assign","crew:run","labels:define","labels:assign","fleet:network","fleet:on-behalf","fleet:person","fleet:owner","fleet:explain","fleet:connect","labels:any","fleet:verify","scopes:declare","scopes:grant"]),u=["messages","fleet","crew","labels","scopes"],v="[a-z][a-z0-9-]{0,31}";RegExp(`^${v}$`);let w=RegExp(`^${v}:${v}$`),x=r.z.string().regex(w,"A scope is <namespace>:<action>").refine(a=>{var b;return b=a.slice(0,a.indexOf(":")),!u.some(a=>a===b)||t.safeParse(a).success},"No such core scope");r.z.enum(["messages:resend","fleet:read","fleet:commission","fleet:manage","crew:assign","crew:run","labels:define","labels:assign","fleet:network","fleet:on-behalf","fleet:person","fleet:owner","fleet:explain","fleet:connect","labels:any","fleet:verify"]);let y=r.z.enum(["operator","agent","viewer","person","app","plugin"]);r.z.enum(["agent","person","app","plugin"]),r.z.enum(["DEVICE","CLOUD","SERVER","OTHER"]);let z=r.z.enum(["awaitingCrew","crewed","retired"]);r.z.enum(["ship","type"]),r.z.enum(["pending","received","handed","acknowledged","handled","notHandled","undeliverable","dismissed","abandoned"]),r.z.enum(["FleetInitialised","ShipCommissioned","OwnerSet","OwnerChanged","ShipClaimed","LeaseRevoked","CredentialRevoked","StartingPromptIssued","OperatorPasswordReset","OperatorLoginSet","MessageAccepted","LeasePushed","DeliveryReceived","DeliveryHanded","DeliveryAcknowledged","DeliveryHandled","DeliveryNotHandled","DeliveryOverdue","DeliveryUndeliverable","DeliveryReturned","ShipRetired","DeliveryAbandoned","DeliveryDismissed","ShipRenamed","ShipReported","StatementSet","TurnReported","SignInTicketIssued","FleetLimitsChanged","ViewerSessionStarted","CrewRequested","CrewRequestRemoved","CrewAssigned","CrewStatusChanged","CrewRequestExplained","CrewRequestGivenBack","LabelDefined","LabelValuesChanged","LabelRetired","LabelAssigned","LabelUnassigned","LabelDeleted","WorktreeClearRequested","WorktreeCleared","WorktreeClearRemoved","NetworkRulesSet","NetworkRulesDeclared","NetworkRulesDraftSaved","NetworkRulesDraftDiscarded","NetworkPluginRegistered","NetworkPluginUnregistered","BuiltInRuleChanged","ScopesDeclared","ScopesChanged","PluginConnected","PluginDisconnected","VerifiedFactsSet","VerifiedFactsRemoved"]);let A=r.z.string().min(1).max(128).brand();r.z.object({iss:r.z.string(),aud:(0,s.idSchema)("fleet"),sub:A,org:r.z.string().min(1),scope:r.z.string(),group:r.z.array(r.z.string()),person_ship:(0,s.idSchema)("ship").optional(),argo:r.z.boolean().optional(),iat:r.z.number(),exp:r.z.number()}).transform((a,b)=>{let c=a.scope.split(" ").filter(a=>""!==a),d=r.z.array(x).safeParse(c);return d.success?{issuer:a.iss,fleetId:a.aud,accountId:a.sub,organisationId:a.org,scopes:d.data,groupValues:a.group,personShipId:a.person_ship??null,isArgoAllowed:a.argo??!1,issuedAt:new Date(1e3*a.iat),endsAt:new Date(1e3*a.exp)}:(b.addIssue({code:"custom",message:"scope holds a malformed or unknown scope",path:["scope"]}),r.z.NEVER)}),new TextEncoder;let B=r.z.record(r.z.string(),r.z.json()),C=["crewing","running","restarting","crashed","releasing"],D=r.z.enum(C),E=["none","needsCrew","crewedByHand",...C],F=r.z.enum(E),G=`A reason is one line of at most ${String(200)} characters`;r.z.object({shipId:(0,s.idSchema)("ship"),settings:B}),r.z.object({settingsVersion:r.z.int().min(1)}),r.z.object({shipId:(0,s.idSchema)("ship")}),r.z.strictObject({}),r.z.object({settingsVersion:r.z.int().min(1),requestedAt:r.z.iso.datetime(),assignedTo:r.z.object({id:(0,s.idSchema)("ship"),name:r.z.string()}).nullable(),status:D.nullable(),reason:r.z.string().nullable(),crewedBy:r.z.object({id:(0,s.idSchema)("ship"),name:r.z.string()}).nullable(),attempt:r.z.int().min(0),startedAt:r.z.iso.datetime().nullable(),givenBack:r.z.array(r.z.object({trierarch:r.z.object({id:(0,s.idSchema)("ship"),name:r.z.string()}),settingsVersion:r.z.int().min(1),reason:r.z.string(),givenBackAt:r.z.iso.datetime()}))}).extend({settings:B}),r.z.object({shipId:(0,s.idSchema)("ship"),trierarchShipId:(0,s.idSchema)("ship")}),r.z.strictObject({}),r.z.object({shipId:(0,s.idSchema)("ship"),status:D,attempt:r.z.int().min(0).optional(),startedAt:r.z.iso.datetime().nullable().optional()}),r.z.strictObject({}),r.z.object({shipId:(0,s.idSchema)("ship")}),r.z.strictObject({}),r.z.array(r.z.object({shipId:(0,s.idSchema)("ship"),settings:B,settingsVersion:r.z.int().min(1),requestedAt:r.z.iso.datetime(),status:D.nullable(),isFinal:r.z.boolean(),ownerShipId:(0,s.idSchema)("ship").nullable(),ownerName:r.z.string().nullable()})),r.z.object({shipId:(0,s.idSchema)("ship"),reason:r.z.string().trim().max(200,G).refine(a=>!/[\r\n]/.test(a),G).nullable()}),r.z.strictObject({}),r.z.object({shipId:(0,s.idSchema)("ship"),settingsVersion:r.z.int().min(1),reason:r.z.string().trim().min(1,G).max(200,G).refine(a=>!/[\r\n]/.test(a),G)}),r.z.strictObject({});var H=a.i(77458);function I(a){return r.z.object({cursor:a.optional(),limit:r.z.int().min(1).max(H.PAGE_SIZE_MAX).optional()})}let J=r.z.string(),K=r.z.object({id:(0,s.idSchema)("labelValue"),value:r.z.string()}),L=r.z.object({labelId:(0,s.idSchema)("label"),key:r.z.string(),valueId:(0,s.idSchema)("labelValue"),value:r.z.string()}),M=r.z.enum(["console","claudeCode","codex","trierarch","plugin","other"]),N=r.z.object({query:r.z.string().optional(),name:r.z.string().optional(),status:r.z.array(z).optional(),type:r.z.array(r.z.string()).optional(),shipKind:r.z.array(y).optional(),crewRequest:r.z.array(F).optional(),assignedTo:r.z.array((0,s.idSchema)("ship")).optional(),needsCrew:r.z.enum(["withTrierarchs","withoutTrierarchs"]).optional(),valueIds:r.z.array((0,s.idSchema)("labelValue")).optional(),shipIds:r.z.array((0,s.idSchema)("ship")).optional(),kind:r.z.array(M).optional(),pluginShipIds:r.z.array((0,s.idSchema)("ship")).optional()});r.z.object({filter:N.optional()}).optional(),r.z.object({status:r.z.array(z).optional()}).optional(),r.z.array(r.z.string());let O=r.z.object({column:r.z.enum(["ship","status","report","runsOn","seen","requested"]),direction:r.z.enum(["ascending","descending"])}),P=r.z.object({isEmpty:r.z.boolean(),value:r.z.string(),name:r.z.string(),id:(0,s.idSchema)("ship")});I(r.z.string().max(4096).transform(function(a){try{let b=atob(a.replaceAll("-","+").replaceAll("_","/"));return JSON.parse(new TextDecoder().decode(Uint8Array.from(b,a=>a.charCodeAt(0))))}catch{return}}).pipe(P)).extend({...N.shape,sort:O.optional()}).optional(),r.z.object({key:J,values:r.z.array(J)}),r.z.object({labelId:(0,s.idSchema)("label"),values:r.z.array(K)}),r.z.object({labelId:(0,s.idSchema)("label"),values:r.z.array(J)}),r.z.object({values:r.z.array(K)}),r.z.object({labelId:(0,s.idSchema)("label")}),r.z.object({key:J,value:J}),r.z.object({labelId:(0,s.idSchema)("label"),valueId:(0,s.idSchema)("labelValue")}),r.z.object({shipId:(0,s.idSchema)("ship"),valueId:(0,s.idSchema)("labelValue")}),r.z.object({});let Q=r.z.discriminatedUnion("kind",[r.z.object({kind:r.z.literal("ship"),id:(0,s.idSchema)("ship"),name:r.z.string()}),r.z.object({kind:r.z.literal("installation")})]),R=r.z.object({id:(0,s.idSchema)("label"),key:r.z.string(),values:r.z.array(K),owner:Q});r.z.array(R.extend({shipCount:r.z.int().min(0),values:r.z.array(K.extend({shipCount:r.z.int().min(0)}))}));let S=r.z.union([(0,s.idSchema)("labelValue"),r.z.object({labelId:(0,s.idSchema)("label"),value:r.z.enum(["*","#"])}),r.z.object({owner:r.z.union([(0,s.idSchema)("ship"),r.z.enum(["*","#"])])})]);function T(a){return"string"!=typeof a&&"owner"in a}let U=r.z.array(S),V=["send","read","manage"],W=r.z.object({verb:r.z.enum(V),from:U,to:U}),X=r.z.array(W).nullable();r.z.object({rules:X}),r.z.object({savedAgainstVersion:r.z.int().min(0)}),r.z.object({version:r.z.int().min(0)}),r.z.object({applied:r.z.object({rules:X,version:r.z.int().min(0)}),draft:r.z.object({rules:X,savedAt:r.z.iso.datetime(),savedAgainstVersion:r.z.int().min(0)}).nullable()}),r.z.object({});let Y=["argo","owner","answer","pluginRead","viewerRead","installation","open"];r.z.object({rule:r.z.enum(Y),isOn:r.z.boolean()});let Z=r.z.object({rule:r.z.enum(Y),isOn:r.z.boolean()});r.z.array(Z),r.z.object({version:r.z.int().min(0)}),r.z.object({rules:r.z.array(W)}),r.z.object({rules:r.z.int().min(0)});let $=r.z.discriminatedUnion("kind",[r.z.object({kind:r.z.literal("ship"),shipId:(0,s.idSchema)("ship")}),r.z.object({kind:r.z.literal("installation")})]);r.z.array(r.z.object({declarer:$,rules:r.z.array(W)}));let _=r.z.object({id:(0,s.idSchema)("ship"),name:r.z.string(),labels:r.z.array(L),owner:r.z.object({id:(0,s.idSchema)("ship"),name:r.z.string()}).nullable()}),aa=r.z.discriminatedUnion("kind",[_.extend({kind:r.z.literal("ship")}),r.z.object({kind:r.z.literal("account"),accountId:A,labels:r.z.array(L),personShip:r.z.object({id:(0,s.idSchema)("ship"),name:r.z.string()}).nullable()}),r.z.object({kind:r.z.literal("installation")})]),ab=r.z.object({id:(0,s.idSchema)("reachRefusal"),at:r.z.iso.datetime(),sender:aa,askedBy:_.nullable(),recipient:r.z.discriminatedUnion("kind",[r.z.object({kind:r.z.literal("ship"),ship:_}),r.z.object({kind:r.z.literal("type"),type:r.z.string(),ships:r.z.array(_)})]),verb:r.z.enum(V),settingsVersion:r.z.int().min(1)});I((0,s.idSchema)("reachRefusal")),b=(0,s.idSchema)("reachRefusal"),r.z.object({items:r.z.array(ab),nextCursor:b.nullable()}),r.z.object({fromShipId:(0,s.idSchema)("ship"),toShipId:(0,s.idSchema)("ship").optional(),against:r.z.enum(["applied","draft"]).optional()});let ac=r.z.union([r.z.object({builtIn:r.z.enum(Y)}),r.z.object({rule:r.z.int().min(0)}),r.z.object({declared:$,index:r.z.int().min(0)})]),ad=r.z.array(r.z.object({shipId:(0,s.idSchema)("ship"),rule:ac}));r.z.object({send:ad,read:ad,manage:ad});let ae=r.z.array(r.z.object({fromShipId:(0,s.idSchema)("ship"),toShipId:(0,s.idSchema)("ship"),rule:ac}));r.z.object({send:r.z.object({gained:ae,lost:ae}),read:r.z.object({gained:ae,lost:ae}),manage:r.z.object({gained:ae,lost:ae})});var af=a.i(565230);let ag={send:"May send to",read:"May read",manage:"May manage"};function ah(a,b){return null===a?{kind:"all-to-all"}:{kind:"rules",rules:a.map(a=>({key:b(),verb:a.verb,from:[...a.from],to:[...a.to]}))}}function ai(a){return"all-to-all"===a.kind?null:a.rules.map(a=>({verb:a.verb,from:[...a.from],to:[...a.to]}))}function aj(a,b){return b?"rules"===a.kind?a:{kind:"rules",rules:[]}:{kind:"all-to-all"}}function ak(a,b){return"all-to-all"===a.kind?a:{kind:"rules",rules:a.rules.map(a=>a.key===b.key?b.change(a):a)}}function al(a,b){return am(a)===am(b)}function am(a){return"string"==typeof a?a:T(a)?`owner=${a.owner}`:`${a.labelId}=${a.value}`}let an={"*":"Any value","#":"The same value as the other side"},ao={"*":"Any owner","#":"The same owner as the other side"};function ap(a,b){let c=[],d=[],e=[];for(let f of a){if(T(f)){let a=function(a,b){if("*"===a.owner||"#"===a.owner)return{term:a,text:`owner=${a.owner}`};let c=b.ships.find(b=>b.id===a.owner);return void 0===c?void 0:{term:a,text:`owner=${c.name}`}}(f,b);void 0===a?e.push(f):d.push(a);continue}let a=function(a,b){if("string"==typeof a){let[c]=(0,af.pickedChips)([a],b);return void 0===c?void 0:{labelId:c.labelId,key:c.key,value:c.value,mark:c.mark,ownerName:c.ownerName,term:a}}let c=b.labels.find(b=>b.id===a.labelId);if(void 0===c)return;let d=b.ownerOf.get(c.id);return{labelId:c.id,key:c.key,value:a.value,mark:d?.mark??"ship",ownerName:d?.name??(0,af.labelOwnerName)(c.owner),term:a}}(f,b);void 0===a?e.push(f):c.push(a)}return{chips:c,owners:d,unknown:e}}function aq(a,b){let c=a["from"===b?"to":"from"];return a[b].filter(a=>"string"!=typeof a&&!T(a)&&"#"===a.value&&!c.some(b=>al(b,a)))}function ar(a,b){let c=a=>a.some(a=>T(a)&&"#"===a.owner);return c(a[b])&&!c(a["from"===b?"to":"from"])}var as=a.i(136501);let at=[{side:"from",label:"From ships with"},{side:"to",label:"To ships with"}];function au({declared:a,error:b,onRetry:d,context:e}){let f;return f=void 0!==b?(0,c.jsx)(i.InlineError,{title:"Couldn’t read the declared rules",description:b,onRetry:d}):void 0===a?(0,c.jsx)(j.LoadingSkeleton,{variant:"list",rows:2,label:"Loading the declared rules"}):0===a.length?(0,c.jsx)(h.EmptyState,{variant:"section",title:"Nothing declares rules."}):(0,c.jsx)("ul",{className:"flex flex-col gap-3",children:a.map(a=>(0,c.jsxs)("li",{"data-testid":"network-declared-plugin",className:"flex flex-col gap-2",children:[(0,c.jsxs)("h3",{className:"text-meta font-medium","data-testid":"network-declared-by",children:["Declared by ",a.declaredBy]}),(0,c.jsx)("ul",{className:"flex flex-col gap-2",children:a.rules.map(a=>(0,c.jsx)("li",{"data-testid":"network-declared-rule",className:"flex flex-col gap-2 rounded-md border border-border p-3 sm:flex-row sm:items-start sm:gap-3",children:at.map(({side:b,label:d})=>(0,c.jsxs)("div",{className:"flex min-w-0 grow basis-0 items-start gap-3",children:["to"===b?(0,c.jsx)("span",{className:"mt-6 shrink-0 text-meta text-muted-foreground","data-testid":"network-declared-rule-verb",children:ag[a.verb]}):null,"to"===b?(0,c.jsx)(p.ArrowRight,{"aria-hidden":!0,className:"mt-6 hidden size-(--size-icon) shrink-0 text-muted-foreground sm:block"}):null,(0,c.jsx)(av,{label:d,terms:a[b],context:e,testId:`network-declared-rule-${b}`})]},b))},JSON.stringify(a)))})]},a.declarerId))}),(0,c.jsxs)("section",{"aria-labelledby":"network-declared","data-testid":"network-declared",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,c.jsx)("h2",{id:"network-declared",className:"text-body font-semibold",children:"Declared by plugins and the installation"}),(0,c.jsx)("p",{className:"text-meta text-muted-foreground",children:"Rules plugins and the installation need on the labels they own. The networking plugin adds them to your rules; while every ship may message every ship, they change nothing. Only their declarer changes them, and switching a plugin off withdraws its rules."}),f]})}function av({label:a,terms:b,context:d,testId:e}){let{chips:g,unknown:h}=ap(b,d);return(0,c.jsxs)("div",{className:"flex flex-col gap-1","data-testid":e,children:[(0,c.jsx)("span",{className:"text-meta text-muted-foreground",children:a}),(0,c.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[g.length+h.length===0?(0,c.jsx)("span",{className:"text-body",children:"Every ship"}):null,g.map((a,b)=>(0,c.jsxs)(f.Fragment,{children:[0===b?null:(0,c.jsx)("span",{className:"text-meta text-muted-foreground",children:"and"}),(0,c.jsx)(as.LabelChip,{chip:a,testId:`${e}-value`,..."string"==typeof a.term?{}:{meaning:an[a.term.value]}})]},am(a.term))),h.map(a=>(0,c.jsxs)("span",{"data-testid":`${e}-unknown`,title:`${am(a)}: no longer in this fleet`,className:"inline-flex h-5.5 items-center gap-1 rounded-sm border border-tone-attention-border bg-tone-attention-bg px-1.5 text-id text-tone-attention-fg [&_svg]:size-3",children:[(0,c.jsx)(q.CircleAlert,{"aria-hidden":!0}),"A removed label"]},am(a)))]})]})}var aw=a.i(70840),ax=a.i(752562),ay=a.i(164831);let az={name:"crosshair",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"22",x2:"18",y1:"12",y2:"12",key:"l9bcsi"}],["line",{x1:"6",x2:"2",y1:"12",y2:"12",key:"13hhkx"}],["line",{x1:"12",x2:"12",y1:"6",y2:"2",key:"10w3f3"}],["line",{x1:"12",x2:"12",y1:"22",y2:"18",key:"15g9kq"}]]};az.node;let aA=(0,ay.default)(az);var aB=a.i(233540),aC=a.i(831856),aD=a.i(483556);function aE(a){return a.send.map(a=>a.shipId)}let aF=-Math.PI/2,aG=2*Math.PI;function aH(a){return a.filter(a=>"retired"!==a.status&&"viewer"!==a.kind).map(a=>({id:a.id,name:a.name,isOperator:"operator"===a.kind})).sort((a,b)=>Number(b.isOperator)-Number(a.isOperator)||a.name.localeCompare(b.name))}function aI(a){return Math.round(100*a)/100}var aJ=a.i(78398),aK=a.i(994777),aL=a.i(918691);let aM=["applied","draft"],aN={picked:"picked",reached:"may be messaged",unreached:"out of reach"};function aO({ships:a,search:b,sailingShipCount:d,pickedShipId:e,reachableShipIds:f,reachError:g,onPick:h,onRetry:j,against:k="applied",onAgainstChange:l}){var m;let n=(m=void 0===e?void 0:{pickedShipId:e,reachableShipIds:void 0===g?f:void 0},a.map((b,c)=>{var d,e;let f=aF+aG*c/a.length,g=1===a.length;return{ship:b,x:g?50:aI(50+38*Math.cos(f)),y:g?50:aI(50+38*Math.sin(f)),mark:(d=b.id,void 0===(e=m)?"none":d===e.pickedShipId?"picked":void 0===e.reachableShipIds?"none":e.reachableShipIds.includes(d)?"reached":"unreached")}})),o=n.find(a=>"picked"===a.mark),p=n.filter(a=>"reached"===a.mark);return(0,c.jsxs)("section",{"aria-labelledby":"network-reach","data-testid":"network-reach",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,c.jsx)("h2",{id:"network-reach",className:"text-body font-semibold",children:"Reach"}),(0,c.jsxs)("p",{className:"text-meta text-muted-foreground",children:["draft"===k?"The fleet as the draft would leave it once applied: pick a ship to see which ships the draft lets it message.":"The fleet as it stands now: pick a ship to see which ships the rules let it message."," ","Argo reaches every ship, and every ship reaches argo."]}),void 0===l?null:(0,c.jsx)(aK.Tabs,{value:k,onValueChange:a=>{let b=aM.find(b=>b===a);void 0!==b&&l(b)},children:(0,c.jsxs)(aK.TabsList,{"aria-label":"Explain reach against",children:[(0,c.jsx)(aK.TabsTrigger,{value:"applied","data-testid":"network-reach-applied",children:"Applied rules"}),(0,c.jsx)(aK.TabsTrigger,{value:"draft","data-testid":"network-reach-draft",children:"Draft"})]})}),void 0===b?null:(0,c.jsx)(aJ.Combobox,{options:b.ships.map(a=>({value:a.id,label:a.name})),value:null,onValueChange:a=>{let c=b.ships.find(b=>b.id===a);void 0!==c&&h(c.id)},toQuery:aL.asHandle,onQueryChange:b.onQueryChange,groupLabel:"Ships",emptyText:a=>`No ship matches "${a}". Retired ships are not listed.`,leadingIcon:(0,c.jsx)(aB.Search,{}),placeholder:"Find a ship to pick","aria-label":"Find a ship to pick","data-testid":"network-reach-search"}),(0,c.jsxs)("div",{className:"relative flex flex-wrap gap-2 md:mx-auto md:block md:aspect-square md:w-full md:max-w-xl","data-testid":"network-reach-graph",children:[void 0===o?null:(0,c.jsx)("svg",{"aria-hidden":!0,viewBox:"0 0 100 100",preserveAspectRatio:"none",className:"pointer-events-none absolute inset-0 hidden size-full md:block",children:p.map(a=>(0,c.jsx)("line",{x1:o.x,y1:o.y,x2:a.x,y2:a.y,vectorEffect:"non-scaling-stroke",className:"stroke-muted-foreground",strokeWidth:1.5},a.ship.id))}),n.map(a=>(0,c.jsx)(aP,{node:a,onPick:()=>{h("picked"===a.mark?void 0:a.ship.id)}},a.ship.id))]}),void 0===g?(0,c.jsx)("p",{className:"text-body",role:"status","data-testid":"network-reach-summary",children:function(a,b=a.length){let c=a.find(a=>"picked"===a.mark);if(void 0===c)return"Pick a ship to see which ships it may message.";let d=Math.max(b,a.length)-1,e=a.filter(a=>"reached"===a.mark).map(a=>a.ship.name);return a.every(a=>"picked"===a.mark||"none"===a.mark)?0===d?`${c.ship.name} is the only ship of the fleet.`:`Finding the ships ${c.ship.name} may message…`:e.length===d?`${c.ship.name} may message every other ship (${String(d)}).`:0===e.length?`${c.ship.name} may message no other ship.`:`${c.ship.name} may message ${String(e.length)} of ${String(d)} ships: ${e.join(", ")}.`}(n,d)}):(0,c.jsx)(i.InlineError,{title:"Couldn’t explain this ship’s reach",description:g,onRetry:j})]})}function aP({node:a,onPick:b}){let{ship:d,mark:e}=a;return(0,c.jsx)(aC.Button,{size:"sm",variant:"secondary","aria-pressed":"picked"===e,"aria-label":"none"===e?d.name:`${d.name}, ${aN[e]}`,icon:function(a){switch(a){case"picked":return(0,c.jsx)(aA,{"aria-hidden":!0});case"reached":return(0,c.jsx)(ax.Check,{"aria-hidden":!0});case"unreached":return(0,c.jsx)(aw.Ban,{"aria-hidden":!0});case"none":return}}(e),"data-testid":"network-reach-ship","data-mark":e,style:{left:`${String(a.x)}%`,top:`${String(a.y)}%`},className:(0,aD.classNames)("md:absolute md:-translate-x-1/2 md:-translate-y-1/2","picked"===e&&"bg-accent ring-2 ring-ring","unreached"===e&&"opacity-45"),onClick:b,children:d.name})}var aQ=a.i(659613),aR=a.i(771736);let aS={apply:{title:"Apply the draft?",description:"Every send, read and manage is checked against the draft from now on, and the rules before it are gone.",action:"Apply draft"},discard:{title:"Discard the draft?",description:"The draft is gone; the applied rules stay as they are.",action:"Discard draft"}};function aT({draft:a,appliedVersion:b,isApplying:d,applyError:e,onApply:g,isDiscarding:h,discardError:j,onDiscard:k}){let[l,m]=(0,f.useState)(null),n=d||h;return(0,c.jsxs)("section",{"aria-labelledby":"network-rules-apply","data-testid":"network-rules-apply",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,c.jsx)("h2",{id:"network-rules-apply",className:"text-body font-semibold",children:"Apply"}),null===a?(0,c.jsx)("p",{className:"text-meta text-muted-foreground","data-testid":"network-rules-apply-state",children:"No draft: the applied rules are the ones above. Save a draft to apply it."}):(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)("p",{className:"text-body","data-testid":"network-rules-apply-state",children:["A draft is saved. Every send, read and manage is checked against the applied rules, at version ",b,", until it is applied."]}),a.savedAgainstVersion===b?null:(0,c.jsxs)("p",{className:"text-meta text-muted-foreground","data-testid":"network-rules-apply-moved",children:["The settings moved from version ",a.savedAgainstVersion," since the draft was saved."]}),(0,c.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,c.jsx)(aC.Button,{variant:"primary",isLoading:d,disabled:h,"data-testid":"network-rules-apply-open",onClick:()=>{m("apply")},children:"Apply draft"}),(0,c.jsx)(aC.Button,{variant:"ghost",isLoading:h,disabled:d,"data-testid":"network-rules-discard-open",onClick:()=>{m("discard")},children:"Discard draft"})]})]}),void 0===e?null:(0,c.jsx)(i.InlineError,{variant:"field",title:"Couldn’t apply the draft",description:e}),void 0===j?null:(0,c.jsx)(i.InlineError,{variant:"field",title:"Couldn’t discard the draft",description:j}),(0,c.jsx)(aQ.AlertDialog,{open:null!==l,onOpenChange:a=>{a||n||m(null)},children:null===l?null:(0,c.jsxs)(aQ.AlertDialogContent,{"data-testid":`network-rules-${l}-dialog`,className:aR.dialogSurface.phoneSheet,children:[(0,c.jsxs)(aQ.AlertDialogHeader,{children:[(0,c.jsx)(aQ.AlertDialogTitle,{children:aS[l].title}),(0,c.jsx)(aQ.AlertDialogDescription,{children:aS[l].description})]}),(0,c.jsxs)(aQ.AlertDialogFooter,{children:[(0,c.jsx)(aQ.AlertDialogClose,{render:(0,c.jsx)(aC.Button,{disabled:n}),children:"Cancel"}),(0,c.jsx)(aC.Button,{variant:"apply"===l?"primary":"destructive",isLoading:n,"data-testid":`network-rules-${l}-confirm`,onClick:()=>{m(null),"apply"===l?g():k()},children:aS[l].action})]})]})})]})}let aU={argo:"argo",owner:"Owner",answer:"Answer",pluginRead:"Connected plugins read",viewerRead:"Viewer reads",installation:"Installation manages",open:"Open"};function aV(a){switch(a.rule){case"argo":return{key:a.rule,name:aU[a.rule],meaning:"argo sends to, reads and manages every ship, and every ship reaches argo.",isOn:a.isOn,turnedBy:"never"};case"owner":return{key:a.rule,name:aU[a.rule],meaning:"A ship’s owner sends to, reads and manages the ships it owns.",isOn:a.isOn,turnedBy:"never"};case"answer":return{key:a.rule,name:aU[a.rule],meaning:"A ship may always answer the sender of a message it received.",isOn:a.isOn,turnedBy:"never"};case"pluginRead":return{key:a.rule,name:aU[a.rule],meaning:"A plugin argo connected reads every ship, whatever the rules.",isOn:a.isOn,turnedBy:"never"};case"viewerRead":return{key:a.rule,name:aU[a.rule],meaning:"The viewer reads every ship.",isOn:a.isOn,turnedBy:"argo"};case"installation":return{key:a.rule,name:aU[a.rule],meaning:"The installation manages person ships and the ships they own, so a leaver is always released.",isOn:a.isOn,turnedBy:"never"};case"open":return{key:a.rule,name:aU[a.rule],meaning:"Every ship may send to, read and manage every ship.",isOn:a.isOn,turnedBy:"rules"}}}function aW({changes:a,error:b,onRetry:d}){let e;return e=void 0!==b?(0,c.jsx)(i.InlineError,{title:"Couldn’t read what the draft changes",description:b,onRetry:d}):void 0===a?(0,c.jsx)(j.LoadingSkeleton,{variant:"detail",rows:3,label:"Loading what the draft changes"}):a.every(({gained:a,lost:b})=>0===a.length&&0===b.length)?(0,c.jsx)("p",{className:"text-meta text-muted-foreground","data-testid":"network-draft-changes-none",children:"The draft changes no reach."}):a.filter(({gained:a,lost:b})=>a.length+b.length>0).map(({verb:a,gained:b,lost:d})=>(0,c.jsxs)("div",{className:"flex flex-col gap-2","data-testid":"network-draft-changes-verb",children:[(0,c.jsx)("h3",{className:"text-meta font-semibold",children:ag[a]}),(0,c.jsx)(aX,{title:"Gains",rows:b,testId:"network-draft-gained"}),(0,c.jsx)(aX,{title:"Loses",rows:d,testId:"network-draft-lost"})]},a)),(0,c.jsxs)("section",{"aria-labelledby":"network-draft-changes","data-testid":"network-draft-changes",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,c.jsx)("h2",{id:"network-draft-changes",className:"text-body font-semibold",children:"What the draft changes"}),e]})}function aX({title:a,rows:b,testId:d}){return 0===b.length?null:(0,c.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,c.jsxs)("p",{className:"text-meta text-muted-foreground",children:[a," ",b.length," ",1===b.length?"pair":"pairs"]}),(0,c.jsx)("ul",{className:"flex flex-col gap-1",children:b.map(a=>(0,c.jsxs)("li",{"data-testid":d,className:"flex flex-wrap items-center gap-x-2 text-body",children:[(0,c.jsx)("span",{children:a.from}),(0,c.jsx)(p.ArrowRight,{"aria-label":"to",className:"size-4 text-muted-foreground"}),(0,c.jsx)("span",{children:a.to}),(0,c.jsx)("span",{className:"text-meta text-muted-foreground",children:a.rule})]},a.key))})]})}var aY=a.i(403512),aZ=a.i(951675),a$=a.i(248136),a_=a.i(387005),a0=a.i(474215),a1=a.i(819721),a2=a.i(238246),a3=a.i(860275);let a4=(0,a1.default)(async()=>{},{loadableGenerated:{modules:[259068]},ssr:!1});function a5({label:a,picked:b,owners:d,ownerChoices:e,unknown:g,groups:h,max:i,isDisabled:j,problem:k,onAdd:l,onRemove:m,testId:n,popoverTestId:o}){let[p,r]=(0,f.useState)(!1),[s,t]=(0,f.useState)(!1),u=b.length+d.length+g.length,v=new Set(d.map(a=>am(a.term))),w=[...["*","#"].map(a=>({term:{owner:a},text:ao[a]})),...e.map(a=>({term:{owner:a.shipId},text:a.name}))];return(0,c.jsxs)("div",{className:"flex flex-col gap-1","data-testid":n,children:[(0,c.jsx)("span",{className:"text-meta text-muted-foreground",children:a}),(0,c.jsxs)("div",{className:"flex min-h-(--size-control-sm) flex-wrap items-center gap-1.5",children:[0===u?(0,c.jsx)("span",{className:"text-body",children:"Every ship"}):null,b.map((a,b)=>(0,c.jsxs)(f.Fragment,{children:[0===b?null:(0,c.jsx)("span",{className:"text-meta text-muted-foreground",children:"and"}),(0,c.jsx)(as.LabelChip,{chip:a,testId:`${n}-value`,..."string"==typeof a.term?{}:{meaning:an[a.term.value]},...j?{}:{onRemove:()=>{m(a.term)}}})]},am(a.term))),d.map((a,d)=>(0,c.jsxs)(f.Fragment,{children:[0===d&&0===b.length?null:(0,c.jsx)("span",{className:"text-meta text-muted-foreground",children:"and"}),(0,c.jsx)(a6,{owner:a,testId:`${n}-owner`,...!0===j?{}:{onRemove:()=>{m(a.term)}}})]},am(a.term))),g.map(a=>(0,c.jsxs)("span",{"data-testid":`${n}-unknown`,title:`${am(a)}: no longer in this fleet`,className:"inline-flex h-5.5 items-center gap-1 rounded-sm border border-tone-attention-border bg-tone-attention-bg px-1.5 text-id text-tone-attention-fg [&_svg]:size-3",children:[(0,c.jsx)(q.CircleAlert,{"aria-hidden":!0}),"string"!=typeof a&&"owner"in a?"A removed owner":"A removed label",!0===j?null:(0,c.jsx)("button",{type:"button","aria-label":"string"!=typeof a&&"owner"in a?"Remove the removed owner":"Remove the removed label",onClick:()=>{m(a)},className:"-mr-1 ml-0.5 inline-flex size-4 items-center justify-center rounded-xs hover:bg-accent focus-visible:outline-2 focus-visible:outline-ring",children:(0,c.jsx)(a0.X,{"aria-hidden":!0})})]},am(a))),u>=i?null:(0,c.jsxs)(a3.Popover,{open:p,onOpenChange:r,children:[(0,c.jsx)(a3.PopoverTrigger,{render:(0,c.jsx)(aC.Button,{type:"button",variant:"ghost",size:"xs",icon:(0,c.jsx)(aY.Plus,{}),disabled:j,"data-testid":`${n}-add`}),children:"Add label"}),(0,c.jsxs)(a3.PopoverContent,{align:"start",sideOffset:6,className:"w-80 p-2","data-testid":o,children:[(0,c.jsx)("span",{className:"block px-2 pt-1 pb-2 text-body font-medium",children:a}),(0,c.jsx)(a4,{groups:h,pickedValueIds:b.flatMap(a=>"string"==typeof a.term?[a.term]:[]),onPick:a=>{r(!1),l(a)},terms:{picked:b.flatMap(a=>"string"==typeof a.term?[]:[a.term]),onPick:a=>{r(!1),l(a)}}}),(0,c.jsxs)("p",{className:"mt-2 flex items-center justify-between gap-2 border-t border-border px-2 pt-2 text-meta text-muted-foreground",children:["All must hold. * is any value, # the same as the other side.",(0,c.jsx)(a2.default,{href:"/labels",className:"font-medium text-foreground hover:underline",children:"Manage labels"})]})]})]}),u>=i?null:(0,c.jsxs)(a3.Popover,{open:s,onOpenChange:t,children:[(0,c.jsx)(a3.PopoverTrigger,{render:(0,c.jsx)(aC.Button,{type:"button",variant:"ghost",size:"xs",icon:(0,c.jsx)(aY.Plus,{}),disabled:j,"data-testid":`${n}-owner-add`}),children:"Add owner"}),(0,c.jsxs)(a3.PopoverContent,{align:"start",sideOffset:6,className:"w-72 p-2","data-testid":`${o}-owner`,children:[(0,c.jsxs)("span",{className:"block px-2 pt-1 pb-2 text-body font-medium",children:[a," the owner"]}),(0,c.jsx)("ul",{className:"flex flex-col",children:w.map(a=>(0,c.jsx)("li",{children:(0,c.jsxs)("button",{type:"button",disabled:v.has(am(a.term)),"data-testid":`${n}-owner-option`,onClick:()=>{t(!1),l(a.term)},className:"flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-left text-body hover:bg-accent focus-visible:outline-2 focus-visible:outline-ring disabled:text-muted-foreground disabled:hover:bg-transparent",children:[(0,c.jsx)(a_.UserRound,{"aria-hidden":!0,className:"size-(--size-icon) shrink-0 text-muted-foreground"}),a.text]})},am(a.term)))}),(0,c.jsx)("p",{className:"mt-2 border-t border-border px-2 pt-2 text-meta text-muted-foreground",children:"An owner is argo or a person’s ship. # is the same owner as the other side."})]})]})]}),void 0===k?null:(0,c.jsx)("p",{role:"status",className:"text-meta text-tone-attention-fg","data-testid":`${n}-problem`,children:k}),0===g.length?null:(0,c.jsx)("p",{role:"alert",className:"text-meta text-tone-attention-fg",children:"A label or owner here was removed from the fleet: this side matches no ship until you remove it."})]})}function a6({owner:a,onRemove:b,testId:d}){let{owner:e}=a.term,f="*"===e||"#"===e?`${a.text}. ${ao[e]}`:`${a.text}: ships it owns`;return(0,c.jsxs)("span",{role:"group","aria-label":f,title:f,"data-testid":d,className:"inline-flex h-5.5 max-w-full min-w-0 shrink-0 items-center gap-1 rounded-sm border border-border bg-secondary px-1.5 font-mono text-id whitespace-nowrap text-foreground [&_svg]:size-3 [&_svg]:shrink-0 [&_svg]:text-muted-foreground",children:[(0,c.jsx)(a_.UserRound,{"aria-hidden":!0}),(0,c.jsxs)("span",{className:"truncate",children:[(0,c.jsx)("span",{className:"text-muted-foreground",children:"owner="}),(0,c.jsx)("span",{className:"font-medium",children:a.text.slice(6)})]}),void 0===b?null:(0,c.jsx)("button",{type:"button","aria-label":`Remove ${a.text}`,onClick:b,className:"-mr-1 ml-0.5 inline-flex size-4 items-center justify-center rounded-xs text-muted-foreground hover:bg-accent hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring",children:(0,c.jsx)(a0.X,{"aria-hidden":!0})})]})}let a7=[{side:"from",label:"From ships with"},{side:"to",label:"To ships with"}],a8=()=>crypto.randomUUID();function a9({rules:a,context:b,limits:d,isSaving:e,saveError:g,savedNote:h,onSave:j}){let[k,l]=(0,f.useState)(()=>ah(a,a8)),m=(0,af.filterGroupsOf)(b),n=b.ships.filter(a=>("operator"===a.kind||"person"===a.kind)&&"retired"!==a.status).map(a=>({shipId:a.id,name:a.name})),o=JSON.stringify(ai(k))!==JSON.stringify(a);return(0,c.jsxs)("section",{"aria-labelledby":"network-rules","data-testid":"network-rules",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,c.jsx)("h2",{id:"network-rules",className:"text-body font-semibold",children:"Rules"}),"all-to-all"===k.kind?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("p",{className:"text-body","data-testid":"network-rules-state",children:"No rules: every ship may send to, read and manage every ship."}),(0,c.jsx)("p",{className:"text-meta text-muted-foreground",children:"With rules, a ship may send to, read or manage another only when a rule of that verb or a built-in rule allows it."}),(0,c.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,c.jsx)(aC.Button,{variant:o?"secondary":"primary",icon:(0,c.jsx)(aY.Plus,{"aria-hidden":!0}),disabled:e,"data-testid":"network-rules-on",onClick:()=>{l(aj(k,!0))},children:"Set rules"}),o?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(aC.Button,{variant:"primary",isLoading:e,"data-testid":"network-rules-save",onClick:()=>{j(null)},children:"Save draft"}),(0,c.jsx)(aC.Button,{disabled:e,"data-testid":"network-rules-discard",onClick:()=>{l(ah(a,a8))},children:"Discard changes"})]}):null]})]}):(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("p",{className:"text-body","data-testid":"network-rules-state",children:0===k.rules.length?"No rule allows anything yet: once saved, only the built-in rules hold.":"A ship may send to, read or manage another only when a rule of that verb or a built-in rule allows it."}),0===k.rules.length?null:(0,c.jsx)("ul",{className:"flex flex-col gap-2",children:k.rules.map((a,f)=>(0,c.jsxs)("li",{"data-testid":"network-rule",className:"flex flex-col gap-2 rounded-md border border-border p-3 sm:flex-row sm:items-start sm:gap-3",children:[a7.map(({side:g,label:h})=>{let i,j=ap(a[g],b);return(0,c.jsxs)("div",{className:"flex min-w-0 grow basis-0 items-start gap-3",children:["to"===g?(0,c.jsxs)("div",{className:"flex shrink-0 flex-col gap-1",children:[(0,c.jsx)("span",{className:"text-meta text-muted-foreground",children:"Verb"}),(0,c.jsxs)(a$.Select,{items:ag,value:a.verb,disabled:e,onValueChange:b=>{var c;V.some(a=>a===b)&&l(ak(k,{key:(c={rule:a.key,verb:b}).rule,change:a=>({...a,verb:c.verb})}))},children:[(0,c.jsx)(a$.SelectTrigger,{"aria-label":`Verb of rule ${String(f+1)}`,"data-testid":"network-rule-verb",size:"sm",children:(0,c.jsx)(a$.SelectValue,{})}),(0,c.jsx)(a$.SelectContent,{children:V.map(a=>(0,c.jsx)(a$.SelectItem,{value:a,children:ag[a]},a))})]})]}):null,"to"===g?(0,c.jsx)(p.ArrowRight,{"aria-hidden":!0,className:"mt-6 hidden size-(--size-icon) shrink-0 text-muted-foreground sm:block"}):null,(0,c.jsx)(a5,{label:h,picked:j.chips,owners:j.owners,ownerChoices:n,unknown:j.unknown,groups:m,max:d.selectorMax,isDisabled:e,...void 0===(i=function(a,b){let[c]=aq(a,b.side);if(void 0===c)return ar(a,b.side)?"owner=# needs owner=# on the other side: # matches the same owner there.":void 0;let d=b.context.labels.find(a=>a.id===c.labelId)?.key??c.labelId;return`${d}=# needs ${d}=# on the other side: # matches the same value there.`}(a,{side:g,context:b}))?{}:{problem:i},testId:`network-rule-${g}`,popoverTestId:"network-rule-popover",onAdd:b=>{var c;l(ak(k,{key:(c={rule:a.key,side:g,term:b,limits:d}).rule,change:a=>{let b=a[c.side];return b.some(a=>al(a,c.term))||b.length>=c.limits.selectorMax?a:{...a,[c.side]:[...b,c.term]}}}))},onRemove:b=>{var c;l(ak(k,{key:(c={rule:a.key,side:g,term:b}).rule,change:a=>({...a,[c.side]:a[c.side].filter(a=>!al(a,c.term))})}))}})]},g)}),(0,c.jsx)(aC.Button,{variant:"ghost",size:"xs",icon:(0,c.jsx)(aZ.Trash2,{"aria-hidden":!0}),disabled:e,"aria-label":`Remove rule ${String(f+1)}`,"data-testid":"network-rule-remove",onClick:()=>{var b;l((b=a.key,"all-to-all"===k.kind?k:{kind:"rules",rules:k.rules.filter(a=>a.key!==b)}))}})]},a.key))}),(0,c.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[k.rules.length>=d.rulesMax?null:(0,c.jsx)(aC.Button,{size:"sm",icon:(0,c.jsx)(aY.Plus,{"aria-hidden":!0}),disabled:e,"data-testid":"network-rules-add",onClick:()=>{var a;l((a={newKey:a8,limits:d},"all-to-all"===k.kind||k.rules.length>=a.limits.rulesMax?k:{kind:"rules",rules:[...k.rules,{key:a.newKey(),verb:"send",from:[],to:[]}]}))},children:"Add rule"}),(0,c.jsxs)("span",{className:"text-meta text-muted-foreground tabular-nums","data-testid":"network-rules-count",children:[k.rules.length," of ",d.rulesMax," rules"]})]}),(0,c.jsxs)("div",{className:"flex flex-wrap items-center gap-2 border-t border-border pt-3",children:[(0,c.jsx)(aC.Button,{variant:"primary",isLoading:e,disabled:!o||"rules"===k.kind&&k.rules.some(a=>aq(a,"from").length+aq(a,"to").length>0||ar(a,"from")||ar(a,"to")),"data-testid":"network-rules-save",onClick:()=>{j(ai(k))},children:"Save draft"}),o?(0,c.jsx)(aC.Button,{disabled:e,"data-testid":"network-rules-discard",onClick:()=>{l(ah(a,a8))},children:"Discard changes"}):null,(0,c.jsx)(aC.Button,{variant:"ghost",className:"ml-auto",disabled:e,"data-testid":"network-rules-off",onClick:()=>{l(aj(k,!1))},children:"Remove all rules"})]})]}),void 0===g?null:(0,c.jsx)(i.InlineError,{variant:"field",title:"Couldn’t save the rules",description:g}),void 0===h||o?null:(0,c.jsx)("p",{role:"status",className:"text-meta text-muted-foreground","data-testid":"network-rules-note",children:h})]})}var ba=a.i(597024);let bb={name:"file-up",size:24,node:[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M12 12v6",key:"3ahymv"}],["path",{d:"m15 15-3-3-3 3",key:"15xj92"}]]};bb.node;let bc=(0,ay.default)(bb);var bd=a.i(145098),be=a.i(172309),bf=a.i(132865);function bg(a){return"label"in a?`${a.label}=${a.value}`:`owner=${a.owner}`}function bh(a){return"ship"===a.kind?`ship:${a.name}`:`${a.kind}:${a.key}`}var bi=a.i(37809);function bj(a){switch(a.kind){case"definer":return`${a.key} is defined by ${a.fleetDefiner} here, by ${a.fileDefiner} in the file`;case"values":return`${a.key} has ${a.fleetValues.join(", ")} here; the file gives ${a.fileValues.join(", ")}`;case"ship":return`No active ship is named ${a.name}`}}function bk({difference:a,choice:b,ships:d,onShipQueryChange:e,isDisabled:f,onChange:g}){let h=bh(a),i=`network-import-difference-${h.replace(":","-")}`;return(0,c.jsxs)("fieldset",{className:"flex flex-col gap-2 rounded-lg border border-border bg-card p-3","data-testid":"network-import-difference",children:[(0,c.jsx)("legend",{className:"sr-only",children:bj(a)}),(0,c.jsx)("p",{className:"text-body font-medium","aria-hidden":!0,children:bj(a)}),(0,c.jsx)(bi.RadioGroup,{value:b?.way,disabled:f,onValueChange:b=>{g({difference:a,way:b})},children:a.ways.map(b=>({way:b,text:function(a,b){switch(a.kind){case"definer":return"useExisting"===b?`Use the label ${a.key} as it is, defined by ${a.fleetDefiner}`:`Drop the rules on ${a.key}`;case"values":return"useExisting"===b?`Use the label ${a.key} as it is: it has every value the rules name`:`Drop the rules naming ${a.missingValues.map(b=>`${a.key}=${b}`).join(", ")}`;case"ship":return"pickShip"===b?`Pick an active ship for ${a.name}`:`Drop the rules naming owner=${a.name}`}}(a,b)})).map(({way:a,text:b})=>(0,c.jsxs)("div",{className:"flex items-start gap-2",children:[(0,c.jsx)(bi.RadioGroupItem,{id:`${i}-${a}`,value:a,className:"mt-0.5","data-testid":`network-import-way-${a}`}),(0,c.jsx)("label",{htmlFor:`${i}-${a}`,className:"min-w-0 grow cursor-pointer text-body",children:b})]},a))}),b?.way==="pickShip"?(0,c.jsx)(aJ.Combobox,{options:d.map(a=>({value:a.id,label:a.name})),value:b.shipId??null,onValueChange:b=>{let c=d.find(a=>a.id===b);g({difference:a,way:"pickShip",...void 0===c?{}:{shipId:c.id}})},onQueryChange:e,groupLabel:"Active ships",placeholder:"Type a ship name","aria-label":`The ship for ${"ship"===a.kind?a.name:""}`,"data-testid":"network-import-pick-ship"}):null]})}let bl=["Attach or paste","Check","Overview","Import"];function bm({current:a}){return(0,c.jsx)("ol",{className:"flex flex-wrap gap-x-3 gap-y-1 text-meta","aria-label":"Import steps","data-testid":"network-import-steps",children:bl.map((b,d)=>(0,c.jsxs)("li",{"aria-current":d===a?"step":void 0,className:d===a?"font-semibold text-foreground":"text-muted-foreground",children:[d+1,". ",b]},b))})}function bn(a){let{checked:b,isChecking:d,checkError:e,onCheck:g,onFileChange:h,ships:j,onShipQueryChange:k,isImporting:l,importError:m,onImport:n}=a,[o,p]=(0,f.useState)(""),[q,r]=(0,f.useState)([]),s=j.find(a=>a.isOperator),[t,u]=(0,f.useState)(s?.id),[v,w]=(0,f.useState)(!1),x=d||l,y=a=>{p(a),r([]),w(!1),h()};if(void 0===b)return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(bm,{current:+!!d}),(0,c.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,c.jsx)(bd.Label,{htmlFor:"network-import-attach",children:"Attach the file"}),(0,c.jsx)("input",{id:"network-import-attach",type:"file",accept:"application/json,.json",disabled:x,"data-testid":"network-import-attach",className:"text-body file:mr-3 file:rounded-md file:border file:border-border file:bg-card file:px-3 file:py-1.5",onChange:a=>{let b=a.target.files?.[0];void 0!==b&&b.text().then(y)}})]}),(0,c.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,c.jsx)(bd.Label,{htmlFor:"network-import-paste",children:"Or paste it"}),(0,c.jsx)(be.Textarea,{id:"network-import-paste",isMono:!0,rows:8,value:o,disabled:x,placeholder:'{ "format": "aeolus.network-rules", ... }',"data-testid":"network-import-paste",onChange:a=>{y(a.target.value)}})]}),void 0===e?null:(0,c.jsx)(i.InlineError,{title:"The file doesn’t check",description:`${e}. Nothing changed: fix the file and check it again.`}),(0,c.jsxs)(bf.DialogFooter,{children:[(0,c.jsx)(bf.DialogClose,{render:(0,c.jsx)(aC.Button,{type:"button",disabled:x}),children:"Cancel"}),(0,c.jsx)(aC.Button,{variant:"primary",isLoading:d,disabled:""===o.trim()||x,"data-testid":"network-import-check",onClick:()=>{g(o)},children:d?"Checking…":"Check file"})]})]});let{file:z,newLabels:A,differences:B}=b,C=z.rules??[],D=B.every(a=>{let b=q.find(b=>bh(b.difference)===bh(a));return void 0!==b&&("pickShip"!==b.way||void 0!==b.shipId)}),E=j.find(a=>a.id===t),F=D&&(0===A.length||void 0!==E)&&!x,G=q.flatMap(a=>(function(a){let{difference:b,way:c}=a;return"ship"===b.kind?"pickShip"===c?void 0===a.shipId?void 0:{kind:"ship",name:b.name,way:c,shipId:a.shipId}:{kind:"ship",name:b.name,way:"dropRules"}:{kind:b.kind,key:b.key,way:"useExisting"===c?"useExisting":"dropRules"}})(a)??[]);return v?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(bm,{current:3}),(0,c.jsx)(bf.DialogHeader,{children:(0,c.jsx)(bf.DialogTitle,{children:"Import into the draft?"})}),(0,c.jsxs)("ul",{className:"flex list-disc flex-col gap-1 pl-5 text-body","data-testid":"network-import-consequences",children:[(0,c.jsx)("li",{children:null===z.rules?"The draft becomes all-to-all, every ship reaching every ship.":q.some(a=>"dropRules"===a.way)?`The draft is replaced by the file’s ${String(C.length)} rules, less the ones you chose to drop.`:`The draft is replaced by the file’s ${String(C.length)} rules.`}),0===A.length?null:(0,c.jsxs)("li",{children:[A.join(", ")," ",1===A.length?"is":"are"," defined for ",E?.name??"argo","."]}),(0,c.jsx)("li",{children:"Nothing is in force until you apply the draft."})]}),void 0===m?null:(0,c.jsx)(i.InlineError,{variant:"section",title:"Couldn’t import the file",description:`${m}. Nothing was written.`,onRetry:()=>{w(!1),g(o)}}),(0,c.jsxs)(bf.DialogFooter,{children:[(0,c.jsx)(aC.Button,{type:"button",disabled:x,onClick:()=>{w(!1)},children:"Back"}),(0,c.jsx)(aC.Button,{variant:"primary",isLoading:l,disabled:x,"data-testid":"network-import-confirm",onClick:()=>{n({file:o,resolutions:G,...0===A.length||void 0===E||E.isOperator?{}:{definerShipId:E.id}})},children:l?"Importing…":"Import into the draft"})]})]}):(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(bm,{current:2}),(0,c.jsxs)("p",{className:"flex items-start gap-2 text-body",role:"status","data-testid":"network-import-checked",children:[(0,c.jsx)(ba.CircleCheck,{"aria-hidden":!0,className:"mt-0.5 size-(--size-icon-sm) shrink-0 text-tone-ok-fg"}),(0,c.jsxs)("span",{children:["The file checks: ",null===z.rules?"all-to-all, no rules":`${String(C.length)} rules`," and ",z.labels.length," labels, from ",z.fleet.name," at rules version ",z.rulesVersion,", exported"," ",new Date(z.exportedAt).toLocaleString(),"."]})]}),0===B.length?null:(0,c.jsxs)("section",{"aria-labelledby":"network-import-differences",className:"flex flex-col gap-2","data-testid":"network-import-differences",children:[(0,c.jsx)("h3",{id:"network-import-differences",className:"text-body font-semibold",children:1===B.length?"1 difference to resolve":`${String(B.length)} differences to resolve`}),B.map(a=>{let b=bh(a);return(0,c.jsx)(bk,{difference:a,choice:q.find(a=>bh(a.difference)===b),ships:j,onShipQueryChange:k,isDisabled:x,onChange:a=>{r([...q.filter(a=>bh(a.difference)!==b),a])}},b)})]}),0===A.length?null:(0,c.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,c.jsxs)(bd.Label,{htmlFor:"network-import-definer",children:["Define ",A.join(", ")," for"]}),(0,c.jsx)(aJ.Combobox,{id:"network-import-definer",options:j.map(a=>({value:a.id,label:a.name})),value:t??null,onValueChange:a=>{u(j.find(b=>b.id===a)?.id)},onQueryChange:k,groupLabel:"Active ships",placeholder:"Type a ship name","data-testid":"network-import-definer"}),(0,c.jsx)("p",{className:"text-meta text-muted-foreground",children:"argo never retires, so its labels never go. Another ship must be within your manage reach."})]}),(0,c.jsxs)("section",{"aria-labelledby":"network-import-rules",className:"flex flex-col gap-1.5",children:[(0,c.jsx)("h3",{id:"network-import-rules",className:"text-body font-semibold",children:"Rules in the file"}),0===C.length?(0,c.jsx)("p",{className:"text-meta text-muted-foreground",children:null===z.rules?"None: all-to-all.":"None: only the built-in and declared rules."}):(0,c.jsx)("ol",{className:"flex max-h-64 flex-col gap-1 overflow-y-auto font-mono text-code","data-testid":"network-import-rules",children:C.map((a,b)=>{let c,{verb:d,from:e,to:f}=(c=a=>0===a.length?["every ship"]:a.map(bg),{verb:a.verb,from:c(a.from),to:c(a.to)});return{place:b+1,line:`${d}: ${e.join(" ")} → ${f.join(" ")}`}}).map(({place:a,line:b})=>(0,c.jsx)("li",{children:b},a))})]}),(0,c.jsxs)(bf.DialogFooter,{className:"items-center",children:[(0,c.jsx)("span",{className:"mr-auto text-meta text-muted-foreground",children:D?null:"Resolve every difference to import."}),(0,c.jsx)(aC.Button,{type:"button",disabled:x,onClick:()=>{y(o)},children:"Back"}),(0,c.jsx)(aC.Button,{variant:"primary",disabled:!F,"data-testid":"network-import-open-confirm",onClick:()=>{w(!0)},children:"Import…"})]})]})}function bo(a){let{isOpen:b,onOpenChange:d,isChecking:e,isImporting:f}=a;return(0,c.jsx)(bf.Dialog,{open:b,onOpenChange:a=>{e||f||d(a)},children:(0,c.jsxs)(bf.DialogContent,{size:"md","data-testid":"network-import-dialog",className:aR.dialogSurface.phoneFullScreen,children:[(0,c.jsxs)(bf.DialogHeader,{children:[(0,c.jsxs)(bf.DialogTitle,{children:[(0,c.jsx)(bc,{"aria-hidden":!0,className:"mr-2 inline size-(--size-icon-sm)"}),"Import network rules"]}),(0,c.jsx)(bf.DialogDescription,{children:"Rules exported from this fleet or another land in the draft; nothing is in force until you apply it."})]}),b?(0,c.jsx)(bn,{...a}):null]})})}let bp={name:"file-down",size:24,node:[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M12 18v-6",key:"17g6i2"}],["path",{d:"m9 15 3 3 3-3",key:"1npd3o"}]]};bp.node;let bq=(0,ay.default)(bp);function br({isExporting:a,exportError:b,onExport:d,exported:e,canImport:f,onImport:g}){return(0,c.jsxs)("section",{"aria-labelledby":"network-rules-file","data-testid":"network-rules-file",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,c.jsx)("h2",{id:"network-rules-file",className:"text-body font-semibold",children:"Export and import"}),(0,c.jsx)("p",{className:"text-meta text-muted-foreground",children:"Export writes the applied rules and the labels they use as one file, by name. Import brings a file from this fleet or another into the draft."}),(0,c.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,c.jsx)(aC.Button,{icon:(0,c.jsx)(bq,{}),isLoading:a,"data-testid":"network-rules-export",onClick:d,children:a?"Exporting…":"Export"}),f?(0,c.jsx)(aC.Button,{icon:(0,c.jsx)(bc,{}),disabled:a,"data-testid":"network-rules-import",onClick:g,children:"Import…"}):null]}),void 0===e||0===e.leftOut.length?null:(0,c.jsxs)("div",{role:"status","data-testid":"network-rules-left-out",className:"flex flex-col gap-1 rounded-lg border border-tone-waiting-border bg-tone-waiting-bg px-3.5 py-2.5 text-meta text-tone-waiting-fg",children:[(0,c.jsxs)("p",{children:[e.name," leaves out ",1===e.leftOut.length?"1 applied rule":`${String(e.leftOut.length)} applied rules`,", as each matches no ship:"]}),(0,c.jsx)("ul",{className:"list-disc pl-5",children:e.leftOut.map(({rule:a,reason:b})=>(0,c.jsxs)("li",{children:["rule ",a," ",b]},a))})]}),void 0===b?null:(0,c.jsx)(i.InlineError,{variant:"field",title:"Couldn’t export the rules",description:`${b}. Nothing was downloaded.`})]})}function bs(a){switch(a.kind){case"ship":return a.name;case"account":return`Account ${a.accountId}`;case"installation":return"The installation"}}var bt=a.i(872872);function bu({refusals:a,error:b,onRetry:d,more:e,context:f,now:g}){let k;return k=void 0!==b?(0,c.jsx)(i.InlineError,{title:"Couldn’t read the refusals",description:b,onRetry:d}):void 0===a?(0,c.jsx)(j.LoadingSkeleton,{variant:"list",rows:3,label:"Loading the refusals"}):0!==a.length||e?(0,c.jsx)("ol",{className:"flex flex-col gap-2","data-testid":"network-refusals-list",children:a.map(a=>(0,c.jsx)(bv,{refusal:a,context:f,now:g},a.id))}):(0,c.jsx)(h.EmptyState,{variant:"section",title:"No send has been refused."}),(0,c.jsxs)("section",{"aria-labelledby":"network-refusals","data-testid":"network-refusals",className:"flex flex-col gap-3 rounded-lg border border-border bg-card p-4",children:[(0,c.jsx)("h2",{id:"network-refusals",className:"text-body font-semibold",children:"Refusals"}),(0,c.jsx)("p",{className:"text-meta text-muted-foreground",children:"The sends the rules refused, newest first, with both ships’ labels as they were then. The sender was told only that its send was refused."}),k,e]})}function bv({refusal:a,context:b,now:d}){let e=new Date(a.at),{recipient:f}=a,g="ship"===f.kind?[f.ship]:f.ships;return(0,c.jsxs)("li",{"data-testid":"network-refusal",className:"flex flex-col gap-2 rounded-md border border-border px-3 py-2.5",children:[(0,c.jsxs)("div",{className:"flex flex-wrap items-baseline justify-between gap-x-3 gap-y-0.5",children:[(0,c.jsx)("p",{className:"text-body font-medium",children:function(a){let{sender:b,recipient:c}=a,d=`${bs(b)} tried to ${"ship"===b.kind?"message":"reach"}`;switch(c.kind){case"ship":return`${d} ${c.ship.name}.`;case"type":return`${d} the type ${c.type}: ${(0,af.listed)(c.ships.map(a=>a.name))}.`}}(a)}),(0,c.jsx)("time",{dateTime:a.at,title:(0,bt.fullDateTime)(e),className:"text-meta text-muted-foreground tabular-nums",children:(0,bt.relativeTime)(e,d)})]}),(0,c.jsxs)("dl",{className:"flex flex-col gap-1.5",children:[(0,c.jsx)(bw,{side:"From",ship:{name:bs(a.sender),labels:"installation"===a.sender.kind?[]:a.sender.labels},context:b}),g.map(a=>(0,c.jsx)(bw,{side:"To",ship:a,context:b},a.id))]}),(0,c.jsx)("p",{className:"text-meta text-muted-foreground",children:`Refused by network settings version ${String(a.settingsVersion)}.`})]})}function bw({side:a,ship:b,context:d}){let e=(0,af.chipsOf)(b,d);return(0,c.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-x-2 gap-y-1",children:[(0,c.jsxs)("dt",{className:"text-meta text-muted-foreground",children:[a," ",(0,c.jsx)("span",{className:"font-medium text-foreground",children:b.name})]}),(0,c.jsx)("dd",{className:"flex min-w-0 flex-wrap items-center gap-1",children:0===e.length?(0,c.jsx)("span",{className:"text-meta text-muted-foreground",children:"No labels"}):e.map(a=>(0,c.jsx)(as.LabelChip,{chip:a,testId:"network-refusal-label"},a.valueId))})]})}var bx=a.i(591003),by=a.i(38023),bz=a.i(565563),bA=a.i(301851),bB=a.i(190146),bC=a.i(447582),bD=a.i(433217),bE=a.i(514499),bF=a.i(815393),bG=a.i(281418),bH=a.i(167336),bI=a.i(210023),bJ=a.i(370025),bK=a.i(937927);function bL(){let a=(0,bE.useTRPC)(),b=(0,bK.useQueryClient)();return async()=>{await Promise.all([b.invalidateQueries({queryKey:a.fleet.networkRules.queryKey()}),b.invalidateQueries({queryKey:a.fleet.networkRulesDraftChanges.queryKey()}),b.invalidateQueries({queryKey:a.fleet.explainReach.pathKey()})])}}var bM=a.i(804049),bN=a.i(442871);function bO(a,b="applied"){let c=new URLSearchParams([...void 0===a?[]:[["reach",a]],..."draft"===b?[["against","draft"]]:[]]).toString();return""===c?"/network":`/network?${c}`}var bP=a.i(726112),bQ=a.i(328422),bR=a.i(770534),bS=a.i(110572);a.s(["NetworkPageFor",0,function({pickedShipId:a,against:b}){var k,l,m,n;let p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,I,J,K,L,M,N,O,P,Q=(0,e.useRouter)(),R=(0,bM.useNow)(),S=(0,by.useConsoleFrame)(),U=(0,bI.useNeedsAttention)(),W=(0,bH.useLiveFleet)(),X=(0,bz.useAccess)(),Y=X.canEditNetwork,Z=(q=(0,bE.useTRPC)(),(0,bD.useQuery)(q.fleet.networkRules.queryOptions(void 0,{enabled:Y}))),$=void 0!==Z.data&&null!==Z.data.draft,_=$?b:"applied",aa=(k=Y&&$,r=(0,bE.useTRPC)(),(0,bD.useQuery)(r.fleet.networkRulesDraftChanges.queryOptions(void 0,{enabled:k}))),ab=(0,bB.useLabelContext)(),ac=(s=(0,bE.useTRPC)(),t=(0,bD.useQuery)(s.fleet.list.queryOptions({shipKind:["operator","person"],limit:H.PAGE_SIZE_MAX},{enabled:Y})),t.data?.items.filter(bC.isInReadReach)),ad=(l=Y?a:void 0,u=(0,bE.useTRPC)(),(0,bD.useQuery)({...u.fleet.explainReach.queryOptions(void 0===l?bN.skipToken:{fromShipId:l,against:_}),select:aE})),ae=(v=(0,bE.useTRPC)(),(0,bQ.pagedListOf)((0,bP.useInfiniteQuery)(v.fleet.reachRefusals.infiniteQueryOptions({limit:bQ.CONSOLE_PAGE_SIZE},{enabled:Y,getNextPageParam:bQ.nextCursorOf})))),af=(w=(0,bE.useTRPC)(),(0,bD.useQuery)(w.fleet.declaredNetworkRules.queryOptions(void 0,{enabled:Y}))),ag=(0,bF.useListedShips)(function(a){let b=a.rules.flatMap(a=>[...a.from,...a.to].flatMap(a=>T(a)&&"*"!==a.owner&&"#"!==a.owner?[a.owner]:[])),c=a.declarers.flatMap(a=>"ship"===a.kind?[a.shipId]:[]),{draftChanges:d}=a;return[...new Set([...b,...c,...void 0===d?[]:V.flatMap(a=>[...d[a].gained,...d[a].lost]).flatMap(a=>[a.fromShipId,a.toShipId]),...void 0===a.pickedShipId?[]:[a.pickedShipId,...a.reachableShipIds??[]]])]}({rules:[...Z.data?.applied.rules??[],...Z.data?.draft?.rules??[]],declarers:af.data?.map(a=>a.declarer)??[],...void 0===aa.data?{}:{draftChanges:aa.data},...void 0===a?{}:{pickedShipId:a},...void 0===ad.data?{}:{reachableShipIds:ad.data}})),ah=[...ag?.values()??[]],ai=(x=(0,bE.useTRPC)(),y=(0,bD.useQuery)(x.fleet.shipCounts.queryOptions()),y.data?.filter(a=>"viewer"!==a.kind).reduce((a,b)=>a+b.active,0)),[aj,ak]=(0,f.useState)(""),al=(0,bG.useShipSearch)("",Y)??[],am=(0,bG.useShipSearch)(aj,Y)??[],an=aH([...new Map([...al.slice(0,1),...am].map(a=>[a.id,a])).values()]),ao=(z=(0,bE.useTRPC)(),(0,bD.useQuery)(z.fleet.builtInRules.queryOptions(void 0,{enabled:Y}))),ap=(A=(0,bE.useTRPC)(),B=(0,bK.useQueryClient)(),{setViewerRead:a=>{C.mutate({rule:"viewerRead",isOn:a})},isPending:(C=(0,bJ.useMutation)(A.fleet.setBuiltInRule.mutationOptions({onSuccess:()=>B.invalidateQueries({queryKey:A.fleet.builtInRules.queryKey()})}))).isPending,error:C.error?.message}),aq=(D=(0,bE.useTRPC)(),E=bL(),(0,bJ.useMutation)(D.fleet.saveNetworkRulesDraft.mutationOptions({onSuccess:E}))),ar=(F=(0,bE.useTRPC)(),G=(0,bK.useQueryClient)(),I=bL(),(0,bJ.useMutation)(F.fleet.applyNetworkRules.mutationOptions({onSuccess:async()=>{await Promise.all([I(),G.invalidateQueries({queryKey:F.fleet.builtInRules.queryKey()})])}}))),as=(J=(0,bE.useTRPC)(),K=bL(),(0,bJ.useMutation)(J.fleet.discardNetworkRulesDraft.mutationOptions({onSuccess:K}))),at=(L=(0,bE.useTRPCClient)(),(0,bJ.useMutation)({mutationFn:async()=>{var a;let b,c,d,{file:e,leftOut:f}=await L.fleet.exportNetworkRules.query(),g=(b=e.fleet.name.toLowerCase().replaceAll(/[^a-z0-9]+/g,"-").replaceAll(/^-|-$/g,""),`network-rules-${b}-v${String(e.rulesVersion)}.json`);return a=`${JSON.stringify(e,null,2)}
2
+ `,c=URL.createObjectURL(new Blob([a],{type:"application/json"})),(d=document.createElement("a")).href=c,d.download=g,d.click(),URL.revokeObjectURL(c),{name:g,leftOut:f}}})),av=(M=(0,bE.useTRPC)(),(0,bJ.useMutation)(M.fleet.checkNetworkRulesFile.mutationOptions())),aw=(N=(0,bE.useTRPC)(),O=(0,bK.useQueryClient)(),P=bL(),(0,bJ.useMutation)(N.fleet.importNetworkRules.mutationOptions({onSuccess:async()=>{await Promise.all([P(),O.invalidateQueries({queryKey:N.fleet.labels.queryKey()})])}}))),[ax,ay]=(0,f.useState)(!1),az=()=>{av.reset(),aw.reset()},{networkRulesMax:aA,shipLabelsMax:aB}=(0,bA.useConsoleConstants)();if((0,bS.useSignInWhenSessionEnds)([U.error,W.error]),Y)if(Z.isError)p=(0,c.jsx)(i.InlineError,{title:"Couldn’t read the network",description:Z.error.message,onRetry:()=>{Z.refetch()}});else if(void 0===Z.data||void 0===ab||void 0===ac)p=(0,c.jsx)(j.LoadingSkeleton,{variant:"detail",rows:4,label:"Loading the network"});else{let b,d,e,f={...ab,ships:[...ah,...ac]};p=(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(o,{rows:void 0===ao.data?void 0:ao.data.map(aV),error:ao.error?.message,onRetry:()=>{ao.refetch()},isTurning:ap.isPending,turnError:ap.error,onViewerReadChange:ap.setViewerRead}),(0,c.jsx)(a9,{rules:(Z.data.draft??Z.data.applied).rules,context:f,limits:{rulesMax:aA,selectorMax:aB},isSaving:aq.isPending,saveError:aq.error?.message,savedNote:void 0===aq.data?void 0:"Draft saved. Nothing changes until it is applied.",onSave:a=>{aq.mutate({rules:a})}},JSON.stringify(Z.data.draft??Z.data.applied)),null===Z.data.draft?null:(0,c.jsx)(aW,{changes:void 0===aa.data?void 0:(m=aa.data,b=new Map(ah.map(a=>[a.id,a.name])),d=a=>a.map(({fromShipId:a,toShipId:c,rule:d})=>({key:`${a}>${c}`,from:b.get(a)??a,to:b.get(c)??c,rule:function(a,b){if("builtIn"in a)return`Built-in: ${aU[a.builtIn]}`;if("rule"in a)return`Rule ${String(a.rule+1)}`;let c="installation"===a.declared.kind?"the installation":b.get(a.declared.shipId)??a.declared.shipId;return`Declared by ${c}, rule ${String(a.index+1)}`}(d,b)})).sort((a,b)=>a.from.localeCompare(b.from)||a.to.localeCompare(b.to)),V.map(a=>({verb:a,gained:d(m[a].gained),lost:d(m[a].lost)}))),error:aa.error?.message,onRetry:()=>{aa.refetch()}}),(0,c.jsx)(aT,{draft:Z.data.draft,appliedVersion:Z.data.applied.version,isApplying:ar.isPending,applyError:ar.error?.message,onApply:()=>{ar.mutate({version:Z.data.applied.version})},isDiscarding:as.isPending,discardError:as.error?.message,onDiscard:()=>{as.mutate()}}),(0,c.jsx)(br,{isExporting:at.isPending,exportError:at.error?.message,exported:at.data,onExport:()=>{at.mutate(void 0,{onSuccess:({name:a,leftOut:b})=>{(0,g.showToast)({title:"Rules exported",description:0===b.length?`Saved as ${a}.`:`Saved as ${a}, leaving out ${String(b.length)}: see Export and import.`,tone:"success"})}})},canImport:X.canDefineLabels,onImport:()=>{az(),ay(!0)}}),(0,c.jsx)(bo,{isOpen:ax,onOpenChange:a=>{ay(a),a||az()},checked:av.data,isChecking:av.isPending,checkError:av.error?.message,onCheck:a=>{aw.reset(),av.mutate({file:a})},onFileChange:az,ships:an,onShipQueryChange:ak,isImporting:aw.isPending,importError:aw.error?.message,onImport:a=>{aw.mutate(a,{onSuccess:({definedLabels:a})=>{ay(!1),az(),(0,g.showToast)({title:"Imported into the draft",description:`${0===a.length?"":`Defined ${a.join(", ")}. `}Look at what the draft changes, then apply it.`,tone:"success"})}})}}),(0,c.jsx)(au,{declared:void 0===af.data?void 0:(n=af.data,e=new Map(ah.map(a=>[a.id,a.name])),n.filter(({rules:a})=>a.length>0).map(({declarer:a,rules:b})=>"installation"===a.kind?{declarerId:"installation",declaredBy:"the installation",rules:b}:{declarerId:a.shipId,declaredBy:e.get(a.shipId)??a.shipId,rules:b}).sort((a,b)=>a.declaredBy.localeCompare(b.declaredBy))),error:af.error?.message,onRetry:()=>{af.refetch()},context:f}),(0,c.jsx)(aO,{ships:aH(ah),search:{ships:an,onQueryChange:ak},...void 0===ai?{}:{sailingShipCount:ai},pickedShipId:a,reachableShipIds:ad.data,reachError:ad.error?.message,onPick:a=>{Q.replace(bO(a,_),{scroll:!1})},against:_,...$?{onAgainstChange:b=>{Q.replace(bO(a,b),{scroll:!1})}}:{},onRetry:()=>{ad.refetch()}}),(0,c.jsx)(bu,{refusals:ae.items,error:ae.isFailed?ae.error?.message:void 0,onRetry:ae.retry,more:ae.hasMore?(0,c.jsx)(bR.LoadMore,{what:"older refusals",isLoading:ae.isLoadingMore,isFailed:ae.isLoadMoreFailed,onLoad:ae.loadMore,area:"network-refusals"}):null,context:f,now:R})]})}else p=(0,c.jsx)(h.EmptyState,{icon:(0,c.jsx)(d.Network,{"aria-hidden":!0}),title:"Only a session holding fleet:network sees the network rules"});return(0,c.jsx)(bx.ListPage,{...S,title:"Network",description:"Who may send to, read or manage whom. The fleet checks the applied rules on every send; a draft changes nothing until it is applied.",live:W.live,children:p})}],271915)}];
2
3
 
3
4
  //# sourceMappingURL=packages_console_app_%28console%29_network_network-page_tsx_0qc3h-9._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[59446,a=>{"use strict";var b=a.i(87924),c=a.i(31247),d=a.i(38246),e=a.i(50944),f=a.i(72131),g=a.i(31856),h=a.i(86002),i=a.i(56987),j=a.i(79520),k=a.i(88931),l=a.i(83556);let m={ok:"border-tone-ok-border bg-tone-ok-bg text-tone-ok-fg",waiting:"border-tone-waiting-border bg-tone-waiting-bg text-tone-waiting-fg",attention:"border-tone-attention-border bg-tone-attention-bg text-tone-attention-fg"};function n({label:a,shortLabel:c,value:e,detail:f,href:g,icon:h,tone:i,testId:j}){return(0,b.jsxs)(d.default,{href:g,"data-testid":j,className:"flex min-w-0 flex-col gap-2 rounded-lg border border-border bg-card px-4.5 py-4 shadow-sm transition-colors duration-(--duration-fast) hover:bg-accent max-sm:gap-1.5 max-sm:rounded-xl max-sm:px-3.5 max-sm:py-3",children:[(0,b.jsxs)("span",{className:"flex items-center justify-between gap-2 text-meta font-medium text-muted-foreground",children:[(0,b.jsx)("span",{className:"max-sm:hidden",children:a}),(0,b.jsx)("span",{className:"sm:hidden",children:c??a}),(0,b.jsx)("span",{className:(0,l.classNames)("flex size-6.5 shrink-0 items-center justify-center rounded-md border max-sm:size-5.5",m[i]),children:(0,b.jsx)(h,{"aria-hidden":!0,className:"size-3.5"})})]}),(0,b.jsx)("span",{className:"text-[28px] leading-none font-semibold tracking-tight tabular-nums text-foreground max-sm:text-2xl",children:e}),(0,b.jsx)("span",{className:"truncate text-meta text-muted-foreground",children:f})]})}var o=a.i(90146),p=a.i(34564),q=a.i(68450),r=a.i(72872);function s(a){return a.filter(a=>"agent"===a.kind&&"retired"!==a.status)}function t(){var a;let c,d,e,f,g=(0,o.useFleetSnapshot)(),h=(0,p.useFleetHealth)(),l=(0,q.useNow)();if(!g.data)return null;let m=(e=(d=(c=s((a={ships:g.data,stuck:h.data?.stuck??[],now:l}).ships)).filter(a=>"awaitingCrew"===a.status)).flatMap(a=>null===a.awaitingCrewSince?[]:[{name:a.name,since:new Date(a.awaitingCrewSince)}]).sort((a,b)=>a.since.getTime()-b.since.getTime())[0],f=a.stuck.map(a=>new Date(a.oldestSince)).sort((a,b)=>a.getTime()-b.getTime())[0],{activeCount:c.length,crewedCount:c.filter(a=>"crewed"===a.status).length,awaitingCount:d.length,longestWait:e&&{name:e.name,wait:(0,r.duration)(e.since,a.now)},oldestStuck:f&&(0,r.duration)(f,a.now)});return 0===m.activeCount?null:(0,b.jsxs)("div",{className:"grid grid-cols-3 gap-4 max-sm:grid-cols-2 max-sm:gap-2.5","data-testid":"overview-metrics",children:[(0,b.jsx)(n,{label:"Ships crewed",shortLabel:"Crewed",value:m.crewedCount,detail:`of ${String(m.activeCount)} active ships`,href:"/?status=crewed",icon:k.UserCheck,tone:"ok",testId:"overview-crewed"}),(0,b.jsx)(n,{label:"Awaiting crew",value:m.awaitingCount,detail:m.longestWait?`Longest wait: ${m.longestWait.name}, ${m.longestWait.wait}`:"Every active ship is crewed",href:"/?status=awaitingCrew",icon:i.CircleDashed,tone:"waiting",testId:"overview-awaiting"}),(0,b.jsx)(n,{label:"Stuck",value:(0,p.stuckCountOf)(h.data)??0,detail:m.oldestStuck?`Deliveries stuck, oldest ${m.oldestStuck}`:"Delivering",href:"/fleet-health",icon:j.OctagonAlert,tone:"attention",testId:"overview-stuck"})]})}var u=a.i(3512),v=a.i(34301),w=a.i(1851),x=a.i(2955),y=a.i(82611),z=a.i(88191),A=a.i(64906),B=a.i(47468),C=a.i(82252),D=a.i(54763),E=a.i(12540),F=a.i(93454);let G=(0,v.lazyDialog)(()=>a.A(59777).then(a=>a.CommissionDialog),a=>a.isOpen),H=(0,v.lazyDialog)(()=>a.A(68359).then(a=>a.StartingPromptDialog),a=>a.isOpen);function I({isOpen:a,onOpenChange:c}){var d;let e,h=(0,o.useFleetSnapshot)(),i=(0,A.useFleetLimits)(),j=(0,B.useHostedAccountUrl)(),k=(0,o.useCommissionShip)(),l=(0,o.useRequestCrew)(),m="connected"===(0,F.useTrierarchPluginConnection)(),n=(0,F.useMachines)(),p=(0,D.useSquadronsConnection)(),q=(0,E.useSquadrons)(),[r,s]=(0,f.useState)(!1),[t,v]=(0,f.useState)(null),J=(0,x.offersOf)(n.data??[]),K=(0,o.useLabelContext)(),{shipLabelsMax:L,fleetScopes:M}=(0,w.useConsoleConstants)(),N=(0,o.useFleetScopes)(),O=void 0===K||void 0===n.data?void 0:(0,y.machineLabelsInputOf)(K,{machines:n.data,shipLabelsMax:L}),P=(0,F.useCrewSettingsCheck)(a&&m?null===t?(0,x.settingsOf)((0,x.defaultValues)(J)):t:void 0),Q=(h.data??[]).filter(a=>"retired"!==a.status),R=(a,b)=>{k.mutate(a,{onSuccess:({shipId:d})=>{c(!1);let e=m&&void 0!==b;e||s(!0),void 0!==b&&l.mutate({shipId:d,settings:b.settings},{onSuccess:()=>{e&&(0,z.showToast)({title:`${a.name} commissioned, crew requested`,description:"The trierarch plugin assigns a trierarch that fits.",tone:"success"})},onError:b=>{(0,z.showToast)({title:`Couldn’t request a crew for ${a.name}`,description:`${b.message} The ship is commissioned; request a crew on its page.`,tone:"error"})}})}})};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(g.Button,{variant:"primary",icon:(0,b.jsx)(u.Plus,{}),"data-testid":"fleet-commission",onClick:()=>{k.reset(),v(null),c(!0)},children:"Commission ship"}),(0,b.jsx)(G,{activeShips:Q,isOpen:a,onOpenChange:c,isPending:k.isPending,error:k.error?.message,shipLimit:(0,C.shipLimitReached)(i.data),accountUrl:j,scopeGroups:void 0===N.data?void 0:(d=N.data,e=new Map(d.filter(({declaredBy:a})=>null===a).flatMap(({scopes:a})=>a.map(({scope:a,description:b})=>[a,b]))),[{title:"Fleet access",namespace:null,scopes:M.flatMap(a=>{let b=e.get(a);return void 0===b?[]:[{scope:a,description:b}]})},...d.flatMap(({namespace:a,declaredBy:b,scopes:c})=>null===b||0===c.length?[]:[{title:b.name,namespace:a,scopes:c.map(({scope:a,description:b})=>({scope:a,description:b}))}])]),...m?{crewRequest:{offers:J,squadrons:"connected"===p?(q.data??[]).filter(a=>"disbanded"!==a.state).map(a=>a.id):void 0,...void 0===O?{}:{machineLabels:O},check:P.data,onSettingsChange:v}}:{},onSubmit:(a,b)=>{let c={...a,idempotencyKey:crypto.randomUUID()};m&&void 0!==b?P.checkNow().catch(()=>void 0).then(a=>{a?.kind!=="refused"&&R(c,b)}).catch(()=>void 0):R(c,b)}}),(0,b.jsx)(H,{shipName:k.variables?.name??"",state:"shown",prompt:k.data?.prompt??void 0,crewLines:k.data?.crewLines??void 0,isOpen:r&&void 0!==k.data,onOpenChange:a=>{a||(s(!1),k.reset())},onConfirm:()=>void 0})]})}var J=a.i(64831);let K={name:"infinity",size:24,node:[["path",{d:"M6 16c5 0 7-8 12-8a4 4 0 0 1 0 8c-5 0-7-8-12-8a4 4 0 1 0 0 8",key:"18ogeb"}]]};K.node;let L=(0,J.default)(K);var M=a.i(74746),N=a.i(98238),O=a.i(23063);let P={ships:{label:"Ships",unit:"ships",Icon:N.Ship},messages:{label:"Messages today",unit:"messages",Icon:M.Send}},Q={below:"bg-primary",at:"bg-tone-waiting-fg",over:"bg-tone-attention-fg"},R={at:"at-limit",over:"over-limit"};function S({kind:a,count:c,limit:d,resetsAt:e}){let{label:f,unit:g,Icon:h}=P[a],i=(0,C.meterState)({count:c,limit:d}),j=R[i],k=(0,C.meterCaption)({count:c,limit:d}),m=null===d?0:0===d?1:Math.min(c/d,1);return(0,b.jsxs)("div",{"data-testid":`limit-meter-${a}`,"data-state":i,className:"flex flex-col gap-2 rounded-lg border border-border bg-card p-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-meta font-medium text-muted-foreground",children:[(0,b.jsx)(h,{"aria-hidden":!0,className:"size-(--size-icon-sm)"}),f]}),void 0===j?null:(0,b.jsx)(O.StatusBadge,{status:j})]}),(0,b.jsxs)("p",{className:"flex items-baseline gap-1.5",children:[(0,b.jsx)("span",{className:"text-metric font-semibold tabular-nums",children:(0,C.meterCount)(c)}),(0,b.jsx)("span",{className:"text-body text-muted-foreground",children:null===d?g:`of ${(0,C.meterCount)(d)} ${g}`})]}),null===d?(0,b.jsxs)("p",{className:"inline-flex items-center gap-1.5 text-meta text-muted-foreground",children:[(0,b.jsx)(L,{"aria-hidden":!0,className:"size-(--size-icon-sm)"}),"No limit"]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{role:"meter","aria-label":`${f}: ${String(c)} of ${String(d)}`,"aria-valuenow":c,"aria-valuemin":0,"aria-valuemax":d,className:"block h-1.5 overflow-hidden rounded-full bg-secondary",children:(0,b.jsx)("span",{className:(0,l.classNames)("block h-full rounded-full","none"===i?void 0:Q[i]),style:{width:`${String(100*m)}%`}})}),(0,b.jsxs)("p",{"data-testid":`limit-meter-${a}-caption`,className:"text-caption text-muted-foreground",children:[k,void 0===e?null:` \xb7 resets at ${(0,C.resetTime)(e)}`]})]})]})}function T(){let a=(0,A.useFleetLimits)().data,c=(0,B.useHostedAccountUrl)();return(0,C.hasLimits)(a)?(0,b.jsxs)("section",{"aria-labelledby":"overview-limits-title","data-testid":"overview-limits",className:"flex flex-col gap-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)("h2",{id:"overview-limits-title",className:"text-body font-semibold",children:"Limits"}),void 0===c?null:(0,b.jsx)("a",{href:c,"data-testid":"overview-limits-view",className:"text-meta font-medium text-primary underline underline-offset-2",children:"View limits"})]}),(0,b.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2",children:[(0,b.jsx)(S,{kind:"ships",count:a.ships.count,limit:a.ships.limit}),(0,b.jsx)(S,{kind:"messages",count:a.dailyMessages.count,limit:a.dailyMessages.limit,resetsAt:a.dailyMessages.resetsAt})]})]}):null}var U=a.i(45065),V=a.i(8219),W=a.i(55681),X=a.i(25039),Y=a.i(71094),Z=a.i(33540);let $={name:"sliders-horizontal",size:24,node:[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]]};$.node;let _=(0,J.default)($);var aa=a.i(87005),ab=a.i(49219);let ac=["console","claudeCode","codex","trierarch","plugin","other"],ad={console:"Console",claudeCode:"Claude Code",codex:"Codex",trierarch:"Trierarch",plugin:"Plugin",other:"Other"},ae={"claude-code":"claudeCode",codex:"codex"};function af(a){return ac.some(b=>b===a)}let ag={awaitingCrew:"Awaiting crew",crewed:"Crewed",retired:"Retired"};function ah(a,{column:b,squadronsOf:c}){switch(b){case"ship":return a.name;case"status":return ag[a.status];case"report":return("agent"===a.kind||"plugin"===a.kind)&&"crewed"===a.status?a.report?.note??void 0:void 0;case"squadronAndLabels":{let b=c?.get(a.id);if(void 0!==b&&null!==b.role)return b.squadronId;let[d]=a.labels;return void 0===d?void 0:`${d.key}=${d.value}`}case"runsOn":if("crewed"!==a.status||"viewer"===a.kind)return;return"operator"===a.kind?"console":a.harness??void 0;case"seen":return a.lastSeenAt??void 0}}var ai=a.i(6071),aj=a.i(65230),ak=a.i(60271);let al={query:"",filters:{status:[],crewRequest:[],kind:[],type:[],squadron:[],isRetiredShown:!1,labelValueIds:[]},sort:null},am=new Set;function an(a,b){return 0===a.length||void 0!==b&&a.includes(b)}function ao(a,b){return a.kind!==b.kind?"operator"===a.kind?-1:+("operator"===b.kind):0}function ap(a,b){return[...new Set(a.filter(a=>b||"retired"!==a.status).map(a=>a.type))].toSorted((a,b)=>a.localeCompare(b))}function aq(a){return a.filter(a=>"retired"===a.status).length}function ar(a){return[...new Set([...a.values()].map(a=>a.squadronId))].toSorted((a,b)=>a.localeCompare(b))}let as={crewed:"Crewed",awaitingCrew:"Awaiting crew"};function at(a){return av(a).length+a.labelValueIds.length}function au(a,b){return 0===b.length?void 0:`${a}: ${b.join(", ")}`}function av(a){return[au("Status",a.status.map(a=>as[a])),au("Crew request",a.crewRequest.map(ak.crewRequestKeyWord)),au("Kind",a.kind.map(a=>ad[a])),au("Type",a.type),au("Squadron",a.squadron),a.isRetiredShown?"Retired shown":void 0].filter(a=>void 0!==a)}var aw=a.i(33274),ax=a.i(75297),ay=a.i(45098),az=a.i(45469),aA=a.i(77339),aB=a.i(24173),aC=a.i(40392),aD=a.i(36501);function aE({chips:a,width:c,testId:e,href:f}){if(0===a.length)return null;let{shown:g,folded:h}=0===c?{shown:[],folded:a}:(0,aj.rowChips)(a,c);return(0,b.jsxs)("span",{"data-testid":e,className:"flex min-w-0 items-center gap-1 overflow-hidden",children:[g.map((a,c)=>(0,b.jsx)(aD.LabelChip,{chip:a,className:0===c?"min-w-0 shrink":void 0},a.valueId)),0===h.length?null:void 0===f?(0,b.jsxs)("span",{title:h.map(aj.chipTitleOf).join("; "),className:"inline-flex h-5.5 shrink-0 items-center rounded-sm bg-secondary px-1.5 text-caption font-medium text-foreground tabular-nums",children:["+",h.length,(0,b.jsx)("span",{className:"sr-only",children:" more labels"})]}):(0,b.jsxs)(d.default,{href:f,title:h.map(aj.chipTitleOf).join("; "),"aria-label":`View ${h.length} more labels`,className:"inline-flex h-5.5 shrink-0 items-center rounded-sm bg-secondary px-1.5 text-caption font-medium text-foreground tabular-nums hover:underline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring",children:["+",h.length]})]})}var aF=a.i(50808);let aG={name:"signal",size:24,node:[["path",{d:"M2 20h.01",key:"4haj6o"}],["path",{d:"M7 20v-4",key:"j294jx"}],["path",{d:"M12 20v-8",key:"i3yub9"}],["path",{d:"M17 20V8",key:"1tkaf5"}],["path",{d:"M22 4v16",key:"sih9yq"}]]};aG.node;let aH=(0,J.default)(aG),aI={name:"signal-low",size:24,node:[["path",{d:"M2 20h.01",key:"4haj6o"}],["path",{d:"M7 20v-4",key:"j294jx"}]]};aI.node;let aJ=(0,J.default)(aI),aK={name:"signal-medium",size:24,node:[["path",{d:"M2 20h.01",key:"4haj6o"}],["path",{d:"M7 20v-4",key:"j294jx"}],["path",{d:"M12 20v-8",key:"i3yub9"}]]};aK.node;let aL=(0,J.default)(aK);var aM=a.i(14501);let aN={fresh:{Icon:aH,tone:"text-tone-ok-fg"},while:{Icon:aL,tone:"text-muted-foreground"},long:{Icon:aJ,tone:"text-tone-waiting-fg"}};function aO({seenAt:a,now:c,testId:d}){let e;if(null===a)return null;let f=new Date(a),g=(e=c.getTime()-f.getTime())<6e4?"fresh":e<=9e5?"while":"long",{Icon:h,tone:i}=aN[g],j=(0,r.lastSeen)(f,c);return(0,b.jsxs)(aM.Tooltip,{children:[(0,b.jsx)(aM.TooltipTrigger,{render:(0,b.jsx)("span",{role:"img","aria-label":j,"data-testid":d,"data-signal":g,className:(0,l.classNames)("inline-flex [&_svg]:size-(--size-icon) max-sm:[&_svg]:size-4",i)}),children:(0,b.jsx)(h,{"aria-hidden":!0})}),(0,b.jsx)(aM.TooltipContent,{children:j})]})}var aP=a.i(40108);function aQ({model:a,now:c}){let d=function(a,b){var c;let d=new Date(a.statedAt),e=Math.max(0,b.getTime()-d.getTime()),f=(c=a.id).startsWith("@")||/@\d+\.\d+\.\d+$/.test(c)?"Software":"Model";if(e<6e4)return`${f}, stated ${String(Math.floor(e/1e3))} s ago`;let g=(0,r.relativeTime)(d,b);return`${f}, stated ${g.charAt(0).toLowerCase()}${g.slice(1)}`}(a,c);return(0,b.jsxs)(aM.Tooltip,{children:[(0,b.jsxs)(aM.TooltipTrigger,{render:(0,b.jsx)("span",{"data-testid":"fleet-model-hint",className:"min-w-0 truncate font-mono text-id text-muted-foreground"}),children:[a.id,(0,b.jsxs)("span",{className:"sr-only",children:[", ",d]})]}),(0,b.jsx)(aM.TooltipContent,{children:(0,b.jsxs)("span",{className:"flex flex-col gap-0.5",children:[(0,b.jsx)("span",{className:"font-mono",children:a.id}),(0,b.jsx)("span",{children:d})]})})]})}var aR=a.i(92717),aS=a.i(58523),aT=a.i(90468),aU=a.i(48136);function aV({label:a,items:c,picked:d,onPickedChange:e,size:f="sm",valueClassName:g,testId:h}){let i=function(a,b){let[c]=a;return void 0===c?{kind:"all"}:1===a.length?{kind:"one",word:b[c]??c}:{kind:"several",count:a.length}}(d,c);return(0,b.jsxs)(aU.Select,{multiple:!0,value:0===d.length?["all"]:[...d],onValueChange:a=>{e(d.length>0&&a.includes("all")?[]:a.filter(a=>"all"!==a))},children:[(0,b.jsx)(aU.SelectTrigger,{size:f,"aria-label":a,"data-testid":h,children:(0,b.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:a}),"several"===i.kind?(0,b.jsxs)("span",{className:"inline-flex size-5 items-center justify-center rounded-full bg-primary text-caption font-semibold text-primary-foreground tabular-nums",children:[i.count,(0,b.jsx)("span",{className:"sr-only",children:" picked"})]}):(0,b.jsx)("span",{className:(0,l.classNames)("font-medium","one"===i.kind?g:void 0),children:"one"===i.kind?i.word:"All"})]})}),(0,b.jsxs)(aU.SelectContent,{children:[(0,b.jsx)(aU.SelectItem,{value:"all",children:"All"}),Object.entries(c).map(([a,c])=>(0,b.jsx)(aU.SelectItem,{value:a,className:g,children:c},a))]})]})}function aW({label:a,allLabel:c="All",items:d,picked:e,onPickedChange:f,layout:h="chips",testId:i}){return(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsx)("span",{"aria-hidden":!0,className:"text-meta font-medium text-muted-foreground",children:a}),(0,b.jsxs)("div",{role:"group","aria-label":a,"data-testid":i,className:"segments"===h?"flex gap-1.5 [&>*]:flex-1":"flex flex-wrap gap-1.5",children:[(0,b.jsx)(g.Button,{variant:0===e.length?"primary":"secondary",size:"touch","aria-pressed":0===e.length,onClick:()=>{f([])},children:c}),Object.entries(d).map(([a,c])=>{let d=e.includes(a);return(0,b.jsx)(g.Button,{variant:d?"primary":"secondary",size:"touch","aria-pressed":d,onClick:()=>{f(d?e.filter(b=>b!==a):[...e,a])},children:c},a)})]})]})}var aX=a.i(89027),aY=a.i(3894),aZ=a.i(19721),a$=a.i(60275);let a_=(0,aZ.default)(async()=>{},{loadableGenerated:{modules:[59068]},ssr:!1});function a0({groups:a,picked:c,onPick:e,trigger:g}){let[h,i]=(0,f.useState)(!1);return(0,b.jsxs)(a$.Popover,{open:h,onOpenChange:i,children:[(0,b.jsx)(a$.PopoverTrigger,{render:g}),(0,b.jsxs)(a$.PopoverContent,{align:"start",sideOffset:6,className:"w-80 p-2","data-testid":"label-filter-popover",children:[(0,b.jsx)("span",{className:"block px-2 pt-1 pb-2 text-body font-medium",children:"Filter by label"}),(0,b.jsx)(a_,{groups:a,pickedValueIds:c.map(a=>a.valueId),onPick:a=>{e(a),i(!1)}}),(0,b.jsxs)("p",{className:"mt-2 flex items-center justify-between gap-2 border-t border-border px-2 pt-2 text-meta text-muted-foreground",children:["Exact matches, all must hold.",(0,b.jsx)(d.default,{href:"/labels",className:"font-medium text-foreground hover:underline","data-testid":"label-filter-manage",children:"Manage labels"})]})]})]})}function a1({groups:a,picked:d,onPick:e}){return(0,b.jsx)(a0,{groups:a,picked:d,onPick:e,trigger:(0,b.jsxs)(g.Button,{variant:"secondary",size:"sm",icon:(0,b.jsx)(c.Tag,{}),"data-testid":"fleet-filter-labels",children:["Labels",0===d.length?null:(0,b.jsxs)("span",{className:"inline-flex size-5 items-center justify-center rounded-full bg-primary text-caption font-semibold text-primary-foreground tabular-nums",children:[d.length,(0,b.jsx)("span",{className:"sr-only",children:" picked"})]}),(0,b.jsx)(aX.ChevronDown,{"aria-hidden":!0,className:"text-muted-foreground"})]})})}function a2({groups:a,picked:c,onPick:d,onRemove:e,onClear:f}){return 0===c.length?null:(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-x-2 gap-y-1.5 text-meta max-sm:hidden","data-testid":"fleet-picked-labels",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:"Ships with"}),c.map((a,c)=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-2",children:[0===c?null:(0,b.jsx)("span",{className:"text-muted-foreground",children:"and"}),(0,b.jsx)(aD.LabelChip,{chip:a,testId:"fleet-picked-label",onRemove:()=>{e(a.valueId)}})]},a.valueId)),(0,b.jsx)(a0,{groups:a,picked:c,onPick:d,trigger:(0,b.jsx)(g.Button,{variant:"ghost",size:"xs",icon:(0,b.jsx)(u.Plus,{}),children:"Add"})}),(0,b.jsx)("span",{"aria-hidden":!0,className:"h-4 w-px bg-border"}),(0,b.jsx)(g.Button,{variant:"ghost",size:"xs",onClick:f,"data-testid":"fleet-labels-clear",children:"Clear labels"})]})}function a3({groups:a,picked:c,onPick:e,onRemove:h}){let[i,j]=(0,f.useState)(!1);return(0,b.jsxs)("div",{className:"flex flex-col gap-2","data-testid":"fleet-filter-labels-touch",children:[(0,b.jsxs)("span",{className:"flex items-center gap-2 text-meta font-medium text-muted-foreground",children:["Labels ",(0,b.jsx)("span",{className:"font-normal",children:"all must hold"})]}),0===c.length?null:(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-2 text-meta",children:c.map((a,c)=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-2",children:[0===c?null:(0,b.jsx)("span",{className:"text-muted-foreground",children:"and"}),(0,b.jsx)(aD.LabelChip,{chip:a,onRemove:()=>{h(a.valueId)}})]},a.valueId))}),i?(0,b.jsx)("div",{className:"rounded-lg border border-border p-2",children:(0,b.jsx)(a_,{groups:a,pickedValueIds:c.map(a=>a.valueId),size:"touch",onPick:a=>{e(a),j(!1)}})}):(0,b.jsx)(g.Button,{variant:"secondary",size:"touch",icon:(0,b.jsx)(u.Plus,{}),className:"self-start",onClick:()=>{j(!0)},children:"Add label"}),(0,b.jsxs)(d.default,{href:"/labels",className:"inline-flex items-center gap-1.5 self-start text-meta text-muted-foreground hover:underline [&_svg]:size-(--size-icon-sm)",children:[(0,b.jsx)(aY.Tags,{"aria-hidden":!0}),"All labels and their owners"]})]})}function a4(a,b){return{...a,filters:{...a.filters,labelValueIds:b}}}function a5(a){return Object.hasOwn(as,a)}function a6(a){return Object.fromEntries((0,ak.crewRequestKeysOf)(a).map(a=>[a,(0,ak.crewRequestKeyWord)(a)]))}function a7(a,b){return Object.hasOwn(b,a)}function a8(a){return Object.fromEntries(a.map(a=>[a,a]))}function a9({ship:a,squadron:c,isPluginShip:d}){return"operator"===a.kind?(0,b.jsxs)(aw.Badge,{variant:"kind",children:[(0,b.jsx)(aa.UserRound,{"aria-hidden":!0}),"operator"]}):"viewer"===a.kind?(0,b.jsxs)(aw.Badge,{variant:"kind","data-testid":"fleet-viewer",children:[(0,b.jsx)(W.Eye,{"aria-hidden":!0}),"viewer"]}):d?(0,b.jsxs)(aw.Badge,{variant:"kind","data-testid":"fleet-plugin",children:[(0,b.jsx)(Y.Plug,{"aria-hidden":!0}),"plugin"]}):c?.role===null?(0,b.jsxs)(aw.Badge,{variant:"kind","data-testid":"fleet-flagship",children:[(0,b.jsx)(X.Flag,{"aria-hidden":!0}),"flagship"]}):null}function ba({ship:a,now:c}){return"crewed"!==a.status||"viewer"===a.kind?null:(0,b.jsxs)("span",{"data-testid":"fleet-runs-on",className:"flex min-w-0 items-center gap-3 max-sm:flex-wrap max-sm:gap-y-1",children:[(0,b.jsx)(aP.LocationTag,{kind:"operator"===a.kind&&null!==a.location?"DEVICE":a.location?.kind??null,description:a.location?.description,harness:"operator"===a.kind?"console":a.harness,size:"sm",className:"shrink-0"}),"agent"===a.kind&&null!==a.model?(0,b.jsx)(aQ,{model:a.model,now:c}):null]})}function bb({ship:a,squadron:c,labels:d}){let e=c?.role===null?void 0:c,f=void 0===d?[]:(0,aj.chipsOf)(a,d).filter(a=>void 0===e||("squadron"!==a.key||a.value!==e.squadronId)&&("squadron-role"!==a.key||a.value!==e.role));return void 0===e&&0===f.length?null:(0,b.jsxs)("span",{className:"flex min-w-0 items-center gap-2 overflow-hidden",children:[void 0===e?null:(0,b.jsx)("span",{className:"min-w-0 shrink",title:null===e.role?e.squadronId:`${e.squadronId} \xb7 ${e.role}`,children:(0,b.jsx)(aS.SquadronTag,{squadronId:e.squadronId,size:"sm"})}),(0,b.jsx)(aE,{chips:f,width:22*(void 0===e),testId:"fleet-labels",href:`/ships/${a.id}`})]})}function bc({ship:a,now:c,next:d}){let e=("agent"===a.kind||"plugin"===a.kind)&&"crewed"===a.status;return(0,b.jsxs)("span",{className:"flex min-w-0 items-center gap-2 max-sm:flex-col max-sm:items-stretch [&:has(button)>[data-testid=fleet-report]]:hidden",children:[e?(0,b.jsx)(aR.ReportLine,{report:a.report,now:c,variant:"row",isTimeInTitle:!0,testId:"fleet-report"}):null,d]})}function bd({ships:a,view:c,onViewChange:d,size:e,squadronsOf:f,labels:h}){let i=a6((0,w.useConsoleConstants)().crewStatuses),{filters:j}=c,k=a=>{d({...c,filters:{...j,...a}})},l="touch"===e;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(aV,{label:"Status",items:as,picked:j.status,onPickedChange:a=>{k({status:a.filter(a5)})},size:e,testId:l?void 0:"fleet-filter-status"}),(0,b.jsx)(aV,{label:"Crew request",items:i,picked:j.crewRequest,onPickedChange:a=>{k({crewRequest:a.filter(a=>a7(a,i))})},size:e,testId:l?void 0:"fleet-filter-crew-request"}),(0,b.jsx)(aV,{label:"Kind",items:ad,picked:j.kind,onPickedChange:a=>{k({kind:a.filter(af)})},size:e,testId:l?void 0:"fleet-filter-kind"}),(0,b.jsx)(aV,{label:"Type",items:a8(ap(a,j.isRetiredShown)),picked:j.type,onPickedChange:a=>{k({type:a})},size:e,valueClassName:"font-mono",testId:l?void 0:"fleet-filter-type"}),f&&(0,b.jsx)(aV,{label:"Squadron",items:a8(ar(f)),picked:j.squadron,onPickedChange:a=>{k({squadron:a})},size:e,testId:l?void 0:"fleet-filter-squadron"}),void 0===h||l?null:(0,b.jsx)(a1,{groups:(0,aj.filterGroupsOf)(h),picked:(0,aj.pickedChips)(j.labelValueIds,h),onPick:a=>{d(a4(c,[...j.labelValueIds,a]))}}),av(j).length>0&&!l?(0,b.jsx)(g.Button,{variant:"ghost",size:"xs","data-testid":"fleet-filters-clear",onClick:()=>{d({...c,filters:al.filters})},children:"Clear filters"}):null]})}function be({ships:a,view:c,onViewChange:d}){let e="fleet-show-retired";return(0,b.jsxs)("div",{className:"inline-flex items-center gap-2",children:[(0,b.jsx)(az.Switch,{id:e,"data-testid":"fleet-show-retired",checked:c.filters.isRetiredShown,onCheckedChange:a=>{d({...c,filters:{...c.filters,isRetiredShown:a}})}}),(0,b.jsxs)(ay.Label,{htmlFor:e,className:"text-meta font-normal text-muted-foreground",children:["Show retired (",aq(a),")"]})]})}function bf({ships:a,view:c,onViewChange:d,shownCount:e,squadronsOf:f,labels:h}){let i=a6((0,w.useConsoleConstants)().crewStatuses),{filters:j}=c,k=a=>{d({...c,filters:{...j,...a}})},l=at(j),m=aq(a);return(0,b.jsxs)(ab.Sheet,{children:[(0,b.jsx)(ab.SheetTrigger,{render:(0,b.jsx)(g.Button,{size:"touch",isIconOnly:!0,"aria-label":l>0?`Filter ships, ${String(l)} active`:"Filter ships","data-testid":"fleet-filters-open",icon:(0,b.jsx)(_,{}),className:"relative sm:hidden",children:l>0?(0,b.jsx)("span",{"aria-hidden":!0,className:"absolute top-1.5 right-1.5 size-2 rounded-full bg-primary"}):null})}),(0,b.jsxs)(ab.SheetContent,{side:"bottom",children:[(0,b.jsxs)(ab.SheetHeader,{className:"flex-row items-center justify-between",children:[(0,b.jsx)(ab.SheetTitle,{children:"Filter ships"}),(0,b.jsx)(g.Button,{variant:"ghost",size:"touch","data-testid":"fleet-filters-reset",onClick:()=>{d({...c,filters:al.filters})},children:"Reset"})]}),(0,b.jsxs)(ab.SheetBody,{className:"flex flex-col gap-4 pb-4",children:[(0,b.jsx)(aW,{label:"Status",layout:"segments",items:as,picked:j.status,onPickedChange:a=>{k({status:a.filter(a5)})}}),(0,b.jsx)(aW,{label:"Crew request",items:i,picked:j.crewRequest,onPickedChange:a=>{k({crewRequest:a.filter(a=>a7(a,i))})}}),(0,b.jsx)(aW,{label:"Kind",items:ad,picked:j.kind,onPickedChange:a=>{k({kind:a.filter(af)})},testId:"fleet-filter-kind-touch"}),(0,b.jsx)(aW,{label:"Type",allLabel:"All types",items:a8(ap(a,j.isRetiredShown)),picked:j.type,onPickedChange:a=>{k({type:a})}}),f&&(0,b.jsx)(aW,{label:"Squadron",items:a8(ar(f)),picked:j.squadron,onPickedChange:a=>{k({squadron:a})}}),void 0===h?null:(0,b.jsx)(a3,{groups:(0,aj.filterGroupsOf)(h),picked:(0,aj.pickedChips)(j.labelValueIds,h),onPick:a=>{d(a4(c,[...j.labelValueIds,a]))},onRemove:a=>{d(a4(c,j.labelValueIds.filter(b=>b!==a)))}}),(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2 py-1",children:[(0,b.jsxs)(ay.Label,{htmlFor:"fleet-show-retired-touch",className:"text-body-touch font-normal",children:["Show retired ships ",(0,b.jsxs)("span",{className:"text-muted-foreground",children:["(",m,")"]})]}),(0,b.jsx)(az.Switch,{id:"fleet-show-retired-touch",checked:j.isRetiredShown,onCheckedChange:a=>{k({isRetiredShown:a})}})]}),(0,b.jsx)(ab.SheetClose,{render:(0,b.jsx)(g.Button,{size:"touch","data-testid":"fleet-filters-apply"}),children:1===e?"Show 1 ship":`Show ${String(e)} ships`})]})]})]})}function bg({view:a,onViewChange:c,labels:d}){let e=av(a.filters),f=void 0===d?[]:(0,aj.pickedChips)(a.filters.labelValueIds,d);return 0===e.length&&0===f.length?null:(0,b.jsxs)("div",{className:"flex w-full flex-wrap items-center gap-1.5 sm:hidden","data-testid":"fleet-filter-chips",children:[e.map(a=>(0,b.jsx)(aw.Badge,{variant:"outline",className:"max-w-full truncate",children:a},a)),f.map(d=>(0,b.jsx)(aD.LabelChip,{chip:d,onRemove:()=>{c(a4(a,a.filters.labelValueIds.filter(a=>a!==d.valueId)))}},d.valueId)),(0,b.jsx)(g.Button,{variant:"ghost",size:"touch",onClick:()=>{c({...a,filters:al.filters})},children:"Clear filters"})]})}function bh({ships:a,view:c,onViewChange:d,shownCount:e,squadronsOf:f,labels:g}){return(0,b.jsxs)("div",{"data-slot":"fleet-toolbar",className:"flex flex-wrap items-center gap-2 sm:flex-nowrap sm:items-start",children:[(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 flex-wrap items-center gap-2",children:[(0,b.jsx)("div",{className:"w-60 max-sm:min-w-0 max-sm:flex-1",children:(0,b.jsx)(ax.Input,{type:"search","aria-label":"Search ships by name or type",placeholder:"Search ships by name","data-testid":"fleet-search",value:c.query,onChange:a=>{d({...c,query:a.target.value})},leadingIcon:(0,b.jsx)(Z.Search,{}),className:"h-(--size-control-sm) text-meta max-sm:h-(--size-control-touch) max-sm:text-input-touch"})}),(0,b.jsx)("div",{className:"max-sm:hidden sm:contents",children:(0,b.jsx)(bd,{ships:a,view:c,onViewChange:d,squadronsOf:f,labels:g,size:"sm"})}),(0,b.jsx)(bf,{ships:a,view:c,onViewChange:d,shownCount:e,squadronsOf:f,labels:g})]}),(0,b.jsx)(bg,{view:c,onViewChange:d,labels:g}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-2 max-sm:w-full sm:h-(--size-control-sm)",children:[(0,b.jsx)("div",{className:"max-sm:hidden",children:(0,b.jsx)(be,{ships:a,view:c,onViewChange:d})}),(0,b.jsxs)("p",{"aria-live":"polite",className:"text-meta text-muted-foreground tabular-nums",children:[e," of ",a.length," ships"]})]})]})}function bi({ship:a}){return(0,b.jsx)(aT.ShipName,{name:a.name,shipId:a.id,isSuffixShown:"retired"===a.status,href:"operator"===a.kind?"/inbox":`/ships/${a.id}`,className:"[&_a]:max-sm:whitespace-normal [&_a]:max-sm:break-all [&_a]:max-sm:text-body-touch"})}let bj=[{column:"ship",head:"Ship"},{column:"status",head:"Status"},{column:"report",head:"Report"},{column:"squadronAndLabels",head:"Squadron and labels"},{column:"runsOn",head:"Runs on"},{column:"seen",head:"Seen"}];function bk({ships:a,highlightedShipIds:c,now:d,renderRowActions:e,squadronsOf:f,labels:g,pluginShipIds:h,sort:i,onSort:j}){return(0,b.jsx)("div",{className:"max-sm:hidden",children:(0,b.jsxs)(aA.Table,{"aria-label":"Ships",className:"min-w-320 table-fixed",children:[(0,b.jsxs)("colgroup",{children:[(0,b.jsx)("col",{className:"w-56"}),(0,b.jsx)("col",{className:"w-40"}),(0,b.jsx)("col",{className:"w-64"}),(0,b.jsx)("col",{className:"w-56"}),(0,b.jsx)("col",{className:"w-80"}),(0,b.jsx)("col",{className:"w-12"}),(0,b.jsx)("col",{className:"w-12"})]}),(0,b.jsx)(aA.TableHeader,{children:(0,b.jsxs)(aA.TableRow,{children:[bj.map(({column:a,head:c})=>void 0===j?(0,b.jsx)(aA.TableHead,{children:c},a):(0,b.jsx)(aA.TableSortHead,{"data-testid":`fleet-sort-${a}`,direction:i?.column===a?i.direction:null,onSort:()=>{j(a)},children:c},a)),(0,b.jsx)(aA.TableHead,{children:(0,b.jsx)("span",{className:"sr-only",children:"Actions"})})]})}),(0,b.jsx)(aA.TableBody,{children:a.map(a=>(0,b.jsxs)(aA.TableRow,{"data-testid":`fleet-row-${a.name}`,"data-new":c?.has(a.id)?"":void 0,className:"h-12",children:[(0,b.jsx)(aA.TableCell,{children:(0,b.jsxs)("span",{className:"flex min-w-0 items-center gap-2 whitespace-nowrap",children:[(0,b.jsx)(bi,{ship:a}),(0,b.jsx)(a9,{ship:a,squadron:f?.get(a.id),isPluginShip:h?.has(a.id)??!1})]})}),(0,b.jsx)(aA.TableCell,{children:(0,b.jsx)(O.StatusBadge,{status:a.status})}),(0,b.jsx)(aA.TableCell,{children:(0,b.jsx)(bc,{ship:a,now:d,next:e?.(a,"next")})}),(0,b.jsx)(aA.TableCell,{children:(0,b.jsx)(bb,{ship:a,squadron:f?.get(a.id),labels:g})}),(0,b.jsx)(aA.TableCell,{children:(0,b.jsx)(ba,{ship:a,now:d})}),(0,b.jsx)(aA.TableCell,{children:(0,b.jsx)(aO,{seenAt:a.lastSeenAt,now:d,testId:"fleet-last-seen"})}),(0,b.jsx)(aA.TableCell,{className:"w-10 text-right",children:e?.(a,"table")})]},a.id))})]})})}function bl({ships:a,highlightedShipIds:c,now:d,renderRowActions:e,squadronsOf:f,pluginShipIds:g}){return(0,b.jsx)("ul",{"aria-label":"Ships",className:"overflow-hidden rounded-lg border border-border bg-card sm:hidden",children:a.map(a=>(0,b.jsxs)("li",{"data-testid":`fleet-card-${a.name}`,"data-new":c?.has(a.id)?"":void 0,className:"flex items-start gap-2 border-b border-border px-3.5 py-3 last:border-0 data-new:animate-highlight",children:[(0,b.jsxs)("div",{className:"flex min-w-0 grow flex-col gap-1.5",children:[(0,b.jsx)("div",{className:"text-body-touch",children:(0,b.jsx)(bi,{ship:a})}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(O.StatusBadge,{status:a.status}),(0,b.jsx)(a9,{ship:a,squadron:f?.get(a.id),isPluginShip:g?.has(a.id)??!1})]}),(0,b.jsx)(bb,{ship:a,squadron:f?.get(a.id)}),(0,b.jsx)(bc,{ship:a,now:d,next:e?.(a,"next")}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-x-3 gap-y-1",children:[(0,b.jsx)(ba,{ship:a,now:d}),(0,b.jsx)(aO,{seenAt:a.lastSeenAt,now:d})]})]}),e?.(a,"phone")]},a.id))})}function bm({ships:a,view:c,onViewChange:d,state:e,error:f,highlightedShipIds:h,now:i,renderRowActions:j,emptyAction:k,squadronsOf:l,labels:m,pluginShipIds:n}){var o,p,q;let r,s,t;if("loading"===e)return(0,b.jsxs)("div",{"data-slot":"fleet-table","data-state":"loading",className:"flex flex-col gap-3",children:[(0,b.jsx)(aF.LoadingSkeleton,{variant:"table",rows:6,label:"Loading the fleet",className:"max-sm:hidden"}),(0,b.jsx)(aF.LoadingSkeleton,{variant:"list",rows:5,label:"Loading the fleet",className:"sm:hidden"})]});if("error"===e)return(0,b.jsx)(aC.InlineError,{variant:"page",title:"Couldn’t load the fleet",description:"This page couldn’t reach the fleet server. Check that the server is running and reachable from this browser, then try again.",detail:f?.detail,onRetry:f?.onRetry});let u={highlightedShipIds:h,now:i,renderRowActions:j,squadronsOf:l,pluginShipIds:n};if(a.every(a=>"operator"===a.kind||"retired"===a.status)){let c=a.filter(a=>"operator"===a.kind);return(0,b.jsxs)("div",{"data-slot":"fleet-table","data-state":"empty",className:"flex flex-col gap-3",children:[(0,b.jsx)(bk,{ships:c,labels:m,...u}),(0,b.jsx)(bl,{ships:c,...u}),(0,b.jsx)(aB.EmptyState,{icon:(0,b.jsx)(N.Ship,{}),title:"No ships besides argo yet",description:"argo is your own ship: messages to the operator land in its inbox. Commission a ship to add an agent to the fleet.",action:k})]})}let v=(s=null===(o={...c,squadronsOf:l,pluginShipIds:n}).sort?ao:(p=o.sort,q=o.squadronsOf,r=("ascending"===p.direction?1:-1)*("seen"===p.column?-1:1),(a,b)=>{let c=ah(a,{column:p.column,squadronsOf:q}),d=ah(b,{column:p.column,squadronsOf:q});return void 0===c||void 0===d?Number(void 0===c)-Number(void 0===d):r*c.localeCompare(d,void 0,{sensitivity:"base"})}),a.filter(a=>{let b;return(""===(b=o.query.trim().toLowerCase())||a.name.toLowerCase().includes(b)||a.type.toLowerCase().includes(b))&&function(a,b){let{filters:c,squadronsOf:d,pluginShipIds:e=am}=b;if("retired"===a.status&&!c.isRetiredShown)return!1;let f="retired"===a.status?void 0:a.status;return an(c.squadron,d?.get(a.id)?.squadronId)&&an(c.status,f)&&an(c.crewRequest,(0,ak.crewRequestKey)((0,ai.crewRequestStage)(a)))&&an(c.kind,"operator"===a.kind||"viewer"===a.kind?"console":e.has(a.id)?"plugin":"trierarch"===a.type?"trierarch":(null===a.harness?void 0:ae[a.harness])??"other")&&an(c.type,a.type)&&(0,aj.carriesEvery)(a,c.labelValueIds)}(a,o)}).toSorted((a,b)=>s(a,b)||a.name.localeCompare(b.name)||a.id.localeCompare(b.id))),w=c.query.trim();return(0,b.jsxs)("div",{"data-slot":"fleet-table","data-state":"ready",className:"flex flex-col gap-3",children:[(0,b.jsx)(bh,{ships:a,view:c,onViewChange:d,shownCount:v.length,squadronsOf:l,labels:m}),void 0===m?null:(0,b.jsx)(a2,{groups:(0,aj.filterGroupsOf)(m),picked:(0,aj.pickedChips)(c.filters.labelValueIds,m),onPick:a=>{d(a4(c,[...c.filters.labelValueIds,a]))},onRemove:a=>{d(a4(c,c.filters.labelValueIds.filter(b=>b!==a)))},onClear:()=>{d(a4(c,[]))}}),0===v.length?(0,b.jsx)(aB.EmptyState,{variant:"no-results",title:""===w?"No ships match these filters.":`No ships match “${w}”.`,action:(0,b.jsx)(g.Button,{size:"xs","data-testid":"fleet-clear-filters",onClick:()=>{d({...al,sort:c.sort})},children:(t=at(c.filters)>0,""===w?"Clear filters":t?"Clear search and filters":"Clear search")})}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(bk,{ships:v,labels:m,sort:c.sort,onSort:a=>{var b;d({...c,sort:(b=c.sort,b?.column!==a?{column:a,direction:"ascending"}:"ascending"===b.direction?{column:a,direction:"descending"}:null)})},...u}),(0,b.jsx)(bl,{ships:v,...u})]})]})}function bn({view:a,onViewChange:c,newShipIds:d,renderRowActions:e}){let f=(0,o.useFleetSnapshot)(),g=(0,q.useNow)(),h=(0,E.useSquadrons)(),i=(0,o.useLabelContext)(),j=(0,U.usePluginShipIds)();return(0,b.jsx)("section",{"aria-label":"Fleet",className:"flex flex-col gap-3",children:(0,b.jsx)(bm,{ships:f.data??[],view:a,onViewChange:c,state:f.isPending?"loading":f.isError?"error":"ready",error:{detail:f.error?.message,onRetry:()=>{f.refetch()}},highlightedShipIds:d,now:g,renderRowActions:e,squadronsOf:h.data?(0,V.shipsInSquadrons)(h.data):void 0,labels:i,pluginShipIds:j})})}var bo=a.i(53805),bp=a.i(71027),bq=a.i(21521),br=a.i(91003),bs=a.i(38023),bt=a.i(73224),bu=a.i(65563),bv=a.i(67336),bw=a.i(10572),bx=a.i(34159);a.s(["OverviewPage",0,function({view:a,isCommissionAsked:i}){let j=(0,e.useRouter)(),k=(0,o.useFleetSnapshot)(),l=(0,bv.useLiveFleet)(),m=(0,bs.useConsoleFrame)(),n=(0,C.messageLimitReached)((0,A.useFleetLimits)().data),p=(0,B.useHostedAccountUrl)(),q=(0,bu.useAccess)(),r=(0,bx.usePluginNav)(),[u,v]=(0,f.useState)(!1),[w,x]=(0,f.useOptimistic)(a);(0,bw.useSignInWhenSessionEnds)([k.error,l.error]);let y=a=>{let b=(function(a){let b=new URLSearchParams;for(let[c,d]of(""!==a.query&&b.set("q",a.query),[["status",a.filters.status],["crew",a.filters.crewRequest],["kind",a.filters.kind],["type",a.filters.type],["squadron",a.filters.squadron]]))for(let a of d)b.append(c,a);for(let c of(a.filters.isRetiredShown&&b.set("retired","1"),a.filters.labelValueIds))b.append("label",c);return null!==a.sort&&(b.set("sort",a.sort.column),"descending"===a.sort.direction&&b.set("order","desc")),b})(a).toString();(0,f.startTransition)(()=>{x(a),j.replace(""===b?"/":`/?${b}`,{scroll:!1})})};return(0,b.jsxs)(br.ListPage,{...m,title:"Fleet overview",description:k.data?function(a){let b=s(a.ships).length,c=a.ships.filter(a=>"agent"===a.kind&&"retired"===a.status).length;if(0===b&&0===c)return a.canCommission?"Only argo so far. Ships you commission appear here.":"Only argo so far.";let d=0===c?"":`, ${String(c)} retired`;return`${1===b?"1 active ship":`${String(b)} active ships`} and argo${d}. Changes appear as they happen.`}({ships:k.data,canCommission:q.canManage}):"Loading your fleet",primaryAction:(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2 max-sm:flex-col max-sm:items-stretch",children:[(0,b.jsx)(g.Button,{render:(0,b.jsx)(d.default,{href:"/labels"}),nativeButton:!1,icon:(0,b.jsx)(c.Tag,{}),"data-testid":"overview-labels",children:q.canDefineLabels?"Manage labels":"View labels"}),q.canManage?(0,b.jsx)(I,{isOpen:u||i,onOpenChange:b=>{v(b),!b&&i&&y(a)}}):null]}),live:l.live,children:[(0,b.jsx)(bt.FleetSegments,{active:"ships",needsCrewCount:r.needsCrewCount}),void 0===n?null:(0,b.jsx)(bq.LimitNotice,{...(0,C.messageLimitNotice)(n),accountUrl:p,testId:"overview-message-limit"}),(0,b.jsx)(T,{}),(0,b.jsx)(t,{}),(0,b.jsx)(bn,{view:w,onViewChange:y,newShipIds:l.newShipIds,renderRowActions:(a,c)=>(0,b.jsx)(bo.ShipActions,{ship:a,layout:"table"===c?"menu":"phone"===c?"sheet":"next",compose:h.ComposeMessage,crewLineFlow:bp.NewCrewLineFlow})})]})}],59446)}];
1
+ module.exports=[259446,a=>{"use strict";var b=a.i(187924),c=a.i(31247),d=a.i(238246),e=a.i(50944),f=a.i(572131),g=a.i(831856),h=a.i(86002),i=a.i(256987),j=a.i(679520),k=a.i(188931),l=a.i(483556),m=a.i(233809);let n={ok:"border-tone-ok-border bg-tone-ok-bg text-tone-ok-fg",waiting:"border-tone-waiting-border bg-tone-waiting-bg text-tone-waiting-fg",attention:"border-tone-attention-border bg-tone-attention-bg text-tone-attention-fg"};function o({label:a,shortLabel:c,value:e,detail:f,href:g,icon:h,tone:i,testId:j}){return(0,b.jsxs)(d.default,{href:g,"data-testid":j,className:"flex min-w-0 flex-col gap-2 rounded-lg border border-border bg-card px-4.5 py-4 shadow-sm transition-colors duration-(--duration-fast) hover:bg-accent max-sm:gap-1.5 max-sm:rounded-xl max-sm:px-3.5 max-sm:py-3",children:[(0,b.jsxs)("span",{className:"flex items-center justify-between gap-2 text-meta font-medium text-muted-foreground",children:[(0,b.jsx)("span",{className:"max-sm:hidden",children:a}),(0,b.jsx)("span",{className:"sm:hidden",children:c??a}),(0,b.jsx)("span",{className:(0,l.classNames)("flex size-6.5 shrink-0 items-center justify-center rounded-md border max-sm:size-5.5",n[i]),children:(0,b.jsx)(h,{"aria-hidden":!0,className:"size-3.5"})})]}),void 0===e?(0,b.jsx)(m.Skeleton,{className:"h-7 w-10 max-sm:h-6"}):(0,b.jsx)("span",{className:"text-[28px] leading-none font-semibold tracking-tight tabular-nums text-foreground max-sm:text-2xl",children:e}),void 0===f?(0,b.jsx)(m.Skeleton,{className:"h-4 w-32"}):(0,b.jsx)("span",{className:"truncate text-meta text-muted-foreground",children:f})]})}var p=a.i(534564),q=a.i(804049),r=a.i(872872),s=a.i(134191);function t(a){return a.find(a=>"agent"===a.kind)}function u(){var a;let c,d,e=(0,s.useShipCounts)(),f=(0,p.useStuckCount)().data,g=(0,q.useNow)(),h=e.data&&(c=t((a={counts:e.data,now:g}).counts),d=c?.longestWait??null,{activeCount:c?.active??0,crewedCount:c?.crewed??0,awaitingCount:c?.awaitingCrew??0,longestWait:null===d?void 0:{name:d.name,wait:(0,r.duration)(new Date(d.awaitingCrewSince),a.now)}});return h?.activeCount===0?null:(0,b.jsxs)("div",{className:"grid grid-cols-3 gap-4 max-sm:grid-cols-2 max-sm:gap-2.5","data-testid":"overview-metrics",children:[(0,b.jsx)(o,{label:"Ships crewed",shortLabel:"Crewed",value:h?.crewedCount,detail:h&&`of ${String(h.activeCount)} active ships`,href:"/?status=crewed",icon:k.UserCheck,tone:"ok",testId:"overview-crewed"}),(0,b.jsx)(o,{label:"Awaiting crew",value:h?.awaitingCount,detail:h&&(h.longestWait?`Longest wait: ${h.longestWait.name}, ${h.longestWait.wait}`:"Every active ship is crewed"),href:"/?status=awaitingCrew",icon:i.CircleDashed,tone:"waiting",testId:"overview-awaiting"}),(0,b.jsx)(o,{label:"Stuck",value:f?.count,detail:f&&(null===f.oldestSince?"Delivering":`Deliveries stuck, oldest ${(0,r.duration)(new Date(f.oldestSince),g)}`),href:"/fleet-health",icon:j.OctagonAlert,tone:"attention",testId:"overview-stuck"})]})}var v=a.i(403512),w=a.i(934301),x=a.i(301851),y=a.i(902955),z=a.i(190146),A=a.i(582611),B=a.i(377945),C=a.i(88191),D=a.i(64906),E=a.i(247468),F=a.i(701634),G=a.i(254763),H=a.i(912540),I=a.i(493454),J=a.i(554730);let K=(0,w.lazyDialog)(()=>a.A(159777).then(a=>a.CommissionDialog),a=>a.isOpen),L=(0,w.lazyDialog)(()=>a.A(368359).then(a=>a.StartingPromptDialog),a=>a.isOpen);function M({isOpen:a,onOpenChange:c}){var d;let e,h=(0,D.useFleetLimits)(),i=(0,E.useHostedAccountUrl)(),j=(0,z.useCommissionShip)(),k=(0,z.useRequestCrew)(),l="connected"===(0,I.useTrierarchPluginConnection)(),m=(0,I.useMachines)(),n=(0,G.useSquadronsConnection)(),o=(0,H.useSquadrons)(),[p,q]=(0,f.useState)(!1),[r,s]=(0,f.useState)(null),t=(0,y.offersOf)(m.data??[]),u=(0,z.useLabelContext)(m.data?.map(a=>a.shipId)),{shipLabelsMax:w,fleetScopes:N}=(0,x.useConsoleConstants)(),O=(0,z.useFleetScopes)(),P=void 0===u||void 0===m.data?void 0:(0,A.machineLabelsInputOf)(u,{machines:m.data,shipLabelsMax:w}),Q=(0,I.useCrewSettingsCheck)(a&&l?null===r?(0,y.settingsOf)((0,y.defaultValues)(t)):r:void 0),R=(0,J.useShipTypes)(!1),[S,T]=(0,f.useState)({name:"",type:""}),U=(0,B.useIsShipNameTaken)(S.name),V=(0,J.useTypeShipCount)(S.type),W=(a,b)=>{j.mutate(a,{onSuccess:({shipId:d})=>{c(!1);let e=l&&void 0!==b;e||q(!0),void 0!==b&&k.mutate({shipId:d,settings:b.settings},{onSuccess:()=>{e&&(0,C.showToast)({title:`${a.name} commissioned, crew requested`,description:"The trierarch plugin assigns a trierarch that fits.",tone:"success"})},onError:b=>{(0,C.showToast)({title:`Couldn’t request a crew for ${a.name}`,description:`${b.message} The ship is commissioned; request a crew on its page.`,tone:"error"})}})}})};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(g.Button,{variant:"primary",icon:(0,b.jsx)(v.Plus,{}),"data-testid":"fleet-commission",onClick:()=>{j.reset(),s(null),c(!0)},children:"Commission ship"}),(0,b.jsx)(K,{types:R??[],taken:{names:!0===U?[S.name]:[],typeShipCounts:new Map(void 0===V?[]:[[S.type,V]])},onTypedChange:T,isOpen:a,onOpenChange:c,isPending:j.isPending,error:j.error?.message,shipLimit:(0,F.shipLimitReached)(h.data),accountUrl:i,scopeGroups:void 0===O.data?void 0:(d=O.data,e=new Map(d.filter(({declaredBy:a})=>null===a).flatMap(({scopes:a})=>a.map(({scope:a,description:b})=>[a,b]))),[{title:"Fleet access",namespace:null,scopes:N.flatMap(a=>{let b=e.get(a);return void 0===b?[]:[{scope:a,description:b}]})},...d.flatMap(({namespace:a,declaredBy:b,scopes:c})=>null===b||0===c.length?[]:[{title:b.name,namespace:a,scopes:c.map(({scope:a,description:b})=>({scope:a,description:b}))}])]),...l?{crewRequest:{offers:t,squadrons:"connected"===n?(o.data??[]).filter(a=>"disbanded"!==a.state).map(a=>a.id):void 0,...void 0===P?{}:{machineLabels:P},check:Q.data,onSettingsChange:s}}:{},onSubmit:(a,b)=>{let c={...a,idempotencyKey:crypto.randomUUID()};l&&void 0!==b?Q.checkNow().catch(()=>void 0).then(a=>{a?.kind!=="refused"&&W(c,b)}).catch(()=>void 0):W(c,b)}}),(0,b.jsx)(L,{shipName:j.variables?.name??"",state:"shown",prompt:j.data?.prompt??void 0,crewLines:j.data?.crewLines??void 0,isOpen:p&&void 0!==j.data,onOpenChange:a=>{a||(q(!1),j.reset())},onConfirm:()=>void 0})]})}var N=a.i(164831);let O={name:"infinity",size:24,node:[["path",{d:"M6 16c5 0 7-8 12-8a4 4 0 0 1 0 8c-5 0-7-8-12-8a4 4 0 1 0 0 8",key:"18ogeb"}]]};O.node;let P=(0,N.default)(O);var Q=a.i(674746),R=a.i(598238),S=a.i(523063);let T={ships:{label:"Ships",unit:"ships",Icon:R.Ship},messages:{label:"Messages today",unit:"messages",Icon:Q.Send}},U={below:"bg-primary",at:"bg-tone-waiting-fg",over:"bg-tone-attention-fg"},V={at:"at-limit",over:"over-limit"};function W({kind:a,count:c,limit:d,resetsAt:e}){let{label:f,unit:g,Icon:h}=T[a],i=(0,F.meterState)({count:c,limit:d}),j=V[i],k=(0,F.meterCaption)({count:c,limit:d}),m=null===d?0:0===d?1:Math.min(c/d,1);return(0,b.jsxs)("div",{"data-testid":`limit-meter-${a}`,"data-state":i,className:"flex flex-col gap-2 rounded-lg border border-border bg-card p-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-meta font-medium text-muted-foreground",children:[(0,b.jsx)(h,{"aria-hidden":!0,className:"size-(--size-icon-sm)"}),f]}),void 0===j?null:(0,b.jsx)(S.StatusBadge,{status:j})]}),(0,b.jsxs)("p",{className:"flex items-baseline gap-1.5",children:[(0,b.jsx)("span",{className:"text-metric font-semibold tabular-nums",children:(0,F.meterCount)(c)}),(0,b.jsx)("span",{className:"text-body text-muted-foreground",children:null===d?g:`of ${(0,F.meterCount)(d)} ${g}`})]}),null===d?(0,b.jsxs)("p",{className:"inline-flex items-center gap-1.5 text-meta text-muted-foreground",children:[(0,b.jsx)(P,{"aria-hidden":!0,className:"size-(--size-icon-sm)"}),"No limit"]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{role:"meter","aria-label":`${f}: ${String(c)} of ${String(d)}`,"aria-valuenow":c,"aria-valuemin":0,"aria-valuemax":d,className:"block h-1.5 overflow-hidden rounded-full bg-secondary",children:(0,b.jsx)("span",{className:(0,l.classNames)("block h-full rounded-full","none"===i?void 0:U[i]),style:{width:`${String(100*m)}%`}})}),(0,b.jsxs)("p",{"data-testid":`limit-meter-${a}-caption`,className:"text-caption text-muted-foreground",children:[k,void 0===e?null:` \xb7 resets at ${(0,F.resetTime)(e)}`]})]})]})}function X(){let a=(0,D.useFleetLimits)().data,c=(0,E.useHostedAccountUrl)();return(0,F.hasLimits)(a)?(0,b.jsxs)("section",{"aria-labelledby":"overview-limits-title","data-testid":"overview-limits",className:"flex flex-col gap-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)("h2",{id:"overview-limits-title",className:"text-body font-semibold",children:"Limits"}),void 0===c?null:(0,b.jsx)("a",{href:c,"data-testid":"overview-limits-view",className:"text-meta font-medium text-primary underline underline-offset-2",children:"View limits"})]}),(0,b.jsxs)("div",{className:"grid gap-3 sm:grid-cols-2",children:[(0,b.jsx)(W,{kind:"ships",count:a.ships.count,limit:a.ships.limit}),(0,b.jsx)(W,{kind:"messages",count:a.dailyMessages.count,limit:a.dailyMessages.limit,resetsAt:a.dailyMessages.resetsAt})]})]}):null}var Y=a.i(345065),Z=a.i(408219),$=a.i(442871),_=a.i(726112),aa=a.i(433217),ab=a.i(328422),ac=a.i(347761),ad=a.i(514499);function ae(a,b){return a.reduce((a,c)=>a+b(c),0)}function af(a,b){let c=b.status?.includes("retired")??!1;return{shown:ae(a.view,a=>a.active+(c?a.retired:0)),total:ae(a.fleet,a=>a.active+a.retired),retired:ae(a.fleet,a=>a.retired)}}var ag=a.i(755681),ah=a.i(925039),ai=a.i(171094),aj=a.i(233540);let ak={name:"sliders-horizontal",size:24,node:[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]]};ak.node;let al=(0,N.default)(ak);var am=a.i(387005),an=a.i(849219);let ao=["console","claudeCode","codex","trierarch","plugin","other"],ap={console:"Console",claudeCode:"Claude Code",codex:"Codex",trierarch:"Trierarch",plugin:"Plugin",other:"Other"};function aq(a){return ao.some(b=>b===a)}var ar=a.i(60271);let as={query:"",filters:{status:[],crewRequest:[],kind:[],type:[],squadron:[],isRetiredShown:!1,labelValueIds:[]},sort:null};function at(a){return[...new Set([...a.values()].map(a=>a.squadronId))].toSorted((a,b)=>a.localeCompare(b))}let au={crewed:"Crewed",awaitingCrew:"Awaiting crew"};function av(a){return ax(a).length+a.labelValueIds.length}function aw(a,b){return 0===b.length?void 0:`${a}: ${b.join(", ")}`}function ax(a){return[aw("Status",a.status.map(a=>au[a])),aw("Crew request",a.crewRequest.map(ar.crewRequestKeyWord)),aw("Kind",a.kind.map(a=>ap[a])),aw("Type",a.type),aw("Squadron",a.squadron),a.isRetiredShown?"Retired shown":void 0].filter(a=>void 0!==a)}var ay=a.i(565230),az=a.i(176166),aA=a.i(675297),aB=a.i(145098),aC=a.i(945469),aD=a.i(677339),aE=a.i(24173),aF=a.i(240392),aG=a.i(770534),aH=a.i(136501);function aI({chips:a,width:c,testId:e,href:f}){if(0===a.length)return null;let{shown:g,folded:h}=0===c?{shown:[],folded:a}:(0,ay.rowChips)(a,c);return(0,b.jsxs)("span",{"data-testid":e,className:"flex min-w-0 items-center gap-1 overflow-hidden",children:[g.map((a,c)=>(0,b.jsx)(aH.LabelChip,{chip:a,className:0===c?"min-w-0 shrink":void 0},a.valueId)),0===h.length?null:void 0===f?(0,b.jsxs)("span",{title:h.map(ay.chipTitleOf).join("; "),className:"inline-flex h-5.5 shrink-0 items-center rounded-sm bg-secondary px-1.5 text-caption font-medium text-foreground tabular-nums",children:["+",h.length,(0,b.jsx)("span",{className:"sr-only",children:" more labels"})]}):(0,b.jsxs)(d.default,{href:f,title:h.map(ay.chipTitleOf).join("; "),"aria-label":`View ${h.length} more labels`,className:"inline-flex h-5.5 shrink-0 items-center rounded-sm bg-secondary px-1.5 text-caption font-medium text-foreground tabular-nums hover:underline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring",children:["+",h.length]})]})}var aJ=a.i(350808);let aK={name:"signal",size:24,node:[["path",{d:"M2 20h.01",key:"4haj6o"}],["path",{d:"M7 20v-4",key:"j294jx"}],["path",{d:"M12 20v-8",key:"i3yub9"}],["path",{d:"M17 20V8",key:"1tkaf5"}],["path",{d:"M22 4v16",key:"sih9yq"}]]};aK.node;let aL=(0,N.default)(aK),aM={name:"signal-low",size:24,node:[["path",{d:"M2 20h.01",key:"4haj6o"}],["path",{d:"M7 20v-4",key:"j294jx"}]]};aM.node;let aN=(0,N.default)(aM),aO={name:"signal-medium",size:24,node:[["path",{d:"M2 20h.01",key:"4haj6o"}],["path",{d:"M7 20v-4",key:"j294jx"}],["path",{d:"M12 20v-8",key:"i3yub9"}]]};aO.node;let aP=(0,N.default)(aO);var aQ=a.i(14501);let aR={fresh:{Icon:aL,tone:"text-tone-ok-fg"},while:{Icon:aP,tone:"text-muted-foreground"},long:{Icon:aN,tone:"text-tone-waiting-fg"}};function aS({seenAt:a,now:c,testId:d}){let e;if(null===a)return null;let f=new Date(a),g=(e=c.getTime()-f.getTime())<6e4?"fresh":e<=9e5?"while":"long",{Icon:h,tone:i}=aR[g],j=(0,r.lastSeen)(f,c);return(0,b.jsxs)(aQ.Tooltip,{children:[(0,b.jsx)(aQ.TooltipTrigger,{render:(0,b.jsx)("span",{role:"img","aria-label":j,"data-testid":d,"data-signal":g,className:(0,l.classNames)("inline-flex [&_svg]:size-(--size-icon) max-sm:[&_svg]:size-4",i)}),children:(0,b.jsx)(h,{"aria-hidden":!0})}),(0,b.jsx)(aQ.TooltipContent,{children:j})]})}var aT=a.i(240108);function aU({model:a,now:c}){let d=function(a,b){var c;let d=new Date(a.statedAt),e=Math.max(0,b.getTime()-d.getTime()),f=(c=a.id).startsWith("@")||/@\d+\.\d+\.\d+$/.test(c)?"Software":"Model";if(e<6e4)return`${f}, stated ${String(Math.floor(e/1e3))} s ago`;let g=(0,r.relativeTime)(d,b);return`${f}, stated ${g.charAt(0).toLowerCase()}${g.slice(1)}`}(a,c);return(0,b.jsxs)(aQ.Tooltip,{children:[(0,b.jsxs)(aQ.TooltipTrigger,{render:(0,b.jsx)("span",{"data-testid":"fleet-model-hint",className:"min-w-0 truncate font-mono text-id text-muted-foreground"}),children:[a.id,(0,b.jsxs)("span",{className:"sr-only",children:[", ",d]})]}),(0,b.jsx)(aQ.TooltipContent,{children:(0,b.jsxs)("span",{className:"flex flex-col gap-0.5",children:[(0,b.jsx)("span",{className:"font-mono",children:a.id}),(0,b.jsx)("span",{children:d})]})})]})}var aV=a.i(892717),aW=a.i(858523),aX=a.i(990468),aY=a.i(248136);function aZ({label:a,items:c,picked:d,onPickedChange:e,size:f="sm",valueClassName:g,testId:h}){let i=function(a,b){let[c]=a;return void 0===c?{kind:"all"}:1===a.length?{kind:"one",word:b[c]??c}:{kind:"several",count:a.length}}(d,c);return(0,b.jsxs)(aY.Select,{multiple:!0,value:0===d.length?["all"]:[...d],onValueChange:a=>{e(d.length>0&&a.includes("all")?[]:a.filter(a=>"all"!==a))},children:[(0,b.jsx)(aY.SelectTrigger,{size:f,"aria-label":a,"data-testid":h,children:(0,b.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:a}),"several"===i.kind?(0,b.jsxs)("span",{className:"inline-flex size-5 items-center justify-center rounded-full bg-primary text-caption font-semibold text-primary-foreground tabular-nums",children:[i.count,(0,b.jsx)("span",{className:"sr-only",children:" picked"})]}):(0,b.jsx)("span",{className:(0,l.classNames)("font-medium","one"===i.kind?g:void 0),children:"one"===i.kind?i.word:"All"})]})}),(0,b.jsxs)(aY.SelectContent,{children:[(0,b.jsx)(aY.SelectItem,{value:"all",children:"All"}),Object.entries(c).map(([a,c])=>(0,b.jsx)(aY.SelectItem,{value:a,className:g,children:c},a))]})]})}function a$({label:a,allLabel:c="All",items:d,picked:e,onPickedChange:f,layout:h="chips",testId:i}){return(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsx)("span",{"aria-hidden":!0,className:"text-meta font-medium text-muted-foreground",children:a}),(0,b.jsxs)("div",{role:"group","aria-label":a,"data-testid":i,className:"segments"===h?"flex gap-1.5 [&>*]:flex-1":"flex flex-wrap gap-1.5",children:[(0,b.jsx)(g.Button,{variant:0===e.length?"primary":"secondary",size:"touch","aria-pressed":0===e.length,onClick:()=>{f([])},children:c}),Object.entries(d).map(([a,c])=>{let d=e.includes(a);return(0,b.jsx)(g.Button,{variant:d?"primary":"secondary",size:"touch","aria-pressed":d,onClick:()=>{f(d?e.filter(b=>b!==a):[...e,a])},children:c},a)})]})]})}var a_=a.i(589027),a0=a.i(303894),a1=a.i(819721),a2=a.i(860275);let a3=(0,a1.default)(async()=>{},{loadableGenerated:{modules:[259068]},ssr:!1});function a4({groups:a,picked:c,onPick:e,trigger:g}){let[h,i]=(0,f.useState)(!1);return(0,b.jsxs)(a2.Popover,{open:h,onOpenChange:i,children:[(0,b.jsx)(a2.PopoverTrigger,{render:g}),(0,b.jsxs)(a2.PopoverContent,{align:"start",sideOffset:6,className:"w-80 p-2","data-testid":"label-filter-popover",children:[(0,b.jsx)("span",{className:"block px-2 pt-1 pb-2 text-body font-medium",children:"Filter by label"}),(0,b.jsx)(a3,{groups:a,pickedValueIds:c.map(a=>a.valueId),onPick:a=>{e(a),i(!1)}}),(0,b.jsxs)("p",{className:"mt-2 flex items-center justify-between gap-2 border-t border-border px-2 pt-2 text-meta text-muted-foreground",children:["Exact matches, all must hold.",(0,b.jsx)(d.default,{href:"/labels",className:"font-medium text-foreground hover:underline","data-testid":"label-filter-manage",children:"Manage labels"})]})]})]})}function a5({groups:a,picked:d,onPick:e}){return(0,b.jsx)(a4,{groups:a,picked:d,onPick:e,trigger:(0,b.jsxs)(g.Button,{variant:"secondary",size:"sm",icon:(0,b.jsx)(c.Tag,{}),"data-testid":"fleet-filter-labels",children:["Labels",0===d.length?null:(0,b.jsxs)("span",{className:"inline-flex size-5 items-center justify-center rounded-full bg-primary text-caption font-semibold text-primary-foreground tabular-nums",children:[d.length,(0,b.jsx)("span",{className:"sr-only",children:" picked"})]}),(0,b.jsx)(a_.ChevronDown,{"aria-hidden":!0,className:"text-muted-foreground"})]})})}function a6({groups:a,picked:c,onPick:d,onRemove:e,onClear:f}){return 0===c.length?null:(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-x-2 gap-y-1.5 text-meta max-sm:hidden","data-testid":"fleet-picked-labels",children:[(0,b.jsx)("span",{className:"text-muted-foreground",children:"Ships with"}),c.map((a,c)=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-2",children:[0===c?null:(0,b.jsx)("span",{className:"text-muted-foreground",children:"and"}),(0,b.jsx)(aH.LabelChip,{chip:a,testId:"fleet-picked-label",onRemove:()=>{e(a.valueId)}})]},a.valueId)),(0,b.jsx)(a4,{groups:a,picked:c,onPick:d,trigger:(0,b.jsx)(g.Button,{variant:"ghost",size:"xs",icon:(0,b.jsx)(v.Plus,{}),children:"Add"})}),(0,b.jsx)("span",{"aria-hidden":!0,className:"h-4 w-px bg-border"}),(0,b.jsx)(g.Button,{variant:"ghost",size:"xs",onClick:f,"data-testid":"fleet-labels-clear",children:"Clear labels"})]})}function a7({groups:a,picked:c,onPick:e,onRemove:h}){let[i,j]=(0,f.useState)(!1);return(0,b.jsxs)("div",{className:"flex flex-col gap-2","data-testid":"fleet-filter-labels-touch",children:[(0,b.jsxs)("span",{className:"flex items-center gap-2 text-meta font-medium text-muted-foreground",children:["Labels ",(0,b.jsx)("span",{className:"font-normal",children:"all must hold"})]}),0===c.length?null:(0,b.jsx)("div",{className:"flex flex-wrap items-center gap-2 text-meta",children:c.map((a,c)=>(0,b.jsxs)("span",{className:"inline-flex items-center gap-2",children:[0===c?null:(0,b.jsx)("span",{className:"text-muted-foreground",children:"and"}),(0,b.jsx)(aH.LabelChip,{chip:a,onRemove:()=>{h(a.valueId)}})]},a.valueId))}),i?(0,b.jsx)("div",{className:"rounded-lg border border-border p-2",children:(0,b.jsx)(a3,{groups:a,pickedValueIds:c.map(a=>a.valueId),size:"touch",onPick:a=>{e(a),j(!1)}})}):(0,b.jsx)(g.Button,{variant:"secondary",size:"touch",icon:(0,b.jsx)(v.Plus,{}),className:"self-start",onClick:()=>{j(!0)},children:"Add label"}),(0,b.jsxs)(d.default,{href:"/labels",className:"inline-flex items-center gap-1.5 self-start text-meta text-muted-foreground hover:underline [&_svg]:size-(--size-icon-sm)",children:[(0,b.jsx)(a0.Tags,{"aria-hidden":!0}),"All labels and their owners"]})]})}function a8(a,b){return{...a,filters:{...a.filters,labelValueIds:b}}}function a9(a){return Object.hasOwn(au,a)}function ba(a){return Object.fromEntries((0,ar.crewRequestKeysOf)(a).map(a=>[a,(0,ar.crewRequestKeyWord)(a)]))}function bb(a,b){return Object.hasOwn(b,a)}function bc(a){return Object.fromEntries(a.map(a=>[a,a]))}function bd({ship:a,squadron:c,isPluginShip:d}){return"operator"===a.kind?(0,b.jsxs)(az.Badge,{variant:"kind",children:[(0,b.jsx)(am.UserRound,{"aria-hidden":!0}),"operator"]}):"viewer"===a.kind?(0,b.jsxs)(az.Badge,{variant:"kind","data-testid":"fleet-viewer",children:[(0,b.jsx)(ag.Eye,{"aria-hidden":!0}),"viewer"]}):d?(0,b.jsxs)(az.Badge,{variant:"kind","data-testid":"fleet-plugin",children:[(0,b.jsx)(ai.Plug,{"aria-hidden":!0}),"plugin"]}):c?.role===null?(0,b.jsxs)(az.Badge,{variant:"kind","data-testid":"fleet-flagship",children:[(0,b.jsx)(ah.Flag,{"aria-hidden":!0}),"flagship"]}):null}function be({ship:a,now:c}){return"crewed"!==a.status||"viewer"===a.kind?null:(0,b.jsxs)("span",{"data-testid":"fleet-runs-on",className:"flex min-w-0 items-center gap-3 max-sm:flex-wrap max-sm:gap-y-1",children:[(0,b.jsx)(aT.LocationTag,{kind:"operator"===a.kind&&null!==a.location?"DEVICE":a.location?.kind??null,description:a.location?.description,harness:"operator"===a.kind?"console":a.harness,size:"sm",className:"shrink-0"}),"agent"===a.kind&&null!==a.model?(0,b.jsx)(aU,{model:a.model,now:c}):null]})}function bf({ship:a,squadron:c,labels:d}){let e=c?.role===null?void 0:c,f=void 0===d?[]:(0,ay.chipsOf)(a,d).filter(a=>void 0===e||("squadron"!==a.key||a.value!==e.squadronId)&&("squadron-role"!==a.key||a.value!==e.role));return void 0===e&&0===f.length?null:(0,b.jsxs)("span",{className:"flex min-w-0 items-center gap-2 overflow-hidden",children:[void 0===e?null:(0,b.jsx)("span",{className:"min-w-0 shrink",title:null===e.role?e.squadronId:`${e.squadronId} \xb7 ${e.role}`,children:(0,b.jsx)(aW.SquadronTag,{squadronId:e.squadronId,size:"sm"})}),(0,b.jsx)(aI,{chips:f,width:22*(void 0===e),testId:"fleet-labels",href:`/ships/${a.id}`})]})}function bg({ship:a,now:c,next:d}){let e=("agent"===a.kind||"plugin"===a.kind)&&"crewed"===a.status;return(0,b.jsxs)("span",{className:"flex min-w-0 items-center gap-2 max-sm:flex-col max-sm:items-stretch [&:has(button)>[data-testid=fleet-report]]:hidden",children:[e?(0,b.jsx)(aV.ReportLine,{report:a.report,now:c,variant:"row",isTimeInTitle:!0,testId:"fleet-report"}):null,d]})}function bh({types:a,view:c,onViewChange:d,size:e,squadronsOf:f,labels:h}){let i=ba((0,x.useConsoleConstants)().crewStatuses),{filters:j}=c,k=a=>{d({...c,filters:{...j,...a}})},l="touch"===e;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(aZ,{label:"Status",items:au,picked:j.status,onPickedChange:a=>{k({status:a.filter(a9)})},size:e,testId:l?void 0:"fleet-filter-status"}),(0,b.jsx)(aZ,{label:"Crew request",items:i,picked:j.crewRequest,onPickedChange:a=>{k({crewRequest:a.filter(a=>bb(a,i))})},size:e,testId:l?void 0:"fleet-filter-crew-request"}),(0,b.jsx)(aZ,{label:"Kind",items:ap,picked:j.kind,onPickedChange:a=>{k({kind:a.filter(aq)})},size:e,testId:l?void 0:"fleet-filter-kind"}),(0,b.jsx)(aZ,{label:"Type",items:bc(a),picked:j.type,onPickedChange:a=>{k({type:a})},size:e,valueClassName:"font-mono",testId:l?void 0:"fleet-filter-type"}),f&&(0,b.jsx)(aZ,{label:"Squadron",items:bc(at(f)),picked:j.squadron,onPickedChange:a=>{k({squadron:a})},size:e,testId:l?void 0:"fleet-filter-squadron"}),void 0===h||l?null:(0,b.jsx)(a5,{groups:(0,ay.filterGroupsOf)(h),picked:(0,ay.pickedChips)(j.labelValueIds,h),onPick:a=>{d(a8(c,[...j.labelValueIds,a]))}}),ax(j).length>0&&!l?(0,b.jsx)(g.Button,{variant:"ghost",size:"xs","data-testid":"fleet-filters-clear",onClick:()=>{d({...c,filters:as.filters})},children:"Clear filters"}):null]})}function bi(a){return void 0===a?"":` (${String(a.retired)})`}function bj({counts:a,view:c,onViewChange:d}){let e="fleet-show-retired";return(0,b.jsxs)("div",{className:"inline-flex items-center gap-2",children:[(0,b.jsx)(aC.Switch,{id:e,"data-testid":"fleet-show-retired",checked:c.filters.isRetiredShown,onCheckedChange:a=>{d({...c,filters:{...c.filters,isRetiredShown:a}})}}),(0,b.jsxs)(aB.Label,{htmlFor:e,className:"text-meta font-normal text-muted-foreground",children:["Show retired",bi(a)]})]})}function bk({types:a,counts:c,view:d,onViewChange:e,squadronsOf:f,labels:h}){let i=ba((0,x.useConsoleConstants)().crewStatuses),{filters:j}=d,k=a=>{e({...d,filters:{...j,...a}})},l=av(j);return(0,b.jsxs)(an.Sheet,{children:[(0,b.jsx)(an.SheetTrigger,{render:(0,b.jsx)(g.Button,{size:"touch",isIconOnly:!0,"aria-label":l>0?`Filter ships, ${String(l)} active`:"Filter ships","data-testid":"fleet-filters-open",icon:(0,b.jsx)(al,{}),className:"relative sm:hidden",children:l>0?(0,b.jsx)("span",{"aria-hidden":!0,className:"absolute top-1.5 right-1.5 size-2 rounded-full bg-primary"}):null})}),(0,b.jsxs)(an.SheetContent,{side:"bottom",children:[(0,b.jsxs)(an.SheetHeader,{className:"flex-row items-center justify-between",children:[(0,b.jsx)(an.SheetTitle,{children:"Filter ships"}),(0,b.jsx)(g.Button,{variant:"ghost",size:"touch","data-testid":"fleet-filters-reset",onClick:()=>{e({...d,filters:as.filters})},children:"Reset"})]}),(0,b.jsxs)(an.SheetBody,{className:"flex flex-col gap-4 pb-4",children:[(0,b.jsx)(a$,{label:"Status",layout:"segments",items:au,picked:j.status,onPickedChange:a=>{k({status:a.filter(a9)})}}),(0,b.jsx)(a$,{label:"Crew request",items:i,picked:j.crewRequest,onPickedChange:a=>{k({crewRequest:a.filter(a=>bb(a,i))})}}),(0,b.jsx)(a$,{label:"Kind",items:ap,picked:j.kind,onPickedChange:a=>{k({kind:a.filter(aq)})},testId:"fleet-filter-kind-touch"}),(0,b.jsx)(a$,{label:"Type",allLabel:"All types",items:bc(a),picked:j.type,onPickedChange:a=>{k({type:a})}}),f&&(0,b.jsx)(a$,{label:"Squadron",items:bc(at(f)),picked:j.squadron,onPickedChange:a=>{k({squadron:a})}}),void 0===h?null:(0,b.jsx)(a7,{groups:(0,ay.filterGroupsOf)(h),picked:(0,ay.pickedChips)(j.labelValueIds,h),onPick:a=>{e(a8(d,[...j.labelValueIds,a]))},onRemove:a=>{e(a8(d,j.labelValueIds.filter(b=>b!==a)))}}),(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2 py-1",children:[(0,b.jsxs)(aB.Label,{htmlFor:"fleet-show-retired-touch",className:"text-body-touch font-normal",children:["Show retired ships ",(0,b.jsx)("span",{className:"text-muted-foreground",children:bi(c)})]}),(0,b.jsx)(aC.Switch,{id:"fleet-show-retired-touch",checked:j.isRetiredShown,onCheckedChange:a=>{k({isRetiredShown:a})}})]}),(0,b.jsx)(an.SheetClose,{render:(0,b.jsx)(g.Button,{size:"touch","data-testid":"fleet-filters-apply"}),children:void 0===c?"Show ships":1===c.shown?"Show 1 ship":`Show ${String(c.shown)} ships`})]})]})]})}function bl({view:a,onViewChange:c,labels:d}){let e=ax(a.filters),f=void 0===d?[]:(0,ay.pickedChips)(a.filters.labelValueIds,d);return 0===e.length&&0===f.length?null:(0,b.jsxs)("div",{className:"flex w-full flex-wrap items-center gap-1.5 sm:hidden","data-testid":"fleet-filter-chips",children:[e.map(a=>(0,b.jsx)(az.Badge,{variant:"outline",className:"max-w-full truncate",children:a},a)),f.map(d=>(0,b.jsx)(aH.LabelChip,{chip:d,onRemove:()=>{c(a8(a,a.filters.labelValueIds.filter(a=>a!==d.valueId)))}},d.valueId)),(0,b.jsx)(g.Button,{variant:"ghost",size:"touch",onClick:()=>{c({...a,filters:as.filters})},children:"Clear filters"})]})}function bm({types:a,counts:c,view:d,onViewChange:e,squadronsOf:f,labels:g}){return(0,b.jsxs)("div",{"data-slot":"fleet-toolbar",className:"flex flex-wrap items-center gap-2 sm:flex-nowrap sm:items-start",children:[(0,b.jsxs)("div",{className:"flex min-w-0 flex-1 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)(aA.Input,{type:"search","aria-label":"Search ships by name or type",placeholder:"Search ships by name","data-testid":"fleet-search",value:d.query,onChange:a=>{e({...d,query:a.target.value})},leadingIcon:(0,b.jsx)(aj.Search,{}),className:"h-(--size-control-sm) text-meta max-sm:h-(--size-control-touch) max-sm:text-input-touch"})}),(0,b.jsx)("div",{className:"max-sm:hidden sm:contents",children:(0,b.jsx)(bh,{types:a,view:d,onViewChange:e,squadronsOf:f,labels:g,size:"sm"})}),(0,b.jsx)(bk,{types:a,counts:c,view:d,onViewChange:e,squadronsOf:f,labels:g})]}),(0,b.jsx)(bl,{view:d,onViewChange:e,labels:g}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-2 max-sm:w-full sm:h-(--size-control-sm)",children:[(0,b.jsx)("div",{className:"max-sm:hidden",children:(0,b.jsx)(bj,{counts:c,view:d,onViewChange:e})}),void 0===c?null:(0,b.jsxs)("p",{"aria-live":"polite",className:"text-meta text-muted-foreground tabular-nums","data-testid":"fleet-count",children:[c.shown," of ",c.total," ships"]})]})]})}function bn({ship:a}){return(0,b.jsx)(aX.ShipName,{name:a.name,shipId:a.id,isSuffixShown:"retired"===a.status,href:"operator"===a.kind?"/inbox":`/ships/${a.id}`,className:"[&_a]:max-sm:whitespace-normal [&_a]:max-sm:break-all [&_a]:max-sm:text-body-touch"})}let bo=[{key:"ship",column:"ship",head:"Ship"},{key:"status",column:"status",head:"Status"},{key:"report",column:"report",head:"Report"},{key:"squadronAndLabels",head:"Squadron and labels"},{key:"runsOn",column:"runsOn",head:"Runs on"},{key:"seen",column:"seen",head:"Seen"}];function bp({ships:a,highlightedShipIds:c,now:d,renderRowActions:e,squadronsOf:f,labels:g,pluginShipIds:h,sort:i,onSort:j}){return(0,b.jsx)("div",{className:"max-sm:hidden",children:(0,b.jsxs)(aD.Table,{"aria-label":"Ships",className:"min-w-320 table-fixed",children:[(0,b.jsxs)("colgroup",{children:[(0,b.jsx)("col",{className:"w-56"}),(0,b.jsx)("col",{className:"w-40"}),(0,b.jsx)("col",{className:"w-64"}),(0,b.jsx)("col",{className:"w-56"}),(0,b.jsx)("col",{className:"w-80"}),(0,b.jsx)("col",{className:"w-12"}),(0,b.jsx)("col",{className:"w-12"})]}),(0,b.jsx)(aD.TableHeader,{children:(0,b.jsxs)(aD.TableRow,{children:[bo.map(({key:a,column:c,head:d})=>void 0===j||void 0===c?(0,b.jsx)(aD.TableHead,{children:d},a):(0,b.jsx)(aD.TableSortHead,{"data-testid":`fleet-sort-${c}`,direction:i?.column===c?i.direction:null,onSort:()=>{j(c)},children:d},a)),(0,b.jsx)(aD.TableHead,{children:(0,b.jsx)("span",{className:"sr-only",children:"Actions"})})]})}),(0,b.jsx)(aD.TableBody,{children:a.map(a=>(0,b.jsxs)(aD.TableRow,{"data-testid":`fleet-row-${a.name}`,"data-new":c?.has(a.id)?"":void 0,className:"h-12",children:[(0,b.jsx)(aD.TableCell,{children:(0,b.jsxs)("span",{className:"flex min-w-0 items-center gap-2 whitespace-nowrap",children:[(0,b.jsx)(bn,{ship:a}),(0,b.jsx)(bd,{ship:a,squadron:f?.get(a.id),isPluginShip:h?.has(a.id)??!1})]})}),(0,b.jsx)(aD.TableCell,{children:(0,b.jsx)(S.StatusBadge,{status:a.status})}),(0,b.jsx)(aD.TableCell,{children:(0,b.jsx)(bg,{ship:a,now:d,next:e?.(a,"next")})}),(0,b.jsx)(aD.TableCell,{children:(0,b.jsx)(bf,{ship:a,squadron:f?.get(a.id),labels:g})}),(0,b.jsx)(aD.TableCell,{children:(0,b.jsx)(be,{ship:a,now:d})}),(0,b.jsx)(aD.TableCell,{children:(0,b.jsx)(aS,{seenAt:a.lastSeenAt,now:d,testId:"fleet-last-seen"})}),(0,b.jsx)(aD.TableCell,{className:"w-10 text-right",children:e?.(a,"table")})]},a.id))})]})})}function bq({ships:a,highlightedShipIds:c,now:d,renderRowActions:e,squadronsOf:f,pluginShipIds:g}){return(0,b.jsx)("ul",{"aria-label":"Ships",className:"overflow-hidden rounded-lg border border-border bg-card sm:hidden",children:a.map(a=>(0,b.jsxs)("li",{"data-testid":`fleet-card-${a.name}`,"data-new":c?.has(a.id)?"":void 0,className:"flex items-start gap-2 border-b border-border px-3.5 py-3 last:border-0 data-new:animate-highlight",children:[(0,b.jsxs)("div",{className:"flex min-w-0 grow flex-col gap-1.5",children:[(0,b.jsx)("div",{className:"text-body-touch",children:(0,b.jsx)(bn,{ship:a})}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(S.StatusBadge,{status:a.status}),(0,b.jsx)(bd,{ship:a,squadron:f?.get(a.id),isPluginShip:g?.has(a.id)??!1})]}),(0,b.jsx)(bf,{ship:a,squadron:f?.get(a.id)}),(0,b.jsx)(bg,{ship:a,now:d,next:e?.(a,"next")}),(0,b.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-x-3 gap-y-1",children:[(0,b.jsx)(be,{ship:a,now:d}),(0,b.jsx)(aS,{seenAt:a.lastSeenAt,now:d})]})]}),e?.(a,"phone")]},a.id))})}function br({ships:a,counts:c,isOnlyArgo:d,types:e,more:f,view:h,onViewChange:i,state:j,error:k,highlightedShipIds:l,now:m,renderRowActions:n,emptyAction:o,squadronsOf:p,labels:q,pluginShipIds:r}){let s;if("loading"===j)return(0,b.jsxs)("div",{"data-slot":"fleet-table","data-state":"loading",className:"flex flex-col gap-3",children:[(0,b.jsx)(aJ.LoadingSkeleton,{variant:"table",rows:6,label:"Loading the fleet",className:"max-sm:hidden"}),(0,b.jsx)(aJ.LoadingSkeleton,{variant:"list",rows:5,label:"Loading the fleet",className:"sm:hidden"})]});if("error"===j)return(0,b.jsx)(aF.InlineError,{variant:"page",title:"Couldn’t load the fleet",description:"This page couldn’t reach the fleet server. Check that the server is running and reachable from this browser, then try again.",detail:k?.detail,onRetry:k?.onRetry});let t={highlightedShipIds:l,now:m,renderRowActions:n,squadronsOf:p,pluginShipIds:r};if(d){let c=a.filter(a=>"operator"===a.kind);return(0,b.jsxs)("div",{"data-slot":"fleet-table","data-state":"empty",className:"flex flex-col gap-3",children:[(0,b.jsx)(bp,{ships:c,labels:q,...t}),(0,b.jsx)(bq,{ships:c,...t}),(0,b.jsx)(aE.EmptyState,{icon:(0,b.jsx)(R.Ship,{}),title:"No ships besides argo yet",description:"argo is your own ship: messages to the operator land in its inbox. Commission a ship to add an agent to the fleet.",action:o})]})}let u=h.query.trim();return(0,b.jsxs)("div",{"data-slot":"fleet-table","data-state":"ready",className:"flex flex-col gap-3",children:[(0,b.jsx)(bm,{types:e,counts:c,view:h,onViewChange:i,squadronsOf:p,labels:q}),void 0===q?null:(0,b.jsx)(a6,{groups:(0,ay.filterGroupsOf)(q),picked:(0,ay.pickedChips)(h.filters.labelValueIds,q),onPick:a=>{i(a8(h,[...h.filters.labelValueIds,a]))},onRemove:a=>{i(a8(h,h.filters.labelValueIds.filter(b=>b!==a)))},onClear:()=>{i(a8(h,[]))}}),0===a.length?(0,b.jsx)(aE.EmptyState,{variant:"no-results",title:""===u?"No ships match these filters.":`No ships match “${u}”.`,action:(0,b.jsx)(g.Button,{size:"xs","data-testid":"fleet-clear-filters",onClick:()=>{i({...as,sort:h.sort})},children:(s=av(h.filters)>0,""===u?"Clear filters":s?"Clear search and filters":"Clear search")})}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(bp,{ships:a,labels:q,sort:h.sort,onSort:a=>{var b;i({...h,sort:(b=h.sort,b?.column!==a?{column:a,direction:"ascending"}:"ascending"===b.direction?{column:a,direction:"descending"}:null)})},...t}),(0,b.jsx)(bq,{ships:a,...t}),f?.hasMore===!0?(0,b.jsx)(aG.LoadMore,{what:"more ships",isLoading:f.isLoading,isFailed:f.isFailed,onLoad:f.onLoad,area:"fleet"}):null]})]})}function bs({view:a,onViewChange:c,placedFirstShipIds:d,renderRowActions:e}){var f,g;let h,i,j=(0,q.useNow)(),k=(0,H.useSquadrons)(),l=(0,z.useLabelContext)(),m=(0,Y.usePluginShipIds)(),n=k.data?(0,Z.shipsInSquadrons)(k.data):void 0,o=function({query:a,filters:b},c){var d;let e=0===b.squadron.length?[]:(d=b.squadron,[...c.squadronsOf??new Map].filter(([,a])=>d.includes(a.squadronId)).map(([a])=>a));if(b.squadron.length>0&&0===e.length)return null;let f=a.trim(),g=b.status.length>0?[...b.status]:b.isRetiredShown?["awaitingCrew","crewed","retired"]:[];return{...""===f?{}:{query:f},...0===g.length?{}:{status:[...g]},...0===b.type.length?{}:{type:[...b.type]},...0===b.crewRequest.length?{}:{crewRequest:[...b.crewRequest]},...0===b.labelValueIds.length?{}:{valueIds:[...b.labelValueIds]},...0===e.length?{}:{shipIds:e},...0===b.kind.length?{}:{kind:[...b.kind],pluginShipIds:[...c.pluginShipIds]}}}(a,{squadronsOf:n,pluginShipIds:m}),p=(g=null===(f=a.sort)?void 0:{column:f.column,direction:f.direction},h=(0,ad.useTRPC)(),i=(0,ab.pagedListOf)((0,_.useInfiniteQuery)(h.fleet.list.infiniteQueryOptions({...o,sort:g,limit:ab.CONSOLE_PAGE_SIZE},{enabled:null!==o,getNextPageParam:ab.nextCursorOf,placeholderData:$.keepPreviousData,refetchInterval:z.LAST_SEEN_REFRESH_MS}))),null===o?{...i,items:[],hasMore:!1}:{...i,items:i.items&&(0,ac.shipRowsOf)(i.items,o)}),{counts:r,isOnlyArgo:s}=function(a){let b=(0,ad.useTRPC)(),c=(0,aa.useQuery)(b.fleet.shipCounts.queryOptions({filter:a??{}},{enabled:null!==a,placeholderData:$.keepPreviousData})),d=(0,aa.useQuery)(b.fleet.shipCounts.queryOptions());if(void 0===d.data)return{counts:void 0,isOnlyArgo:!1};let e=0===ae(d.data,a=>"operator"===a.kind?0:a.active);return null===a?{counts:af({view:[],fleet:d.data},{}),isOnlyArgo:e}:{counts:void 0===c.data?void 0:af({view:c.data,fleet:d.data},a),isOnlyArgo:e}}(o),t=(0,J.useShipTypes)(a.filters.isRetiredShown);return(0,b.jsx)("section",{"aria-label":"Fleet",className:"flex flex-col gap-3",children:(0,b.jsx)(br,{ships:p.items??[],counts:r,isOnlyArgo:s,types:[...new Set([...t??[],...a.filters.type])].toSorted((a,b)=>a.localeCompare(b)),more:{hasMore:p.hasMore,isLoading:p.isLoadingMore,isFailed:p.isLoadMoreFailed,onLoad:p.loadMore},view:a,onViewChange:c,state:p.isFailed?"error":void 0===p.items?"loading":"ready",error:{detail:p.error instanceof Error?p.error.message:void 0,onRetry:p.retry},highlightedShipIds:d,now:j,renderRowActions:e,squadronsOf:n,labels:l,pluginShipIds:m})})}var bt=a.i(753805),bu=a.i(271027),bv=a.i(221521),bw=a.i(591003),bx=a.i(38023),by=a.i(773224),bz=a.i(565563),bA=a.i(167336),bB=a.i(110572),bC=a.i(534159);a.s(["OverviewPage",0,function({view:a,isCommissionAsked:i}){let j=(0,e.useRouter)(),k=(0,s.useShipCounts)(),l=(0,bA.useLiveFleet)(),m=(0,bx.useConsoleFrame)(),n=(0,F.messageLimitReached)((0,D.useFleetLimits)().data),o=(0,E.useHostedAccountUrl)(),p=(0,bz.useAccess)(),q=(0,bC.usePluginNav)(),[r,v]=(0,f.useState)(!1),[w,x]=(0,f.useOptimistic)(a);(0,bB.useSignInWhenSessionEnds)([k.error,l.error]);let y=a=>{let b=(function(a){let b=new URLSearchParams;for(let[c,d]of(""!==a.query&&b.set("q",a.query),[["status",a.filters.status],["crew",a.filters.crewRequest],["kind",a.filters.kind],["type",a.filters.type],["squadron",a.filters.squadron]]))for(let a of d)b.append(c,a);for(let c of(a.filters.isRetiredShown&&b.set("retired","1"),a.filters.labelValueIds))b.append("label",c);return null!==a.sort&&(b.set("sort",a.sort.column),"descending"===a.sort.direction&&b.set("order","desc")),b})(a).toString();(0,f.startTransition)(()=>{x(a),j.replace(""===b?"/":`/?${b}`,{scroll:!1})})};return(0,b.jsxs)(bw.ListPage,{...m,title:"Fleet overview",description:k.data?function(a){let b=t(a.counts),c=b?.active??0,d=b?.retired??0;if(0===c&&0===d)return a.canCommission?"Only argo so far. Ships you commission appear here.":"Only argo so far.";let e=0===d?"":`, ${String(d)} retired`;return`${1===c?"1 active ship":`${String(c)} active ships`} and argo${e}. Changes appear as they happen.`}({counts:k.data,canCommission:p.canManage}):"Loading your fleet",primaryAction:(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2 max-sm:flex-col max-sm:items-stretch",children:[(0,b.jsx)(g.Button,{render:(0,b.jsx)(d.default,{href:"/labels"}),nativeButton:!1,icon:(0,b.jsx)(c.Tag,{}),"data-testid":"overview-labels",children:p.canDefineLabels?"Manage labels":"View labels"}),p.canManage?(0,b.jsx)(M,{isOpen:r||i,onOpenChange:b=>{v(b),!b&&i&&y(a)}}):null]}),live:l.live,children:[(0,b.jsx)(by.FleetSegments,{active:"ships",needsCrewCount:q.needsCrewCount}),void 0===n?null:(0,b.jsx)(bv.LimitNotice,{...(0,F.messageLimitNotice)(n),accountUrl:o,testId:"overview-message-limit"}),(0,b.jsx)(X,{}),(0,b.jsx)(u,{}),(0,b.jsx)(bs,{view:w,onViewChange:y,placedFirstShipIds:l.placedFirstShipIds,renderRowActions:(a,c)=>(0,b.jsx)(bt.ShipActions,{ship:a,layout:"table"===c?"menu":"phone"===c?"sheet":"next",compose:h.ComposeMessage,crewLineFlow:bu.NewCrewLineFlow})})]})}],259446)}];
2
2
 
3
3
  //# sourceMappingURL=packages_console_app_%28console%29_overview-page_tsx_15siba6._.js.map