@qredence/fleet 0.7.4 → 0.8.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 (165) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +5 -4
  3. package/bin/fleet-prime.mjs +33 -6
  4. package/bin/prime-runtime.mjs +79 -0
  5. package/dist/runtime-manifest.json +32 -0
  6. package/dist/web/client/assets/DialogTitle-RY2UDuCY.js +1 -0
  7. package/dist/web/client/assets/FloatingPortal-XC0MCNnD.js +1 -0
  8. package/dist/web/client/assets/action-swap-BWRUNKQA.js +1 -0
  9. package/dist/web/client/assets/{alert-dialog-DtXvVhsF.js → alert-dialog-DGNvg0B1.js} +1 -1
  10. package/dist/web/client/assets/arrow-up-right-CG9RNk4p.js +1 -0
  11. package/dist/web/client/assets/{artifacts-panel-Bseg97yQ.js → artifacts-panel-BGXpKRJ7.js} +1 -1
  12. package/dist/web/client/assets/{badge-C--lf3bb.js → badge-DM06QVqB.js} +6 -6
  13. package/dist/web/client/assets/button-CWYjn8Zk.js +1 -0
  14. package/dist/web/client/assets/{card-Hngi3HGC.js → card-Dj1SnGUU.js} +1 -1
  15. package/dist/web/client/assets/{chat-command-palette-D_rm1r9d.js → chat-command-palette-PenyaZBw.js} +1 -1
  16. package/dist/web/client/assets/code-block-pKKmFZ5w.js +3 -0
  17. package/dist/web/client/assets/collapsible-Bk6zCsRX.js +1 -0
  18. package/dist/web/client/assets/{command-CmtCIDdH.js → command-imgUMV3r.js} +1 -1
  19. package/dist/web/client/assets/{create-project-dialog-m-9aoobN.js → create-project-dialog-C00d5yCq.js} +1 -1
  20. package/dist/web/client/assets/createBaseUIEventDetails-DIxvaz-Y.js +1 -0
  21. package/dist/web/client/assets/{dialog-Ddouieuu.js → dialog-zCNOQI63.js} +1 -1
  22. package/dist/web/client/assets/eye-iNSvs0UA.js +1 -0
  23. package/dist/web/client/assets/file-code-corner-BkDULqko.js +1 -0
  24. package/dist/web/client/assets/{fork-picker-dialog-DfGlB17w.js → fork-picker-dialog-Cgi48NnT.js} +1 -1
  25. package/dist/web/client/assets/globals-BuMuB_ea.css +2 -0
  26. package/dist/web/client/assets/{index-Bz5W4EOn.js → index-BqBdQGWs.js} +3 -3
  27. package/dist/web/client/assets/input-7g8_nw-Z.js +1 -0
  28. package/dist/web/client/assets/{input-group-EPMGh55u.js → input-group-Nq03Qums.js} +1 -1
  29. package/dist/web/client/assets/{ipython-tool-CMhnRVrC.js → ipython-tool-bieUhw9K.js} +1 -1
  30. package/dist/web/client/assets/markdown-CvBfbPCn.js +2 -0
  31. package/dist/web/client/assets/markdown-code-rFOkzN5N.js +4 -0
  32. package/dist/web/client/assets/{message-queue-Bg2MiJHM.js → message-queue-sSljtjYz.js} +1 -1
  33. package/dist/web/client/assets/{model-selector-list-BiU_7ivt.js → model-selector-list-Cp687pdm.js} +1 -1
  34. package/dist/web/client/assets/{notify-DhtmUPfE.js → notify-Cqdu6EV8.js} +1 -1
  35. package/dist/web/client/assets/{openui-renderer-MIB3JKYa.js → openui-renderer-BdYTcn-_.js} +50 -50
  36. package/dist/web/client/assets/{prompt-input-Dy-DSPqF.js → prompt-input-CoV1gTUQ.js} +1 -1
  37. package/dist/web/client/assets/{prompt-suggestions-CrpAiKeB.js → prompt-suggestions-CAY5JI-C.js} +1 -1
  38. package/dist/web/client/assets/provider-label-QrVOwKBO.js +1 -0
  39. package/dist/web/client/assets/reasoning-line-DGdPUMwT.js +1 -0
  40. package/dist/web/client/assets/rehype-katex-DITkIpVl.js +259 -0
  41. package/dist/web/client/assets/{repl-panel-DN5kZAcB.js → repl-panel-5xgkDXO5.js} +1 -1
  42. package/dist/web/client/assets/{resources-panel-DD6iWOF3.js → resources-panel-aJCKt9eF.js} +1 -1
  43. package/dist/web/client/assets/right-panel-registry-BaLZiKny.js +2 -0
  44. package/dist/web/client/assets/routes-BkFkhfO3.js +16 -0
  45. package/dist/web/client/assets/select-BhV4ikeN.js +1 -0
  46. package/dist/web/client/assets/session-activity-panel-Bc4-HSfb.js +1 -0
  47. package/dist/web/client/assets/session-reasoning-panel-CjJJK_bq.js +1 -0
  48. package/dist/web/client/assets/session-tool-renderer-C7mYeUOs.js +166 -0
  49. package/dist/web/client/assets/{session-tree-panel-BBwP_EK2.js → session-tree-panel-By9m9tGB.js} +1 -1
  50. package/dist/web/client/assets/settings-dialog-Dpt4Ha_m.js +2 -0
  51. package/dist/web/client/assets/shield-check-7HDd-2Fn.js +1 -0
  52. package/dist/web/client/assets/{skeleton-DNAr5ULI.js → skeleton-B_Lq2XFl.js} +1 -1
  53. package/dist/web/client/assets/{skeleton-loaders-B28mF4tJ.js → skeleton-loaders-DWc1eDL3.js} +1 -1
  54. package/dist/web/client/assets/sparkles-BwVa9zQJ.js +1 -0
  55. package/dist/web/client/assets/{spinner-CSBXk3Lo.js → spinner-B5TaKP7k.js} +1 -1
  56. package/dist/web/client/assets/{subagent-chat-panel-DhvBO4dQ.js → subagent-chat-panel-DsPmLZSf.js} +1 -1
  57. package/dist/web/client/assets/subagent-transcript-CNQ9wGk2.js +1 -0
  58. package/dist/web/client/assets/{subagents-panel-DRo8Xs6j.js → subagents-panel-gQ9BLfV3.js} +1 -1
  59. package/dist/web/client/assets/surfaces-BUjUJTyD.js +1 -0
  60. package/dist/web/client/assets/switch-C7Myu-Dt.js +1 -0
  61. package/dist/web/client/assets/toast-DlbKi6K-.js +1 -0
  62. package/dist/web/client/assets/tool-output-normalizer-CADgEiI4.js +4 -0
  63. package/dist/web/client/assets/tool-part-normalizer-CYK62WZM.js +4 -0
  64. package/dist/web/client/assets/tool-result-bjAGZ2qm.js +5 -0
  65. package/dist/web/client/assets/tool-timeline-eNqH1zj7.js +2 -0
  66. package/dist/web/client/assets/trace-IsV5RRvM.js +1 -0
  67. package/dist/web/client/assets/ui-preferences-B-PNDkyY.js +1 -0
  68. package/dist/web/client/assets/use-hover-capable-CLq8BADD.js +1 -0
  69. package/dist/web/client/assets/useBaseUiId-lKfDDIcw.js +1 -0
  70. package/dist/web/client/assets/useButton-CvcmqA2s.js +1 -0
  71. package/dist/web/client/assets/useRender-Bbk_fl72.js +1 -0
  72. package/dist/web/client/assets/{utils-CFDGLzf6.js → utils-oBThwhjm.js} +1 -1
  73. package/dist/web/client/assets/{workspace-panel-DdZutYnd.js → workspace-panel-Da5I4p_t.js} +1 -1
  74. package/dist/web/client/assets/workspace-path-nav-D-77sJ_A.js +2 -0
  75. package/dist/web/client/assets/wrench-BXX_Ah2s.js +1 -0
  76. package/dist/web/client/bundle-budget.json +6 -6
  77. package/dist/web/server/{_tanstack-start-manifest_v-YlngJGUa-YTWBGR7L.js → _tanstack-start-manifest_v-BiNPG4xt-BZTMSM2I.js} +33 -28
  78. package/dist/web/server/{artifacts-panel-COSC8o7j-GKW2HH2G.js → artifacts-panel-CqGBNU4q-UHNMC7PK.js} +23 -27
  79. package/dist/web/server/{chat-command-palette-CuOWdzkk-PKZQ5EZP.js → chat-command-palette-B94-zIEz-ES2ZB4ZF.js} +8 -10
  80. package/dist/web/server/{chunk-GLSR4ZI2.js → chunk-2FHYWKDN.js} +669 -833
  81. package/dist/web/server/{chunk-EBC7QORX.js → chunk-5GUEYYYO.js} +3680 -2098
  82. package/dist/web/server/{chunk-GLH2GWMG.js → chunk-7L5PCCYR.js} +411 -306
  83. package/dist/web/server/{chunk-KHHXJZK7.js → chunk-ABMGW6QH.js} +2784 -1662
  84. package/dist/web/server/{chunk-36CAMOVG.js → chunk-BAHZXA4D.js} +6 -6
  85. package/dist/web/server/{chunk-IN2ATSEG.js → chunk-CZLGB3NE.js} +2 -2
  86. package/dist/web/server/{chunk-WCKKN5BR.js → chunk-E6T36NM5.js} +347 -583
  87. package/dist/web/server/{chunk-ORCOCCER.js → chunk-EAKPTSWR.js} +4 -4
  88. package/dist/web/server/chunk-EL2JCDAM.js +270 -0
  89. package/dist/web/server/{chunk-6GTTTYSE.js → chunk-FB2QLQTN.js} +67 -73
  90. package/dist/web/server/{chunk-LLO4MNGE.js → chunk-K67IDUAI.js} +24 -26
  91. package/dist/web/server/{chunk-YU6RHHK6.js → chunk-LQM6QR7S.js} +10 -12
  92. package/dist/web/server/chunk-LTTBT3J7.js +129 -0
  93. package/dist/web/server/{chunk-TMQ3MT3D.js → chunk-OAYEN3JV.js} +2 -0
  94. package/dist/web/server/{chunk-ZUZPJNLY.js → chunk-OSPDNT7S.js} +829 -642
  95. package/dist/web/server/{chunk-XA7EOCHM.js → chunk-SGAQVAYL.js} +2 -2
  96. package/dist/web/server/chunk-SI5IQSG4.js +206 -0
  97. package/dist/web/server/{chunk-AKSDWYJY.js → chunk-SYS5FDNA.js} +5 -5
  98. package/dist/web/server/{chunk-QSM3BRMA.js → chunk-WSK55TKE.js} +169 -156
  99. package/dist/web/server/{chunk-BUKOEXE7.js → chunk-YQO36OP6.js} +2 -2
  100. package/dist/web/server/{create-project-dialog-0-arQpsX-ZELQKHS5.js → create-project-dialog-CFPX6Ihl-EO4XTINS.js} +12 -14
  101. package/dist/web/server/{dist-7G2NZPF4.js → dist-GQUZLXN5.js} +2 -2
  102. package/dist/web/server/{dist-E5637ZAY.js → dist-MN5NWCX6.js} +1 -1
  103. package/dist/web/server/{fork-picker-dialog-fj9p33Mq-I5SA3GLJ.js → fork-picker-dialog-B2RBFzoZ-R6GXPSPL.js} +6 -8
  104. package/dist/web/server/{markdown-CShfYRVO-RBTK7TRB.js → markdown-BvCfOB26-VDH4YOQD.js} +9 -6
  105. package/dist/web/server/{markdown-code-BDV_2b2T-6JYA5FWZ.js → markdown-code-SYc-BQvp-MR4FXT5C.js} +48 -9
  106. package/dist/web/server/{message-queue-BBC843IU-GY4ZIMM4.js → message-queue-D32rLiJo-HEBRGH5B.js} +6 -8
  107. package/dist/web/server/{model-selector-list-DE6aLNXt-LJZMCYOI.js → model-selector-list-DKzt_xEN-5ZPU6XDY.js} +8 -10
  108. package/dist/web/server/{openui-renderer-C3aqSKuS-PWLWJFYO.js → openui-renderer-CeVtOdYl-PY37PCJI.js} +12 -14
  109. package/dist/web/server/{prompt-suggestions-CpTK_fHV-UKJDTLVM.js → prompt-suggestions-CpTK_fHV-Q4ILLZKC.js} +1 -1
  110. package/dist/web/server/{rehype-katex-IDPYWU6M.js → rehype-katex-CYHGKI6Q.js} +490 -843
  111. package/dist/web/server/{repl-panel-1kSS1UGd-U64BPA7X.js → repl-panel-1kSS1UGd-DDM5ADGZ.js} +3 -3
  112. package/dist/web/server/{resources-panel-DWb0eGKa-K4EM3H7Y.js → resources-panel-S4NHlpz7-NF7WYYSR.js} +7 -9
  113. package/dist/web/server/{router-DZYr-9uT-AEXHEFXF.js → router-DVKxZik_-254GZAJW.js} +5 -6
  114. package/dist/web/server/{routes-vYxWRhis-AAZ73SNP.js → routes-BTxAklRp-UM7ZTLLP.js} +50 -30
  115. package/dist/web/server/server.js +2 -2
  116. package/dist/web/server/session-activity-panel-Bz2GrdMk-PCOXG46X.js +173 -0
  117. package/dist/web/server/session-reasoning-panel-CpiTdyQz-O3B5CDKS.js +62 -0
  118. package/dist/web/server/{session-tool-renderer-Dtt74Mts-7YYNSWRV.js → session-tool-renderer-BZiOxtt1-T3ZGAQKX.js} +10 -13
  119. package/dist/web/server/{session-tree-panel-HNl6R9VZ-4JUF34M7.js → session-tree-panel-CzkE0RFB-P4KWA7S2.js} +7 -9
  120. package/dist/web/server/{settings-dialog-DGZBA5Z_-6HYFMPNZ.js → settings-dialog-BUgVNpr1-THSYIOZL.js} +18 -21
  121. package/dist/web/server/{subagent-chat-panel-DuB4hqUk-LDCAJOCL.js → subagent-chat-panel-mw3kEFfK-CDYX7LST.js} +13 -16
  122. package/dist/web/server/{subagents-panel-wAvx3-Rs-L6UTDFUX.js → subagents-panel-2ZJfYrXG-NDJKHJHD.js} +15 -18
  123. package/dist/web/server/{workspace-panel-CPzJZwgv-YS7PTI5C.js → workspace-panel-xznrPDLt-QCJRZOF3.js} +7 -9
  124. package/package.json +2 -2
  125. package/dist/web/client/assets/DialogTitle-D-zqaHvF.js +0 -1
  126. package/dist/web/client/assets/FloatingPortal-73ZRZeD9.js +0 -1
  127. package/dist/web/client/assets/action-swap-BcFwS6is.js +0 -1
  128. package/dist/web/client/assets/button-BJZe4vNJ.js +0 -1
  129. package/dist/web/client/assets/chevron-up-CqeJYyZO.js +0 -1
  130. package/dist/web/client/assets/collapsible-DauSnbYp.js +0 -1
  131. package/dist/web/client/assets/createBaseUIEventDetails-DklXWq23.js +0 -1
  132. package/dist/web/client/assets/eye-Cs0lNChA.js +0 -1
  133. package/dist/web/client/assets/globals-C961mr-b.css +0 -2
  134. package/dist/web/client/assets/input-Def1xOZz.js +0 -1
  135. package/dist/web/client/assets/markdown-Big27m-v.js +0 -2
  136. package/dist/web/client/assets/markdown-code-7L4RiS50.js +0 -3
  137. package/dist/web/client/assets/provider-label-B_vy60P0.js +0 -1
  138. package/dist/web/client/assets/rehype-katex-A4PtQgTX.js +0 -259
  139. package/dist/web/client/assets/right-panel-registry-hKJN__3l.js +0 -2
  140. package/dist/web/client/assets/routes-C3h32Lj_.js +0 -16
  141. package/dist/web/client/assets/select-Buvv1tIo.js +0 -1
  142. package/dist/web/client/assets/session-reasoning-panel-DmEbXOrR.js +0 -1
  143. package/dist/web/client/assets/session-tool-renderer-Daol5fJw.js +0 -169
  144. package/dist/web/client/assets/settings-dialog-DYbx3xuq.js +0 -2
  145. package/dist/web/client/assets/sparkles-D_ANe-HY.js +0 -1
  146. package/dist/web/client/assets/subagent-transcript-Bx-rHni-.js +0 -1
  147. package/dist/web/client/assets/surfaces-B8xTOFeK.js +0 -1
  148. package/dist/web/client/assets/switch-CDfAwEvs.js +0 -1
  149. package/dist/web/client/assets/terminal-Ceucj7us.js +0 -1
  150. package/dist/web/client/assets/toast-9zXN-yVk.js +0 -1
  151. package/dist/web/client/assets/tool-part-normalizer-NbPs9kd1.js +0 -4
  152. package/dist/web/client/assets/tool-result-BccnO34D.js +0 -4
  153. package/dist/web/client/assets/tool-timeline-DlBZyd4j.js +0 -1
  154. package/dist/web/client/assets/ui-preferences-1YaENqef.js +0 -1
  155. package/dist/web/client/assets/use-hover-capable-MwFjBLZQ.js +0 -1
  156. package/dist/web/client/assets/workspace-path-nav-BRwuLsFl.js +0 -2
  157. package/dist/web/client/assets/wrench-BYnD147U.js +0 -1
  158. package/dist/web/server/chunk-CHSKEU3V.js +0 -166
  159. package/dist/web/server/chunk-OO7NBFQQ.js +0 -15
  160. package/dist/web/server/chunk-OXEAXEWD.js +0 -13
  161. package/dist/web/server/chunk-SIJVVYQT.js +0 -234
  162. package/dist/web/server/chunk-UQV2NU63.js +0 -163
  163. package/dist/web/server/chunk-VUBITQ5X.js +0 -653
  164. package/dist/web/server/session-reasoning-panel-XXU2yIOW-XXCKHISS.js +0 -192
  165. package/dist/web/server/tool-timeline-BKWsrZHK-3LGCOTPH.js +0 -12
