agentroam-runtime-darwin-arm64 0.2.0-preview.68 → 0.2.0-preview.69

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 (896) hide show
  1. package/manifest.json +2 -2
  2. package/package.json +1 -1
  3. package/runtime/.next/BUILD_ID +1 -1
  4. package/runtime/.next/app-build-manifest.json +8 -8
  5. package/runtime/.next/app-path-routes-manifest.json +1 -1
  6. package/runtime/.next/build-manifest.json +3 -3
  7. package/runtime/.next/prerender-manifest.json +1 -1
  8. package/runtime/.next/required-server-files.json +1 -1
  9. package/runtime/.next/server/app/_not-found/page.js +1 -1
  10. package/runtime/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  11. package/runtime/.next/server/app/_not-found.html +1 -1
  12. package/runtime/.next/server/app/_not-found.rsc +1 -1
  13. package/runtime/.next/server/app/api/agent/abort/route.js +1 -1
  14. package/runtime/.next/server/app/api/agent/answer/route.js +1 -1
  15. package/runtime/.next/server/app/api/agent/codex-sharing/route.js +1 -1
  16. package/runtime/.next/server/app/api/agent/harness/status/route.js +1 -1
  17. package/runtime/.next/server/app/api/agent/model/route.js +1 -1
  18. package/runtime/.next/server/app/api/agent/models/route.js +1 -1
  19. package/runtime/.next/server/app/api/agent/run/route.js +1 -1
  20. package/runtime/.next/server/app/api/agent/runtime-health/route.js +1 -1
  21. package/runtime/.next/server/app/api/agent/steer/route.js +1 -1
  22. package/runtime/.next/server/app/api/agent/stream/route.js +2 -2
  23. package/runtime/.next/server/app/api/agent-workspaces/[workspaceId]/sessions/route.js +1 -1
  24. package/runtime/.next/server/app/api/agent-workspaces/route.js +1 -1
  25. package/runtime/.next/server/app/api/auth/verify/route.js +1 -1
  26. package/runtime/.next/server/app/api/business/route.js +1 -1
  27. package/runtime/.next/server/app/api/client-logs/route.js +1 -1
  28. package/runtime/.next/server/app/api/collaboration/route.js +4 -4
  29. package/runtime/.next/server/app/api/flow/v1/catalog/route.js +1 -1
  30. package/runtime/.next/server/app/api/flow/v1/runs/[runId]/cancel/route.js +1 -1
  31. package/runtime/.next/server/app/api/flow/v1/runs/[runId]/events/route.js +4 -4
  32. package/runtime/.next/server/app/api/flow/v1/runs/route.js +1 -1
  33. package/runtime/.next/server/app/api/flow-studio/config/route.js +1 -1
  34. package/runtime/.next/server/app/api/mcp/connect/route.js +1 -1
  35. package/runtime/.next/server/app/api/mcp/disconnect/route.js +1 -1
  36. package/runtime/.next/server/app/api/mcp/servers/route.js +1 -1
  37. package/runtime/.next/server/app/api/memory/[key]/route.js +1 -1
  38. package/runtime/.next/server/app/api/memory/route.js +1 -1
  39. package/runtime/.next/server/app/api/plugins/load/route.js +1 -1
  40. package/runtime/.next/server/app/api/projects/[id]/route.js +1 -1
  41. package/runtime/.next/server/app/api/projects/check/route.js +1 -1
  42. package/runtime/.next/server/app/api/projects/directories/route.js +1 -1
  43. package/runtime/.next/server/app/api/projects/roots/route.js +1 -1
  44. package/runtime/.next/server/app/api/projects/route.js +1 -1
  45. package/runtime/.next/server/app/api/push/subscribe/route.js +2 -2
  46. package/runtime/.next/server/app/api/push/unsubscribe/route.js +3 -3
  47. package/runtime/.next/server/app/api/push/vapid/route.js +2 -2
  48. package/runtime/.next/server/app/api/push/vapid.body +1 -1
  49. package/runtime/.next/server/app/api/remote-tools/register/route.js +1 -1
  50. package/runtime/.next/server/app/api/sessions/[id]/background-jobs/[jobId]/route.js +1 -1
  51. package/runtime/.next/server/app/api/sessions/[id]/background-jobs/[jobId]/stop/route.js +1 -1
  52. package/runtime/.next/server/app/api/sessions/[id]/background-jobs/route.js +1 -1
  53. package/runtime/.next/server/app/api/sessions/[id]/changes/route.js +2 -2
  54. package/runtime/.next/server/app/api/sessions/[id]/fork/route.js +1 -1
  55. package/runtime/.next/server/app/api/sessions/[id]/fork-at/route.js +1 -1
  56. package/runtime/.next/server/app/api/sessions/[id]/goals/route.js +1 -1
  57. package/runtime/.next/server/app/api/sessions/[id]/handoff/route.js +1 -1
  58. package/runtime/.next/server/app/api/sessions/[id]/native-goal/route.js +1 -1
  59. package/runtime/.next/server/app/api/sessions/[id]/query-index/route.js +1 -1
  60. package/runtime/.next/server/app/api/sessions/[id]/release/route.js +1 -1
  61. package/runtime/.next/server/app/api/sessions/[id]/route.js +1 -1
  62. package/runtime/.next/server/app/api/sessions/[id]/thread-goal/route.js +1 -1
  63. package/runtime/.next/server/app/api/sessions/[id]/tool-result/route.js +1 -1
  64. package/runtime/.next/server/app/api/sessions/route.js +1 -1
  65. package/runtime/.next/server/app/api/settings/route.js +1 -1
  66. package/runtime/.next/server/app/api/skills/route.js +1 -1
  67. package/runtime/.next/server/app/api/tool-policies/[policyId]/route.js +1 -1
  68. package/runtime/.next/server/app/api/tool-policies/route.js +1 -1
  69. package/runtime/.next/server/app/api/tools/route.js +1 -1
  70. package/runtime/.next/server/app/api/update/check/route.js +1 -1
  71. package/runtime/.next/server/app/api/update/install/route.js +1 -1
  72. package/runtime/.next/server/app/api/update/status/route.js +1 -1
  73. package/runtime/.next/server/app/api/web-auth/login/route.js +1 -1
  74. package/runtime/.next/server/app/api/web-auth/logout/route.js +1 -1
  75. package/runtime/.next/server/app/api/web-auth/revoke-all/route.js +1 -1
  76. package/runtime/.next/server/app/api/web-auth/setup/route.js +1 -1
  77. package/runtime/.next/server/app/api/web-auth/status/route.js +1 -1
  78. package/runtime/.next/server/app/api/web-console/bootstrap/route.js +1 -1
  79. package/runtime/.next/server/app/api/web-console/computer-settings/route.js +1 -1
  80. package/runtime/.next/server/app/api/web-console/computers/route.js +1 -1
  81. package/runtime/.next/server/app/api/web-console/device-state/route.js +1 -1
  82. package/runtime/.next/server/app/api/web-console/history/route.js +1 -1
  83. package/runtime/.next/server/app/api/web-console/preferences/route.js +1 -1
  84. package/runtime/.next/server/app/web/page.js +4 -4
  85. package/runtime/.next/server/app/web/page_client-reference-manifest.js +1 -1
  86. package/runtime/.next/server/app-paths-manifest.json +30 -30
  87. package/runtime/.next/server/chunks/5303.js +2 -2
  88. package/runtime/.next/server/middleware-build-manifest.js +1 -1
  89. package/runtime/.next/server/pages/404.html +1 -1
  90. package/runtime/.next/server/pages/500.html +1 -1
  91. package/runtime/.next/server/server-reference-manifest.json +1 -1
  92. package/runtime/.next/static/chunks/app/web/{error-b5d1875531d2eeb6.js → error-c3847c5e65100576.js} +1 -1
  93. package/runtime/.next/static/chunks/app/web/layout-579afeab60c11faf.js +1 -0
  94. package/runtime/.next/static/chunks/app/web/page-1586e76a5cff32d5.js +1 -0
  95. package/runtime/.next/static/chunks/{main-app-3734d90a62991817.js → main-app-c797e818a3f2a09f.js} +1 -1
  96. package/runtime/native/Support.noindex/AgentRoam Remote Desktop.app/Contents/MacOS/agentroam-remote-desktop +0 -0
  97. package/runtime/native/Support.noindex/AgentRoam Remote Desktop.app/Contents/Resources/agentroam-component.json +1 -1
  98. package/runtime/native/Support.noindex/AgentRoam Remote Desktop.app/Contents/_CodeSignature/CodeResources +2 -2
  99. package/runtime/node_modules/.package-lock.json +128 -128
  100. package/runtime/node_modules/@agent/native-runtime/dist/index.js +442 -69
  101. package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/README.md +1 -1
  102. package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/bridge.mjs +75 -82
  103. package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/browser-sdk.js +28 -37
  104. package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/core-a9vq6p1m.mjs +31 -0
  105. package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/core-bb8r6h44.mjs +17 -0
  106. package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/core-kzw924e6.mjs +18 -0
  107. package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/core-t4mxrz5y.mjs +43 -0
  108. package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/core.mjs +12 -21
  109. package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/manifest.json +19 -20
  110. package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/manifest.zst.json +23 -24
  111. package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/package.json +14 -14
  112. package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/sdk.mjs +73 -82
  113. package/runtime/node_modules/caniuse-lite/data/agents.js +1 -1
  114. package/runtime/node_modules/caniuse-lite/data/browserVersions.js +1 -1
  115. package/runtime/node_modules/caniuse-lite/data/features/aac.js +1 -1
  116. package/runtime/node_modules/caniuse-lite/data/features/abortcontroller.js +1 -1
  117. package/runtime/node_modules/caniuse-lite/data/features/ac3-ec3.js +1 -1
  118. package/runtime/node_modules/caniuse-lite/data/features/accelerometer.js +1 -1
  119. package/runtime/node_modules/caniuse-lite/data/features/addeventlistener.js +1 -1
  120. package/runtime/node_modules/caniuse-lite/data/features/alternate-stylesheet.js +1 -1
  121. package/runtime/node_modules/caniuse-lite/data/features/ambient-light.js +1 -1
  122. package/runtime/node_modules/caniuse-lite/data/features/apng.js +1 -1
  123. package/runtime/node_modules/caniuse-lite/data/features/array-find-index.js +1 -1
  124. package/runtime/node_modules/caniuse-lite/data/features/array-find.js +1 -1
  125. package/runtime/node_modules/caniuse-lite/data/features/array-flat.js +1 -1
  126. package/runtime/node_modules/caniuse-lite/data/features/array-includes.js +1 -1
  127. package/runtime/node_modules/caniuse-lite/data/features/arrow-functions.js +1 -1
  128. package/runtime/node_modules/caniuse-lite/data/features/asmjs.js +1 -1
  129. package/runtime/node_modules/caniuse-lite/data/features/async-clipboard.js +1 -1
  130. package/runtime/node_modules/caniuse-lite/data/features/async-functions.js +1 -1
  131. package/runtime/node_modules/caniuse-lite/data/features/atob-btoa.js +1 -1
  132. package/runtime/node_modules/caniuse-lite/data/features/audio-api.js +1 -1
  133. package/runtime/node_modules/caniuse-lite/data/features/audio.js +1 -1
  134. package/runtime/node_modules/caniuse-lite/data/features/audiotracks.js +1 -1
  135. package/runtime/node_modules/caniuse-lite/data/features/autofocus.js +1 -1
  136. package/runtime/node_modules/caniuse-lite/data/features/auxclick.js +1 -1
  137. package/runtime/node_modules/caniuse-lite/data/features/av1.js +1 -1
  138. package/runtime/node_modules/caniuse-lite/data/features/avif.js +1 -1
  139. package/runtime/node_modules/caniuse-lite/data/features/background-attachment.js +1 -1
  140. package/runtime/node_modules/caniuse-lite/data/features/background-clip-text.js +1 -1
  141. package/runtime/node_modules/caniuse-lite/data/features/background-img-opts.js +1 -1
  142. package/runtime/node_modules/caniuse-lite/data/features/background-position-x-y.js +1 -1
  143. package/runtime/node_modules/caniuse-lite/data/features/background-repeat-round-space.js +1 -1
  144. package/runtime/node_modules/caniuse-lite/data/features/background-sync.js +1 -1
  145. package/runtime/node_modules/caniuse-lite/data/features/battery-status.js +1 -1
  146. package/runtime/node_modules/caniuse-lite/data/features/beacon.js +1 -1
  147. package/runtime/node_modules/caniuse-lite/data/features/beforeafterprint.js +1 -1
  148. package/runtime/node_modules/caniuse-lite/data/features/bigint.js +1 -1
  149. package/runtime/node_modules/caniuse-lite/data/features/blobbuilder.js +1 -1
  150. package/runtime/node_modules/caniuse-lite/data/features/bloburls.js +1 -1
  151. package/runtime/node_modules/caniuse-lite/data/features/border-image.js +1 -1
  152. package/runtime/node_modules/caniuse-lite/data/features/border-radius.js +1 -1
  153. package/runtime/node_modules/caniuse-lite/data/features/broadcastchannel.js +1 -1
  154. package/runtime/node_modules/caniuse-lite/data/features/brotli.js +1 -1
  155. package/runtime/node_modules/caniuse-lite/data/features/calc.js +1 -1
  156. package/runtime/node_modules/caniuse-lite/data/features/canvas-blending.js +1 -1
  157. package/runtime/node_modules/caniuse-lite/data/features/canvas-text.js +1 -1
  158. package/runtime/node_modules/caniuse-lite/data/features/canvas.js +1 -1
  159. package/runtime/node_modules/caniuse-lite/data/features/ch-unit.js +1 -1
  160. package/runtime/node_modules/caniuse-lite/data/features/chacha20-poly1305.js +1 -1
  161. package/runtime/node_modules/caniuse-lite/data/features/channel-messaging.js +1 -1
  162. package/runtime/node_modules/caniuse-lite/data/features/childnode-remove.js +1 -1
  163. package/runtime/node_modules/caniuse-lite/data/features/classlist.js +1 -1
  164. package/runtime/node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js +1 -1
  165. package/runtime/node_modules/caniuse-lite/data/features/clipboard.js +1 -1
  166. package/runtime/node_modules/caniuse-lite/data/features/colr-v1.js +1 -1
  167. package/runtime/node_modules/caniuse-lite/data/features/colr.js +1 -1
  168. package/runtime/node_modules/caniuse-lite/data/features/comparedocumentposition.js +1 -1
  169. package/runtime/node_modules/caniuse-lite/data/features/console-basic.js +1 -1
  170. package/runtime/node_modules/caniuse-lite/data/features/console-time.js +1 -1
  171. package/runtime/node_modules/caniuse-lite/data/features/const.js +1 -1
  172. package/runtime/node_modules/caniuse-lite/data/features/constraint-validation.js +1 -1
  173. package/runtime/node_modules/caniuse-lite/data/features/contenteditable.js +1 -1
  174. package/runtime/node_modules/caniuse-lite/data/features/contentsecuritypolicy.js +1 -1
  175. package/runtime/node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js +1 -1
  176. package/runtime/node_modules/caniuse-lite/data/features/cookie-store-api.js +1 -1
  177. package/runtime/node_modules/caniuse-lite/data/features/cors.js +1 -1
  178. package/runtime/node_modules/caniuse-lite/data/features/createimagebitmap.js +1 -1
  179. package/runtime/node_modules/caniuse-lite/data/features/credential-management.js +1 -1
  180. package/runtime/node_modules/caniuse-lite/data/features/cross-document-view-transitions.js +1 -1
  181. package/runtime/node_modules/caniuse-lite/data/features/cryptography.js +1 -1
  182. package/runtime/node_modules/caniuse-lite/data/features/css-all.js +1 -1
  183. package/runtime/node_modules/caniuse-lite/data/features/css-anchor-positioning.js +1 -1
  184. package/runtime/node_modules/caniuse-lite/data/features/css-animation.js +1 -1
  185. package/runtime/node_modules/caniuse-lite/data/features/css-any-link.js +1 -1
  186. package/runtime/node_modules/caniuse-lite/data/features/css-appearance.js +1 -1
  187. package/runtime/node_modules/caniuse-lite/data/features/css-at-counter-style.js +1 -1
  188. package/runtime/node_modules/caniuse-lite/data/features/css-autofill.js +1 -1
  189. package/runtime/node_modules/caniuse-lite/data/features/css-backdrop-filter.js +1 -1
  190. package/runtime/node_modules/caniuse-lite/data/features/css-background-offsets.js +1 -1
  191. package/runtime/node_modules/caniuse-lite/data/features/css-backgroundblendmode.js +1 -1
  192. package/runtime/node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js +1 -1
  193. package/runtime/node_modules/caniuse-lite/data/features/css-boxshadow.js +1 -1
  194. package/runtime/node_modules/caniuse-lite/data/features/css-canvas.js +1 -1
  195. package/runtime/node_modules/caniuse-lite/data/features/css-caret-color.js +1 -1
  196. package/runtime/node_modules/caniuse-lite/data/features/css-cascade-layers.js +1 -1
  197. package/runtime/node_modules/caniuse-lite/data/features/css-cascade-scope.js +1 -1
  198. package/runtime/node_modules/caniuse-lite/data/features/css-case-insensitive.js +1 -1
  199. package/runtime/node_modules/caniuse-lite/data/features/css-clip-path.js +1 -1
  200. package/runtime/node_modules/caniuse-lite/data/features/css-color-adjust.js +1 -1
  201. package/runtime/node_modules/caniuse-lite/data/features/css-color-function.js +1 -1
  202. package/runtime/node_modules/caniuse-lite/data/features/css-conic-gradients.js +1 -1
  203. package/runtime/node_modules/caniuse-lite/data/features/css-container-queries-style.js +1 -1
  204. package/runtime/node_modules/caniuse-lite/data/features/css-container-queries.js +1 -1
  205. package/runtime/node_modules/caniuse-lite/data/features/css-container-query-units.js +1 -1
  206. package/runtime/node_modules/caniuse-lite/data/features/css-containment.js +1 -1
  207. package/runtime/node_modules/caniuse-lite/data/features/css-content-visibility.js +1 -1
  208. package/runtime/node_modules/caniuse-lite/data/features/css-counters.js +1 -1
  209. package/runtime/node_modules/caniuse-lite/data/features/css-crisp-edges.js +1 -1
  210. package/runtime/node_modules/caniuse-lite/data/features/css-cross-fade.js +1 -1
  211. package/runtime/node_modules/caniuse-lite/data/features/css-default-pseudo.js +1 -1
  212. package/runtime/node_modules/caniuse-lite/data/features/css-descendant-gtgt.js +1 -1
  213. package/runtime/node_modules/caniuse-lite/data/features/css-deviceadaptation.js +1 -1
  214. package/runtime/node_modules/caniuse-lite/data/features/css-dir-pseudo.js +1 -1
  215. package/runtime/node_modules/caniuse-lite/data/features/css-display-contents.js +1 -1
  216. package/runtime/node_modules/caniuse-lite/data/features/css-element-function.js +1 -1
  217. package/runtime/node_modules/caniuse-lite/data/features/css-env-function.js +1 -1
  218. package/runtime/node_modules/caniuse-lite/data/features/css-exclusions.js +1 -1
  219. package/runtime/node_modules/caniuse-lite/data/features/css-featurequeries.js +1 -1
  220. package/runtime/node_modules/caniuse-lite/data/features/css-file-selector-button.js +1 -1
  221. package/runtime/node_modules/caniuse-lite/data/features/css-filter-function.js +1 -1
  222. package/runtime/node_modules/caniuse-lite/data/features/css-filters.js +1 -1
  223. package/runtime/node_modules/caniuse-lite/data/features/css-first-letter.js +1 -1
  224. package/runtime/node_modules/caniuse-lite/data/features/css-first-line.js +1 -1
  225. package/runtime/node_modules/caniuse-lite/data/features/css-fixed.js +1 -1
  226. package/runtime/node_modules/caniuse-lite/data/features/css-focus-visible.js +1 -1
  227. package/runtime/node_modules/caniuse-lite/data/features/css-focus-within.js +1 -1
  228. package/runtime/node_modules/caniuse-lite/data/features/css-font-palette.js +1 -1
  229. package/runtime/node_modules/caniuse-lite/data/features/css-font-rendering-controls.js +1 -1
  230. package/runtime/node_modules/caniuse-lite/data/features/css-font-stretch.js +1 -1
  231. package/runtime/node_modules/caniuse-lite/data/features/css-gencontent.js +1 -1
  232. package/runtime/node_modules/caniuse-lite/data/features/css-gradients.js +1 -1
  233. package/runtime/node_modules/caniuse-lite/data/features/css-grid-animation.js +1 -1
  234. package/runtime/node_modules/caniuse-lite/data/features/css-grid-lanes.js +1 -1
  235. package/runtime/node_modules/caniuse-lite/data/features/css-grid.js +1 -1
  236. package/runtime/node_modules/caniuse-lite/data/features/css-hanging-punctuation.js +1 -1
  237. package/runtime/node_modules/caniuse-lite/data/features/css-has.js +1 -1
  238. package/runtime/node_modules/caniuse-lite/data/features/css-hyphens.js +1 -1
  239. package/runtime/node_modules/caniuse-lite/data/features/css-if.js +1 -1
  240. package/runtime/node_modules/caniuse-lite/data/features/css-image-orientation.js +1 -1
  241. package/runtime/node_modules/caniuse-lite/data/features/css-image-set.js +1 -1
  242. package/runtime/node_modules/caniuse-lite/data/features/css-in-out-of-range.js +1 -1
  243. package/runtime/node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js +1 -1
  244. package/runtime/node_modules/caniuse-lite/data/features/css-initial-letter.js +1 -1
  245. package/runtime/node_modules/caniuse-lite/data/features/css-initial-value.js +1 -1
  246. package/runtime/node_modules/caniuse-lite/data/features/css-lch-lab.js +1 -1
  247. package/runtime/node_modules/caniuse-lite/data/features/css-letter-spacing.js +1 -1
  248. package/runtime/node_modules/caniuse-lite/data/features/css-line-clamp.js +1 -1
  249. package/runtime/node_modules/caniuse-lite/data/features/css-logical-props.js +1 -1
  250. package/runtime/node_modules/caniuse-lite/data/features/css-marker-pseudo.js +1 -1
  251. package/runtime/node_modules/caniuse-lite/data/features/css-masks.js +1 -1
  252. package/runtime/node_modules/caniuse-lite/data/features/css-matches-pseudo.js +1 -1
  253. package/runtime/node_modules/caniuse-lite/data/features/css-math-functions.js +1 -1
  254. package/runtime/node_modules/caniuse-lite/data/features/css-media-interaction.js +1 -1
  255. package/runtime/node_modules/caniuse-lite/data/features/css-media-range-syntax.js +1 -1
  256. package/runtime/node_modules/caniuse-lite/data/features/css-media-resolution.js +1 -1
  257. package/runtime/node_modules/caniuse-lite/data/features/css-media-scripting.js +1 -1
  258. package/runtime/node_modules/caniuse-lite/data/features/css-mediaqueries.js +1 -1
  259. package/runtime/node_modules/caniuse-lite/data/features/css-mixblendmode.js +1 -1
  260. package/runtime/node_modules/caniuse-lite/data/features/css-module-scripts.js +1 -1
  261. package/runtime/node_modules/caniuse-lite/data/features/css-motion-paths.js +1 -1
  262. package/runtime/node_modules/caniuse-lite/data/features/css-namespaces.js +1 -1
  263. package/runtime/node_modules/caniuse-lite/data/features/css-nesting.js +1 -1
  264. package/runtime/node_modules/caniuse-lite/data/features/css-not-sel-list.js +1 -1
  265. package/runtime/node_modules/caniuse-lite/data/features/css-nth-child-of.js +1 -1
  266. package/runtime/node_modules/caniuse-lite/data/features/css-opacity.js +1 -1
  267. package/runtime/node_modules/caniuse-lite/data/features/css-optional-pseudo.js +1 -1
  268. package/runtime/node_modules/caniuse-lite/data/features/css-overflow-anchor.js +1 -1
  269. package/runtime/node_modules/caniuse-lite/data/features/css-overflow-overlay.js +1 -1
  270. package/runtime/node_modules/caniuse-lite/data/features/css-overflow.js +1 -1
  271. package/runtime/node_modules/caniuse-lite/data/features/css-overscroll-behavior.js +1 -1
  272. package/runtime/node_modules/caniuse-lite/data/features/css-page-break.js +1 -1
  273. package/runtime/node_modules/caniuse-lite/data/features/css-paged-media.js +1 -1
  274. package/runtime/node_modules/caniuse-lite/data/features/css-paint-api.js +1 -1
  275. package/runtime/node_modules/caniuse-lite/data/features/css-placeholder-shown.js +1 -1
  276. package/runtime/node_modules/caniuse-lite/data/features/css-placeholder.js +1 -1
  277. package/runtime/node_modules/caniuse-lite/data/features/css-print-color-adjust.js +1 -1
  278. package/runtime/node_modules/caniuse-lite/data/features/css-read-only-write.js +1 -1
  279. package/runtime/node_modules/caniuse-lite/data/features/css-rebeccapurple.js +1 -1
  280. package/runtime/node_modules/caniuse-lite/data/features/css-reflections.js +1 -1
  281. package/runtime/node_modules/caniuse-lite/data/features/css-regions.js +1 -1
  282. package/runtime/node_modules/caniuse-lite/data/features/css-relative-colors.js +1 -1
  283. package/runtime/node_modules/caniuse-lite/data/features/css-repeating-gradients.js +1 -1
  284. package/runtime/node_modules/caniuse-lite/data/features/css-resize.js +1 -1
  285. package/runtime/node_modules/caniuse-lite/data/features/css-revert-value.js +1 -1
  286. package/runtime/node_modules/caniuse-lite/data/features/css-rrggbbaa.js +1 -1
  287. package/runtime/node_modules/caniuse-lite/data/features/css-scroll-behavior.js +1 -1
  288. package/runtime/node_modules/caniuse-lite/data/features/css-scrollbar.js +1 -1
  289. package/runtime/node_modules/caniuse-lite/data/features/css-sel2.js +1 -1
  290. package/runtime/node_modules/caniuse-lite/data/features/css-sel3.js +1 -1
  291. package/runtime/node_modules/caniuse-lite/data/features/css-selection.js +1 -1
  292. package/runtime/node_modules/caniuse-lite/data/features/css-shapes.js +1 -1
  293. package/runtime/node_modules/caniuse-lite/data/features/css-snappoints.js +1 -1
  294. package/runtime/node_modules/caniuse-lite/data/features/css-sticky.js +1 -1
  295. package/runtime/node_modules/caniuse-lite/data/features/css-subgrid.js +1 -1
  296. package/runtime/node_modules/caniuse-lite/data/features/css-supports-api.js +1 -1
  297. package/runtime/node_modules/caniuse-lite/data/features/css-table.js +1 -1
  298. package/runtime/node_modules/caniuse-lite/data/features/css-text-align-last.js +1 -1
  299. package/runtime/node_modules/caniuse-lite/data/features/css-text-box-trim.js +1 -1
  300. package/runtime/node_modules/caniuse-lite/data/features/css-text-indent.js +1 -1
  301. package/runtime/node_modules/caniuse-lite/data/features/css-text-justify.js +1 -1
  302. package/runtime/node_modules/caniuse-lite/data/features/css-text-orientation.js +1 -1
  303. package/runtime/node_modules/caniuse-lite/data/features/css-text-spacing.js +1 -1
  304. package/runtime/node_modules/caniuse-lite/data/features/css-text-wrap-balance.js +1 -1
  305. package/runtime/node_modules/caniuse-lite/data/features/css-textshadow.js +1 -1
  306. package/runtime/node_modules/caniuse-lite/data/features/css-touch-action.js +1 -1
  307. package/runtime/node_modules/caniuse-lite/data/features/css-transitions.js +1 -1
  308. package/runtime/node_modules/caniuse-lite/data/features/css-unicode-bidi.js +1 -1
  309. package/runtime/node_modules/caniuse-lite/data/features/css-unset-value.js +1 -1
  310. package/runtime/node_modules/caniuse-lite/data/features/css-variables.js +1 -1
  311. package/runtime/node_modules/caniuse-lite/data/features/css-when-else.js +1 -1
  312. package/runtime/node_modules/caniuse-lite/data/features/css-widows-orphans.js +1 -1
  313. package/runtime/node_modules/caniuse-lite/data/features/css-width-stretch.js +1 -1
  314. package/runtime/node_modules/caniuse-lite/data/features/css-writing-mode.js +1 -1
  315. package/runtime/node_modules/caniuse-lite/data/features/css-zoom.js +1 -1
  316. package/runtime/node_modules/caniuse-lite/data/features/css3-attr.js +1 -1
  317. package/runtime/node_modules/caniuse-lite/data/features/css3-boxsizing.js +1 -1
  318. package/runtime/node_modules/caniuse-lite/data/features/css3-colors.js +1 -1
  319. package/runtime/node_modules/caniuse-lite/data/features/css3-cursors-grab.js +1 -1
  320. package/runtime/node_modules/caniuse-lite/data/features/css3-cursors-newer.js +1 -1
  321. package/runtime/node_modules/caniuse-lite/data/features/css3-cursors.js +1 -1
  322. package/runtime/node_modules/caniuse-lite/data/features/css3-tabsize.js +1 -1
  323. package/runtime/node_modules/caniuse-lite/data/features/currentcolor.js +1 -1
  324. package/runtime/node_modules/caniuse-lite/data/features/custom-elements.js +1 -1
  325. package/runtime/node_modules/caniuse-lite/data/features/custom-elementsv1.js +1 -1
  326. package/runtime/node_modules/caniuse-lite/data/features/customevent.js +1 -1
  327. package/runtime/node_modules/caniuse-lite/data/features/customizable-select.js +1 -1
  328. package/runtime/node_modules/caniuse-lite/data/features/datalist.js +1 -1
  329. package/runtime/node_modules/caniuse-lite/data/features/dataset.js +1 -1
  330. package/runtime/node_modules/caniuse-lite/data/features/datauri.js +1 -1
  331. package/runtime/node_modules/caniuse-lite/data/features/date-tolocaledatestring.js +1 -1
  332. package/runtime/node_modules/caniuse-lite/data/features/declarative-shadow-dom.js +1 -1
  333. package/runtime/node_modules/caniuse-lite/data/features/decorators.js +1 -1
  334. package/runtime/node_modules/caniuse-lite/data/features/details.js +1 -1
  335. package/runtime/node_modules/caniuse-lite/data/features/deviceorientation.js +1 -1
  336. package/runtime/node_modules/caniuse-lite/data/features/devicepixelratio.js +1 -1
  337. package/runtime/node_modules/caniuse-lite/data/features/dialog.js +1 -1
  338. package/runtime/node_modules/caniuse-lite/data/features/dispatchevent.js +1 -1
  339. package/runtime/node_modules/caniuse-lite/data/features/dnssec.js +1 -1
  340. package/runtime/node_modules/caniuse-lite/data/features/do-not-track.js +1 -1
  341. package/runtime/node_modules/caniuse-lite/data/features/document-currentscript.js +1 -1
  342. package/runtime/node_modules/caniuse-lite/data/features/document-evaluate-xpath.js +1 -1
  343. package/runtime/node_modules/caniuse-lite/data/features/document-execcommand.js +1 -1
  344. package/runtime/node_modules/caniuse-lite/data/features/document-policy.js +1 -1
  345. package/runtime/node_modules/caniuse-lite/data/features/document-scrollingelement.js +1 -1
  346. package/runtime/node_modules/caniuse-lite/data/features/documenthead.js +1 -1
  347. package/runtime/node_modules/caniuse-lite/data/features/dom-manip-convenience.js +1 -1
  348. package/runtime/node_modules/caniuse-lite/data/features/dom-range.js +1 -1
  349. package/runtime/node_modules/caniuse-lite/data/features/domcontentloaded.js +1 -1
  350. package/runtime/node_modules/caniuse-lite/data/features/dommatrix.js +1 -1
  351. package/runtime/node_modules/caniuse-lite/data/features/download.js +1 -1
  352. package/runtime/node_modules/caniuse-lite/data/features/dragndrop.js +1 -1
  353. package/runtime/node_modules/caniuse-lite/data/features/element-closest.js +1 -1
  354. package/runtime/node_modules/caniuse-lite/data/features/element-from-point.js +1 -1
  355. package/runtime/node_modules/caniuse-lite/data/features/element-scroll-methods.js +1 -1
  356. package/runtime/node_modules/caniuse-lite/data/features/eme.js +1 -1
  357. package/runtime/node_modules/caniuse-lite/data/features/eot.js +1 -1
  358. package/runtime/node_modules/caniuse-lite/data/features/es5.js +1 -1
  359. package/runtime/node_modules/caniuse-lite/data/features/es6-class.js +1 -1
  360. package/runtime/node_modules/caniuse-lite/data/features/es6-generators.js +1 -1
  361. package/runtime/node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js +1 -1
  362. package/runtime/node_modules/caniuse-lite/data/features/es6-module.js +1 -1
  363. package/runtime/node_modules/caniuse-lite/data/features/es6-number.js +1 -1
  364. package/runtime/node_modules/caniuse-lite/data/features/es6-string-includes.js +1 -1
  365. package/runtime/node_modules/caniuse-lite/data/features/es6.js +1 -1
  366. package/runtime/node_modules/caniuse-lite/data/features/eventsource.js +1 -1
  367. package/runtime/node_modules/caniuse-lite/data/features/extended-system-fonts.js +1 -1
  368. package/runtime/node_modules/caniuse-lite/data/features/feature-policy.js +1 -1
  369. package/runtime/node_modules/caniuse-lite/data/features/fetch.js +1 -1
  370. package/runtime/node_modules/caniuse-lite/data/features/fieldset-disabled.js +1 -1
  371. package/runtime/node_modules/caniuse-lite/data/features/fileapi.js +1 -1
  372. package/runtime/node_modules/caniuse-lite/data/features/filereader.js +1 -1
  373. package/runtime/node_modules/caniuse-lite/data/features/filereadersync.js +1 -1
  374. package/runtime/node_modules/caniuse-lite/data/features/filesystem.js +1 -1
  375. package/runtime/node_modules/caniuse-lite/data/features/flac.js +1 -1
  376. package/runtime/node_modules/caniuse-lite/data/features/flexbox-gap.js +1 -1
  377. package/runtime/node_modules/caniuse-lite/data/features/flexbox.js +1 -1
  378. package/runtime/node_modules/caniuse-lite/data/features/flow-root.js +1 -1
  379. package/runtime/node_modules/caniuse-lite/data/features/focusin-focusout-events.js +1 -1
  380. package/runtime/node_modules/caniuse-lite/data/features/font-family-system-ui.js +1 -1
  381. package/runtime/node_modules/caniuse-lite/data/features/font-feature.js +1 -1
  382. package/runtime/node_modules/caniuse-lite/data/features/font-kerning.js +1 -1
  383. package/runtime/node_modules/caniuse-lite/data/features/font-loading.js +1 -1
  384. package/runtime/node_modules/caniuse-lite/data/features/font-size-adjust.js +1 -1
  385. package/runtime/node_modules/caniuse-lite/data/features/font-smooth.js +1 -1
  386. package/runtime/node_modules/caniuse-lite/data/features/font-unicode-range.js +1 -1
  387. package/runtime/node_modules/caniuse-lite/data/features/font-variant-alternates.js +1 -1
  388. package/runtime/node_modules/caniuse-lite/data/features/font-variant-numeric.js +1 -1
  389. package/runtime/node_modules/caniuse-lite/data/features/fontface.js +1 -1
  390. package/runtime/node_modules/caniuse-lite/data/features/form-attribute.js +1 -1
  391. package/runtime/node_modules/caniuse-lite/data/features/form-submit-attributes.js +1 -1
  392. package/runtime/node_modules/caniuse-lite/data/features/form-validation.js +1 -1
  393. package/runtime/node_modules/caniuse-lite/data/features/forms.js +1 -1
  394. package/runtime/node_modules/caniuse-lite/data/features/fullscreen.js +1 -1
  395. package/runtime/node_modules/caniuse-lite/data/features/gamepad.js +1 -1
  396. package/runtime/node_modules/caniuse-lite/data/features/geolocation.js +1 -1
  397. package/runtime/node_modules/caniuse-lite/data/features/getboundingclientrect.js +1 -1
  398. package/runtime/node_modules/caniuse-lite/data/features/getcomputedstyle.js +1 -1
  399. package/runtime/node_modules/caniuse-lite/data/features/getelementsbyclassname.js +1 -1
  400. package/runtime/node_modules/caniuse-lite/data/features/getrandomvalues.js +1 -1
  401. package/runtime/node_modules/caniuse-lite/data/features/gyroscope.js +1 -1
  402. package/runtime/node_modules/caniuse-lite/data/features/hardwareconcurrency.js +1 -1
  403. package/runtime/node_modules/caniuse-lite/data/features/hashchange.js +1 -1
  404. package/runtime/node_modules/caniuse-lite/data/features/heif.js +1 -1
  405. package/runtime/node_modules/caniuse-lite/data/features/hevc.js +1 -1
  406. package/runtime/node_modules/caniuse-lite/data/features/hidden.js +1 -1
  407. package/runtime/node_modules/caniuse-lite/data/features/high-resolution-time.js +1 -1
  408. package/runtime/node_modules/caniuse-lite/data/features/history.js +1 -1
  409. package/runtime/node_modules/caniuse-lite/data/features/html-media-capture.js +1 -1
  410. package/runtime/node_modules/caniuse-lite/data/features/html5semantic.js +1 -1
  411. package/runtime/node_modules/caniuse-lite/data/features/http-live-streaming.js +1 -1
  412. package/runtime/node_modules/caniuse-lite/data/features/http2.js +1 -1
  413. package/runtime/node_modules/caniuse-lite/data/features/http3.js +1 -1
  414. package/runtime/node_modules/caniuse-lite/data/features/iframe-sandbox.js +1 -1
  415. package/runtime/node_modules/caniuse-lite/data/features/iframe-seamless.js +1 -1
  416. package/runtime/node_modules/caniuse-lite/data/features/iframe-srcdoc.js +1 -1
  417. package/runtime/node_modules/caniuse-lite/data/features/imagecapture.js +1 -1
  418. package/runtime/node_modules/caniuse-lite/data/features/ime.js +1 -1
  419. package/runtime/node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js +1 -1
  420. package/runtime/node_modules/caniuse-lite/data/features/import-maps.js +1 -1
  421. package/runtime/node_modules/caniuse-lite/data/features/imports.js +1 -1
  422. package/runtime/node_modules/caniuse-lite/data/features/indeterminate-checkbox.js +1 -1
  423. package/runtime/node_modules/caniuse-lite/data/features/indexeddb.js +1 -1
  424. package/runtime/node_modules/caniuse-lite/data/features/indexeddb2.js +1 -1
  425. package/runtime/node_modules/caniuse-lite/data/features/inline-block.js +1 -1
  426. package/runtime/node_modules/caniuse-lite/data/features/innertext.js +1 -1
  427. package/runtime/node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js +1 -1
  428. package/runtime/node_modules/caniuse-lite/data/features/input-color.js +1 -1
  429. package/runtime/node_modules/caniuse-lite/data/features/input-datetime.js +1 -1
  430. package/runtime/node_modules/caniuse-lite/data/features/input-email-tel-url.js +1 -1
  431. package/runtime/node_modules/caniuse-lite/data/features/input-event.js +1 -1
  432. package/runtime/node_modules/caniuse-lite/data/features/input-file-accept.js +1 -1
  433. package/runtime/node_modules/caniuse-lite/data/features/input-file-directory.js +1 -1
  434. package/runtime/node_modules/caniuse-lite/data/features/input-file-multiple.js +1 -1
  435. package/runtime/node_modules/caniuse-lite/data/features/input-inputmode.js +1 -1
  436. package/runtime/node_modules/caniuse-lite/data/features/input-minlength.js +1 -1
  437. package/runtime/node_modules/caniuse-lite/data/features/input-number.js +1 -1
  438. package/runtime/node_modules/caniuse-lite/data/features/input-pattern.js +1 -1
  439. package/runtime/node_modules/caniuse-lite/data/features/input-placeholder.js +1 -1
  440. package/runtime/node_modules/caniuse-lite/data/features/input-range.js +1 -1
  441. package/runtime/node_modules/caniuse-lite/data/features/input-search.js +1 -1
  442. package/runtime/node_modules/caniuse-lite/data/features/input-selection.js +1 -1
  443. package/runtime/node_modules/caniuse-lite/data/features/insert-adjacent.js +1 -1
  444. package/runtime/node_modules/caniuse-lite/data/features/insertadjacenthtml.js +1 -1
  445. package/runtime/node_modules/caniuse-lite/data/features/internationalization.js +1 -1
  446. package/runtime/node_modules/caniuse-lite/data/features/intersectionobserver-v2.js +1 -1
  447. package/runtime/node_modules/caniuse-lite/data/features/intersectionobserver.js +1 -1
  448. package/runtime/node_modules/caniuse-lite/data/features/intl-pluralrules.js +1 -1
  449. package/runtime/node_modules/caniuse-lite/data/features/intrinsic-width.js +1 -1
  450. package/runtime/node_modules/caniuse-lite/data/features/jpeg2000.js +1 -1
  451. package/runtime/node_modules/caniuse-lite/data/features/jpegxl.js +1 -1
  452. package/runtime/node_modules/caniuse-lite/data/features/jpegxr.js +1 -1
  453. package/runtime/node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js +1 -1
  454. package/runtime/node_modules/caniuse-lite/data/features/json.js +1 -1
  455. package/runtime/node_modules/caniuse-lite/data/features/justify-content-space-evenly.js +1 -1
  456. package/runtime/node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js +1 -1
  457. package/runtime/node_modules/caniuse-lite/data/features/keyboardevent-charcode.js +1 -1
  458. package/runtime/node_modules/caniuse-lite/data/features/keyboardevent-code.js +1 -1
  459. package/runtime/node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js +1 -1
  460. package/runtime/node_modules/caniuse-lite/data/features/keyboardevent-key.js +1 -1
  461. package/runtime/node_modules/caniuse-lite/data/features/keyboardevent-location.js +1 -1
  462. package/runtime/node_modules/caniuse-lite/data/features/keyboardevent-which.js +1 -1
  463. package/runtime/node_modules/caniuse-lite/data/features/lazyload.js +1 -1
  464. package/runtime/node_modules/caniuse-lite/data/features/let.js +1 -1
  465. package/runtime/node_modules/caniuse-lite/data/features/link-icon-png.js +1 -1
  466. package/runtime/node_modules/caniuse-lite/data/features/link-icon-svg.js +1 -1
  467. package/runtime/node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js +1 -1
  468. package/runtime/node_modules/caniuse-lite/data/features/link-rel-modulepreload.js +1 -1
  469. package/runtime/node_modules/caniuse-lite/data/features/link-rel-preconnect.js +1 -1
  470. package/runtime/node_modules/caniuse-lite/data/features/link-rel-prefetch.js +1 -1
  471. package/runtime/node_modules/caniuse-lite/data/features/link-rel-preload.js +1 -1
  472. package/runtime/node_modules/caniuse-lite/data/features/link-rel-prerender.js +1 -1
  473. package/runtime/node_modules/caniuse-lite/data/features/loading-lazy-attr.js +1 -1
  474. package/runtime/node_modules/caniuse-lite/data/features/loading-lazy-media.js +1 -1
  475. package/runtime/node_modules/caniuse-lite/data/features/localecompare.js +1 -1
  476. package/runtime/node_modules/caniuse-lite/data/features/magnetometer.js +1 -1
  477. package/runtime/node_modules/caniuse-lite/data/features/matchesselector.js +1 -1
  478. package/runtime/node_modules/caniuse-lite/data/features/matchmedia.js +1 -1
  479. package/runtime/node_modules/caniuse-lite/data/features/mathml.js +1 -1
  480. package/runtime/node_modules/caniuse-lite/data/features/maxlength.js +1 -1
  481. package/runtime/node_modules/caniuse-lite/data/features/mdn-css-backdrop-pseudo-element.js +1 -1
  482. package/runtime/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate-override.js +1 -1
  483. package/runtime/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate.js +1 -1
  484. package/runtime/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-plaintext.js +1 -1
  485. package/runtime/node_modules/caniuse-lite/data/features/mdn-text-decoration-color.js +1 -1
  486. package/runtime/node_modules/caniuse-lite/data/features/mdn-text-decoration-line.js +1 -1
  487. package/runtime/node_modules/caniuse-lite/data/features/mdn-text-decoration-shorthand.js +1 -1
  488. package/runtime/node_modules/caniuse-lite/data/features/mdn-text-decoration-style.js +1 -1
  489. package/runtime/node_modules/caniuse-lite/data/features/media-fragments.js +1 -1
  490. package/runtime/node_modules/caniuse-lite/data/features/mediacapture-fromelement.js +1 -1
  491. package/runtime/node_modules/caniuse-lite/data/features/mediarecorder.js +1 -1
  492. package/runtime/node_modules/caniuse-lite/data/features/mediasource.js +1 -1
  493. package/runtime/node_modules/caniuse-lite/data/features/menu.js +1 -1
  494. package/runtime/node_modules/caniuse-lite/data/features/meta-theme-color.js +1 -1
  495. package/runtime/node_modules/caniuse-lite/data/features/meter.js +1 -1
  496. package/runtime/node_modules/caniuse-lite/data/features/midi.js +1 -1
  497. package/runtime/node_modules/caniuse-lite/data/features/minmaxwh.js +1 -1
  498. package/runtime/node_modules/caniuse-lite/data/features/mp3.js +1 -1
  499. package/runtime/node_modules/caniuse-lite/data/features/mpeg-dash.js +1 -1
  500. package/runtime/node_modules/caniuse-lite/data/features/mpeg4.js +1 -1
  501. package/runtime/node_modules/caniuse-lite/data/features/multibackgrounds.js +1 -1
  502. package/runtime/node_modules/caniuse-lite/data/features/multicolumn.js +1 -1
  503. package/runtime/node_modules/caniuse-lite/data/features/mutation-events.js +1 -1
  504. package/runtime/node_modules/caniuse-lite/data/features/mutationobserver.js +1 -1
  505. package/runtime/node_modules/caniuse-lite/data/features/namevalue-storage.js +1 -1
  506. package/runtime/node_modules/caniuse-lite/data/features/native-filesystem-api.js +1 -1
  507. package/runtime/node_modules/caniuse-lite/data/features/nav-timing.js +1 -1
  508. package/runtime/node_modules/caniuse-lite/data/features/netinfo.js +1 -1
  509. package/runtime/node_modules/caniuse-lite/data/features/notifications.js +1 -1
  510. package/runtime/node_modules/caniuse-lite/data/features/object-entries.js +1 -1
  511. package/runtime/node_modules/caniuse-lite/data/features/object-fit.js +1 -1
  512. package/runtime/node_modules/caniuse-lite/data/features/object-observe.js +1 -1
  513. package/runtime/node_modules/caniuse-lite/data/features/object-values.js +1 -1
  514. package/runtime/node_modules/caniuse-lite/data/features/objectrtc.js +1 -1
  515. package/runtime/node_modules/caniuse-lite/data/features/offline-apps.js +1 -1
  516. package/runtime/node_modules/caniuse-lite/data/features/offscreencanvas.js +1 -1
  517. package/runtime/node_modules/caniuse-lite/data/features/ogg-vorbis.js +1 -1
  518. package/runtime/node_modules/caniuse-lite/data/features/ogv.js +1 -1
  519. package/runtime/node_modules/caniuse-lite/data/features/ol-reversed.js +1 -1
  520. package/runtime/node_modules/caniuse-lite/data/features/once-event-listener.js +1 -1
  521. package/runtime/node_modules/caniuse-lite/data/features/online-status.js +1 -1
  522. package/runtime/node_modules/caniuse-lite/data/features/opus.js +1 -1
  523. package/runtime/node_modules/caniuse-lite/data/features/orientation-sensor.js +1 -1
  524. package/runtime/node_modules/caniuse-lite/data/features/outline.js +1 -1
  525. package/runtime/node_modules/caniuse-lite/data/features/pad-start-end.js +1 -1
  526. package/runtime/node_modules/caniuse-lite/data/features/page-transition-events.js +1 -1
  527. package/runtime/node_modules/caniuse-lite/data/features/pagevisibility.js +1 -1
  528. package/runtime/node_modules/caniuse-lite/data/features/passive-event-listener.js +1 -1
  529. package/runtime/node_modules/caniuse-lite/data/features/passkeys.js +1 -1
  530. package/runtime/node_modules/caniuse-lite/data/features/passwordrules.js +1 -1
  531. package/runtime/node_modules/caniuse-lite/data/features/path2d.js +1 -1
  532. package/runtime/node_modules/caniuse-lite/data/features/payment-request.js +1 -1
  533. package/runtime/node_modules/caniuse-lite/data/features/pdf-viewer.js +1 -1
  534. package/runtime/node_modules/caniuse-lite/data/features/permissions-api.js +1 -1
  535. package/runtime/node_modules/caniuse-lite/data/features/permissions-policy.js +1 -1
  536. package/runtime/node_modules/caniuse-lite/data/features/picture-in-picture.js +1 -1
  537. package/runtime/node_modules/caniuse-lite/data/features/picture.js +1 -1
  538. package/runtime/node_modules/caniuse-lite/data/features/ping.js +1 -1
  539. package/runtime/node_modules/caniuse-lite/data/features/png-alpha.js +1 -1
  540. package/runtime/node_modules/caniuse-lite/data/features/pointer-events.js +1 -1
  541. package/runtime/node_modules/caniuse-lite/data/features/pointer.js +1 -1
  542. package/runtime/node_modules/caniuse-lite/data/features/pointerlock.js +1 -1
  543. package/runtime/node_modules/caniuse-lite/data/features/portals.js +1 -1
  544. package/runtime/node_modules/caniuse-lite/data/features/prefers-color-scheme.js +1 -1
  545. package/runtime/node_modules/caniuse-lite/data/features/prefers-reduced-motion.js +1 -1
  546. package/runtime/node_modules/caniuse-lite/data/features/progress.js +1 -1
  547. package/runtime/node_modules/caniuse-lite/data/features/promise-finally.js +1 -1
  548. package/runtime/node_modules/caniuse-lite/data/features/promises.js +1 -1
  549. package/runtime/node_modules/caniuse-lite/data/features/proximity.js +1 -1
  550. package/runtime/node_modules/caniuse-lite/data/features/proxy.js +1 -1
  551. package/runtime/node_modules/caniuse-lite/data/features/publickeypinning.js +1 -1
  552. package/runtime/node_modules/caniuse-lite/data/features/push-api.js +1 -1
  553. package/runtime/node_modules/caniuse-lite/data/features/queryselector.js +1 -1
  554. package/runtime/node_modules/caniuse-lite/data/features/readonly-attr.js +1 -1
  555. package/runtime/node_modules/caniuse-lite/data/features/referrer-policy.js +1 -1
  556. package/runtime/node_modules/caniuse-lite/data/features/registerprotocolhandler.js +1 -1
  557. package/runtime/node_modules/caniuse-lite/data/features/rel-noopener.js +1 -1
  558. package/runtime/node_modules/caniuse-lite/data/features/rel-noreferrer.js +1 -1
  559. package/runtime/node_modules/caniuse-lite/data/features/rellist.js +1 -1
  560. package/runtime/node_modules/caniuse-lite/data/features/rem.js +1 -1
  561. package/runtime/node_modules/caniuse-lite/data/features/requestanimationframe.js +1 -1
  562. package/runtime/node_modules/caniuse-lite/data/features/requestidlecallback.js +1 -1
  563. package/runtime/node_modules/caniuse-lite/data/features/resizeobserver.js +1 -1
  564. package/runtime/node_modules/caniuse-lite/data/features/resource-timing.js +1 -1
  565. package/runtime/node_modules/caniuse-lite/data/features/rest-parameters.js +1 -1
  566. package/runtime/node_modules/caniuse-lite/data/features/rtcpeerconnection.js +1 -1
  567. package/runtime/node_modules/caniuse-lite/data/features/ruby.js +1 -1
  568. package/runtime/node_modules/caniuse-lite/data/features/run-in.js +1 -1
  569. package/runtime/node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js +1 -1
  570. package/runtime/node_modules/caniuse-lite/data/features/screen-orientation.js +1 -1
  571. package/runtime/node_modules/caniuse-lite/data/features/script-async.js +1 -1
  572. package/runtime/node_modules/caniuse-lite/data/features/script-defer.js +1 -1
  573. package/runtime/node_modules/caniuse-lite/data/features/scrollintoview.js +1 -1
  574. package/runtime/node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js +1 -1
  575. package/runtime/node_modules/caniuse-lite/data/features/sdch.js +1 -1
  576. package/runtime/node_modules/caniuse-lite/data/features/selection-api.js +1 -1
  577. package/runtime/node_modules/caniuse-lite/data/features/server-timing.js +1 -1
  578. package/runtime/node_modules/caniuse-lite/data/features/serviceworkers.js +1 -1
  579. package/runtime/node_modules/caniuse-lite/data/features/setimmediate.js +1 -1
  580. package/runtime/node_modules/caniuse-lite/data/features/shadowdom.js +1 -1
  581. package/runtime/node_modules/caniuse-lite/data/features/shadowdomv1.js +1 -1
  582. package/runtime/node_modules/caniuse-lite/data/features/sharedarraybuffer.js +1 -1
  583. package/runtime/node_modules/caniuse-lite/data/features/sharedworkers.js +1 -1
  584. package/runtime/node_modules/caniuse-lite/data/features/sni.js +1 -1
  585. package/runtime/node_modules/caniuse-lite/data/features/spdy.js +1 -1
  586. package/runtime/node_modules/caniuse-lite/data/features/speech-recognition.js +1 -1
  587. package/runtime/node_modules/caniuse-lite/data/features/speech-synthesis.js +1 -1
  588. package/runtime/node_modules/caniuse-lite/data/features/spellcheck-attribute.js +1 -1
  589. package/runtime/node_modules/caniuse-lite/data/features/sql-storage.js +1 -1
  590. package/runtime/node_modules/caniuse-lite/data/features/srcset.js +1 -1
  591. package/runtime/node_modules/caniuse-lite/data/features/stream.js +1 -1
  592. package/runtime/node_modules/caniuse-lite/data/features/streams.js +1 -1
  593. package/runtime/node_modules/caniuse-lite/data/features/stricttransportsecurity.js +1 -1
  594. package/runtime/node_modules/caniuse-lite/data/features/style-scoped.js +1 -1
  595. package/runtime/node_modules/caniuse-lite/data/features/subresource-bundling.js +1 -1
  596. package/runtime/node_modules/caniuse-lite/data/features/subresource-integrity.js +1 -1
  597. package/runtime/node_modules/caniuse-lite/data/features/svg-css.js +1 -1
  598. package/runtime/node_modules/caniuse-lite/data/features/svg-filters.js +1 -1
  599. package/runtime/node_modules/caniuse-lite/data/features/svg-fonts.js +1 -1
  600. package/runtime/node_modules/caniuse-lite/data/features/svg-fragment.js +1 -1
  601. package/runtime/node_modules/caniuse-lite/data/features/svg-html.js +1 -1
  602. package/runtime/node_modules/caniuse-lite/data/features/svg-html5.js +1 -1
  603. package/runtime/node_modules/caniuse-lite/data/features/svg-img.js +1 -1
  604. package/runtime/node_modules/caniuse-lite/data/features/svg-smil.js +1 -1
  605. package/runtime/node_modules/caniuse-lite/data/features/svg.js +1 -1
  606. package/runtime/node_modules/caniuse-lite/data/features/sxg.js +1 -1
  607. package/runtime/node_modules/caniuse-lite/data/features/tabindex-attr.js +1 -1
  608. package/runtime/node_modules/caniuse-lite/data/features/template-literals.js +1 -1
  609. package/runtime/node_modules/caniuse-lite/data/features/template.js +1 -1
  610. package/runtime/node_modules/caniuse-lite/data/features/temporal.js +1 -1
  611. package/runtime/node_modules/caniuse-lite/data/features/testfeat.js +1 -1
  612. package/runtime/node_modules/caniuse-lite/data/features/text-decoration.js +1 -1
  613. package/runtime/node_modules/caniuse-lite/data/features/text-emphasis.js +1 -1
  614. package/runtime/node_modules/caniuse-lite/data/features/text-overflow.js +1 -1
  615. package/runtime/node_modules/caniuse-lite/data/features/text-size-adjust.js +1 -1
  616. package/runtime/node_modules/caniuse-lite/data/features/text-stroke.js +1 -1
  617. package/runtime/node_modules/caniuse-lite/data/features/textcontent.js +1 -1
  618. package/runtime/node_modules/caniuse-lite/data/features/textencoder.js +1 -1
  619. package/runtime/node_modules/caniuse-lite/data/features/tls1-1.js +1 -1
  620. package/runtime/node_modules/caniuse-lite/data/features/tls1-2.js +1 -1
  621. package/runtime/node_modules/caniuse-lite/data/features/tls1-3.js +1 -1
  622. package/runtime/node_modules/caniuse-lite/data/features/touch.js +1 -1
  623. package/runtime/node_modules/caniuse-lite/data/features/transforms2d.js +1 -1
  624. package/runtime/node_modules/caniuse-lite/data/features/transforms3d.js +1 -1
  625. package/runtime/node_modules/caniuse-lite/data/features/trusted-types.js +1 -1
  626. package/runtime/node_modules/caniuse-lite/data/features/ttf.js +1 -1
  627. package/runtime/node_modules/caniuse-lite/data/features/typedarrays.js +1 -1
  628. package/runtime/node_modules/caniuse-lite/data/features/u2f.js +1 -1
  629. package/runtime/node_modules/caniuse-lite/data/features/unhandledrejection.js +1 -1
  630. package/runtime/node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js +1 -1
  631. package/runtime/node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js +1 -1
  632. package/runtime/node_modules/caniuse-lite/data/features/url.js +1 -1
  633. package/runtime/node_modules/caniuse-lite/data/features/urlsearchparams.js +1 -1
  634. package/runtime/node_modules/caniuse-lite/data/features/use-strict.js +1 -1
  635. package/runtime/node_modules/caniuse-lite/data/features/user-select-none.js +1 -1
  636. package/runtime/node_modules/caniuse-lite/data/features/user-timing.js +1 -1
  637. package/runtime/node_modules/caniuse-lite/data/features/variable-fonts.js +1 -1
  638. package/runtime/node_modules/caniuse-lite/data/features/vector-effect.js +1 -1
  639. package/runtime/node_modules/caniuse-lite/data/features/vibration.js +1 -1
  640. package/runtime/node_modules/caniuse-lite/data/features/video.js +1 -1
  641. package/runtime/node_modules/caniuse-lite/data/features/videotracks.js +1 -1
  642. package/runtime/node_modules/caniuse-lite/data/features/view-transitions.js +1 -1
  643. package/runtime/node_modules/caniuse-lite/data/features/viewport-unit-variants.js +1 -1
  644. package/runtime/node_modules/caniuse-lite/data/features/viewport-units.js +1 -1
  645. package/runtime/node_modules/caniuse-lite/data/features/wai-aria.js +1 -1
  646. package/runtime/node_modules/caniuse-lite/data/features/wake-lock.js +1 -1
  647. package/runtime/node_modules/caniuse-lite/data/features/wasm-bigint.js +1 -1
  648. package/runtime/node_modules/caniuse-lite/data/features/wasm-bulk-memory.js +1 -1
  649. package/runtime/node_modules/caniuse-lite/data/features/wasm-extended-const.js +1 -1
  650. package/runtime/node_modules/caniuse-lite/data/features/wasm-gc.js +1 -1
  651. package/runtime/node_modules/caniuse-lite/data/features/wasm-multi-memory.js +1 -1
  652. package/runtime/node_modules/caniuse-lite/data/features/wasm-multi-value.js +1 -1
  653. package/runtime/node_modules/caniuse-lite/data/features/wasm-mutable-globals.js +1 -1
  654. package/runtime/node_modules/caniuse-lite/data/features/wasm-nontrapping-fptoint.js +1 -1
  655. package/runtime/node_modules/caniuse-lite/data/features/wasm-reference-types.js +1 -1
  656. package/runtime/node_modules/caniuse-lite/data/features/wasm-relaxed-simd.js +1 -1
  657. package/runtime/node_modules/caniuse-lite/data/features/wasm-signext.js +1 -1
  658. package/runtime/node_modules/caniuse-lite/data/features/wasm-simd.js +1 -1
  659. package/runtime/node_modules/caniuse-lite/data/features/wasm-tail-calls.js +1 -1
  660. package/runtime/node_modules/caniuse-lite/data/features/wasm-threads.js +1 -1
  661. package/runtime/node_modules/caniuse-lite/data/features/wasm.js +1 -1
  662. package/runtime/node_modules/caniuse-lite/data/features/wav.js +1 -1
  663. package/runtime/node_modules/caniuse-lite/data/features/wbr-element.js +1 -1
  664. package/runtime/node_modules/caniuse-lite/data/features/web-animation.js +1 -1
  665. package/runtime/node_modules/caniuse-lite/data/features/web-app-manifest.js +1 -1
  666. package/runtime/node_modules/caniuse-lite/data/features/web-bluetooth.js +1 -1
  667. package/runtime/node_modules/caniuse-lite/data/features/web-serial.js +1 -1
  668. package/runtime/node_modules/caniuse-lite/data/features/web-share.js +1 -1
  669. package/runtime/node_modules/caniuse-lite/data/features/webauthn.js +1 -1
  670. package/runtime/node_modules/caniuse-lite/data/features/webcodecs.js +1 -1
  671. package/runtime/node_modules/caniuse-lite/data/features/webgl.js +1 -1
  672. package/runtime/node_modules/caniuse-lite/data/features/webgl2.js +1 -1
  673. package/runtime/node_modules/caniuse-lite/data/features/webgpu.js +1 -1
  674. package/runtime/node_modules/caniuse-lite/data/features/webhid.js +1 -1
  675. package/runtime/node_modules/caniuse-lite/data/features/webkit-user-drag.js +1 -1
  676. package/runtime/node_modules/caniuse-lite/data/features/webm.js +1 -1
  677. package/runtime/node_modules/caniuse-lite/data/features/webnfc.js +1 -1
  678. package/runtime/node_modules/caniuse-lite/data/features/webp.js +1 -1
  679. package/runtime/node_modules/caniuse-lite/data/features/websockets.js +1 -1
  680. package/runtime/node_modules/caniuse-lite/data/features/webtransport.js +1 -1
  681. package/runtime/node_modules/caniuse-lite/data/features/webusb.js +1 -1
  682. package/runtime/node_modules/caniuse-lite/data/features/webvr.js +1 -1
  683. package/runtime/node_modules/caniuse-lite/data/features/webvtt.js +1 -1
  684. package/runtime/node_modules/caniuse-lite/data/features/webworkers.js +1 -1
  685. package/runtime/node_modules/caniuse-lite/data/features/webxr.js +1 -1
  686. package/runtime/node_modules/caniuse-lite/data/features/will-change.js +1 -1
  687. package/runtime/node_modules/caniuse-lite/data/features/woff.js +1 -1
  688. package/runtime/node_modules/caniuse-lite/data/features/woff2.js +1 -1
  689. package/runtime/node_modules/caniuse-lite/data/features/word-break.js +1 -1
  690. package/runtime/node_modules/caniuse-lite/data/features/wordwrap.js +1 -1
  691. package/runtime/node_modules/caniuse-lite/data/features/x-doc-messaging.js +1 -1
  692. package/runtime/node_modules/caniuse-lite/data/features/x-frame-options.js +1 -1
  693. package/runtime/node_modules/caniuse-lite/data/features/xhr2.js +1 -1
  694. package/runtime/node_modules/caniuse-lite/data/features/xhtml.js +1 -1
  695. package/runtime/node_modules/caniuse-lite/data/features/xhtmlsmil.js +1 -1
  696. package/runtime/node_modules/caniuse-lite/data/features/xml-serializer.js +1 -1
  697. package/runtime/node_modules/caniuse-lite/data/features/zstd.js +1 -1
  698. package/runtime/node_modules/caniuse-lite/data/versionGroups.js +1 -1
  699. package/runtime/node_modules/caniuse-lite/package.json +1 -1
  700. package/runtime/node_modules/mediabunny/README.md +8 -0
  701. package/runtime/node_modules/mediabunny/dist/bundles/mediabunny.cjs +1438 -659
  702. package/runtime/node_modules/mediabunny/dist/bundles/mediabunny.min.cjs +20 -20
  703. package/runtime/node_modules/mediabunny/dist/bundles/mediabunny.min.mjs +20 -20
  704. package/runtime/node_modules/mediabunny/dist/bundles/mediabunny.mjs +1438 -659
  705. package/runtime/node_modules/mediabunny/dist/bundles/mediabunny.node.cjs +1438 -659
  706. package/runtime/node_modules/mediabunny/dist/modules/shared/aac-misc.js +9 -1
  707. package/runtime/node_modules/mediabunny/dist/modules/shared/mp3-misc.js +2 -0
  708. package/runtime/node_modules/mediabunny/dist/modules/shared/truehd-misc.js +10 -0
  709. package/runtime/node_modules/mediabunny/dist/modules/src/adts/adts-demuxer.js +1 -2
  710. package/runtime/node_modules/mediabunny/dist/modules/src/codec-data.js +11 -0
  711. package/runtime/node_modules/mediabunny/dist/modules/src/codec.js +111 -4
  712. package/runtime/node_modules/mediabunny/dist/modules/src/conversion.js +10 -13
  713. package/runtime/node_modules/mediabunny/dist/modules/src/encode.js +4 -2
  714. package/runtime/node_modules/mediabunny/dist/modules/src/flac/flac-demuxer.js +1 -1
  715. package/runtime/node_modules/mediabunny/dist/modules/src/hls/hls-demuxer.js +48 -1
  716. package/runtime/node_modules/mediabunny/dist/modules/src/hls/hls-misc.js +4 -0
  717. package/runtime/node_modules/mediabunny/dist/modules/src/hls/hls-muxer.js +32 -4
  718. package/runtime/node_modules/mediabunny/dist/modules/src/hls/hls-segmented-input.js +102 -17
  719. package/runtime/node_modules/mediabunny/dist/modules/src/id3.js +26 -8
  720. package/runtime/node_modules/mediabunny/dist/modules/src/input-track.js +25 -5
  721. package/runtime/node_modules/mediabunny/dist/modules/src/isobmff/isobmff-boxes.js +76 -7
  722. package/runtime/node_modules/mediabunny/dist/modules/src/isobmff/isobmff-demuxer.js +31 -0
  723. package/runtime/node_modules/mediabunny/dist/modules/src/isobmff/isobmff-muxer.js +79 -59
  724. package/runtime/node_modules/mediabunny/dist/modules/src/matroska/ebml.js +2 -0
  725. package/runtime/node_modules/mediabunny/dist/modules/src/matroska/matroska-demuxer.js +28 -9
  726. package/runtime/node_modules/mediabunny/dist/modules/src/matroska/matroska-muxer.js +114 -105
  727. package/runtime/node_modules/mediabunny/dist/modules/src/media-sink.js +138 -48
  728. package/runtime/node_modules/mediabunny/dist/modules/src/media-source.js +165 -31
  729. package/runtime/node_modules/mediabunny/dist/modules/src/metadata.js +3 -2
  730. package/runtime/node_modules/mediabunny/dist/modules/src/misc.js +9 -2
  731. package/runtime/node_modules/mediabunny/dist/modules/src/mp3/mp3-demuxer.js +28 -13
  732. package/runtime/node_modules/mediabunny/dist/modules/src/mp3/mp3-muxer.js +53 -28
  733. package/runtime/node_modules/mediabunny/dist/modules/src/mp3/mp3-writer.js +30 -8
  734. package/runtime/node_modules/mediabunny/dist/modules/src/mpeg-ts/mpeg-ts-demuxer.js +21 -28
  735. package/runtime/node_modules/mediabunny/dist/modules/src/mpeg-ts/mpeg-ts-misc.js +24 -1
  736. package/runtime/node_modules/mediabunny/dist/modules/src/mpeg-ts/mpeg-ts-muxer.js +5 -8
  737. package/runtime/node_modules/mediabunny/dist/modules/src/ogg/ogg-demuxer.js +15 -10
  738. package/runtime/node_modules/mediabunny/dist/modules/src/ogg/ogg-misc.js +4 -5
  739. package/runtime/node_modules/mediabunny/dist/modules/src/ogg/ogg-muxer.js +14 -11
  740. package/runtime/node_modules/mediabunny/dist/modules/src/output-format.js +11 -1
  741. package/runtime/node_modules/mediabunny/dist/modules/src/resample.js +6 -7
  742. package/runtime/node_modules/mediabunny/dist/modules/src/segmented-input.js +56 -17
  743. package/runtime/node_modules/mediabunny/dist/modules/src/source.js +16 -0
  744. package/runtime/node_modules/mediabunny/dist/modules/src/target.js +16 -1
  745. package/runtime/node_modules/mediabunny/dist/modules/src/tsconfig.tsbuildinfo +1 -1
  746. package/runtime/node_modules/mediabunny/dist/modules/src/version.js +1 -1
  747. package/runtime/node_modules/mediabunny/package.json +3 -3
  748. package/runtime/node_modules/mediabunny/src/adts/adts-demuxer.ts +1 -2
  749. package/runtime/node_modules/mediabunny/src/codec-data.ts +13 -2
  750. package/runtime/node_modules/mediabunny/src/codec.ts +128 -3
  751. package/runtime/node_modules/mediabunny/src/conversion.ts +16 -17
  752. package/runtime/node_modules/mediabunny/src/encode.ts +6 -2
  753. package/runtime/node_modules/mediabunny/src/flac/flac-demuxer.ts +1 -1
  754. package/runtime/node_modules/mediabunny/src/hls/hls-demuxer.ts +62 -1
  755. package/runtime/node_modules/mediabunny/src/hls/hls-misc.ts +5 -0
  756. package/runtime/node_modules/mediabunny/src/hls/hls-muxer.ts +39 -3
  757. package/runtime/node_modules/mediabunny/src/hls/hls-segmented-input.ts +139 -17
  758. package/runtime/node_modules/mediabunny/src/id3.ts +25 -8
  759. package/runtime/node_modules/mediabunny/src/input-track.ts +35 -5
  760. package/runtime/node_modules/mediabunny/src/input.ts +4 -1
  761. package/runtime/node_modules/mediabunny/src/isobmff/isobmff-boxes.ts +89 -5
  762. package/runtime/node_modules/mediabunny/src/isobmff/isobmff-demuxer.ts +35 -0
  763. package/runtime/node_modules/mediabunny/src/isobmff/isobmff-muxer.ts +100 -54
  764. package/runtime/node_modules/mediabunny/src/matroska/ebml.ts +2 -0
  765. package/runtime/node_modules/mediabunny/src/matroska/matroska-demuxer.ts +31 -8
  766. package/runtime/node_modules/mediabunny/src/matroska/matroska-muxer.ts +148 -118
  767. package/runtime/node_modules/mediabunny/src/media-sink.ts +165 -47
  768. package/runtime/node_modules/mediabunny/src/media-source.ts +211 -37
  769. package/runtime/node_modules/mediabunny/src/metadata.ts +9 -4
  770. package/runtime/node_modules/mediabunny/src/misc.ts +11 -2
  771. package/runtime/node_modules/mediabunny/src/mp3/mp3-demuxer.ts +33 -12
  772. package/runtime/node_modules/mediabunny/src/mp3/mp3-muxer.ts +63 -30
  773. package/runtime/node_modules/mediabunny/src/mp3/mp3-writer.ts +36 -11
  774. package/runtime/node_modules/mediabunny/src/mpeg-ts/mpeg-ts-demuxer.ts +28 -38
  775. package/runtime/node_modules/mediabunny/src/mpeg-ts/mpeg-ts-misc.ts +36 -1
  776. package/runtime/node_modules/mediabunny/src/mpeg-ts/mpeg-ts-muxer.ts +6 -9
  777. package/runtime/node_modules/mediabunny/src/ogg/ogg-demuxer.ts +17 -13
  778. package/runtime/node_modules/mediabunny/src/ogg/ogg-misc.ts +4 -5
  779. package/runtime/node_modules/mediabunny/src/ogg/ogg-muxer.ts +20 -17
  780. package/runtime/node_modules/mediabunny/src/output-format.ts +32 -0
  781. package/runtime/node_modules/mediabunny/src/resample.ts +8 -7
  782. package/runtime/node_modules/mediabunny/src/segmented-input.ts +67 -18
  783. package/runtime/node_modules/mediabunny/src/source.ts +21 -0
  784. package/runtime/node_modules/mediabunny/src/target.ts +21 -6
  785. package/runtime/node_modules/mediabunny/src/version.ts +1 -1
  786. package/runtime/package-lock.json +161 -161
  787. package/runtime/server.js +1 -1
  788. package/runtime/webapp/dist/assets/{AiHubPane-DIk3VHVD.js → AiHubPane-BQ8CJAQL.js} +1 -1
  789. package/runtime/webapp/dist/assets/App-GXFFBAhW.js +174 -0
  790. package/runtime/webapp/dist/assets/{BrowserLivePanel-C2eapgzC.js → BrowserLivePanel-DxhSUu4j.js} +1 -1
  791. package/runtime/webapp/dist/assets/{CollaborationDashboard-CmbzUAIn.js → CollaborationDashboard-c_iNusPf.js} +1 -1
  792. package/runtime/webapp/dist/assets/{CollaborationPage-DdGiWsrN.js → CollaborationPage-DRBPK_iH.js} +1 -1
  793. package/runtime/webapp/dist/assets/{FilePreview-C35N6c_1.js → FilePreview-DScFSi_K.js} +3 -3
  794. package/runtime/webapp/dist/assets/{FileTree-DHyts8Fp.js → FileTree-BB5xTMg6.js} +1 -1
  795. package/runtime/webapp/dist/assets/{FlowStudioPane-v-fObPNM.js → FlowStudioPane-BBf0zyw1.js} +1 -1
  796. package/runtime/webapp/dist/assets/{RemoteDesktopPage-D7mgoU7b.js → RemoteDesktopPage-CWW4T1QF.js} +1 -1
  797. package/runtime/webapp/dist/assets/SessionDashboard-BdGlakPd.js +26 -0
  798. package/runtime/webapp/dist/assets/SessionDashboard-CUCEDkCI.css +1 -0
  799. package/runtime/webapp/dist/assets/SessionDashboardBridge-8zrk0Bub.js +1 -0
  800. package/runtime/webapp/dist/assets/{TerminalPane-BPk3av7L.js → TerminalPane-DkEyD1ge.js} +1 -1
  801. package/runtime/webapp/dist/assets/{abnfDiagram-VCTEODGH-pOFLDnXP.js → abnfDiagram-VCTEODGH-Dlsyu96y.js} +1 -1
  802. package/runtime/webapp/dist/assets/{arc-Dtxck3vK.js → arc-D0AvBRtK.js} +1 -1
  803. package/runtime/webapp/dist/assets/{architectureDiagram-5GKGNRK7-BvgB-eqr.js → architectureDiagram-5GKGNRK7-BLAHjBcI.js} +1 -1
  804. package/runtime/webapp/dist/assets/{arrow-right-C4BiGWqO.js → arrow-right-B15rGLIR.js} +1 -1
  805. package/runtime/webapp/dist/assets/{artifact-links-oA81jfGt.js → artifact-links-BkoUldDR.js} +1 -1
  806. package/runtime/webapp/dist/assets/{blockDiagram-I7D4REHJ-BsbUYhsJ.js → blockDiagram-I7D4REHJ-CqIb0xz-.js} +1 -1
  807. package/runtime/webapp/dist/assets/{c4Diagram-7LVT6UL2-CWyR12wW.js → c4Diagram-7LVT6UL2-CG98ZTHr.js} +1 -1
  808. package/runtime/webapp/dist/assets/channel-Bw3F6pJc.js +1 -0
  809. package/runtime/webapp/dist/assets/{chunk-2Q5K7J3B-C7QXnn8h.js → chunk-2Q5K7J3B-DQh8kgcp.js} +1 -1
  810. package/runtime/webapp/dist/assets/{chunk-5VM5RSS4-CWJADtCm.js → chunk-5VM5RSS4-BesfCxeX.js} +1 -1
  811. package/runtime/webapp/dist/assets/{chunk-F27PBJKO-Cweh6MCq.js → chunk-F27PBJKO-BCXEjgx-.js} +1 -1
  812. package/runtime/webapp/dist/assets/{chunk-IMKFNOWR-DF-E9vxt.js → chunk-IMKFNOWR-ydMd7mT-.js} +1 -1
  813. package/runtime/webapp/dist/assets/{chunk-JWPE2WC7-Bt0XKJGJ.js → chunk-JWPE2WC7-K3_myO-F.js} +1 -1
  814. package/runtime/webapp/dist/assets/{chunk-POPQ4Y6H-Wv9f4r1o.js → chunk-POPQ4Y6H-BtqLafwd.js} +1 -1
  815. package/runtime/webapp/dist/assets/{chunk-SVP7TREG-CyaFVrLD.js → chunk-SVP7TREG-mKZUbHcv.js} +1 -1
  816. package/runtime/webapp/dist/assets/{chunk-TICWLB2K-DOIbwoJY.js → chunk-TICWLB2K-hDH9_eNh.js} +1 -1
  817. package/runtime/webapp/dist/assets/{chunk-XXDRQBXY-CAwhKZv-.js → chunk-XXDRQBXY-B6wXA24N.js} +1 -1
  818. package/runtime/webapp/dist/assets/classDiagram-ZZMXUADV-By2XJYuW.js +1 -0
  819. package/runtime/webapp/dist/assets/classDiagram-v2-VYDZK3BY-By2XJYuW.js +1 -0
  820. package/runtime/webapp/dist/assets/{clipboard-Ct7ZTYsT.js → clipboard-CrmYgzo8.js} +1 -1
  821. package/runtime/webapp/dist/assets/{codeSyntax-KLkJvvR9.js → codeSyntax-KyRYSqw_.js} +1 -1
  822. package/runtime/webapp/dist/assets/{collaboration-CiUq-T01.js → collaboration-B7rPFZje.js} +1 -1
  823. package/runtime/webapp/dist/assets/{cose-bilkent-JH36ORCC-gN410IPt.js → cose-bilkent-JH36ORCC-MoeyZZ6x.js} +1 -1
  824. package/runtime/webapp/dist/assets/{crown-o7sh7UXl.js → crown-BKylWZLt.js} +1 -1
  825. package/runtime/webapp/dist/assets/{cynefin-OW5HDTMX-5wFL_0bx.js → cynefin-OW5HDTMX-BWYtTqVq.js} +1 -1
  826. package/runtime/webapp/dist/assets/{cynefinDiagram-5FMLGOSQ-CS8w0Cb8.js → cynefinDiagram-5FMLGOSQ-CoqnJ7eo.js} +1 -1
  827. package/runtime/webapp/dist/assets/{dagre-GXQ25YYZ-Bbk8onQY.js → dagre-GXQ25YYZ-DMwZ_7F7.js} +1 -1
  828. package/runtime/webapp/dist/assets/{diagram-S7CK7UJ4-BHFR1JYZ.js → diagram-S7CK7UJ4-DJ2BAyzP.js} +1 -1
  829. package/runtime/webapp/dist/assets/{diagram-UQ7AKVKN-DYuD9-hs.js → diagram-UQ7AKVKN-ChujnpjG.js} +1 -1
  830. package/runtime/webapp/dist/assets/{diagram-VSXAHHWV-B8ZYNIIS.js → diagram-VSXAHHWV-CDSAKYID.js} +1 -1
  831. package/runtime/webapp/dist/assets/{diagram-VX7I27RA-CNIniP-o.js → diagram-VX7I27RA-DXvCy8w-.js} +1 -1
  832. package/runtime/webapp/dist/assets/{diagram-Z3DM3KII-BRIldGhQ.js → diagram-Z3DM3KII-BWrKegI9.js} +1 -1
  833. package/runtime/webapp/dist/assets/{ebnfDiagram-PWID7BFC-BeZcHuYS.js → ebnfDiagram-PWID7BFC-CqDhPmpp.js} +1 -1
  834. package/runtime/webapp/dist/assets/{erDiagram-RLTQ6QDP-DHwEwxeO.js → erDiagram-RLTQ6QDP-D5HR9ddP.js} +1 -1
  835. package/runtime/webapp/dist/assets/{file-types-CALnsqxP.js → file-types-D_egQYAD.js} +1 -1
  836. package/runtime/webapp/dist/assets/{flowDiagram-HODETNUW-DIN9fq8w.js → flowDiagram-HODETNUW-Bz89eEJ2.js} +1 -1
  837. package/runtime/webapp/dist/assets/{ganttDiagram-EL5Y4UJY-DEnztfWv.js → ganttDiagram-EL5Y4UJY-Bw1lo_RG.js} +1 -1
  838. package/runtime/webapp/dist/assets/{gitGraphDiagram-WWUBYQGX-U_QimY5P.js → gitGraphDiagram-WWUBYQGX-CMxwIm3p.js} +1 -1
  839. package/runtime/webapp/dist/assets/index-6B8SDnzK.css +1 -0
  840. package/runtime/webapp/dist/assets/{index-DzIkFOL8.js → index-CkVSxxim.js} +53 -68
  841. package/runtime/webapp/dist/assets/{infoDiagram-27XIBGKW-Db9evdVP.js → infoDiagram-27XIBGKW-DEWyQUst.js} +1 -1
  842. package/runtime/webapp/dist/assets/{ishikawaDiagram-5VMMS53U-BOaYc_-H.js → ishikawaDiagram-5VMMS53U-BfJdGhe_.js} +1 -1
  843. package/runtime/webapp/dist/assets/{journeyDiagram-3NMN7TZE--bpKX21G.js → journeyDiagram-3NMN7TZE-C6gh2ejc.js} +1 -1
  844. package/runtime/webapp/dist/assets/{kanban-definition-UXKFOSKX-CA_e9zyr.js → kanban-definition-UXKFOSKX-1UHi9Lfv.js} +1 -1
  845. package/runtime/webapp/dist/assets/{layout-BWROikQL.js → layout-CKq-cSTm.js} +1 -1
  846. package/runtime/webapp/dist/assets/{linear-Cs-tTwlC.js → linear-DF4sJk10.js} +1 -1
  847. package/runtime/webapp/dist/assets/{loader-circle-CCZ5vEFX.js → loader-circle-Dpjix4wZ.js} +1 -1
  848. package/runtime/webapp/dist/assets/{mermaid.core-DC45Ncse.js → mermaid.core-OAHUFl3p.js} +5 -5
  849. package/runtime/webapp/dist/assets/{mindmap-definition-YA3MSWOX-CcBYbQBC.js → mindmap-definition-YA3MSWOX-JiyyEKeC.js} +1 -1
  850. package/runtime/webapp/dist/assets/{page-3RMj5dQT.js → page-DqgtSgo3.js} +3 -3
  851. package/runtime/webapp/dist/assets/{pegDiagram-XKGWAZYB-nG1uS_No.js → pegDiagram-XKGWAZYB-CpBwPi33.js} +1 -1
  852. package/runtime/webapp/dist/assets/{pieDiagram-E7YTZNPT-BrT1k-K2.js → pieDiagram-E7YTZNPT-BjM_PcYH.js} +1 -1
  853. package/runtime/webapp/dist/assets/qoder-CGHn7M84.png +0 -0
  854. package/runtime/webapp/dist/assets/{quadrantDiagram-AXDQQJYC-C13tJOvq.js → quadrantDiagram-AXDQQJYC-Vdz77obz.js} +1 -1
  855. package/runtime/webapp/dist/assets/{railroadDiagram-O6MQD6OU-DnJ5PQG8.js → railroadDiagram-O6MQD6OU-DsQjNf1f.js} +1 -1
  856. package/runtime/webapp/dist/assets/{requirementDiagram-BXWQKSXE-BQqwdK06.js → requirementDiagram-BXWQKSXE-TpfT8TjT.js} +1 -1
  857. package/runtime/webapp/dist/assets/{rotate-ccw-DC73nBn1.js → rotate-ccw-wJiVuYlm.js} +1 -1
  858. package/runtime/webapp/dist/assets/{rotate-cw-DqS4ePZN.js → rotate-cw-CtpBETpM.js} +1 -1
  859. package/runtime/webapp/dist/assets/{sankeyDiagram-P5KCCOFB-BsDbHSXS.js → sankeyDiagram-P5KCCOFB-Ckh_skQw.js} +1 -1
  860. package/runtime/webapp/dist/assets/{send-DAfqf9Ri.js → send-DL0qj0xE.js} +1 -1
  861. package/runtime/webapp/dist/assets/{sequenceDiagram-WJ2MYXX4-BBDPxIMt.js → sequenceDiagram-WJ2MYXX4-CkKC0JEA.js} +1 -1
  862. package/runtime/webapp/dist/assets/{shield-check-BfU-zJrL.js → shield-check-B5q8YhWs.js} +1 -1
  863. package/runtime/webapp/dist/assets/{sizeCapture-INFHLROL-C6YHKU_U.js → sizeCapture-INFHLROL-DB_NzdXU.js} +1 -1
  864. package/runtime/webapp/dist/assets/{smartphone-DiwRttf1.js → smartphone-DJEfFl42.js} +1 -1
  865. package/runtime/webapp/dist/assets/{stateDiagram-D77RDMKH-hLZSwbqs.js → stateDiagram-D77RDMKH-Ch2r76jY.js} +1 -1
  866. package/runtime/webapp/dist/assets/stateDiagram-v2-MP3YSRHH-BCjtOHJv.js +1 -0
  867. package/runtime/webapp/dist/assets/{swimlanes-42K2YHIH-DE3K-s08.js → swimlanes-42K2YHIH-BBMlDhHH.js} +1 -1
  868. package/runtime/webapp/dist/assets/swimlanesDiagram-VR7AAH4N-CYzCynNs.js +8 -0
  869. package/runtime/webapp/dist/assets/{timeline-definition-24CTP7MA-CCGtRdJn.js → timeline-definition-24CTP7MA-BELJuISI.js} +1 -1
  870. package/runtime/webapp/dist/assets/{trash-2-DypDAsgq.js → trash-2-D4LqA3q5.js} +1 -1
  871. package/runtime/webapp/dist/assets/{vennDiagram-4TSXK5OY-h20IaWBe.js → vennDiagram-4TSXK5OY-NSlXdmyy.js} +1 -1
  872. package/runtime/webapp/dist/assets/{wardleyDiagram-VM6X3IG4-CbMZyM2K.js → wardleyDiagram-VM6X3IG4-BVbNDhZr.js} +1 -1
  873. package/runtime/webapp/dist/assets/{web--NKliblj.js → web-BpA_VIiS.js} +1 -1
  874. package/runtime/webapp/dist/assets/{web-COkIp2EM.js → web-CoxxvfFh.js} +1 -1
  875. package/runtime/webapp/dist/assets/workbuddy-hEyEE8dU.png +0 -0
  876. package/runtime/webapp/dist/assets/{xychartDiagram-S5SC5T6Z-pPLfOQTQ.js → xychartDiagram-S5SC5T6Z-Bt3XghTc.js} +1 -1
  877. package/runtime/webapp/dist/assets/zcode-CsXrmDtX.png +0 -0
  878. package/runtime/webapp/dist/index.html +2 -2
  879. package/runtime/.next/static/chunks/app/web/layout-249cdd2909744bce.js +0 -1
  880. package/runtime/.next/static/chunks/app/web/page-2ce49f8aebe2474a.js +0 -1
  881. package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/core-azmey26z.mjs +0 -52
  882. package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/core-jhgm58v5.mjs +0 -40
  883. package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/core-qw4t51gr.mjs +0 -27
  884. package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/core-x7q9bdvq.mjs +0 -26
  885. package/runtime/webapp/dist/assets/App-Bh7-ZKY-.js +0 -174
  886. package/runtime/webapp/dist/assets/SessionDashboard-DAzTBMO2.css +0 -1
  887. package/runtime/webapp/dist/assets/SessionDashboard-DFOqRo3U.js +0 -16
  888. package/runtime/webapp/dist/assets/SessionDashboardBridge-K2ripwXe.js +0 -1
  889. package/runtime/webapp/dist/assets/channel-DRUF4BK-.js +0 -1
  890. package/runtime/webapp/dist/assets/classDiagram-ZZMXUADV-jMAd-PMJ.js +0 -1
  891. package/runtime/webapp/dist/assets/classDiagram-v2-VYDZK3BY-jMAd-PMJ.js +0 -1
  892. package/runtime/webapp/dist/assets/index-8zCfKdi_.css +0 -1
  893. package/runtime/webapp/dist/assets/stateDiagram-v2-MP3YSRHH-BJ_AsUFj.js +0 -1
  894. package/runtime/webapp/dist/assets/swimlanesDiagram-VR7AAH4N-5nRFPxoo.js +0 -8
  895. /package/runtime/.next/static/{yFTf4OsMQId8Kv7Is6hgk → irWde_R_H09SV2jvfhWC2}/_buildManifest.js +0 -0
  896. /package/runtime/.next/static/{yFTf4OsMQId8Kv7Is6hgk → irWde_R_H09SV2jvfhWC2}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
- (()=>{var e={};e.id=3541,e.ids=[3541],e.modules={1636:e=>{"use strict";e.exports=require("@agent/core")},2934:e=>{"use strict";e.exports=require("next/dist/client/components/action-async-storage.external.js")},4580:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external.js")},5869:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},399:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},9411:e=>{"use strict";e.exports=require("node:path")},2879:(e,t,r)=>{"use strict";r.r(t),r.d(t,{GlobalError:()=>o.a,__next_app__:()=>p,originalPathname:()=>u,pages:()=>d,routeModule:()=>f,tree:()=>c}),r(6742),r(9257),r(489),r(4972),r(3028);var a=r(1772),i=r(5042),n=r(5663),o=r.n(n),s=r(4812),l={};for(let e in s)0>["default","tree","pages","GlobalError","originalPathname","__next_app__","routeModule"].indexOf(e)&&(l[e]=()=>s[e]);r.d(t,l);let c=["",{children:["web",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(r.bind(r,6742)),"/Users/caoqu/.codex/worktrees/agentroam-npm-preview68-20261028/packages/server/app/web/page.tsx"]}]},{layout:[()=>Promise.resolve().then(r.bind(r,9257)),"/Users/caoqu/.codex/worktrees/agentroam-npm-preview68-20261028/packages/server/app/web/layout.tsx"],error:[()=>Promise.resolve().then(r.bind(r,489)),"/Users/caoqu/.codex/worktrees/agentroam-npm-preview68-20261028/packages/server/app/web/error.tsx"]}]},{layout:[()=>Promise.resolve().then(r.bind(r,4972)),"/Users/caoqu/.codex/worktrees/agentroam-npm-preview68-20261028/packages/server/app/layout.tsx"],"not-found":[()=>Promise.resolve().then(r.t.bind(r,3028,23)),"next/dist/client/components/not-found-error"]}],d=["/Users/caoqu/.codex/worktrees/agentroam-npm-preview68-20261028/packages/server/app/web/page.tsx"],u="/web/page",p={require:r,loadChunk:()=>Promise.resolve()},f=new a.AppPageRouteModule({definition:{kind:i.x.APP_PAGE,page:"/web/page",pathname:"/web",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:c}})},5388:(e,t,r)=>{Promise.resolve().then(r.t.bind(r,1782,23)),Promise.resolve().then(r.t.bind(r,8949,23)),Promise.resolve().then(r.t.bind(r,6569,23)),Promise.resolve().then(r.t.bind(r,8718,23)),Promise.resolve().then(r.t.bind(r,7415,23)),Promise.resolve().then(r.t.bind(r,8781,23))},3042:(e,t,r)=>{Promise.resolve().then(r.bind(r,8383))},3188:()=>{},6636:(e,t,r)=>{Promise.resolve().then(r.bind(r,6439))},2027:()=>{},6476:()=>{},1166:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return n}});let a=r(7094);r(3517),r(5921);let i=a._(r(4079));function n(e,t){var r;let a={loading:e=>{let{error:t,isLoading:r,pastDelay:a}=e;return null}};"function"==typeof e&&(a.loader=e);let n={...a,...t};return(0,i.default)({...n,modules:null==(r=n.loadableGenerated)?void 0:r.modules})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},1803:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"BailoutToCSR",{enumerable:!0,get:function(){return i}});let a=r(93);function i(e){let{reason:t,children:r}=e;throw new a.BailoutToCSRError(t)}},4079:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return c}});let a=r(3517),i=r(5921),n=r(1803),o=r(5259);function s(e){return{default:e&&"default"in e?e.default:e}}let l={loader:()=>Promise.resolve(s(()=>null)),loading:null,ssr:!0},c=function(e){let t={...l,...e},r=(0,i.lazy)(()=>t.loader().then(s)),c=t.loading;function d(e){let s=c?(0,a.jsx)(c,{isLoading:!0,pastDelay:!0,error:null}):null,l=t.ssr?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(o.PreloadCss,{moduleIds:t.modules}),(0,a.jsx)(r,{...e})]}):(0,a.jsx)(n.BailoutToCSR,{reason:"next/dynamic",children:(0,a.jsx)(r,{...e})});return(0,a.jsx)(i.Suspense,{fallback:s,children:l})}return d.displayName="LoadableComponent",d}},5259:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PreloadCss",{enumerable:!0,get:function(){return n}});let a=r(3517),i=r(4580);function n(e){let{moduleIds:t}=e,r=(0,i.getExpectedRequestStore)("next/dynamic css"),n=[];if(r.reactLoadableManifest&&t){let e=r.reactLoadableManifest;for(let r of t){if(!e[r])continue;let t=e[r].files.filter(e=>e.endsWith(".css"));n.push(...t)}}return 0===n.length?null:(0,a.jsx)(a.Fragment,{children:n.map(e=>(0,a.jsx)("link",{precedence:"dynamic",rel:"stylesheet",href:r.assetPrefix+"/_next/"+encodeURI(e),as:"style"},e))})}},4684:(e,t,r)=>{"use strict";r(6476);var a=r(5921),i=function(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}(a),n="undefined"!=typeof process&&process.env&&!0,o=function(e){return"[object String]"===Object.prototype.toString.call(e)},s=function(){function e(e){var t=void 0===e?{}:e,r=t.name,a=void 0===r?"stylesheet":r,i=t.optimizeForSpeed,s=void 0===i?n:i;l(o(a),"`name` must be a string"),this._name=a,this._deletedRulePlaceholder="#"+a+"-deleted-rule____{}",l("boolean"==typeof s,"`optimizeForSpeed` must be a boolean"),this._optimizeForSpeed=s,this._serverSheet=void 0,this._tags=[],this._injected=!1,this._rulesCount=0,this._nonce=null}var t=e.prototype;return t.setOptimizeForSpeed=function(e){l("boolean"==typeof e,"`setOptimizeForSpeed` accepts a boolean"),l(0===this._rulesCount,"optimizeForSpeed cannot be when rules have already been inserted"),this.flush(),this._optimizeForSpeed=e,this.inject()},t.isOptimizeForSpeed=function(){return this._optimizeForSpeed},t.inject=function(){var e=this;l(!this._injected,"sheet already injected"),this._injected=!0,this._serverSheet={cssRules:[],insertRule:function(t,r){return"number"==typeof r?e._serverSheet.cssRules[r]={cssText:t}:e._serverSheet.cssRules.push({cssText:t}),r},deleteRule:function(t){e._serverSheet.cssRules[t]=null}}},t.getSheetForTag=function(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]},t.getSheet=function(){return this.getSheetForTag(this._tags[this._tags.length-1])},t.insertRule=function(e,t){return l(o(e),"`insertRule` accepts only strings"),"number"!=typeof t&&(t=this._serverSheet.cssRules.length),this._serverSheet.insertRule(e,t),this._rulesCount++},t.replaceRule=function(e,t){this._optimizeForSpeed;var r=this._serverSheet;if(t.trim()||(t=this._deletedRulePlaceholder),!r.cssRules[e])return e;r.deleteRule(e);try{r.insertRule(t,e)}catch(a){n||console.warn("StyleSheet: illegal rule: \n\n"+t+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),r.insertRule(this._deletedRulePlaceholder,e)}return e},t.deleteRule=function(e){this._serverSheet.deleteRule(e)},t.flush=function(){this._injected=!1,this._rulesCount=0,this._serverSheet.cssRules=[]},t.cssRules=function(){return this._serverSheet.cssRules},t.makeStyleTag=function(e,t,r){t&&l(o(t),"makeStyleTag accepts only strings as second parameter");var a=document.createElement("style");this._nonce&&a.setAttribute("nonce",this._nonce),a.type="text/css",a.setAttribute("data-"+e,""),t&&a.appendChild(document.createTextNode(t));var i=document.head||document.getElementsByTagName("head")[0];return r?i.insertBefore(a,r):i.appendChild(a),a},function(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}(e.prototype,[{key:"length",get:function(){return this._rulesCount}}]),e}();function l(e,t){if(!e)throw Error("StyleSheet: "+t+".")}var c=function(e){for(var t=5381,r=e.length;r;)t=33*t^e.charCodeAt(--r);return t>>>0},d={};function u(e,t){if(!t)return"jsx-"+e;var r=String(t),a=e+r;return d[a]||(d[a]="jsx-"+c(e+"-"+r)),d[a]}function p(e,t){var r=e+(t=t.replace(/\/style/gi,"\\/style"));return d[r]||(d[r]=t.replace(/__jsx-style-dynamic-selector/g,e)),d[r]}var f=a.createContext(null);f.displayName="StyleSheetContext",i.default.useInsertionEffect||i.default.useLayoutEffect;var b=void 0;function m(e){var t=b||a.useContext(f);return t&&t.add(e),null}m.dynamic=function(e){return e.map(function(e){return u(e[0],e[1])}).join(" ")},t.style=m},1321:(e,t,r)=>{"use strict";e.exports=r(4684).style},8383:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>i});var a=r(3517);function i({reset:e}){return(0,a.jsxs)("main",{role:"alert",style:{padding:32,fontFamily:"system-ui",lineHeight:1.8},children:[a.jsx("h1",{children:"页面加载失败"}),a.jsx("p",{children:"请重试;如果仍无法打开,请检查网络,并确认电脑上的 AgentRoam 正在运行。"}),a.jsx("button",{type:"button",onClick:e,children:"重试"})," ",a.jsx("button",{type:"button",onClick:()=>window.location.reload(),children:"刷新页面"})]})}},6439:(e,t,r)=>{"use strict";let a;r.r(t),r.d(t,{default:()=>e5});var i=r(3517),n=r(1166),o=r.n(n);let s=`
1
+ (()=>{var e={};e.id=3541,e.ids=[3541],e.modules={1636:e=>{"use strict";e.exports=require("@agent/core")},2934:e=>{"use strict";e.exports=require("next/dist/client/components/action-async-storage.external.js")},4580:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external.js")},5869:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},399:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},9411:e=>{"use strict";e.exports=require("node:path")},2907:(e,t,r)=>{"use strict";r.r(t),r.d(t,{GlobalError:()=>o.a,__next_app__:()=>p,originalPathname:()=>u,pages:()=>d,routeModule:()=>f,tree:()=>c}),r(6742),r(9257),r(489),r(4972),r(3028);var a=r(1772),i=r(5042),n=r(5663),o=r.n(n),s=r(4812),l={};for(let e in s)0>["default","tree","pages","GlobalError","originalPathname","__next_app__","routeModule"].indexOf(e)&&(l[e]=()=>s[e]);r.d(t,l);let c=["",{children:["web",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(r.bind(r,6742)),"/private/tmp/agentroam-preview69-20261030/packages/server/app/web/page.tsx"]}]},{layout:[()=>Promise.resolve().then(r.bind(r,9257)),"/private/tmp/agentroam-preview69-20261030/packages/server/app/web/layout.tsx"],error:[()=>Promise.resolve().then(r.bind(r,489)),"/private/tmp/agentroam-preview69-20261030/packages/server/app/web/error.tsx"]}]},{layout:[()=>Promise.resolve().then(r.bind(r,4972)),"/private/tmp/agentroam-preview69-20261030/packages/server/app/layout.tsx"],"not-found":[()=>Promise.resolve().then(r.t.bind(r,3028,23)),"next/dist/client/components/not-found-error"]}],d=["/private/tmp/agentroam-preview69-20261030/packages/server/app/web/page.tsx"],u="/web/page",p={require:r,loadChunk:()=>Promise.resolve()},f=new a.AppPageRouteModule({definition:{kind:i.x.APP_PAGE,page:"/web/page",pathname:"/web",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:c}})},5925:(e,t,r)=>{Promise.resolve().then(r.t.bind(r,1782,23)),Promise.resolve().then(r.t.bind(r,8949,23)),Promise.resolve().then(r.t.bind(r,6569,23)),Promise.resolve().then(r.t.bind(r,8718,23)),Promise.resolve().then(r.t.bind(r,7415,23)),Promise.resolve().then(r.t.bind(r,8781,23))},4252:(e,t,r)=>{Promise.resolve().then(r.bind(r,8383))},8754:()=>{},479:(e,t,r)=>{Promise.resolve().then(r.bind(r,6439))},2027:()=>{},6476:()=>{},1166:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return n}});let a=r(7094);r(3517),r(5921);let i=a._(r(4079));function n(e,t){var r;let a={loading:e=>{let{error:t,isLoading:r,pastDelay:a}=e;return null}};"function"==typeof e&&(a.loader=e);let n={...a,...t};return(0,i.default)({...n,modules:null==(r=n.loadableGenerated)?void 0:r.modules})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},1803:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"BailoutToCSR",{enumerable:!0,get:function(){return i}});let a=r(93);function i(e){let{reason:t,children:r}=e;throw new a.BailoutToCSRError(t)}},4079:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return c}});let a=r(3517),i=r(5921),n=r(1803),o=r(5259);function s(e){return{default:e&&"default"in e?e.default:e}}let l={loader:()=>Promise.resolve(s(()=>null)),loading:null,ssr:!0},c=function(e){let t={...l,...e},r=(0,i.lazy)(()=>t.loader().then(s)),c=t.loading;function d(e){let s=c?(0,a.jsx)(c,{isLoading:!0,pastDelay:!0,error:null}):null,l=t.ssr?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(o.PreloadCss,{moduleIds:t.modules}),(0,a.jsx)(r,{...e})]}):(0,a.jsx)(n.BailoutToCSR,{reason:"next/dynamic",children:(0,a.jsx)(r,{...e})});return(0,a.jsx)(i.Suspense,{fallback:s,children:l})}return d.displayName="LoadableComponent",d}},5259:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PreloadCss",{enumerable:!0,get:function(){return n}});let a=r(3517),i=r(4580);function n(e){let{moduleIds:t}=e,r=(0,i.getExpectedRequestStore)("next/dynamic css"),n=[];if(r.reactLoadableManifest&&t){let e=r.reactLoadableManifest;for(let r of t){if(!e[r])continue;let t=e[r].files.filter(e=>e.endsWith(".css"));n.push(...t)}}return 0===n.length?null:(0,a.jsx)(a.Fragment,{children:n.map(e=>(0,a.jsx)("link",{precedence:"dynamic",rel:"stylesheet",href:r.assetPrefix+"/_next/"+encodeURI(e),as:"style"},e))})}},4684:(e,t,r)=>{"use strict";r(6476);var a=r(5921),i=function(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}(a),n="undefined"!=typeof process&&process.env&&!0,o=function(e){return"[object String]"===Object.prototype.toString.call(e)},s=function(){function e(e){var t=void 0===e?{}:e,r=t.name,a=void 0===r?"stylesheet":r,i=t.optimizeForSpeed,s=void 0===i?n:i;l(o(a),"`name` must be a string"),this._name=a,this._deletedRulePlaceholder="#"+a+"-deleted-rule____{}",l("boolean"==typeof s,"`optimizeForSpeed` must be a boolean"),this._optimizeForSpeed=s,this._serverSheet=void 0,this._tags=[],this._injected=!1,this._rulesCount=0,this._nonce=null}var t=e.prototype;return t.setOptimizeForSpeed=function(e){l("boolean"==typeof e,"`setOptimizeForSpeed` accepts a boolean"),l(0===this._rulesCount,"optimizeForSpeed cannot be when rules have already been inserted"),this.flush(),this._optimizeForSpeed=e,this.inject()},t.isOptimizeForSpeed=function(){return this._optimizeForSpeed},t.inject=function(){var e=this;l(!this._injected,"sheet already injected"),this._injected=!0,this._serverSheet={cssRules:[],insertRule:function(t,r){return"number"==typeof r?e._serverSheet.cssRules[r]={cssText:t}:e._serverSheet.cssRules.push({cssText:t}),r},deleteRule:function(t){e._serverSheet.cssRules[t]=null}}},t.getSheetForTag=function(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]},t.getSheet=function(){return this.getSheetForTag(this._tags[this._tags.length-1])},t.insertRule=function(e,t){return l(o(e),"`insertRule` accepts only strings"),"number"!=typeof t&&(t=this._serverSheet.cssRules.length),this._serverSheet.insertRule(e,t),this._rulesCount++},t.replaceRule=function(e,t){this._optimizeForSpeed;var r=this._serverSheet;if(t.trim()||(t=this._deletedRulePlaceholder),!r.cssRules[e])return e;r.deleteRule(e);try{r.insertRule(t,e)}catch(a){n||console.warn("StyleSheet: illegal rule: \n\n"+t+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),r.insertRule(this._deletedRulePlaceholder,e)}return e},t.deleteRule=function(e){this._serverSheet.deleteRule(e)},t.flush=function(){this._injected=!1,this._rulesCount=0,this._serverSheet.cssRules=[]},t.cssRules=function(){return this._serverSheet.cssRules},t.makeStyleTag=function(e,t,r){t&&l(o(t),"makeStyleTag accepts only strings as second parameter");var a=document.createElement("style");this._nonce&&a.setAttribute("nonce",this._nonce),a.type="text/css",a.setAttribute("data-"+e,""),t&&a.appendChild(document.createTextNode(t));var i=document.head||document.getElementsByTagName("head")[0];return r?i.insertBefore(a,r):i.appendChild(a),a},function(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}(e.prototype,[{key:"length",get:function(){return this._rulesCount}}]),e}();function l(e,t){if(!e)throw Error("StyleSheet: "+t+".")}var c=function(e){for(var t=5381,r=e.length;r;)t=33*t^e.charCodeAt(--r);return t>>>0},d={};function u(e,t){if(!t)return"jsx-"+e;var r=String(t),a=e+r;return d[a]||(d[a]="jsx-"+c(e+"-"+r)),d[a]}function p(e,t){var r=e+(t=t.replace(/\/style/gi,"\\/style"));return d[r]||(d[r]=t.replace(/__jsx-style-dynamic-selector/g,e)),d[r]}var f=a.createContext(null);f.displayName="StyleSheetContext",i.default.useInsertionEffect||i.default.useLayoutEffect;var b=void 0;function m(e){var t=b||a.useContext(f);return t&&t.add(e),null}m.dynamic=function(e){return e.map(function(e){return u(e[0],e[1])}).join(" ")},t.style=m},1321:(e,t,r)=>{"use strict";e.exports=r(4684).style},8383:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>i});var a=r(3517);function i({reset:e}){return(0,a.jsxs)("main",{role:"alert",style:{padding:32,fontFamily:"system-ui",lineHeight:1.8},children:[a.jsx("h1",{children:"页面加载失败"}),a.jsx("p",{children:"请重试;如果仍无法打开,请检查网络,并确认电脑上的 AgentRoam 正在运行。"}),a.jsx("button",{type:"button",onClick:e,children:"重试"})," ",a.jsx("button",{type:"button",onClick:()=>window.location.reload(),children:"刷新页面"})]})}},6439:(e,t,r)=>{"use strict";let a;r.r(t),r.d(t,{default:()=>e8});var i=r(3517),n=r(1166),o=r.n(n);let s=`
2
2
  .web-appearance-controls { display: flex; align-items: center; gap: 4px; }
3
3
  .web-root.is-remote-fullscreen > .terminal-tabs { display: none; }
4
4
  .web-root.is-remote-fullscreen .tree-col,
@@ -295,7 +295,7 @@
295
295
  .drawer-mask { display: none; }
296
296
  }
297
297
  .web-root.is-remote-fullscreen .workspace { grid-template-columns: minmax(0, 1fr); }
298
- `;function l(){return(void 0)??location.origin}function c(e){return(void 0)??e}var d=r(5921);let u=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),p=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim();var f={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let b=(0,d.forwardRef)(({color:e="currentColor",size:t=24,strokeWidth:r=2,absoluteStrokeWidth:a,className:i="",children:n,iconNode:o,...s},l)=>(0,d.createElement)("svg",{ref:l,...f,width:t,height:t,stroke:e,strokeWidth:a?24*Number(r)/Number(t):r,className:p("lucide",i),...s},[...o.map(([e,t])=>(0,d.createElement)(e,t)),...Array.isArray(n)?n:[n]])),m=(e,t)=>{let r=(0,d.forwardRef)(({className:r,...a},i)=>(0,d.createElement)(b,{ref:i,iconNode:t,className:p(`lucide-${u(e)}`,r),...a}));return r.displayName=`${e}`,r},h=m("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]),x=m("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]),g=m("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]),w=m("LayoutDashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]),y=m("UsersRound",[["path",{d:"M18 21a8 8 0 0 0-16 0",key:"3ypg7q"}],["circle",{cx:"10",cy:"8",r:"5",key:"o932ke"}],["path",{d:"M22 20c0-3.37-2-6.5-4-8a5 5 0 0 0-.45-8.3",key:"10s06x"}]]),v=m("MonitorUp",[["path",{d:"m9 10 3-3 3 3",key:"11gsxs"}],["path",{d:"M12 13V7",key:"h0r20n"}],["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"M8 21h8",key:"1ev6f3"}]]),k=m("LayoutGrid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]),j=m("Bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]),S=m("FolderOpen",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]),C=m("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);var z=r(5878);let N=m("Smartphone",[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]]),R=m("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]),T={background:"color-mix(in srgb, var(--ui-tab-accent) 88%, var(--ui-text))",borderColor:"color-mix(in srgb, var(--ui-tab-accent) 88%, var(--ui-text))",color:"var(--ui-primary-text)"};function E(){let[e,t]=(0,d.useState)(!1),[r,a]=(0,d.useState)(!1),[n,o]=(0,d.useState)(null),s=(0,d.useRef)(null);return(0,i.jsxs)(i.Fragment,{children:[i.jsx("button",{type:"button",className:"file-drawer-toggle pwa-install-button",title:e?"已添加到主屏幕":"添加到主屏幕","aria-label":e?"已添加到主屏幕":"添加到主屏幕",onClick:()=>e?a(!0):window.dispatchEvent(new Event("agentroam:pwa-install")),children:(0,i.jsxs)("span",{style:{position:"relative",display:"flex"},children:[i.jsx(N,{size:17,"aria-hidden":"true"}),i.jsx(R,{size:9,strokeWidth:3,"aria-hidden":"true",style:{position:"absolute",right:-4,bottom:-2}})]})}),r&&n&&(0,z.createPortal)((0,i.jsxs)("dialog",{ref:s,"data-toolbar-overlay":!0,onClose:()=>a(!1),"aria-labelledby":"pwa-install-title",style:{maxWidth:340,width:"calc(100% - 40px)",margin:"auto",padding:24,borderRadius:16,border:"1px solid var(--ui-tabbar-border)",background:"var(--ui-root-bg)",color:"var(--ui-text)",whiteSpace:"normal",font:"14px/1.8 system-ui"},children:[i.jsx("h2",{id:"pwa-install-title",style:{margin:"0 0 12px",fontSize:18},children:e?"已添加到主屏幕":"添加到主屏幕"}),e&&i.jsx("p",{children:"当前已在主屏幕应用中打开。"}),i.jsx("p",{children:"iPhone / iPad:在 Safari 点击分享按钮,选择“添加到主屏幕”,再点“添加”。"}),i.jsx("p",{children:"Android:打开浏览器菜单,选择“安装应用”或“添加到主屏幕”。"}),i.jsx("p",{style:{color:"var(--ui-muted-text)"},children:"浏览器需要你确认,网页无法自动添加。从主屏幕打开后,如提示未配对,请重新扫码。"}),i.jsx("button",{type:"button",style:{...T,width:"100%",padding:"10px 14px",borderStyle:"solid",borderWidth:1,borderRadius:8,cursor:"pointer"},onClick:()=>s.current?.close(),children:"知道了"})]}),n)]})}let M=m("Palette",[["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["path",{d:"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z",key:"12rzf8"}]]),P=m("PanelRight",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}]]),I=m("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]),A=m("Monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]),L=m("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]),_=m("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]),W=m("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]),B=m("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]),O=m("MessagesSquare",[["path",{d:"M14 9a2 2 0 0 1-2 2H6l-4 4V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2z",key:"p1xzt8"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1",key:"1cx29u"}]]),F=m("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]),D=m("SlidersHorizontal",[["line",{x1:"21",x2:"14",y1:"4",y2:"4",key:"obuewd"}],["line",{x1:"10",x2:"3",y1:"4",y2:"4",key:"1q6298"}],["line",{x1:"21",x2:"12",y1:"12",y2:"12",key:"1iu8h1"}],["line",{x1:"8",x2:"3",y1:"12",y2:"12",key:"ntss68"}],["line",{x1:"21",x2:"16",y1:"20",y2:"20",key:"14d8ph"}],["line",{x1:"12",x2:"3",y1:"20",y2:"20",key:"m0wm8r"}],["line",{x1:"14",x2:"14",y1:"2",y2:"6",key:"14e1ph"}],["line",{x1:"8",x2:"8",y1:"10",y2:"14",key:"1i6ji0"}],["line",{x1:"16",x2:"16",y1:"18",y2:"22",key:"1lctlv"}]]),U=m("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]),$=m("Camera",[["path",{d:"M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3l-2.5-3z",key:"1tc9qg"}],["circle",{cx:"12",cy:"13",r:"3",key:"1vg3eu"}]]),H={shared:"已共享",independent:"独立后台",failed:"连接失败",stopped:"桌面未启动","not-installed":"桌面未安装",unsupported:"暂不支持"};function q({csrfToken:e}){let[t,r]=(0,d.useState)(null),[a,n]=(0,d.useState)(!1),o=(0,d.useRef)(!1),s=(0,d.useRef)(0),l=(0,d.useCallback)(async(t=!1,a=!1,i=!1)=>{if(o.current)return;o.current=!0;let l=s.current;n(!0);try{let n=await fetch("/api/agent/codex-sharing",{method:t||a?"POST":"GET",credentials:"same-origin",cache:"no-store",headers:t||a?{"x-csrf-token":e,...a?{"content-type":"application/json"}:{}}:void 0,body:a?JSON.stringify({action:"share",restartConfirmed:i}):void 0,signal:AbortSignal.timeout(18e4)}),o=await n.json();if(!n.ok||!Object.hasOwn(H,o?.state))throw Error(o?.error?.message||"共享状态读取失败,请重试。");if(l!==s.current)return;r(o)}catch(e){if(l!==s.current)return;r({state:"failed",configured:!1,autoStart:!1,daemonReachable:!1,runtimeMode:null,message:e instanceof Error?e.message:"无法连接当前电脑。"})}finally{o.current=!1,l===s.current&&n(!1)}},[e]),c=t?H[t.state]:"检查中",u=t&&"unsupported"!==t.state&&("shared"!==t.state||!t.configured||!t.autoStart||!t.daemonReachable);return(0,i.jsxs)("div",{className:"codex-sharing",children:[i.jsx("style",{children:V}),(0,i.jsxs)("div",{className:"codex-sharing-title",role:"status",children:[i.jsx("span",{className:"codex-sharing-indicator","aria-hidden":"true",children:i.jsx("span",{className:"codex-sharing-dot","data-state":t?.state})}),(0,i.jsxs)("span",{children:["Codex \xb7 ",c]})]}),u&&(0,i.jsxs)(i.Fragment,{children:[i.jsx("p",{children:"shared"===t.state?"共享连接可用,启动配置需要修复。":t.message}),(0,i.jsxs)("div",{className:"codex-sharing-actions",children:[(0,i.jsxs)("button",{type:"button",disabled:a,onClick:()=>{l()},"aria-label":"刷新 Codex 共享状态",children:[i.jsx(g,{size:12}),"刷新"]}),i.jsx("button",{type:"button",disabled:a,onClick:()=>{l(!0)},children:a?"正在修复…":"检查并修复"}),!["shared","not-installed"].includes(t.state)&&i.jsx("button",{type:"button",disabled:a,onClick:()=>{let e=t?.state!=="stopped";(!e||window.confirm("切换将强制重启 Codex 桌面,中断桌面任务并可能丢失未发送内容,不再显示 Codex 退出确认框。共享后端和手机会话不会被结束。是否继续?"))&&l(!1,!0,e)},children:a?"正在处理…":"stopped"===t.state?"以共享模式启动 Codex":"切换到共享后端"})]})]})]})}let V=`
298
+ `;function l(){return(void 0)??location.origin}function c(e){return(void 0)??e}var d=r(5921);let u=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),p=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim();var f={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let b=(0,d.forwardRef)(({color:e="currentColor",size:t=24,strokeWidth:r=2,absoluteStrokeWidth:a,className:i="",children:n,iconNode:o,...s},l)=>(0,d.createElement)("svg",{ref:l,...f,width:t,height:t,stroke:e,strokeWidth:a?24*Number(r)/Number(t):r,className:p("lucide",i),...s},[...o.map(([e,t])=>(0,d.createElement)(e,t)),...Array.isArray(n)?n:[n]])),m=(e,t)=>{let r=(0,d.forwardRef)(({className:r,...a},i)=>(0,d.createElement)(b,{ref:i,iconNode:t,className:p(`lucide-${u(e)}`,r),...a}));return r.displayName=`${e}`,r},h=m("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]),x=m("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]),g=m("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]),y=m("LayoutDashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]),w=m("UsersRound",[["path",{d:"M18 21a8 8 0 0 0-16 0",key:"3ypg7q"}],["circle",{cx:"10",cy:"8",r:"5",key:"o932ke"}],["path",{d:"M22 20c0-3.37-2-6.5-4-8a5 5 0 0 0-.45-8.3",key:"10s06x"}]]),v=m("MonitorUp",[["path",{d:"m9 10 3-3 3 3",key:"11gsxs"}],["path",{d:"M12 13V7",key:"h0r20n"}],["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"M8 21h8",key:"1ev6f3"}]]),k=m("LayoutGrid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]),j=m("Bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]),S=m("FolderOpen",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]),C=m("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);var z=r(5878);let N=m("Smartphone",[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]]),R=m("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]),T={background:"color-mix(in srgb, var(--ui-tab-accent) 88%, var(--ui-text))",borderColor:"color-mix(in srgb, var(--ui-tab-accent) 88%, var(--ui-text))",color:"var(--ui-primary-text)"};function E(){let[e,t]=(0,d.useState)(!1),[r,a]=(0,d.useState)(!1),[n,o]=(0,d.useState)(null),s=(0,d.useRef)(null);return(0,i.jsxs)(i.Fragment,{children:[i.jsx("button",{type:"button",className:"file-drawer-toggle pwa-install-button",title:e?"已添加到主屏幕":"添加到主屏幕","aria-label":e?"已添加到主屏幕":"添加到主屏幕",onClick:()=>e?a(!0):window.dispatchEvent(new Event("agentroam:pwa-install")),children:(0,i.jsxs)("span",{style:{position:"relative",display:"flex"},children:[i.jsx(N,{size:17,"aria-hidden":"true"}),i.jsx(R,{size:9,strokeWidth:3,"aria-hidden":"true",style:{position:"absolute",right:-4,bottom:-2}})]})}),r&&n&&(0,z.createPortal)((0,i.jsxs)("dialog",{ref:s,"data-toolbar-overlay":!0,onClose:()=>a(!1),"aria-labelledby":"pwa-install-title",style:{maxWidth:340,width:"calc(100% - 40px)",margin:"auto",padding:24,borderRadius:16,border:"1px solid var(--ui-tabbar-border)",background:"var(--ui-root-bg)",color:"var(--ui-text)",whiteSpace:"normal",font:"14px/1.8 system-ui"},children:[i.jsx("h2",{id:"pwa-install-title",style:{margin:"0 0 12px",fontSize:18},children:e?"已添加到主屏幕":"添加到主屏幕"}),e&&i.jsx("p",{children:"当前已在主屏幕应用中打开。"}),i.jsx("p",{children:"iPhone / iPad:在 Safari 点击分享按钮,选择“添加到主屏幕”,再点“添加”。"}),i.jsx("p",{children:"Android:打开浏览器菜单,选择“安装应用”或“添加到主屏幕”。"}),i.jsx("p",{style:{color:"var(--ui-muted-text)"},children:"浏览器需要你确认,网页无法自动添加。从主屏幕打开后,如提示未配对,请重新扫码。"}),i.jsx("button",{type:"button",style:{...T,width:"100%",padding:"10px 14px",borderStyle:"solid",borderWidth:1,borderRadius:8,cursor:"pointer"},onClick:()=>s.current?.close(),children:"知道了"})]}),n)]})}let M=m("Palette",[["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["path",{d:"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z",key:"12rzf8"}]]),P=m("PanelRight",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}]]),I=m("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]),A=m("Monitor",[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]]),L=m("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]),_=m("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]),W=m("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]),B=m("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]),O=m("MessagesSquare",[["path",{d:"M14 9a2 2 0 0 1-2 2H6l-4 4V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2z",key:"p1xzt8"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1",key:"1cx29u"}]]),F=m("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]),D=m("SlidersHorizontal",[["line",{x1:"21",x2:"14",y1:"4",y2:"4",key:"obuewd"}],["line",{x1:"10",x2:"3",y1:"4",y2:"4",key:"1q6298"}],["line",{x1:"21",x2:"12",y1:"12",y2:"12",key:"1iu8h1"}],["line",{x1:"8",x2:"3",y1:"12",y2:"12",key:"ntss68"}],["line",{x1:"21",x2:"16",y1:"20",y2:"20",key:"14d8ph"}],["line",{x1:"12",x2:"3",y1:"20",y2:"20",key:"m0wm8r"}],["line",{x1:"14",x2:"14",y1:"2",y2:"6",key:"14e1ph"}],["line",{x1:"8",x2:"8",y1:"10",y2:"14",key:"1i6ji0"}],["line",{x1:"16",x2:"16",y1:"18",y2:"22",key:"1lctlv"}]]),$=m("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]),H=m("Camera",[["path",{d:"M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3l-2.5-3z",key:"1tc9qg"}],["circle",{cx:"12",cy:"13",r:"3",key:"1vg3eu"}]]),U={shared:"已共享",independent:"独立后台",failed:"连接失败",stopped:"桌面未启动","not-installed":"桌面未安装",unsupported:"暂不支持"};function q({csrfToken:e}){let[t,r]=(0,d.useState)(null),[a,n]=(0,d.useState)(!1),o=(0,d.useRef)(!1),s=(0,d.useRef)(0),l=(0,d.useCallback)(async(t=!1,a=!1,i=!1)=>{if(o.current)return;o.current=!0;let l=s.current;n(!0);try{let n=await fetch("/api/agent/codex-sharing",{method:t||a?"POST":"GET",credentials:"same-origin",cache:"no-store",headers:t||a?{"x-csrf-token":e,...a?{"content-type":"application/json"}:{}}:void 0,body:a?JSON.stringify({action:"share",restartConfirmed:i}):void 0,signal:AbortSignal.timeout(18e4)}),o=await n.json();if(!n.ok||!Object.hasOwn(U,o?.state))throw Error(o?.error?.message||"共享状态读取失败,请重试。");if(l!==s.current)return;r(o)}catch(e){if(l!==s.current)return;r({state:"failed",configured:!1,autoStart:!1,daemonReachable:!1,runtimeMode:null,message:e instanceof Error?e.message:"无法连接当前电脑。"})}finally{o.current=!1,l===s.current&&n(!1)}},[e]),c=t?U[t.state]:"检查中",u=t&&"unsupported"!==t.state&&("shared"!==t.state||!t.configured||!t.autoStart||!t.daemonReachable);return(0,i.jsxs)("div",{className:"codex-sharing",children:[i.jsx("style",{children:V}),(0,i.jsxs)("div",{className:"codex-sharing-title",role:"status",children:[i.jsx("span",{className:"codex-sharing-indicator","aria-hidden":"true",children:i.jsx("span",{className:"codex-sharing-dot","data-state":t?.state})}),(0,i.jsxs)("span",{children:["Codex \xb7 ",c]})]}),u&&(0,i.jsxs)(i.Fragment,{children:[i.jsx("p",{children:"shared"===t.state?"共享连接可用,启动配置需要修复。":t.message}),(0,i.jsxs)("div",{className:"codex-sharing-actions",children:[(0,i.jsxs)("button",{type:"button",disabled:a,onClick:()=>{l()},"aria-label":"刷新 Codex 共享状态",children:[i.jsx(g,{size:12}),"刷新"]}),i.jsx("button",{type:"button",disabled:a,onClick:()=>{l(!0)},children:a?"正在修复…":"检查并修复"}),!["shared","not-installed"].includes(t.state)&&i.jsx("button",{type:"button",disabled:a,onClick:()=>{let e=t?.state!=="stopped";(!e||window.confirm("切换将强制重启 Codex 桌面,中断桌面任务并可能丢失未发送内容,不再显示 Codex 退出确认框。共享后端和手机会话不会被结束。是否继续?"))&&l(!1,!0,e)},children:a?"正在处理…":"stopped"===t.state?"以共享模式启动 Codex":"切换到共享后端"})]})]})]})}let V=`
299
299
  .codex-sharing{padding:10px 14px;margin-bottom:6px;border-bottom:1px solid var(--ui-tabbar-border,#303442);color:var(--ui-text,#e8e8ee);font-size:13px;line-height:20px}
300
300
  .codex-sharing-title{display:flex;align-items:center;gap:10px}
301
301
  .codex-sharing-indicator{display:grid;place-items:center;flex:0 0 17px;height:17px}
@@ -309,7 +309,7 @@
309
309
  .codex-sharing-actions button:focus-visible{outline:2px solid var(--ui-tab-accent,#7aa2f7);outline-offset:3px}
310
310
  .codex-sharing-actions button:disabled{opacity:.5;cursor:wait}
311
311
  @media(pointer:coarse){.codex-sharing-actions button{min-height:44px}}
312
- `,G="agentroam.computers.v1",J=/^[A-Za-z0-9_-]{43}$/;function X(e){try{if("string"!=typeof e||e.length>8192)throw Error();let t=new URL(e.trim().replace(/[,。]+$/,""));if(!["http:","https:"].includes(t.protocol)||t.username||t.password)throw Error();return t.href}catch{throw Error("请填写有效的 http(s) 页面地址。")}}function K(e){try{let t=new URL(e);if(!["http:","https:"].includes(t.protocol)||t.username||t.password||"/"!==t.pathname||t.search||t.hash)return null;return t.origin}catch{return null}}function Q(e){if(!Array.isArray(e)||e.length>20)return[];let t=new Map;for(let r of e){let e=r&&"string"==typeof r.origin?K(r.origin):null;if(!e||"string"!=typeof r.name)continue;let a=r.name.trim().slice(0,60)||new URL(e).hostname,i=function(e){if(!Array.isArray(e)||e.length>20)return[];let t=new Map;for(let r of e)if(r&&"string"==typeof r.id&&/^[A-Za-z0-9_-]{1,80}$/.test(r.id)&&"string"==typeof r.name&&r.name.trim()&&["current","new-tab"].includes(r.openMode))try{t.set(r.id,{id:r.id,name:r.name.trim().slice(0,60),url:X(r.url),openMode:r.openMode})}catch{}return[...t.values()]}(r.pages);t.set(e,{origin:e,name:a,...!0===r.pagesMigrated?{pagesMigrated:!0}:Array.isArray(r.pages)?{pages:i}:{}})}return[...t.values()]}function Y(e=localStorage){try{return Q(JSON.parse(e.getItem(G)||"[]"))}catch{return[]}}function Z(...e){let t=new Map;for(let r of e)for(let e of Q(r)){let r={...t.get(e.origin),...e};r.pagesMigrated&&delete r.pages,t.set(e.origin,r)}if(t.size>20)throw Error("最多可添加 20 台电脑。");return[...t.values()]}function ee(e,t=localStorage){let r=Q(e);try{t.setItem(G,JSON.stringify(r))}catch{throw Error("浏览器无法保存电脑列表,请检查浏览器存储设置。")}return r}function et(e){try{if("string"!=typeof e||e.length>2048)throw Error();if((e=e.trim()).startsWith("{")){let t=JSON.parse(e),r=K(t.server);if("agentroam-pair"!==t.type||1!==t.version||!r||!J.test(t.grant))throw Error();e=r+"/pair#pair="+t.grant}let t=new URL(e);if(!["http:","https:"].includes(t.protocol)||t.username||t.password||"/pair"!==t.pathname||t.search||!/^#pair=[A-Za-z0-9_-]{43}$/.test(t.hash))throw Error();return t}catch{throw Error("这不是 AgentRoam 授权二维码,请在电脑上重新生成。")}}function er(e,t,r=""){let a=new URLSearchParams(e.hash.slice(1)),i=Q(t).map(t=>({origin:t.origin,name:t.name,...t.pagesMigrated?{pagesMigrated:!0}:{},...t.origin===e.origin&&!t.pagesMigrated&&t.pages?.length?{pages:t.pages}:{}}));if(a.set("computers",JSON.stringify({version:1,computers:i,name:r.trim().slice(0,60)})),a.toString().length>16383)throw Error("电脑列表或待导入页面配置过长,请先导入旧页面后再切换电脑。");return e.hash=a.toString(),e.href}function ea({computerName:e,page:t,onClose:r,onSave:a}){let[n,o]=(0,d.useState)(t?.name??""),[s,l]=(0,d.useState)(t?.url??""),[c,u]=(0,d.useState)(t?.openMode??"current"),[p,f]=(0,d.useState)(!!t),[b,m]=(0,d.useState)(""),[h,x]=(0,d.useState)(!1),g=(0,d.useRef)(!1),w=(0,d.useRef)(null);return i.jsx("div",{className:"computer-dialog-backdrop","data-toolbar-overlay":!0,onClick:e=>{e.target!==e.currentTarget||g.current||r()},children:(0,i.jsxs)("section",{ref:w,className:"computer-dialog",role:"dialog","aria-modal":"true","aria-labelledby":"computer-page-title",children:[(0,i.jsxs)("div",{className:"computer-dialog-heading",children:[i.jsx("h2",{id:"computer-page-title",children:t?"编辑页面":"添加页面"}),i.jsx("button",{type:"button",className:"computer-close","aria-label":"关闭",disabled:h,onClick:r,children:i.jsx(C,{size:20})})]}),(0,i.jsxs)("p",{className:"computer-hint",children:["所属电脑:",e]}),(0,i.jsxs)("form",{onSubmit:async e=>{if(e.preventDefault(),!g.current){g.current=!0,x(!0),m("");try{let e=X(s),r=t?.id??Array.from(crypto.getRandomValues(new Uint8Array(16)),e=>e.toString(16).padStart(2,"0")).join("");await a({id:r,name:n.trim(),url:e,openMode:c})}catch(e){m(e.message)}finally{g.current=!1,x(!1)}}},children:[i.jsx("label",{htmlFor:"computer-page-name",children:"页面名称"}),i.jsx("input",{id:"computer-page-name",maxLength:60,required:!0,disabled:h,value:n,onChange:e=>o(e.target.value),placeholder:"例如:Zcode / Qoder",autoComplete:"off"}),i.jsx("label",{htmlFor:"computer-page-url",children:"页面地址"}),i.jsx("input",{id:"computer-page-url",required:!0,disabled:h,value:s,onChange:e=>{l(e.target.value),p||u(function(e){try{let t=new URL(X(e)).hostname;return"qoder.com"===t||t.endsWith(".qoder.com")?"new-tab":"current"}catch{return"current"}}(e.target.value))},placeholder:"https://…",autoComplete:"off",spellCheck:!1}),i.jsx("label",{htmlFor:"computer-page-mode",children:"打开方式"}),(0,i.jsxs)("select",{id:"computer-page-mode",disabled:h,value:c,onChange:e=>{u(e.target.value),f(!0)},children:[i.jsx("option",{value:"current",children:"当前页面打开,保留顶部图标栏"}),i.jsx("option",{value:"new-tab",children:"新页面打开,保留原会话页"})]}),i.jsx("p",{className:"computer-hint",children:"当前页面会显示网站自己的界面。若网站禁止内嵌(如 Qoder),可改为新页面打开。"}),b&&i.jsx("p",{className:"computer-error",role:"alert",children:b}),i.jsx("button",{type:"submit",className:"computer-action computer-primary",disabled:h||!n.trim()||!s.trim(),children:h?"正在保存…":"保存页面"})]})]})})}function ei(e){if(!Array.isArray(e)||e.length>20)throw Error("最多可添加 20 台电脑。");let t=new Set;return e.map(e=>{let r;if(!e||"object"!=typeof e||Array.isArray(e)||Object.keys(e).some(e=>!["origin","name"].includes(e))||"string"!=typeof e.origin||e.origin.length>2048)throw Error("电脑地址无效。");try{r=new URL(e.origin)}catch{throw Error("电脑地址无效。")}if(!["http:","https:"].includes(r.protocol)||r.username||r.password||"/"!==r.pathname||r.search||r.hash||t.has(r.origin))throw Error("电脑地址无效或重复。");if("string"!=typeof e.name||!e.name.trim()||e.name.trim().length>60)throw Error("电脑名称需为 1–60 个字符。");return t.add(r.origin),{origin:r.origin,name:e.name.trim()}})}async function en(e,t="GET",r){let a=await fetch("/api/web-console/computers",{method:t,credentials:"same-origin",cache:"no-store",headers:r?{"content-type":"application/json","x-csrf-token":e}:void 0,body:r?JSON.stringify(r):void 0,signal:AbortSignal.timeout(15e3)}).catch(()=>{throw Error("无法连接当前电脑,请检查连接后重试。")}),i=await a.json().catch(()=>null);if(!a.ok)throw Error(i?.error?.message??"电脑列表保存失败,请重试。");return ei(i?.computers)}async function eo(e){if(!e||e.type&&!e.type.startsWith("image/"))throw Error("请选择二维码照片。");if(e.size>20971520)throw Error("照片过大,请重新拍摄二维码。");await (window.jsQR?Promise.resolve():a||=new Promise((e,t)=>{let r=document.createElement("script");r.src="/pwa/qr-decoder.js";let i=()=>{clearTimeout(n),a=null,r.remove(),t(Error("二维码识别器加载失败,请重试。"))},n=setTimeout(i,1e4);r.onload=()=>{clearTimeout(n),e()},r.onerror=i,document.head.append(r)}));let t=new Image,r=URL.createObjectURL(e);try{await new Promise((e,a)=>{let i=setTimeout(()=>a(Error("照片加载超时,请重新拍摄。")),1e4);t.onload=()=>{clearTimeout(i),e()},t.onerror=()=>{clearTimeout(i),a(Error("无法读取照片,请重新拍摄二维码。"))},t.src=r});let e=document.createElement("canvas"),a=e.getContext("2d",{willReadFrequently:!0});for(let r of[1600,1024,640]){let i=Math.min(1,r/Math.max(t.naturalWidth,t.naturalHeight));e.width=Math.max(1,Math.round(t.naturalWidth*i)),e.height=Math.max(1,Math.round(t.naturalHeight*i)),a.drawImage(t,0,0,e.width,e.height);let n=a.getImageData(0,0,e.width,e.height),o=window.jsQR(n.data,n.width,n.height);if(o)return o.data}throw Error("照片中没有识别到二维码,请靠近电脑屏幕重新拍摄。")}finally{t.onload=null,t.onerror=null,URL.revokeObjectURL(r)}}let es=[{id:"refresh",name:"刷新",Icon:g},{id:"dashboard",name:"Dashboard",Icon:w},{id:"collaboration",name:"群聊列表",Icon:y},{id:"remote",name:"远程桌面",Icon:v},{id:"theme",name:"皮肤",Icon:M},{id:"files",name:"文件树",Icon:P},{id:"ai-hub",name:"AI Hub",Icon:k},{id:"flow",name:"数字人",Icon:j},{id:"install",name:"添加到主屏幕",Icon:N}];function el({username:e,connected:t,accent:r,accentText:a,selectedPageId:n,onSelectPage:o,onUpdatePage:s,configuration:c,csrfToken:u}){let p=(0,d.useRef)(null),f=(0,d.useRef)(null),b=function(e){let[t,r]=(0,d.useState)([]),[a,i]=(0,d.useState)(!1),[n,o]=(0,d.useState)(!1),[s,c]=(0,d.useState)(""),u=(0,d.useRef)(!0),p=(0,d.useRef)(!1),f=(0,d.useRef)(0),b=(0,d.useRef)(!1),m=(0,d.useCallback)(e=>{if(u.current){r(t=>t.length===e.length&&t.every((t,r)=>t.origin===e[r].origin&&t.name===e[r].name)?t:e),i(!0);try{let t=Y();ee(e.map(e=>({...t.find(t=>t.origin===e.origin),...e})))}catch{}}},[]),h=(0,d.useCallback)(async()=>{if(p.current)return;let t=++f.current;try{let r=b.current?void 0:(function(e,t,r=Y()){let a=K(e);if(!a)throw Error("电脑地址无效。");let i=r.find(e=>e.origin===a);return Z(r,[{origin:a,name:t?.trim()||i?.name||new URL(a).hostname,...i?.pages?.length?{pages:i.pages}:{}}])})(l(),void 0).map(({origin:e,name:t})=>({origin:e,name:t})),a=await en(e,r?"POST":"GET",r?{computers:r}:void 0);if(!u.current||t!==f.current)return;b.current=!0,m(a),c("")}catch(e){u.current&&t===f.current&&c(e instanceof Error?e.message:"无法读取电脑列表。")}},[m,e]),x=(0,d.useCallback)(async(t,r)=>{if(!a||p.current)throw Error("电脑列表尚未就绪,请稍后重试。");p.current=!0,f.current++,o(!0),c("");try{m(await en(e,t,r))}catch(t){let e=t instanceof Error?t.message:"电脑列表保存失败,请重试。";throw u.current&&c(e),Error(e)}finally{p.current=!1,u.current&&o(!1)}},[m,e,a]);return{computers:t,loaded:a,saving:n,error:s,reload:h,rename:(0,d.useCallback)((e,t)=>x("PATCH",ei([{origin:e,name:t}])[0]),[x]),remove:(0,d.useCallback)(async e=>{if(new URL(e).origin===l())throw Error("不能删除当前连接的电脑。");await x("DELETE",{origin:e})},[x]),add:(0,d.useCallback)((e,t)=>x("POST",{computers:ei([{origin:e,name:t}]),restore:!0}),[x])}}(u),m=b.computers,[h,w]=(0,d.useState)(""),[y,v]=(0,d.useState)(null),[k,j]=(0,d.useState)(!1),[S,N]=(0,d.useState)("home"),[T,E]=(0,d.useState)(!1),[M,P]=(0,d.useState)({top:48,right:12}),[$,H]=(0,d.useState)(null),[V,G]=(0,d.useState)(null),[J,X]=(0,d.useState)(""),[Q,eo]=(0,d.useState)({}),el=m.find(e=>e.origin===h),eu=c.settings.savedPages??[],ep=(0,d.useCallback)(()=>{H(null),p.current?.focus()},[]),ef=(0,d.useCallback)(()=>{G(null),p.current?.focus()},[]),eb=(0,d.useCallback)(async(e,t)=>{let r=et(e),a={origin:r.origin,name:t.trim()||m.find(e=>e.origin===r.origin)?.name||r.hostname},i=function(e,t,r=""){return er(et(e),t,r)}(e,Z(Y(),m,[a]),t);await b.add(a.origin,a.name),location.assign(i)},[m,b.add]),em=(0,d.useCallback)(async e=>{await b.rename(l(),e),ep()},[ep,b.rename]);return(0,i.jsxs)(i.Fragment,{children:[i.jsx("style",{children:ed}),(0,i.jsxs)("div",{className:"theme-avatar-with-status",children:[i.jsx("button",{ref:p,type:"button",className:"theme-avatar","aria-label":`电脑与连接状态(${e})`,title:e,style:{border:`1px solid ${r}`,background:r,color:a},"aria-expanded":k,"aria-haspopup":"true",onClick:()=>{let e=p.current.getBoundingClientRect(),t=Math.min(292,innerWidth-24);P({top:e.bottom+8,right:Math.max(12,Math.min(innerWidth-t-12,innerWidth-e.right))}),k||(N("home"),X(""),c.reload(),b.reload()),j(e=>!e)},children:(e.trim()[0]??"?").toUpperCase()}),i.jsx("span",{className:"theme-avatar-status","data-connected":t,"aria-label":t?"已连接":"未连接"})]}),k&&y&&(0,z.createPortal)(i.jsx("div",{className:"computer-menu-backdrop","data-toolbar-overlay":!0,children:(0,i.jsxs)("div",{ref:f,className:"computer-menu",style:T?void 0:M,role:"dialog","aria-modal":T,"aria-label":"tools"===S?"配置顶部工具":"computers"===S?"选择电脑":"电脑与保存页面",children:[i.jsx("div",{className:"computer-menu-grip","aria-hidden":"true"}),(0,i.jsxs)("div",{className:"computer-menu-heading",children:["home"!==S&&i.jsx("button",{type:"button",className:"computer-close","aria-label":"返回电脑菜单",onClick:()=>N("home"),children:i.jsx(I,{size:20})}),"home"===S?(0,i.jsxs)("button",{type:"button",className:"computer-menu-item computer-current","aria-label":"选择电脑",onClick:()=>N("computers"),children:[i.jsx(A,{size:17}),(0,i.jsxs)("span",{children:[i.jsx("strong",{children:el?.name||"当前电脑"}),i.jsx("small",{children:t?"当前 \xb7 在线":"当前 \xb7 未连接"})]}),i.jsx(L,{size:16})]}):i.jsx("strong",{children:"tools"===S?`${el?.name||"当前电脑"} \xb7 顶部工具`:"选择电脑"}),i.jsx("button",{type:"button",className:"computer-close","aria-label":"关闭电脑菜单",onClick:()=>{j(!1),p.current?.focus()},children:i.jsx(C,{size:20})})]}),"computers"===S&&(0,i.jsxs)(i.Fragment,{children:[!b.loaded&&i.jsx("p",{className:"computer-save-status",role:"status",children:b.error?"电脑列表尚未加载":"正在读取电脑列表…"}),m.map(e=>{let r=e.origin===h?t?"online":"offline":Q[e.origin]??"checking",a="online"===r?"在线":"offline"===r?"无法连接":"检测中";return(0,i.jsxs)("div",{className:"computer-menu-row",children:[(0,i.jsxs)("button",{type:"button",className:"computer-menu-item","data-computer-origin":e.origin,"aria-label":`${e.name},${a}${e.origin===h?",当前电脑":""}`,"aria-current":e.origin===h?"true":void 0,onClick:()=>{if(e.origin===h)N("home");else try{location.assign(function(e,t){let r=K(e);if(!r)throw Error("电脑地址无效。");return er(new URL(r+"/pair"),t)}(e.origin,Z(Y(),m)))}catch(e){X(e.message)}},children:[i.jsx(A,{size:17,"aria-hidden":"true"}),(0,i.jsxs)("span",{children:[i.jsx("strong",{children:e.name}),i.jsx("small",{children:e.origin})]}),i.jsx("span",{className:"computer-status-dot","data-status":r,role:"img","aria-label":a,title:a}),e.origin===h&&i.jsx(_,{size:16,"aria-label":"当前电脑"})]}),e.origin!==h&&i.jsx("button",{type:"button",className:"computer-page-control computer-delete-control","aria-label":`删除电脑:${e.name}`,title:`删除电脑:${e.name}`,disabled:b.saving,onClick:()=>{b.remove(e.origin).catch(()=>{})},children:i.jsx(W,{size:15})})]},e.origin)}),i.jsx("div",{className:"computer-menu-divider"}),(0,i.jsxs)("button",{type:"button",className:"computer-menu-item",disabled:!b.loaded||b.saving,onClick:()=>{j(!1),H("add")},children:[i.jsx(R,{size:17,"aria-hidden":"true"}),i.jsx("span",{children:"扫码添加电脑"})]}),(0,i.jsxs)("button",{type:"button",className:"computer-menu-item",disabled:!b.loaded||b.saving||!el,onClick:()=>{j(!1),H("rename")},children:[i.jsx(B,{size:16,"aria-hidden":"true"}),i.jsx("span",{children:"修改当前电脑名称"})]}),b.error&&(0,i.jsxs)(i.Fragment,{children:[i.jsx("p",{className:"computer-error",role:"alert",children:b.error}),(0,i.jsxs)("button",{type:"button",className:"computer-menu-item",onClick:()=>{b.reload()},children:[i.jsx(g,{size:16}),i.jsx("span",{children:"重新加载电脑列表"})]})]})]}),"home"===S&&(0,i.jsxs)(i.Fragment,{children:[i.jsx(q,{csrfToken:u}),(0,i.jsxs)("div",{className:"computer-menu-label computer-pages-heading",children:[i.jsx("span",{children:"保存的页面"}),i.jsx("button",{type:"button",className:"computer-page-control","aria-label":"添加页面",disabled:!c.loaded||c.saving,onClick:()=>{j(!1),G({computer:el??{origin:h,name:"当前电脑"}})},children:i.jsx(R,{size:17})})]}),(0,i.jsxs)("button",{type:"button",className:"computer-menu-item","aria-current":n?void 0:"true",onClick:()=>{j(!1),o(null)},children:[i.jsx(O,{size:17}),i.jsx("span",{children:"电脑会话"}),!n&&i.jsx(_,{size:16})]}),eu.map(e=>(0,i.jsxs)("div",{className:"computer-menu-row",children:[(0,i.jsxs)("button",{type:"button",className:"computer-menu-item","aria-label":`打开 ${e.name}`,"aria-current":n===e.id?"true":void 0,onClick:()=>{j(!1),o(e)},children:[i.jsx(F,{size:15,"aria-hidden":"true"}),(0,i.jsxs)("span",{children:[i.jsx("strong",{children:e.name}),(0,i.jsxs)("small",{children:["current"===e.openMode?"当前页面":"新页面"," \xb7 ",new URL(e.url).hostname]})]}),"new-tab"===e.openMode&&i.jsx(x,{size:13,"aria-hidden":"true"})]}),i.jsx("button",{type:"button",className:"computer-page-control","aria-label":`编辑 ${e.name}`,disabled:c.saving,onClick:()=>{j(!1),G({computer:el??{origin:h,name:"当前电脑"},page:e})},children:i.jsx(B,{size:14})}),i.jsx("button",{type:"button",className:"computer-page-control","aria-label":`删除 ${e.name}`,disabled:c.saving,onClick:()=>{c.setSavedPages(eu.filter(t=>t.id!==e.id)).catch(()=>{})},children:i.jsx(C,{size:15})})]},e.id)),i.jsx("div",{className:"computer-menu-divider"}),(0,i.jsxs)("button",{type:"button",className:"computer-menu-item",onClick:()=>N("tools"),children:[i.jsx(D,{size:17}),i.jsx("span",{children:"配置顶部工具"}),i.jsx(U,{size:16})]})]}),"tools"===S&&i.jsx("div",{className:"computer-tools-list",children:es.map(({id:e,name:t,Icon:r})=>(0,i.jsxs)("label",{className:"computer-tool-option",children:[i.jsx(r,{size:17,"aria-hidden":"true"}),i.jsx("span",{children:t}),i.jsx("input",{type:"checkbox","aria-label":`显示${t}`,checked:c.settings.visibleTools.includes(e),disabled:!c.loaded||c.saving,onChange:t=>{let r=c.settings.visibleTools;c.setVisibleTools(t.target.checked?[...r,e]:r.filter(t=>t!==e)).catch(()=>{})}})]},e))}),"computers"!==S&&i.jsx("p",{className:"computer-save-status",role:"status",children:c.loaded?c.saving?"正在保存…":c.notice:c.error?"配置尚未加载":"正在读取电脑配置…"}),c.error&&"computers"!==S&&(0,i.jsxs)(i.Fragment,{children:[i.jsx("p",{className:"computer-error",role:"alert",children:c.error}),(0,i.jsxs)("button",{type:"button",className:"computer-menu-item",onClick:()=>{c.reload()},children:[i.jsx(g,{size:16}),i.jsx("span",{children:"重新加载配置"})]})]}),J&&i.jsx("p",{className:"computer-error",role:"alert",children:J})]})}),y),$&&y&&(0,z.createPortal)(i.jsx(ec,{mode:$,currentName:el?.name||"",onClose:ep,onNavigate:eb,onRename:em}),y),V&&y&&(0,z.createPortal)(i.jsx(ea,{computerName:V.computer.name,page:V.page,onClose:ef,onSave:async e=>{if(V.page&&!eu.some(t=>t.id===e.id))throw Error("这个页面已在其他设备删除,请重新添加。");await c.setSavedPages(V.page?eu.map(t=>t.id===e.id?e:t):[...eu,e]),ef()}}),y)]})}function ec({mode:e,currentName:t,onClose:r,onNavigate:a,onRename:n}){let[o,s]=(0,d.useState)("rename"===e?t:""),l=(0,d.useRef)(o);l.current=o;let[c,u]=(0,d.useState)(""),[p,f]=(0,d.useState)(""),[b,m]=(0,d.useState)(!1),[h,x]=(0,d.useState)(!1),[g,w]=(0,d.useState)(!1),[y,v]=(0,d.useState)(!1),k=(0,d.useRef)(null),j=(0,d.useRef)(null),S=(0,d.useRef)(0),z=(0,d.useRef)(null),N=(0,d.useRef)(null),R=(0,d.useRef)(null),T=(0,d.useCallback)(async e=>{m(!0),R.current?.stop(),x(!1),f("");try{await a(e,l.current)}catch(e){f(e.message)}finally{m(!1)}},[a]);return i.jsx("div",{className:"computer-dialog-backdrop","data-toolbar-overlay":!0,onClick:e=>{e.target===e.currentTarget&&r()},children:(0,i.jsxs)("section",{ref:N,className:"computer-dialog",role:"dialog","aria-modal":"true","aria-labelledby":"computer-dialog-title",children:[(0,i.jsxs)("div",{className:"computer-dialog-heading",children:[i.jsx("h2",{id:"computer-dialog-title",children:"add"===e?"添加电脑":"修改电脑名称"}),i.jsx("button",{type:"button",className:"computer-close","aria-label":"关闭",onClick:r,children:i.jsx(C,{size:20})})]}),(0,i.jsxs)("form",{onSubmit:async t=>{if(t.preventDefault(),!b){if("add"===e)await T(c);else{m(!0);try{await n(o.trim())}catch(e){f(e.message)}finally{m(!1)}}}},children:[(0,i.jsxs)("label",{htmlFor:"computer-name",children:["电脑名称","add"===e?"(选填)":""]}),i.jsx("input",{ref:z,id:"computer-name",maxLength:60,value:o,required:"rename"===e,disabled:b,onChange:e=>s(e.target.value),placeholder:"例如:A 电脑 / 家里的电脑",autoComplete:"off"}),"add"===e&&(0,i.jsxs)(i.Fragment,{children:[i.jsx("p",{className:"computer-hint",children:"扫描另一台电脑上的 AgentRoam 授权二维码,连接后会保留已有电脑。"}),i.jsx("input",{ref:j,type:"file",accept:"image/*",capture:"environment",hidden:!0,"aria-label":"拍摄授权二维码",onChange:async e=>{let t=e.currentTarget.files?.[0];if(e.currentTarget.value="",!t)return;let r=++S.current;R.current?.stop(),x(!1),v(!0),f("");try{let e=await eo(t);r===S.current&&T(e)}catch(e){r===S.current&&f(e.message)}finally{r===S.current&&v(!1)}}}),i.jsx("video",{ref:k,playsInline:!0,muted:!0,hidden:!h,"aria-label":"扫码相机画面"}),(0,i.jsxs)("button",{className:"computer-action",type:"button",disabled:y,onClick:()=>{f(""),h?(R.current?.stop(),x(!1)):window.isSecureContext&&navigator.mediaDevices?.getUserMedia?(x(!0),R.current?.start()):j.current?.click()},children:[i.jsx($,{size:17,"aria-hidden":"true"}),y?"正在识别二维码…":h?"取消扫码":g?"打开相机扫码":"拍照扫码"]}),g&&i.jsx("button",{className:"computer-action",type:"button",disabled:y,onClick:()=>{R.current?.stop(),x(!1),j.current?.click()},children:"拍照识别二维码"}),i.jsx("label",{htmlFor:"computer-link",children:"或粘贴授权二维码链接"}),i.jsx("input",{id:"computer-link",value:c,onChange:e=>u(e.target.value),placeholder:"http(s)://…/pair#pair=…",autoComplete:"off",spellCheck:!1})]}),p&&i.jsx("p",{className:"computer-error",role:"alert",children:p}),i.jsx("button",{className:"computer-action computer-primary",type:"submit",disabled:b||("add"===e?!c.trim()||y:!o.trim()),children:"add"===e?"连接这台电脑":b?"正在保存…":"保存名称"})]})]})})}let ed=`
312
+ `,G="agentroam.computers.v1",J=/^[A-Za-z0-9_-]{43}$/;function X(e){try{if("string"!=typeof e||e.length>8192)throw Error();let t=new URL(e.trim().replace(/[,。]+$/,""));if(!["http:","https:"].includes(t.protocol)||t.username||t.password)throw Error();return t.href}catch{throw Error("请填写有效的 http(s) 页面地址。")}}function K(e){try{let t=new URL(e);if(!["http:","https:"].includes(t.protocol)||t.username||t.password||"/"!==t.pathname||t.search||t.hash)return null;return t.origin}catch{return null}}function Q(e){if(!Array.isArray(e)||e.length>20)return[];let t=new Map;for(let r of e){let e=r&&"string"==typeof r.origin?K(r.origin):null;if(!e||"string"!=typeof r.name)continue;let a=r.name.trim().slice(0,60)||new URL(e).hostname,i=function(e){if(!Array.isArray(e)||e.length>20)return[];let t=new Map;for(let r of e)if(r&&"string"==typeof r.id&&/^[A-Za-z0-9_-]{1,80}$/.test(r.id)&&"string"==typeof r.name&&r.name.trim()&&["current","new-tab"].includes(r.openMode))try{t.set(r.id,{id:r.id,name:r.name.trim().slice(0,60),url:X(r.url),openMode:r.openMode})}catch{}return[...t.values()]}(r.pages);t.set(e,{origin:e,name:a,...!0===r.pagesMigrated?{pagesMigrated:!0}:Array.isArray(r.pages)?{pages:i}:{}})}return[...t.values()]}function Y(e=localStorage){try{return Q(JSON.parse(e.getItem(G)||"[]"))}catch{return[]}}function Z(...e){let t=new Map;for(let r of e)for(let e of Q(r)){let r={...t.get(e.origin),...e};r.pagesMigrated&&delete r.pages,t.set(e.origin,r)}if(t.size>20)throw Error("最多可添加 20 台电脑。");return[...t.values()]}function ee(e,t=localStorage){let r=Q(e);try{t.setItem(G,JSON.stringify(r))}catch{throw Error("浏览器无法保存电脑列表,请检查浏览器存储设置。")}return r}function et(e){try{if("string"!=typeof e||e.length>2048)throw Error();if((e=e.trim()).startsWith("{")){let t=JSON.parse(e),r=K(t.server);if("agentroam-pair"!==t.type||1!==t.version||!r||!J.test(t.grant))throw Error();e=r+"/pair#pair="+t.grant}let t=new URL(e);if(!["http:","https:"].includes(t.protocol)||t.username||t.password||"/pair"!==t.pathname||t.search||!/^#pair=[A-Za-z0-9_-]{43}$/.test(t.hash))throw Error();return t}catch{throw Error("这不是 AgentRoam 授权二维码,请在电脑上重新生成。")}}function er(e,t,r=""){let a=new URLSearchParams(e.hash.slice(1)),i=Q(t).map(t=>({origin:t.origin,name:t.name,...t.pagesMigrated?{pagesMigrated:!0}:{},...t.origin===e.origin&&!t.pagesMigrated&&t.pages?.length?{pages:t.pages}:{}}));if(a.set("computers",JSON.stringify({version:1,computers:i,name:r.trim().slice(0,60)})),a.toString().length>16383)throw Error("电脑列表或待导入页面配置过长,请先导入旧页面后再切换电脑。");return e.hash=a.toString(),e.href}function ea({computerName:e,page:t,onClose:r,onSave:a}){let[n,o]=(0,d.useState)(t?.name??""),[s,l]=(0,d.useState)(t?.url??""),[c,u]=(0,d.useState)(t?.openMode??"current"),[p,f]=(0,d.useState)(!!t),[b,m]=(0,d.useState)(""),[h,x]=(0,d.useState)(!1),g=(0,d.useRef)(!1),y=(0,d.useRef)(null);return i.jsx("div",{className:"computer-dialog-backdrop","data-toolbar-overlay":!0,onClick:e=>{e.target!==e.currentTarget||g.current||r()},children:(0,i.jsxs)("section",{ref:y,className:"computer-dialog",role:"dialog","aria-modal":"true","aria-labelledby":"computer-page-title",children:[(0,i.jsxs)("div",{className:"computer-dialog-heading",children:[i.jsx("h2",{id:"computer-page-title",children:t?"编辑页面":"添加页面"}),i.jsx("button",{type:"button",className:"computer-close","aria-label":"关闭",disabled:h,onClick:r,children:i.jsx(C,{size:20})})]}),(0,i.jsxs)("p",{className:"computer-hint",children:["所属电脑:",e]}),(0,i.jsxs)("form",{onSubmit:async e=>{if(e.preventDefault(),!g.current){g.current=!0,x(!0),m("");try{let e=X(s),r=t?.id??Array.from(crypto.getRandomValues(new Uint8Array(16)),e=>e.toString(16).padStart(2,"0")).join("");await a({id:r,name:n.trim(),url:e,openMode:c})}catch(e){m(e.message)}finally{g.current=!1,x(!1)}}},children:[i.jsx("label",{htmlFor:"computer-page-name",children:"页面名称"}),i.jsx("input",{id:"computer-page-name",maxLength:60,required:!0,disabled:h,value:n,onChange:e=>o(e.target.value),placeholder:"例如:Zcode / Qoder",autoComplete:"off"}),i.jsx("label",{htmlFor:"computer-page-url",children:"页面地址"}),i.jsx("input",{id:"computer-page-url",required:!0,disabled:h,value:s,onChange:e=>{l(e.target.value),p||u(function(e){try{let t=new URL(X(e)).hostname;return"qoder.com"===t||t.endsWith(".qoder.com")?"new-tab":"current"}catch{return"current"}}(e.target.value))},placeholder:"https://…",autoComplete:"off",spellCheck:!1}),i.jsx("label",{htmlFor:"computer-page-mode",children:"打开方式"}),(0,i.jsxs)("select",{id:"computer-page-mode",disabled:h,value:c,onChange:e=>{u(e.target.value),f(!0)},children:[i.jsx("option",{value:"current",children:"当前页面打开,保留顶部图标栏"}),i.jsx("option",{value:"new-tab",children:"新页面打开,保留原会话页"})]}),i.jsx("p",{className:"computer-hint",children:"当前页面会显示网站自己的界面。若网站禁止内嵌(如 Qoder),可改为新页面打开。"}),b&&i.jsx("p",{className:"computer-error",role:"alert",children:b}),i.jsx("button",{type:"submit",className:"computer-action computer-primary",disabled:h||!n.trim()||!s.trim(),children:h?"正在保存…":"保存页面"})]})]})})}function ei(e){if(!Array.isArray(e)||e.length>20)throw Error("最多可添加 20 台电脑。");let t=new Set;return e.map(e=>{let r;if(!e||"object"!=typeof e||Array.isArray(e)||Object.keys(e).some(e=>!["origin","name"].includes(e))||"string"!=typeof e.origin||e.origin.length>2048)throw Error("电脑地址无效。");try{r=new URL(e.origin)}catch{throw Error("电脑地址无效。")}if(!["http:","https:"].includes(r.protocol)||r.username||r.password||"/"!==r.pathname||r.search||r.hash||t.has(r.origin))throw Error("电脑地址无效或重复。");if("string"!=typeof e.name||!e.name.trim()||e.name.trim().length>60)throw Error("电脑名称需为 1–60 个字符。");return t.add(r.origin),{origin:r.origin,name:e.name.trim()}})}async function en(e,t="GET",r){let a=await fetch("/api/web-console/computers",{method:t,credentials:"same-origin",cache:"no-store",headers:r?{"content-type":"application/json","x-csrf-token":e}:void 0,body:r?JSON.stringify(r):void 0,signal:AbortSignal.timeout(15e3)}).catch(()=>{throw Error("无法连接当前电脑,请检查连接后重试。")}),i=await a.json().catch(()=>null);if(!a.ok)throw Error(i?.error?.message??"电脑列表保存失败,请重试。");return ei(i?.computers)}async function eo(e){if(!e||e.type&&!e.type.startsWith("image/"))throw Error("请选择二维码照片。");if(e.size>20971520)throw Error("照片过大,请重新拍摄二维码。");await (window.jsQR?Promise.resolve():a||=new Promise((e,t)=>{let r=document.createElement("script");r.src="/pwa/qr-decoder.js";let i=()=>{clearTimeout(n),a=null,r.remove(),t(Error("二维码识别器加载失败,请重试。"))},n=setTimeout(i,1e4);r.onload=()=>{clearTimeout(n),e()},r.onerror=i,document.head.append(r)}));let t=new Image,r=URL.createObjectURL(e);try{await new Promise((e,a)=>{let i=setTimeout(()=>a(Error("照片加载超时,请重新拍摄。")),1e4);t.onload=()=>{clearTimeout(i),e()},t.onerror=()=>{clearTimeout(i),a(Error("无法读取照片,请重新拍摄二维码。"))},t.src=r});let e=document.createElement("canvas"),a=e.getContext("2d",{willReadFrequently:!0});for(let r of[1600,1024,640]){let i=Math.min(1,r/Math.max(t.naturalWidth,t.naturalHeight));e.width=Math.max(1,Math.round(t.naturalWidth*i)),e.height=Math.max(1,Math.round(t.naturalHeight*i)),a.drawImage(t,0,0,e.width,e.height);let n=a.getImageData(0,0,e.width,e.height),o=window.jsQR(n.data,n.width,n.height);if(o)return o.data}throw Error("照片中没有识别到二维码,请靠近电脑屏幕重新拍摄。")}finally{t.onload=null,t.onerror=null,URL.revokeObjectURL(r)}}let es=[{id:"refresh",name:"刷新",Icon:g},{id:"dashboard",name:"Dashboard",Icon:y},{id:"collaboration",name:"群聊列表",Icon:w},{id:"remote",name:"远程桌面",Icon:v},{id:"theme",name:"皮肤",Icon:M},{id:"files",name:"文件树",Icon:P},{id:"ai-hub",name:"AI Hub",Icon:k},{id:"flow",name:"数字人",Icon:j},{id:"install",name:"添加到主屏幕",Icon:N}];function el({username:e,connected:t,accent:r,accentText:a,selectedPageId:n,onSelectPage:o,onUpdatePage:s,configuration:c,csrfToken:u}){let p=(0,d.useRef)(null),f=(0,d.useRef)(null),b=function(e){let[t,r]=(0,d.useState)([]),[a,i]=(0,d.useState)(!1),[n,o]=(0,d.useState)(!1),[s,c]=(0,d.useState)(""),u=(0,d.useRef)(!0),p=(0,d.useRef)(!1),f=(0,d.useRef)(0),b=(0,d.useRef)(!1),m=(0,d.useCallback)(e=>{if(u.current){r(t=>t.length===e.length&&t.every((t,r)=>t.origin===e[r].origin&&t.name===e[r].name)?t:e),i(!0);try{let t=Y();ee(e.map(e=>({...t.find(t=>t.origin===e.origin),...e})))}catch{}}},[]),h=(0,d.useCallback)(async()=>{if(p.current)return;let t=++f.current;try{let r=b.current?void 0:(function(e,t,r=Y()){let a=K(e);if(!a)throw Error("电脑地址无效。");let i=r.find(e=>e.origin===a);return Z(r,[{origin:a,name:t?.trim()||i?.name||new URL(a).hostname,...i?.pages?.length?{pages:i.pages}:{}}])})(l(),void 0).map(({origin:e,name:t})=>({origin:e,name:t})),a=await en(e,r?"POST":"GET",r?{computers:r}:void 0);if(!u.current||t!==f.current)return;b.current=!0,m(a),c("")}catch(e){u.current&&t===f.current&&c(e instanceof Error?e.message:"无法读取电脑列表。")}},[m,e]),x=(0,d.useCallback)(async(t,r)=>{if(!a||p.current)throw Error("电脑列表尚未就绪,请稍后重试。");p.current=!0,f.current++,o(!0),c("");try{m(await en(e,t,r))}catch(t){let e=t instanceof Error?t.message:"电脑列表保存失败,请重试。";throw u.current&&c(e),Error(e)}finally{p.current=!1,u.current&&o(!1)}},[m,e,a]);return{computers:t,loaded:a,saving:n,error:s,reload:h,rename:(0,d.useCallback)((e,t)=>x("PATCH",ei([{origin:e,name:t}])[0]),[x]),remove:(0,d.useCallback)(async e=>{if(new URL(e).origin===l())throw Error("不能删除当前连接的电脑。");await x("DELETE",{origin:e})},[x]),add:(0,d.useCallback)((e,t)=>x("POST",{computers:ei([{origin:e,name:t}]),restore:!0}),[x])}}(u),m=b.computers,[h,y]=(0,d.useState)(""),[w,v]=(0,d.useState)(null),[k,j]=(0,d.useState)(!1),[S,N]=(0,d.useState)("home"),[T,E]=(0,d.useState)(!1),[M,P]=(0,d.useState)({top:48,right:12}),[H,U]=(0,d.useState)(null),[V,G]=(0,d.useState)(null),[J,X]=(0,d.useState)(""),[Q,eo]=(0,d.useState)({}),el=m.find(e=>e.origin===h),eu=c.settings.savedPages??[],ep=(0,d.useCallback)(()=>{U(null),p.current?.focus()},[]),ef=(0,d.useCallback)(()=>{G(null),p.current?.focus()},[]),eb=(0,d.useCallback)(async(e,t)=>{let r=et(e),a={origin:r.origin,name:t.trim()||m.find(e=>e.origin===r.origin)?.name||r.hostname},i=function(e,t,r=""){return er(et(e),t,r)}(e,Z(Y(),m,[a]),t);await b.add(a.origin,a.name),location.assign(i)},[m,b.add]),em=(0,d.useCallback)(async e=>{await b.rename(l(),e),ep()},[ep,b.rename]);return(0,i.jsxs)(i.Fragment,{children:[i.jsx("style",{children:ed}),(0,i.jsxs)("div",{className:"theme-avatar-with-status",children:[i.jsx("button",{ref:p,type:"button",className:"theme-avatar","aria-label":`电脑与连接状态(${e})`,title:e,style:{border:`1px solid ${r}`,background:r,color:a},"aria-expanded":k,"aria-haspopup":"true",onClick:()=>{let e=p.current.getBoundingClientRect(),t=Math.min(292,innerWidth-24);P({top:e.bottom+8,right:Math.max(12,Math.min(innerWidth-t-12,innerWidth-e.right))}),k||(N("home"),X(""),c.reload(),b.reload()),j(e=>!e)},children:(e.trim()[0]??"?").toUpperCase()}),i.jsx("span",{className:"theme-avatar-status","data-connected":t,"aria-label":t?"已连接":"未连接"})]}),k&&w&&(0,z.createPortal)(i.jsx("div",{className:"computer-menu-backdrop","data-toolbar-overlay":!0,children:(0,i.jsxs)("div",{ref:f,className:"computer-menu",style:T?void 0:M,role:"dialog","aria-modal":T,"aria-label":"tools"===S?"配置顶部工具":"computers"===S?"选择电脑":"电脑与保存页面",children:[i.jsx("div",{className:"computer-menu-grip","aria-hidden":"true"}),(0,i.jsxs)("div",{className:"computer-menu-heading",children:["home"!==S&&i.jsx("button",{type:"button",className:"computer-close","aria-label":"返回电脑菜单",onClick:()=>N("home"),children:i.jsx(I,{size:20})}),"home"===S?(0,i.jsxs)("button",{type:"button",className:"computer-menu-item computer-current","aria-label":"选择电脑",onClick:()=>N("computers"),children:[i.jsx(A,{size:17}),(0,i.jsxs)("span",{children:[i.jsx("strong",{children:el?.name||"当前电脑"}),i.jsx("small",{children:t?"当前 \xb7 在线":"当前 \xb7 未连接"})]}),i.jsx(L,{size:16})]}):i.jsx("strong",{children:"tools"===S?`${el?.name||"当前电脑"} \xb7 顶部工具`:"选择电脑"}),i.jsx("button",{type:"button",className:"computer-close","aria-label":"关闭电脑菜单",onClick:()=>{j(!1),p.current?.focus()},children:i.jsx(C,{size:20})})]}),"computers"===S&&(0,i.jsxs)(i.Fragment,{children:[!b.loaded&&i.jsx("p",{className:"computer-save-status",role:"status",children:b.error?"电脑列表尚未加载":"正在读取电脑列表…"}),m.map(e=>{let r=e.origin===h?t?"online":"offline":Q[e.origin]??"checking",a="online"===r?"在线":"offline"===r?"无法连接":"检测中";return(0,i.jsxs)("div",{className:"computer-menu-row",children:[(0,i.jsxs)("button",{type:"button",className:"computer-menu-item","data-computer-origin":e.origin,"aria-label":`${e.name},${a}${e.origin===h?",当前电脑":""}`,"aria-current":e.origin===h?"true":void 0,onClick:()=>{if(e.origin===h)N("home");else try{location.assign(function(e,t){let r=K(e);if(!r)throw Error("电脑地址无效。");return er(new URL(r+"/pair"),t)}(e.origin,Z(Y(),m)))}catch(e){X(e.message)}},children:[i.jsx(A,{size:17,"aria-hidden":"true"}),(0,i.jsxs)("span",{children:[i.jsx("strong",{children:e.name}),i.jsx("small",{children:e.origin})]}),i.jsx("span",{className:"computer-status-dot","data-status":r,role:"img","aria-label":a,title:a}),e.origin===h&&i.jsx(_,{size:16,"aria-label":"当前电脑"})]}),e.origin!==h&&i.jsx("button",{type:"button",className:"computer-page-control computer-delete-control","aria-label":`删除电脑:${e.name}`,title:`删除电脑:${e.name}`,disabled:b.saving,onClick:()=>{b.remove(e.origin).catch(()=>{})},children:i.jsx(W,{size:15})})]},e.origin)}),i.jsx("div",{className:"computer-menu-divider"}),(0,i.jsxs)("button",{type:"button",className:"computer-menu-item",disabled:!b.loaded||b.saving,onClick:()=>{j(!1),U("add")},children:[i.jsx(R,{size:17,"aria-hidden":"true"}),i.jsx("span",{children:"扫码添加电脑"})]}),(0,i.jsxs)("button",{type:"button",className:"computer-menu-item",disabled:!b.loaded||b.saving||!el,onClick:()=>{j(!1),U("rename")},children:[i.jsx(B,{size:16,"aria-hidden":"true"}),i.jsx("span",{children:"修改当前电脑名称"})]}),b.error&&(0,i.jsxs)(i.Fragment,{children:[i.jsx("p",{className:"computer-error",role:"alert",children:b.error}),(0,i.jsxs)("button",{type:"button",className:"computer-menu-item",onClick:()=>{b.reload()},children:[i.jsx(g,{size:16}),i.jsx("span",{children:"重新加载电脑列表"})]})]})]}),"home"===S&&(0,i.jsxs)(i.Fragment,{children:[i.jsx(q,{csrfToken:u}),(0,i.jsxs)("div",{className:"computer-menu-label computer-pages-heading",children:[i.jsx("span",{children:"保存的页面"}),i.jsx("button",{type:"button",className:"computer-page-control","aria-label":"添加页面",disabled:!c.loaded||c.saving,onClick:()=>{j(!1),G({computer:el??{origin:h,name:"当前电脑"}})},children:i.jsx(R,{size:17})})]}),(0,i.jsxs)("button",{type:"button",className:"computer-menu-item","aria-current":n?void 0:"true",onClick:()=>{j(!1),o(null)},children:[i.jsx(O,{size:17}),i.jsx("span",{children:"电脑会话"}),!n&&i.jsx(_,{size:16})]}),eu.map(e=>(0,i.jsxs)("div",{className:"computer-menu-row",children:[(0,i.jsxs)("button",{type:"button",className:"computer-menu-item","aria-label":`打开 ${e.name}`,"aria-current":n===e.id?"true":void 0,onClick:()=>{j(!1),o(e)},children:[i.jsx(F,{size:15,"aria-hidden":"true"}),(0,i.jsxs)("span",{children:[i.jsx("strong",{children:e.name}),(0,i.jsxs)("small",{children:["current"===e.openMode?"当前页面":"新页面"," \xb7 ",new URL(e.url).hostname]})]}),"new-tab"===e.openMode&&i.jsx(x,{size:13,"aria-hidden":"true"})]}),i.jsx("button",{type:"button",className:"computer-page-control","aria-label":`编辑 ${e.name}`,disabled:c.saving,onClick:()=>{j(!1),G({computer:el??{origin:h,name:"当前电脑"},page:e})},children:i.jsx(B,{size:14})}),i.jsx("button",{type:"button",className:"computer-page-control","aria-label":`删除 ${e.name}`,disabled:c.saving,onClick:()=>{c.setSavedPages(eu.filter(t=>t.id!==e.id)).catch(()=>{})},children:i.jsx(C,{size:15})})]},e.id)),i.jsx("div",{className:"computer-menu-divider"}),(0,i.jsxs)("button",{type:"button",className:"computer-menu-item",onClick:()=>N("tools"),children:[i.jsx(D,{size:17}),i.jsx("span",{children:"配置顶部工具"}),i.jsx($,{size:16})]})]}),"tools"===S&&i.jsx("div",{className:"computer-tools-list",children:es.map(({id:e,name:t,Icon:r})=>(0,i.jsxs)("label",{className:"computer-tool-option",children:[i.jsx(r,{size:17,"aria-hidden":"true"}),i.jsx("span",{children:t}),i.jsx("input",{type:"checkbox","aria-label":`显示${t}`,checked:c.settings.visibleTools.includes(e),disabled:!c.loaded||c.saving,onChange:t=>{let r=c.settings.visibleTools;c.setVisibleTools(t.target.checked?[...r,e]:r.filter(t=>t!==e)).catch(()=>{})}})]},e))}),"computers"!==S&&i.jsx("p",{className:"computer-save-status",role:"status",children:c.loaded?c.saving?"正在保存…":c.notice:c.error?"配置尚未加载":"正在读取电脑配置…"}),c.error&&"computers"!==S&&(0,i.jsxs)(i.Fragment,{children:[i.jsx("p",{className:"computer-error",role:"alert",children:c.error}),(0,i.jsxs)("button",{type:"button",className:"computer-menu-item",onClick:()=>{c.reload()},children:[i.jsx(g,{size:16}),i.jsx("span",{children:"重新加载配置"})]})]}),J&&i.jsx("p",{className:"computer-error",role:"alert",children:J})]})}),w),H&&w&&(0,z.createPortal)(i.jsx(ec,{mode:H,currentName:el?.name||"",onClose:ep,onNavigate:eb,onRename:em}),w),V&&w&&(0,z.createPortal)(i.jsx(ea,{computerName:V.computer.name,page:V.page,onClose:ef,onSave:async e=>{if(V.page&&!eu.some(t=>t.id===e.id))throw Error("这个页面已在其他设备删除,请重新添加。");await c.setSavedPages(V.page?eu.map(t=>t.id===e.id?e:t):[...eu,e]),ef()}}),w)]})}function ec({mode:e,currentName:t,onClose:r,onNavigate:a,onRename:n}){let[o,s]=(0,d.useState)("rename"===e?t:""),l=(0,d.useRef)(o);l.current=o;let[c,u]=(0,d.useState)(""),[p,f]=(0,d.useState)(""),[b,m]=(0,d.useState)(!1),[h,x]=(0,d.useState)(!1),[g,y]=(0,d.useState)(!1),[w,v]=(0,d.useState)(!1),k=(0,d.useRef)(null),j=(0,d.useRef)(null),S=(0,d.useRef)(0),z=(0,d.useRef)(null),N=(0,d.useRef)(null),R=(0,d.useRef)(null),T=(0,d.useCallback)(async e=>{m(!0),R.current?.stop(),x(!1),f("");try{await a(e,l.current)}catch(e){f(e.message)}finally{m(!1)}},[a]);return i.jsx("div",{className:"computer-dialog-backdrop","data-toolbar-overlay":!0,onClick:e=>{e.target===e.currentTarget&&r()},children:(0,i.jsxs)("section",{ref:N,className:"computer-dialog",role:"dialog","aria-modal":"true","aria-labelledby":"computer-dialog-title",children:[(0,i.jsxs)("div",{className:"computer-dialog-heading",children:[i.jsx("h2",{id:"computer-dialog-title",children:"add"===e?"添加电脑":"修改电脑名称"}),i.jsx("button",{type:"button",className:"computer-close","aria-label":"关闭",onClick:r,children:i.jsx(C,{size:20})})]}),(0,i.jsxs)("form",{onSubmit:async t=>{if(t.preventDefault(),!b){if("add"===e)await T(c);else{m(!0);try{await n(o.trim())}catch(e){f(e.message)}finally{m(!1)}}}},children:[(0,i.jsxs)("label",{htmlFor:"computer-name",children:["电脑名称","add"===e?"(选填)":""]}),i.jsx("input",{ref:z,id:"computer-name",maxLength:60,value:o,required:"rename"===e,disabled:b,onChange:e=>s(e.target.value),placeholder:"例如:A 电脑 / 家里的电脑",autoComplete:"off"}),"add"===e&&(0,i.jsxs)(i.Fragment,{children:[i.jsx("p",{className:"computer-hint",children:"扫描另一台电脑上的 AgentRoam 授权二维码,连接后会保留已有电脑。"}),i.jsx("input",{ref:j,type:"file",accept:"image/*",capture:"environment",hidden:!0,"aria-label":"拍摄授权二维码",onChange:async e=>{let t=e.currentTarget.files?.[0];if(e.currentTarget.value="",!t)return;let r=++S.current;R.current?.stop(),x(!1),v(!0),f("");try{let e=await eo(t);r===S.current&&T(e)}catch(e){r===S.current&&f(e.message)}finally{r===S.current&&v(!1)}}}),i.jsx("video",{ref:k,playsInline:!0,muted:!0,hidden:!h,"aria-label":"扫码相机画面"}),(0,i.jsxs)("button",{className:"computer-action",type:"button",disabled:w,onClick:()=>{f(""),h?(R.current?.stop(),x(!1)):window.isSecureContext&&navigator.mediaDevices?.getUserMedia?(x(!0),R.current?.start()):j.current?.click()},children:[i.jsx(H,{size:17,"aria-hidden":"true"}),w?"正在识别二维码…":h?"取消扫码":g?"打开相机扫码":"拍照扫码"]}),g&&i.jsx("button",{className:"computer-action",type:"button",disabled:w,onClick:()=>{R.current?.stop(),x(!1),j.current?.click()},children:"拍照识别二维码"}),i.jsx("label",{htmlFor:"computer-link",children:"或粘贴授权二维码链接"}),i.jsx("input",{id:"computer-link",value:c,onChange:e=>u(e.target.value),placeholder:"http(s)://…/pair#pair=…",autoComplete:"off",spellCheck:!1})]}),p&&i.jsx("p",{className:"computer-error",role:"alert",children:p}),i.jsx("button",{className:"computer-action computer-primary",type:"submit",disabled:b||("add"===e?!c.trim()||w:!o.trim()),children:"add"===e?"连接这台电脑":b?"正在保存…":"保存名称"})]})]})})}let ed=`
313
313
  .computer-menu-backdrop{position:fixed;inset:0;z-index:10000}
314
314
  .computer-menu-heading{display:flex;align-items:center;gap:4px;padding:2px 4px}.computer-menu-heading>strong{flex:1;min-width:0;font-size:14px;font-weight:500;overflow-wrap:anywhere}.computer-menu-heading>.computer-current{flex:1;min-width:0}.computer-menu-heading>.computer-close{flex-shrink:0}
315
315
  .computer-menu-grip{display:none}.computer-pages-heading{display:flex;align-items:center;justify-content:space-between}.computer-tool-option{display:flex;align-items:center;gap:12px;min-height:44px;padding:8px 12px;cursor:pointer}.computer-tool-option span{flex:1;font-size:14px}.computer-tool-option input{width:18px;height:18px;accent-color:var(--ui-tab-accent,#7aa2f7)}.computer-tool-option svg{flex-shrink:0}.computer-save-status{margin:6px 10px 2px;line-height:18px;color:var(--ui-muted-text,#999dab);font-size:12px}.computer-save-status:empty{display:none}.computer-menu button:disabled,.computer-tool-option:has(input:disabled){opacity:.55;cursor:default}
@@ -340,4 +340,4 @@
340
340
  .computer-dialog select{width:100%;padding:11px 8px;border:1px solid var(--ui-panel-input-border,#30303a);border-radius:8px;background:var(--ui-panel-input-bg,#0f0f15);color:inherit;font:inherit;font-size:14px}
341
341
  .computer-hint{color:var(--ui-muted-text,#999dab);font-size:13px;line-height:1.7}.computer-action{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px;margin-top:12px;border:1px solid var(--ui-panel-input-border,#30303a);border-radius:8px;background:var(--ui-tab-bg,#1b1e28);color:inherit;font:inherit;cursor:pointer}.computer-primary{background:var(--ui-tab-accent,#7aa2f7);color:var(--ui-root-bg,#0b0b10);border-color:transparent}.computer-action:disabled{opacity:.45;cursor:default}.computer-error{font-size:13px;line-height:1.6;color:var(--ui-danger,#ffb2a7);padding:0 8px}
342
342
  @media(pointer:coarse){.computer-menu-item{min-height:44px}.computer-close{width:44px;height:44px}.computer-page-control{height:44px;flex-basis:36px;width:36px}}
343
- `;var eu=r(1321),ep=r.n(eu);function ef({label:e="FLOW STUDIO",title:t="正在打开 Flow Studio",caption:r="即将进入你的创作空间",icon:a=i.jsx(j,{size:36,strokeWidth:1.5})}={}){return(0,i.jsxs)("div",{role:"status","aria-live":"polite",className:"jsx-f8b6a4420911d242 flow-loading",children:[(0,i.jsxs)("div",{"aria-hidden":"true",className:"jsx-f8b6a4420911d242 flow-loader-art",children:[i.jsx("div",{className:"jsx-f8b6a4420911d242 flow-loader-halo"}),i.jsx("div",{className:"jsx-f8b6a4420911d242 flow-loader-orbit orbit-outer",children:i.jsx("i",{className:"jsx-f8b6a4420911d242"})}),i.jsx("div",{className:"jsx-f8b6a4420911d242 flow-loader-orbit orbit-inner",children:i.jsx("i",{className:"jsx-f8b6a4420911d242"})}),i.jsx("div",{className:"jsx-f8b6a4420911d242 flow-loader-core",children:a}),i.jsx("span",{className:"jsx-f8b6a4420911d242 flow-loader-node node-one"}),i.jsx("span",{className:"jsx-f8b6a4420911d242 flow-loader-node node-two"}),i.jsx("span",{className:"jsx-f8b6a4420911d242 flow-loader-node node-three"})]}),(0,i.jsxs)("div",{className:"jsx-f8b6a4420911d242 flow-loader-copy",children:[i.jsx("span",{className:"jsx-f8b6a4420911d242 flow-loader-label",children:e}),i.jsx("strong",{className:"jsx-f8b6a4420911d242",children:t}),i.jsx("span",{className:"jsx-f8b6a4420911d242 flow-loader-caption",children:r})]}),i.jsx("div",{"aria-hidden":"true",className:"jsx-f8b6a4420911d242 flow-loader-track",children:i.jsx("span",{className:"jsx-f8b6a4420911d242"})}),i.jsx(ep(),{id:"f8b6a4420911d242",children:".flow-loading.jsx-f8b6a4420911d242{position:absolute;inset:0;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-moz-box-pack:center;-ms-flex-pack:center;justify-content:center;overflow:hidden;gap:26px;color:var(--ui-text,#e5e7eb);background:var(--ui-term-col-bg,#101014);-webkit-animation:flow-appear 280ms ease-out both;-moz-animation:flow-appear 280ms ease-out both;-o-animation:flow-appear 280ms ease-out both;animation:flow-appear 280ms ease-out both}.flow-loader-art.jsx-f8b6a4420911d242{position:relative;width:200px;height:200px;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.flow-loader-halo.jsx-f8b6a4420911d242{position:absolute;inset:-40px;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;background:-webkit-radial-gradient(circle,#54e5cf26,#54e5cf08 45%,transparent 70%);background:-moz-radial-gradient(circle,#54e5cf26,#54e5cf08 45%,transparent 70%);background:-o-radial-gradient(circle,#54e5cf26,#54e5cf08 45%,transparent 70%);background:radial-gradient(circle,#54e5cf26,#54e5cf08 45%,transparent 70%);-webkit-animation:flow-breathe 3s ease-in-out infinite;-moz-animation:flow-breathe 3s ease-in-out infinite;-o-animation:flow-breathe 3s ease-in-out infinite;animation:flow-breathe 3s ease-in-out infinite}.flow-loader-orbit.jsx-f8b6a4420911d242{position:absolute;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;border:1px solid#54e5cf26}.orbit-outer.jsx-f8b6a4420911d242{inset:8px;border-top-color:#54e5cf;border-right-color:#54e5cf70;-webkit-animation:flow-orbit 3.2s linear infinite;-moz-animation:flow-orbit 3.2s linear infinite;-o-animation:flow-orbit 3.2s linear infinite;animation:flow-orbit 3.2s linear infinite}.orbit-inner.jsx-f8b6a4420911d242{inset:30px;border-bottom-color:#8bbcff;border-left-color:#8bbcff60;animation:flow-orbit 2.4s linear infinite reverse}.flow-loader-orbit.jsx-f8b6a4420911d242 i.jsx-f8b6a4420911d242{position:absolute;top:13%;left:13%;width:7px;height:7px;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;background:#77f8df;-webkit-box-shadow:0 0 14px#54e5cf;-moz-box-shadow:0 0 14px#54e5cf;box-shadow:0 0 14px#54e5cf}.orbit-inner.jsx-f8b6a4420911d242 i.jsx-f8b6a4420911d242{background:#8bbcff;-webkit-box-shadow:0 0 14px#8bbcff;-moz-box-shadow:0 0 14px#8bbcff;box-shadow:0 0 14px#8bbcff}.flow-loader-core.jsx-f8b6a4420911d242{position:absolute;inset:62px;display:grid;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;justify-items:center;place-items:center;-webkit-border-radius:24px;-moz-border-radius:24px;border-radius:24px;color:#64e9d3;border:1px solid#54e5cf66;background:-webkit-linear-gradient(305deg,#54e5cf20,#8bbcff0d);background:-moz-linear-gradient(305deg,#54e5cf20,#8bbcff0d);background:-o-linear-gradient(305deg,#54e5cf20,#8bbcff0d);background:linear-gradient(145deg,#54e5cf20,#8bbcff0d);-webkit-box-shadow:0 0 35px#54e5cf15,inset 0 0 18px#54e5cf0d;-moz-box-shadow:0 0 35px#54e5cf15,inset 0 0 18px#54e5cf0d;box-shadow:0 0 35px#54e5cf15,inset 0 0 18px#54e5cf0d;-webkit-animation:flow-breathe 3s ease-in-out infinite;-moz-animation:flow-breathe 3s ease-in-out infinite;-o-animation:flow-breathe 3s ease-in-out infinite;animation:flow-breathe 3s ease-in-out infinite}.flow-loader-node.jsx-f8b6a4420911d242{position:absolute;width:5px;height:5px;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;background:#8bbcff;-webkit-animation:flow-node 2s ease-in-out infinite;-moz-animation:flow-node 2s ease-in-out infinite;-o-animation:flow-node 2s ease-in-out infinite;animation:flow-node 2s ease-in-out infinite}.node-one.jsx-f8b6a4420911d242{left:0;top:100px}.node-two.jsx-f8b6a4420911d242{right:17px;top:38px;-webkit-animation-delay:.5s;-moz-animation-delay:.5s;-o-animation-delay:.5s;animation-delay:.5s}.node-three.jsx-f8b6a4420911d242{bottom:9px;right:57px;-webkit-animation-delay:1s;-moz-animation-delay:1s;-o-animation-delay:1s;animation-delay:1s}.flow-loader-copy.jsx-f8b6a4420911d242{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;gap:10px;text-align:center;padding:0 20px}.flow-loader-label.jsx-f8b6a4420911d242{font:10px ui-monospace,monospace;letter-spacing:.3em;color:#64cbbb}.flow-loader-copy.jsx-f8b6a4420911d242 strong.jsx-f8b6a4420911d242{font-size:18px;font-weight:500;letter-spacing:.02em}.flow-loader-caption.jsx-f8b6a4420911d242{font-size:12px;color:var(--ui-text-muted,#9399aa)}.flow-loader-track.jsx-f8b6a4420911d242{width:128px;height:2px;overflow:hidden;background:#54e5cf20;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.flow-loader-track.jsx-f8b6a4420911d242 span.jsx-f8b6a4420911d242{display:block;width:45%;height:100%;background:-webkit-linear-gradient(left,transparent,#64e9d3,#8bbcff);background:-moz-linear-gradient(left,transparent,#64e9d3,#8bbcff);background:-o-linear-gradient(left,transparent,#64e9d3,#8bbcff);background:linear-gradient(90deg,transparent,#64e9d3,#8bbcff);-webkit-animation:flow-travel 1.8s ease-in-out infinite;-moz-animation:flow-travel 1.8s ease-in-out infinite;-o-animation:flow-travel 1.8s ease-in-out infinite;animation:flow-travel 1.8s ease-in-out infinite}@-webkit-keyframes flow-orbit{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes flow-orbit{to{-moz-transform:rotate(360deg);transform:rotate(360deg)}}@-o-keyframes flow-orbit{to{-o-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes flow-orbit{to{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes flow-breathe{50%{-webkit-transform:scale(1.05);transform:scale(1.05);opacity:.7}}@-moz-keyframes flow-breathe{50%{-moz-transform:scale(1.05);transform:scale(1.05);opacity:.7}}@-o-keyframes flow-breathe{50%{-o-transform:scale(1.05);transform:scale(1.05);opacity:.7}}@keyframes flow-breathe{50%{-webkit-transform:scale(1.05);-moz-transform:scale(1.05);-o-transform:scale(1.05);transform:scale(1.05);opacity:.7}}@-webkit-keyframes flow-node{50%{opacity:.25;-webkit-transform:scale(.65);transform:scale(.65)}}@-moz-keyframes flow-node{50%{opacity:.25;-moz-transform:scale(.65);transform:scale(.65)}}@-o-keyframes flow-node{50%{opacity:.25;-o-transform:scale(.65);transform:scale(.65)}}@keyframes flow-node{50%{opacity:.25;-webkit-transform:scale(.65);-moz-transform:scale(.65);-o-transform:scale(.65);transform:scale(.65)}}@-webkit-keyframes flow-travel{from{-webkit-transform:translatex(-110%);transform:translatex(-110%)}to{-webkit-transform:translatex(330%);transform:translatex(330%)}}@-moz-keyframes flow-travel{from{-moz-transform:translatex(-110%);transform:translatex(-110%)}to{-moz-transform:translatex(330%);transform:translatex(330%)}}@-o-keyframes flow-travel{from{-o-transform:translatex(-110%);transform:translatex(-110%)}to{-o-transform:translatex(330%);transform:translatex(330%)}}@keyframes flow-travel{from{-webkit-transform:translatex(-110%);-moz-transform:translatex(-110%);-o-transform:translatex(-110%);transform:translatex(-110%)}to{-webkit-transform:translatex(330%);-moz-transform:translatex(330%);-o-transform:translatex(330%);transform:translatex(330%)}}@-webkit-keyframes flow-appear{from{opacity:0}to{opacity:1}}@-moz-keyframes flow-appear{from{opacity:0}to{opacity:1}}@-o-keyframes flow-appear{from{opacity:0}to{opacity:1}}@keyframes flow-appear{from{opacity:0}to{opacity:1}}@media(max-height:420px){.flow-loading.jsx-f8b6a4420911d242{gap:12px}.flow-loader-art.jsx-f8b6a4420911d242{width:200px;height:200px;zoom:.65}}@media(prefers-reduced-motion:reduce){.flow-loading.jsx-f8b6a4420911d242,.flow-loader-halo.jsx-f8b6a4420911d242,.flow-loader-orbit.jsx-f8b6a4420911d242,.flow-loader-core.jsx-f8b6a4420911d242,.flow-loader-node.jsx-f8b6a4420911d242,.flow-loader-track.jsx-f8b6a4420911d242 span.jsx-f8b6a4420911d242{-webkit-animation:none;-moz-animation:none;-o-animation:none;animation:none}}"})]})}function eb({page:e,reloadKey:t}){let[r,a]=(0,d.useState)(!0),[n,o]=(0,d.useState)(!1);return!function(e){let t=new URL(e).hostname;return"qoder.com"===t||t.endsWith(".qoder.com")}(e.url)?(0,i.jsxs)("main",{className:"computer-page-pane","aria-label":e.name,"aria-busy":r,children:[i.jsx("iframe",{title:e.name,src:e.url,referrerPolicy:"no-referrer",allow:"clipboard-read; clipboard-write; microphone; camera",sandbox:"allow-scripts allow-same-origin allow-forms allow-popups allow-popups-to-escape-sandbox allow-downloads allow-modals",onLoad:()=>a(!1),onError:()=>{a(!1),o(!0)},style:{visibility:r?"hidden":"visible"}},`${e.id}:${t}`),r&&i.jsx(ef,{label:"REMOTE PAGE",title:`正在打开 ${e.name}`,caption:"正在连接页面",icon:i.jsx(F,{size:36,strokeWidth:1.5})}),n&&i.jsx("a",{className:"computer-page-fallback",href:e.url,target:"_blank",rel:"noopener noreferrer",children:"打开原页面"})]}):(0,i.jsxs)("main",{className:"computer-page-blocked",children:[i.jsx(F,{size:36,strokeWidth:1.5,"aria-hidden":"true"}),(0,i.jsxs)("h2",{children:[e.name," 不允许内嵌"]}),i.jsx("p",{children:"这个网站限制了当前页面打开。可以在新页面使用,也可以在电脑菜单中修改打开方式。"}),(0,i.jsxs)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",children:[i.jsx(x,{size:16,"aria-hidden":"true"}),"打开新页面"]})]})}let em=m("Ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]),eh=m("ChevronsRight",[["path",{d:"m6 17 5-5-5-5",key:"xnjwq"}],["path",{d:"m13 17 5-5-5-5",key:"17xmmf"}]]),ex=m("ChevronsLeft",[["path",{d:"m11 17-5-5 5-5",key:"13zhaf"}],["path",{d:"m18 17-5-5 5-5",key:"h8a8et"}]]);function eg(e){return e.map(e=>e.compactItems??[e]).filter(e=>e.length>0)}function ew({items:e,avatar:t,glass:r=!1,compact:a=!1}){let[n,o]=(0,d.useState)(!1),s=r&&n,l=r&&!n,c=(0,d.useRef)(null),u=(0,d.useRef)(null),p=(0,d.useRef)(null),f=(0,d.useRef)(null),b=(0,d.useRef)(null),m=(0,d.useRef)(new Map),[h,x]=(0,d.useState)(null),[g,w]=(0,d.useState)(!1),[y,v]=(0,d.useState)(!1),[k,j]=(0,d.useState)({top:-1e3,left:0}),[S,N]=(0,d.useState)({fullFits:!1,inlineIndices:[],overflowIndices:[]}),R=new Set(S.inlineIndices),T=S.fullFits||g,E=T&&S.overflowIndices.length>0,M=eg(e);(0,d.useLayoutEffect)(()=>{let t=c.current?.closest(".terminal-tabs"),i=t?.querySelector(".terminal-tab-list"),n=c.current?.closest(".terminal-connection");if(!t||!i||!n||!h||r||a)return;let o=0,s=()=>{let r=getComputedStyle(t),a=getComputedStyle(n),o=getComputedStyle(i),s=Array.from(i.children),l=s.reduce((e,t)=>e+t.offsetWidth,0)+Math.max(0,s.length-1)*(parseFloat(o.columnGap)||0),c=(parseFloat(r.paddingLeft)||0)+(parseFloat(r.paddingRight)||0)+(parseFloat(a.paddingLeft)||0)+(parseFloat(a.paddingRight)||0)+2*(parseFloat(r.columnGap)||0)+(t.querySelector(".terminal-add")?.offsetWidth??30),d=t.clientWidth-c,f=function(e){let t=e.toolWidths.flatMap((e,t)=>e>0?[t]:[]),r=t=>t.reduce((t,r)=>t+e.toolWidths[r],0)+t.length*e.gap,a=r(t)+e.avatarWidth<=e.fullAvailableWidth;if(a)return{fullFits:a,inlineIndices:t,overflowIndices:[]};if(!e.expanded)return{fullFits:a,inlineIndices:[],overflowIndices:t};let i=e.availableWidth-e.avatarWidth-e.toggleWidth;if(r(t)<=i)return{fullFits:a,inlineIndices:t,overflowIndices:[]};let n=[];for(let a of t){if(r([...n,a])>i-e.toggleWidth)break;n.push(a)}return{fullFits:a,inlineIndices:n,overflowIndices:t.slice(n.length)}}({toolWidths:e.map(e=>m.current.get(e.id)?.offsetWidth??0),fullAvailableWidth:d-l,availableWidth:d-Math.min(l,Math.max(64,Math.min(130,t.clientWidth/4))),avatarWidth:u.current?.offsetWidth??44,toggleWidth:p.current?.offsetWidth??40,gap:0,expanded:g});N(e=>JSON.stringify(e)===JSON.stringify(f)?e:f),(f.fullFits||!g||0===f.overflowIndices.length)&&v(!1)},l=()=>{cancelAnimationFrame(o),o=requestAnimationFrame(s)},d=new ResizeObserver(l);for(let e of[t,i,c.current,f.current,...m.current.values()])e&&d.observe(e);let b=new MutationObserver(l);return b.observe(i,{childList:!0,subtree:!0,characterData:!0}),f.current&&b.observe(f.current,{childList:!0,subtree:!0}),s(),()=>{cancelAnimationFrame(o),d.disconnect(),b.disconnect()}},[g,h,e.map(e=>e.id).join(","),S.inlineIndices.join(","),r,a]),(0,d.useLayoutEffect)(()=>{if(!y)return;let e=()=>{let e=b.current?.getBoundingClientRect();if(!e)return;let t=l||a?f.current?.getBoundingClientRect().width??Math.min(292,innerWidth-16):Math.min(292,innerWidth-16),r=c.current?.closest(".terminal-tabs")?.getBoundingClientRect().bottom??e.bottom;j({top:Math.max(e.bottom,r)+6,left:Math.max(8,Math.min(innerWidth-t-8,e.right-t))})};e();let t=new ResizeObserver(e);return l&&f.current&&t.observe(f.current),a&&f.current&&t.observe(f.current),window.addEventListener("resize",e),window.addEventListener("scroll",e,!0),()=>{t.disconnect(),window.removeEventListener("resize",e),window.removeEventListener("scroll",e,!0)}},[y,l,a,S.inlineIndices.join(",")]);let P=e=>i.jsx("div",{className:"toolbar-slot","data-toolbar-item":e.id,ref:t=>{t?m.current.set(e.id,t):m.current.delete(e.id)},children:e.content},e.id);if(a)return(0,i.jsxs)("div",{ref:c,className:"responsive-toolbar compact-toolbar",children:[M.length>0&&i.jsx("button",{ref:b,type:"button",className:"file-drawer-toggle compact-toolbar-trigger","aria-label":"更多功能",title:"更多功能","aria-haspopup":"dialog","aria-expanded":y,onClick:()=>v(e=>!e),children:i.jsx(em,{size:20,"aria-hidden":"true"})}),i.jsx("div",{className:"toolbar-avatar",onPointerDown:()=>v(!1),children:t}),h&&(0,z.createPortal)(i.jsx("div",{className:n?"compact-tools-backdrop":"compact-tools-overlay",hidden:!y,onClick:e=>{e.target===e.currentTarget&&v(!1)},children:(0,i.jsxs)("div",{ref:f,className:`compact-tools-panel${n?" is-mobile":""}`,role:"dialog","aria-label":"更多功能","data-toolbar-overlay":!0,style:n?void 0:{position:"fixed",...k},children:[n&&i.jsx("header",{children:i.jsx("button",{type:"button",className:"file-drawer-toggle","aria-label":"关闭更多功能",title:"关闭更多功能",onClick:()=>{v(!1),b.current?.focus()},children:i.jsx(C,{size:20,"aria-hidden":"true"})})}),i.jsx("div",{className:"compact-tools-grid",children:M.map(e=>1===e.length?P(e[0]):i.jsx("div",{className:"compact-tools-group",children:e.map(P)},e[0].id))})]})}),h)]});if(l){let r=["files","remote"].flatMap(t=>e.filter(e=>e.id===t)),a=e.filter(e=>!["files","remote"].includes(e.id));return(0,i.jsxs)("div",{ref:c,className:"responsive-toolbar glass-desktop-toolbar",children:[(0,i.jsxs)("div",{className:"glass-desktop-actions",children:[r.map(P),a.length>0&&i.jsx("button",{ref:b,type:"button",className:"file-drawer-toggle","aria-label":"更多功能",title:"更多功能","aria-haspopup":"dialog","aria-expanded":y,onClick:()=>v(e=>!e),children:i.jsx(em,{size:20})})]}),i.jsx("div",{className:"toolbar-avatar",onPointerDown:()=>v(!1),children:t}),y&&h&&(0,z.createPortal)(i.jsx("div",{ref:f,className:"glass-desktop-menu",role:"dialog","aria-label":"更多功能","data-toolbar-overlay":!0,style:{position:"fixed",top:k.top,left:k.left,zIndex:200},children:a.map(P)}),h)]})}if(s){let r={refresh:"刷新页面",collaboration:"群聊看板",install:"安装应用",remote:"远程桌面","ai-hub":"AI Hub",flow:"数字人",theme:"皮肤","navigation-layout":"切换布局",files:"我的文件"},a=i.jsx("div",{className:"glass-mobile-actions",style:{display:"flex",alignItems:"center",gap:4},children:i.jsx("button",{type:"button",className:"file-drawer-toggle ui-icon-button","aria-label":"更多功能","aria-expanded":y,onClick:()=>v(e=>!e),children:i.jsx(em,{size:20})})});return(0,i.jsxs)("div",{ref:c,className:"responsive-toolbar glass-mobile-toolbar",children:[e.filter(e=>"files"===e.id).map(P),a,i.jsx("div",{className:"toolbar-avatar",children:t}),y&&h&&(0,z.createPortal)(i.jsx("div",{className:"glass-tools-backdrop",onClick:()=>v(!1),children:(0,i.jsxs)("section",{className:"glass-tools-sheet",role:"dialog","aria-label":"更多功能","data-toolbar-overlay":!0,onClick:e=>e.stopPropagation(),children:[(0,i.jsxs)("header",{children:[i.jsx("strong",{children:"更多功能"}),i.jsx("button",{type:"button","aria-label":"关闭更多功能",onClick:()=>v(!1),children:"\xd7"})]}),i.jsx("div",{className:"glass-tools-grid",children:eg(e).flat().filter(e=>"files"!==e.id).map(e=>i.jsx("div",{className:"glass-tool-cell",title:r[e.id]??e.id,onClick:e=>{e.target instanceof Element&&e.target.closest("button")||e.currentTarget.querySelector("button")?.click()},children:e.content},e.id))})]})}),h)]})}return(0,i.jsxs)("div",{ref:c,className:"responsive-toolbar","data-toolbar-expanded":T,children:[i.jsx("span",{ref:p,className:"file-drawer-toggle toolbar-size-measure","aria-hidden":"true"}),E&&i.jsx("button",{ref:b,type:"button",className:"file-drawer-toggle toolbar-overflow-toggle","aria-label":"更多工具",title:"更多工具","aria-haspopup":"dialog","aria-expanded":y,onClick:()=>v(e=>!e),children:i.jsx(L,{size:17,"aria-hidden":"true"})}),S.inlineIndices.length>0&&i.jsx("div",{className:"toolbar-tools toolbar-tools-inline",children:e.filter((e,t)=>R.has(t)).map(P)}),e.length>0&&!S.fullFits&&i.jsx("button",{type:"button",className:"file-drawer-toggle toolbar-more","aria-label":g?"收起顶部工具":"展开顶部工具",title:g?"收起工具":"展开工具","aria-expanded":g,onClick:()=>{w(e=>!e),v(!1)},children:g?i.jsx(eh,{size:17,"aria-hidden":"true"}):i.jsx(ex,{size:17,"aria-hidden":"true"})}),i.jsx("div",{ref:u,className:"toolbar-avatar",onPointerDown:()=>v(!1),children:t}),h&&(0,z.createPortal)(i.jsx("div",{ref:f,className:"toolbar-overflow theme-popover",role:"dialog","aria-label":"更多工具菜单","data-toolbar-overlay":!0,"aria-hidden":!y,style:{position:"fixed",top:y?k.top:-1e3,left:y?k.left:0,zIndex:200,width:Math.min(292,innerWidth-16),visibility:y?"visible":"hidden",boxSizing:"border-box",maxHeight:"calc(100dvh - 60px)",overflowY:"auto",padding:8,borderRadius:10,border:"1px solid var(--ui-tabbar-border, #282b36)",background:"var(--ui-tab-active-bg, #262b38)",boxShadow:"0 10px 28px rgba(0,0,0,.45)"},children:i.jsx("div",{className:"toolbar-tools toolbar-tools-expanded",children:e.filter((e,t)=>!R.has(t)).map(P)})}),h)]})}let ey=["refresh","dashboard","collaboration","remote","theme","files","ai-hub","flow","install"],ev=["refresh","remote","theme","files"];function ek(e){if(!Array.isArray(e)||e.length>ey.length||e.some(e=>!ey.includes(e)))throw Error("顶部工具包含未知选项。");if(new Set(e).size!==e.length)throw Error("顶部工具不能重复。");return ey.filter(t=>e.includes(t))}function ej(e){if(!Array.isArray(e)||e.length>20)throw Error("每台电脑最多可添加 20 个页面。");let t=new Set;return e.map(e=>{let r;if(!e||"string"!=typeof e.id||!/^[A-Za-z0-9_-]{1,80}$/.test(e.id)||t.has(e.id))throw Error("页面标识无效或重复。");if("string"!=typeof e.name||!e.name.trim()||e.name.trim().length>60)throw Error("页面名称需为 1–60 个字符。");if(!["current","new-tab"].includes(e.openMode))throw Error("页面打开方式无效。");if("string"!=typeof e.url||e.url.length>8192)throw Error("请填写有效的 http(s) 页面地址。");try{r=new URL(e.url.trim())}catch{throw Error("请填写有效的 http(s) 页面地址。")}if(!["http:","https:"].includes(r.protocol)||r.username||r.password)throw Error("请填写无账号密码的 http(s) 页面地址。");return t.add(e.id),{id:e.id,name:e.name.trim(),url:r.href,openMode:e.openMode}})}class eS extends Error{constructor(e,t){super(e),this.status=t}}async function eC(e,t){let r=await fetch("/api/web-console/computer-settings",{method:t?"PATCH":"GET",credentials:"same-origin",cache:"no-store",headers:t?{"content-type":"application/json","x-csrf-token":e}:void 0,body:t?JSON.stringify(t):void 0,signal:AbortSignal.timeout(15e3)}).catch(e=>{throw Error(e?.name==="TimeoutError"?"电脑响应超时,请检查连接后重试。":"无法连接当前电脑,请检查连接后重试。")}),a=await r.json().catch(()=>null);if(!r.ok)throw new eS(a?.error?.message??"电脑配置保存失败,请检查连接后重试。",r.status);if(!a?.settings||!Number.isSafeInteger(a.settings.revision))throw Error("无法读取电脑配置,请重新加载。");return{...a.settings,visibleTools:ek(a.settings.visibleTools),savedPages:null===a.settings.savedPages?null:ej(a.settings.savedPages)}}let ez=["codex","claude agents","opencode","agent-tui"],eN={watcherFrame:4,producerFrame:5};function eR({ready:e=!1,error:t,onRetry:r}){let[a]=(0,d.useState)(Date.now),[n,o]=(0,d.useState)(Date.now),s=t||"数字人核心正在就绪";return(0,i.jsxs)("main",{className:`neural-boot${e?" is-ready":""}${t?" is-error":""}`,role:t?"alert":"status","aria-live":"polite","aria-busy":!e&&!t,"aria-hidden":e,children:[i.jsx("div",{className:"neural-grid","aria-hidden":"true"}),i.jsx("div",{className:"neural-rail neural-rail-left","aria-hidden":"true"}),i.jsx("div",{className:"neural-rail neural-rail-right","aria-hidden":"true"}),(0,i.jsxs)("section",{className:"neural-content",children:[(0,i.jsxs)("div",{className:"neural-brand","aria-hidden":"true",children:[i.jsx("span",{className:"neural-brand-signal"}),i.jsx("span",{children:"AgentRoam"}),i.jsx("small",{children:"NEURAL LINK"})]}),(0,i.jsxs)("div",{className:"neural-portrait","aria-hidden":"true",children:[i.jsx("span",{className:"neural-ring neural-ring-outer"}),i.jsx("span",{className:"neural-ring neural-ring-inner"}),i.jsx("span",{className:"neural-axis neural-axis-x"}),i.jsx("span",{className:"neural-axis neural-axis-y"}),i.jsx("span",{className:"neural-node neural-node-one"}),i.jsx("span",{className:"neural-node neural-node-two"}),i.jsx("span",{className:"neural-node neural-node-three"}),i.jsx("span",{className:"neural-node neural-node-four"}),i.jsx("div",{className:"neural-avatar-frame",children:(0,i.jsxs)("div",{className:"neural-avatar",children:[i.jsx(j,{className:"neural-avatar-icon",size:66,strokeWidth:1.3}),i.jsx("span",{className:"neural-visor"})]})})]}),(0,i.jsxs)("div",{className:"neural-copy",children:[i.jsx("strong",{children:"正在唤醒工作区"}),i.jsx("span",{children:s})]}),i.jsx("div",{className:"neural-progress","aria-hidden":"true",children:i.jsx("span",{})}),(0,i.jsxs)("div",{className:"neural-meta","aria-hidden":"true",children:[i.jsx("span",{children:"AGENT CORE"}),(0,i.jsxs)("span",{className:"neural-meta-time",children:["T+",Math.max(0,Math.floor((n-a)/1e3)).toString().padStart(2,"0"),"S"]})]}),t&&i.jsx("button",{type:"button",className:"neural-retry","aria-label":"重试连接",title:"重试连接",onClick:()=>r?.(),children:i.jsx(g,{size:18,"aria-hidden":"true"})})]})]})}function eT({children:e}){let t=function(){let[e,t]=(0,d.useState)("loading"),[r,a]=(0,d.useState)(null),[i]=(0,d.useState)("same-origin"),[n,o]=(0,d.useState)(null),s=(0,d.useCallback)(async()=>{t("loading"),o(null);try{let e=await fetch("/api/web-console/bootstrap",{credentials:"same-origin",cache:"no-store"});if(401===e.status||423===e.status){window.location.reload();return}if(!e.ok)throw Error(`HTTP ${e.status}`);let r=await e.json();a(r.user),t("authenticated")}catch{o("无法连接远程控制台"),t("needsLogin")}},[]),l=(0,d.useCallback)(async()=>{let e=await fetch("/api/web-console/bootstrap",{credentials:"same-origin",cache:"no-store"});if((401===e.status||423===e.status)&&window.location.reload(),!e.ok)throw Error("bootstrap failed");let r=await e.json();return a(r.user),t("authenticated"),r.wsNonce},[]),c=(0,d.useCallback)(async()=>(window.location.reload(),!1),[]);return{status:e,user:r,error:n,csrfToken:i,setup:c,login:c,logout:(0,d.useCallback)(async()=>{let e=await fetch("/api/pairing/logout",{method:"POST",credentials:"same-origin"});e.ok||401===e.status||423===e.status?window.location.reload():o("退出失败,请重试")},[]),refresh:s,getWsNonce:l}}(),[r,a]=(0,d.useState)(!1),n="authenticated"===t.status,o=(0,d.useCallback)(()=>a(!0),[]);return(0,i.jsxs)(i.Fragment,{children:[n?e(t,o):null,i.jsx(eR,{ready:n&&r,error:t.error,onRetry:()=>void t.refresh()})]})}let eE=m("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]),eM=m("TextCursorInput",[["path",{d:"M5 4h1a3 3 0 0 1 3 3 3 3 0 0 1 3-3h1",key:"18xjzo"}],["path",{d:"M13 20h-1a3 3 0 0 1-3-3 3 3 0 0 1-3 3H5",key:"fj48gi"}],["path",{d:"M5 16H4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h1",key:"1n9rhb"}],["path",{d:"M13 8h7a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-7",key:"13ksps"}],["path",{d:"M9 7v10",key:"1vc8ob"}]]),eP=m("Pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]),eI=m("GripVertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);function eA(e,t,r){let a=e.findIndex(e=>e.id===t),i=e.findIndex(e=>e.id===r);if(a<0||i<0||a===i)return[...e];let n=[...e],[o]=n.splice(a,1);return n.splice(i,0,o),n}function eL(e,t="function"==typeof crypto.randomUUID?crypto.randomUUID():Array.from(crypto.getRandomValues(new Uint8Array(16)),e=>e.toString(16).padStart(2,"0")).join("")){return{id:t,command:e.trim()}}function e_({commands:e,onChange:t,onExecute:r}){let[a,n]=(0,d.useState)(null),[o,s]=(0,d.useState)(""),[l,c]=(0,d.useState)(null),u=(0,d.useRef)(null),p=()=>{if(!a)return;let r=a.value.trim();return r?r.length>1e3?s("命令最多 1000 个字符"):/[\r\n\0]/.test(r)?s("命令只能包含一行"):void(a.id?t(e.map(e=>e.id===a.id?{...e,command:r}:e)):t([...e,eL(r)]),n(null),s("")):s("命令不能为空")},f=(e,t)=>{e.preventDefault(),e.stopPropagation(),u.current=t,c(t),e.currentTarget.setPointerCapture(e.pointerId)},b=r=>{if(!u.current)return;let a=document.elementFromPoint(r.clientX,r.clientY)?.closest("[data-pinned-id]"),i=a?.dataset.pinnedId;i&&i!==u.current&&t(eA(e,u.current,i))},m=e=>{e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId),u.current=null,c(null)},h=(r,a)=>{if("ArrowUp"!==r.key&&"ArrowDown"!==r.key)return;r.preventDefault();let i=e.findIndex(e=>e.id===a),n=e[i+("ArrowUp"===r.key?-1:1)];n&&t(eA(e,a,n.id))};return(0,i.jsxs)("section",{className:"pinned-commands","aria-labelledby":"pinned-command-title",children:[(0,i.jsxs)("div",{className:"pinned-command-head",children:[i.jsx("span",{id:"pinned-command-title",children:"置顶命令"}),i.jsx("button",{className:"history-icon-button",onClick:()=>{n({id:null,value:""}),s("")},"aria-label":"新增置顶命令",title:"新增置顶命令",children:i.jsx(R,{size:14,"aria-hidden":"true"})})]}),e.map(c=>a?.id===c.id?i.jsx(eW,{editor:a,error:o,onChange:e=>{n({...a,value:e}),s("")},onSave:p,onCancel:()=>{n(null),s("")}},c.id):(0,i.jsxs)("div",{className:`pinned-command-row${l===c.id?" pinned-command-dragging":""}`,"data-pinned-id":c.id,role:"button",tabIndex:0,onClick:()=>r(c.command),onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),r(c.command))},children:[i.jsx("button",{className:"pinned-command-grip",onPointerDown:e=>f(e,c.id),onPointerMove:b,onPointerUp:m,onPointerCancel:m,onKeyDown:e=>h(e,c.id),onClick:e=>e.stopPropagation(),"aria-label":`调整 ${c.command} 的顺序`,title:"拖动排序,或按上下方向键",children:i.jsx(eI,{size:14,"aria-hidden":"true"})}),i.jsx("code",{children:c.command}),(0,i.jsxs)("div",{className:"pinned-command-actions",onClick:e=>e.stopPropagation(),children:[i.jsx("button",{className:"history-icon-button",onClick:()=>{n({id:c.id,value:c.command}),s("")},"aria-label":`编辑 ${c.command}`,title:"编辑",children:i.jsx(B,{size:12,"aria-hidden":"true"})}),i.jsx("button",{className:"history-icon-button history-icon-danger",onClick:()=>t(e.filter(e=>e.id!==c.id)),"aria-label":`删除 ${c.command}`,title:"删除",children:i.jsx(W,{size:12,"aria-hidden":"true"})})]})]},c.id)),a?.id===null&&i.jsx(eW,{editor:a,error:o,onChange:e=>{n({...a,value:e}),s("")},onSave:p,onCancel:()=>{n(null),s("")}})]})}function eW({editor:e,error:t,onChange:r,onSave:a,onCancel:n}){return(0,i.jsxs)("div",{className:"pinned-command-editor",children:[i.jsx("input",{autoFocus:!0,value:e.value,maxLength:1e3,onChange:e=>r(e.target.value),onKeyDown:e=>{"Enter"===e.key&&a(),"Escape"===e.key&&n()},"aria-label":e.id?"编辑置顶命令":"新增置顶命令"}),i.jsx("button",{className:"history-icon-button",onClick:a,"aria-label":"保存命令",title:"保存",children:i.jsx(_,{size:13,"aria-hidden":"true"})}),i.jsx("button",{className:"history-icon-button",onClick:n,"aria-label":"取消编辑",title:"取消",children:i.jsx(C,{size:13,"aria-hidden":"true"})}),t&&i.jsx("small",{role:"alert",children:t})]})}async function eB(e){let t="undefined"==typeof navigator?void 0:navigator.clipboard;if("function"==typeof t?.writeText&&("undefined"==typeof isSecureContext||isSecureContext))try{return await t.writeText(e),!0}catch{}return function(e){if("undefined"==typeof document||!document.body||"function"!=typeof document.execCommand)return!1;let t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),Object.assign(t.style,{position:"fixed",top:"0",left:"-9999px",width:"1px",height:"1px",fontSize:"16px",opacity:"0",pointerEvents:"none"}),document.body.appendChild(t);try{return t.focus(),t.select(),t.setSelectionRange(0,t.value.length),document.execCommand("copy")}catch{return!1}finally{t.remove()}}(e)}function eO({csrfToken:e,terminalId:t,pinnedCommands:r,onPinnedCommandsChange:a,onFill:n,onExecute:o}){let[s,l]=(0,d.useState)([]),[c,u]=(0,d.useState)(""),[p,f]=(0,d.useState)(""),b=(0,d.useCallback)(async()=>{let e=new URLSearchParams({q:c,limit:"200"}),t=await fetch(`/api/web-console/history?${e}`,{credentials:"same-origin"});t.ok&&l((await t.json()).history)},[c]),m=async t=>{await fetch("/api/web-console/history",{method:"DELETE",credentials:"same-origin",headers:{"content-type":"application/json","x-csrf-token":e},body:JSON.stringify({id:t})}),b()},h=e=>{t&&n(e)},x=(0,d.useCallback)(e=>{"[REDACTED]"===e||r.some(t=>t.command===e)||a([...r,eL(e)])},[a,r]),w=async e=>{f(await eB(e)?"已复制命令":"复制失败,请长按命令手动复制")};return(0,i.jsxs)("div",{className:"history-panel",children:[i.jsx(e_,{commands:r,onChange:a,onExecute:o}),(0,i.jsxs)("div",{className:"history-search",children:[i.jsx("input",{value:c,onChange:e=>u(e.target.value),placeholder:"搜索命令"}),i.jsx("button",{className:"history-icon-button",onClick:b,"aria-label":"刷新历史",title:"刷新历史",children:i.jsx(g,{size:13,"aria-hidden":"true"})})]}),p&&i.jsx("div",{className:"terminal-clipboard-notice",role:"status",children:p}),s.map(e=>(0,i.jsxs)("div",{className:`history-item${t?"":" history-item-disabled"}`,role:"button",tabIndex:t?0:-1,onClick:()=>h(e.command),onKeyDown:r=>{r.target===r.currentTarget&&("Enter"===r.key||" "===r.key)&&t&&(r.preventDefault(),h(e.command))},children:[i.jsx("code",{children:e.command}),(0,i.jsxs)("small",{children:[e.cwd," \xb7 ",new Date(e.executedAt).toLocaleString()]}),(0,i.jsxs)("div",{className:"history-item-actions",onClick:e=>e.stopPropagation(),onPointerDown:e=>e.stopPropagation(),children:[i.jsx("button",{className:"history-icon-button",onClick:()=>void w(e.command),"aria-label":"复制命令",title:"复制",children:i.jsx(eE,{size:12,"aria-hidden":"true"})}),i.jsx("button",{className:"history-icon-button",disabled:!t,onClick:()=>h(e.command),"aria-label":"填入命令",title:"填入",children:i.jsx(eM,{size:12,"aria-hidden":"true"})}),i.jsx("button",{className:"history-icon-button",disabled:"[REDACTED]"===e.command||r.some(t=>t.command===e.command),onClick:()=>x(e.command),"aria-label":"置顶命令",title:"置顶",children:i.jsx(eP,{size:12,"aria-hidden":"true"})}),i.jsx("button",{className:"history-icon-button history-icon-danger",onClick:()=>m(e.id),"aria-label":"删除历史",title:"删除",children:i.jsx(W,{size:12,"aria-hidden":"true"})})]})]},e.id)),!s.length&&i.jsx("div",{className:"history-empty",children:"暂无 Shell 命令历史"}),!t&&!!s.length&&i.jsx("div",{className:"history-empty",children:"请先打开一个终端页签"})]})}let eF=[{id:"pearl",label:"珍珠白",swatch:"#f5f6fa",preview:["#f5f6fa","#4f6ef7"],cssVars:{"--ui-color-scheme":"light","--ui-root-bg":"#f5f6fa","--ui-text":"#111827","--ui-tabbar-bg":"#eef0f6","--ui-tabbar-border":"#dfe3ee","--ui-tab-bg":"#e6e9f4","--ui-tab-text":"#5b6472","--ui-tab-active-bg":"#ffffff","--ui-tab-active-text":"#111827","--ui-tab-accent":"#4f6ef7","--ui-connection-bg":"#eef0f6","--ui-connection-text":"#9ca3af","--ui-tree-bg":"#fbfcfe","--ui-tree-border":"#e5e8f0","--ui-term-col-bg":"#f5f6fa","--ui-fab-bg":"#ffffff","--ui-fab-border":"#d8dcea","--ui-muted-surface":"#eef0f6","--ui-muted-border":"#d8dcea","--ui-muted-text":"#6b7280","--ui-panel-input-bg":"#ffffff","--ui-panel-input-text":"#111827","--ui-panel-input-border":"#d8dcea","--ui-drawer-tab-text":"#6b7280","--ui-drawer-tab-active":"#111827","--ui-history-item-text":"#1f2937","--ui-history-meta":"#9ca3af","--ui-success":"#059669","--ui-error":"#dc2626"},termHostBg:"#ffffff",keybar:{bg:"#eef0f6",border:"#dfe3ee",keyBg:"#ffffff",keyBorder:"#d8dcea",keyText:"#4b5563",accent:"#4f6ef7",accentText:"#ffffff",drag:"#a5b4fc"},xterm:{background:"#ffffff",foreground:"#1f2937",cursor:"#4f6ef7",selectionBackground:"#c7d2fe",black:"#24292e",red:"#d73a49",green:"#22863a",yellow:"#b08800",blue:"#005cc5",magenta:"#6f42c1",cyan:"#1b7c83",white:"#6a737d",brightBlack:"#959da5",brightWhite:"#fafbfc"}},{id:"scifi",label:"科幻霓虹",swatch:"#050a14",preview:["#050a14","#22d3ee"],cssVars:{"--ui-color-scheme":"dark","--ui-root-bg":"#050a14","--ui-text":"#e2f3ff","--ui-tabbar-bg":"#0a1220","--ui-tabbar-border":"#10263c","--ui-tab-bg":"#0d1626","--ui-tab-text":"#5c7893","--ui-tab-active-bg":"#122036","--ui-tab-active-text":"#e2f3ff","--ui-tab-accent":"#22d3ee","--ui-connection-bg":"#0a1220","--ui-connection-text":"#5c7893","--ui-tree-bg":"#0d1626","--ui-tree-border":"#10263c","--ui-term-col-bg":"#050a14","--ui-fab-bg":"#122036","--ui-fab-border":"#155e75","--ui-muted-surface":"#0d1626","--ui-muted-border":"#164e63","--ui-muted-text":"#9fb8d0","--ui-panel-input-bg":"#0a1220","--ui-panel-input-text":"#e2f3ff","--ui-panel-input-border":"#164e63","--ui-drawer-tab-text":"#5c7893","--ui-drawer-tab-active":"#e2f3ff","--ui-history-item-text":"#d5ecfb","--ui-history-meta":"#5c7893","--ui-success":"#34d399","--ui-error":"#fb7185"},termHostBg:"#0a1220",keybar:{bg:"#0a1220",border:"#10263c",keyBg:"#0d1626",keyBorder:"#164e63",keyText:"#9fb8d0",accent:"#22d3ee",accentText:"#04121a",drag:"#155e75"},xterm:{background:"#0a1220",foreground:"#e2f3ff",cursor:"#22d3ee",selectionBackground:"#164e63",black:"#0d1626",red:"#fb7185",green:"#34d399",yellow:"#fbbf24",blue:"#38bdf8",magenta:"#e879f9",cyan:"#22d3ee",white:"#e2f3ff",brightBlack:"#5c7893",brightWhite:"#ffffff"}},{id:"noir",label:"暗夜黑",swatch:"#0f1115",preview:["#0f1115","#a78bfa"],cssVars:{"--ui-color-scheme":"dark","--ui-root-bg":"#0f1115","--ui-text":"#eceff4","--ui-tabbar-bg":"#14171d","--ui-tabbar-border":"#232833","--ui-tab-bg":"#191d24","--ui-tab-text":"#6b7280","--ui-tab-active-bg":"#1f242d","--ui-tab-active-text":"#eceff4","--ui-tab-accent":"#a78bfa","--ui-connection-bg":"#14171d","--ui-connection-text":"#6b7280","--ui-tree-bg":"#191d24","--ui-tree-border":"#232833","--ui-term-col-bg":"#0f1115","--ui-fab-bg":"#1f242d","--ui-fab-border":"#2a3040","--ui-muted-surface":"#191d24","--ui-muted-border":"#2a3040","--ui-muted-text":"#aab2bf","--ui-panel-input-bg":"#14171d","--ui-panel-input-text":"#eceff4","--ui-panel-input-border":"#2a3040","--ui-drawer-tab-text":"#6b7280","--ui-drawer-tab-active":"#eceff4","--ui-history-item-text":"#d7dce4","--ui-history-meta":"#6b7280","--ui-success":"#4ade80","--ui-error":"#f87171"},termHostBg:"#14171d",keybar:{bg:"#14171d",border:"#232833",keyBg:"#191d24",keyBorder:"#2a3040",keyText:"#aab2bf",accent:"#a78bfa",accentText:"#0f1115",drag:"#4b4470"},xterm:{background:"#14171d",foreground:"#eceff4",cursor:"#a78bfa",selectionBackground:"#3b3654",black:"#191d24",red:"#f87171",green:"#4ade80",yellow:"#fbbf24",blue:"#60a5fa",magenta:"#c084fc",cyan:"#67e8f9",white:"#eceff4",brightBlack:"#6b7280",brightWhite:"#ffffff"}},{id:"mist",label:"雾白靛蓝",swatch:"#f7f8fb",preview:["#f7f8fb","#4258c4"],cssVars:{"--ui-color-scheme":"light","--ui-root-bg":"#f7f8fb","--ui-text":"#252d3d","--ui-tabbar-bg":"#e4e9f2","--ui-tabbar-border":"#dce3ef","--ui-tab-bg":"#e9edf5","--ui-tab-text":"#5b687f","--ui-tab-active-bg":"#f7f8fb","--ui-tab-active-text":"#252d3d","--ui-tab-accent":"#4258c4","--ui-connection-bg":"#e4e9f2","--ui-connection-text":"#5b687f","--ui-tree-bg":"#e9edf5","--ui-tree-border":"#dce3ef","--ui-term-col-bg":"#f7f8fb","--ui-fab-bg":"#ffffff","--ui-fab-border":"#dce3ef","--ui-muted-surface":"#e9edf5","--ui-muted-border":"#dce3ef","--ui-muted-text":"#5b687f","--ui-panel-input-bg":"#ffffff","--ui-panel-input-text":"#252d3d","--ui-panel-input-border":"#dce3ef","--ui-drawer-tab-text":"#5b687f","--ui-drawer-tab-active":"#252d3d","--ui-history-item-text":"#252d3d","--ui-history-meta":"#5b687f","--ui-success":"#247860","--ui-error":"#be3d50"},termHostBg:"#ffffff",keybar:{bg:"#e4e9f2",border:"#dce3ef",keyBg:"#ffffff",keyBorder:"#dce3ef",keyText:"#5b687f",accent:"#4258c4",accentText:"#ffffff",drag:"#8a9ac5"},xterm:{background:"#ffffff",foreground:"#252d3d",cursor:"#4258c4",selectionBackground:"#d6dcf4",black:"#252d3d",red:"#be3d50",green:"#247860",yellow:"#956018",blue:"#346faa",magenta:"#7456a6",cyan:"#277784",white:"#5b687f",brightBlack:"#5b687f",brightWhite:"#f7f8fb"}},{id:"glass",label:"毛玻璃",swatch:"#c3dbee",preview:["#c3dbee","#357b88"],cssVars:{"--ui-color-scheme":"light","--ui-root-bg":"#edf3f4","--ui-text":"#263e48","--ui-tabbar-bg":"#e0ebee","--ui-tabbar-border":"#d3e1e5","--ui-tab-bg":"#e5eef1","--ui-tab-text":"#58727c","--ui-tab-active-bg":"#edf3f4","--ui-tab-active-text":"#263e48","--ui-tab-accent":"#357b88","--ui-connection-bg":"#e0ebee","--ui-connection-text":"#58727c","--ui-tree-bg":"#e5eef1","--ui-tree-border":"#d3e1e5","--ui-term-col-bg":"#edf3f4","--ui-fab-bg":"#ffffff","--ui-fab-border":"#d3e1e5","--ui-muted-surface":"#e5eef1","--ui-muted-border":"#d3e1e5","--ui-muted-text":"#58727c","--ui-panel-input-bg":"#ffffff","--ui-panel-input-text":"#263e48","--ui-panel-input-border":"#d3e1e5","--ui-drawer-tab-text":"#58727c","--ui-drawer-tab-active":"#263e48","--ui-history-item-text":"#263e48","--ui-history-meta":"#58727c","--ui-success":"#247860","--ui-error":"#be3d50"},termHostBg:"#ffffff",keybar:{bg:"#e0ebee",border:"#d3e1e5",keyBg:"#ffffff",keyBorder:"#d3e1e5",keyText:"#58727c",accent:"#357b88",accentText:"#ffffff",drag:"#8a9ac5"},xterm:{background:"#ffffff",foreground:"#263e48",cursor:"#357b88",selectionBackground:"#d6dcf4",black:"#263e48",red:"#be3d50",green:"#247860",yellow:"#956018",blue:"#346faa",magenta:"#7456a6",cyan:"#277784",white:"#58727c",brightBlack:"#58727c",brightWhite:"#edf3f4"}},{id:"pine",label:"暖灰松绿",swatch:"#f6f7f3",preview:["#f6f7f3","#356c55"],cssVars:{"--ui-color-scheme":"light","--ui-root-bg":"#f6f7f3","--ui-text":"#2d382f","--ui-tabbar-bg":"#e2e7df","--ui-tabbar-border":"#d9e1d6","--ui-tab-bg":"#e8ece5","--ui-tab-text":"#5b6e61","--ui-tab-active-bg":"#f6f7f3","--ui-tab-active-text":"#2d382f","--ui-tab-accent":"#356c55","--ui-connection-bg":"#e2e7df","--ui-connection-text":"#5b6e61","--ui-tree-bg":"#e8ece5","--ui-tree-border":"#d9e1d6","--ui-term-col-bg":"#f6f7f3","--ui-fab-bg":"#ffffff","--ui-fab-border":"#d9e1d6","--ui-muted-surface":"#e8ece5","--ui-muted-border":"#d9e1d6","--ui-muted-text":"#5b6e61","--ui-panel-input-bg":"#ffffff","--ui-panel-input-text":"#2d382f","--ui-panel-input-border":"#d9e1d6","--ui-drawer-tab-text":"#5b6e61","--ui-drawer-tab-active":"#2d382f","--ui-history-item-text":"#2d382f","--ui-history-meta":"#5b6e61","--ui-success":"#357450","--ui-error":"#b6454d"},termHostBg:"#ffffff",keybar:{bg:"#e2e7df",border:"#d9e1d6",keyBg:"#ffffff",keyBorder:"#d9e1d6",keyText:"#5b6e61",accent:"#356c55",accentText:"#ffffff",drag:"#86a38b"},xterm:{background:"#ffffff",foreground:"#2d382f",cursor:"#356c55",selectionBackground:"#d4e1d9",black:"#2d382f",red:"#b6454d",green:"#357450",yellow:"#8c641e",blue:"#3d7189",magenta:"#805e88",cyan:"#317c74",white:"#5b6e61",brightBlack:"#5b6e61",brightWhite:"#f6f7f3"}},{id:"graphite",label:"石墨夜色",swatch:"#202630",preview:["#202630","#a4bad2"],cssVars:{"--ui-color-scheme":"dark","--ui-root-bg":"#202630","--ui-text":"#e4ebf4","--ui-tabbar-bg":"#161c25","--ui-tabbar-border":"#384859","--ui-tab-bg":"#161c25","--ui-tab-text":"#b0bfd3","--ui-tab-active-bg":"#202630","--ui-tab-active-text":"#e4ebf4","--ui-tab-accent":"color-mix(in srgb, #386a9a 40%, #ecf0f8)","--ui-connection-bg":"#161c25","--ui-connection-text":"#b0bfd3","--ui-tree-bg":"#161c25","--ui-tree-border":"#384859","--ui-term-col-bg":"#202630","--ui-fab-bg":"#293440","--ui-fab-border":"#384859","--ui-muted-surface":"#161c25","--ui-muted-border":"#384859","--ui-muted-text":"#b0bfd3","--ui-panel-input-bg":"#293440","--ui-panel-input-text":"#e4ebf4","--ui-panel-input-border":"#384859","--ui-drawer-tab-text":"#b0bfd3","--ui-drawer-tab-active":"#e4ebf4","--ui-history-item-text":"#e4ebf4","--ui-history-meta":"#b0bfd3","--ui-success":"#89d3af","--ui-error":"#f097a2"},termHostBg:"#202630",keybar:{bg:"#161c25",border:"#384859",keyBg:"#293440",keyBorder:"#384859",keyText:"#b0bfd3",accent:"#a4bad2",accentText:"#14212b",drag:"#61778c"},xterm:{background:"#202630",foreground:"#e4ebf4",cursor:"#a4bad2",selectionBackground:"#2a3e53",black:"#161c25",red:"#f097a2",green:"#89d3af",yellow:"#e5c58a",blue:"#9accf0",magenta:"#c4b3e1",cyan:"#91cfd6",white:"#e4ebf4",brightBlack:"#b0bfd3",brightWhite:"#ffffff"}}],eD="pearl",eU=Object.fromEntries(eF.map(e=>[e.id,e])),e$={dark:"noir",black:"noir",gray:"noir",blue:"noir",red:"noir",yellow:"noir",green:"noir",white:"pearl"};function eH(e){if(e&&e in eU)return eU[e];let t=e?e$[e]:void 0;return t?eU[t]:eU[eD]}function eq({themeId:e,onThemeChange:t}){let[r,a]=(0,d.useState)(!1),n=(0,d.useRef)(null),o=(0,d.useRef)(null),s=(0,d.useRef)(null),[l,c]=(0,d.useState)(null),[u,p]=(0,d.useState)({top:-1e3,left:0});return(0,i.jsxs)("div",{ref:n,className:"theme-picker",children:[i.jsx("button",{ref:o,type:"button",className:"file-drawer-toggle","aria-label":"换肤",title:"换肤","aria-expanded":r,"aria-haspopup":"dialog",onClick:()=>a(e=>!e),children:i.jsx(M,{size:17,"aria-hidden":"true"})}),r&&l&&(0,z.createPortal)((0,i.jsxs)("div",{ref:s,className:"theme-popover",role:"dialog","aria-label":"选择皮肤","data-toolbar-overlay":!0,style:{position:"fixed",...u,zIndex:210,width:Math.min(176,innerWidth-16),maxHeight:"calc(100dvh - 16px)",overflowY:"auto",boxSizing:"border-box",padding:8,borderRadius:10,border:"1px solid var(--ui-tabbar-border, #282b36)",background:"var(--ui-tab-active-bg, #262b38)",boxShadow:"0 10px 28px rgba(0,0,0,.45)"},children:[i.jsx("div",{style:{fontSize:10,color:"var(--ui-connection-text, #777b8c)",margin:"2px 4px 6px",letterSpacing:.5},children:"皮肤"}),i.jsx("div",{style:{display:"flex",flexDirection:"column",gap:2},children:eF.map(r=>{let n=r.id===e;return(0,i.jsxs)("button",{type:"button",className:"theme-popover-item","aria-label":r.label,"aria-pressed":n,onPointerDown:e=>e.stopPropagation(),onClick:()=>{t(r.id),a(!1)},style:{background:n?"color-mix(in srgb, var(--ui-tab-accent, #7aa2f7) 14%, transparent)":"transparent"},children:[i.jsx("span",{style:{width:18,height:18,borderRadius:5,flexShrink:0,background:`linear-gradient(135deg, ${r.preview[0]} 55%, ${r.preview[1]} 55%)`,boxShadow:"inset 0 0 0 1px rgba(128,128,160,.25)"}}),i.jsx("span",{style:{flex:1,textAlign:"left",fontSize:12,fontWeight:n?600:400,color:n?"var(--ui-tab-active-text, #edf0f7)":"var(--ui-tab-text, #8f93a4)"},children:r.label}),n&&i.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"var(--ui-tab-accent, #7aa2f7)",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:i.jsx("path",{d:"m5 12 4 4L19 6"})})]},r.id)})})]}),l)]})}let eV=m("PanelsTopLeft",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M9 21V9",key:"1oto5p"}]]);function eG({value:e,onChange:t}){let r="agent-rail"===e;return i.jsx("button",{type:"button",className:"file-drawer-toggle navigation-layout-toggle","aria-label":"切换布局","aria-pressed":r,title:r?"单层抬头 \xb7 切换到原布局":"原布局 \xb7 切换到单层抬头",onClick:()=>t("classic"===e?"agent-rail":"classic"),children:i.jsx(eV,{size:17,"aria-hidden":"true"})})}let eJ="agent-ui-prefs";function eX({groupId:e,title:t,onFrame:r,onLoad:a,view:n,discussionId:o}){let s=(0,d.useRef)(null),[l,u]=(0,d.useState)("loading"),[p,f]=(0,d.useState)(0),b=void 0===e;return(0,i.jsxs)("div",{"aria-busy":"loading"===l,className:"jsx-92e497a22f5803ef collaboration-pane",children:[i.jsx("iframe",{ref:e=>{s.current=e,r(e)},style:{visibility:"ready"===l?"visible":"hidden"},src:c("sessions"===n?"/app/?view=session-dashboard":b?"/app/?view=collaboration-dashboard":`/app/?view=collaboration&groupId=${encodeURIComponent(e)}${o?`&discussionId=${encodeURIComponent(o)}`:""}`),title:t,onLoad:a,onError:()=>u("error"),className:`jsx-92e497a22f5803ef webapp-frame collaboration-frame${"ready"===l?" is-ready":""}`},p),"loading"===l&&i.jsx(ef,{label:"AGENT COLLABORATION",title:"sessions"===n?"正在打开会话 Dashboard":b?"正在打开群聊列表":"正在进入群聊",caption:"sessions"===n?"正在核对运行会话与待决策事项":b?"正在加载已保存的群聊":"正在加载群成员与聊天记录",icon:i.jsx(y,{size:36,strokeWidth:1.5})}),"error"===l&&(0,i.jsxs)("div",{role:"alert",className:"jsx-92e497a22f5803ef collaboration-load-error",children:[i.jsx("strong",{className:"jsx-92e497a22f5803ef",children:"sessions"===n?"暂时无法打开会话 Dashboard":b?"暂时无法打开群聊列表":"暂时无法打开群聊"}),i.jsx("span",{className:"jsx-92e497a22f5803ef",children:"请检查连接后重试。"}),(0,i.jsxs)("button",{onClick:()=>{u("loading"),f(e=>e+1)},className:"jsx-92e497a22f5803ef",children:[i.jsx(g,{size:15}),"重新加载"]})]}),i.jsx(ep(),{id:"92e497a22f5803ef",children:".collaboration-pane.jsx-92e497a22f5803ef{position:relative;height:100%;background:var(--ui-term-col-bg,#101014)}.collaboration-frame.is-ready.jsx-92e497a22f5803ef{-webkit-animation:collaboration-appear 220ms ease-out both;-moz-animation:collaboration-appear 220ms ease-out both;-o-animation:collaboration-appear 220ms ease-out both;animation:collaboration-appear 220ms ease-out both}.collaboration-load-error.jsx-92e497a22f5803ef{position:absolute;inset:0;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-moz-box-pack:center;-ms-flex-pack:center;justify-content:center;gap:12px;color:var(--ui-text,#e5e7eb);background:var(--ui-term-col-bg,#101014);padding:20px;text-align:center}.collaboration-load-error.jsx-92e497a22f5803ef span.jsx-92e497a22f5803ef{font-size:13px;color:var(--ui-text-muted,#9399aa)}.collaboration-load-error.jsx-92e497a22f5803ef button.jsx-92e497a22f5803ef{display:-webkit-inline-box;display:-webkit-inline-flex;display:-moz-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;margin-top:6px;min-height:44px;padding:10px 16px;border:1px solid var(--ui-muted-border,#ffffff24);-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px;background:transparent;color:inherit;font:inherit;cursor:pointer}.collaboration-load-error.jsx-92e497a22f5803ef button.jsx-92e497a22f5803ef:focus-visible{outline:2px solid currentColor;outline-offset:3px}@-webkit-keyframes collaboration-appear{from{opacity:0}to{opacity:1}}@-moz-keyframes collaboration-appear{from{opacity:0}to{opacity:1}}@-o-keyframes collaboration-appear{from{opacity:0}to{opacity:1}}@keyframes collaboration-appear{from{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.collaboration-frame.is-ready.jsx-92e497a22f5803ef{-webkit-animation:none;-moz-animation:none;-o-animation:none;animation:none}}"})]})}["customer-agent","codex","claude-code","opencode","deepseek-harness","qoder","zcode","workbuddy"].filter(e=>"customer-agent"!==e);let eK={id:"remote-desktop",title:"远程桌面",kind:"remote-desktop"};function eQ(e){let t=e.find(e=>"remote-desktop"===e.kind);return t?e.map(e=>e===t?{...eK}:e):[...e,{...eK}]}let eY={id:"collaboration-dashboard",title:"群聊列表",kind:"collaboration-dashboard"};function eZ(e){return e.some(e=>e.id===eY.id)?e:[...e,{...eY}]}let e0={id:"session-dashboard",title:"Dashboard",kind:"session-dashboard"};function e1(e){return e.some(e=>e.id===e0.id)?e:[...e,{...e0}]}let e2=o()(async()=>{},{loadableGenerated:{modules:["app/web/page.tsx -> ./TerminalPane"]},ssr:!1}),e4=o()(async()=>{},{loadableGenerated:{modules:["app/web/page.tsx -> ./FileTree"]},ssr:!1}),e8=o()(async()=>{},{loadableGenerated:{modules:["app/web/page.tsx -> ./FilePreview"]},ssr:!1}),e6=o()(async()=>{},{loadableGenerated:{modules:["app/web/page.tsx -> ./AiHubPane"]},ssr:!1}),e3=o()(async()=>{},{loadableGenerated:{modules:["app/web/page.tsx -> ./FlowStudioPane"]},ssr:!1,loading:()=>i.jsx(ef,{})});function e5(){return i.jsx(eT,{children:(e,t)=>i.jsx(tr,{auth:e,onWorkspaceReady:t})})}let e7={id:"webapp-agent",title:"智能助手",kind:"webapp"},e9={id:"ai-hub",title:"AI Hub",kind:"aihub"},te={id:"flow-studio",title:"Flow Studio",kind:"flowstudio"};function tt(){return"undefined"==typeof document?eD:eH(document.getElementById("web-theme-root")?.dataset.webTheme).id}function tr({auth:e,onWorkspaceReady:t}){let[r,a]=(0,d.useState)(null),[n,o]=(0,d.useState)(0),u=(0,d.useCallback)(e=>{if(e?.openMode==="new-tab"){window.open(e.url,"_blank","noopener,noreferrer");return}a(e)},[]),p=(0,d.useCallback)(e=>a(e?.openMode==="current"?e:null),[]),f=(0,d.useRef)(null),b=(0,d.useRef)(null),m=(0,d.useRef)(null),z=(0,d.useRef)(null);(0,d.useRef)(null),(0,d.useRef)(!1);let[N,R]=(0,d.useState)({}),T=(0,d.useRef)(new Map),[M,P]=(0,d.useState)(0),[I,A]=(0,d.useState)(!1),[L,_]=(0,d.useState)(!1),W=(0,d.useRef)(()=>{}),{state:B,epoch:O,rpc:F,onEvent:D,onTerminalData:U,onTerminalReset:$,sendTerminalInput:H}=function(e,t,r){let[a,i]=(0,d.useState)({connected:!1,error:null}),[n,o]=(0,d.useState)(0),s=(0,d.useRef)(null),c=(0,d.useRef)(0),u=(0,d.useRef)(new Map),p=(0,d.useRef)([]),f=(0,d.useRef)(0),b=(0,d.useRef)(new Map),m=(0,d.useRef)(new Map),h=(0,d.useRef)(new Map),x=(0,d.useRef)(1e3),g=(0,d.useRef)(!1),w=(0,d.useRef)(null),y=(0,d.useRef)(e),v=(0,d.useRef)(t),k=(0,d.useRef)(r);y.current=e,v.current=t,k.current=r;let j=(0,d.useCallback)((e,t)=>{let r=b.current.get(e);return r||b.current.set(e,r=new Set),r.add(t),()=>r.delete(t)},[]),S=(0,d.useCallback)((e,t)=>{let r=m.current.get(e);return r||m.current.set(e,r=new Set),r.add(t),()=>r.delete(t)},[]),C=(0,d.useCallback)((e,t)=>{let r=h.current.get(e);return r||h.current.set(e,r=new Set),r.add(t),()=>r.delete(t)},[]),z=(0,d.useCallback)((e,t)=>{let r=s.current;if(!r||r.readyState!==WebSocket.OPEN)return!1;let a=new TextEncoder().encode(t),i=new Uint8Array(6+a.byteLength),n=new DataView(i.buffer);return i[0]=1,i[1]=1,n.setUint32(2,e),i.set(a,6),r.send(i),!0},[]),N=(0,d.useCallback)(e=>{let t=s.current;t?.readyState===WebSocket.OPEN?t.send(e):p.current.push(e)},[]),R=(0,d.useCallback)((e,t={},r=15e3)=>new Promise((a,i)=>{if(e.startsWith("browser:")&&s.current?.readyState!==WebSocket.OPEN){i(Object.assign(Error("远程连接已断开,请等待重新连接"),{code:"EOFFLINE"}));return}let n=++f.current,o=setTimeout(()=>{u.current.delete(n),i(Error(`${e} timeout`))},r);u.current.set(n,{resolve:a,reject:i,timer:o,type:e}),N(JSON.stringify({type:e,_req:n,...t}))}),[N]),T=(0,d.useCallback)(async()=>{let e,t;g.current=!1;let r=++c.current;w.current&&(clearInterval(w.current),w.current=null);let a=s.current;if(a){a.onopen=a.onmessage=a.onerror=a.onclose=null;try{a.close()}catch{}}try{e=await v.current()}catch{r===c.current&&k.current();return}if(r===c.current&&!g.current){try{t=new WebSocket(`${function(){let e=new URL("/ws",l());return e.protocol="https:"===e.protocol?"wss:":"ws:",e.href}()}?nonce=${encodeURIComponent(e)}`)}catch(e){i({connected:!1,error:String(e)});return}t.binaryType="arraybuffer",s.current=t,t.onopen=()=>{if(r!==c.current||s.current!==t)return;for(let e of(x.current=1e3,i({connected:!0,error:null}),o(e=>e+1),p.current.splice(0)))t.send(e);let e=Date.now();w.current=setInterval(()=>{if(s.current!==t||t.readyState!==WebSocket.OPEN){clearInterval(w.current),w.current=null;return}if(Date.now()-e>25e3){try{t.close()}catch{}return}try{t.send(JSON.stringify({type:"ping"}))}catch{}},1e4);let a=()=>{e=Date.now()};t.addEventListener("message",a),t.addEventListener("close",()=>t.removeEventListener("message",a),{once:!0})},t.onmessage=e=>{let a;if(r===c.current&&s.current===t){if("string"!=typeof e.data){let t=new Uint8Array(e.data);if(t.byteLength>=6&&1===t[0]&&(2===t[1]||6===t[1])){let e=new DataView(t.buffer,t.byteOffset,t.byteLength).getUint32(2);m.current.get(e)?.forEach(e=>e(t.subarray(6),6===t[1]))}else if(t.byteLength>=6&&1===t[0]&&3===t[1]){let e=new DataView(t.buffer,t.byteOffset,t.byteLength).getUint32(2);h.current.get(e)?.forEach(e=>e())}else y.current(t);return}try{a=JSON.parse(e.data)}catch{return}if("error"===a.type&&null!=a.id){let e=u.current.get(a.id);if(e){u.current.delete(a.id),clearTimeout(e.timer);let t=Object.assign(Error(a.error||"gateway error"),{code:a.code});e.reject(t)}return}if(null!=a.id&&"string"==typeof a.type&&a.type.endsWith(":result")){let e=u.current.get(a.id);if(e?.type==="fs:preview-open"&&"string"==typeof a.url){var i;a.url=i=a.url}e&&(u.current.delete(a.id),clearTimeout(e.timer),e.resolve(a));return}b.current.get(a.type)?.forEach(e=>e(a))}},t.onclose=e=>{if(r!==c.current||s.current!==t)return;for(let[e,t]of(w.current&&(clearInterval(w.current),w.current=null),s.current=null,u.current))t.type.startsWith("browser:")&&(clearTimeout(t.timer),u.current.delete(e),t.reject(Object.assign(Error("远程连接已断开,请重新接管"),{code:"EOFFLINE"})));if(i({connected:!1,error:null}),4001===e.code||4003===e.code){k.current();return}if(g.current)return;let a=x.current;x.current=Math.min(2*a,8e3),setTimeout(()=>{g.current||r!==c.current||T()},a)},t.onerror=()=>{}}},[]);return{state:a,epoch:n,rpc:R,onEvent:j,onTerminalData:S,onTerminalReset:C,sendTerminalInput:z,reconnect:T}}((0,d.useCallback)(e=>{let t=function(e){let t=e instanceof Uint8Array?e:new Uint8Array(e.buffer,e.byteOffset,e.byteLength);if(t.byteLength<10||1!==t[0]||t[1]!==eN.watcherFrame&&t[1]!==eN.producerFrame)return null;let r=new DataView(t.buffer,t.byteOffset,t.byteLength);return{type:t[1],channelId:r.getUint32(2,!1),sequence:r.getUint32(6,!1),payload:t.subarray(10)}}(e);if(t&&t.type===eN.watcherFrame)for(let e of(W.current(t.channelId,t.sequence),[f,b])){if(!e.current?.contentWindow)continue;let r=t.payload.slice().buffer;e.current.contentWindow.postMessage({type:"agent-web-shell:browser-frame:v1",channelId:t.channelId,sequence:t.sequence,data:r},window.location.origin,[r])}},[]),e.getWsNonce,e.refresh),q=(0,d.useMemo)(()=>({request:(e,t,r)=>F(e,t,r),subscribe:(e,t)=>D("fs:event",t)}),[D,F]);W.current=(e,t)=>{F("browser:frame-ack",{channelId:e,sequence:t}).catch(()=>void 0)};let[V,G]=(0,d.useState)([{...e7}]);(0,d.useRef)(V).current=V;let[J,X]=(0,d.useState)(e7.id),[K,Q]=(0,d.useState)({});(0,d.useRef)(!1);let[Z,et]=(0,d.useState)(!1),[er,ea]=(0,d.useState)(0);e.user?.id,(0,d.useRef)(null);let ei=(0,d.useRef)(new Map),en=(0,d.useRef)(new Map),eo=(0,d.useCallback)((e,t)=>{ei.current.set(e,t);let r=window.setTimeout(()=>{if(ei.current.get(e)!==t)return;let r=en.current.get(e);r&&(en.current.delete(e),t(r,!0))},180);return()=>{window.clearTimeout(r),ei.current.get(e)===t&&ei.current.delete(e)}},[]),es=(0,d.useCallback)(e=>{if(!J||V.find(e=>e.id===J)?.kind)return;let t=ei.current.get(J);t?t(e):F("term:input",{id:J,data:`\x15${e}`}).catch(()=>{}),eg(!1)},[J,F,V]),[ec,ed]=(0,d.useState)(!1),[eu,ep]=(0,d.useState)({}),[em,eh]=(0,d.useState)(null),[ex,eg]=(0,d.useState)(!1),[ey,eR]=(0,d.useState)("files"),[eT,eE]=(0,d.useState)(null),[eM,eP]=(0,d.useState)(!0),[eI,eA]=(0,d.useState)(null),[eL,e_]=(0,d.useState)(!1),[eW,eB]=(0,d.useState)([]),[eF,eD]=(0,d.useState)(ez.map((e,t)=>({id:`default-${t+1}`,command:e}))),[eU,e$]=(0,d.useState)(tt),[eV,e5]=(0,d.useState)("agent-rail"),[tr,ti]=(0,d.useState)(!1),tn=(0,d.useCallback)(e=>{e5(e);try{!function(e,t){try{let r;try{r=JSON.parse(e.getItem(eJ)??"null")}catch{r=null}let a=r&&"object"==typeof r&&!Array.isArray(r)?r:{},i=a.state&&"object"==typeof a.state&&!Array.isArray(a.state)?a.state:{};e.setItem(eJ,JSON.stringify({...a,version:a.version??4,state:{...i,navigationLayout:t}}))}catch{}}(window.localStorage,e)}catch{}},[]),[to,ts]=(0,d.useState)(!1),tl=function(e){let[t,r]=(0,d.useState)(()=>({userId:"",revision:0,visibleTools:[...ev],savedPages:null,updatedAt:""})),a=(0,d.useRef)(t),[i,n]=(0,d.useState)(!1),[o,s]=(0,d.useState)(!1),l=(0,d.useRef)(!1),c=(0,d.useRef)(!0),u=(0,d.useRef)(0),[p,f]=(0,d.useState)(""),[b,m]=(0,d.useState)(""),h=(0,d.useCallback)(e=>{a.current=e,c.current&&r(e)},[]),x=(0,d.useCallback)(async()=>{if(l.current)return;let t=++u.current;f(""),m("");try{let r=await eC(e);if(null===r.savedPages){let t=Y().find(e=>e.origin===location.origin)?.pages??[];try{r=await eC(e,{expectedRevision:r.revision,initializePages:t})}catch(t){if(!(t instanceof eS)||409!==t.status)throw t;if(r=await eC(e),null===r.savedPages)throw Error("电脑配置已更新,请重试旧页面导入。")}}if(!c.current||t!==u.current)return;h(r),n(!0);try{ee(Y().map(e=>{if(e.origin!==location.origin)return e;let{pages:t,...r}=e;return{...r,pagesMigrated:!0}}))}catch{}}catch(e){c.current&&t===u.current&&f(e instanceof Error?e.message:"无法读取电脑配置。")}},[h,e]),g=(0,d.useCallback)(async t=>{if(!i||l.current)throw Error("配置尚未就绪,请稍后重试。");l.current=!0,u.current++,s(!0),f(""),m("");let r=a.current;t.visibleTools&&h({...r,visibleTools:t.visibleTools});try{h(await eC(e,{...t,expectedRevision:r.revision})),c.current&&m("已保存到当前电脑")}catch(a){if(h(r),a instanceof eS&&409===a.status)try{h(await eC(e))}catch{}let t=a instanceof Error?a.message:"电脑配置保存失败,请重试。";throw c.current&&f(t),Error(t)}finally{l.current=!1,c.current&&s(!1)}},[h,e,i]);return{settings:t,loaded:i,saving:o,error:p,notice:b,reload:x,setVisibleTools:e=>g({visibleTools:ek(e)}),setSavedPages:e=>g({savedPages:ej(e)})}}(e.csrfToken),[tc,td]=(0,d.useState)(!1),tu=eH(eU),tp=(0,d.useRef)(null),[tf,tb]=(0,d.useState)(0),[tm,th]=(0,d.useState)(!1),tx=(0,d.useRef)(null),tg=(0,d.useRef)(null),tw=(0,d.useCallback)(e=>{for(let t of[f.current,b.current,m.current,z.current,...T.current.values()])t?.contentWindow?.postMessage({type:"agent-web-shell:skin:v1",skin:e},window.location.origin)},[]),ty=(0,d.useCallback)(()=>{if(tw(eU),tr)for(let e of[f.current,b.current,m.current,z.current,...T.current.values()])e?.contentWindow?.postMessage({type:"agent-web-shell:navigation-layout:v1",navigationLayout:eV},window.location.origin)},[eU,eV,tr,tw]);(0,d.useRef)(0);let tv=J?K[J]??null:null;(0,d.useCallback)(t=>{fetch("/api/web-console/preferences",{method:"PATCH",credentials:"same-origin",headers:{"content-type":"application/json","x-csrf-token":e.csrfToken},body:JSON.stringify(t)}).catch(()=>{})},[e.csrfToken]),(0,d.useCallback)(t=>{e.csrfToken&&fetch("/api/web-console/device-state",{method:"PUT",credentials:"same-origin",keepalive:!0,headers:{"content-type":"application/json","x-csrf-token":e.csrfToken},body:JSON.stringify(t)}).catch(()=>{})},[e.csrfToken]);let tk=(0,d.useCallback)(e=>{eh(e),eg(!1)},[]),tj=(0,d.useCallback)(()=>{if(V.length>=8)return;let e=`t-web-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`;G(t=>t.length>=8?t:[...t,{id:e,title:`Terminal ${t.length+1}`}]),X(e)},[V.length]),tS=(0,d.useCallback)(e=>{let t=V.find(e=>e.id===J);if(t?.kind&&"webapp"!==t.kind)return;if(t&&!t.kind){let r=ei.current.get(t.id);r?r(e,!0):en.current.set(t.id,e),eg(!1);return}let r=V.length>=8?V.find(e=>!e.kind):null,a=r?.id??`t-web-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`;r?en.current.set(a,e):G(t=>[...t,{id:a,title:`Terminal ${t.length+1}`,initialCommand:e}]),X(a),eg(!1)},[J,V]),tC=e=>{if(e===e7.id)return;let t=V.find(t=>t.id===e)?.kind;"remote-desktop"===t&&(P(0),_(!1),F("browser:unwatch").catch(()=>{})),(t||window.confirm("关闭页签会终止该终端进程,确认关闭?"))&&(G(t=>{let r=t.filter(t=>t.id!==e);return J===e&&X(r[0]?.id??null),r}),t||F("term:kill",{id:e}).catch(()=>{}))},tz=(0,d.useCallback)(()=>{G(e=>{let t=e.find(e=>"aihub"===e.kind);return t?(X(t.id),e):(X(e9.id),[...e,{...e9}])})},[]),tN=(0,d.useCallback)(()=>{G(e=>{let t=e.find(e=>"flowstudio"===e.kind);return t?(X(t.id),e):(X(te.id),[...e,{...te}])})},[]),tR=(0,d.useCallback)(()=>{G(eQ),X(eK.id)},[]),tT=(0,d.useCallback)(e=>{if(!J||V.length<2)return;let t=(V.findIndex(e=>e.id===J)+e+V.length)%V.length;X(V[t].id)},[J,V]),tE=Math.max(0,V.findIndex(e=>e.id===J)),tM=V[tE]?.kind==="webapp"?tu.cssVars["--ui-term-col-bg"]:tu.termHostBg,tP={...ta.root,...tu.cssVars,"--ui-active-content-bg":tM,"--ui-terminal-bg":tu.termHostBg,"--ui-primary-text":tu.keybar.accentText,background:"var(--ui-root-bg)",color:"var(--ui-text)"},tI=(0,d.useCallback)(()=>{tp.current=null,tb(0),th(!1)},[]),tA=(0,d.useCallback)(e=>{Math.abs(e)>=64&&V.length>1&&tT(e<0?1:-1),tI()},[V.length,tT,tI]),tL=e=>e instanceof Element&&!!e.closest(".terminal-screen");return(0,d.useCallback)((e="smooth")=>{let t=tg.current;if(!t||!J)return;let r=t.querySelector(`[data-terminal-id="${J}"]`);if(!r)return;if(r===t.querySelector("[data-terminal-id]")){t&&(t.scrollLeft=0);return}let a=t.querySelector(".terminal-connection"),i=a?.offsetWidth??0,n=r.offsetLeft,o=n+r.offsetWidth,s=t.scrollLeft,l=s+t.clientWidth-i;n<s+8?t.scrollTo({left:Math.max(0,n-8),behavior:e}):o>l-8&&t.scrollTo({left:o-t.clientWidth+i+8,behavior:e})},[J]),(0,i.jsxs)("div",{className:`web-root ${I&&J===eK.id&&!r?"is-remote-fullscreen":""}`,style:tP,children:[i.jsx("style",{dangerouslySetInnerHTML:{__html:s}}),(0,i.jsxs)("div",{className:"terminal-tabs",children:[r&&(0,i.jsxs)("div",{className:"computer-page-heading",children:[i.jsx("button",{type:"button",className:"file-drawer-toggle","aria-label":"返回电脑会话",title:"返回电脑会话",onClick:()=>a(null),children:i.jsx(h,{size:18})}),i.jsx("span",{children:r.name}),i.jsx("a",{className:"file-drawer-toggle",href:r.url,target:"_blank",rel:"noopener noreferrer","aria-label":"在新页面打开当前页面",title:"打开原页面",children:i.jsx(x,{size:16})})]}),i.jsx("div",{className:"terminal-tab-list",ref:tg,hidden:!!r,children:V.map(e=>(0,i.jsxs)("div",{"data-terminal-id":e.id,draggable:!0,className:`terminal-tab ${e.id===J?"active":""}`,onDragStart:()=>{tx.current=e.id},onDragOver:e=>e.preventDefault(),onDrop:t=>{t.preventDefault();let r=tx.current;tx.current=null,r&&r!==e.id&&G(t=>{let a=t.findIndex(e=>e.id===r),i=t.findIndex(t=>t.id===e.id);if(a<0||i<0)return t;let n=[...t],[o]=n.splice(a,1);return n.splice(i,0,o),F("term:reorder",{ids:n.filter(e=>!e.kind).map(e=>e.id)}).catch(()=>{}),n})},onClick:()=>X(e.id),onDoubleClick:()=>{if(e.kind)return;let t=window.prompt("页签名称",e.title)?.trim();t&&F("term:rename",{id:e.id,title:t}).then(()=>G(r=>r.map(r=>r.id===e.id?{...r,title:t}:r))).catch(()=>{})},children:[i.jsx("span",{children:e.title}),"webapp"!==e.kind&&i.jsx("button",{tabIndex:-1,onClick:t=>{t.stopPropagation(),tC(e.id)},children:"\xd7"})]},e.id))}),i.jsx("button",{className:"terminal-add","aria-label":"新建终端页签",hidden:!!r,disabled:V.length>=8,onClick:tj,children:"+"}),i.jsx("div",{className:"terminal-connection",children:i.jsx(ew,{glass:"glass"===eU,compact:"agent-rail"===eV,avatar:i.jsx(el,{username:e.user?.username??"?",connected:B.connected,accent:tu.keybar.accent,accentText:tu.keybar.accentText,selectedPageId:r?.id,onSelectPage:u,onUpdatePage:p,configuration:tl,csrfToken:e.csrfToken}),items:[{id:"refresh",content:i.jsx("button",{type:"button",className:"file-drawer-toggle","aria-label":"刷新页面",title:"刷新页面",onClick:()=>r?o(e=>e+1):window.location.reload(),children:i.jsx(g,{size:17,"aria-hidden":"true"})})},{id:"dashboard",content:i.jsx("button",{type:"button",className:"file-drawer-toggle","aria-label":"打开会话 Dashboard",title:"Dashboard \xb7 会话总览",onClick:()=>{a(null),G(e1),X(e0.id)},children:i.jsx(w,{size:17,"aria-hidden":"true"})})},{id:"collaboration",content:i.jsx("button",{type:"button",className:"file-drawer-toggle","aria-label":"打开群聊列表",title:"群聊列表",onClick:()=>{a(null),G(eZ),X(eY.id)},children:i.jsx(y,{size:17,"aria-hidden":"true"})})},{id:"install",content:i.jsx(E,{})},{id:"remote",content:i.jsx("button",{type:"button",className:"file-drawer-toggle","aria-label":"打开远程桌面",title:"远程桌面 \xb7 浏览器直播",onClick:()=>{a(null),tR()},children:i.jsx(v,{size:17,"aria-hidden":"true"})})},{id:"ai-hub",content:i.jsx("button",{type:"button",className:"file-drawer-toggle","aria-label":"打开 AI Hub",title:"AI Hub \xb7 多模型对比",onClick:()=>{a(null),tz()},children:i.jsx(k,{size:17,"aria-hidden":"true"})})},{id:"flow",content:i.jsx("button",{type:"button",className:"file-drawer-toggle","aria-label":"打开数字人",title:"数字人 \xb7 Flow Studio",onClick:()=>{a(null),tN()},children:i.jsx(j,{size:17,"aria-hidden":"true"})})},{id:"theme",content:(0,i.jsxs)("div",{className:"web-appearance-controls",children:[i.jsx(eq,{themeId:eU,onThemeChange:e$}),i.jsx(eG,{value:eV,onChange:tn})]}),compactItems:[{id:"theme",content:i.jsx(eq,{themeId:eU,onThemeChange:e$})},{id:"navigation-layout",content:i.jsx(eG,{value:eV,onChange:tn})}]},{id:"files",content:i.jsx("button",{type:"button",className:"file-drawer-toggle","aria-label":ex?"关闭我的文件":"打开我的文件",title:"我的文件","aria-expanded":ex,onClick:()=>{a(null),eg(e=>!e)},children:i.jsx(S,{size:17,"aria-hidden":"true"})})}].filter(e=>tl.settings.visibleTools.some(t=>t===e.id)).sort((e,t)=>tl.settings.visibleTools.findIndex(t=>t===e.id)-tl.settings.visibleTools.findIndex(e=>e===t.id))})})]}),(0,i.jsxs)("main",{className:`workspace ${ex?"show-tree":""} ${em?"has-preview":""}`,hidden:!!r,style:ta.workspace,children:[i.jsx("section",{className:"term-col",style:ta.termCol,onPointerDownCapture:e=>{"touch"===e.pointerType&&tL(e.target)&&(tI(),tp.current={x:e.clientX,y:e.clientY,axis:"pending",pointerId:e.pointerId})},onPointerMoveCapture:e=>{let t=tp.current;if(!t||e.pointerId!==t.pointerId||"touch"!==e.pointerType)return;let r=e.clientX-t.x,a=e.clientY-t.y;if("pending"===t.axis){if(8>=Math.max(Math.abs(r),Math.abs(a)))return;if(Math.abs(a)>=1.2*Math.abs(r)){tp.current=null;return}t.axis="horizontal",th(!0);let e=r=>{window.removeEventListener("pointerup",e),window.removeEventListener("pointercancel",e),tp.current===t&&tI()};window.addEventListener("pointerup",e),window.addEventListener("pointercancel",e)}"horizontal"===t.axis&&(e.preventDefault(),tb(r))},onPointerUpCapture:e=>{let t=tp.current;if(!t||e.pointerId!==t.pointerId)return;let r=e.clientX-t.x;"horizontal"===t.axis&&Math.abs(r)>=64?tA(r):tI()},onPointerCancelCapture:tI,children:i.jsx("div",{className:"terminal-track",style:{transform:`translate3d(calc(${-(100*tE)}% + ${tf}px),0,0)`,transition:tm?"none":"transform 260ms cubic-bezier(.22,.8,.32,1)"},children:V.map(e=>i.jsx("div",{className:"terminal-slide",style:{position:"relative"},children:"webapp"===e.kind?i.jsx("iframe",{ref:f,className:"webapp-frame",src:c("/app/"),title:e.title,onLoad:ty}):"session-dashboard"===e.kind?i.jsx(eX,{view:"sessions",title:"会话 Dashboard",onFrame:e=>{z.current=e},onLoad:ty}):"collaboration-dashboard"===e.kind?i.jsx(eX,{title:"群聊列表",onFrame:e=>{m.current=e},onLoad:ty}):"collaboration"===e.kind?i.jsx(eX,{groupId:e.groupId||"",discussionId:e.discussionId,title:e.title,onFrame:t=>{t?T.current.set(e.id,t):T.current.delete(e.id)},onLoad:ty},`${e.id}-${e.discussionId??""}-${N[e.groupId||""]||0}`):"remote-desktop"===e.kind?(0,i.jsxs)("div",{style:{height:"100%",background:"var(--ui-term-col-bg, #101014)"},"aria-busy":!L,children:[i.jsx("iframe",{ref:b,className:"webapp-frame",style:{visibility:L?"visible":"hidden"},src:c("/app/?view=remote-desktop"),title:"远程桌面",onLoad:ty}),!L&&i.jsx(ef,{label:"REMOTE DESKTOP",title:"正在打开远程桌面",caption:"正在准备桌面与连接",icon:i.jsx(v,{size:36,strokeWidth:1.5})})]}):"aihub"===e.kind?i.jsx(e6,{visible:e.id===J,rpc:F}):"flowstudio"===e.kind?i.jsx(e3,{visible:e.id===J}):i.jsx(e2,{terminalId:e.id,title:e.title,initialCommand:e.initialCommand,visible:e.id===J,state:B,rpc:F,onEvent:D,onTerminalData:U,onTerminalReset:$,sendTerminalInput:H,keyOrder:eW,keybarHidden:eL,onKeyOrderChange:eB,onKeybarHiddenChange:e_,terminalTheme:tu,initialScrollLine:eu[e.id]??null,onScrollLineChange:t=>ep(r=>r[e.id]===t?r:{...r,[e.id]:t}),onRegisterFill:t=>eo(e.id,t),onCwdChange:t=>t&&Q(r=>({...r,[e.id]:t}))})},e.id))})}),ex&&i.jsx("div",{className:"drawer-mask",onClick:()=>eg(!1)}),(0,i.jsxs)("aside",{className:`tree-col ${ex?"tree-col-open":""}`,style:ta.treeCol,children:[(0,i.jsxs)("div",{className:"tree-head",style:ta.treeHead,children:[i.jsx("button",{className:"files"===ey?"drawer-tab-active":"",onClick:()=>eR("files"),children:"文件"}),i.jsx("button",{className:"history"===ey?"drawer-tab-active":"",onClick:()=>eR("history"),children:"历史"}),i.jsx("span",{className:"tree-cwd",style:ta.treeCwd,children:tv??""}),i.jsx("button",{style:{...ta.iconBtn,marginLeft:"auto",flexShrink:0},onClick:()=>eg(!1),"aria-label":"close drawer",children:i.jsx(C,{size:15,"aria-hidden":"true"})})]}),"files"===ey?i.jsx(e4,{ready:O>0,followCwd:!0,cwd:tv,gateway:q,onOpenFile:tk,selectedPath:em,initialRoot:eT,initialFollow:eM,revealRequest:eI,onTreeStateChange:(e,t)=>{eE(e),eP(t)}}):i.jsx(eO,{csrfToken:e.csrfToken,terminalId:V.find(e=>e.id===J)?.kind==="webapp"?null:J,pinnedCommands:eF,onPinnedCommandsChange:eD,onFill:es,onExecute:tS}),(0,i.jsxs)("div",{className:"tree-foot",style:ta.treeFoot,children:[i.jsx("span",{style:ta.treeFootDot}),i.jsx("span",{children:"实时同步"})]})]}),em&&i.jsx("section",{className:"preview-col",style:ta.previewCol,children:i.jsx(e8,{path:em,gateway:q,onClose:()=>eh(null)})})]}),r&&i.jsx(eb,{page:r,reloadKey:n},r.id)]})}let ta={root:{height:"100dvh",display:"flex",flexDirection:"column",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", sans-serif',overflow:"hidden"},iconBtn:{minWidth:28,height:28,borderRadius:7,border:"1px solid var(--ui-tabbar-border, #303442)",background:"var(--ui-tab-bg, #202029)",color:"var(--ui-tab-text, #aaaab8)",fontSize:13},workspace:{flex:1,minHeight:0,display:"grid",position:"relative"},treeCol:{background:"var(--ui-tree-bg, #121218)",minHeight:0,flexDirection:"column"},treeHead:{display:"flex",alignItems:"center",gap:8,padding:"10px 12px 4px",fontSize:11,textTransform:"uppercase",letterSpacing:1,color:"#778",flexShrink:0},treeCwd:{fontSize:10,color:"#556",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:150,textTransform:"none",letterSpacing:0},treeFoot:{display:"flex",alignItems:"center",gap:7,minHeight:31,padding:"6px 11px calc(env(safe-area-inset-bottom) + 6px)",borderTop:"1px solid var(--ui-tabbar-border, #282832)",boxShadow:"0 -5px 16px rgba(0,0,0,.22)",background:"var(--ui-tab-bg, #15151c)",color:"var(--ui-connection-text, #777789)",fontSize:10.5,flexShrink:0},treeFootDot:{width:6,height:6,borderRadius:99,background:"var(--ui-success, #9ece6a)",boxShadow:"0 0 0 2px color-mix(in srgb, var(--ui-success, #9ece6a) 12%, transparent)",flexShrink:0},termCol:{minWidth:0,minHeight:0,display:"flex",flexDirection:"column",background:"var(--ui-term-col-bg, #101014)",gridColumn:1,overflow:"hidden"},previewCol:{minWidth:0,minHeight:0}}},4972:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>s,metadata:()=>i,viewport:()=>o});var a=r(3477);let i={title:"AgentRoam",manifest:"/manifest.webmanifest",appleWebApp:{capable:!0,title:"AgentRoam",statusBarStyle:"black-translucent"},icons:{icon:"/pwa/icon-192.png",apple:"/pwa/icon-192.png"},description:"General-purpose AI agent API server"},n="#070a0b",o={themeColor:n,colorScheme:"dark"};function s({children:e}){return a.jsx("html",{lang:"zh-CN",style:{background:n,colorScheme:"dark"},children:(0,a.jsxs)("body",{style:{margin:0,minHeight:"100dvh",background:n},children:[e,a.jsx("script",{src:"/pwa/install.js",defer:!0})]})})}},489:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>a});let a=(0,r(8979).createProxy)(String.raw`/Users/caoqu/.codex/worktrees/agentroam-npm-preview68-20261028/packages/server/app/web/error.tsx#default`)},9257:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>u,dynamic:()=>l,generateViewport:()=>d});var a=r(3477),i=r(2110);let n=Object.fromEntries([{id:"pearl",label:"珍珠白",swatch:"#f5f6fa",preview:["#f5f6fa","#4f6ef7"],cssVars:{"--ui-color-scheme":"light","--ui-root-bg":"#f5f6fa","--ui-text":"#111827","--ui-tabbar-bg":"#eef0f6","--ui-tabbar-border":"#dfe3ee","--ui-tab-bg":"#e6e9f4","--ui-tab-text":"#5b6472","--ui-tab-active-bg":"#ffffff","--ui-tab-active-text":"#111827","--ui-tab-accent":"#4f6ef7","--ui-connection-bg":"#eef0f6","--ui-connection-text":"#9ca3af","--ui-tree-bg":"#fbfcfe","--ui-tree-border":"#e5e8f0","--ui-term-col-bg":"#f5f6fa","--ui-fab-bg":"#ffffff","--ui-fab-border":"#d8dcea","--ui-muted-surface":"#eef0f6","--ui-muted-border":"#d8dcea","--ui-muted-text":"#6b7280","--ui-panel-input-bg":"#ffffff","--ui-panel-input-text":"#111827","--ui-panel-input-border":"#d8dcea","--ui-drawer-tab-text":"#6b7280","--ui-drawer-tab-active":"#111827","--ui-history-item-text":"#1f2937","--ui-history-meta":"#9ca3af","--ui-success":"#059669","--ui-error":"#dc2626"},termHostBg:"#ffffff",keybar:{bg:"#eef0f6",border:"#dfe3ee",keyBg:"#ffffff",keyBorder:"#d8dcea",keyText:"#4b5563",accent:"#4f6ef7",accentText:"#ffffff",drag:"#a5b4fc"},xterm:{background:"#ffffff",foreground:"#1f2937",cursor:"#4f6ef7",selectionBackground:"#c7d2fe",black:"#24292e",red:"#d73a49",green:"#22863a",yellow:"#b08800",blue:"#005cc5",magenta:"#6f42c1",cyan:"#1b7c83",white:"#6a737d",brightBlack:"#959da5",brightWhite:"#fafbfc"}},{id:"scifi",label:"科幻霓虹",swatch:"#050a14",preview:["#050a14","#22d3ee"],cssVars:{"--ui-color-scheme":"dark","--ui-root-bg":"#050a14","--ui-text":"#e2f3ff","--ui-tabbar-bg":"#0a1220","--ui-tabbar-border":"#10263c","--ui-tab-bg":"#0d1626","--ui-tab-text":"#5c7893","--ui-tab-active-bg":"#122036","--ui-tab-active-text":"#e2f3ff","--ui-tab-accent":"#22d3ee","--ui-connection-bg":"#0a1220","--ui-connection-text":"#5c7893","--ui-tree-bg":"#0d1626","--ui-tree-border":"#10263c","--ui-term-col-bg":"#050a14","--ui-fab-bg":"#122036","--ui-fab-border":"#155e75","--ui-muted-surface":"#0d1626","--ui-muted-border":"#164e63","--ui-muted-text":"#9fb8d0","--ui-panel-input-bg":"#0a1220","--ui-panel-input-text":"#e2f3ff","--ui-panel-input-border":"#164e63","--ui-drawer-tab-text":"#5c7893","--ui-drawer-tab-active":"#e2f3ff","--ui-history-item-text":"#d5ecfb","--ui-history-meta":"#5c7893","--ui-success":"#34d399","--ui-error":"#fb7185"},termHostBg:"#0a1220",keybar:{bg:"#0a1220",border:"#10263c",keyBg:"#0d1626",keyBorder:"#164e63",keyText:"#9fb8d0",accent:"#22d3ee",accentText:"#04121a",drag:"#155e75"},xterm:{background:"#0a1220",foreground:"#e2f3ff",cursor:"#22d3ee",selectionBackground:"#164e63",black:"#0d1626",red:"#fb7185",green:"#34d399",yellow:"#fbbf24",blue:"#38bdf8",magenta:"#e879f9",cyan:"#22d3ee",white:"#e2f3ff",brightBlack:"#5c7893",brightWhite:"#ffffff"}},{id:"noir",label:"暗夜黑",swatch:"#0f1115",preview:["#0f1115","#a78bfa"],cssVars:{"--ui-color-scheme":"dark","--ui-root-bg":"#0f1115","--ui-text":"#eceff4","--ui-tabbar-bg":"#14171d","--ui-tabbar-border":"#232833","--ui-tab-bg":"#191d24","--ui-tab-text":"#6b7280","--ui-tab-active-bg":"#1f242d","--ui-tab-active-text":"#eceff4","--ui-tab-accent":"#a78bfa","--ui-connection-bg":"#14171d","--ui-connection-text":"#6b7280","--ui-tree-bg":"#191d24","--ui-tree-border":"#232833","--ui-term-col-bg":"#0f1115","--ui-fab-bg":"#1f242d","--ui-fab-border":"#2a3040","--ui-muted-surface":"#191d24","--ui-muted-border":"#2a3040","--ui-muted-text":"#aab2bf","--ui-panel-input-bg":"#14171d","--ui-panel-input-text":"#eceff4","--ui-panel-input-border":"#2a3040","--ui-drawer-tab-text":"#6b7280","--ui-drawer-tab-active":"#eceff4","--ui-history-item-text":"#d7dce4","--ui-history-meta":"#6b7280","--ui-success":"#4ade80","--ui-error":"#f87171"},termHostBg:"#14171d",keybar:{bg:"#14171d",border:"#232833",keyBg:"#191d24",keyBorder:"#2a3040",keyText:"#aab2bf",accent:"#a78bfa",accentText:"#0f1115",drag:"#4b4470"},xterm:{background:"#14171d",foreground:"#eceff4",cursor:"#a78bfa",selectionBackground:"#3b3654",black:"#191d24",red:"#f87171",green:"#4ade80",yellow:"#fbbf24",blue:"#60a5fa",magenta:"#c084fc",cyan:"#67e8f9",white:"#eceff4",brightBlack:"#6b7280",brightWhite:"#ffffff"}},{id:"mist",label:"雾白靛蓝",swatch:"#f7f8fb",preview:["#f7f8fb","#4258c4"],cssVars:{"--ui-color-scheme":"light","--ui-root-bg":"#f7f8fb","--ui-text":"#252d3d","--ui-tabbar-bg":"#e4e9f2","--ui-tabbar-border":"#dce3ef","--ui-tab-bg":"#e9edf5","--ui-tab-text":"#5b687f","--ui-tab-active-bg":"#f7f8fb","--ui-tab-active-text":"#252d3d","--ui-tab-accent":"#4258c4","--ui-connection-bg":"#e4e9f2","--ui-connection-text":"#5b687f","--ui-tree-bg":"#e9edf5","--ui-tree-border":"#dce3ef","--ui-term-col-bg":"#f7f8fb","--ui-fab-bg":"#ffffff","--ui-fab-border":"#dce3ef","--ui-muted-surface":"#e9edf5","--ui-muted-border":"#dce3ef","--ui-muted-text":"#5b687f","--ui-panel-input-bg":"#ffffff","--ui-panel-input-text":"#252d3d","--ui-panel-input-border":"#dce3ef","--ui-drawer-tab-text":"#5b687f","--ui-drawer-tab-active":"#252d3d","--ui-history-item-text":"#252d3d","--ui-history-meta":"#5b687f","--ui-success":"#247860","--ui-error":"#be3d50"},termHostBg:"#ffffff",keybar:{bg:"#e4e9f2",border:"#dce3ef",keyBg:"#ffffff",keyBorder:"#dce3ef",keyText:"#5b687f",accent:"#4258c4",accentText:"#ffffff",drag:"#8a9ac5"},xterm:{background:"#ffffff",foreground:"#252d3d",cursor:"#4258c4",selectionBackground:"#d6dcf4",black:"#252d3d",red:"#be3d50",green:"#247860",yellow:"#956018",blue:"#346faa",magenta:"#7456a6",cyan:"#277784",white:"#5b687f",brightBlack:"#5b687f",brightWhite:"#f7f8fb"}},{id:"glass",label:"毛玻璃",swatch:"#c3dbee",preview:["#c3dbee","#357b88"],cssVars:{"--ui-color-scheme":"light","--ui-root-bg":"#edf3f4","--ui-text":"#263e48","--ui-tabbar-bg":"#e0ebee","--ui-tabbar-border":"#d3e1e5","--ui-tab-bg":"#e5eef1","--ui-tab-text":"#58727c","--ui-tab-active-bg":"#edf3f4","--ui-tab-active-text":"#263e48","--ui-tab-accent":"#357b88","--ui-connection-bg":"#e0ebee","--ui-connection-text":"#58727c","--ui-tree-bg":"#e5eef1","--ui-tree-border":"#d3e1e5","--ui-term-col-bg":"#edf3f4","--ui-fab-bg":"#ffffff","--ui-fab-border":"#d3e1e5","--ui-muted-surface":"#e5eef1","--ui-muted-border":"#d3e1e5","--ui-muted-text":"#58727c","--ui-panel-input-bg":"#ffffff","--ui-panel-input-text":"#263e48","--ui-panel-input-border":"#d3e1e5","--ui-drawer-tab-text":"#58727c","--ui-drawer-tab-active":"#263e48","--ui-history-item-text":"#263e48","--ui-history-meta":"#58727c","--ui-success":"#247860","--ui-error":"#be3d50"},termHostBg:"#ffffff",keybar:{bg:"#e0ebee",border:"#d3e1e5",keyBg:"#ffffff",keyBorder:"#d3e1e5",keyText:"#58727c",accent:"#357b88",accentText:"#ffffff",drag:"#8a9ac5"},xterm:{background:"#ffffff",foreground:"#263e48",cursor:"#357b88",selectionBackground:"#d6dcf4",black:"#263e48",red:"#be3d50",green:"#247860",yellow:"#956018",blue:"#346faa",magenta:"#7456a6",cyan:"#277784",white:"#58727c",brightBlack:"#58727c",brightWhite:"#edf3f4"}},{id:"pine",label:"暖灰松绿",swatch:"#f6f7f3",preview:["#f6f7f3","#356c55"],cssVars:{"--ui-color-scheme":"light","--ui-root-bg":"#f6f7f3","--ui-text":"#2d382f","--ui-tabbar-bg":"#e2e7df","--ui-tabbar-border":"#d9e1d6","--ui-tab-bg":"#e8ece5","--ui-tab-text":"#5b6e61","--ui-tab-active-bg":"#f6f7f3","--ui-tab-active-text":"#2d382f","--ui-tab-accent":"#356c55","--ui-connection-bg":"#e2e7df","--ui-connection-text":"#5b6e61","--ui-tree-bg":"#e8ece5","--ui-tree-border":"#d9e1d6","--ui-term-col-bg":"#f6f7f3","--ui-fab-bg":"#ffffff","--ui-fab-border":"#d9e1d6","--ui-muted-surface":"#e8ece5","--ui-muted-border":"#d9e1d6","--ui-muted-text":"#5b6e61","--ui-panel-input-bg":"#ffffff","--ui-panel-input-text":"#2d382f","--ui-panel-input-border":"#d9e1d6","--ui-drawer-tab-text":"#5b6e61","--ui-drawer-tab-active":"#2d382f","--ui-history-item-text":"#2d382f","--ui-history-meta":"#5b6e61","--ui-success":"#357450","--ui-error":"#b6454d"},termHostBg:"#ffffff",keybar:{bg:"#e2e7df",border:"#d9e1d6",keyBg:"#ffffff",keyBorder:"#d9e1d6",keyText:"#5b6e61",accent:"#356c55",accentText:"#ffffff",drag:"#86a38b"},xterm:{background:"#ffffff",foreground:"#2d382f",cursor:"#356c55",selectionBackground:"#d4e1d9",black:"#2d382f",red:"#b6454d",green:"#357450",yellow:"#8c641e",blue:"#3d7189",magenta:"#805e88",cyan:"#317c74",white:"#5b6e61",brightBlack:"#5b6e61",brightWhite:"#f6f7f3"}},{id:"graphite",label:"石墨夜色",swatch:"#202630",preview:["#202630","#a4bad2"],cssVars:{"--ui-color-scheme":"dark","--ui-root-bg":"#202630","--ui-text":"#e4ebf4","--ui-tabbar-bg":"#161c25","--ui-tabbar-border":"#384859","--ui-tab-bg":"#161c25","--ui-tab-text":"#b0bfd3","--ui-tab-active-bg":"#202630","--ui-tab-active-text":"#e4ebf4","--ui-tab-accent":"color-mix(in srgb, #386a9a 40%, #ecf0f8)","--ui-connection-bg":"#161c25","--ui-connection-text":"#b0bfd3","--ui-tree-bg":"#161c25","--ui-tree-border":"#384859","--ui-term-col-bg":"#202630","--ui-fab-bg":"#293440","--ui-fab-border":"#384859","--ui-muted-surface":"#161c25","--ui-muted-border":"#384859","--ui-muted-text":"#b0bfd3","--ui-panel-input-bg":"#293440","--ui-panel-input-text":"#e4ebf4","--ui-panel-input-border":"#384859","--ui-drawer-tab-text":"#b0bfd3","--ui-drawer-tab-active":"#e4ebf4","--ui-history-item-text":"#e4ebf4","--ui-history-meta":"#b0bfd3","--ui-success":"#89d3af","--ui-error":"#f097a2"},termHostBg:"#202630",keybar:{bg:"#161c25",border:"#384859",keyBg:"#293440",keyBorder:"#384859",keyText:"#b0bfd3",accent:"#a4bad2",accentText:"#14212b",drag:"#61778c"},xterm:{background:"#202630",foreground:"#e4ebf4",cursor:"#a4bad2",selectionBackground:"#2a3e53",black:"#161c25",red:"#f097a2",green:"#89d3af",yellow:"#e5c58a",blue:"#9accf0",magenta:"#c4b3e1",cyan:"#91cfd6",white:"#e4ebf4",brightBlack:"#b0bfd3",brightWhite:"#ffffff"}}].map(e=>[e.id,e])),o={dark:"noir",black:"noir",gray:"noir",blue:"noir",red:"noir",yellow:"noir",green:"noir",white:"pearl"};function s(e){if(e&&e in n)return n[e];let t=e?o[e]:void 0;return t?n[t]:n.pearl}r(2761);let l="force-dynamic";function c(){try{let{userId:e}=(0,i.nQ)();return s(i.hw.getPreferences(e)?.theme)}catch{return s(void 0)}}function d(){let e=c();return{colorScheme:e.cssVars["--ui-color-scheme"],themeColor:e.cssVars["--ui-tabbar-bg"]}}function u({children:e}){let t=c(),r={...t.cssVars,colorScheme:t.cssVars["--ui-color-scheme"],background:t.cssVars["--ui-root-bg"],color:t.cssVars["--ui-text"]};return a.jsx("div",{id:"web-theme-root","data-web-theme":t.id,style:r,children:e})}},6742:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>a});let a=(0,r(8979).createProxy)(String.raw`/Users/caoqu/.codex/worktrees/agentroam-npm-preview68-20261028/packages/server/app/web/page.tsx#default`)},785:(e,t,r)=>{"use strict";r.d(t,{ME:()=>s,kO:()=>o,sr:()=>l});var a=r(9411);let i=function(){let e=process.argv[1];if(e){let t=(0,a.dirname)((0,a.resolve)(e)),r=`${a.sep}node_modules${a.sep}.bin`;return t.endsWith(r)?(0,a.resolve)(t,"..",".."):t}return(0,a.resolve)(process.cwd())}();function n(e=process.env,t=i){return(0,a.resolve)(e.AGENT_DATA_DIR?.trim()||t)}function o(){return n()}function s(e=process.env,t=n(e)){let r=e.AGENT_LOG_DIR?.trim();if(r)return(0,a.resolve)(r);let i=e.AGENTROAM_DATA_DIR?.trim();return i?(0,a.resolve)(i,"logs"):(0,a.join)(t,".agent-data","logs")}function l(){return function(e=process.env,t=i){return(0,a.resolve)(e.AGENT_WORKING_DIRECTORY?.trim()||t)}(process.env,o())}},2110:(e,t,r)=>{"use strict";r.d(t,{hw:()=>n.hw,nQ:()=>s});var a=r(1636),i=r(785),n=r(9580);let o=new a.SQLiteAnonymousWebStore((0,i.kO)());function s(){return{userId:o.getOrCreatePrincipal().userId,username:"local",deviceId:"browser"}}},9580:(e,t,r)=>{"use strict";r.d(t,{$U:()=>u,Ci:()=>f,VP:()=>n,Xd:()=>d,ZA:()=>s,ap:()=>p,hw:()=>l,ki:()=>o,yN:()=>b});var a=r(1636),i=r(785);let n="customer_agent_session",o="customer_agent_device",s=new a.WebAuthService(new a.SQLiteAuthStore((0,i.kO)())),l=new a.SQLiteWebConsoleStore((0,i.kO)());function c(e){let t={};for(let r of(e.headers.get("cookie")||"").split(";")){let e=r.indexOf("=");e>0&&(t[r.slice(0,e).trim()]=decodeURIComponent(r.slice(e+1).trim()))}return t}function d(e){return c(e)[n]||null}function u(e){let t=c(e);return{ip:e.headers.get("x-forwarded-for")?.split(",")[0].trim()||"unknown",userAgent:e.headers.get("user-agent")||"",deviceId:t[o],deviceName:e.headers.get("x-device-name")||""}}function p(e){let t=s.authenticateToken(d(e));return s.validateCsrf(t,e.headers.get("x-csrf-token")),t}function f(e,t,r){return{httpOnly:r,sameSite:"strict",secure:"https"===("1"===process.env.AGENT_TRUST_TUNNEL_PROXY?e.headers.get("x-forwarded-proto"):null)||"https:"===new URL(e.url).protocol,path:"/",maxAge:t}}function b(e){let t=e instanceof a.WebAuthError?e:new a.WebAuthError("UNAUTHENTICATED","认证失败",401);return Response.json({error:{code:t.code,message:t.message}},{status:t.status})}},2761:()=>{}};var t=require("../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),a=t.X(0,[8375,5303],()=>r(2879));module.exports=a})();
343
+ `;var eu=r(1321),ep=r.n(eu);function ef({label:e="FLOW STUDIO",title:t="正在打开 Flow Studio",caption:r="即将进入你的创作空间",icon:a=i.jsx(j,{size:36,strokeWidth:1.5})}={}){return(0,i.jsxs)("div",{role:"status","aria-live":"polite",className:"jsx-f8b6a4420911d242 flow-loading",children:[(0,i.jsxs)("div",{"aria-hidden":"true",className:"jsx-f8b6a4420911d242 flow-loader-art",children:[i.jsx("div",{className:"jsx-f8b6a4420911d242 flow-loader-halo"}),i.jsx("div",{className:"jsx-f8b6a4420911d242 flow-loader-orbit orbit-outer",children:i.jsx("i",{className:"jsx-f8b6a4420911d242"})}),i.jsx("div",{className:"jsx-f8b6a4420911d242 flow-loader-orbit orbit-inner",children:i.jsx("i",{className:"jsx-f8b6a4420911d242"})}),i.jsx("div",{className:"jsx-f8b6a4420911d242 flow-loader-core",children:a}),i.jsx("span",{className:"jsx-f8b6a4420911d242 flow-loader-node node-one"}),i.jsx("span",{className:"jsx-f8b6a4420911d242 flow-loader-node node-two"}),i.jsx("span",{className:"jsx-f8b6a4420911d242 flow-loader-node node-three"})]}),(0,i.jsxs)("div",{className:"jsx-f8b6a4420911d242 flow-loader-copy",children:[i.jsx("span",{className:"jsx-f8b6a4420911d242 flow-loader-label",children:e}),i.jsx("strong",{className:"jsx-f8b6a4420911d242",children:t}),i.jsx("span",{className:"jsx-f8b6a4420911d242 flow-loader-caption",children:r})]}),i.jsx("div",{"aria-hidden":"true",className:"jsx-f8b6a4420911d242 flow-loader-track",children:i.jsx("span",{className:"jsx-f8b6a4420911d242"})}),i.jsx(ep(),{id:"f8b6a4420911d242",children:".flow-loading.jsx-f8b6a4420911d242{position:absolute;inset:0;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-moz-box-pack:center;-ms-flex-pack:center;justify-content:center;overflow:hidden;gap:26px;color:var(--ui-text,#e5e7eb);background:var(--ui-term-col-bg,#101014);-webkit-animation:flow-appear 280ms ease-out both;-moz-animation:flow-appear 280ms ease-out both;-o-animation:flow-appear 280ms ease-out both;animation:flow-appear 280ms ease-out both}.flow-loader-art.jsx-f8b6a4420911d242{position:relative;width:200px;height:200px;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0}.flow-loader-halo.jsx-f8b6a4420911d242{position:absolute;inset:-40px;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;background:-webkit-radial-gradient(circle,#54e5cf26,#54e5cf08 45%,transparent 70%);background:-moz-radial-gradient(circle,#54e5cf26,#54e5cf08 45%,transparent 70%);background:-o-radial-gradient(circle,#54e5cf26,#54e5cf08 45%,transparent 70%);background:radial-gradient(circle,#54e5cf26,#54e5cf08 45%,transparent 70%);-webkit-animation:flow-breathe 3s ease-in-out infinite;-moz-animation:flow-breathe 3s ease-in-out infinite;-o-animation:flow-breathe 3s ease-in-out infinite;animation:flow-breathe 3s ease-in-out infinite}.flow-loader-orbit.jsx-f8b6a4420911d242{position:absolute;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;border:1px solid#54e5cf26}.orbit-outer.jsx-f8b6a4420911d242{inset:8px;border-top-color:#54e5cf;border-right-color:#54e5cf70;-webkit-animation:flow-orbit 3.2s linear infinite;-moz-animation:flow-orbit 3.2s linear infinite;-o-animation:flow-orbit 3.2s linear infinite;animation:flow-orbit 3.2s linear infinite}.orbit-inner.jsx-f8b6a4420911d242{inset:30px;border-bottom-color:#8bbcff;border-left-color:#8bbcff60;animation:flow-orbit 2.4s linear infinite reverse}.flow-loader-orbit.jsx-f8b6a4420911d242 i.jsx-f8b6a4420911d242{position:absolute;top:13%;left:13%;width:7px;height:7px;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;background:#77f8df;-webkit-box-shadow:0 0 14px#54e5cf;-moz-box-shadow:0 0 14px#54e5cf;box-shadow:0 0 14px#54e5cf}.orbit-inner.jsx-f8b6a4420911d242 i.jsx-f8b6a4420911d242{background:#8bbcff;-webkit-box-shadow:0 0 14px#8bbcff;-moz-box-shadow:0 0 14px#8bbcff;box-shadow:0 0 14px#8bbcff}.flow-loader-core.jsx-f8b6a4420911d242{position:absolute;inset:62px;display:grid;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;justify-items:center;place-items:center;-webkit-border-radius:24px;-moz-border-radius:24px;border-radius:24px;color:#64e9d3;border:1px solid#54e5cf66;background:-webkit-linear-gradient(305deg,#54e5cf20,#8bbcff0d);background:-moz-linear-gradient(305deg,#54e5cf20,#8bbcff0d);background:-o-linear-gradient(305deg,#54e5cf20,#8bbcff0d);background:linear-gradient(145deg,#54e5cf20,#8bbcff0d);-webkit-box-shadow:0 0 35px#54e5cf15,inset 0 0 18px#54e5cf0d;-moz-box-shadow:0 0 35px#54e5cf15,inset 0 0 18px#54e5cf0d;box-shadow:0 0 35px#54e5cf15,inset 0 0 18px#54e5cf0d;-webkit-animation:flow-breathe 3s ease-in-out infinite;-moz-animation:flow-breathe 3s ease-in-out infinite;-o-animation:flow-breathe 3s ease-in-out infinite;animation:flow-breathe 3s ease-in-out infinite}.flow-loader-node.jsx-f8b6a4420911d242{position:absolute;width:5px;height:5px;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;background:#8bbcff;-webkit-animation:flow-node 2s ease-in-out infinite;-moz-animation:flow-node 2s ease-in-out infinite;-o-animation:flow-node 2s ease-in-out infinite;animation:flow-node 2s ease-in-out infinite}.node-one.jsx-f8b6a4420911d242{left:0;top:100px}.node-two.jsx-f8b6a4420911d242{right:17px;top:38px;-webkit-animation-delay:.5s;-moz-animation-delay:.5s;-o-animation-delay:.5s;animation-delay:.5s}.node-three.jsx-f8b6a4420911d242{bottom:9px;right:57px;-webkit-animation-delay:1s;-moz-animation-delay:1s;-o-animation-delay:1s;animation-delay:1s}.flow-loader-copy.jsx-f8b6a4420911d242{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;gap:10px;text-align:center;padding:0 20px}.flow-loader-label.jsx-f8b6a4420911d242{font:10px ui-monospace,monospace;letter-spacing:.3em;color:#64cbbb}.flow-loader-copy.jsx-f8b6a4420911d242 strong.jsx-f8b6a4420911d242{font-size:18px;font-weight:500;letter-spacing:.02em}.flow-loader-caption.jsx-f8b6a4420911d242{font-size:12px;color:var(--ui-text-muted,#9399aa)}.flow-loader-track.jsx-f8b6a4420911d242{width:128px;height:2px;overflow:hidden;background:#54e5cf20;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.flow-loader-track.jsx-f8b6a4420911d242 span.jsx-f8b6a4420911d242{display:block;width:45%;height:100%;background:-webkit-linear-gradient(left,transparent,#64e9d3,#8bbcff);background:-moz-linear-gradient(left,transparent,#64e9d3,#8bbcff);background:-o-linear-gradient(left,transparent,#64e9d3,#8bbcff);background:linear-gradient(90deg,transparent,#64e9d3,#8bbcff);-webkit-animation:flow-travel 1.8s ease-in-out infinite;-moz-animation:flow-travel 1.8s ease-in-out infinite;-o-animation:flow-travel 1.8s ease-in-out infinite;animation:flow-travel 1.8s ease-in-out infinite}@-webkit-keyframes flow-orbit{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes flow-orbit{to{-moz-transform:rotate(360deg);transform:rotate(360deg)}}@-o-keyframes flow-orbit{to{-o-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes flow-orbit{to{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes flow-breathe{50%{-webkit-transform:scale(1.05);transform:scale(1.05);opacity:.7}}@-moz-keyframes flow-breathe{50%{-moz-transform:scale(1.05);transform:scale(1.05);opacity:.7}}@-o-keyframes flow-breathe{50%{-o-transform:scale(1.05);transform:scale(1.05);opacity:.7}}@keyframes flow-breathe{50%{-webkit-transform:scale(1.05);-moz-transform:scale(1.05);-o-transform:scale(1.05);transform:scale(1.05);opacity:.7}}@-webkit-keyframes flow-node{50%{opacity:.25;-webkit-transform:scale(.65);transform:scale(.65)}}@-moz-keyframes flow-node{50%{opacity:.25;-moz-transform:scale(.65);transform:scale(.65)}}@-o-keyframes flow-node{50%{opacity:.25;-o-transform:scale(.65);transform:scale(.65)}}@keyframes flow-node{50%{opacity:.25;-webkit-transform:scale(.65);-moz-transform:scale(.65);-o-transform:scale(.65);transform:scale(.65)}}@-webkit-keyframes flow-travel{from{-webkit-transform:translatex(-110%);transform:translatex(-110%)}to{-webkit-transform:translatex(330%);transform:translatex(330%)}}@-moz-keyframes flow-travel{from{-moz-transform:translatex(-110%);transform:translatex(-110%)}to{-moz-transform:translatex(330%);transform:translatex(330%)}}@-o-keyframes flow-travel{from{-o-transform:translatex(-110%);transform:translatex(-110%)}to{-o-transform:translatex(330%);transform:translatex(330%)}}@keyframes flow-travel{from{-webkit-transform:translatex(-110%);-moz-transform:translatex(-110%);-o-transform:translatex(-110%);transform:translatex(-110%)}to{-webkit-transform:translatex(330%);-moz-transform:translatex(330%);-o-transform:translatex(330%);transform:translatex(330%)}}@-webkit-keyframes flow-appear{from{opacity:0}to{opacity:1}}@-moz-keyframes flow-appear{from{opacity:0}to{opacity:1}}@-o-keyframes flow-appear{from{opacity:0}to{opacity:1}}@keyframes flow-appear{from{opacity:0}to{opacity:1}}@media(max-height:420px){.flow-loading.jsx-f8b6a4420911d242{gap:12px}.flow-loader-art.jsx-f8b6a4420911d242{width:200px;height:200px;zoom:.65}}@media(prefers-reduced-motion:reduce){.flow-loading.jsx-f8b6a4420911d242,.flow-loader-halo.jsx-f8b6a4420911d242,.flow-loader-orbit.jsx-f8b6a4420911d242,.flow-loader-core.jsx-f8b6a4420911d242,.flow-loader-node.jsx-f8b6a4420911d242,.flow-loader-track.jsx-f8b6a4420911d242 span.jsx-f8b6a4420911d242{-webkit-animation:none;-moz-animation:none;-o-animation:none;animation:none}}"})]})}function eb({page:e,reloadKey:t}){let[r,a]=(0,d.useState)(!0),[n,o]=(0,d.useState)(!1);return!function(e){let t=new URL(e).hostname;return"qoder.com"===t||t.endsWith(".qoder.com")}(e.url)?(0,i.jsxs)("main",{className:"computer-page-pane","aria-label":e.name,"aria-busy":r,children:[i.jsx("iframe",{title:e.name,src:e.url,referrerPolicy:"no-referrer",allow:"clipboard-read; clipboard-write; microphone; camera",sandbox:"allow-scripts allow-same-origin allow-forms allow-popups allow-popups-to-escape-sandbox allow-downloads allow-modals",onLoad:()=>a(!1),onError:()=>{a(!1),o(!0)},style:{visibility:r?"hidden":"visible"}},`${e.id}:${t}`),r&&i.jsx(ef,{label:"REMOTE PAGE",title:`正在打开 ${e.name}`,caption:"正在连接页面",icon:i.jsx(F,{size:36,strokeWidth:1.5})}),n&&i.jsx("a",{className:"computer-page-fallback",href:e.url,target:"_blank",rel:"noopener noreferrer",children:"打开原页面"})]}):(0,i.jsxs)("main",{className:"computer-page-blocked",children:[i.jsx(F,{size:36,strokeWidth:1.5,"aria-hidden":"true"}),(0,i.jsxs)("h2",{children:[e.name," 不允许内嵌"]}),i.jsx("p",{children:"这个网站限制了当前页面打开。可以在新页面使用,也可以在电脑菜单中修改打开方式。"}),(0,i.jsxs)("a",{href:e.url,target:"_blank",rel:"noopener noreferrer",children:[i.jsx(x,{size:16,"aria-hidden":"true"}),"打开新页面"]})]})}let em=m("Ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]),eh=m("ChevronsRight",[["path",{d:"m6 17 5-5-5-5",key:"xnjwq"}],["path",{d:"m13 17 5-5-5-5",key:"17xmmf"}]]),ex=m("ChevronsLeft",[["path",{d:"m11 17-5-5 5-5",key:"13zhaf"}],["path",{d:"m18 17-5-5 5-5",key:"h8a8et"}]]);function eg(e){return e.map(e=>e.compactItems??[e]).filter(e=>e.length>0)}function ey({items:e,avatar:t,glass:r=!1,compact:a=!1}){let[n,o]=(0,d.useState)(!1),s=r&&n,l=r&&!n,c=(0,d.useRef)(null),u=(0,d.useRef)(null),p=(0,d.useRef)(null),f=(0,d.useRef)(null),b=(0,d.useRef)(null),m=(0,d.useRef)(new Map),[h,x]=(0,d.useState)(null),[g,y]=(0,d.useState)(!1),[w,v]=(0,d.useState)(!1),[k,j]=(0,d.useState)({top:-1e3,left:0}),[S,N]=(0,d.useState)({fullFits:!1,inlineIndices:[],overflowIndices:[]}),R=new Set(S.inlineIndices),T=S.fullFits||g,E=T&&S.overflowIndices.length>0,M=eg(e);(0,d.useLayoutEffect)(()=>{let t=c.current?.closest(".terminal-tabs"),i=t?.querySelector(".terminal-tab-list"),n=c.current?.closest(".terminal-connection");if(!t||!i||!n||!h||r||a)return;let o=0,s=()=>{let r=getComputedStyle(t),a=getComputedStyle(n),o=getComputedStyle(i),s=Array.from(i.children),l=s.reduce((e,t)=>e+t.offsetWidth,0)+Math.max(0,s.length-1)*(parseFloat(o.columnGap)||0),c=(parseFloat(r.paddingLeft)||0)+(parseFloat(r.paddingRight)||0)+(parseFloat(a.paddingLeft)||0)+(parseFloat(a.paddingRight)||0)+2*(parseFloat(r.columnGap)||0)+(t.querySelector(".terminal-add")?.offsetWidth??30),d=t.clientWidth-c,f=function(e){let t=e.toolWidths.flatMap((e,t)=>e>0?[t]:[]),r=t=>t.reduce((t,r)=>t+e.toolWidths[r],0)+t.length*e.gap,a=r(t)+e.avatarWidth<=e.fullAvailableWidth;if(a)return{fullFits:a,inlineIndices:t,overflowIndices:[]};if(!e.expanded)return{fullFits:a,inlineIndices:[],overflowIndices:t};let i=e.availableWidth-e.avatarWidth-e.toggleWidth;if(r(t)<=i)return{fullFits:a,inlineIndices:t,overflowIndices:[]};let n=[];for(let a of t){if(r([...n,a])>i-e.toggleWidth)break;n.push(a)}return{fullFits:a,inlineIndices:n,overflowIndices:t.slice(n.length)}}({toolWidths:e.map(e=>m.current.get(e.id)?.offsetWidth??0),fullAvailableWidth:d-l,availableWidth:d-Math.min(l,Math.max(64,Math.min(130,t.clientWidth/4))),avatarWidth:u.current?.offsetWidth??44,toggleWidth:p.current?.offsetWidth??40,gap:0,expanded:g});N(e=>JSON.stringify(e)===JSON.stringify(f)?e:f),(f.fullFits||!g||0===f.overflowIndices.length)&&v(!1)},l=()=>{cancelAnimationFrame(o),o=requestAnimationFrame(s)},d=new ResizeObserver(l);for(let e of[t,i,c.current,f.current,...m.current.values()])e&&d.observe(e);let b=new MutationObserver(l);return b.observe(i,{childList:!0,subtree:!0,characterData:!0}),f.current&&b.observe(f.current,{childList:!0,subtree:!0}),s(),()=>{cancelAnimationFrame(o),d.disconnect(),b.disconnect()}},[g,h,e.map(e=>e.id).join(","),S.inlineIndices.join(","),r,a]),(0,d.useLayoutEffect)(()=>{if(!w)return;let e=()=>{let e=b.current?.getBoundingClientRect();if(!e)return;let t=l||a?f.current?.getBoundingClientRect().width??Math.min(292,innerWidth-16):Math.min(292,innerWidth-16),r=c.current?.closest(".terminal-tabs")?.getBoundingClientRect().bottom??e.bottom;j({top:Math.max(e.bottom,r)+6,left:Math.max(8,Math.min(innerWidth-t-8,e.right-t))})};e();let t=new ResizeObserver(e);return l&&f.current&&t.observe(f.current),a&&f.current&&t.observe(f.current),window.addEventListener("resize",e),window.addEventListener("scroll",e,!0),()=>{t.disconnect(),window.removeEventListener("resize",e),window.removeEventListener("scroll",e,!0)}},[w,l,a,S.inlineIndices.join(",")]);let P=e=>i.jsx("div",{className:"toolbar-slot","data-toolbar-item":e.id,ref:t=>{t?m.current.set(e.id,t):m.current.delete(e.id)},children:e.content},e.id);if(a)return(0,i.jsxs)("div",{ref:c,className:"responsive-toolbar compact-toolbar",children:[M.length>0&&i.jsx("button",{ref:b,type:"button",className:"file-drawer-toggle compact-toolbar-trigger","aria-label":"更多功能",title:"更多功能","aria-haspopup":"dialog","aria-expanded":w,onClick:()=>v(e=>!e),children:i.jsx(em,{size:20,"aria-hidden":"true"})}),i.jsx("div",{className:"toolbar-avatar",onPointerDown:()=>v(!1),children:t}),h&&(0,z.createPortal)(i.jsx("div",{className:n?"compact-tools-backdrop":"compact-tools-overlay",hidden:!w,onClick:e=>{e.target===e.currentTarget&&v(!1)},children:(0,i.jsxs)("div",{ref:f,className:`compact-tools-panel${n?" is-mobile":""}`,role:"dialog","aria-label":"更多功能","data-toolbar-overlay":!0,style:n?void 0:{position:"fixed",...k},children:[n&&i.jsx("header",{children:i.jsx("button",{type:"button",className:"file-drawer-toggle","aria-label":"关闭更多功能",title:"关闭更多功能",onClick:()=>{v(!1),b.current?.focus()},children:i.jsx(C,{size:20,"aria-hidden":"true"})})}),i.jsx("div",{className:"compact-tools-grid",children:M.map(e=>1===e.length?P(e[0]):i.jsx("div",{className:"compact-tools-group",children:e.map(P)},e[0].id))})]})}),h)]});if(l){let r=["files","remote"].flatMap(t=>e.filter(e=>e.id===t)),a=e.filter(e=>!["files","remote"].includes(e.id));return(0,i.jsxs)("div",{ref:c,className:"responsive-toolbar glass-desktop-toolbar",children:[(0,i.jsxs)("div",{className:"glass-desktop-actions",children:[r.map(P),a.length>0&&i.jsx("button",{ref:b,type:"button",className:"file-drawer-toggle","aria-label":"更多功能",title:"更多功能","aria-haspopup":"dialog","aria-expanded":w,onClick:()=>v(e=>!e),children:i.jsx(em,{size:20})})]}),i.jsx("div",{className:"toolbar-avatar",onPointerDown:()=>v(!1),children:t}),w&&h&&(0,z.createPortal)(i.jsx("div",{ref:f,className:"glass-desktop-menu",role:"dialog","aria-label":"更多功能","data-toolbar-overlay":!0,style:{position:"fixed",top:k.top,left:k.left,zIndex:200},children:a.map(P)}),h)]})}if(s){let r={refresh:"刷新页面",collaboration:"群聊看板",install:"安装应用",remote:"远程桌面","ai-hub":"AI Hub",flow:"数字人",theme:"皮肤","navigation-layout":"切换布局",files:"我的文件"},a=i.jsx("div",{className:"glass-mobile-actions",style:{display:"flex",alignItems:"center",gap:4},children:i.jsx("button",{type:"button",className:"file-drawer-toggle ui-icon-button","aria-label":"更多功能","aria-expanded":w,onClick:()=>v(e=>!e),children:i.jsx(em,{size:20})})});return(0,i.jsxs)("div",{ref:c,className:"responsive-toolbar glass-mobile-toolbar",children:[e.filter(e=>"files"===e.id).map(P),a,i.jsx("div",{className:"toolbar-avatar",children:t}),w&&h&&(0,z.createPortal)(i.jsx("div",{className:"glass-tools-backdrop",onClick:()=>v(!1),children:(0,i.jsxs)("section",{className:"glass-tools-sheet",role:"dialog","aria-label":"更多功能","data-toolbar-overlay":!0,onClick:e=>e.stopPropagation(),children:[(0,i.jsxs)("header",{children:[i.jsx("strong",{children:"更多功能"}),i.jsx("button",{type:"button","aria-label":"关闭更多功能",onClick:()=>v(!1),children:"\xd7"})]}),i.jsx("div",{className:"glass-tools-grid",children:eg(e).flat().filter(e=>"files"!==e.id).map(e=>i.jsx("div",{className:"glass-tool-cell",title:r[e.id]??e.id,onClick:e=>{e.target instanceof Element&&e.target.closest("button")||e.currentTarget.querySelector("button")?.click()},children:e.content},e.id))})]})}),h)]})}return(0,i.jsxs)("div",{ref:c,className:"responsive-toolbar","data-toolbar-expanded":T,children:[i.jsx("span",{ref:p,className:"file-drawer-toggle toolbar-size-measure","aria-hidden":"true"}),E&&i.jsx("button",{ref:b,type:"button",className:"file-drawer-toggle toolbar-overflow-toggle","aria-label":"更多工具",title:"更多工具","aria-haspopup":"dialog","aria-expanded":w,onClick:()=>v(e=>!e),children:i.jsx(L,{size:17,"aria-hidden":"true"})}),S.inlineIndices.length>0&&i.jsx("div",{className:"toolbar-tools toolbar-tools-inline",children:e.filter((e,t)=>R.has(t)).map(P)}),e.length>0&&!S.fullFits&&i.jsx("button",{type:"button",className:"file-drawer-toggle toolbar-more","aria-label":g?"收起顶部工具":"展开顶部工具",title:g?"收起工具":"展开工具","aria-expanded":g,onClick:()=>{y(e=>!e),v(!1)},children:g?i.jsx(eh,{size:17,"aria-hidden":"true"}):i.jsx(ex,{size:17,"aria-hidden":"true"})}),i.jsx("div",{ref:u,className:"toolbar-avatar",onPointerDown:()=>v(!1),children:t}),h&&(0,z.createPortal)(i.jsx("div",{ref:f,className:"toolbar-overflow theme-popover",role:"dialog","aria-label":"更多工具菜单","data-toolbar-overlay":!0,"aria-hidden":!w,style:{position:"fixed",top:w?k.top:-1e3,left:w?k.left:0,zIndex:200,width:Math.min(292,innerWidth-16),visibility:w?"visible":"hidden",boxSizing:"border-box",maxHeight:"calc(100dvh - 60px)",overflowY:"auto",padding:8,borderRadius:10,border:"1px solid var(--ui-tabbar-border, #282b36)",background:"var(--ui-tab-active-bg, #262b38)",boxShadow:"0 10px 28px rgba(0,0,0,.45)"},children:i.jsx("div",{className:"toolbar-tools toolbar-tools-expanded",children:e.filter((e,t)=>!R.has(t)).map(P)})}),h)]})}let ew=["refresh","dashboard","collaboration","remote","theme","files","ai-hub","flow","install"],ev=["refresh","remote","theme","files"];function ek(e){if(!Array.isArray(e)||e.length>ew.length||e.some(e=>!ew.includes(e)))throw Error("顶部工具包含未知选项。");if(new Set(e).size!==e.length)throw Error("顶部工具不能重复。");return ew.filter(t=>e.includes(t))}function ej(e){if(!Array.isArray(e)||e.length>20)throw Error("每台电脑最多可添加 20 个页面。");let t=new Set;return e.map(e=>{let r;if(!e||"string"!=typeof e.id||!/^[A-Za-z0-9_-]{1,80}$/.test(e.id)||t.has(e.id))throw Error("页面标识无效或重复。");if("string"!=typeof e.name||!e.name.trim()||e.name.trim().length>60)throw Error("页面名称需为 1–60 个字符。");if(!["current","new-tab"].includes(e.openMode))throw Error("页面打开方式无效。");if("string"!=typeof e.url||e.url.length>8192)throw Error("请填写有效的 http(s) 页面地址。");try{r=new URL(e.url.trim())}catch{throw Error("请填写有效的 http(s) 页面地址。")}if(!["http:","https:"].includes(r.protocol)||r.username||r.password)throw Error("请填写无账号密码的 http(s) 页面地址。");return t.add(e.id),{id:e.id,name:e.name.trim(),url:r.href,openMode:e.openMode}})}class eS extends Error{constructor(e,t){super(e),this.status=t}}async function eC(e,t){let r=await fetch("/api/web-console/computer-settings",{method:t?"PATCH":"GET",credentials:"same-origin",cache:"no-store",headers:t?{"content-type":"application/json","x-csrf-token":e}:void 0,body:t?JSON.stringify(t):void 0,signal:AbortSignal.timeout(15e3)}).catch(e=>{throw Error(e?.name==="TimeoutError"?"电脑响应超时,请检查连接后重试。":"无法连接当前电脑,请检查连接后重试。")}),a=await r.json().catch(()=>null);if(!r.ok)throw new eS(a?.error?.message??"电脑配置保存失败,请检查连接后重试。",r.status);if(!a?.settings||!Number.isSafeInteger(a.settings.revision))throw Error("无法读取电脑配置,请重新加载。");return{...a.settings,visibleTools:ek(a.settings.visibleTools),savedPages:null===a.settings.savedPages?null:ej(a.settings.savedPages)}}let ez=["codex","claude agents","opencode","agent-tui"],eN={watcherFrame:4,producerFrame:5};function eR({ready:e=!1,error:t,onRetry:r}){let[a]=(0,d.useState)(Date.now),[n,o]=(0,d.useState)(Date.now),s=t||"数字人核心正在就绪";return(0,i.jsxs)("main",{className:`neural-boot${e?" is-ready":""}${t?" is-error":""}`,role:t?"alert":"status","aria-live":"polite","aria-busy":!e&&!t,"aria-hidden":e,children:[i.jsx("div",{className:"neural-grid","aria-hidden":"true"}),i.jsx("div",{className:"neural-rail neural-rail-left","aria-hidden":"true"}),i.jsx("div",{className:"neural-rail neural-rail-right","aria-hidden":"true"}),(0,i.jsxs)("section",{className:"neural-content",children:[(0,i.jsxs)("div",{className:"neural-brand","aria-hidden":"true",children:[i.jsx("span",{className:"neural-brand-signal"}),i.jsx("span",{children:"AgentRoam"}),i.jsx("small",{children:"NEURAL LINK"})]}),(0,i.jsxs)("div",{className:"neural-portrait","aria-hidden":"true",children:[i.jsx("span",{className:"neural-ring neural-ring-outer"}),i.jsx("span",{className:"neural-ring neural-ring-inner"}),i.jsx("span",{className:"neural-axis neural-axis-x"}),i.jsx("span",{className:"neural-axis neural-axis-y"}),i.jsx("span",{className:"neural-node neural-node-one"}),i.jsx("span",{className:"neural-node neural-node-two"}),i.jsx("span",{className:"neural-node neural-node-three"}),i.jsx("span",{className:"neural-node neural-node-four"}),i.jsx("div",{className:"neural-avatar-frame",children:(0,i.jsxs)("div",{className:"neural-avatar",children:[i.jsx(j,{className:"neural-avatar-icon",size:66,strokeWidth:1.3}),i.jsx("span",{className:"neural-visor"})]})})]}),(0,i.jsxs)("div",{className:"neural-copy",children:[i.jsx("strong",{children:"正在唤醒工作区"}),i.jsx("span",{children:s})]}),i.jsx("div",{className:"neural-progress","aria-hidden":"true",children:i.jsx("span",{})}),(0,i.jsxs)("div",{className:"neural-meta","aria-hidden":"true",children:[i.jsx("span",{children:"AGENT CORE"}),(0,i.jsxs)("span",{className:"neural-meta-time",children:["T+",Math.max(0,Math.floor((n-a)/1e3)).toString().padStart(2,"0"),"S"]})]}),t&&i.jsx("button",{type:"button",className:"neural-retry","aria-label":"重试连接",title:"重试连接",onClick:()=>r?.(),children:i.jsx(g,{size:18,"aria-hidden":"true"})})]})]})}function eT({children:e}){let t=function(){let[e,t]=(0,d.useState)("loading"),[r,a]=(0,d.useState)(null),[i]=(0,d.useState)("same-origin"),[n,o]=(0,d.useState)(null),s=(0,d.useCallback)(async()=>{t("loading"),o(null);try{let e=await fetch("/api/web-console/bootstrap",{credentials:"same-origin",cache:"no-store"});if(401===e.status||423===e.status){window.location.reload();return}if(!e.ok)throw Error(`HTTP ${e.status}`);let r=await e.json();a(r.user),t("authenticated")}catch{o("无法连接远程控制台"),t("needsLogin")}},[]),l=(0,d.useCallback)(async()=>{let e=await fetch("/api/web-console/bootstrap",{credentials:"same-origin",cache:"no-store"});if((401===e.status||423===e.status)&&window.location.reload(),!e.ok)throw Error("bootstrap failed");let r=await e.json();return a(r.user),t("authenticated"),r.wsNonce},[]),c=(0,d.useCallback)(async()=>(window.location.reload(),!1),[]);return{status:e,user:r,error:n,csrfToken:i,setup:c,login:c,logout:(0,d.useCallback)(async()=>{let e=await fetch("/api/pairing/logout",{method:"POST",credentials:"same-origin"});e.ok||401===e.status||423===e.status?window.location.reload():o("退出失败,请重试")},[]),refresh:s,getWsNonce:l}}(),[r,a]=(0,d.useState)(!1),n="authenticated"===t.status,o=(0,d.useCallback)(()=>a(!0),[]);return(0,i.jsxs)(i.Fragment,{children:[n?e(t,o):null,i.jsx(eR,{ready:n&&r,error:t.error,onRetry:()=>void t.refresh()})]})}let eE=m("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]),eM=m("TextCursorInput",[["path",{d:"M5 4h1a3 3 0 0 1 3 3 3 3 0 0 1 3-3h1",key:"18xjzo"}],["path",{d:"M13 20h-1a3 3 0 0 1-3-3 3 3 0 0 1-3 3H5",key:"fj48gi"}],["path",{d:"M5 16H4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h1",key:"1n9rhb"}],["path",{d:"M13 8h7a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-7",key:"13ksps"}],["path",{d:"M9 7v10",key:"1vc8ob"}]]),eP=m("Pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]),eI=m("GripVertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]);function eA(e,t,r){let a=e.findIndex(e=>e.id===t),i=e.findIndex(e=>e.id===r);if(a<0||i<0||a===i)return[...e];let n=[...e],[o]=n.splice(a,1);return n.splice(i,0,o),n}function eL(e,t="function"==typeof crypto.randomUUID?crypto.randomUUID():Array.from(crypto.getRandomValues(new Uint8Array(16)),e=>e.toString(16).padStart(2,"0")).join("")){return{id:t,command:e.trim()}}function e_({commands:e,onChange:t,onExecute:r}){let[a,n]=(0,d.useState)(null),[o,s]=(0,d.useState)(""),[l,c]=(0,d.useState)(null),u=(0,d.useRef)(null),p=()=>{if(!a)return;let r=a.value.trim();return r?r.length>1e3?s("命令最多 1000 个字符"):/[\r\n\0]/.test(r)?s("命令只能包含一行"):void(a.id?t(e.map(e=>e.id===a.id?{...e,command:r}:e)):t([...e,eL(r)]),n(null),s("")):s("命令不能为空")},f=(e,t)=>{e.preventDefault(),e.stopPropagation(),u.current=t,c(t),e.currentTarget.setPointerCapture(e.pointerId)},b=r=>{if(!u.current)return;let a=document.elementFromPoint(r.clientX,r.clientY)?.closest("[data-pinned-id]"),i=a?.dataset.pinnedId;i&&i!==u.current&&t(eA(e,u.current,i))},m=e=>{e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId),u.current=null,c(null)},h=(r,a)=>{if("ArrowUp"!==r.key&&"ArrowDown"!==r.key)return;r.preventDefault();let i=e.findIndex(e=>e.id===a),n=e[i+("ArrowUp"===r.key?-1:1)];n&&t(eA(e,a,n.id))};return(0,i.jsxs)("section",{className:"pinned-commands","aria-labelledby":"pinned-command-title",children:[(0,i.jsxs)("div",{className:"pinned-command-head",children:[i.jsx("span",{id:"pinned-command-title",children:"置顶命令"}),i.jsx("button",{className:"history-icon-button",onClick:()=>{n({id:null,value:""}),s("")},"aria-label":"新增置顶命令",title:"新增置顶命令",children:i.jsx(R,{size:14,"aria-hidden":"true"})})]}),e.map(c=>a?.id===c.id?i.jsx(eW,{editor:a,error:o,onChange:e=>{n({...a,value:e}),s("")},onSave:p,onCancel:()=>{n(null),s("")}},c.id):(0,i.jsxs)("div",{className:`pinned-command-row${l===c.id?" pinned-command-dragging":""}`,"data-pinned-id":c.id,role:"button",tabIndex:0,onClick:()=>r(c.command),onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),r(c.command))},children:[i.jsx("button",{className:"pinned-command-grip",onPointerDown:e=>f(e,c.id),onPointerMove:b,onPointerUp:m,onPointerCancel:m,onKeyDown:e=>h(e,c.id),onClick:e=>e.stopPropagation(),"aria-label":`调整 ${c.command} 的顺序`,title:"拖动排序,或按上下方向键",children:i.jsx(eI,{size:14,"aria-hidden":"true"})}),i.jsx("code",{children:c.command}),(0,i.jsxs)("div",{className:"pinned-command-actions",onClick:e=>e.stopPropagation(),children:[i.jsx("button",{className:"history-icon-button",onClick:()=>{n({id:c.id,value:c.command}),s("")},"aria-label":`编辑 ${c.command}`,title:"编辑",children:i.jsx(B,{size:12,"aria-hidden":"true"})}),i.jsx("button",{className:"history-icon-button history-icon-danger",onClick:()=>t(e.filter(e=>e.id!==c.id)),"aria-label":`删除 ${c.command}`,title:"删除",children:i.jsx(W,{size:12,"aria-hidden":"true"})})]})]},c.id)),a?.id===null&&i.jsx(eW,{editor:a,error:o,onChange:e=>{n({...a,value:e}),s("")},onSave:p,onCancel:()=>{n(null),s("")}})]})}function eW({editor:e,error:t,onChange:r,onSave:a,onCancel:n}){return(0,i.jsxs)("div",{className:"pinned-command-editor",children:[i.jsx("input",{autoFocus:!0,value:e.value,maxLength:1e3,onChange:e=>r(e.target.value),onKeyDown:e=>{"Enter"===e.key&&a(),"Escape"===e.key&&n()},"aria-label":e.id?"编辑置顶命令":"新增置顶命令"}),i.jsx("button",{className:"history-icon-button",onClick:a,"aria-label":"保存命令",title:"保存",children:i.jsx(_,{size:13,"aria-hidden":"true"})}),i.jsx("button",{className:"history-icon-button",onClick:n,"aria-label":"取消编辑",title:"取消",children:i.jsx(C,{size:13,"aria-hidden":"true"})}),t&&i.jsx("small",{role:"alert",children:t})]})}async function eB(e){let t="undefined"==typeof navigator?void 0:navigator.clipboard;if("function"==typeof t?.writeText&&("undefined"==typeof isSecureContext||isSecureContext))try{return await t.writeText(e),!0}catch{}return function(e){if("undefined"==typeof document||!document.body||"function"!=typeof document.execCommand)return!1;let t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),Object.assign(t.style,{position:"fixed",top:"0",left:"-9999px",width:"1px",height:"1px",fontSize:"16px",opacity:"0",pointerEvents:"none"}),document.body.appendChild(t);try{return t.focus(),t.select(),t.setSelectionRange(0,t.value.length),document.execCommand("copy")}catch{return!1}finally{t.remove()}}(e)}function eO({csrfToken:e,terminalId:t,pinnedCommands:r,onPinnedCommandsChange:a,onFill:n,onExecute:o}){let[s,l]=(0,d.useState)([]),[c,u]=(0,d.useState)(""),[p,f]=(0,d.useState)(""),b=(0,d.useCallback)(async()=>{let e=new URLSearchParams({q:c,limit:"200"}),t=await fetch(`/api/web-console/history?${e}`,{credentials:"same-origin"});t.ok&&l((await t.json()).history)},[c]),m=async t=>{await fetch("/api/web-console/history",{method:"DELETE",credentials:"same-origin",headers:{"content-type":"application/json","x-csrf-token":e},body:JSON.stringify({id:t})}),b()},h=e=>{t&&n(e)},x=(0,d.useCallback)(e=>{"[REDACTED]"===e||r.some(t=>t.command===e)||a([...r,eL(e)])},[a,r]),y=async e=>{f(await eB(e)?"已复制命令":"复制失败,请长按命令手动复制")};return(0,i.jsxs)("div",{className:"history-panel",children:[i.jsx(e_,{commands:r,onChange:a,onExecute:o}),(0,i.jsxs)("div",{className:"history-search",children:[i.jsx("input",{value:c,onChange:e=>u(e.target.value),placeholder:"搜索命令"}),i.jsx("button",{className:"history-icon-button",onClick:b,"aria-label":"刷新历史",title:"刷新历史",children:i.jsx(g,{size:13,"aria-hidden":"true"})})]}),p&&i.jsx("div",{className:"terminal-clipboard-notice",role:"status",children:p}),s.map(e=>(0,i.jsxs)("div",{className:`history-item${t?"":" history-item-disabled"}`,role:"button",tabIndex:t?0:-1,onClick:()=>h(e.command),onKeyDown:r=>{r.target===r.currentTarget&&("Enter"===r.key||" "===r.key)&&t&&(r.preventDefault(),h(e.command))},children:[i.jsx("code",{children:e.command}),(0,i.jsxs)("small",{children:[e.cwd," \xb7 ",new Date(e.executedAt).toLocaleString()]}),(0,i.jsxs)("div",{className:"history-item-actions",onClick:e=>e.stopPropagation(),onPointerDown:e=>e.stopPropagation(),children:[i.jsx("button",{className:"history-icon-button",onClick:()=>void y(e.command),"aria-label":"复制命令",title:"复制",children:i.jsx(eE,{size:12,"aria-hidden":"true"})}),i.jsx("button",{className:"history-icon-button",disabled:!t,onClick:()=>h(e.command),"aria-label":"填入命令",title:"填入",children:i.jsx(eM,{size:12,"aria-hidden":"true"})}),i.jsx("button",{className:"history-icon-button",disabled:"[REDACTED]"===e.command||r.some(t=>t.command===e.command),onClick:()=>x(e.command),"aria-label":"置顶命令",title:"置顶",children:i.jsx(eP,{size:12,"aria-hidden":"true"})}),i.jsx("button",{className:"history-icon-button history-icon-danger",onClick:()=>m(e.id),"aria-label":"删除历史",title:"删除",children:i.jsx(W,{size:12,"aria-hidden":"true"})})]})]},e.id)),!s.length&&i.jsx("div",{className:"history-empty",children:"暂无 Shell 命令历史"}),!t&&!!s.length&&i.jsx("div",{className:"history-empty",children:"请先打开一个终端页签"})]})}let eF=[{id:"pearl",label:"珍珠白",swatch:"#f5f6fa",preview:["#f5f6fa","#4f6ef7"],cssVars:{"--ui-color-scheme":"light","--ui-root-bg":"#f5f6fa","--ui-text":"#111827","--ui-tabbar-bg":"#eef0f6","--ui-tabbar-border":"#dfe3ee","--ui-tab-bg":"#e6e9f4","--ui-tab-text":"#5b6472","--ui-tab-active-bg":"#ffffff","--ui-tab-active-text":"#111827","--ui-tab-accent":"#4f6ef7","--ui-connection-bg":"#eef0f6","--ui-connection-text":"#9ca3af","--ui-tree-bg":"#fbfcfe","--ui-tree-border":"#e5e8f0","--ui-term-col-bg":"#f5f6fa","--ui-fab-bg":"#ffffff","--ui-fab-border":"#d8dcea","--ui-muted-surface":"#eef0f6","--ui-muted-border":"#d8dcea","--ui-muted-text":"#6b7280","--ui-panel-input-bg":"#ffffff","--ui-panel-input-text":"#111827","--ui-panel-input-border":"#d8dcea","--ui-drawer-tab-text":"#6b7280","--ui-drawer-tab-active":"#111827","--ui-history-item-text":"#1f2937","--ui-history-meta":"#9ca3af","--ui-success":"#059669","--ui-error":"#dc2626"},termHostBg:"#ffffff",keybar:{bg:"#eef0f6",border:"#dfe3ee",keyBg:"#ffffff",keyBorder:"#d8dcea",keyText:"#4b5563",accent:"#4f6ef7",accentText:"#ffffff",drag:"#a5b4fc"},xterm:{background:"#ffffff",foreground:"#1f2937",cursor:"#4f6ef7",selectionBackground:"#c7d2fe",black:"#24292e",red:"#d73a49",green:"#22863a",yellow:"#b08800",blue:"#005cc5",magenta:"#6f42c1",cyan:"#1b7c83",white:"#6a737d",brightBlack:"#959da5",brightWhite:"#fafbfc"}},{id:"scifi",label:"科幻霓虹",swatch:"#050a14",preview:["#050a14","#22d3ee"],cssVars:{"--ui-color-scheme":"dark","--ui-root-bg":"#050a14","--ui-text":"#e2f3ff","--ui-tabbar-bg":"#0a1220","--ui-tabbar-border":"#10263c","--ui-tab-bg":"#0d1626","--ui-tab-text":"#5c7893","--ui-tab-active-bg":"#122036","--ui-tab-active-text":"#e2f3ff","--ui-tab-accent":"#22d3ee","--ui-connection-bg":"#0a1220","--ui-connection-text":"#5c7893","--ui-tree-bg":"#0d1626","--ui-tree-border":"#10263c","--ui-term-col-bg":"#050a14","--ui-fab-bg":"#122036","--ui-fab-border":"#155e75","--ui-muted-surface":"#0d1626","--ui-muted-border":"#164e63","--ui-muted-text":"#9fb8d0","--ui-panel-input-bg":"#0a1220","--ui-panel-input-text":"#e2f3ff","--ui-panel-input-border":"#164e63","--ui-drawer-tab-text":"#5c7893","--ui-drawer-tab-active":"#e2f3ff","--ui-history-item-text":"#d5ecfb","--ui-history-meta":"#5c7893","--ui-success":"#34d399","--ui-error":"#fb7185"},termHostBg:"#0a1220",keybar:{bg:"#0a1220",border:"#10263c",keyBg:"#0d1626",keyBorder:"#164e63",keyText:"#9fb8d0",accent:"#22d3ee",accentText:"#04121a",drag:"#155e75"},xterm:{background:"#0a1220",foreground:"#e2f3ff",cursor:"#22d3ee",selectionBackground:"#164e63",black:"#0d1626",red:"#fb7185",green:"#34d399",yellow:"#fbbf24",blue:"#38bdf8",magenta:"#e879f9",cyan:"#22d3ee",white:"#e2f3ff",brightBlack:"#5c7893",brightWhite:"#ffffff"}},{id:"noir",label:"暗夜黑",swatch:"#0f1115",preview:["#0f1115","#a78bfa"],cssVars:{"--ui-color-scheme":"dark","--ui-root-bg":"#0f1115","--ui-text":"#eceff4","--ui-tabbar-bg":"#14171d","--ui-tabbar-border":"#232833","--ui-tab-bg":"#191d24","--ui-tab-text":"#6b7280","--ui-tab-active-bg":"#1f242d","--ui-tab-active-text":"#eceff4","--ui-tab-accent":"#a78bfa","--ui-connection-bg":"#14171d","--ui-connection-text":"#6b7280","--ui-tree-bg":"#191d24","--ui-tree-border":"#232833","--ui-term-col-bg":"#0f1115","--ui-fab-bg":"#1f242d","--ui-fab-border":"#2a3040","--ui-muted-surface":"#191d24","--ui-muted-border":"#2a3040","--ui-muted-text":"#aab2bf","--ui-panel-input-bg":"#14171d","--ui-panel-input-text":"#eceff4","--ui-panel-input-border":"#2a3040","--ui-drawer-tab-text":"#6b7280","--ui-drawer-tab-active":"#eceff4","--ui-history-item-text":"#d7dce4","--ui-history-meta":"#6b7280","--ui-success":"#4ade80","--ui-error":"#f87171"},termHostBg:"#14171d",keybar:{bg:"#14171d",border:"#232833",keyBg:"#191d24",keyBorder:"#2a3040",keyText:"#aab2bf",accent:"#a78bfa",accentText:"#0f1115",drag:"#4b4470"},xterm:{background:"#14171d",foreground:"#eceff4",cursor:"#a78bfa",selectionBackground:"#3b3654",black:"#191d24",red:"#f87171",green:"#4ade80",yellow:"#fbbf24",blue:"#60a5fa",magenta:"#c084fc",cyan:"#67e8f9",white:"#eceff4",brightBlack:"#6b7280",brightWhite:"#ffffff"}},{id:"mist",label:"雾白靛蓝",swatch:"#f7f8fb",preview:["#f7f8fb","#4258c4"],cssVars:{"--ui-color-scheme":"light","--ui-root-bg":"#f7f8fb","--ui-text":"#252d3d","--ui-tabbar-bg":"#e4e9f2","--ui-tabbar-border":"#dce3ef","--ui-tab-bg":"#e9edf5","--ui-tab-text":"#5b687f","--ui-tab-active-bg":"#f7f8fb","--ui-tab-active-text":"#252d3d","--ui-tab-accent":"#4258c4","--ui-connection-bg":"#e4e9f2","--ui-connection-text":"#5b687f","--ui-tree-bg":"#e9edf5","--ui-tree-border":"#dce3ef","--ui-term-col-bg":"#f7f8fb","--ui-fab-bg":"#ffffff","--ui-fab-border":"#dce3ef","--ui-muted-surface":"#e9edf5","--ui-muted-border":"#dce3ef","--ui-muted-text":"#5b687f","--ui-panel-input-bg":"#ffffff","--ui-panel-input-text":"#252d3d","--ui-panel-input-border":"#dce3ef","--ui-drawer-tab-text":"#5b687f","--ui-drawer-tab-active":"#252d3d","--ui-history-item-text":"#252d3d","--ui-history-meta":"#5b687f","--ui-success":"#247860","--ui-error":"#be3d50"},termHostBg:"#ffffff",keybar:{bg:"#e4e9f2",border:"#dce3ef",keyBg:"#ffffff",keyBorder:"#dce3ef",keyText:"#5b687f",accent:"#4258c4",accentText:"#ffffff",drag:"#8a9ac5"},xterm:{background:"#ffffff",foreground:"#252d3d",cursor:"#4258c4",selectionBackground:"#d6dcf4",black:"#252d3d",red:"#be3d50",green:"#247860",yellow:"#956018",blue:"#346faa",magenta:"#7456a6",cyan:"#277784",white:"#5b687f",brightBlack:"#5b687f",brightWhite:"#f7f8fb"}},{id:"glass",label:"毛玻璃",swatch:"#c3dbee",preview:["#c3dbee","#357b88"],cssVars:{"--ui-color-scheme":"light","--ui-root-bg":"#edf3f4","--ui-text":"#263e48","--ui-tabbar-bg":"#e0ebee","--ui-tabbar-border":"#d3e1e5","--ui-tab-bg":"#e5eef1","--ui-tab-text":"#58727c","--ui-tab-active-bg":"#edf3f4","--ui-tab-active-text":"#263e48","--ui-tab-accent":"#357b88","--ui-connection-bg":"#e0ebee","--ui-connection-text":"#58727c","--ui-tree-bg":"#e5eef1","--ui-tree-border":"#d3e1e5","--ui-term-col-bg":"#edf3f4","--ui-fab-bg":"#ffffff","--ui-fab-border":"#d3e1e5","--ui-muted-surface":"#e5eef1","--ui-muted-border":"#d3e1e5","--ui-muted-text":"#58727c","--ui-panel-input-bg":"#ffffff","--ui-panel-input-text":"#263e48","--ui-panel-input-border":"#d3e1e5","--ui-drawer-tab-text":"#58727c","--ui-drawer-tab-active":"#263e48","--ui-history-item-text":"#263e48","--ui-history-meta":"#58727c","--ui-success":"#247860","--ui-error":"#be3d50"},termHostBg:"#ffffff",keybar:{bg:"#e0ebee",border:"#d3e1e5",keyBg:"#ffffff",keyBorder:"#d3e1e5",keyText:"#58727c",accent:"#357b88",accentText:"#ffffff",drag:"#8a9ac5"},xterm:{background:"#ffffff",foreground:"#263e48",cursor:"#357b88",selectionBackground:"#d6dcf4",black:"#263e48",red:"#be3d50",green:"#247860",yellow:"#956018",blue:"#346faa",magenta:"#7456a6",cyan:"#277784",white:"#58727c",brightBlack:"#58727c",brightWhite:"#edf3f4"}},{id:"pine",label:"暖灰松绿",swatch:"#f6f7f3",preview:["#f6f7f3","#356c55"],cssVars:{"--ui-color-scheme":"light","--ui-root-bg":"#f6f7f3","--ui-text":"#2d382f","--ui-tabbar-bg":"#e2e7df","--ui-tabbar-border":"#d9e1d6","--ui-tab-bg":"#e8ece5","--ui-tab-text":"#5b6e61","--ui-tab-active-bg":"#f6f7f3","--ui-tab-active-text":"#2d382f","--ui-tab-accent":"#356c55","--ui-connection-bg":"#e2e7df","--ui-connection-text":"#5b6e61","--ui-tree-bg":"#e8ece5","--ui-tree-border":"#d9e1d6","--ui-term-col-bg":"#f6f7f3","--ui-fab-bg":"#ffffff","--ui-fab-border":"#d9e1d6","--ui-muted-surface":"#e8ece5","--ui-muted-border":"#d9e1d6","--ui-muted-text":"#5b6e61","--ui-panel-input-bg":"#ffffff","--ui-panel-input-text":"#2d382f","--ui-panel-input-border":"#d9e1d6","--ui-drawer-tab-text":"#5b6e61","--ui-drawer-tab-active":"#2d382f","--ui-history-item-text":"#2d382f","--ui-history-meta":"#5b6e61","--ui-success":"#357450","--ui-error":"#b6454d"},termHostBg:"#ffffff",keybar:{bg:"#e2e7df",border:"#d9e1d6",keyBg:"#ffffff",keyBorder:"#d9e1d6",keyText:"#5b6e61",accent:"#356c55",accentText:"#ffffff",drag:"#86a38b"},xterm:{background:"#ffffff",foreground:"#2d382f",cursor:"#356c55",selectionBackground:"#d4e1d9",black:"#2d382f",red:"#b6454d",green:"#357450",yellow:"#8c641e",blue:"#3d7189",magenta:"#805e88",cyan:"#317c74",white:"#5b6e61",brightBlack:"#5b6e61",brightWhite:"#f6f7f3"}},{id:"graphite",label:"石墨夜色",swatch:"#202630",preview:["#202630","#a4bad2"],cssVars:{"--ui-color-scheme":"dark","--ui-root-bg":"#202630","--ui-text":"#e4ebf4","--ui-tabbar-bg":"#161c25","--ui-tabbar-border":"#384859","--ui-tab-bg":"#161c25","--ui-tab-text":"#b0bfd3","--ui-tab-active-bg":"#202630","--ui-tab-active-text":"#e4ebf4","--ui-tab-accent":"color-mix(in srgb, #386a9a 40%, #ecf0f8)","--ui-connection-bg":"#161c25","--ui-connection-text":"#b0bfd3","--ui-tree-bg":"#161c25","--ui-tree-border":"#384859","--ui-term-col-bg":"#202630","--ui-fab-bg":"#293440","--ui-fab-border":"#384859","--ui-muted-surface":"#161c25","--ui-muted-border":"#384859","--ui-muted-text":"#b0bfd3","--ui-panel-input-bg":"#293440","--ui-panel-input-text":"#e4ebf4","--ui-panel-input-border":"#384859","--ui-drawer-tab-text":"#b0bfd3","--ui-drawer-tab-active":"#e4ebf4","--ui-history-item-text":"#e4ebf4","--ui-history-meta":"#b0bfd3","--ui-success":"#89d3af","--ui-error":"#f097a2"},termHostBg:"#202630",keybar:{bg:"#161c25",border:"#384859",keyBg:"#293440",keyBorder:"#384859",keyText:"#b0bfd3",accent:"#a4bad2",accentText:"#14212b",drag:"#61778c"},xterm:{background:"#202630",foreground:"#e4ebf4",cursor:"#a4bad2",selectionBackground:"#2a3e53",black:"#161c25",red:"#f097a2",green:"#89d3af",yellow:"#e5c58a",blue:"#9accf0",magenta:"#c4b3e1",cyan:"#91cfd6",white:"#e4ebf4",brightBlack:"#b0bfd3",brightWhite:"#ffffff"}}],eD="pearl",e$=Object.fromEntries(eF.map(e=>[e.id,e])),eH={dark:"noir",black:"noir",gray:"noir",blue:"noir",red:"noir",yellow:"noir",green:"noir",white:"pearl"};function eU(e){if(e&&e in e$)return e$[e];let t=e?eH[e]:void 0;return t?e$[t]:e$[eD]}function eq({themeId:e,onThemeChange:t}){let[r,a]=(0,d.useState)(!1),n=(0,d.useRef)(null),o=(0,d.useRef)(null),s=(0,d.useRef)(null),[l,c]=(0,d.useState)(null),[u,p]=(0,d.useState)({top:-1e3,left:0});return(0,i.jsxs)("div",{ref:n,className:"theme-picker",children:[i.jsx("button",{ref:o,type:"button",className:"file-drawer-toggle","aria-label":"换肤",title:"换肤","aria-expanded":r,"aria-haspopup":"dialog",onClick:()=>a(e=>!e),children:i.jsx(M,{size:17,"aria-hidden":"true"})}),r&&l&&(0,z.createPortal)((0,i.jsxs)("div",{ref:s,className:"theme-popover",role:"dialog","aria-label":"选择皮肤","data-toolbar-overlay":!0,style:{position:"fixed",...u,zIndex:210,width:Math.min(176,innerWidth-16),maxHeight:"calc(100dvh - 16px)",overflowY:"auto",boxSizing:"border-box",padding:8,borderRadius:10,border:"1px solid var(--ui-tabbar-border, #282b36)",background:"var(--ui-tab-active-bg, #262b38)",boxShadow:"0 10px 28px rgba(0,0,0,.45)"},children:[i.jsx("div",{style:{fontSize:10,color:"var(--ui-connection-text, #777b8c)",margin:"2px 4px 6px",letterSpacing:.5},children:"皮肤"}),i.jsx("div",{style:{display:"flex",flexDirection:"column",gap:2},children:eF.map(r=>{let n=r.id===e;return(0,i.jsxs)("button",{type:"button",className:"theme-popover-item","aria-label":r.label,"aria-pressed":n,onPointerDown:e=>e.stopPropagation(),onClick:()=>{t(r.id),a(!1)},style:{background:n?"color-mix(in srgb, var(--ui-tab-accent, #7aa2f7) 14%, transparent)":"transparent"},children:[i.jsx("span",{style:{width:18,height:18,borderRadius:5,flexShrink:0,background:`linear-gradient(135deg, ${r.preview[0]} 55%, ${r.preview[1]} 55%)`,boxShadow:"inset 0 0 0 1px rgba(128,128,160,.25)"}}),i.jsx("span",{style:{flex:1,textAlign:"left",fontSize:12,fontWeight:n?600:400,color:n?"var(--ui-tab-active-text, #edf0f7)":"var(--ui-tab-text, #8f93a4)"},children:r.label}),n&&i.jsx("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"var(--ui-tab-accent, #7aa2f7)",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:i.jsx("path",{d:"m5 12 4 4L19 6"})})]},r.id)})})]}),l)]})}let eV=m("PanelsTopLeft",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}],["path",{d:"M9 21V9",key:"1oto5p"}]]);function eG({value:e,onChange:t}){let r="agent-rail"===e;return i.jsx("button",{type:"button",className:"file-drawer-toggle navigation-layout-toggle","aria-label":"切换布局","aria-pressed":r,title:r?"单层抬头 \xb7 切换到原布局":"原布局 \xb7 切换到单层抬头",onClick:()=>t("classic"===e?"agent-rail":"classic"),children:i.jsx(eV,{size:17,"aria-hidden":"true"})})}let eJ="agent-ui-prefs";function eX({groupId:e,title:t,onFrame:r,onLoad:a,view:n,discussionId:o}){let s=(0,d.useRef)(null),[l,u]=(0,d.useState)("loading"),[p,f]=(0,d.useState)(0),b=void 0===e;return(0,i.jsxs)("div",{"aria-busy":"loading"===l,className:"jsx-92e497a22f5803ef collaboration-pane",children:[i.jsx("iframe",{ref:e=>{s.current=e,r(e)},style:{visibility:"ready"===l?"visible":"hidden"},src:c("sessions"===n?"/app/?view=session-dashboard":b?"/app/?view=collaboration-dashboard":`/app/?view=collaboration&groupId=${encodeURIComponent(e)}${o?`&discussionId=${encodeURIComponent(o)}`:""}`),title:t,onLoad:a,onError:()=>u("error"),className:`jsx-92e497a22f5803ef webapp-frame collaboration-frame${"ready"===l?" is-ready":""}`},p),"loading"===l&&i.jsx(ef,{label:"AGENT COLLABORATION",title:"sessions"===n?"正在打开会话 Dashboard":b?"正在打开群聊列表":"正在进入群聊",caption:"sessions"===n?"正在核对运行会话与待决策事项":b?"正在加载已保存的群聊":"正在加载群成员与聊天记录",icon:i.jsx(w,{size:36,strokeWidth:1.5})}),"error"===l&&(0,i.jsxs)("div",{role:"alert",className:"jsx-92e497a22f5803ef collaboration-load-error",children:[i.jsx("strong",{className:"jsx-92e497a22f5803ef",children:"sessions"===n?"暂时无法打开会话 Dashboard":b?"暂时无法打开群聊列表":"暂时无法打开群聊"}),i.jsx("span",{className:"jsx-92e497a22f5803ef",children:"请检查连接后重试。"}),(0,i.jsxs)("button",{onClick:()=>{u("loading"),f(e=>e+1)},className:"jsx-92e497a22f5803ef",children:[i.jsx(g,{size:15}),"重新加载"]})]}),i.jsx(ep(),{id:"92e497a22f5803ef",children:".collaboration-pane.jsx-92e497a22f5803ef{position:relative;height:100%;background:var(--ui-term-col-bg,#101014)}.collaboration-frame.is-ready.jsx-92e497a22f5803ef{-webkit-animation:collaboration-appear 220ms ease-out both;-moz-animation:collaboration-appear 220ms ease-out both;-o-animation:collaboration-appear 220ms ease-out both;animation:collaboration-appear 220ms ease-out both}.collaboration-load-error.jsx-92e497a22f5803ef{position:absolute;inset:0;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-moz-box-orient:vertical;-moz-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-moz-box-pack:center;-ms-flex-pack:center;justify-content:center;gap:12px;color:var(--ui-text,#e5e7eb);background:var(--ui-term-col-bg,#101014);padding:20px;text-align:center}.collaboration-load-error.jsx-92e497a22f5803ef span.jsx-92e497a22f5803ef{font-size:13px;color:var(--ui-text-muted,#9399aa)}.collaboration-load-error.jsx-92e497a22f5803ef button.jsx-92e497a22f5803ef{display:-webkit-inline-box;display:-webkit-inline-flex;display:-moz-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;-moz-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;margin-top:6px;min-height:44px;padding:10px 16px;border:1px solid var(--ui-muted-border,#ffffff24);-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px;background:transparent;color:inherit;font:inherit;cursor:pointer}.collaboration-load-error.jsx-92e497a22f5803ef button.jsx-92e497a22f5803ef:focus-visible{outline:2px solid currentColor;outline-offset:3px}@-webkit-keyframes collaboration-appear{from{opacity:0}to{opacity:1}}@-moz-keyframes collaboration-appear{from{opacity:0}to{opacity:1}}@-o-keyframes collaboration-appear{from{opacity:0}to{opacity:1}}@keyframes collaboration-appear{from{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.collaboration-frame.is-ready.jsx-92e497a22f5803ef{-webkit-animation:none;-moz-animation:none;-o-animation:none;animation:none}}"})]})}["customer-agent","codex","claude-code","opencode","deepseek-harness","qoder","zcode","workbuddy"].filter(e=>"customer-agent"!==e);let eK={id:"remote-desktop",title:"远程桌面",kind:"remote-desktop"};function eQ(e){let t=e.find(e=>"remote-desktop"===e.kind);return t?e.map(e=>e===t?{...eK}:e):[...e,{...eK}]}let eY={id:"collaboration-dashboard",title:"群聊列表",kind:"collaboration-dashboard"};function eZ(e){return e.some(e=>e.id===eY.id)?e:[...e,{...eY}]}let e0={id:"session-dashboard",title:"Dashboard",kind:"session-dashboard"};function e1(e){return e.some(e=>e.id===e0.id)?e:[...e,{...e0}]}let e2=o()(async()=>{},{loadableGenerated:{modules:["app/web/page.tsx -> ./TerminalPane"]},ssr:!1}),e4=o()(async()=>{},{loadableGenerated:{modules:["app/web/page.tsx -> ./FileTree"]},ssr:!1}),e3=o()(async()=>{},{loadableGenerated:{modules:["app/web/page.tsx -> ./FilePreview"]},ssr:!1}),e6=o()(async()=>{},{loadableGenerated:{modules:["app/web/page.tsx -> ./AiHubPane"]},ssr:!1}),e5=o()(async()=>{},{loadableGenerated:{modules:["app/web/page.tsx -> ./FlowStudioPane"]},ssr:!1,loading:()=>i.jsx(ef,{})});function e8(){return i.jsx(eT,{children:(e,t)=>i.jsx(tr,{auth:e,onWorkspaceReady:t})})}let e7={id:"webapp-agent",title:"智能助手",kind:"webapp"},e9={id:"ai-hub",title:"AI Hub",kind:"aihub"},te={id:"flow-studio",title:"Flow Studio",kind:"flowstudio"};function tt(){return"undefined"==typeof document?eD:eU(document.getElementById("web-theme-root")?.dataset.webTheme).id}function tr({auth:e,onWorkspaceReady:t}){let[r,a]=(0,d.useState)(null),[n,o]=(0,d.useState)(0),u=(0,d.useCallback)(e=>{if(e?.openMode==="new-tab"){window.open(e.url,"_blank","noopener,noreferrer");return}a(e)},[]),p=(0,d.useCallback)(e=>a(e?.openMode==="current"?e:null),[]),f=(0,d.useRef)(null),b=(0,d.useRef)(null),m=(0,d.useRef)(null),z=(0,d.useRef)(null);(0,d.useRef)(null),(0,d.useRef)(!1);let[N,R]=(0,d.useState)({}),T=(0,d.useRef)(new Map),[M,P]=(0,d.useState)(0),[I,A]=(0,d.useState)(!1),[L,_]=(0,d.useState)(!1),W=(0,d.useRef)(()=>{}),{state:B,epoch:O,rpc:F,onEvent:D,onTerminalData:$,onTerminalReset:H,sendTerminalInput:U}=function(e,t,r){let[a,i]=(0,d.useState)({connected:!1,error:null}),[n,o]=(0,d.useState)(0),s=(0,d.useRef)(null),c=(0,d.useRef)(0),u=(0,d.useRef)(new Map),p=(0,d.useRef)([]),f=(0,d.useRef)(0),b=(0,d.useRef)(new Map),m=(0,d.useRef)(new Map),h=(0,d.useRef)(new Map),x=(0,d.useRef)(1e3),g=(0,d.useRef)(!1),y=(0,d.useRef)(null),w=(0,d.useRef)(e),v=(0,d.useRef)(t),k=(0,d.useRef)(r);w.current=e,v.current=t,k.current=r;let j=(0,d.useCallback)((e,t)=>{let r=b.current.get(e);return r||b.current.set(e,r=new Set),r.add(t),()=>r.delete(t)},[]),S=(0,d.useCallback)((e,t)=>{let r=m.current.get(e);return r||m.current.set(e,r=new Set),r.add(t),()=>r.delete(t)},[]),C=(0,d.useCallback)((e,t)=>{let r=h.current.get(e);return r||h.current.set(e,r=new Set),r.add(t),()=>r.delete(t)},[]),z=(0,d.useCallback)((e,t)=>{let r=s.current;if(!r||r.readyState!==WebSocket.OPEN)return!1;let a=new TextEncoder().encode(t),i=new Uint8Array(6+a.byteLength),n=new DataView(i.buffer);return i[0]=1,i[1]=1,n.setUint32(2,e),i.set(a,6),r.send(i),!0},[]),N=(0,d.useCallback)(e=>{let t=s.current;t?.readyState===WebSocket.OPEN?t.send(e):p.current.push(e)},[]),R=(0,d.useCallback)((e,t={},r=15e3)=>new Promise((a,i)=>{if(e.startsWith("browser:")&&s.current?.readyState!==WebSocket.OPEN){i(Object.assign(Error("远程连接已断开,请等待重新连接"),{code:"EOFFLINE"}));return}let n=++f.current,o=setTimeout(()=>{u.current.delete(n),i(Error(`${e} timeout`))},r);u.current.set(n,{resolve:a,reject:i,timer:o,type:e}),N(JSON.stringify({type:e,_req:n,...t}))}),[N]),T=(0,d.useCallback)(async()=>{let e,t;g.current=!1;let r=++c.current;y.current&&(clearInterval(y.current),y.current=null);let a=s.current;if(a){a.onopen=a.onmessage=a.onerror=a.onclose=null;try{a.close()}catch{}}try{e=await v.current()}catch{r===c.current&&k.current();return}if(r===c.current&&!g.current){try{t=new WebSocket(`${function(){let e=new URL("/ws",l());return e.protocol="https:"===e.protocol?"wss:":"ws:",e.href}()}?nonce=${encodeURIComponent(e)}`)}catch(e){i({connected:!1,error:String(e)});return}t.binaryType="arraybuffer",s.current=t,t.onopen=()=>{if(r!==c.current||s.current!==t)return;for(let e of(x.current=1e3,i({connected:!0,error:null}),o(e=>e+1),p.current.splice(0)))t.send(e);let e=Date.now();y.current=setInterval(()=>{if(s.current!==t||t.readyState!==WebSocket.OPEN){clearInterval(y.current),y.current=null;return}if(Date.now()-e>25e3){try{t.close()}catch{}return}try{t.send(JSON.stringify({type:"ping"}))}catch{}},1e4);let a=()=>{e=Date.now()};t.addEventListener("message",a),t.addEventListener("close",()=>t.removeEventListener("message",a),{once:!0})},t.onmessage=e=>{let a;if(r===c.current&&s.current===t){if("string"!=typeof e.data){let t=new Uint8Array(e.data);if(t.byteLength>=6&&1===t[0]&&(2===t[1]||6===t[1])){let e=new DataView(t.buffer,t.byteOffset,t.byteLength).getUint32(2);m.current.get(e)?.forEach(e=>e(t.subarray(6),6===t[1]))}else if(t.byteLength>=6&&1===t[0]&&3===t[1]){let e=new DataView(t.buffer,t.byteOffset,t.byteLength).getUint32(2);h.current.get(e)?.forEach(e=>e())}else w.current(t);return}try{a=JSON.parse(e.data)}catch{return}if("error"===a.type&&null!=a.id){let e=u.current.get(a.id);if(e){u.current.delete(a.id),clearTimeout(e.timer);let t=Object.assign(Error(a.error||"gateway error"),{code:a.code});e.reject(t)}return}if(null!=a.id&&"string"==typeof a.type&&a.type.endsWith(":result")){let e=u.current.get(a.id);if(e?.type==="fs:preview-open"&&"string"==typeof a.url){var i;a.url=i=a.url}e&&(u.current.delete(a.id),clearTimeout(e.timer),e.resolve(a));return}b.current.get(a.type)?.forEach(e=>e(a))}},t.onclose=e=>{if(r!==c.current||s.current!==t)return;for(let[e,t]of(y.current&&(clearInterval(y.current),y.current=null),s.current=null,u.current))t.type.startsWith("browser:")&&(clearTimeout(t.timer),u.current.delete(e),t.reject(Object.assign(Error("远程连接已断开,请重新接管"),{code:"EOFFLINE"})));if(i({connected:!1,error:null}),4001===e.code||4003===e.code){k.current();return}if(g.current)return;let a=x.current;x.current=Math.min(2*a,8e3),setTimeout(()=>{g.current||r!==c.current||T()},a)},t.onerror=()=>{}}},[]);return{state:a,epoch:n,rpc:R,onEvent:j,onTerminalData:S,onTerminalReset:C,sendTerminalInput:z,reconnect:T}}((0,d.useCallback)(e=>{let t=function(e){let t=e instanceof Uint8Array?e:new Uint8Array(e.buffer,e.byteOffset,e.byteLength);if(t.byteLength<10||1!==t[0]||t[1]!==eN.watcherFrame&&t[1]!==eN.producerFrame)return null;let r=new DataView(t.buffer,t.byteOffset,t.byteLength);return{type:t[1],channelId:r.getUint32(2,!1),sequence:r.getUint32(6,!1),payload:t.subarray(10)}}(e);if(t&&t.type===eN.watcherFrame)for(let e of(W.current(t.channelId,t.sequence),[f,b])){if(!e.current?.contentWindow)continue;let r=t.payload.slice().buffer;e.current.contentWindow.postMessage({type:"agent-web-shell:browser-frame:v1",channelId:t.channelId,sequence:t.sequence,data:r},window.location.origin,[r])}},[]),e.getWsNonce,e.refresh),q=(0,d.useMemo)(()=>({request:(e,t,r)=>F(e,t,r),subscribe:(e,t)=>D("fs:event",t)}),[D,F]);W.current=(e,t)=>{F("browser:frame-ack",{channelId:e,sequence:t}).catch(()=>void 0)};let[V,G]=(0,d.useState)([{...e7}]);(0,d.useRef)(V).current=V;let[J,X]=(0,d.useState)(e7.id),[K,Q]=(0,d.useState)({});(0,d.useRef)(!1);let[Z,et]=(0,d.useState)(!1),[er,ea]=(0,d.useState)(0);e.user?.id,(0,d.useRef)(null);let ei=(0,d.useRef)(new Map),en=(0,d.useRef)(new Map),eo=(0,d.useCallback)((e,t)=>{ei.current.set(e,t);let r=window.setTimeout(()=>{if(ei.current.get(e)!==t)return;let r=en.current.get(e);r&&(en.current.delete(e),t(r,!0))},180);return()=>{window.clearTimeout(r),ei.current.get(e)===t&&ei.current.delete(e)}},[]),es=(0,d.useCallback)(e=>{if(!J||V.find(e=>e.id===J)?.kind)return;let t=ei.current.get(J);t?t(e):F("term:input",{id:J,data:`\x15${e}`}).catch(()=>{}),eg(!1)},[J,F,V]),[ec,ed]=(0,d.useState)(!1),[eu,ep]=(0,d.useState)({}),[em,eh]=(0,d.useState)(null),[ex,eg]=(0,d.useState)(!1),[ew,eR]=(0,d.useState)("files"),[eT,eE]=(0,d.useState)(null),[eM,eP]=(0,d.useState)(!0),[eI,eA]=(0,d.useState)(null),[eL,e_]=(0,d.useState)(!1),[eW,eB]=(0,d.useState)([]),[eF,eD]=(0,d.useState)(ez.map((e,t)=>({id:`default-${t+1}`,command:e}))),[e$,eH]=(0,d.useState)(tt),[eV,e8]=(0,d.useState)("agent-rail"),[tr,ti]=(0,d.useState)(!1),tn=(0,d.useCallback)(e=>{e8(e);try{!function(e,t){try{let r;try{r=JSON.parse(e.getItem(eJ)??"null")}catch{r=null}let a=r&&"object"==typeof r&&!Array.isArray(r)?r:{},i=a.state&&"object"==typeof a.state&&!Array.isArray(a.state)?a.state:{};e.setItem(eJ,JSON.stringify({...a,version:a.version??4,state:{...i,navigationLayout:t}}))}catch{}}(window.localStorage,e)}catch{}},[]),[to,ts]=(0,d.useState)(!1),tl=function(e){let[t,r]=(0,d.useState)(()=>({userId:"",revision:0,visibleTools:[...ev],savedPages:null,updatedAt:""})),a=(0,d.useRef)(t),[i,n]=(0,d.useState)(!1),[o,s]=(0,d.useState)(!1),l=(0,d.useRef)(!1),c=(0,d.useRef)(!0),u=(0,d.useRef)(0),[p,f]=(0,d.useState)(""),[b,m]=(0,d.useState)(""),h=(0,d.useCallback)(e=>{a.current=e,c.current&&r(e)},[]),x=(0,d.useCallback)(async()=>{if(l.current)return;let t=++u.current;f(""),m("");try{let r=await eC(e);if(null===r.savedPages){let t=Y().find(e=>e.origin===location.origin)?.pages??[];try{r=await eC(e,{expectedRevision:r.revision,initializePages:t})}catch(t){if(!(t instanceof eS)||409!==t.status)throw t;if(r=await eC(e),null===r.savedPages)throw Error("电脑配置已更新,请重试旧页面导入。")}}if(!c.current||t!==u.current)return;h(r),n(!0);try{ee(Y().map(e=>{if(e.origin!==location.origin)return e;let{pages:t,...r}=e;return{...r,pagesMigrated:!0}}))}catch{}}catch(e){c.current&&t===u.current&&f(e instanceof Error?e.message:"无法读取电脑配置。")}},[h,e]),g=(0,d.useCallback)(async t=>{if(!i||l.current)throw Error("配置尚未就绪,请稍后重试。");l.current=!0,u.current++,s(!0),f(""),m("");let r=a.current;t.visibleTools&&h({...r,visibleTools:t.visibleTools});try{h(await eC(e,{...t,expectedRevision:r.revision})),c.current&&m("已保存到当前电脑")}catch(a){if(h(r),a instanceof eS&&409===a.status)try{h(await eC(e))}catch{}let t=a instanceof Error?a.message:"电脑配置保存失败,请重试。";throw c.current&&f(t),Error(t)}finally{l.current=!1,c.current&&s(!1)}},[h,e,i]);return{settings:t,loaded:i,saving:o,error:p,notice:b,reload:x,setVisibleTools:e=>g({visibleTools:ek(e)}),setSavedPages:e=>g({savedPages:ej(e)})}}(e.csrfToken),[tc,td]=(0,d.useState)(!1),tu=eU(e$),tp=(0,d.useRef)(null),[tf,tb]=(0,d.useState)(0),[tm,th]=(0,d.useState)(!1),tx=(0,d.useRef)(null),tg=(0,d.useRef)(null),ty=(0,d.useCallback)(e=>{for(let t of[f.current,b.current,m.current,z.current,...T.current.values()])t?.contentWindow?.postMessage({type:"agent-web-shell:skin:v1",skin:e},window.location.origin)},[]),tw=(0,d.useCallback)(()=>{if(ty(e$),tr)for(let e of[f.current,b.current,m.current,z.current,...T.current.values()])e?.contentWindow?.postMessage({type:"agent-web-shell:navigation-layout:v1",navigationLayout:eV},window.location.origin)},[e$,eV,tr,ty]);(0,d.useRef)(0);let tv=J?K[J]??null:null;(0,d.useCallback)(t=>{fetch("/api/web-console/preferences",{method:"PATCH",credentials:"same-origin",headers:{"content-type":"application/json","x-csrf-token":e.csrfToken},body:JSON.stringify(t)}).catch(()=>{})},[e.csrfToken]),(0,d.useCallback)(t=>{e.csrfToken&&fetch("/api/web-console/device-state",{method:"PUT",credentials:"same-origin",keepalive:!0,headers:{"content-type":"application/json","x-csrf-token":e.csrfToken},body:JSON.stringify(t)}).catch(()=>{})},[e.csrfToken]);let tk=(0,d.useCallback)(e=>{eh(e),eg(!1)},[]),tj=(0,d.useCallback)(()=>{if(V.length>=8)return;let e=`t-web-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`;G(t=>t.length>=8?t:[...t,{id:e,title:`Terminal ${t.length+1}`}]),X(e)},[V.length]),tS=(0,d.useCallback)(e=>{let t=V.find(e=>e.id===J);if(t?.kind&&"webapp"!==t.kind)return;if(t&&!t.kind){let r=ei.current.get(t.id);r?r(e,!0):en.current.set(t.id,e),eg(!1);return}let r=V.length>=8?V.find(e=>!e.kind):null,a=r?.id??`t-web-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`;r?en.current.set(a,e):G(t=>[...t,{id:a,title:`Terminal ${t.length+1}`,initialCommand:e}]),X(a),eg(!1)},[J,V]),tC=e=>{if(e===e7.id)return;let t=V.find(t=>t.id===e)?.kind;"remote-desktop"===t&&(P(0),_(!1),F("browser:unwatch").catch(()=>{})),(t||window.confirm("关闭页签会终止该终端进程,确认关闭?"))&&(G(t=>{let r=t.filter(t=>t.id!==e);return J===e&&X(r[0]?.id??null),r}),t||F("term:kill",{id:e}).catch(()=>{}))},tz=(0,d.useCallback)(()=>{G(e=>{let t=e.find(e=>"aihub"===e.kind);return t?(X(t.id),e):(X(e9.id),[...e,{...e9}])})},[]),tN=(0,d.useCallback)(()=>{G(e=>{let t=e.find(e=>"flowstudio"===e.kind);return t?(X(t.id),e):(X(te.id),[...e,{...te}])})},[]),tR=(0,d.useCallback)(()=>{G(eQ),X(eK.id)},[]),tT=(0,d.useCallback)(e=>{if(!J||V.length<2)return;let t=(V.findIndex(e=>e.id===J)+e+V.length)%V.length;X(V[t].id)},[J,V]),tE=Math.max(0,V.findIndex(e=>e.id===J)),tM=V[tE]?.kind==="webapp"?tu.cssVars["--ui-term-col-bg"]:tu.termHostBg,tP={...ta.root,...tu.cssVars,"--ui-active-content-bg":tM,"--ui-terminal-bg":tu.termHostBg,"--ui-primary-text":tu.keybar.accentText,background:"var(--ui-root-bg)",color:"var(--ui-text)"},tI=(0,d.useCallback)(()=>{tp.current=null,tb(0),th(!1)},[]),tA=(0,d.useCallback)(e=>{Math.abs(e)>=64&&V.length>1&&tT(e<0?1:-1),tI()},[V.length,tT,tI]),tL=e=>e instanceof Element&&!!e.closest(".terminal-screen");return(0,d.useCallback)((e="smooth")=>{let t=tg.current;if(!t||!J)return;let r=t.querySelector(`[data-terminal-id="${J}"]`);if(!r)return;if(r===t.querySelector("[data-terminal-id]")){t&&(t.scrollLeft=0);return}let a=t.querySelector(".terminal-connection"),i=a?.offsetWidth??0,n=r.offsetLeft,o=n+r.offsetWidth,s=t.scrollLeft,l=s+t.clientWidth-i;n<s+8?t.scrollTo({left:Math.max(0,n-8),behavior:e}):o>l-8&&t.scrollTo({left:o-t.clientWidth+i+8,behavior:e})},[J]),(0,i.jsxs)("div",{className:`web-root ${I&&J===eK.id&&!r?"is-remote-fullscreen":""}`,style:tP,children:[i.jsx("style",{dangerouslySetInnerHTML:{__html:s}}),(0,i.jsxs)("div",{className:"terminal-tabs",children:[r&&(0,i.jsxs)("div",{className:"computer-page-heading",children:[i.jsx("button",{type:"button",className:"file-drawer-toggle","aria-label":"返回电脑会话",title:"返回电脑会话",onClick:()=>a(null),children:i.jsx(h,{size:18})}),i.jsx("span",{children:r.name}),i.jsx("a",{className:"file-drawer-toggle",href:r.url,target:"_blank",rel:"noopener noreferrer","aria-label":"在新页面打开当前页面",title:"打开原页面",children:i.jsx(x,{size:16})})]}),i.jsx("div",{className:"terminal-tab-list",ref:tg,hidden:!!r,children:V.map(e=>(0,i.jsxs)("div",{"data-terminal-id":e.id,draggable:!0,className:`terminal-tab ${e.id===J?"active":""}`,onDragStart:()=>{tx.current=e.id},onDragOver:e=>e.preventDefault(),onDrop:t=>{t.preventDefault();let r=tx.current;tx.current=null,r&&r!==e.id&&G(t=>{let a=t.findIndex(e=>e.id===r),i=t.findIndex(t=>t.id===e.id);if(a<0||i<0)return t;let n=[...t],[o]=n.splice(a,1);return n.splice(i,0,o),F("term:reorder",{ids:n.filter(e=>!e.kind).map(e=>e.id)}).catch(()=>{}),n})},onClick:()=>X(e.id),onDoubleClick:()=>{if(e.kind)return;let t=window.prompt("页签名称",e.title)?.trim();t&&F("term:rename",{id:e.id,title:t}).then(()=>G(r=>r.map(r=>r.id===e.id?{...r,title:t}:r))).catch(()=>{})},children:[i.jsx("span",{children:e.title}),"webapp"!==e.kind&&i.jsx("button",{tabIndex:-1,onClick:t=>{t.stopPropagation(),tC(e.id)},children:"\xd7"})]},e.id))}),i.jsx("button",{className:"terminal-add","aria-label":"新建终端页签",hidden:!!r,disabled:V.length>=8,onClick:tj,children:"+"}),i.jsx("div",{className:"terminal-connection",children:i.jsx(ey,{glass:"glass"===e$,compact:"agent-rail"===eV,avatar:i.jsx(el,{username:e.user?.username??"?",connected:B.connected,accent:tu.keybar.accent,accentText:tu.keybar.accentText,selectedPageId:r?.id,onSelectPage:u,onUpdatePage:p,configuration:tl,csrfToken:e.csrfToken}),items:[{id:"refresh",content:i.jsx("button",{type:"button",className:"file-drawer-toggle","aria-label":"刷新页面",title:"刷新页面",onClick:()=>r?o(e=>e+1):window.location.reload(),children:i.jsx(g,{size:17,"aria-hidden":"true"})})},{id:"dashboard",content:i.jsx("button",{type:"button",className:"file-drawer-toggle","aria-label":"打开会话 Dashboard",title:"Dashboard \xb7 会话总览",onClick:()=>{a(null),G(e1),X(e0.id)},children:i.jsx(y,{size:17,"aria-hidden":"true"})})},{id:"collaboration",content:i.jsx("button",{type:"button",className:"file-drawer-toggle","aria-label":"打开群聊列表",title:"群聊列表",onClick:()=>{a(null),G(eZ),X(eY.id)},children:i.jsx(w,{size:17,"aria-hidden":"true"})})},{id:"install",content:i.jsx(E,{})},{id:"remote",content:i.jsx("button",{type:"button",className:"file-drawer-toggle","aria-label":"打开远程桌面",title:"远程桌面 \xb7 浏览器直播",onClick:()=>{a(null),tR()},children:i.jsx(v,{size:17,"aria-hidden":"true"})})},{id:"ai-hub",content:i.jsx("button",{type:"button",className:"file-drawer-toggle","aria-label":"打开 AI Hub",title:"AI Hub \xb7 多模型对比",onClick:()=>{a(null),tz()},children:i.jsx(k,{size:17,"aria-hidden":"true"})})},{id:"flow",content:i.jsx("button",{type:"button",className:"file-drawer-toggle","aria-label":"打开数字人",title:"数字人 \xb7 Flow Studio",onClick:()=>{a(null),tN()},children:i.jsx(j,{size:17,"aria-hidden":"true"})})},{id:"theme",content:(0,i.jsxs)("div",{className:"web-appearance-controls",children:[i.jsx(eq,{themeId:e$,onThemeChange:eH}),i.jsx(eG,{value:eV,onChange:tn})]}),compactItems:[{id:"theme",content:i.jsx(eq,{themeId:e$,onThemeChange:eH})},{id:"navigation-layout",content:i.jsx(eG,{value:eV,onChange:tn})}]},{id:"files",content:i.jsx("button",{type:"button",className:"file-drawer-toggle","aria-label":ex?"关闭我的文件":"打开我的文件",title:"我的文件","aria-expanded":ex,onClick:()=>{a(null),eg(e=>!e)},children:i.jsx(S,{size:17,"aria-hidden":"true"})})}].filter(e=>tl.settings.visibleTools.some(t=>t===e.id)).sort((e,t)=>tl.settings.visibleTools.findIndex(t=>t===e.id)-tl.settings.visibleTools.findIndex(e=>e===t.id))})})]}),(0,i.jsxs)("main",{className:`workspace ${ex?"show-tree":""} ${em?"has-preview":""}`,hidden:!!r,style:ta.workspace,children:[i.jsx("section",{className:"term-col",style:ta.termCol,onPointerDownCapture:e=>{"touch"===e.pointerType&&tL(e.target)&&(tI(),tp.current={x:e.clientX,y:e.clientY,axis:"pending",pointerId:e.pointerId})},onPointerMoveCapture:e=>{let t=tp.current;if(!t||e.pointerId!==t.pointerId||"touch"!==e.pointerType)return;let r=e.clientX-t.x,a=e.clientY-t.y;if("pending"===t.axis){if(8>=Math.max(Math.abs(r),Math.abs(a)))return;if(Math.abs(a)>=1.2*Math.abs(r)){tp.current=null;return}t.axis="horizontal",th(!0);let e=r=>{window.removeEventListener("pointerup",e),window.removeEventListener("pointercancel",e),tp.current===t&&tI()};window.addEventListener("pointerup",e),window.addEventListener("pointercancel",e)}"horizontal"===t.axis&&(e.preventDefault(),tb(r))},onPointerUpCapture:e=>{let t=tp.current;if(!t||e.pointerId!==t.pointerId)return;let r=e.clientX-t.x;"horizontal"===t.axis&&Math.abs(r)>=64?tA(r):tI()},onPointerCancelCapture:tI,children:i.jsx("div",{className:"terminal-track",style:{transform:`translate3d(calc(${-(100*tE)}% + ${tf}px),0,0)`,transition:tm?"none":"transform 260ms cubic-bezier(.22,.8,.32,1)"},children:V.map(e=>i.jsx("div",{className:"terminal-slide",style:{position:"relative"},children:"webapp"===e.kind?i.jsx("iframe",{ref:f,className:"webapp-frame",src:c("/app/"),title:e.title,onLoad:tw}):"session-dashboard"===e.kind?i.jsx(eX,{view:"sessions",title:"会话 Dashboard",onFrame:e=>{z.current=e},onLoad:tw}):"collaboration-dashboard"===e.kind?i.jsx(eX,{title:"群聊列表",onFrame:e=>{m.current=e},onLoad:tw}):"collaboration"===e.kind?i.jsx(eX,{groupId:e.groupId||"",discussionId:e.discussionId,title:e.title,onFrame:t=>{t?T.current.set(e.id,t):T.current.delete(e.id)},onLoad:tw},`${e.id}-${e.discussionId??""}-${N[e.groupId||""]||0}`):"remote-desktop"===e.kind?(0,i.jsxs)("div",{style:{height:"100%",background:"var(--ui-term-col-bg, #101014)"},"aria-busy":!L,children:[i.jsx("iframe",{ref:b,className:"webapp-frame",style:{visibility:L?"visible":"hidden"},src:c("/app/?view=remote-desktop"),title:"远程桌面",onLoad:tw}),!L&&i.jsx(ef,{label:"REMOTE DESKTOP",title:"正在打开远程桌面",caption:"正在准备桌面与连接",icon:i.jsx(v,{size:36,strokeWidth:1.5})})]}):"aihub"===e.kind?i.jsx(e6,{visible:e.id===J,rpc:F}):"flowstudio"===e.kind?i.jsx(e5,{visible:e.id===J}):i.jsx(e2,{terminalId:e.id,title:e.title,initialCommand:e.initialCommand,visible:e.id===J,state:B,rpc:F,onEvent:D,onTerminalData:$,onTerminalReset:H,sendTerminalInput:U,keyOrder:eW,keybarHidden:eL,onKeyOrderChange:eB,onKeybarHiddenChange:e_,terminalTheme:tu,initialScrollLine:eu[e.id]??null,onScrollLineChange:t=>ep(r=>r[e.id]===t?r:{...r,[e.id]:t}),onRegisterFill:t=>eo(e.id,t),onCwdChange:t=>t&&Q(r=>({...r,[e.id]:t}))})},e.id))})}),ex&&i.jsx("div",{className:"drawer-mask",onClick:()=>eg(!1)}),(0,i.jsxs)("aside",{className:`tree-col ${ex?"tree-col-open":""}`,style:ta.treeCol,children:[(0,i.jsxs)("div",{className:"tree-head",style:ta.treeHead,children:[i.jsx("button",{className:"files"===ew?"drawer-tab-active":"",onClick:()=>eR("files"),children:"文件"}),i.jsx("button",{className:"history"===ew?"drawer-tab-active":"",onClick:()=>eR("history"),children:"历史"}),i.jsx("span",{className:"tree-cwd",style:ta.treeCwd,children:tv??""}),i.jsx("button",{style:{...ta.iconBtn,marginLeft:"auto",flexShrink:0},onClick:()=>eg(!1),"aria-label":"close drawer",children:i.jsx(C,{size:15,"aria-hidden":"true"})})]}),"files"===ew?i.jsx(e4,{ready:O>0,followCwd:!0,cwd:tv,gateway:q,onOpenFile:tk,selectedPath:em,initialRoot:eT,initialFollow:eM,revealRequest:eI,onTreeStateChange:(e,t)=>{eE(e),eP(t)}}):i.jsx(eO,{csrfToken:e.csrfToken,terminalId:V.find(e=>e.id===J)?.kind==="webapp"?null:J,pinnedCommands:eF,onPinnedCommandsChange:eD,onFill:es,onExecute:tS}),(0,i.jsxs)("div",{className:"tree-foot",style:ta.treeFoot,children:[i.jsx("span",{style:ta.treeFootDot}),i.jsx("span",{children:"实时同步"})]})]}),em&&i.jsx("section",{className:"preview-col",style:ta.previewCol,children:i.jsx(e3,{path:em,gateway:q,onClose:()=>eh(null)})})]}),r&&i.jsx(eb,{page:r,reloadKey:n},r.id)]})}let ta={root:{height:"100dvh",display:"flex",flexDirection:"column",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", sans-serif',overflow:"hidden"},iconBtn:{minWidth:28,height:28,borderRadius:7,border:"1px solid var(--ui-tabbar-border, #303442)",background:"var(--ui-tab-bg, #202029)",color:"var(--ui-tab-text, #aaaab8)",fontSize:13},workspace:{flex:1,minHeight:0,display:"grid",position:"relative"},treeCol:{background:"var(--ui-tree-bg, #121218)",minHeight:0,flexDirection:"column"},treeHead:{display:"flex",alignItems:"center",gap:8,padding:"10px 12px 4px",fontSize:11,textTransform:"uppercase",letterSpacing:1,color:"#778",flexShrink:0},treeCwd:{fontSize:10,color:"#556",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:150,textTransform:"none",letterSpacing:0},treeFoot:{display:"flex",alignItems:"center",gap:7,minHeight:31,padding:"6px 11px calc(env(safe-area-inset-bottom) + 6px)",borderTop:"1px solid var(--ui-tabbar-border, #282832)",boxShadow:"0 -5px 16px rgba(0,0,0,.22)",background:"var(--ui-tab-bg, #15151c)",color:"var(--ui-connection-text, #777789)",fontSize:10.5,flexShrink:0},treeFootDot:{width:6,height:6,borderRadius:99,background:"var(--ui-success, #9ece6a)",boxShadow:"0 0 0 2px color-mix(in srgb, var(--ui-success, #9ece6a) 12%, transparent)",flexShrink:0},termCol:{minWidth:0,minHeight:0,display:"flex",flexDirection:"column",background:"var(--ui-term-col-bg, #101014)",gridColumn:1,overflow:"hidden"},previewCol:{minWidth:0,minHeight:0}}},4972:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>s,metadata:()=>i,viewport:()=>o});var a=r(3477);let i={title:"AgentRoam",manifest:"/manifest.webmanifest",appleWebApp:{capable:!0,title:"AgentRoam",statusBarStyle:"black-translucent"},icons:{icon:"/pwa/icon-192.png",apple:"/pwa/icon-192.png"},description:"General-purpose AI agent API server"},n="#070a0b",o={themeColor:n,colorScheme:"dark"};function s({children:e}){return a.jsx("html",{lang:"zh-CN",style:{background:n,colorScheme:"dark"},children:(0,a.jsxs)("body",{style:{margin:0,minHeight:"100dvh",background:n},children:[e,a.jsx("script",{src:"/pwa/install.js",defer:!0})]})})}},489:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>a});let a=(0,r(8979).createProxy)(String.raw`/private/tmp/agentroam-preview69-20261030/packages/server/app/web/error.tsx#default`)},9257:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>u,dynamic:()=>l,generateViewport:()=>d});var a=r(3477),i=r(2110);let n=Object.fromEntries([{id:"pearl",label:"珍珠白",swatch:"#f5f6fa",preview:["#f5f6fa","#4f6ef7"],cssVars:{"--ui-color-scheme":"light","--ui-root-bg":"#f5f6fa","--ui-text":"#111827","--ui-tabbar-bg":"#eef0f6","--ui-tabbar-border":"#dfe3ee","--ui-tab-bg":"#e6e9f4","--ui-tab-text":"#5b6472","--ui-tab-active-bg":"#ffffff","--ui-tab-active-text":"#111827","--ui-tab-accent":"#4f6ef7","--ui-connection-bg":"#eef0f6","--ui-connection-text":"#9ca3af","--ui-tree-bg":"#fbfcfe","--ui-tree-border":"#e5e8f0","--ui-term-col-bg":"#f5f6fa","--ui-fab-bg":"#ffffff","--ui-fab-border":"#d8dcea","--ui-muted-surface":"#eef0f6","--ui-muted-border":"#d8dcea","--ui-muted-text":"#6b7280","--ui-panel-input-bg":"#ffffff","--ui-panel-input-text":"#111827","--ui-panel-input-border":"#d8dcea","--ui-drawer-tab-text":"#6b7280","--ui-drawer-tab-active":"#111827","--ui-history-item-text":"#1f2937","--ui-history-meta":"#9ca3af","--ui-success":"#059669","--ui-error":"#dc2626"},termHostBg:"#ffffff",keybar:{bg:"#eef0f6",border:"#dfe3ee",keyBg:"#ffffff",keyBorder:"#d8dcea",keyText:"#4b5563",accent:"#4f6ef7",accentText:"#ffffff",drag:"#a5b4fc"},xterm:{background:"#ffffff",foreground:"#1f2937",cursor:"#4f6ef7",selectionBackground:"#c7d2fe",black:"#24292e",red:"#d73a49",green:"#22863a",yellow:"#b08800",blue:"#005cc5",magenta:"#6f42c1",cyan:"#1b7c83",white:"#6a737d",brightBlack:"#959da5",brightWhite:"#fafbfc"}},{id:"scifi",label:"科幻霓虹",swatch:"#050a14",preview:["#050a14","#22d3ee"],cssVars:{"--ui-color-scheme":"dark","--ui-root-bg":"#050a14","--ui-text":"#e2f3ff","--ui-tabbar-bg":"#0a1220","--ui-tabbar-border":"#10263c","--ui-tab-bg":"#0d1626","--ui-tab-text":"#5c7893","--ui-tab-active-bg":"#122036","--ui-tab-active-text":"#e2f3ff","--ui-tab-accent":"#22d3ee","--ui-connection-bg":"#0a1220","--ui-connection-text":"#5c7893","--ui-tree-bg":"#0d1626","--ui-tree-border":"#10263c","--ui-term-col-bg":"#050a14","--ui-fab-bg":"#122036","--ui-fab-border":"#155e75","--ui-muted-surface":"#0d1626","--ui-muted-border":"#164e63","--ui-muted-text":"#9fb8d0","--ui-panel-input-bg":"#0a1220","--ui-panel-input-text":"#e2f3ff","--ui-panel-input-border":"#164e63","--ui-drawer-tab-text":"#5c7893","--ui-drawer-tab-active":"#e2f3ff","--ui-history-item-text":"#d5ecfb","--ui-history-meta":"#5c7893","--ui-success":"#34d399","--ui-error":"#fb7185"},termHostBg:"#0a1220",keybar:{bg:"#0a1220",border:"#10263c",keyBg:"#0d1626",keyBorder:"#164e63",keyText:"#9fb8d0",accent:"#22d3ee",accentText:"#04121a",drag:"#155e75"},xterm:{background:"#0a1220",foreground:"#e2f3ff",cursor:"#22d3ee",selectionBackground:"#164e63",black:"#0d1626",red:"#fb7185",green:"#34d399",yellow:"#fbbf24",blue:"#38bdf8",magenta:"#e879f9",cyan:"#22d3ee",white:"#e2f3ff",brightBlack:"#5c7893",brightWhite:"#ffffff"}},{id:"noir",label:"暗夜黑",swatch:"#0f1115",preview:["#0f1115","#a78bfa"],cssVars:{"--ui-color-scheme":"dark","--ui-root-bg":"#0f1115","--ui-text":"#eceff4","--ui-tabbar-bg":"#14171d","--ui-tabbar-border":"#232833","--ui-tab-bg":"#191d24","--ui-tab-text":"#6b7280","--ui-tab-active-bg":"#1f242d","--ui-tab-active-text":"#eceff4","--ui-tab-accent":"#a78bfa","--ui-connection-bg":"#14171d","--ui-connection-text":"#6b7280","--ui-tree-bg":"#191d24","--ui-tree-border":"#232833","--ui-term-col-bg":"#0f1115","--ui-fab-bg":"#1f242d","--ui-fab-border":"#2a3040","--ui-muted-surface":"#191d24","--ui-muted-border":"#2a3040","--ui-muted-text":"#aab2bf","--ui-panel-input-bg":"#14171d","--ui-panel-input-text":"#eceff4","--ui-panel-input-border":"#2a3040","--ui-drawer-tab-text":"#6b7280","--ui-drawer-tab-active":"#eceff4","--ui-history-item-text":"#d7dce4","--ui-history-meta":"#6b7280","--ui-success":"#4ade80","--ui-error":"#f87171"},termHostBg:"#14171d",keybar:{bg:"#14171d",border:"#232833",keyBg:"#191d24",keyBorder:"#2a3040",keyText:"#aab2bf",accent:"#a78bfa",accentText:"#0f1115",drag:"#4b4470"},xterm:{background:"#14171d",foreground:"#eceff4",cursor:"#a78bfa",selectionBackground:"#3b3654",black:"#191d24",red:"#f87171",green:"#4ade80",yellow:"#fbbf24",blue:"#60a5fa",magenta:"#c084fc",cyan:"#67e8f9",white:"#eceff4",brightBlack:"#6b7280",brightWhite:"#ffffff"}},{id:"mist",label:"雾白靛蓝",swatch:"#f7f8fb",preview:["#f7f8fb","#4258c4"],cssVars:{"--ui-color-scheme":"light","--ui-root-bg":"#f7f8fb","--ui-text":"#252d3d","--ui-tabbar-bg":"#e4e9f2","--ui-tabbar-border":"#dce3ef","--ui-tab-bg":"#e9edf5","--ui-tab-text":"#5b687f","--ui-tab-active-bg":"#f7f8fb","--ui-tab-active-text":"#252d3d","--ui-tab-accent":"#4258c4","--ui-connection-bg":"#e4e9f2","--ui-connection-text":"#5b687f","--ui-tree-bg":"#e9edf5","--ui-tree-border":"#dce3ef","--ui-term-col-bg":"#f7f8fb","--ui-fab-bg":"#ffffff","--ui-fab-border":"#dce3ef","--ui-muted-surface":"#e9edf5","--ui-muted-border":"#dce3ef","--ui-muted-text":"#5b687f","--ui-panel-input-bg":"#ffffff","--ui-panel-input-text":"#252d3d","--ui-panel-input-border":"#dce3ef","--ui-drawer-tab-text":"#5b687f","--ui-drawer-tab-active":"#252d3d","--ui-history-item-text":"#252d3d","--ui-history-meta":"#5b687f","--ui-success":"#247860","--ui-error":"#be3d50"},termHostBg:"#ffffff",keybar:{bg:"#e4e9f2",border:"#dce3ef",keyBg:"#ffffff",keyBorder:"#dce3ef",keyText:"#5b687f",accent:"#4258c4",accentText:"#ffffff",drag:"#8a9ac5"},xterm:{background:"#ffffff",foreground:"#252d3d",cursor:"#4258c4",selectionBackground:"#d6dcf4",black:"#252d3d",red:"#be3d50",green:"#247860",yellow:"#956018",blue:"#346faa",magenta:"#7456a6",cyan:"#277784",white:"#5b687f",brightBlack:"#5b687f",brightWhite:"#f7f8fb"}},{id:"glass",label:"毛玻璃",swatch:"#c3dbee",preview:["#c3dbee","#357b88"],cssVars:{"--ui-color-scheme":"light","--ui-root-bg":"#edf3f4","--ui-text":"#263e48","--ui-tabbar-bg":"#e0ebee","--ui-tabbar-border":"#d3e1e5","--ui-tab-bg":"#e5eef1","--ui-tab-text":"#58727c","--ui-tab-active-bg":"#edf3f4","--ui-tab-active-text":"#263e48","--ui-tab-accent":"#357b88","--ui-connection-bg":"#e0ebee","--ui-connection-text":"#58727c","--ui-tree-bg":"#e5eef1","--ui-tree-border":"#d3e1e5","--ui-term-col-bg":"#edf3f4","--ui-fab-bg":"#ffffff","--ui-fab-border":"#d3e1e5","--ui-muted-surface":"#e5eef1","--ui-muted-border":"#d3e1e5","--ui-muted-text":"#58727c","--ui-panel-input-bg":"#ffffff","--ui-panel-input-text":"#263e48","--ui-panel-input-border":"#d3e1e5","--ui-drawer-tab-text":"#58727c","--ui-drawer-tab-active":"#263e48","--ui-history-item-text":"#263e48","--ui-history-meta":"#58727c","--ui-success":"#247860","--ui-error":"#be3d50"},termHostBg:"#ffffff",keybar:{bg:"#e0ebee",border:"#d3e1e5",keyBg:"#ffffff",keyBorder:"#d3e1e5",keyText:"#58727c",accent:"#357b88",accentText:"#ffffff",drag:"#8a9ac5"},xterm:{background:"#ffffff",foreground:"#263e48",cursor:"#357b88",selectionBackground:"#d6dcf4",black:"#263e48",red:"#be3d50",green:"#247860",yellow:"#956018",blue:"#346faa",magenta:"#7456a6",cyan:"#277784",white:"#58727c",brightBlack:"#58727c",brightWhite:"#edf3f4"}},{id:"pine",label:"暖灰松绿",swatch:"#f6f7f3",preview:["#f6f7f3","#356c55"],cssVars:{"--ui-color-scheme":"light","--ui-root-bg":"#f6f7f3","--ui-text":"#2d382f","--ui-tabbar-bg":"#e2e7df","--ui-tabbar-border":"#d9e1d6","--ui-tab-bg":"#e8ece5","--ui-tab-text":"#5b6e61","--ui-tab-active-bg":"#f6f7f3","--ui-tab-active-text":"#2d382f","--ui-tab-accent":"#356c55","--ui-connection-bg":"#e2e7df","--ui-connection-text":"#5b6e61","--ui-tree-bg":"#e8ece5","--ui-tree-border":"#d9e1d6","--ui-term-col-bg":"#f6f7f3","--ui-fab-bg":"#ffffff","--ui-fab-border":"#d9e1d6","--ui-muted-surface":"#e8ece5","--ui-muted-border":"#d9e1d6","--ui-muted-text":"#5b6e61","--ui-panel-input-bg":"#ffffff","--ui-panel-input-text":"#2d382f","--ui-panel-input-border":"#d9e1d6","--ui-drawer-tab-text":"#5b6e61","--ui-drawer-tab-active":"#2d382f","--ui-history-item-text":"#2d382f","--ui-history-meta":"#5b6e61","--ui-success":"#357450","--ui-error":"#b6454d"},termHostBg:"#ffffff",keybar:{bg:"#e2e7df",border:"#d9e1d6",keyBg:"#ffffff",keyBorder:"#d9e1d6",keyText:"#5b6e61",accent:"#356c55",accentText:"#ffffff",drag:"#86a38b"},xterm:{background:"#ffffff",foreground:"#2d382f",cursor:"#356c55",selectionBackground:"#d4e1d9",black:"#2d382f",red:"#b6454d",green:"#357450",yellow:"#8c641e",blue:"#3d7189",magenta:"#805e88",cyan:"#317c74",white:"#5b6e61",brightBlack:"#5b6e61",brightWhite:"#f6f7f3"}},{id:"graphite",label:"石墨夜色",swatch:"#202630",preview:["#202630","#a4bad2"],cssVars:{"--ui-color-scheme":"dark","--ui-root-bg":"#202630","--ui-text":"#e4ebf4","--ui-tabbar-bg":"#161c25","--ui-tabbar-border":"#384859","--ui-tab-bg":"#161c25","--ui-tab-text":"#b0bfd3","--ui-tab-active-bg":"#202630","--ui-tab-active-text":"#e4ebf4","--ui-tab-accent":"color-mix(in srgb, #386a9a 40%, #ecf0f8)","--ui-connection-bg":"#161c25","--ui-connection-text":"#b0bfd3","--ui-tree-bg":"#161c25","--ui-tree-border":"#384859","--ui-term-col-bg":"#202630","--ui-fab-bg":"#293440","--ui-fab-border":"#384859","--ui-muted-surface":"#161c25","--ui-muted-border":"#384859","--ui-muted-text":"#b0bfd3","--ui-panel-input-bg":"#293440","--ui-panel-input-text":"#e4ebf4","--ui-panel-input-border":"#384859","--ui-drawer-tab-text":"#b0bfd3","--ui-drawer-tab-active":"#e4ebf4","--ui-history-item-text":"#e4ebf4","--ui-history-meta":"#b0bfd3","--ui-success":"#89d3af","--ui-error":"#f097a2"},termHostBg:"#202630",keybar:{bg:"#161c25",border:"#384859",keyBg:"#293440",keyBorder:"#384859",keyText:"#b0bfd3",accent:"#a4bad2",accentText:"#14212b",drag:"#61778c"},xterm:{background:"#202630",foreground:"#e4ebf4",cursor:"#a4bad2",selectionBackground:"#2a3e53",black:"#161c25",red:"#f097a2",green:"#89d3af",yellow:"#e5c58a",blue:"#9accf0",magenta:"#c4b3e1",cyan:"#91cfd6",white:"#e4ebf4",brightBlack:"#b0bfd3",brightWhite:"#ffffff"}}].map(e=>[e.id,e])),o={dark:"noir",black:"noir",gray:"noir",blue:"noir",red:"noir",yellow:"noir",green:"noir",white:"pearl"};function s(e){if(e&&e in n)return n[e];let t=e?o[e]:void 0;return t?n[t]:n.pearl}r(2761);let l="force-dynamic";function c(){try{let{userId:e}=(0,i.nQ)();return s(i.hw.getPreferences(e)?.theme)}catch{return s(void 0)}}function d(){let e=c();return{colorScheme:e.cssVars["--ui-color-scheme"],themeColor:e.cssVars["--ui-tabbar-bg"]}}function u({children:e}){let t=c(),r={...t.cssVars,colorScheme:t.cssVars["--ui-color-scheme"],background:t.cssVars["--ui-root-bg"],color:t.cssVars["--ui-text"]};return a.jsx("div",{id:"web-theme-root","data-web-theme":t.id,style:r,children:e})}},6742:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>a});let a=(0,r(8979).createProxy)(String.raw`/private/tmp/agentroam-preview69-20261030/packages/server/app/web/page.tsx#default`)},785:(e,t,r)=>{"use strict";r.d(t,{ME:()=>s,kO:()=>o,sr:()=>l});var a=r(9411);let i=function(){let e=process.argv[1];if(e){let t=(0,a.dirname)((0,a.resolve)(e)),r=`${a.sep}node_modules${a.sep}.bin`;return t.endsWith(r)?(0,a.resolve)(t,"..",".."):t}return(0,a.resolve)(process.cwd())}();function n(e=process.env,t=i){return(0,a.resolve)(e.AGENT_DATA_DIR?.trim()||t)}function o(){return n()}function s(e=process.env,t=n(e)){let r=e.AGENT_LOG_DIR?.trim();if(r)return(0,a.resolve)(r);let i=e.AGENTROAM_DATA_DIR?.trim();return i?(0,a.resolve)(i,"logs"):(0,a.join)(t,".agent-data","logs")}function l(){return function(e=process.env,t=i){return(0,a.resolve)(e.AGENT_WORKING_DIRECTORY?.trim()||t)}(process.env,o())}},2110:(e,t,r)=>{"use strict";r.d(t,{hw:()=>n.hw,nQ:()=>s});var a=r(1636),i=r(785),n=r(9580);let o=new a.SQLiteAnonymousWebStore((0,i.kO)());function s(){return{userId:o.getOrCreatePrincipal().userId,username:"local",deviceId:"browser"}}},9580:(e,t,r)=>{"use strict";r.d(t,{$U:()=>u,Ci:()=>f,VP:()=>n,Xd:()=>d,ZA:()=>s,ap:()=>p,hw:()=>l,ki:()=>o,yN:()=>b});var a=r(1636),i=r(785);let n="customer_agent_session",o="customer_agent_device",s=new a.WebAuthService(new a.SQLiteAuthStore((0,i.kO)())),l=new a.SQLiteWebConsoleStore((0,i.kO)());function c(e){let t={};for(let r of(e.headers.get("cookie")||"").split(";")){let e=r.indexOf("=");e>0&&(t[r.slice(0,e).trim()]=decodeURIComponent(r.slice(e+1).trim()))}return t}function d(e){return c(e)[n]||null}function u(e){let t=c(e);return{ip:e.headers.get("x-forwarded-for")?.split(",")[0].trim()||"unknown",userAgent:e.headers.get("user-agent")||"",deviceId:t[o],deviceName:e.headers.get("x-device-name")||""}}function p(e){let t=s.authenticateToken(d(e));return s.validateCsrf(t,e.headers.get("x-csrf-token")),t}function f(e,t,r){return{httpOnly:r,sameSite:"strict",secure:"https"===("1"===process.env.AGENT_TRUST_TUNNEL_PROXY?e.headers.get("x-forwarded-proto"):null)||"https:"===new URL(e.url).protocol,path:"/",maxAge:t}}function b(e){let t=e instanceof a.WebAuthError?e:new a.WebAuthError("UNAUTHENTICATED","认证失败",401);return Response.json({error:{code:t.code,message:t.message}},{status:t.status})}},2761:()=>{}};var t=require("../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),a=t.X(0,[8375,5303],()=>r(2907));module.exports=a})();