package/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.8.0
4
+
5
+ ### Minor Changes
6
+
7
+ - ad6e714: Align conversation activity and code blocks with shadcn patterns, and show available runtime reasoning in conversation traces.
8
+ - ad6e714: Organize agent activity into compact traces and a session Activity tab, with clearer tool output and subagent messages.
9
+ - ef95640: Fleet now provisions the pinned Prime Agent Rust runtime on first launch, verifies the downloaded platform archive and executable checksums, and launches the web UI against that Rust daemon by default.
10
+
11
+ ### Patch Changes
12
+
13
+ - 848b7ca: Map Prime Agent daemon socket frames onto the `ChatStreamEvent` contract in the web server, and read RLM child session headers read-only instead of opening them through the SDK session manager.
14
+ - 2c58710: Web server: add a daemon client for the Prime Agent Rust v0.10.1 daemon (protocol types, socket client, runtime wiring in prime-bridge).
15
+ - d2a7bb9: Route Fleet's remaining Prime Agent v0.9.8 SDK config and transcript access through one temporary legacy bridge, read session transcripts without ever rewriting them, and drop Fleet's duplicate IPython kernel prewarm (the runtime provisions its own kernel). `GET /api/health` no longer reports `kernel`.
16
+ - ad6e714: Redact credentials in activity traces, preserve assistant child reports, improve tool and artifact activity, and handle runtime startup and downloads safely.
17
+ - ad6e714: Handle runtime startup failures and stalled downloads, redact authorization and URL credentials in activity traces, and correct transcript content, artifact placement, downloads, and accessible tool controls.
18
+ - 8487dc6: Remove unreachable web UI code: unused exports, dead helpers, and the unused assistant-ui shadcn registry entry. No behavior change.
19
+
3
20
  ## 0.7.4
4
21
 
5
22
  ### Patch Changes
package/README.md CHANGED
@@ -2,10 +2,11 @@
2
2
 
3
3
  Fleet Prime Agent is Qredence's persistent local workspace for coding and
4
4
  research with AI: a multi-project web chat built on the upstream
5
- [Prime Agent](https://github.com/PrimeIntellect-ai/prime-agent) engine. The
6
- engine is installed as a checksum-pinned dependency and never modified; Fleet
7
- adds the web interface, workspace navigation, streaming tool cards, and
8
- managed IPython kernels.
5
+ [Prime Agent](https://github.com/PrimeIntellect-ai/prime-agent) engine. Fleet
6
+ provisions the pinned Prime Agent Rust runtime on first launch after verifying
7
+ the upstream archive and executable SHA-256 checksums; it never modifies the
8
+ engine. Fleet adds the web interface, workspace navigation, streaming tool
9
+ cards, and managed REPL integration.
9
10
 
10
11
  ## Install
11
12
 
@@ -2,11 +2,21 @@
2
2
 
3
3
  import { spawn } from "node:child_process";
4
4
  import { existsSync } from "node:fs";
5
- import { dirname, resolve } from "node:path";
5
+ import { readFile } from "node:fs/promises";
6
+ import { resolve } from "node:path";
6
7
  import { fileURLToPath } from "node:url";
8
+ import { ensurePrimeRuntime } from "./prime-runtime.mjs";
7
9
 
8
- const packageRoot = resolve(dirname(fileURLToPath(import.meta.resolve("prime-agent"))), "..");
10
+ const packagedManifestPath = fileURLToPath(new URL("../dist/runtime-manifest.json", import.meta.url));
11
+ const sourceManifestPath = fileURLToPath(new URL("../../../PRIME_AGENT_RUNTIME.json", import.meta.url));
12
+ const runtimeManifestPath = existsSync(packagedManifestPath) ? packagedManifestPath : sourceManifestPath;
9
13
  const launcher = fileURLToPath(new URL("../dist/web/launcher.mjs", import.meta.url));
14
+ const isAgentCommand = process.argv[2] === "agent";
15
+ const nativeBinary =
16
+ isAgentCommand || existsSync(launcher)
17
+ ? process.env.FLEET_PRIME_AGENT_BIN ||
18
+ (await ensurePrimeRuntime({ manifest: JSON.parse(await readFile(runtimeManifestPath, "utf8")) }))
19
+ : undefined;
10
20
  const sourceRoot = resolve(fileURLToPath(new URL("../../..", import.meta.url)));
11
21
  const sourceWebApp = resolve(sourceRoot, "web", "app");
12
22
  const viteCli = resolve(sourceRoot, "web", "app", "node_modules", "vite", "bin", "vite.js");
@@ -21,7 +31,11 @@ const workspaceRoot = process.cwd();
21
31
  function run(entrypoint, args, cwd) {
22
32
  const child = spawn(process.execPath, [entrypoint, ...args], {
23
33
  cwd,
24
- env: { ...process.env, PRIME_AGENT_WORKSPACE_ROOT: workspaceRoot },
34
+ env: {
35
+ ...process.env,
36
+ PRIME_AGENT_WORKSPACE_ROOT: workspaceRoot,
37
+ ...(nativeBinary ? { FLEET_PRIME_AGENT_BIN: nativeBinary } : {}),
38
+ },
25
39
  stdio: "inherit",
26
40
  });
27
41
  const forwardSignal = (signal) => {
@@ -36,10 +50,23 @@ function run(entrypoint, args, cwd) {
36
50
  }
37
51
 
38
52
  if (process.argv[2] === "agent") {
39
- const cli = resolve(packageRoot, "dist", "bundle", "cli.js");
40
- run(cli, process.argv.slice(3));
53
+ const args = process.argv.slice(3);
54
+ const child = spawn(nativeBinary, args, { cwd: workspaceRoot, env: process.env, stdio: "inherit" });
55
+ child.on("error", (error) => {
56
+ console.error(
57
+ error.code === "ENOENT"
58
+ ? `Prime Agent binary not found: ${nativeBinary}`
59
+ : `Could not start Prime Agent binary ${nativeBinary}: ${error.code ?? error.message}`,
60
+ );
61
+ process.exitCode = 1;
62
+ });
63
+ for (const signal of ["SIGINT", "SIGTERM"]) process.once(signal, () => child.kill(signal));
64
+ child.on("exit", (code, signal) => {
65
+ if (signal) process.kill(process.pid, signal);
66
+ else process.exitCode = code ?? 1;
67
+ });
41
68
  } else if (existsSync(launcher)) {
42
- run(launcher, process.argv.slice(2));
69
+ run(launcher, process.argv.slice(2), workspaceRoot);
43
70
  } else if (existsSync(viteCli)) {
44
71
  console.warn("Fleet Prime production bundle is not built; starting the source web server.");
45
72
  run(viteCli, ["dev", ...process.argv.slice(2)], sourceWebApp);
@@ -0,0 +1,79 @@
1
+ import { spawnSync } from "node:child_process";
2
+ import { createHash } from "node:crypto";
3
+ import { chmod, mkdir, mkdtemp, open, rename, rm, writeFile } from "node:fs/promises";
4
+ import { arch, homedir, platform } from "node:os";
5
+ import { dirname, join } from "node:path";
6
+
7
+ export function runtimeTarget(os = platform(), cpu = arch()) {
8
+ const target = `${os}-${cpu}`;
9
+ if (!["darwin-arm64", "darwin-x64", "linux-arm64", "linux-x64"].includes(target)) {
10
+ throw new Error(
11
+ `Fleet's Rust Prime Agent runtime does not support ${target}; supported targets: darwin-arm64, darwin-x64, linux-arm64, linux-x64.`,
12
+ );
13
+ }
14
+ return target;
15
+ }
16
+
17
+ export async function ensurePrimeRuntime({
18
+ manifest,
19
+ installRoot,
20
+ home = homedir(),
21
+ fetch: fetchImpl = fetch,
22
+ target = runtimeTarget(),
23
+ }) {
24
+ const runtime = manifest.rust;
25
+ const asset = runtime?.platforms?.[target];
26
+ if (!asset) throw new Error(`Fleet has no pinned Prime Agent runtime for ${target}`);
27
+ const destination = installRoot ?? join(home, ".prime", "fleet", "runtimes", runtime.version, target);
28
+ const executable = join(destination, "prime-agent");
29
+ if (await matchesDigest(executable, asset.executableSha256)) return executable;
30
+
31
+ await mkdir(dirname(destination), { recursive: true, mode: 0o700 });
32
+ const staging = await mkdtemp(join(dirname(destination), ".fleet-prime-runtime-"));
33
+ try {
34
+ const archivePath = join(staging, asset.archive);
35
+ // The release URL comes from Fleet's shipped runtime pin, never session or provider input.
36
+ const response = await fetchImpl(`${runtime.baseUrl}/${asset.archive}`, {
37
+ signal: AbortSignal.timeout(120_000),
38
+ });
39
+ if (!response.ok)
40
+ throw new Error(
41
+ `Could not download Prime Agent ${runtime.version} (${response.status}). Check your network and retry.`,
42
+ );
43
+ const archive = Buffer.from(await response.arrayBuffer());
44
+ if (digest(archive) !== asset.sha256)
45
+ throw new Error(`Prime Agent ${runtime.version} archive checksum mismatch; refusing to install it.`);
46
+ // Only checksum-verified release bytes reach this private staging file.
47
+ await writeFile(archivePath, archive, { mode: 0o600 });
48
+ const unpacked = join(staging, "unpacked");
49
+ await mkdir(unpacked);
50
+ const result = spawnSync("tar", ["-xzf", archivePath, "-C", unpacked], { encoding: "utf8" });
51
+ if (result.status !== 0)
52
+ throw new Error(`Could not extract Prime Agent runtime: ${result.stderr || "tar failed"}`);
53
+ if (!(await matchesDigest(join(unpacked, "prime-agent"), asset.executableSha256))) {
54
+ throw new Error("Extracted Prime Agent executable checksum mismatch; refusing to install it.");
55
+ }
56
+ await chmod(join(unpacked, "prime-agent"), 0o755);
57
+ await mkdir(destination, { recursive: true, mode: 0o700 });
58
+ await rename(join(unpacked, "prime-agent"), executable);
59
+ return executable;
60
+ } finally {
61
+ await rm(staging, { recursive: true, force: true });
62
+ }
63
+ }
64
+
65
+ async function matchesDigest(path, expected) {
66
+ let file;
67
+ try {
68
+ file = await open(path, "r");
69
+ return (await file.stat()).isFile() && digest(await file.readFile()) === expected;
70
+ } catch {
71
+ return false;
72
+ } finally {
73
+ await file?.close();
74
+ }
75
+ }
76
+
77
+ function digest(value) {
78
+ return createHash("sha256").update(value).digest("hex");
79
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "package": "prime-agent",
3
+ "version": "0.9.8",
4
+ "tarball": "https://pub-728493de92a943e2a9b2d17b4719f318.r2.dev/releases/v0.9.8/prime-agent-0.9.8.tgz",
5
+ "sha256": "d7b72785119efc28bfbca8ec4a7f47a1fcdcf47fcd8cebdb60bffaa79e3e1274",
6
+ "rust": {
7
+ "version": "0.10.1",
8
+ "baseUrl": "https://pub-728493de92a943e2a9b2d17b4719f318.r2.dev/releases/v0.10.1",
9
+ "platforms": {
10
+ "darwin-arm64": {
11
+ "archive": "prime-agent-0.10.1-darwin-arm64.tar.gz",
12
+ "sha256": "2b47bd9cefa0b531151aaeb7295073ba0a16cf694177c18b4f9f74a54b24e279",
13
+ "executableSha256": "d96a650b2eb526141ac6e2e68d3d1fad694b8ba3988f0b312572e461bc167e32"
14
+ },
15
+ "darwin-x64": {
16
+ "archive": "prime-agent-0.10.1-darwin-x64.tar.gz",
17
+ "sha256": "9e2812084acead5a2c44209ffac350f762da67a27f4abcc5b417b7a6ef436632",
18
+ "executableSha256": "7b5d5d0770d6c0d7800ada77b74219b4505109026e1bd0de3eb4df73bb6cb4ae"
19
+ },
20
+ "linux-arm64": {
21
+ "archive": "prime-agent-0.10.1-linux-arm64.tar.gz",
22
+ "sha256": "5af68c10a088538fd4990fd18778d8c7fe28c0491083dc069c5177f733770e91",
23
+ "executableSha256": "2853e37410c249f337e44f91cb8a792d76ff1f0b05401f18f09515f1d22a0075"
24
+ },
25
+ "linux-x64": {
26
+ "archive": "prime-agent-0.10.1-linux-x64.tar.gz",
27
+ "sha256": "21ec219183f4134dd23dce9572102e69456066fe374846525561c776d4d1945c",
28
+ "executableSha256": "1fbb506f54a8e9af1f0d123e521d13a765bce34883707c69656f06d5951b314c"
29
+ }
30
+ }
31
+ }
32
+ }
@@ -0,0 +1 @@
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./react-Cvdyeg_0.js";import{t as n}from"./react-dom-B7th3XGm.js";import{t as r}from"./jsx-runtime-NZYk81nU.js";import{$ as i,A as a,E as o,F as s,G as c,J as l,K as u,L as d,M as f,P as p,Q as m,R as h,S as g,U as _,W as v,X as y,Y as b,Z as x,_ as S,b as C,d as w,et as ee,f as te,g as ne,h as re,i as ie,k as ae,q as T,r as oe,t as E,tt as D,x as se}from"./FloatingPortal-XC0MCNnD.js";import{C as O,F as k,I as A,M as j,N as M,O as N,_ as P,a as F,b as I,c as ce,g as L,j as R,l as le,p as z,t as B,w as ue,x as V,y as H}from"./useButton-CvcmqA2s.js";import{E as U,T as W,_ as G,a as K,b as q,f as de,h as fe,o as pe,p as me,r as he,s as ge,t as _e,v as ve,w as ye,x as be}from"./createBaseUIEventDetails-DIxvaz-Y.js";import{n as xe,r as Se,t as Ce}from"./useBaseUiId-lKfDDIcw.js";var J=e(t(),1);n();var Y=r(),we=`data-open`,Te=`data-closed`,X=`data-anchor-hidden`,Z={[d]:``},Q={[d]:``,[h]:``},Ee={[we]:``},De={[Te]:``},Oe={[X]:``},ke={open(e){return e?Z:null}},Ae={open(e){return e?Q:null}},je={open(e){return e?Ee:De},anchorHidden(e){return e?Oe:null}},Me={...je,...be};function Ne(e,t,n=!0){return e.filter(e=>e.parentId===t).flatMap(t=>[...!n||t.context?.open?[t]:[],...Ne(e,t.id,n)])}function Pe(e,t){let n=[],r=e.find(e=>e.id===t)?.parentId;for(;r;){let t=e.find(e=>e.id===r);r=t?.parentId,t&&(n=n.concat(t))}return n}function Fe(e){e.preventDefault(),e.stopPropagation()}function Ie(e){return`nativeEvent`in e}function Le(e){return e.pointerType===``&&e.isTrusted?!0:b&&e.pointerType?e.type===`click`&&e.buttons===1:e.detail===0&&!e.pointerType}function Re(e){return T?!1:!b&&e.width===0&&e.height===0||b&&e.width===1&&e.height===1&&e.pressure===0&&e.detail===0&&e.pointerType===`mouse`||e.width<1&&e.height<1&&e.pressure===0&&e.detail===0&&e.pointerType===`touch`}function ze(e,t){let n=[`mouse`,`pen`];return t||n.push(``,void 0),n.includes(e)}function Be(e){let t=e.type;return t===`click`||t===`mousedown`||t===`keydown`||t===`keyup`}var Ve=0;function He(e,t={}){let{preventScroll:n=!1,sync:r=!1,shouldFocus:i}=t;cancelAnimationFrame(Ve);function a(){i&&!i()||e?.focus({preventScroll:n})}if(r)return a(),A;let o=requestAnimationFrame(a);return Ve=o,()=>{Ve===o&&(cancelAnimationFrame(o),Ve=0)}}var Ue={inert:new WeakMap,"aria-hidden":new WeakMap},We=`data-base-ui-inert`,Ge={inert:new WeakSet,"aria-hidden":new WeakSet},Ke=new WeakMap,qe=0;function Je(e){return Ge[e]}function Ye(e){return e?ue(e)?e.host:Ye(e.parentNode):null}var Xe=(e,t)=>t.map(t=>{if(e.contains(t))return t;let n=Ye(t);return e.contains(n)?n:null}).filter(e=>e!=null),Ze=e=>{let t=new Set;return e.forEach(e=>{let n=e;for(;n&&!t.has(n);)t.add(n),n=n.parentNode}),t},Qe=(e,t,n)=>{let r=[],i=e=>{!e||n.has(e)||Array.from(e.children).forEach(e=>{z(e)!==`script`&&(t.has(e)?i(e):r.push(e))})};return i(e),r};function $e(e,t,n,r,{mark:i=!0}){let a=null;r?a=`inert`:n&&(a=`aria-hidden`);let o=null,s=null,c=Xe(t,e),l=i?Qe(t,Ze(c),new Set(c)):[],u=[],d=[];if(a){let e=Ue[a],n=Je(a);s=n,o=e;let r=Xe(t,Array.from(t.querySelectorAll(`[aria-live]`))),i=c.concat(r);Qe(t,Ze(i),new Set(i)).forEach(t=>{let r=t.getAttribute(a),i=r!==null&&r!==`false`,o=(e.get(t)||0)+1;e.set(t,o),u.push(t),o===1&&i&&n.add(t),i||t.setAttribute(a,a===`inert`?``:`true`)})}return i&&l.forEach(e=>{let t=(Ke.get(e)||0)+1;Ke.set(e,t),d.push(e),t===1&&e.setAttribute(We,``)}),qe+=1,()=>{o&&u.forEach(e=>{let t=(o.get(e)||0)-1;o.set(e,t),t||(!s?.has(e)&&a&&e.removeAttribute(a),s?.delete(e))}),i&&d.forEach(e=>{let t=(Ke.get(e)||0)-1;Ke.set(e,t),t||e.removeAttribute(We)}),--qe,qe||(Ue.inert=new WeakMap,Ue[`aria-hidden`]=new WeakMap,Ge.inert=new WeakSet,Ge[`aria-hidden`]=new WeakSet,Ke=new WeakMap)}}function et(e,t={}){let{ariaHidden:n=!1,inert:r=!1,mark:a=!0}=t,o=i(e[0]).body;return $e(e,o,n,r,{mark:a})}function tt(){let e=new Map;return{emit(t,n){e.get(t)?.forEach(e=>e(n))},on(t,n){e.has(t)||e.set(t,new Set),e.get(t).add(n)},off(t,n){e.get(t)?.delete(n)}}}var nt=class{nodesRef={current:[]};events=tt();addNode(e){this.nodesRef.current.push(e)}removeNode(e){let t=this.nodesRef.current.findIndex(t=>t===e);t!==-1&&this.nodesRef.current.splice(t,1)}},rt=J.createContext(null),it=J.createContext(null),at=()=>J.useContext(rt)?.id||null,ot=e=>{let t=J.useContext(it);return e??t};function st(e){let t=G(),n=ot(e),r=at();return j(()=>{if(!t)return;let e={id:t,parentId:r};return n?.addNode(e),()=>{n?.removeNode(e)}},[n,t,r]),t}function ct(e){let{children:t,id:n}=e,r=at();return(0,Y.jsx)(rt.Provider,{value:J.useMemo(()=>({id:n,parentId:r}),[n,r]),children:t})}function lt(e){let{children:t,externalTree:n}=e,r=M(()=>n??new nt).current;return(0,Y.jsx)(it.Provider,{value:r,children:t})}function ut(e,t){let n=P(u(e));return e instanceof n.KeyboardEvent?`keyboard`:e instanceof n.FocusEvent?t||`keyboard`:`pointerType`in e?e.pointerType||`keyboard`:`touches`in e?`touch`:e instanceof n.MouseEvent?t||(e.detail===0?`keyboard`:`mouse`):``}var dt=20,$=[];function ft(){$=$.filter(e=>e.deref()?.isConnected)}function pt(e){ft(),e&&z(e)!==`body`&&($.push(new WeakRef(e)),$.length>dt&&($=$.slice(-20)))}function mt(){return ft(),$[$.length-1]?.deref()}function ht(e){return e?se(e)?e:g(e)[0]||e:null}function gt(e){if(e.hasAttribute(`tabindex`)&&!e.hasAttribute(`data-tabindex`)||!e.getAttribute(`role`)?.includes(`dialog`))return;let t=re(e).filter(e=>{let t=e.getAttribute(`data-tabindex`)||``;return se(e)||e.hasAttribute(`data-tabindex`)&&!t.startsWith(`-`)}),n=e.getAttribute(`tabindex`);t.length===0?n!==`0`&&(e.setAttribute(`tabindex`,`0`),e.setAttribute(`data-tabindex`,`0`)):(n!==`-1`||e.hasAttribute(`data-tabindex`)&&e.getAttribute(`data-tabindex`)!==`-1`)&&(e.setAttribute(`tabindex`,`-1`),e.setAttribute(`data-tabindex`,`-1`))}function _t(e){let{context:t,children:n,disabled:r=!1,initialFocus:a=!0,returnFocus:d=!0,restoreFocus:f=!1,modal:h=!0,closeOnFocusOut:_=!0,openInteractionType:y=``,nextFocusableElement:b,previousFocusableElement:x,beforeContentFocusGuardRef:w,externalTree:re,getInsideElements:T}=e,E=`rootStore`in t?t.rootStore:t,D=E.useState(`open`),O=E.useState(`domReferenceElement`),k=E.useState(`floatingElement`),{events:A,dataRef:M}=E.context,P=N(()=>M.current.floatingContext?.nodeId),F=a===!1,L=p(O)&&F,R=Se(a),le=Se(d),B=Se(y),ue=Se(D),V=ot(re),H=oe(),G=J.useRef(!1),K=J.useRef(!1),de=J.useRef(!1),fe=J.useRef(null),me=J.useRef(``),he=J.useRef(``),ge=J.useRef(null),ve=J.useRef(null),ye=ce(ge,w,H?.beforeInsideRef),be=ce(ve,H?.afterInsideRef),xe=m(),Ce=m(),we=W(),Te=H!=null,X=ae(k),Z=N((e=X)=>e?g(e):[]),Q=N(()=>T?.().filter(e=>e!=null)??[]);J.useEffect(()=>{if(r||!h)return;function e(e){e.key===`Tab`&&c(X,v(i(X)))&&Z().length===0&&!L&&Fe(e)}let t=i(X);return U(t,`keydown`,e)},[r,X,h,L,Z]),J.useEffect(()=>{if(r||!D)return;let e=i(X);function t(){de.current=!1}function n(e){let t=u(e),n=Q(),r=c(k,t)||c(O,t)||c(H?.portalNode,t)||n.some(e=>e===t||c(e,t));de.current=!r,he.current=e.pointerType||`keyboard`,t?.closest(`[data-base-ui-click-trigger]`)&&(K.current=!0,Ce.start(0,()=>{K.current=!1}))}function a(){he.current=`keyboard`}return ee(U(e,`pointerdown`,n,!0),U(e,`pointerup`,t,!0),U(e,`pointercancel`,t,!0),U(e,`keydown`,a,!0),t)},[r,k,O,X,D,H,Ce,Q]),J.useEffect(()=>{if(r||!_)return;let e=i(X);function t(){K.current=!0,Ce.start(0,()=>{K.current=!1})}function n(e){let t=u(e);se(t)&&(fe.current=t)}function a(t){let n=t.relatedTarget,r=t.currentTarget,i=u(t);h&&n==null&&i!=null&&c(k,i)&&pt(i),queueMicrotask(()=>{let a=P(),s=E.context.triggerElements,l=Q(),u=n?.hasAttribute(ie(`focus-guard`))&&[ge.current,ve.current,H?.beforeInsideRef.current,H?.afterInsideRef.current,H?.beforeOutsideRef.current,H?.afterOutsideRef.current,q(x),q(b)].includes(n),d=!(c(O,n)||c(k,n)||c(n,k)||c(H?.portalNode,n)||l.some(e=>e===n||c(e,n))||s.hasMatchingElement(e=>c(e,n))||u||V&&(Ne(V.nodesRef.current,a).find(e=>c(e.context?.elements.floating,n)||c(e.context?.elements.domReference,n))||Pe(V.nodesRef.current,a).find(e=>[e.context?.elements.floating,ae(e.context?.elements.floating)].includes(n)||e.context?.elements.domReference===n)));if(r===O&&X&&gt(X),f&&r!==O&&!o(i)&&v(e)===e.body){if(I(X)&&(X.focus(),f===`popup`)){we.request(()=>{X.focus()});return}let e=Z(),t=fe.current,n=(t&&e.includes(t)?t:null)||e[e.length-1]||X;I(n)&&n.focus()}if(M.current.insideReactTree){M.current.insideReactTree=!1;return}(L||!h)&&n&&d&&!K.current&&(L||n!==mt())&&(G.current=!0,E.setOpen(!1,_e(pe,t)))})}function s(){de.current||(M.current.insideReactTree=!0,xe.start(0,()=>{M.current.insideReactTree=!1}))}let l=I(O)?O:null;if(!(!k&&!l))return ee(l&&U(l,`focusout`,a),l&&U(l,`pointerdown`,t),k&&U(k,`focusin`,n),k&&U(k,`focusout`,a),k&&H&&U(k,`focusout`,s,!0))},[r,O,k,X,h,V,H,E,_,f,Z,L,P,M,xe,Ce,we,b,x,Q]),J.useEffect(()=>{if(r||!k||!D)return;let e=Array.from(H?.portalNode?.querySelectorAll(`[${ie(`portal`)}]`)||[]),t=(V?Pe(V.nodesRef.current,P()):[]).find(e=>p(e.context?.elements.domReference||null))?.context?.elements.domReference,n=et([k,...e,ge.current,ve.current,H?.beforeOutsideRef.current,H?.afterOutsideRef.current,...Q(),t,q(x),q(b),L?O:null].filter(e=>e!=null),{ariaHidden:h||L,mark:!1}),i=et([k,...e].filter(e=>e!=null));return()=>{i(),n()}},[D,r,O,k,h,H,L,V,P,b,x,Q]),j(()=>{if(!D||r||!I(X))return;me.current=``,he.current=``;let e=i(X),t=v(e);queueMicrotask(()=>{let n=R.current,r=typeof n==`function`?n(B.current||``):n;if(r===void 0||r===!1||c(X,t))return;let i=null,a=()=>(i??=Z(X),i[0]||X),o;o=r===!0||r===null?a():q(r),o||=a();let s=c(X,v(e));He(o,{preventScroll:o===X,shouldFocus(){if(!ue.current)return!1;if(s)return!0;let t=v(e);return!(t!==o&&c(X,t))}})})},[r,D,X,Z,R,B,ue]),j(()=>{if(r||!X)return;let e=i(X),t=v(e),n=B.current==null;pt(t);function a(e){if(e.open||(me.current=ut(e.nativeEvent,he.current)),e.reason===`trigger-hover`&&e.nativeEvent.type===`mouseleave`&&(G.current=!0),e.reason===`outside-press`){if(e.nested)G.current=!1;else if(Le(e.nativeEvent)||Re(e.nativeEvent))G.current=!1;else{let e=!1;i(X).createElement(`div`).focus({get preventScroll(){return e=!0,!1}}),e?G.current=!1:G.current=!0}}}A.on(`openchange`,a);function o(e){let r=le.current,i=typeof r==`function`?r(e):r;if(i===void 0||i===!1)return null;i===null&&(i=!0);let a=O?.isConnected?O:null,o=t?.isConnected&&z(t)!==`body`?t:null,s=n?o||a:a||o;return s||=mt()||null,typeof i==`boolean`?s:q(i)||s||null}return()=>{A.off(`openchange`,a);let t=v(e),n=Q(),r=c(k,t)||n.some(e=>e===t||c(e,t))||V&&Ne(V.nodesRef.current,P(),!1).some(e=>c(e.context?.elements.floating,t)),i=le.current,s=me.current,l=o(s);queueMicrotask(()=>{let n=ht(l),a=typeof i!=`boolean`;if(i&&!G.current&&I(n)&&(!(!a&&n!==t&&t!==e.body)||r)){let e={preventScroll:!0};s===`keyboard`&&(e.focusVisible=!0),n.focus(e)}G.current=!1})}},[r,k,X,le,B,A,V,O,P,Q]),j(()=>{if(!l||D||!k)return;let e=v(i(k));!I(e)||!s(e)||c(k,e)&&e.blur()},[D,k]),j(()=>{if(!(r||!H))return H.setFocusManagerState({modal:h,closeOnFocusOut:_,open:D,onOpenChange:E.setOpen,domReference:O}),()=>{H.setFocusManagerState(null)}},[r,H,h,D,E,_,O]),j(()=>{if(!(r||!X))return gt(X),()=>{queueMicrotask(ft)}},[r,X]);let Ee=!r&&(!h||!L)&&(Te||h);return(0,Y.jsxs)(J.Fragment,{children:[Ee&&(0,Y.jsx)(te,{"data-type":`inside`,ref:ye,onFocus:e=>{if(h){let e=Z();He(e[e.length-1])}else H?.portalNode&&(G.current=!1,C(e,H.portalNode)?ne(O)?.focus():q(x??H.beforeOutsideRef)?.focus())}}),n,Ee&&(0,Y.jsx)(te,{"data-type":`inside`,ref:be,onFocus:e=>{h?He(Z()[0]):H?.portalNode&&(_&&(G.current=!0),C(e,H.portalNode)?S(O)?.focus():q(b??H.afterOutsideRef)?.focus())}})]})}function vt(){return!1}function yt(e){return{escapeKey:typeof e==`boolean`?e:e?.escapeKey??!1,outsidePress:typeof e==`boolean`?e:e?.outsidePress??!0}}function bt(e,t={}){let{enabled:n=!0,escapeKey:r=!0,outsidePress:o=!0,outsidePressEvent:s=`sloppy`,referencePress:d=vt,bubbles:p,externalTree:h}=t,g=`rootStore`in e?e.rootStore:e,_=g.useState(`open`),v=g.useState(`floatingElement`),{dataRef:y,events:b}=g.context,S=ot(h),C=N(typeof o==`function`?o:()=>!1),w=typeof o==`function`?C:o,te=w!==!1,ne=N(()=>s),{escapeKey:re,outsidePress:ae}=yt(p),T=J.useRef(!1),oe=J.useRef(!1),E=J.useRef(!1),D=J.useRef(!1),se=J.useRef(!1),O=J.useRef(``),k=J.useRef(null),A=m(),j=m(),M=N(()=>{j.clear(),y.current.insideReactTree=!1}),P=N(e=>{let t=y.current.floatingContext?.nodeId;return(S?Ne(S.nodesRef.current,t):[]).some(t=>t.context?.open&&!t.context.dataRef.current[e])}),F=N(e=>a(e,g.select(`floatingElement`))||a(e,g.select(`domReferenceElement`))),ce=N(e=>{d()&&g.setOpen(!1,_e(fe,e.nativeEvent))}),R=N(e=>{if(!_||!n||!r||e.key!==`Escape`||se.current||!re&&P(`__escapeKeyBubbles`))return;let t=Ie(e)?e.nativeEvent:e,i=_e(K,t);g.setOpen(!1,i),i.isCanceled||e.preventDefault(),!re&&!i.isPropagationAllowed&&e.stopPropagation()}),z=N(()=>{y.current.insideReactTree=!0,j.start(0,M)}),B=N(e=>{if(!_||!n||e.button!==0)return;let t=u(e.nativeEvent);c(g.select(`floatingElement`),t)&&(T.current||(T.current=!0,oe.current=!1))}),W=N(e=>{!_||!n||(e.defaultPrevented||e.nativeEvent.defaultPrevented)&&T.current&&(oe.current=!0)});J.useEffect(()=>{function e(e){e.open||(D.current=!1)}return b.on(`openchange`,e),()=>{b.off(`openchange`,e)}},[b]),J.useEffect(()=>{if(!_||!n)return _||(D.current=!1),M;y.current.__escapeKeyBubbles=re,y.current.__outsidePressBubbles=ae;let e=new x,t=new x,o=i(v);function s(){e.clear(),se.current=!0}function d(){e.start(l?5:0,()=>{se.current=!1})}function p(){E.current=!0,t.start(0,()=>{E.current=!1})}function m(){T.current=!1,oe.current=!1}function h(){let e=O.current,t=e===`pen`||!e?`mouse`:e,n=ne(),r=typeof n==`function`?n():n;return typeof r==`string`?r:r[t]}function b(e){let t=h();return t===`intentional`&&e.type!==`click`||t===`sloppy`&&e.type===`click`}function C(e){let t=y.current.floatingContext?.nodeId,n=S&&Ne(S.nodesRef.current,t).some(t=>a(e,t.context?.elements.floating));return F(e)||n}function j(e){if(b(e)){e.type!==`click`&&!F(e)&&(t.clear(),E.current=!1),M();return}if(y.current.insideReactTree){M();return}let n=u(e),r=`[${ie(`inert`)}]`,a=H(n)?n.getRootNode():null,o=Array.from((ue(a)?a:i(g.select(`floatingElement`))).querySelectorAll(r)),s=g.context.triggerElements;if(n&&(s.hasElement(n)||s.hasMatchingElement(e=>c(e,n))))return;let l=H(n)?n:null;for(;l&&!V(l);){let e=L(l);if(V(e)||!H(e))break;l=e}if(!(o.length&&H(n)&&!f(n)&&!c(n,g.select(`floatingElement`))&&o.every(e=>!c(l,e)))){if(I(n)&&!(`touches`in e)){let t=V(n),r=le(n),i=/auto|scroll/,a=t||i.test(r.overflowX),o=t||i.test(r.overflowY),s=a&&n.clientWidth>0&&n.scrollWidth>n.clientWidth,c=o&&n.clientHeight>0&&n.scrollHeight>n.clientHeight,l=r.direction===`rtl`,u=c&&(l?e.offsetX<=n.offsetWidth-n.clientWidth:e.offsetX>n.clientWidth),d=s&&e.offsetY>n.clientHeight;if(u||d)return}if(!C(e)){if(h()===`intentional`){if(e.detail!==0&&!Le(e)&&!D.current)return;if(E.current){t.clear(),E.current=!1;return}}typeof w==`function`&&!w(e)||P(`__outsidePressBubbles`)||(g.setOpen(!1,_e(me,e)),M())}}}function N(e){h()!==`sloppy`||e.pointerType===`touch`||!g.select(`open`)||!n||F(e)||j(e)}function ce(e){if(h()!==`sloppy`||!g.select(`open`)||!n||F(e))return;let t=e.touches[0];t&&(k.current={startTime:Date.now(),startX:t.clientX,startY:t.clientY,dismissOnTouchEnd:!1,dismissOnMouseDown:!0},A.start(1e3,()=>{k.current&&(k.current.dismissOnTouchEnd=!1,k.current.dismissOnMouseDown=!1)}))}function z(e,t){let n=u(e);if(!n)return;let r=U(n,e.type,()=>{t(e),r()})}function B(e){O.current=`touch`,z(e,ce)}function W(e){A.clear(),e.type===`pointerdown`&&(e.button===0&&(D.current=!0),O.current=e.pointerType),!(e.type===`mousedown`&&k.current&&!k.current.dismissOnMouseDown)&&z(e,e=>{e.type===`pointerdown`?N(e):j(e)})}function G(e){if(e.type===`pointercancel`&&(D.current=!1),!T.current)return;let n=oe.current;if(m(),h()===`intentional`){if(e.type===`pointercancel`){n&&p();return}if(!C(e)){if(n){p();return}typeof w==`function`&&!w(e)||(t.clear(),E.current=!0,M())}}}function K(e){if(h()!==`sloppy`||!k.current||F(e))return;let t=e.touches[0];if(!t)return;let n=Math.abs(t.clientX-k.current.startX),r=Math.abs(t.clientY-k.current.startY),i=Math.sqrt(n*n+r*r);i>5&&(k.current.dismissOnTouchEnd=!0),i>10&&(j(e),A.clear(),k.current=null)}function q(e){z(e,K)}function de(e){h()!==`sloppy`||!k.current||F(e)||(k.current.dismissOnTouchEnd&&j(e),A.clear(),k.current=null)}function fe(e){z(e,de)}let pe=ee(r&&ee(U(o,`keydown`,R),U(o,`compositionstart`,s),U(o,`compositionend`,d)),te&&ee(U(o,`click`,W,!0),U(o,`pointerdown`,W,!0),U(o,`pointerup`,G,!0),U(o,`pointercancel`,G,!0),U(o,`mousedown`,W,!0),U(o,`mouseup`,G,!0),U(o,`touchstart`,B,{capture:!0,passive:!0}),U(o,`touchmove`,q,{capture:!0,passive:!0}),U(o,`touchend`,fe,{capture:!0,passive:!0})));return()=>{pe(),e.clear(),t.clear(),m(),E.current=!1,M()}},[y,v,r,te,w,_,n,re,ae,R,M,ne,P,F,S,g,A]);let G=J.useMemo(()=>({onKeyDown:R,onPointerDown:ce,onClick:ce}),[R,ce]),q=J.useMemo(()=>({onKeyDown:R,onPointerDown:W,onMouseDown:W,onClickCapture:z,onMouseDownCapture(e){z(),B(e)},onPointerDownCapture(e){z(),B(e)},onMouseUpCapture:z,onTouchEndCapture:z,onTouchMoveCapture:z}),[R,z,B,W]);return J.useMemo(()=>n?{reference:G,floating:q,trigger:G}:{},[n,G,q])}var xt={open:e=>e.open,transitionStatus:e=>e.transitionStatus,domReferenceElement:e=>e.domReferenceElement,referenceElement:e=>e.positionReference??e.referenceElement,floatingElement:e=>e.floatingElement,floatingId:e=>e.floatingId},St=class extends D{constructor(e){let{syncOnly:t,nested:n,onOpenChange:r,triggerElements:i,...a}=e;super({...a,positionReference:a.referenceElement,domReferenceElement:a.referenceElement},{onOpenChange:r,dataRef:{current:{}},events:tt(),nested:n,triggerElements:i},xt),this.syncOnly=t}syncOpenEvent=(e,t)=>{(!e||!this.state.open||t!=null&&Be(t))&&(this.context.dataRef.current.openEvent=e?t:void 0)};dispatchOpenChange=(e,t)=>{this.syncOpenEvent(e,t.event);let n={open:e,reason:t.reason,nativeEvent:t.event,nested:this.context.nested,triggerElement:t.trigger};this.context.events.emit(`openchange`,n)};setOpen=(e,t)=>{if(this.syncOnly){this.context.onOpenChange?.(e,t);return}this.dispatchOpenChange(e,t),this.context.onOpenChange?.(e,t)}};function Ct(e){let{popupStore:t,treatPopupAsFloatingElement:n=!1,floatingRootContext:r,floatingId:i,nested:a,onOpenChange:o}=e,s=t.useState(`open`),c=t.useState(`activeTriggerElement`),l=t.useState(n?`popupElement`:`positionerElement`),u=t.context.triggerElements,d=o,f=J.useRef(null);r===void 0&&f.current===null&&(f.current=new St({open:s,transitionStatus:void 0,referenceElement:c,floatingElement:l,triggerElements:u,onOpenChange:d,floatingId:i,syncOnly:!0,nested:a}));let p=r??f.current;return t.useSyncedValue(`floatingId`,i),j(()=>{let e={open:s,floatingId:i,referenceElement:c,floatingElement:l};H(c)&&(e.domReferenceElement=c),p.state.positionReference===p.state.referenceElement&&(e.positionReference=c),p.update(e)},[s,i,c,l,p]),p.context.onOpenChange=d,p.context.nested=a,p}var wt={tabIndex:-1,[_]:``};function Tt(e){return t=>t!==`touch`||e.current}function Et(e,t=!1){let n=G(),r=at()!=null,i=M(()=>e(n,r)).current;return Ct({popupStore:i,treatPopupAsFloatingElement:t,floatingRootContext:i.state.floatingRootContext,floatingId:n,nested:r,onOpenChange:i.setOpen}),i}function Dt({handle:e,store:t}){return j(()=>e.attachStore(t),[e,t]),null}function Ot(e){let t=e.context.triggerElements.size;e.select(`open`)&&e.state.triggerCount!==t&&e.set(`triggerCount`,t)}function kt(e,t){let n=J.useRef(null);return N(r=>{let i=n.current;if(i!==null){if(i.element===r&&i.store===t&&i.id===e)return;n.current=null;let a=i.store;a.context.triggerElements.getById(i.id)===i.element&&(a.context.triggerElements.delete(i.id),Ot(a))}r!==null&&e!==void 0&&(n.current={store:t,id:e,element:r},t.context.triggerElements.add(e,r),Ot(t))})}function At(e,t,n,r=!1){let i=e.preventUnmountingOnClose;t?i=!1:r&&(i=!0);let a=n?.id??null,o=e.activeTriggerId,s=e.activeTriggerElement;return(a||t)&&(o=a,s=n??null),{open:t,preventUnmountingOnClose:i,activeTriggerId:o,activeTriggerElement:s}}function jt(e){let t=!1;return e.preventUnmountOnClose=()=>{t=!0},()=>t}function Mt(e,t,n,r){let i=n.useState(`isMountedByTrigger`,e),a=kt(e,n),o=N(t=>{let i=n.select(`open`),a=n.select(`activeTriggerId`);if(a===e){let e={activeTriggerElement:t,...i?r:null};n.update(e);return}if(a==null&&i){let i={activeTriggerId:e??null,activeTriggerElement:t,...r};n.update(i)}}),s=N(e=>{a(e),e&&o(e)});return j(()=>(s(t.current),()=>s(null)),[s,t,n,e]),j(()=>{if(i){let e={activeTriggerElement:t.current,...r};n.update(e)}},[i,n,t,...Object.values(r)]),{registerTrigger:s,isMountedByThisTrigger:i}}function Nt(e,t={}){let{closeOnActiveTriggerUnmount:n=!1}=t,r=J.useRef(null),i=e.useState(`open`),a=e.useState(`triggerCount`),o=e.useState(`activeTriggerId`),s=e.useState(`activeTriggerElement`);j(()=>{if(!i){r.current=null,e.state.triggerCount!==0&&e.set(`triggerCount`,0);return}let t=e.context.triggerElements.size,a={};e.state.triggerCount!==t&&(a.triggerCount=t);let o=e.select(`activeTriggerId`),s=null;if(o){let t=e.context.triggerElements.getById(o);if(t)r.current=o,t!==e.state.activeTriggerElement&&(a.activeTriggerElement=t);else{for(let[t,n]of e.context.triggerElements.entries())if(n===e.state.activeTriggerElement){a.activeTriggerId=t,a.activeTriggerElement=n,r.current=t;break}a.activeTriggerId===void 0&&(r.current===o?s=o:r.current=null)}}else r.current=null;if(!s&&!o&&t===1){let t=e.context.triggerElements.entries().next();if(!t.done){let[e,n]=t.value;a.activeTriggerId=e,a.activeTriggerElement=n,r.current=e}}(a.triggerCount!==void 0||a.activeTriggerId!==void 0||a.activeTriggerElement!==void 0)&&e.update(a),s&&n&&queueMicrotask(()=>{if(e.select(`open`)&&e.select(`activeTriggerId`)===s&&!e.context.triggerElements.getById(s)){let t=_e(de);e.setOpen(!1,t),t.isCanceled||e.update({activeTriggerId:null,activeTriggerElement:null})}})},[i,e,a,o,s,n])}function Pt(e,t,n,r){let{mounted:i,setMounted:a,transitionStatus:o}=xe(e,!1,!1,r),s=t.useState(`preventUnmountingOnClose`),c=!e&&s;t.useSyncedValues({mounted:i,transitionStatus:o,preventUnmountingOnClose:c});let l=N(()=>{a(!1),t.update({activeTriggerId:null,activeTriggerElement:null,mounted:!1,preventUnmountingOnClose:!1}),n?.(),t.context.onOpenChangeComplete?.(!1)});return ve({enabled:i&&!e&&!c,open:e,ref:t.context.popupRef,onComplete(){e||l()}}),{forceUnmount:l,transitionStatus:o}}function Ft(e,t){e.useSyncedValues(t),j(()=>()=>{e.update({activeTriggerProps:k,inactiveTriggerProps:k,popupProps:k})},[e])}function It(e,t){j(()=>{!t&&e.state.openMethod!==null&&e.set(`openMethod`,null)},[t,e]),j(()=>()=>{e.state.openMethod!==null&&e.set(`openMethod`,null)},[e])}var Lt=class{constructor(){this.idMap=new Map}add(e,t){this.idMap.set(e,t)}delete(e){this.idMap.delete(e)}hasElement(e){for(let t of this.idMap.values())if(t===e)return!0;return!1}hasMatchingElement(e){for(let t of this.idMap.values())if(e(t))return!0;return!1}getById(e){return this.idMap.get(e)}entries(){return this.idMap.entries()}elements(){return this.idMap.values()}get size(){return this.idMap.size}};function Rt(e,t,n=!1){return{open:!1,openProp:void 0,mounted:!1,transitionStatus:void 0,floatingRootContext:new St({open:!1,transitionStatus:void 0,floatingElement:null,referenceElement:null,triggerElements:e,floatingId:t,syncOnly:!0,nested:n,onOpenChange:void 0}),floatingId:t,triggerCount:0,preventUnmountingOnClose:!1,payload:void 0,activeTriggerId:null,activeTriggerElement:null,triggerIdProp:void 0,popupElement:null,positionerElement:null,activeTriggerProps:k,inactiveTriggerProps:k,popupProps:k}}var zt=e=>e.triggerIdProp??e.activeTriggerId,Bt=e=>e.openProp??e.open,Vt=e=>(e.popupElement?.id??e.floatingId)||void 0;function Ht(e,t){return t!==void 0&&Bt(e)&&zt(e)===t}function Ut(e,t){return Ht(e,t)?!0:t!==void 0&&Bt(e)&&zt(e)==null&&e.triggerCount===1}var Wt={open:Bt,mounted:e=>e.mounted,transitionStatus:e=>e.transitionStatus,floatingRootContext:e=>e.floatingRootContext,triggerCount:e=>e.triggerCount,preventUnmountingOnClose:e=>e.preventUnmountingOnClose,payload:e=>e.payload,activeTriggerId:zt,activeTriggerElement:e=>e.mounted?e.activeTriggerElement:null,popupId:Vt,isTriggerActive:(e,t)=>t!==void 0&&zt(e)===t,isOpenedByTrigger:(e,t)=>Ht(e,t),isMountedByTrigger:(e,t)=>t!==void 0&&zt(e)===t&&e.mounted,triggerProps:(e,t)=>t?e.activeTriggerProps:e.inactiveTriggerProps,triggerPopupId:(e,t)=>Ut(e,t)?Vt(e):void 0,popupProps:e=>e.popupProps,popupElement:e=>e.popupElement,positionerElement:e=>e.positionerElement},Gt=J.createContext(void 0);function Kt(e){let t=J.useContext(Gt);if(!e&&t===void 0)throw Error(R(27));return t}var qt=J.forwardRef(function(e,t){let{render:n,className:r,style:i,forceRender:a=!1,...o}=e,s=Kt(),c=s.useState(`open`),l=s.useState(`nested`),u=s.useState(`mounted`),d={open:c,transitionStatus:s.useState(`transitionStatus`)};return F(`div`,e,{state:d,ref:[s.context.backdropRef,t],stateAttributesMapping:Me,props:[{role:`presentation`,hidden:!u,style:{userSelect:`none`,WebkitUserSelect:`none`}},o],enabled:a||!l})}),Jt=J.forwardRef(function(e,t){let{render:n,className:r,style:i,disabled:a=!1,nativeButton:o=!0,...s}=e,c=Kt(),l=c.useState(`open`),{getButtonProps:u,buttonRef:d}=B({disabled:a,native:o}),f={disabled:a};function p(e){l&&c.setOpen(!1,_e(he,e.nativeEvent))}return F(`button`,e,{state:f,ref:[t,d],props:[{onClick:p},s,u]})}),Yt=J.forwardRef(function(e,t){let{render:n,className:r,style:i,id:a,...o}=e,s=Kt(),c=Ce(a);return s.useSyncedValueWithCleanup(`descriptionElementId`,c),F(`p`,e,{ref:t,props:[{id:c},o]})}),Xt=J.createContext(void 0);function Zt(){let e=J.useContext(Xt);if(e===void 0)throw Error(R(26));return e}var Qt=`ArrowUp`,$t=`ArrowDown`,en=`ArrowLeft`,tn=`ArrowRight`,nn=`Home`,rn=new Set([Qt,$t,en,tn,nn,`End`]),an=`Shift`,on=[an,`Control`,`Alt`,`Meta`];function sn(e){return I(e)&&e.tagName===`INPUT`}function cn(e){return!!(sn(e)&&e.selectionStart!=null||I(e)&&e.tagName===`TEXTAREA`)}function ln(e,t,n,r){if(!e||!t||!t.scrollTo)return;let i=e.scrollLeft,a=e.scrollTop,o=e.clientWidth<e.scrollWidth,s=e.clientHeight<e.scrollHeight;if(o&&r!==`vertical`){let r=un(e,t,`left`),a=dn(e),o=dn(t);n===`ltr`&&(r+t.offsetWidth+o.scrollMarginRight>e.scrollLeft+e.clientWidth-a.scrollPaddingRight?i=r+t.offsetWidth+o.scrollMarginRight-e.clientWidth+a.scrollPaddingRight:r-o.scrollMarginLeft<e.scrollLeft+a.scrollPaddingLeft&&(i=r-o.scrollMarginLeft-a.scrollPaddingLeft)),n===`rtl`&&(r-o.scrollMarginLeft<e.scrollLeft+a.scrollPaddingLeft?i=r-o.scrollMarginLeft-a.scrollPaddingLeft:r+t.offsetWidth+o.scrollMarginRight>e.scrollLeft+e.clientWidth-a.scrollPaddingRight&&(i=r+t.offsetWidth+o.scrollMarginRight-e.clientWidth+a.scrollPaddingRight))}if(s&&r!==`horizontal`){let n=un(e,t,`top`),r=dn(e),i=dn(t);n-i.scrollMarginTop<e.scrollTop+r.scrollPaddingTop?a=n-i.scrollMarginTop-r.scrollPaddingTop:n+t.offsetHeight+i.scrollMarginBottom>e.scrollTop+e.clientHeight-r.scrollPaddingBottom&&(a=n+t.offsetHeight+i.scrollMarginBottom-e.clientHeight+r.scrollPaddingBottom)}e.scrollTo({left:i,top:a,behavior:`auto`})}function un(e,t,n){let r=n===`left`?`offsetLeft`:`offsetTop`,i=0;for(;t.offsetParent&&(i+=t[r],t.offsetParent!==e);)t=t.offsetParent;return i}function dn(e){let t=getComputedStyle(e);return{scrollMarginTop:parseFloat(t.scrollMarginTop)||0,scrollMarginRight:parseFloat(t.scrollMarginRight)||0,scrollMarginBottom:parseFloat(t.scrollMarginBottom)||0,scrollMarginLeft:parseFloat(t.scrollMarginLeft)||0,scrollPaddingTop:parseFloat(t.scrollPaddingTop)||0,scrollPaddingRight:parseFloat(t.scrollPaddingRight)||0,scrollPaddingBottom:parseFloat(t.scrollPaddingBottom)||0,scrollPaddingLeft:parseFloat(t.scrollPaddingLeft)||0}}var fn=`--nested-dialogs`,pn=`data-nested-dialog-open`,mn={...je,...be,nestedDialogOpen(e){return e?{[pn]:``}:null}},hn=J.forwardRef(function(e,t){let{render:n,className:r,style:i,finalFocus:a,initialFocus:o,...s}=e,c=Kt(),l=c.useState(`descriptionElementId`),u=c.useState(`disablePointerDismissal`),d=c.useState(`floatingRootContext`),f=c.useState(`popupProps`),p=c.useState(`modal`),m=c.useState(`mounted`),h=c.useState(`nested`),g=c.useState(`nestedOpenDialogCount`),_=c.useState(`open`),v=c.useState(`openMethod`),y=c.useState(`titleElementId`),b=c.useState(`transitionStatus`),x=c.useState(`role`),S=d.useState(`floatingId`);Zt(),ve({open:_,ref:c.context.popupRef,onComplete(){_&&c.context.onOpenChangeComplete?.(!0)}});let C=o===void 0?Tt(c.context.popupRef):o,w=g>0,ee=c.useStateSetter(`popupElement`),te=F(`div`,e,{state:{open:_,nested:h,transitionStatus:b,nestedDialogOpen:w},props:[f,{id:S,"aria-labelledby":y,"aria-describedby":l,role:x,...wt,hidden:!m,onKeyDown(e){rn.has(e.key)&&e.stopPropagation()},style:{[fn]:g}},s],ref:[t,c.context.popupRef,ee],stateAttributesMapping:mn});return(0,Y.jsx)(_t,{context:d,openInteractionType:v,disabled:!m,closeOnFocusOut:!u,initialFocus:C,returnFocus:a,modal:p!==!1,restoreFocus:`popup`,children:te})}),gn=J.forwardRef(function(e,t){let{cutout:n,...r}=e,i;if(n){let e=n.getBoundingClientRect();i=`polygon(0% 0%,100% 0%,100% 100%,0% 100%,0% 0%,${e.left}px ${e.top}px,${e.left}px ${e.bottom}px,${e.right}px ${e.bottom}px,${e.right}px ${e.top}px,${e.left}px ${e.top}px)`}return(0,Y.jsx)(`div`,{ref:t,role:`presentation`,"data-base-ui-inert":``,...r,style:{position:`fixed`,inset:0,userSelect:`none`,WebkitUserSelect:`none`,clipPath:i}})}),_n=J.forwardRef(function(e,t){let{keepMounted:n=!1,...r}=e,i=Kt(),a=i.useState(`mounted`),o=i.useState(`modal`),s=i.useState(`open`);return a||n?(0,Y.jsx)(Xt.Provider,{value:n,children:(0,Y.jsxs)(E,{ref:t,...r,children:[a&&o===!0&&(0,Y.jsx)(gn,{ref:i.context.internalBackdropRef,inert:w(!s)}),e.children]})}):null}),vn={},yn={},bn=``;function xn(e,t){return O(e)?e:t}function Sn(e,t,n){return/hidden|clip/.test(e.getComputedStyle(xn(t,n)).overflowY)}function Cn(e){if(typeof document>`u`)return!1;let t=i(e);return P(t).innerWidth-t.documentElement.clientWidth>0}function wn(e){if(!(typeof CSS<`u`&&CSS.supports&&CSS.supports(`scrollbar-gutter`,`stable`))||typeof document>`u`)return!1;let t=i(e),n=t.documentElement,r=t.body,a=xn(n,r),o=a.style.overflowY,s=n.style.scrollbarGutter;n.style.scrollbarGutter=`stable`,a.style.overflowY=`scroll`;let c=a.offsetWidth;a.style.overflowY=`hidden`;let l=a.offsetWidth;return a.style.overflowY=o,n.style.scrollbarGutter=s,c===l}function Tn(e){let t=i(e),n=t.documentElement,r=t.body,a=xn(n,r),o={overflowY:a.style.overflowY,overflowX:a.style.overflowX};return Object.assign(a.style,{overflowY:`hidden`,overflowX:`hidden`}),()=>{Object.assign(a.style,o)}}function En(e){let t=i(e),n=t.documentElement,r=t.body,a=P(n),o=0,s=0,c=!1,u=ye.create();if(l&&(a.visualViewport?.scale??1)!==1)return()=>{};function d(){let t=a.getComputedStyle(n),i=a.getComputedStyle(r),l=(t.scrollbarGutter||``).includes(`both-edges`)?`stable both-edges`:`stable`;o=n.scrollTop,s=n.scrollLeft,vn={scrollbarGutter:n.style.scrollbarGutter,overflowY:n.style.overflowY,overflowX:n.style.overflowX},bn=n.style.scrollBehavior,yn={position:r.style.position,height:r.style.height,width:r.style.width,boxSizing:r.style.boxSizing,overflowY:r.style.overflowY,overflowX:r.style.overflowX,scrollBehavior:r.style.scrollBehavior};let u=n.scrollHeight>n.clientHeight,d=n.scrollWidth>n.clientWidth,f=t.overflowY===`scroll`||i.overflowY===`scroll`,p=t.overflowX===`scroll`||i.overflowX===`scroll`,m=Math.max(0,a.innerWidth-r.clientWidth),h=Math.max(0,a.innerHeight-r.clientHeight),g=parseFloat(i.marginTop)+parseFloat(i.marginBottom),_=parseFloat(i.marginLeft)+parseFloat(i.marginRight),v=xn(n,r);if(c=wn(e),c){n.style.scrollbarGutter=l,v.style.overflowY=`hidden`,v.style.overflowX=`hidden`;return}Object.assign(n.style,{scrollbarGutter:l,overflowY:`hidden`,overflowX:`hidden`}),(u||f)&&(n.style.overflowY=`scroll`),(d||p)&&(n.style.overflowX=`scroll`),Object.assign(r.style,{position:`relative`,height:g||h?`calc(100dvh - ${g+h}px)`:`100dvh`,width:_||m?`calc(100vw - ${_+m}px)`:`100vw`,boxSizing:`border-box`,overflowY:`hidden`,overflowX:`hidden`,scrollBehavior:`unset`}),r.scrollTop=o,r.scrollLeft=s,n.setAttribute(`data-base-ui-scroll-locked`,``),n.style.scrollBehavior=`unset`}function f(){Object.assign(n.style,vn),Object.assign(r.style,yn),c||(n.scrollTop=o,n.scrollLeft=s,n.removeAttribute(`data-base-ui-scroll-locked`),n.style.scrollBehavior=bn)}function p(){f(),u.request(d)}d();let m=U(a,`resize`,p);return()=>{u.cancel(),f(),typeof a.removeEventListener==`function`&&m()}}var Dn=new class{lockCount=0;restore=null;timeoutLock=x.create();timeoutUnlock=x.create();acquire(e){return this.lockCount+=1,this.lockCount===1&&this.restore===null&&this.timeoutLock.start(0,()=>this.lock(e)),this.release}release=()=>{--this.lockCount,this.lockCount===0&&this.restore&&this.timeoutUnlock.start(0,this.unlock)};unlock=()=>{this.lockCount===0&&this.restore&&(this.restore?.(),this.restore=null)};lock(e){if(this.lockCount===0||this.restore!==null)return;let t=i(e),n=t.documentElement,r=t.body,a=P(n);if(Sn(a,n,r)){let t=new a.MutationObserver(()=>{Sn(a,n,r)||(t.disconnect(),this.restore=null,this.lock(e))}),i={attributes:!0};t.observe(n,i),t.observe(r,i),this.restore=()=>t.disconnect();return}let o=y||!Cn(e);this.restore=o?Tn(e):En(e)}};function On(e=!0,t=null){j(()=>{if(e)return Dn.acquire(t)},[e,t])}function kn({store:e,parentContext:t,isDrawer:n}){let r=e.useState(`open`),i=e.useState(`disablePointerDismissal`),a=e.useState(`modal`),o=e.useState(`popupElement`),s=e.useState(`floatingRootContext`),[l,d]=J.useState(0),[f,p]=J.useState(0),m=l===0,h=bt(s,{outsidePressEvent(){return e.context.internalBackdropRef.current||e.context.backdropRef.current?`intentional`:{mouse:a===`trap-focus`?`sloppy`:`intentional`,touch:`sloppy`}},outsidePress(t){if(!e.context.outsidePressEnabledRef.current||`button`in t&&t.button!==0)return!1;if(`touches`in t){if(t.type===`touchend`){if(t.changedTouches.length!==1||t.touches.length!==0)return!1}else if(t.touches.length!==1)return!1}let n=u(t);if(m&&!i){if(a){let t=e.context.internalBackdropRef.current,r=e.context.backdropRef.current;return t||r?t===n||r===n||c(n,o)&&!n?.hasAttribute(`data-base-ui-portal`):!0}return!0}return!1},escapeKey:m});return On(r&&a===!0,o),e.useContextCallback(`onNestedDialogOpen`,(e,t)=>{d(e),p(t)}),j(()=>(t?.onNestedDialogOpen&&(r?t.onNestedDialogOpen(l+1,f+ +!!n):t.onNestedDialogOpen(0,0)),()=>{t?.onNestedDialogOpen&&r&&t.onNestedDialogOpen(0,0)}),[n,r,l,f,t]),Ft(e,{activeTriggerProps:h.reference,inactiveTriggerProps:h.trigger,popupProps:h.floating,nestedOpenDialogCount:l,nestedOpenDrawerCount:f}),null}var An={...Wt,modal:e=>e.modal,nested:e=>e.nested,nestedOpenDialogCount:e=>e.nestedOpenDialogCount,nestedOpenDrawerCount:e=>e.nestedOpenDrawerCount,disablePointerDismissal:e=>e.disablePointerDismissal,openMethod:e=>e.openMethod,descriptionElementId:e=>e.descriptionElementId,titleElementId:e=>e.titleElementId,viewportElement:e=>e.viewportElement,role:e=>e.role},jn=class extends D{constructor(e,t,n){let r=new Lt,i=Mn(e,r,t,n);super(i,Nn(r),An)}setOpen=(e,t)=>{t.preventUnmountOnClose=()=>{this.set(`preventUnmountingOnClose`,!0)},!e&&t.trigger==null&&this.state.activeTriggerId!=null&&(t.trigger=this.state.activeTriggerElement??void 0),this.context.onOpenChange?.(e,t),!t.isCanceled&&(this.state.floatingRootContext.dispatchOpenChange(e,t),this.update(At(this.state,e,t.trigger)))}};function Mn(e,t,n,r=!1){return{...Rt(t,n,r),modal:!0,disablePointerDismissal:!1,viewportElement:null,descriptionElementId:void 0,titleElementId:void 0,openMethod:null,nested:!1,nestedOpenDialogCount:0,nestedOpenDrawerCount:0,role:`dialog`,...e}}function Nn(e){return{popupRef:J.createRef(),backdropRef:J.createRef(),internalBackdropRef:J.createRef(),outsidePressEnabledRef:{current:!0},triggerElements:e,onOpenChange:void 0,onOpenChangeComplete:void 0}}function Pn(e,t){let{children:n,open:r,defaultOpen:i=!1,onOpenChange:a,onOpenChangeComplete:o,disablePointerDismissal:s=!1,modal:c=!0,actionsRef:l,handle:u,triggerId:d,defaultTriggerId:f=null}=t,p=e===`drawer`,m=e===`alert-dialog`,h=m?!0:c,g=m||s,_=m?`alertdialog`:`dialog`,v=Kt(!0),y={modal:h,disablePointerDismissal:g,nested:v!=null,role:_},b=Et((e,t)=>new jn({open:i,openProp:r,activeTriggerId:f,triggerIdProp:d,...y},e,t),!0);b.useControlledProp(`openProp`,r),b.useControlledProp(`triggerIdProp`,d),b.useSyncedValues(y),b.useContextCallback(`onOpenChange`,a),b.useContextCallback(`onOpenChangeComplete`,o);let x=b.useState(`open`),S=b.useState(`mounted`),C=b.useState(`payload`);It(b,x),Nt(b);let{forceUnmount:w}=Pt(x,b);J.useImperativeHandle(l,()=>({unmount:w,close:()=>b.setOpen(!1,_e(ge))}),[w,b]);let ee=x||S;return(0,Y.jsxs)(Gt.Provider,{value:b,children:[u&&(0,Y.jsx)(Dt,{handle:u,store:b}),ee&&(0,Y.jsx)(kn,{store:b,parentContext:v?.context,isDrawer:p}),typeof n==`function`?n({payload:C}):n]})}var Fn=J.forwardRef(function(e,t){let{render:n,className:r,style:i,id:a,...o}=e,s=Kt(),c=Ce(a);return s.useSyncedValueWithCleanup(`titleElementId`,c),F(`h2`,e,{ref:t,props:[{id:c},o]})});export{Ft as A,at as B,wt as C,At as D,Tt as E,bt as F,Re as G,He as H,_t as I,je as J,Fe as K,ct as L,It as M,Mt as N,Nt as O,St as P,lt as R,Lt as S,jt as T,ze as U,ot as V,Le as W,Ae as X,Me as Y,ke as Z,Yt as _,gn as a,Rt as b,en as c,rn as d,nn as f,ln as g,cn as h,_n as i,Et as j,Pt as k,tn as l,an as m,Pn as n,hn as o,on as p,Ne as q,On as r,$t as s,Fn as t,Qt as u,Jt as v,Dt as w,Wt as x,qt as y,st as z};
@@ -0,0 +1 @@
1
+ import{r as e,t}from"./rolldown-runtime-hePW80VL.js";import{t as n}from"./react-Cvdyeg_0.js";import{t as r}from"./react-dom-B7th3XGm.js";import{t as i}from"./jsx-runtime-NZYk81nU.js";import{A as a,F as o,I as s,M as c,N as l,O as u,S as d,a as f,b as p,l as m,p as h,w as g,y as _}from"./useButton-CvcmqA2s.js";import{D as v,E as y,_ as b,t as ee}from"./createBaseUIEventDetails-DIxvaz-Y.js";var x=t((e=>{var t=n();function r(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var i=typeof Object.is==`function`?Object.is:r,a=t.useState,o=t.useEffect,s=t.useLayoutEffect,c=t.useDebugValue;function l(e,t){var n=t(),r=a({inst:{value:n,getSnapshot:t}}),i=r[0].inst,l=r[1];return s(function(){i.value=n,i.getSnapshot=t,u(i)&&l({inst:i})},[e,n,t]),o(function(){return u(i)&&l({inst:i}),e(function(){u(i)&&l({inst:i})})},[e]),c(n),n}function u(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!i(e,n)}catch{return!0}}function d(e,t){return t()}var f=typeof window>`u`||window.document===void 0||window.document.createElement===void 0?d:l;e.useSyncExternalStore=t.useSyncExternalStore===void 0?f:t.useSyncExternalStore})),S=t(((e,t)=>{t.exports=x()})),C=t((e=>{var t=n(),r=S();function i(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var a=typeof Object.is==`function`?Object.is:i,o=r.useSyncExternalStore,s=t.useRef,c=t.useEffect,l=t.useMemo,u=t.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,r,i){var d=s(null);if(d.current===null){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=l(function(){function e(e){if(!o){if(o=!0,s=e,e=r(e),i!==void 0&&f.hasValue){var t=f.value;if(i(t,e))return c=t}return c=e}if(t=c,a(s,e))return t;var n=r(e);return i!==void 0&&i(t,n)?(s=e,t):(s=e,c=n)}var o=!1,s,c,l=n===void 0?null:n;return[function(){return e(t())},l===null?void 0:function(){return e(l())}]},[t,n,r,i]);var p=o(e,d[0],d[1]);return c(function(){f.hasValue=!0,f.value=p},[p]),u(p),p}})),w=t(((e,t)=>{t.exports=C()})),te=S(),ne=e(w(),1),T=e(n(),1),E=[],D=void 0;function re(){return D}function ie(e){E.push(e)}function ae(e){let t=(t,n)=>{let r=l(se).current,i;try{D=r;for(let e of E)e.before(r);i=e(t,n);for(let e of E)e.after(r);r.didInitialize=!0}finally{D=void 0}return i};return t.displayName=e.displayName||e.name,t}function oe(e){return T.forwardRef(ae(e))}function se(){return{didInitialize:!1}}var ce=a(19)?ue:de;function O(e,t,n,r,i){return ce(e,t,n,r,i)}function le(e,t,n,r,i){let a=T.useCallback(()=>t(e.getSnapshot(),n,r,i),[e,t,n,r,i]);return(0,te.useSyncExternalStore)(e.subscribe,a,a)}ie({before(e){e.syncIndex=0,e.didInitialize||(e.syncTick=1,e.syncHooks=[],e.didChangeStore=!0,e.getSnapshot=()=>{let t=!1;for(let n=0;n<e.syncHooks.length;n+=1){let r=e.syncHooks[n],i=r.selector(r.store.state,r.a1,r.a2,r.a3);Object.is(r.value,i)||(t=!0,r.value=i)}return t&&(e.syncTick+=1),e.syncTick})},after(e){e.syncHooks.length>0&&(e.didChangeStore&&(e.didChangeStore=!1,e.subscribe=t=>{let n=new Set;for(let t of e.syncHooks)n.add(t.store);let r=[];for(let e of n)r.push(e.subscribe(t));return()=>{for(let e of r)e()}}),(0,te.useSyncExternalStore)(e.subscribe,e.getSnapshot,e.getSnapshot))}});function ue(e,t,n,r,i){let a=re();if(!a)return le(e,t,n,r,i);let o=a.syncIndex;a.syncIndex+=1;let s;return a.didInitialize?(s=a.syncHooks[o],(s.store!==e||s.selector!==t||!Object.is(s.a1,n)||!Object.is(s.a2,r)||!Object.is(s.a3,i))&&(s.store!==e&&(a.didChangeStore=!0),s.store=e,s.selector=t,s.a1=n,s.a2=r,s.a3=i,s.value=t(e.getSnapshot(),n,r,i))):(s={store:e,selector:t,a1:n,a2:r,a3:i,value:t(e.getSnapshot(),n,r,i)},a.syncHooks.push(s)),s.value}function de(e,t,n,r,i){return(0,ne.useSyncExternalStoreWithSelector)(e.subscribe,e.getSnapshot,e.getSnapshot,e=>t(e,n,r,i))}var fe=class{static create(e){return new this(e)}constructor(e){this.state=e,this.listeners=new Set,this.updateTick=0}subscribe=e=>(this.listeners.add(e),()=>{this.listeners.delete(e)});getSnapshot=()=>this.state;setState(e){if(this.state===e)return;this.state=e,this.updateTick+=1;let t=this.updateTick;for(let n of this.listeners){if(t!==this.updateTick)return;n(e)}}update(e){for(let t in e)if(!Object.is(this.state[t],e[t])){this.setState({...this.state,...e});return}}set(e,t){Object.is(this.state[e],t)||this.setState({...this.state,[e]:t})}notifyAll(){let e={...this.state};this.setState(e)}use(e,t,n,r){return O(this,e,t,n,r)}},pe=class extends fe{constructor(e,t={},n){super(e),this.context=t,this.selectors=n}useSyncedValue(e,t){T.useDebugValue(e);let n=this;c(()=>{n.state[e]!==t&&n.set(e,t)},[n,e,t])}useSyncedValueWithCleanup(e,t){let n=this;c(()=>(n.state[e]!==t&&n.set(e,t),()=>{n.set(e,void 0)}),[n,e,t])}useSyncedValues(e){let t=this,n=Object.values(e);c(()=>{t.update(e)},[t,...n])}useControlledProp(e,t){T.useDebugValue(e);let n=this,r=t!==void 0;c(()=>{r&&!Object.is(n.state[e],t)&&n.setState({...n.state,[e]:t})},[n,e,t,r])}select(e,t,n,r){let i=this.selectors[e];return i(this.state,t,n,r)}useState(e,t,n,r){return T.useDebugValue(e),O(this,this.selectors[e],t,n,r)}useContextCallback(e,t){T.useDebugValue(e);let n=u(t??s);this.context[e]=n}useStateSetter(e){let t=T.useRef(void 0);return t.current===void 0&&(t.current=t=>{this.set(e,t)}),t.current}observe(e,t){let n;n=typeof e==`function`?e:this.selectors[e];let r=n(this.state);return t(r,r,this),this.subscribe(e=>{let i=n(e);if(!Object.is(r,i)){let e=r;r=i,t(i,e,this)}})}},k=e(r(),1);function A(...e){return()=>{for(let t=0;t<e.length;t+=1){let n=e[t];n&&n()}}}var j=i();function M(e){return e?.ownerDocument||document}var N=0,P=class e{static create(){return new e}currentId=N;start(e,t){this.clear(),this.currentId=setTimeout(()=>{this.currentId=N,t()},e)}isStarted(){return this.currentId!==N}clear=()=>{this.currentId!==N&&(clearTimeout(this.currentId),this.currentId=N)};disposeEffect=()=>this.clear};function me(){let e=l(P.create).current;return v(e.disposeEffect),e}function he(){return typeof navigator>`u`?{userAgent:``,platform:``,maxTouchPoints:0}:{userAgent:navigator.userAgent,platform:navigator.platform??``,maxTouchPoints:navigator.maxTouchPoints??0}}var{userAgent:ge,platform:_e,maxTouchPoints:ve}=he(),F=ge.toLowerCase(),I=_e.toLowerCase(),L=/^i(os$|p)/.test(I)||I===`macintel`&&ve>1,ye=`android`,be=I===ye||F.includes(ye),xe=!L&&I.startsWith(`mac`);I.startsWith(`win`),!be&&/^(linux|chrome os)/.test(I);var Se=xe||L,R=typeof CSS<`u`&&!!CSS.supports?.(`-webkit-backdrop-filter:none`);!R&&F.includes(`firefox`),!R&&F.includes(`chrom`);var Ce=Se,we=/jsdom|happydom/.test(F);function Te(e){let t=e.activeElement;for(;t?.shadowRoot?.activeElement!=null;)t=t.shadowRoot.activeElement;return t}function z(e,t){if(!e||!t)return!1;let n=t.getRootNode?.();if(e.contains(t))return!0;if(n&&g(n)){let n=t;for(;n;){if(e===n)return!0;n=n.parentNode||n.host}}return!1}function Ee(e){return`composedPath`in e?e.composedPath()[0]??e.target:e.target}var De=`data-base-ui-focusable`,Oe=`input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])`,ke=`ArrowLeft`,Ae=`ArrowRight`,je=`ArrowUp`,Me=`ArrowDown`,Ne=`data-popup-open`,Pe=`data-pressed`,B=`data-trigger-disabled`;function Fe(e,t){if(!_(e))return!1;let n=e;if(t.hasElement(n))return!n.hasAttribute(B);for(let[,e]of t.entries())if(z(e,n))return!e.hasAttribute(B);return!1}function Ie(e,t){if(t==null)return!1;if(`composedPath`in e)return e.composedPath().includes(t);let n=e;return n.target!=null&&t.contains(n.target)}function Le(e){return e.matches(`html,body`)}function V(e){return p(e)&&e.matches(`input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])`)}function Re(e){return e?.closest(`button,a[href],[role="button"],select,[tabindex]:not([tabindex="-1"]),${Oe}`)!=null}function ze(e){return e?e.getAttribute(`role`)===`combobox`&&V(e):!1}function Be(e){if(!e||we)return!0;try{return e.matches(`:focus-visible`)}catch{return!0}}function Ve(e){return e?e.hasAttribute(`data-base-ui-focusable`)?e:e.querySelector(`[data-base-ui-focusable]`)||e:null}function He(e,t){return t<0||t>=e.length}function Ue(e,t){return H(e.current,{disabledIndices:t})}function We(e,t){return H(e.current,{decrement:!0,startingIndex:e.current.length,disabledIndices:t})}function H(e,{startingIndex:t=-1,decrement:n=!1,disabledIndices:r,amount:i=1}={}){let a=t;do a+=n?-i:i;while(a>=0&&a<=e.length-1&&U(e,a,r));return a}function U(e,t,n){if(typeof n==`function`?n(t):n?.includes(t)??!1)return!0;let r=e[t];return r?!W(r)||r.matches(`:disabled`)?!0:!n&&(r.hasAttribute(`disabled`)||r.getAttribute(`aria-disabled`)===`true`):!1}function Ge(e){return e.visibility===`hidden`||e.visibility===`collapse`}function W(e,t=e?m(e):null){return!e||!e.isConnected||!t||Ge(t)?!1:typeof e.checkVisibility==`function`?e.checkVisibility():t.display!==`none`&&t.display!==`contents`}var Ke=`a[href],button,input,select,textarea,summary,details,iframe,object,embed,[tabindex],[contenteditable]:not([contenteditable="false"]),audio[controls],video[controls]`;function qe(e){let t=e.assignedSlot;if(t)return t;if(e.parentElement)return e.parentElement;let n=e.getRootNode();return g(n)?n.host:null}function G(e){for(let t of Array.from(e.children))if(h(t)===`summary`)return t;return null}function Je(e,t){let n=G(t);return!!n&&(e===n||z(n,e))}function K(e){let t=e?h(e):``;return e!=null&&e.matches(Ke)&&(t!==`summary`||e.parentElement!=null&&h(e.parentElement)===`details`&&G(e.parentElement)===e)&&(t!==`details`||G(e)==null)&&(t!==`input`||e.type!==`hidden`)}function q(e){if(!K(e)||!e.isConnected||e.matches(`:disabled`))return!1;for(let t=e;t;t=qe(t)){let n=t!==e,r=h(t)===`slot`;if(t.hasAttribute(`inert`)||n&&h(t)===`details`&&!t.open&&!Je(e,t)||t.hasAttribute(`hidden`)||!r&&!Ye(t,n))return!1}return!0}function Ye(e,t){let n=m(e);return t?n.display!==`none`:W(e,n)}function J(e){let t=e.tabIndex;if(t<0){let t=h(e);if(t===`details`||t===`audio`||t===`video`||p(e)&&e.isContentEditable)return 0}return t}function Y(e){if(h(e)!==`input`)return null;let t=e;return t.type===`radio`&&t.name!==``?t:null}function Xe(e,t){let n=Y(e);if(!n)return!0;let r=t.find(e=>{let t=Y(e);return t?.name===n.name&&t.form===n.form&&t.checked});return r?r===n:t.find(e=>{let t=Y(e);return t?.name===n.name&&t.form===n.form})===n}function Ze(e){if(p(e)&&h(e)===`slot`){let t=e.assignedElements({flatten:!0});if(t.length>0)return t}return p(e)&&e.shadowRoot?Array.from(e.shadowRoot.children):Array.from(e.children)}function Qe(e,t){Ze(e).forEach(e=>{K(e)&&t.push(e),Qe(e,t)})}function $e(e,t,n){Ze(e).forEach(e=>{p(e)&&e.matches(t)&&n.push(e),$e(e,t,n)})}function et(e){return q(e)&&J(e)>=0}function tt(e){let t=[];return Qe(e,t),t.filter(q)}function X(e){let t=tt(e);return t.filter(e=>J(e)>=0&&Xe(e,t))}function nt(e,t){let n=X(e),r=n.length;if(r===0)return;let i=Te(M(e)),a=n.indexOf(i);return n[a===-1?t===1?0:r-1:a+t]}function rt(e){return nt(M(e).body,1)||e}function it(e){return nt(M(e).body,-1)||e}function at(e,t){if(!e)return null;let n=X(M(e).body),r=n.length;if(r===0)return null;let i=n.indexOf(e);return i===-1?null:n[(i+t+r)%r]}function ot(e){return at(e,1)}function st(e){return at(e,-1)}function Z(e,t){let n=t||e.currentTarget,r=e.relatedTarget;return!r||!z(n,r)}function ct(e){X(e).forEach(e=>{e.dataset.tabindex=e.getAttribute(`tabindex`)||``,e.setAttribute(`tabindex`,`-1`)})}function lt(e){let t=[];$e(e,`[data-tabindex]`,t),t.forEach(e=>{let t=e.dataset.tabindex;delete e.dataset.tabindex,t?e.setAttribute(`tabindex`,t):e.removeAttribute(`tabindex`)})}var ut={clipPath:`inset(50%)`,overflow:`hidden`,whiteSpace:`nowrap`,border:0,padding:0,width:1,height:1,margin:-1},Q={...ut,position:`fixed`,top:0,left:0},dt={...ut,position:`absolute`},$=T.forwardRef(function(e,t){let[n,r]=T.useState();c(()=>{Ce&&R&&r(`button`)},[]);let i={tabIndex:0,role:n};return(0,j.jsx)(`span`,{...e,ref:t,style:Q,"aria-hidden":!n||void 0,...i,"data-base-ui-focus-guard":``})});function ft(e){return a(19)?e:e?`true`:void 0}var pt={style:{transition:`none`}},mt=`data-base-ui-click-trigger`,ht=`data-base-ui-swipe-ignore`,gt=`data-swipe-ignore`,_t=`[${ht}]`,vt=`[${gt}]`,yt={fallbackAxisSide:`none`},bt={fallbackAxisSide:`end`},xt={clipPath:`inset(50%)`,position:`fixed`,top:0,left:0};function St(e){return`data-base-ui-${e}`}var Ct=T.createContext(null),wt=()=>T.useContext(Ct),Tt=St(`portal`);function Et(e={}){let{ref:t,container:n,componentProps:r=o,elementProps:i}=e,a=b(),s=wt()?.portalNode,[l,p]=T.useState(null),[m,h]=T.useState(null),g=u(e=>{e!==null&&h(e)}),_=T.useRef(null);c(()=>{if(n===null){_.current&&(_.current=null,h(null),p(null));return}let e=(n&&(d(n)?n:n.current))??s??document.body;if(e==null){_.current&&(_.current=null,h(null),p(null));return}_.current!==e&&(_.current=e,h(null),p(e))},[n,s]);let v=f(`div`,r,{ref:[t,g],props:[{id:a,[Tt]:``},i]}),y=l&&v?k.createPortal(v,l):null;return{node:m,nodeId:T.isValidElement(v)?v.props.id:void 0,subtree:y}}var Dt=T.forwardRef(function(e,t){let{render:n,className:r,style:i,children:a,container:o,portalOwnerRole:s,...l}=e,{node:u,nodeId:d,subtree:f}=Et({container:o,ref:t,componentProps:e,elementProps:l}),p=T.useRef(null),m=T.useRef(null),h=T.useRef(null),g=T.useRef(null),[_,v]=T.useState(null),b=T.useRef(!1),x=_?.modal,S=_?.open,C=!!_&&!_.modal&&_.open&&!!u;T.useEffect(()=>{if(!u||x)return;function e(e){u&&e.relatedTarget&&Z(e)&&(e.type===`focusin`?b.current&&=(lt(u),!1):(ct(u),b.current=!0))}return A(y(u,`focusin`,e,!0),y(u,`focusout`,e,!0))},[u,x]),c(()=>{!u||S!==!0||!b.current||(lt(u),b.current=!1)},[S,u]);let w=T.useMemo(()=>({beforeOutsideRef:p,afterOutsideRef:m,beforeInsideRef:h,afterInsideRef:g,portalNode:u,setFocusManagerState:v}),[u]);return(0,j.jsxs)(T.Fragment,{children:[f,(0,j.jsxs)(Ct.Provider,{value:w,children:[C&&u&&(0,j.jsx)($,{"data-type":`outside`,ref:p,onFocus:e=>{Z(e,u)?h.current?.focus():it(_?_.domReference:null)?.focus()}}),C&&u&&(0,j.jsx)(`span`,{role:s,"aria-owns":d,style:xt}),u&&k.createPortal(a,u),C&&u&&(0,j.jsx)($,{"data-type":`outside`,ref:m,onFocus:e=>{Z(e,u)?g.current?.focus():(rt(_?_.domReference:null)?.focus(),_?.closeOnFocusOut&&_?.onOpenChange(!1,ee(`focus-out`,e.nativeEvent)))}})]})]})});export{M as $,Ie as A,ke as B,H as C,He as D,W as E,V as F,z as G,je as H,Be as I,R as J,Ee as K,Ne as L,Le as M,Fe as N,U as O,ze as P,me as Q,Pe as R,X as S,Ue as T,De as U,Ae as V,Te as W,L as X,be as Y,P as Z,it as _,_t as a,S as at,Z as b,yt as c,ft as d,A as et,$ as f,rt as g,tt as h,St as i,w as it,Re as j,Ve as k,vt as l,dt as m,Et as n,ae as nt,mt as o,Q as p,we as q,wt as r,oe as rt,pt as s,Dt as t,pe as tt,bt as u,ot as v,We as w,et as x,st as y,Me as z};
@@ -0,0 +1 @@
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./react-Cvdyeg_0.js";import{t as n}from"./jsx-runtime-NZYk81nU.js";import{t as r}from"./utils-oBThwhjm.js";import{c as i,i as a,r as o,u as s}from"./ease-DYVhTl2n.js";import{n as c,t as l}from"./use-reduced-motion-CFEp5oKr.js";var u=n();function d({open:e,openHeight:t=`auto`,className:n,style:i,transition:a,...c}){let d=l()??!1;return(0,u.jsx)(s.div,{...c,"aria-hidden":!e,inert:!e,initial:!1,animate:d?{opacity:+!!e}:{opacity:+!!e,clipPath:e?`inset(0 0 0% 0)`:`inset(0 0 100% 0)`,y:e?0:-4},transition:a??{duration:d?0:e?.22:.14,ease:o},className:r(`overflow-hidden`,n),style:{...i,height:e?t:0,pointerEvents:e?void 0:`none`,transformOrigin:`top`}})}var f=e(t(),1),p={initial:{opacity:0,y:`90%`,filter:`blur(3px)`},animate:{opacity:1,y:`0%`,filter:`blur(0px)`,transition:i},exit:{opacity:0,y:`-90%`,filter:`blur(3px)`,transition:{duration:.14,ease:o}}};function m({value:e,children:t,className:n}){let i=l(),o=(0,f.useRef)(null),[d,m]=(0,f.useState)();return(0,f.useLayoutEffect)(()=>{let e=o.current?.offsetWidth;e&&m(t=>t===e?t:e)}),(0,u.jsxs)(`span`,{className:r(`relative inline-block overflow-hidden whitespace-nowrap align-bottom`,n),style:{width:d,transition:i?void 0:`width 220ms ${a}`},children:[(0,u.jsx)(`span`,{ref:o,"aria-hidden":!0,className:`invisible inline-block whitespace-nowrap`,children:t}),(0,u.jsx)(c,{initial:!1,children:(0,u.jsx)(s.span,{variants:p,initial:!i&&`initial`,animate:i?{opacity:1,filter:`blur(0px)`,scale:1,y:0}:`animate`,exit:i?void 0:`exit`,className:`absolute left-0 top-0 inline-block`,children:t},`roll-${e}`)})]})}export{d as n,m as t};
@@ -1 +1 @@
1
- import{t as e}from"./jsx-runtime-NZYk81nU.js";import{t}from"./utils-CFDGLzf6.js";import{_ as n,i as r,n as i,o as a,t as o,v as s,y as c}from"./DialogTitle-D-zqaHvF.js";import{d as l,n as u,u as d}from"./surfaces-B8xTOFeK.js";import{t as f}from"./button-BJZe4vNJ.js";function p(e){return i(`alert-dialog`,e)}var m=e(),h=4;function g({...e}){return(0,m.jsx)(p,{"data-slot":`alert-dialog`,...e})}function _({...e}){return(0,m.jsx)(r,{"data-slot":`alert-dialog-portal`,...e})}function v({className:e,...n}){return(0,m.jsx)(c,{"data-slot":`alert-dialog-backdrop`,className:t(`fixed inset-0 isolate z-[60] bg-black/10 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0`,e),...n})}function y({className:e,children:n,...r}){let i=l(),o=Math.min(i+h,8);return(0,m.jsxs)(_,{children:[(0,m.jsx)(v,{}),(0,m.jsx)(a,{"data-slot":`alert-dialog-content`,className:t(`fixed top-1/2 left-1/2 z-[60] grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl p-6 text-sm text-popover-foreground outline-none sm:max-w-md data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95`,d(o),e),...r,children:(0,m.jsx)(u,{value:o,children:n})})]})}function b({className:e,...n}){return(0,m.jsx)(o,{"data-slot":`alert-dialog-title`,className:t(`font-heading text-base leading-none font-medium`,e),...n})}function x({className:e,...r}){return(0,m.jsx)(n,{"data-slot":`alert-dialog-description`,className:t(`text-sm text-pretty text-muted-foreground`,e),...r})}function S({className:e,...n}){return(0,m.jsx)(`div`,{"data-slot":`alert-dialog-footer`,className:t(`flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,e),...n})}function C({...e}){return(0,m.jsx)(s,{"data-slot":`alert-dialog-cancel`,render:(0,m.jsx)(f,{variant:`outline`}),...e})}function w({...e}){return(0,m.jsx)(s,{"data-slot":`alert-dialog-action`,render:(0,m.jsx)(f,{variant:`destructive`}),...e})}export{x as a,y as i,w as n,S as o,C as r,b as s,g as t};
1
+ import{t as e}from"./jsx-runtime-NZYk81nU.js";import{t}from"./utils-oBThwhjm.js";import{_ as n,i as r,n as i,o as a,t as o,v as s,y as c}from"./DialogTitle-RY2UDuCY.js";import{t as l}from"./button-CWYjn8Zk.js";import{c as u,s as d,t as f}from"./surfaces-BUjUJTyD.js";function p(e){return i(`alert-dialog`,e)}var m=e(),h=4;function g({...e}){return(0,m.jsx)(p,{"data-slot":`alert-dialog`,...e})}function _({...e}){return(0,m.jsx)(r,{"data-slot":`alert-dialog-portal`,...e})}function v({className:e,...n}){return(0,m.jsx)(c,{"data-slot":`alert-dialog-backdrop`,className:t(`fixed inset-0 isolate z-[60] bg-black/10 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0`,e),...n})}function y({className:e,children:n,...r}){let i=u(),o=Math.min(i+h,8);return(0,m.jsxs)(_,{children:[(0,m.jsx)(v,{}),(0,m.jsx)(a,{"data-slot":`alert-dialog-content`,className:t(`fixed top-1/2 left-1/2 z-[60] grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl p-6 text-sm text-popover-foreground outline-none sm:max-w-md data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95`,d(o),e),...r,children:(0,m.jsx)(f,{value:o,children:n})})]})}function b({className:e,...n}){return(0,m.jsx)(o,{"data-slot":`alert-dialog-title`,className:t(`font-heading text-base leading-none font-medium`,e),...n})}function x({className:e,...r}){return(0,m.jsx)(n,{"data-slot":`alert-dialog-description`,className:t(`text-sm text-pretty text-muted-foreground`,e),...r})}function S({className:e,...n}){return(0,m.jsx)(`div`,{"data-slot":`alert-dialog-footer`,className:t(`flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,e),...n})}function C({...e}){return(0,m.jsx)(s,{"data-slot":`alert-dialog-cancel`,render:(0,m.jsx)(l,{variant:`outline`}),...e})}function w({...e}){return(0,m.jsx)(s,{"data-slot":`alert-dialog-action`,render:(0,m.jsx)(l,{variant:`destructive`}),...e})}export{x as a,y as i,w as n,S as o,C as r,b as s,g as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./createLucideIcon-CQY2ECfR.js";var t={name:`arrow-up-right`,size:24,node:[[`path`,{d:`M7 7h10v10`,key:`1tivn9`}],[`path`,{d:`M7 17 17 7`,key:`1vkiza`}]]};t.node;var n=e(t);export{n as t};
@@ -1 +1 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./react-Cvdyeg_0.js";import{t as n}from"./jsx-runtime-NZYk81nU.js";import{t as r}from"./createLucideIcon-CQY2ECfR.js";import{i,n as a,r as o,t as s}from"./tool-result-BccnO34D.js";import{t as c}from"./chevron-right-BPCB1mOg.js";import{t as l}from"./package-BkC-HSi-.js";import{t as u}from"./button-BJZe4vNJ.js";import{n as d}from"./prime-agent-artifacts-C-g1VPiW.js";import{Q as f}from"./badge-C--lf3bb.js";import{GenerativeTextRenderer as p,t as m}from"./openui-renderer-MIB3JKYa.js";import{n as h,r as g,t as _}from"./collapsible-DauSnbYp.js";var v={name:`layout-template`,size:24,node:[[`rect`,{width:`18`,height:`7`,x:`3`,y:`3`,rx:`1`,key:`f1a2em`}],[`rect`,{width:`9`,height:`7`,x:`3`,y:`14`,rx:`1`,key:`jqznyg`}],[`rect`,{width:`5`,height:`7`,x:`16`,y:`14`,rx:`1`,key:`q5h2i8`}]]};v.node;var y=r(v),b=e(t(),1),x=n(),S=[];function C(e){if(typeof e==`string`)return e;if(e==null)return``;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function w(e){return e===`running`?`running`:e===`error`?`error`:e===`cancelled`?`cancelled`:`success`}function T(e){return e===`running`?`streaming`:e===`error`?`error`:e===`cancelled`?`cancelled`:`complete`}function E(e){let t=typeof e==`object`&&e?e:void 0;if(!t)return e===void 0?[]:[{label:`result`,text:C(e)}];let n=[];for(let e of[`stdout`,`stderr`,`result`,`error`])t[e]!==void 0&&t[e]!==``&&n.push({label:e,text:C(t[e])});let r=t.details??t.output??t.result;if(n.length===0&&r!==e&&n.push(...E(r)),n.length===0&&Array.isArray(t.content)){let e=t.content.flatMap(e=>typeof e==`string`?[e]:typeof e==`object`&&e&&`text`in e&&typeof e.text==`string`?[e.text]:[]).join(``);e&&n.push({label:t.isError===!0?`error`:`stdout`,text:e})}return n.length>0?n:[{label:`result`,text:C(e)}]}function D(e){let t=typeof e.input==`object`&&e.input!==null?e.input:void 0,n=t?.command??t?.code??t?.script;if(!(typeof n!=`string`||!n))return e.kind===`bash`?{code:n,language:`bash`,label:`Bash`}:e.kind===`ipython`?{code:n,language:/^\s*%%bash(?:\s|$)/im.test(n)?`bash`:`python`,label:`IPython`}:e.kind===`diff`?{code:n,language:`text`,label:`Text`}:{code:n,language:`json`,label:`JSON`}}function O(e){if(e.kind!==`openui-html`)return;let t=typeof e.output==`object`&&e.output!==null?e.output:void 0;if(typeof t?.title==`string`&&typeof t.document==`string`)return{title:t.title,document:t.document}}function k({artifact:e,selected:t}){let n=(0,b.useRef)(null);(0,b.useEffect)(()=>{t&&requestAnimationFrame(()=>{n.current?.focus({preventScroll:!0}),n.current?.scrollIntoView({block:`nearest`})})},[t]);let r=O(e);return(0,x.jsxs)(`article`,{ref:n,"data-artifact-id":e.id,tabIndex:-1,className:`min-w-0 rounded-md border border-border/60 bg-background p-2.5 outline-none focus-visible:ring-2 focus-visible:ring-ring`,children:[(0,x.jsxs)(`div`,{className:`mb-2 flex min-w-0 items-center gap-2`,children:[(0,x.jsx)(y,{className:`size-3.5 shrink-0 text-foreground/45`}),(0,x.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-xs font-medium`,title:e.title,children:e.title||`OpenUI artifact`}),(0,x.jsx)(`span`,{className:`shrink-0 text-micro text-foreground/40`,children:e.status})]}),r?(0,x.jsx)(m,{artifact:r}):(0,x.jsxs)(`div`,{role:`alert`,className:`space-y-2 text-xs text-destructive`,children:[(0,x.jsx)(`p`,{children:`OpenUI artifact data is unavailable.`}),(0,x.jsx)(`pre`,{className:`max-h-48 overflow-auto whitespace-pre-wrap break-words rounded bg-foreground/5 p-2 text-foreground/70`,children:C(e.output)})]})]})}function A({artifact:e,selected:t}){let n=(0,b.useRef)(null),r=t||e.status===`running`,[c,l]=(0,b.useState)(r);(0,b.useEffect)(()=>{t&&(l(!0),requestAnimationFrame(()=>{n.current?.focus({preventScroll:!0}),n.current?.scrollIntoView({block:`nearest`})}))},[t]);let u=D(e),f=E(e.output),p=e.kind===`diff`||e.kind===`refinement`?d(e):void 0;return(0,x.jsxs)(`article`,{ref:n,"data-artifact-id":e.id,tabIndex:-1,className:`rounded-md border border-border/60 bg-background px-2.5 py-2 outline-none focus-visible:ring-2 focus-visible:ring-ring`,children:[p?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(o,{file:p.file,lines:p.lines,status:T(e.status),defaultOpen:r,copyText:p.copyText,maxHeight:240}),f.map(e=>(0,x.jsx)(a,{label:e.label,language:`text`,children:e.text},e.label))]}):null,p?null:(0,x.jsx)(s,{tool:e.kind,title:e.title,status:w(e.status),open:c,onOpenChange:l,defaultOpen:r,kind:e.kind===`bash`||e.kind===`ipython`?`terminal`:`custom`,children:(0,x.jsxs)(`div`,{className:`space-y-3`,children:[u?(0,x.jsx)(i,{code:u.code,language:u.language,languageLabel:u.label,showStatus:!1,showLineNumbers:!1,wrap:!0}):null,f.map(e=>(0,x.jsx)(a,{label:e.label,language:`text`,children:e.text},e.label))]})})]})}function j({block:e,expanded:t,isStreaming:n,onOpenUIAction:r,onToggle:i}){return(0,x.jsxs)(_,{open:t,onOpenChange:i,children:[(0,x.jsxs)(g,{render:(0,x.jsx)(u,{variant:`ghost`,size:`compact`,className:`group w-full justify-start gap-1.5 text-left text-label font-normal text-foreground/65 transition-none hover:bg-foreground/5 hover:text-foreground/80`}),children:[(0,x.jsx)(c,{className:`size-3 shrink-0 text-foreground/35 transition-transform group-data-panel-open:rotate-90`}),(0,x.jsx)(y,{className:`size-3.5 shrink-0 text-foreground/35`}),(0,x.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,title:e.component,children:e.component}),(0,x.jsxs)(`span`,{className:`shrink-0 text-micro text-foreground/40`,children:[`#`,e.ordinal]})]}),(0,x.jsx)(h,{children:(0,x.jsx)(`div`,{className:`mb-1 mt-0.5 flex min-w-0 flex-col overflow-hidden rounded-md border border-border/60 bg-background px-2.5 py-2`,children:(0,x.jsx)(f,{resetKeys:[e.content],children:(0,x.jsx)(p,{content:e.content,isStreaming:n,messageId:e.blockId,onOpenUIAction:r})})})})]})}function M({openUIBlocks:e=[],onOpenUIAction:t,status:n,artifactRuns:r=S,selectedArtifactId:i}){let a=e,[o,s]=(0,b.useState)(null),c=n===`streaming`?a.at(-1)?.blockId:void 0,u=(0,b.useMemo)(()=>r.flatMap(e=>e.artifacts),[r]),d=(0,b.useMemo)(()=>u.filter(e=>e.kind===`openui-html`),[u]),f=(0,b.useMemo)(()=>u.filter(e=>e.kind!==`openui-html`&&e.kind!==`ipython`),[u]);return(0,x.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col gap-2 overflow-hidden`,children:[d.length>0?(0,x.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:[(0,x.jsxs)(`div`,{className:`mb-2 flex min-w-0 items-center gap-2 rounded-sm bg-foreground/5 px-2 py-1.5`,children:[(0,x.jsx)(y,{className:`size-3.5 shrink-0 text-foreground/45`}),(0,x.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-label font-medium text-foreground/70`,children:`OpenUI artifacts`}),(0,x.jsx)(`span`,{className:`shrink-0 text-micro text-foreground/40`,children:d.length})]}),(0,x.jsx)(`div`,{className:`space-y-1`,children:d.map(e=>(0,x.jsx)(k,{artifact:e,selected:e.id===i},e.id))})]}):null,f.length>0?(0,x.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:[(0,x.jsxs)(`div`,{className:`mb-2 flex min-w-0 items-center gap-2 rounded-sm bg-foreground/5 px-2 py-1.5`,children:[(0,x.jsx)(l,{className:`size-3.5 shrink-0 text-foreground/45`}),(0,x.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-label font-medium text-foreground/70`,children:`Technical artifacts`}),(0,x.jsx)(`span`,{className:`shrink-0 text-micro text-foreground/40`,children:f.length})]}),(0,x.jsx)(`div`,{className:`space-y-1`,children:f.map(e=>(0,x.jsx)(A,{artifact:e,selected:e.id===i},e.id))})]}):null,(0,x.jsxs)(`div`,{className:`flex min-h-0 flex-col`,children:[(0,x.jsxs)(`div`,{className:`mb-2 flex min-w-0 items-center gap-2 rounded-sm bg-foreground/5 px-2 py-1.5`,children:[(0,x.jsx)(y,{className:`size-3.5 shrink-0 text-foreground/45`}),(0,x.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-label font-medium text-foreground/70`,children:`Generative UI`}),(0,x.jsx)(`span`,{className:`shrink-0 text-micro text-foreground/40`,children:a.length>0?`${a.length}`:`none yet`})]}),a.length===0?(0,x.jsx)(`p`,{className:`px-2 pb-1 text-caption leading-4 text-foreground/40`,children:`OpenUI interfaces the agent generates in this session appear here, and can be re-opened without scrolling the conversation.`}):(0,x.jsx)(`div`,{className:`flex min-h-0 flex-col gap-0.5 overflow-y-auto`,children:a.map(e=>(0,x.jsx)(j,{block:e,expanded:e.blockId===o,isStreaming:e.blockId===c,onOpenUIAction:t,onToggle:()=>s(t=>t===e.blockId?null:e.blockId)},e.blockId))})]})]})}export{M as ArtifactsPanelContent};
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{t}from"./react-Cvdyeg_0.js";import{t as n}from"./jsx-runtime-NZYk81nU.js";import{t as r}from"./createLucideIcon-CQY2ECfR.js";import{i,n as a,r as o,t as s}from"./tool-result-bjAGZ2qm.js";import{t as c}from"./chevron-right-BPCB1mOg.js";import{t as l}from"./package-BkC-HSi-.js";import{t as u}from"./button-CWYjn8Zk.js";import{n as d}from"./prime-agent-artifacts-C-g1VPiW.js";import{Q as f}from"./badge-DM06QVqB.js";import{GenerativeTextRenderer as p,t as m}from"./openui-renderer-BdYTcn-_.js";import{n as h,r as g,t as _}from"./collapsible-Bk6zCsRX.js";var v={name:`layout-template`,size:24,node:[[`rect`,{width:`18`,height:`7`,x:`3`,y:`3`,rx:`1`,key:`f1a2em`}],[`rect`,{width:`9`,height:`7`,x:`3`,y:`14`,rx:`1`,key:`jqznyg`}],[`rect`,{width:`5`,height:`7`,x:`16`,y:`14`,rx:`1`,key:`q5h2i8`}]]};v.node;var y=r(v),b=e(t(),1),x=n(),S=[];function C(e){if(typeof e==`string`)return e;if(e==null)return``;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function w(e){return e===`running`?`running`:e===`error`?`error`:e===`cancelled`?`cancelled`:`success`}function T(e){return e===`running`?`streaming`:e===`error`?`error`:e===`cancelled`?`cancelled`:`complete`}function E(e){let t=typeof e==`object`&&e?e:void 0;if(!t)return e===void 0?[]:[{label:`result`,text:C(e)}];let n=[];for(let e of[`stdout`,`stderr`,`result`,`error`])t[e]!==void 0&&t[e]!==``&&n.push({label:e,text:C(t[e])});let r=t.details??t.output??t.result;if(n.length===0&&r!==e&&n.push(...E(r)),n.length===0&&Array.isArray(t.content)){let e=t.content.flatMap(e=>typeof e==`string`?[e]:typeof e==`object`&&e&&`text`in e&&typeof e.text==`string`?[e.text]:[]).join(``);e&&n.push({label:t.isError===!0?`error`:`stdout`,text:e})}return n.length>0?n:[{label:`result`,text:C(e)}]}function D(e){let t=typeof e.input==`object`&&e.input!==null?e.input:void 0,n=t?.command??t?.code??t?.script;if(!(typeof n!=`string`||!n))return e.kind===`bash`?{code:n,language:`bash`,label:`Bash`}:e.kind===`ipython`?{code:n,language:/^\s*%%bash(?:\s|$)/im.test(n)?`bash`:`python`,label:`IPython`}:e.kind===`diff`?{code:n,language:`text`,label:`Text`}:{code:n,language:`json`,label:`JSON`}}function O(e){if(e.kind!==`openui-html`)return;let t=typeof e.output==`object`&&e.output!==null?e.output:void 0;if(typeof t?.title==`string`&&typeof t.document==`string`)return{title:t.title,document:t.document}}function k({artifact:e,selected:t}){let n=(0,b.useRef)(null);(0,b.useEffect)(()=>{t&&requestAnimationFrame(()=>{n.current?.focus({preventScroll:!0}),n.current?.scrollIntoView({block:`nearest`})})},[t]);let r=O(e);return(0,x.jsxs)(`article`,{ref:n,"data-artifact-id":e.id,tabIndex:-1,className:`min-w-0 rounded-md border border-border/60 bg-background p-2.5 outline-none focus-visible:ring-2 focus-visible:ring-ring`,children:[(0,x.jsxs)(`div`,{className:`mb-2 flex min-w-0 items-center gap-2`,children:[(0,x.jsx)(y,{className:`size-3.5 shrink-0 text-foreground/45`}),(0,x.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-xs font-medium`,title:e.title,children:e.title||`OpenUI artifact`}),(0,x.jsx)(`span`,{className:`shrink-0 text-micro text-foreground/40`,children:e.status})]}),r?(0,x.jsx)(m,{artifact:r}):(0,x.jsxs)(`div`,{role:`alert`,className:`space-y-2 text-xs text-destructive`,children:[(0,x.jsx)(`p`,{children:`OpenUI artifact data is unavailable.`}),(0,x.jsx)(`pre`,{className:`max-h-48 overflow-auto whitespace-pre-wrap break-words rounded bg-foreground/5 p-2 text-foreground/70`,children:C(e.output)})]})]})}function A({artifact:e,selected:t}){let n=(0,b.useRef)(null),r=t||e.status===`running`,[c,l]=(0,b.useState)(r);(0,b.useEffect)(()=>{t&&(l(!0),requestAnimationFrame(()=>{n.current?.focus({preventScroll:!0}),n.current?.scrollIntoView({block:`nearest`})}))},[t]);let u=D(e),f=E(e.output),p=e.kind===`diff`||e.kind===`refinement`?d(e):void 0;return(0,x.jsxs)(`article`,{ref:n,"data-artifact-id":e.id,tabIndex:-1,className:`rounded-md border border-border/60 bg-background px-2.5 py-2 outline-none focus-visible:ring-2 focus-visible:ring-ring`,children:[p?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(i,{file:p.file,lines:p.lines,status:T(e.status),defaultOpen:r,copyText:p.copyText,maxHeight:240}),f.map(e=>(0,x.jsx)(a,{label:e.label,language:`text`,children:e.text},e.label))]}):null,p?null:(0,x.jsx)(s,{tool:e.kind,title:e.title,status:w(e.status),open:c,onOpenChange:l,defaultOpen:r,kind:e.kind===`bash`||e.kind===`ipython`?`terminal`:`custom`,children:(0,x.jsxs)(`div`,{className:`space-y-3`,children:[u?(0,x.jsx)(o,{code:u.code,language:u.language,languageLabel:u.label,showStatus:!1,showLineNumbers:!1,wrap:!0}):null,f.map(e=>(0,x.jsx)(a,{label:e.label,language:`text`,children:e.text},e.label))]})})]})}function j({block:e,expanded:t,isStreaming:n,onOpenUIAction:r,onToggle:i}){return(0,x.jsxs)(_,{open:t,onOpenChange:i,children:[(0,x.jsxs)(g,{render:(0,x.jsx)(u,{variant:`ghost`,size:`compact`,className:`group w-full justify-start gap-1.5 text-left text-label font-normal text-foreground/65 transition-none hover:bg-foreground/5 hover:text-foreground/80`}),children:[(0,x.jsx)(c,{className:`size-3 shrink-0 text-foreground/35 transition-transform group-data-panel-open:rotate-90`}),(0,x.jsx)(y,{className:`size-3.5 shrink-0 text-foreground/35`}),(0,x.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,title:e.component,children:e.component}),(0,x.jsxs)(`span`,{className:`shrink-0 text-micro text-foreground/40`,children:[`#`,e.ordinal]})]}),(0,x.jsx)(h,{children:(0,x.jsx)(`div`,{className:`mb-1 mt-0.5 flex min-w-0 flex-col overflow-hidden rounded-md border border-border/60 bg-background px-2.5 py-2`,children:(0,x.jsx)(f,{resetKeys:[e.content],children:(0,x.jsx)(p,{content:e.content,isStreaming:n,messageId:e.blockId,onOpenUIAction:r})})})})]})}function M({openUIBlocks:e=[],onOpenUIAction:t,status:n,artifactRuns:r=S,selectedArtifactId:i}){let a=e,[o,s]=(0,b.useState)(null),c=n===`streaming`?a.at(-1)?.blockId:void 0,u=(0,b.useMemo)(()=>r.flatMap(e=>e.artifacts),[r]),d=(0,b.useMemo)(()=>u.filter(e=>e.kind===`openui-html`),[u]),f=(0,b.useMemo)(()=>u.filter(e=>e.kind!==`openui-html`&&e.kind!==`ipython`),[u]);return(0,x.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col gap-2 overflow-hidden`,children:[d.length>0?(0,x.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:[(0,x.jsxs)(`div`,{className:`mb-2 flex min-w-0 items-center gap-2 rounded-sm bg-foreground/5 px-2 py-1.5`,children:[(0,x.jsx)(y,{className:`size-3.5 shrink-0 text-foreground/45`}),(0,x.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-label font-medium text-foreground/70`,children:`OpenUI artifacts`}),(0,x.jsx)(`span`,{className:`shrink-0 text-micro text-foreground/40`,children:d.length})]}),(0,x.jsx)(`div`,{className:`space-y-1`,children:d.map(e=>(0,x.jsx)(k,{artifact:e,selected:e.id===i},e.id))})]}):null,f.length>0?(0,x.jsxs)(`div`,{className:`min-h-0 flex-1 overflow-y-auto`,children:[(0,x.jsxs)(`div`,{className:`mb-2 flex min-w-0 items-center gap-2 rounded-sm bg-foreground/5 px-2 py-1.5`,children:[(0,x.jsx)(l,{className:`size-3.5 shrink-0 text-foreground/45`}),(0,x.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-label font-medium text-foreground/70`,children:`Technical artifacts`}),(0,x.jsx)(`span`,{className:`shrink-0 text-micro text-foreground/40`,children:f.length})]}),(0,x.jsx)(`div`,{className:`space-y-1`,children:f.map(e=>(0,x.jsx)(A,{artifact:e,selected:e.id===i},e.id))})]}):null,(0,x.jsxs)(`div`,{className:`flex min-h-0 flex-col`,children:[(0,x.jsxs)(`div`,{className:`mb-2 flex min-w-0 items-center gap-2 rounded-sm bg-foreground/5 px-2 py-1.5`,children:[(0,x.jsx)(y,{className:`size-3.5 shrink-0 text-foreground/45`}),(0,x.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-label font-medium text-foreground/70`,children:`Generative UI`}),(0,x.jsx)(`span`,{className:`shrink-0 text-micro text-foreground/40`,children:a.length>0?`${a.length}`:`none yet`})]}),a.length===0?(0,x.jsx)(`p`,{className:`px-2 pb-1 text-caption leading-4 text-foreground/40`,children:`OpenUI interfaces the agent generates in this session appear here, and can be re-opened without scrolling the conversation.`}):(0,x.jsx)(`div`,{className:`flex min-h-0 flex-col gap-0.5 overflow-y-auto`,children:a.map(e=>(0,x.jsx)(j,{block:e,expanded:e.blockId===o,isStreaming:e.blockId===c,onOpenUIAction:t,onToggle:()=>s(t=>t===e.blockId?null:e.blockId)},e.blockId))})]})]})}export{M as ArtifactsPanelContent};