agentroam-runtime-darwin-arm64 0.2.0-preview.39 → 0.2.0-preview.41
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.
- package/manifest.json +1 -1
- package/package.json +1 -1
- package/runtime/.next/BUILD_ID +1 -1
- package/runtime/.next/app-build-manifest.json +8 -8
- package/runtime/.next/app-path-routes-manifest.json +1 -1
- package/runtime/.next/build-manifest.json +3 -3
- package/runtime/.next/prerender-manifest.json +1 -1
- package/runtime/.next/required-server-files.json +1 -1
- package/runtime/.next/server/app/_not-found/page.js +1 -1
- package/runtime/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/runtime/.next/server/app/_not-found.html +1 -1
- package/runtime/.next/server/app/_not-found.rsc +1 -1
- package/runtime/.next/server/app/api/agent/abort/route.js +1 -1
- package/runtime/.next/server/app/api/agent/answer/route.js +1 -1
- package/runtime/.next/server/app/api/agent/harness/status/route.js +1 -1
- package/runtime/.next/server/app/api/agent/model/route.js +1 -1
- package/runtime/.next/server/app/api/agent/models/route.js +1 -1
- package/runtime/.next/server/app/api/agent/run/route.js +2 -2
- package/runtime/.next/server/app/api/agent/runtime-health/route.js +1 -1
- package/runtime/.next/server/app/api/agent/steer/route.js +1 -1
- package/runtime/.next/server/app/api/agent/stream/route.js +3 -3
- package/runtime/.next/server/app/api/agent-workspaces/[workspaceId]/sessions/route.js +1 -1
- package/runtime/.next/server/app/api/agent-workspaces/route.js +1 -1
- package/runtime/.next/server/app/api/auth/verify/route.js +1 -1
- package/runtime/.next/server/app/api/business/route.js +1 -1
- package/runtime/.next/server/app/api/client-logs/route.js +1 -1
- package/runtime/.next/server/app/api/flow/v1/catalog/route.js +1 -1
- package/runtime/.next/server/app/api/flow/v1/runs/[runId]/cancel/route.js +1 -1
- package/runtime/.next/server/app/api/flow/v1/runs/[runId]/events/route.js +2 -2
- package/runtime/.next/server/app/api/flow/v1/runs/route.js +1 -1
- package/runtime/.next/server/app/api/flow-studio/config/route.js +1 -1
- package/runtime/.next/server/app/api/mcp/connect/route.js +1 -1
- package/runtime/.next/server/app/api/mcp/disconnect/route.js +1 -1
- package/runtime/.next/server/app/api/mcp/servers/route.js +1 -1
- package/runtime/.next/server/app/api/memory/[key]/route.js +1 -1
- package/runtime/.next/server/app/api/memory/route.js +1 -1
- package/runtime/.next/server/app/api/plugins/load/route.js +1 -1
- package/runtime/.next/server/app/api/projects/[id]/route.js +1 -1
- package/runtime/.next/server/app/api/projects/check/route.js +1 -1
- package/runtime/.next/server/app/api/projects/directories/route.js +1 -1
- package/runtime/.next/server/app/api/projects/roots/route.js +1 -1
- package/runtime/.next/server/app/api/projects/route.js +1 -1
- package/runtime/.next/server/app/api/push/subscribe/route.js +2 -2
- package/runtime/.next/server/app/api/push/unsubscribe/route.js +2 -2
- package/runtime/.next/server/app/api/push/vapid/route.js +2 -2
- package/runtime/.next/server/app/api/push/vapid.body +1 -1
- package/runtime/.next/server/app/api/remote-tools/register/route.js +1 -1
- package/runtime/.next/server/app/api/sessions/[id]/changes/route.js +2 -2
- package/runtime/.next/server/app/api/sessions/[id]/fork/route.js +1 -1
- package/runtime/.next/server/app/api/sessions/[id]/fork-at/route.js +1 -1
- package/runtime/.next/server/app/api/sessions/[id]/goals/route.js +1 -1
- package/runtime/.next/server/app/api/sessions/[id]/handoff/route.js +1 -1
- package/runtime/.next/server/app/api/sessions/[id]/query-index/route.js +1 -1
- package/runtime/.next/server/app/api/sessions/[id]/release/route.js +1 -1
- package/runtime/.next/server/app/api/sessions/[id]/route.js +1 -1
- package/runtime/.next/server/app/api/sessions/[id]/thread-goal/route.js +1 -1
- package/runtime/.next/server/app/api/sessions/[id]/tool-result/route.js +1 -1
- package/runtime/.next/server/app/api/sessions/route.js +1 -1
- package/runtime/.next/server/app/api/settings/route.js +1 -1
- package/runtime/.next/server/app/api/skills/route.js +1 -1
- package/runtime/.next/server/app/api/tool-policies/[policyId]/route.js +1 -1
- package/runtime/.next/server/app/api/tool-policies/route.js +1 -1
- package/runtime/.next/server/app/api/tools/route.js +1 -1
- package/runtime/.next/server/app/api/update/check/route.js +1 -1
- package/runtime/.next/server/app/api/update/install/route.js +1 -1
- package/runtime/.next/server/app/api/update/status/route.js +1 -1
- package/runtime/.next/server/app/api/web-auth/login/route.js +1 -1
- package/runtime/.next/server/app/api/web-auth/logout/route.js +1 -1
- package/runtime/.next/server/app/api/web-auth/revoke-all/route.js +1 -1
- package/runtime/.next/server/app/api/web-auth/setup/route.js +1 -1
- package/runtime/.next/server/app/api/web-auth/status/route.js +1 -1
- package/runtime/.next/server/app/api/web-console/bootstrap/route.js +1 -1
- package/runtime/.next/server/app/api/web-console/device-state/route.js +1 -1
- package/runtime/.next/server/app/api/web-console/history/route.js +1 -1
- package/runtime/.next/server/app/api/web-console/preferences/route.js +1 -1
- package/runtime/.next/server/app/web/page.js +2 -2
- package/runtime/.next/server/app/web/page_client-reference-manifest.js +1 -1
- package/runtime/.next/server/app-paths-manifest.json +28 -28
- package/runtime/.next/server/chunks/1322.js +1 -1
- package/runtime/.next/server/chunks/1773.js +1 -1
- package/runtime/.next/server/chunks/5303.js +1 -1
- package/runtime/.next/server/middleware-build-manifest.js +1 -1
- package/runtime/.next/server/pages/404.html +1 -1
- package/runtime/.next/server/pages/500.html +1 -1
- package/runtime/.next/server/server-reference-manifest.json +1 -1
- package/runtime/.next/static/chunks/app/web/{error-f69dbd3718cb2107.js → error-eea6b6c270ef86cb.js} +1 -1
- package/runtime/.next/static/chunks/app/web/layout-0991128047cc5e14.js +1 -0
- package/runtime/.next/static/chunks/app/web/{page-f9926cbf4c1badd4.js → page-d615bce909fdda0b.js} +1 -1
- package/runtime/.next/static/chunks/{main-app-d527fa0b25a0c755.js → main-app-9aaee005b4835e70.js} +1 -1
- package/runtime/server.js +1 -1
- package/runtime/webapp/dist/assets/{App-COIcZZvf.js → App-Bnv7-jUZ.js} +16 -16
- package/runtime/webapp/dist/assets/{abnfDiagram-VCTEODGH-d4urtMQU.js → abnfDiagram-VCTEODGH-CyHhjdFC.js} +1 -1
- package/runtime/webapp/dist/assets/{arc-DiQEpEJQ.js → arc-YykeV-yA.js} +1 -1
- package/runtime/webapp/dist/assets/{architectureDiagram-5GKGNRK7-CWYKGqND.js → architectureDiagram-5GKGNRK7-CPXGrnO0.js} +1 -1
- package/runtime/webapp/dist/assets/{blockDiagram-I7D4REHJ-J2I0b5Zn.js → blockDiagram-I7D4REHJ-DY5fPlHV.js} +1 -1
- package/runtime/webapp/dist/assets/{c4Diagram-7LVT6UL2-C-0xWeN3.js → c4Diagram-7LVT6UL2-D9IqQaEZ.js} +1 -1
- package/runtime/webapp/dist/assets/channel-DQNFzknQ.js +1 -0
- package/runtime/webapp/dist/assets/{chunk-2Q5K7J3B-CqodmK6L.js → chunk-2Q5K7J3B-Dq03q8Ff.js} +1 -1
- package/runtime/webapp/dist/assets/{chunk-5VM5RSS4-DClUnQcr.js → chunk-5VM5RSS4-V40WX1nt.js} +1 -1
- package/runtime/webapp/dist/assets/{chunk-F27PBJKO-CpaDg7Bg.js → chunk-F27PBJKO-CiCQWcQf.js} +1 -1
- package/runtime/webapp/dist/assets/{chunk-IMKFNOWR-CTIf9EjK.js → chunk-IMKFNOWR-EJT0DATb.js} +1 -1
- package/runtime/webapp/dist/assets/{chunk-JWPE2WC7-DKalSWMm.js → chunk-JWPE2WC7-B0T3KRl6.js} +1 -1
- package/runtime/webapp/dist/assets/{chunk-POPQ4Y6H-69MmeyRW.js → chunk-POPQ4Y6H-CBoqnL3A.js} +1 -1
- package/runtime/webapp/dist/assets/{chunk-SVP7TREG-DCXWXzhU.js → chunk-SVP7TREG-vc6mvklc.js} +1 -1
- package/runtime/webapp/dist/assets/{chunk-TICWLB2K-B5nbTEng.js → chunk-TICWLB2K-Co7ACWND.js} +1 -1
- package/runtime/webapp/dist/assets/{chunk-XXDRQBXY-DsJvkUuN.js → chunk-XXDRQBXY-CvByXr6J.js} +1 -1
- package/runtime/webapp/dist/assets/classDiagram-ZZMXUADV-DjmQeVYo.js +1 -0
- package/runtime/webapp/dist/assets/classDiagram-v2-VYDZK3BY-DjmQeVYo.js +1 -0
- package/runtime/webapp/dist/assets/{codeSyntax-DJH88FPL.js → codeSyntax-CEVVRDzr.js} +1 -1
- package/runtime/webapp/dist/assets/{cose-bilkent-JH36ORCC-BamzQ_e_.js → cose-bilkent-JH36ORCC-B6ijVOa6.js} +1 -1
- package/runtime/webapp/dist/assets/{cynefin-OW5HDTMX-BI_j1tbW.js → cynefin-OW5HDTMX-DNC_aald.js} +1 -1
- package/runtime/webapp/dist/assets/{cynefinDiagram-5FMLGOSQ-DuxMrVM2.js → cynefinDiagram-5FMLGOSQ-DMwAVRmf.js} +1 -1
- package/runtime/webapp/dist/assets/{dagre-GXQ25YYZ-Y9_ne36w.js → dagre-GXQ25YYZ-DtA0NmZw.js} +1 -1
- package/runtime/webapp/dist/assets/{diagram-S7CK7UJ4-DIIjO29m.js → diagram-S7CK7UJ4-B7SEmc9A.js} +1 -1
- package/runtime/webapp/dist/assets/{diagram-UQ7AKVKN-C4m2VMIy.js → diagram-UQ7AKVKN-CP_Xy1AP.js} +1 -1
- package/runtime/webapp/dist/assets/{diagram-VSXAHHWV-Cw5aPZ0o.js → diagram-VSXAHHWV-CMq6cPW9.js} +1 -1
- package/runtime/webapp/dist/assets/{diagram-VX7I27RA-W8nmVcOl.js → diagram-VX7I27RA-KIUvVPO4.js} +1 -1
- package/runtime/webapp/dist/assets/{diagram-Z3DM3KII-TksnHlQo.js → diagram-Z3DM3KII-UiMEplzj.js} +1 -1
- package/runtime/webapp/dist/assets/{ebnfDiagram-PWID7BFC-B3WM1b4a.js → ebnfDiagram-PWID7BFC-D221JIeM.js} +1 -1
- package/runtime/webapp/dist/assets/{erDiagram-RLTQ6QDP-BWctPuya.js → erDiagram-RLTQ6QDP-XKInLFA3.js} +1 -1
- package/runtime/webapp/dist/assets/{flowDiagram-HODETNUW-BG5RMrLN.js → flowDiagram-HODETNUW-BeT9GYtM.js} +1 -1
- package/runtime/webapp/dist/assets/{ganttDiagram-EL5Y4UJY-CPcR7Kn_.js → ganttDiagram-EL5Y4UJY-Dk8Uwf7E.js} +1 -1
- package/runtime/webapp/dist/assets/{gitGraphDiagram-WWUBYQGX-Sg6KChEd.js → gitGraphDiagram-WWUBYQGX-DiVf0w01.js} +1 -1
- package/runtime/webapp/dist/assets/{index-tQnPGo1_.js → index-D1I5RKVk.js} +3 -3
- package/runtime/webapp/dist/assets/{infoDiagram-27XIBGKW-BvrtvnrY.js → infoDiagram-27XIBGKW-DpVFXIO9.js} +1 -1
- package/runtime/webapp/dist/assets/{ishikawaDiagram-5VMMS53U-Bz-dZQLJ.js → ishikawaDiagram-5VMMS53U-ChWOHTzh.js} +1 -1
- package/runtime/webapp/dist/assets/{journeyDiagram-3NMN7TZE-Cb4s9jRE.js → journeyDiagram-3NMN7TZE-CTm0xDi4.js} +1 -1
- package/runtime/webapp/dist/assets/{kanban-definition-UXKFOSKX-IjMPUHg9.js → kanban-definition-UXKFOSKX-zVtWbTTX.js} +1 -1
- package/runtime/webapp/dist/assets/{layout-DHjqr0PJ.js → layout-C8tlpprW.js} +1 -1
- package/runtime/webapp/dist/assets/{linear-COctZkFy.js → linear-CArf8t7h.js} +1 -1
- package/runtime/webapp/dist/assets/{mermaid.core-BnonXfHT.js → mermaid.core-BVUH1a8m.js} +5 -5
- package/runtime/webapp/dist/assets/{mindmap-definition-YA3MSWOX-hxBlXJJE.js → mindmap-definition-YA3MSWOX-Cx7RFt-X.js} +1 -1
- package/runtime/webapp/dist/assets/{pegDiagram-XKGWAZYB-D6KJ8Ftm.js → pegDiagram-XKGWAZYB-BvEhVZgX.js} +1 -1
- package/runtime/webapp/dist/assets/{pieDiagram-E7YTZNPT-BzKWZmHN.js → pieDiagram-E7YTZNPT-U0qmhh14.js} +1 -1
- package/runtime/webapp/dist/assets/{quadrantDiagram-AXDQQJYC-ZhiPKt96.js → quadrantDiagram-AXDQQJYC-BbUHWejy.js} +1 -1
- package/runtime/webapp/dist/assets/{railroadDiagram-O6MQD6OU-BtKhiOPG.js → railroadDiagram-O6MQD6OU-SXZBMND2.js} +1 -1
- package/runtime/webapp/dist/assets/{requirementDiagram-BXWQKSXE-OFr_TA8V.js → requirementDiagram-BXWQKSXE-Cv9h1clg.js} +1 -1
- package/runtime/webapp/dist/assets/{sankeyDiagram-P5KCCOFB-qNTDFxAX.js → sankeyDiagram-P5KCCOFB-CSWUhEDJ.js} +1 -1
- package/runtime/webapp/dist/assets/{sequenceDiagram-WJ2MYXX4-B7s5-R4s.js → sequenceDiagram-WJ2MYXX4-Cy7gfOPU.js} +1 -1
- package/runtime/webapp/dist/assets/{sizeCapture-INFHLROL-DdFabbN6.js → sizeCapture-INFHLROL-DEJ8653D.js} +1 -1
- package/runtime/webapp/dist/assets/{stateDiagram-D77RDMKH-CmAN4pX7.js → stateDiagram-D77RDMKH-C9znHj1A.js} +1 -1
- package/runtime/webapp/dist/assets/stateDiagram-v2-MP3YSRHH-D4PTr_9g.js +1 -0
- package/runtime/webapp/dist/assets/{swimlanes-42K2YHIH-BQlIJAhf.js → swimlanes-42K2YHIH-D-1OGDuC.js} +1 -1
- package/runtime/webapp/dist/assets/swimlanesDiagram-VR7AAH4N-BnGs6oif.js +8 -0
- package/runtime/webapp/dist/assets/{timeline-definition-24CTP7MA--Y1zJ9mc.js → timeline-definition-24CTP7MA-fmk9SWID.js} +1 -1
- package/runtime/webapp/dist/assets/{vennDiagram-4TSXK5OY-CUn6FScx.js → vennDiagram-4TSXK5OY-CoJrdpIF.js} +1 -1
- package/runtime/webapp/dist/assets/{wardleyDiagram-VM6X3IG4-Bbz-WBd5.js → wardleyDiagram-VM6X3IG4-CQd2ig95.js} +1 -1
- package/runtime/webapp/dist/assets/{web-DzBEnE5q.js → web-CICIlrjx.js} +1 -1
- package/runtime/webapp/dist/assets/{web-harvpkJj.js → web-DdNvGACS.js} +1 -1
- package/runtime/webapp/dist/assets/{xychartDiagram-S5SC5T6Z-RA9edGdQ.js → xychartDiagram-S5SC5T6Z-Slg0Vzat.js} +1 -1
- package/runtime/webapp/dist/index.html +1 -1
- package/runtime/.next/static/chunks/app/web/layout-e0dd41d18df8ee9e.js +0 -1
- package/runtime/webapp/dist/assets/channel-B6S3kcST.js +0 -1
- package/runtime/webapp/dist/assets/classDiagram-ZZMXUADV-CyUA2YaV.js +0 -1
- package/runtime/webapp/dist/assets/classDiagram-v2-VYDZK3BY-CyUA2YaV.js +0 -1
- package/runtime/webapp/dist/assets/stateDiagram-v2-MP3YSRHH-DsxpCqde.js +0 -1
- package/runtime/webapp/dist/assets/swimlanesDiagram-VR7AAH4N-tji3GZVz.js +0 -8
- /package/runtime/.next/static/{BmUH3xLHQfGkG3yzEK37i → rwWTikOeChITsRklIaUDw}/_buildManifest.js +0 -0
- /package/runtime/.next/static/{BmUH3xLHQfGkG3yzEK37i → rwWTikOeChITsRklIaUDw}/_ssgManifest.js +0 -0
package/runtime/.next/static/chunks/app/web/{page-f9926cbf4c1badd4.js → page-d615bce909fdda0b.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[541],{7073:function(e,t,n){Promise.resolve().then(n.bind(n,6061))},7714:function(e,t,n){"use strict";async function r(e){let t="undefined"==typeof navigator?void 0:navigator.clipboard;if("function"==typeof(null==t?void 0:t.writeText)&&("undefined"==typeof isSecureContext||isSecureContext))try{return await t.writeText(e),!0}catch(e){}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(e){return!1}finally{t.remove()}}(e)}n.d(t,{T:function(){return r}})},8924:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(1996),a=n(9516),i=n.n(a),o=n(3845);function l(){return(0,r.jsxs)("div",{role:"status","aria-live":"polite",className:"jsx-f8b6a4420911d242 flow-loading",children:[(0,r.jsxs)("div",{"aria-hidden":"true",className:"jsx-f8b6a4420911d242 flow-loader-art",children:[(0,r.jsx)("div",{className:"jsx-f8b6a4420911d242 flow-loader-halo"}),(0,r.jsx)("div",{className:"jsx-f8b6a4420911d242 flow-loader-orbit orbit-outer",children:(0,r.jsx)("i",{className:"jsx-f8b6a4420911d242"})}),(0,r.jsx)("div",{className:"jsx-f8b6a4420911d242 flow-loader-orbit orbit-inner",children:(0,r.jsx)("i",{className:"jsx-f8b6a4420911d242"})}),(0,r.jsx)("div",{className:"jsx-f8b6a4420911d242 flow-loader-core",children:(0,r.jsx)(o.Z,{size:36,strokeWidth:1.5})}),(0,r.jsx)("span",{className:"jsx-f8b6a4420911d242 flow-loader-node node-one"}),(0,r.jsx)("span",{className:"jsx-f8b6a4420911d242 flow-loader-node node-two"}),(0,r.jsx)("span",{className:"jsx-f8b6a4420911d242 flow-loader-node node-three"})]}),(0,r.jsxs)("div",{className:"jsx-f8b6a4420911d242 flow-loader-copy",children:[(0,r.jsx)("span",{className:"jsx-f8b6a4420911d242 flow-loader-label",children:"FLOW STUDIO"}),(0,r.jsx)("strong",{className:"jsx-f8b6a4420911d242",children:"正在打开 Flow Studio"}),(0,r.jsx)("span",{className:"jsx-f8b6a4420911d242 flow-loader-caption",children:"即将进入你的创作空间"})]}),(0,r.jsx)("div",{"aria-hidden":"true",className:"jsx-f8b6a4420911d242 flow-loader-track",children:(0,r.jsx)("span",{className:"jsx-f8b6a4420911d242"})}),(0,r.jsx)(i(),{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}}"})]})}},9532:function(e,t,n){"use strict";function r(e,t){var n,r,a,i;return{height:Math.round(null!==(n=null==e?void 0:e.height)&&void 0!==n?n:t.height),width:Math.round(null!==(r=null==e?void 0:e.width)&&void 0!==r?r:t.width),top:Math.round(null!==(a=null==e?void 0:e.offsetTop)&&void 0!==a?a:0),left:Math.round(null!==(i=null==e?void 0:e.offsetLeft)&&void 0!==i?i:0)}}function a(e){e&&(e.scrollLeft=0)}n.d(t,{i:function(){return a},x:function(){return r}})},6061:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return Q}});var r=n(1996),a=n(7004),i=n(6121),o=n(3797),l=n(9741),s=n(4330),d=n(3845),c=n(1628),u=n(7317),p=n(7724),f=n(7805);let b={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 m(){let[e,t]=(0,i.useState)(!1),[n,a]=(0,i.useState)(!1),o=(0,i.useRef)(null);return(0,i.useEffect)(()=>{let e=e=>{var n;return t(!!(null===(n=e.detail)||void 0===n?void 0:n.available))},n=()=>a(!0);return window.addEventListener("agentroam:pwa-state",e),window.addEventListener("agentroam:pwa-guide",n),window.dispatchEvent(new Event("agentroam:pwa-query")),()=>{window.removeEventListener("agentroam:pwa-state",e),window.removeEventListener("agentroam:pwa-guide",n)}},[]),(0,i.useEffect)(()=>{var e,t;!n||(null===(e=o.current)||void 0===e?void 0:e.open)||null===(t=o.current)||void 0===t||t.showModal()},[n]),(0,r.jsxs)(r.Fragment,{children:[e&&(0,r.jsx)("button",{type:"button",className:"file-drawer-toggle pwa-install-button",style:b,title:"添加到主屏幕","aria-label":"添加到主屏幕",onClick:()=>window.dispatchEvent(new Event("agentroam:pwa-install")),children:(0,r.jsxs)("span",{style:{position:"relative",display:"flex"},children:[(0,r.jsx)(p.Z,{size:17,"aria-hidden":"true"}),(0,r.jsx)(f.Z,{size:9,strokeWidth:3,"aria-hidden":"true",style:{position:"absolute",right:-4,bottom:-2}})]})}),n&&(0,r.jsxs)("dialog",{ref:o,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:[(0,r.jsx)("h2",{id:"pwa-install-title",style:{margin:"0 0 12px",fontSize:18},children:"添加到主屏幕"}),(0,r.jsx)("p",{children:"iPhone / iPad:在 Safari 点击分享按钮,选择“添加到主屏幕”,再点“添加”。"}),(0,r.jsx)("p",{children:"Android:打开浏览器菜单,选择“安装应用”或“添加到主屏幕”。"}),(0,r.jsx)("p",{style:{color:"var(--ui-muted-text)"},children:"浏览器需要你确认,网页无法自动添加。从主屏幕打开后,如提示未配对,请重新扫码。"}),(0,r.jsx)("button",{type:"button",style:{...b,width:"100%",padding:"10px 14px",borderStyle:"solid",borderWidth:1,borderRadius:8,cursor:"pointer"},onClick:()=>{var e;return null===(e=o.current)||void 0===e?void 0:e.close()},children:"知道了"})]})]})}let h=["codex","claude agents","opencode","agent-tui"],x="agent-web-shell:project-response:v1",g=new Set(["project:list","project:get","project:create","project:rename","project:delete","project:roots","project:directories","project:check"]),w="agent-web-shell:browser-response:v1",v="agent-web-shell:browser-event:v1",y=new Set(["browser:list","browser:watch","browser:unwatch","browser:takeover","browser:return","browser:input","browser:set-display","browser:ping","browser:webrtc","browser:system"]),k={watcherFrame:4,producerFrame:5};function j(e){let{children:t}=e,n=function(){let[e,t]=(0,i.useState)("loading"),[n,r]=(0,i.useState)(null),[a]=(0,i.useState)("same-origin"),[o,l]=(0,i.useState)(null),s=(0,i.useCallback)(async()=>{t("loading"),l(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 ".concat(e.status));let n=await e.json();r(n.user),t("authenticated")}catch(e){l("无法连接远程控制台"),t("needsLogin")}},[]);(0,i.useEffect)(()=>{s()},[s]);let d=(0,i.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 n=await e.json();return r(n.user),t("authenticated"),n.wsNonce},[]),c=(0,i.useCallback)(async()=>(window.location.reload(),!1),[]);return{status:e,user:n,error:o,csrfToken:a,setup:c,login:c,logout:(0,i.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():l("退出失败,请重试")},[]),refresh:s,getWsNonce:d}}(),[a]=(0,i.useState)(()=>Date.now()),[l,s]=(0,i.useState)(()=>Date.now()),[c,u]=(0,i.useState)(!1),p="authenticated"===n.status,f=p&&c,b=(0,i.useCallback)(()=>u(!0),[]);(0,i.useEffect)(()=>{p||u(!1)},[p]),(0,i.useEffect)(()=>{if(f||n.error)return;let e=window.setInterval(()=>s(Date.now()),1e3);return()=>window.clearInterval(e)},[n.error,f]);let m=n.error||"数字人核心正在就绪";return(0,r.jsxs)(r.Fragment,{children:[p?t(n,b):null,(0,r.jsxs)("main",{className:"neural-boot".concat(f?" is-ready":"").concat(n.error?" is-error":""),role:n.error?"alert":"status","aria-live":"polite","aria-busy":!f&&!n.error,"aria-hidden":f,children:[(0,r.jsx)("div",{className:"neural-grid","aria-hidden":"true"}),(0,r.jsx)("div",{className:"neural-rail neural-rail-left","aria-hidden":"true"}),(0,r.jsx)("div",{className:"neural-rail neural-rail-right","aria-hidden":"true"}),(0,r.jsxs)("section",{className:"neural-content",children:[(0,r.jsxs)("div",{className:"neural-brand","aria-hidden":"true",children:[(0,r.jsx)("span",{className:"neural-brand-signal"}),(0,r.jsx)("span",{children:"AgentRoam"}),(0,r.jsx)("small",{children:"NEURAL LINK"})]}),(0,r.jsxs)("div",{className:"neural-portrait","aria-hidden":"true",children:[(0,r.jsx)("span",{className:"neural-ring neural-ring-outer"}),(0,r.jsx)("span",{className:"neural-ring neural-ring-inner"}),(0,r.jsx)("span",{className:"neural-axis neural-axis-x"}),(0,r.jsx)("span",{className:"neural-axis neural-axis-y"}),(0,r.jsx)("span",{className:"neural-node neural-node-one"}),(0,r.jsx)("span",{className:"neural-node neural-node-two"}),(0,r.jsx)("span",{className:"neural-node neural-node-three"}),(0,r.jsx)("span",{className:"neural-node neural-node-four"}),(0,r.jsx)("div",{className:"neural-avatar-frame",children:(0,r.jsxs)("div",{className:"neural-avatar",children:[(0,r.jsx)(d.Z,{className:"neural-avatar-icon",size:66,strokeWidth:1.3}),(0,r.jsx)("span",{className:"neural-visor"})]})})]}),(0,r.jsxs)("div",{className:"neural-copy",children:[(0,r.jsx)("strong",{children:"正在唤醒工作区"}),(0,r.jsx)("span",{children:m})]}),(0,r.jsx)("div",{className:"neural-progress","aria-hidden":"true",children:(0,r.jsx)("span",{})}),(0,r.jsxs)("div",{className:"neural-meta","aria-hidden":"true",children:[(0,r.jsx)("span",{children:"AGENT CORE"}),(0,r.jsxs)("span",{className:"neural-meta-time",children:["T+",Math.max(0,Math.floor((l-a)/1e3)).toString().padStart(2,"0"),"S"]})]}),n.error&&(0,r.jsx)("button",{type:"button",className:"neural-retry","aria-label":"重试连接",title:"重试连接",onClick:()=>void n.refresh(),children:(0,r.jsx)(o.Z,{size:18,"aria-hidden":"true"})})]})]})]})}var z=n(2199),S=n(5257),E=n(2090),C=n(1857),N=n(8026),T=n(6533),L=n(4267);function I(e,t,n){let r=e.findIndex(e=>e.id===t),a=e.findIndex(e=>e.id===n);if(r<0||a<0||r===a)return[...e];let i=[...e],[o]=i.splice(r,1);return i.splice(a,0,o),i}function R(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"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 P(e){let{commands:t,onChange:n,onExecute:a}=e,[o,l]=(0,i.useState)(null),[s,d]=(0,i.useState)(""),[c,u]=(0,i.useState)(null),p=(0,i.useRef)(null),b=()=>{if(!o)return;let e=o.value.trim();return e?e.length>1e3?d("命令最多 1000 个字符"):/[\r\n\0]/.test(e)?d("命令只能包含一行"):void(o.id?n(t.map(t=>t.id===o.id?{...t,command:e}:t)):n([...t,R(e)]),l(null),d("")):d("命令不能为空")},m=(e,t)=>{e.preventDefault(),e.stopPropagation(),p.current=t,u(t),e.currentTarget.setPointerCapture(e.pointerId)},h=e=>{var r;if(!p.current)return;let a=null===(r=document.elementFromPoint(e.clientX,e.clientY))||void 0===r?void 0:r.closest("[data-pinned-id]"),i=null==a?void 0:a.dataset.pinnedId;i&&i!==p.current&&n(I(t,p.current,i))},x=e=>{e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId),p.current=null,u(null)},g=(e,r)=>{if("ArrowUp"!==e.key&&"ArrowDown"!==e.key)return;e.preventDefault();let a=t.findIndex(e=>e.id===r),i=t[a+("ArrowUp"===e.key?-1:1)];i&&n(I(t,r,i.id))};return(0,r.jsxs)("section",{className:"pinned-commands","aria-labelledby":"pinned-command-title",children:[(0,r.jsxs)("div",{className:"pinned-command-head",children:[(0,r.jsx)("span",{id:"pinned-command-title",children:"置顶命令"}),(0,r.jsx)("button",{className:"history-icon-button",onClick:()=>{l({id:null,value:""}),d("")},"aria-label":"新增置顶命令",title:"新增置顶命令",children:(0,r.jsx)(f.Z,{size:14,"aria-hidden":"true"})})]}),t.map(e=>(null==o?void 0:o.id)===e.id?(0,r.jsx)(D,{editor:o,error:s,onChange:e=>{l({...o,value:e}),d("")},onSave:b,onCancel:()=>{l(null),d("")}},e.id):(0,r.jsxs)("div",{className:"pinned-command-row".concat(c===e.id?" pinned-command-dragging":""),"data-pinned-id":e.id,role:"button",tabIndex:0,onClick:()=>a(e.command),onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),a(e.command))},children:[(0,r.jsx)("button",{className:"pinned-command-grip",onPointerDown:t=>m(t,e.id),onPointerMove:h,onPointerUp:x,onPointerCancel:x,onKeyDown:t=>g(t,e.id),onClick:e=>e.stopPropagation(),"aria-label":"调整 ".concat(e.command," 的顺序"),title:"拖动排序,或按上下方向键",children:(0,r.jsx)(N.Z,{size:14,"aria-hidden":"true"})}),(0,r.jsx)("code",{children:e.command}),(0,r.jsxs)("div",{className:"pinned-command-actions",onClick:e=>e.stopPropagation(),children:[(0,r.jsx)("button",{className:"history-icon-button",onClick:()=>{l({id:e.id,value:e.command}),d("")},"aria-label":"编辑 ".concat(e.command),title:"编辑",children:(0,r.jsx)(T.Z,{size:12,"aria-hidden":"true"})}),(0,r.jsx)("button",{className:"history-icon-button history-icon-danger",onClick:()=>n(t.filter(t=>t.id!==e.id)),"aria-label":"删除 ".concat(e.command),title:"删除",children:(0,r.jsx)(C.Z,{size:12,"aria-hidden":"true"})})]})]},e.id)),(null==o?void 0:o.id)===null&&(0,r.jsx)(D,{editor:o,error:s,onChange:e=>{l({...o,value:e}),d("")},onSave:b,onCancel:()=>{l(null),d("")}})]})}function D(e){let{editor:t,error:n,onChange:a,onSave:i,onCancel:o}=e;return(0,r.jsxs)("div",{className:"pinned-command-editor",children:[(0,r.jsx)("input",{autoFocus:!0,value:t.value,maxLength:1e3,onChange:e=>a(e.target.value),onKeyDown:e=>{"Enter"===e.key&&i(),"Escape"===e.key&&o()},"aria-label":t.id?"编辑置顶命令":"新增置顶命令"}),(0,r.jsx)("button",{className:"history-icon-button",onClick:i,"aria-label":"保存命令",title:"保存",children:(0,r.jsx)(L.Z,{size:13,"aria-hidden":"true"})}),(0,r.jsx)("button",{className:"history-icon-button",onClick:o,"aria-label":"取消编辑",title:"取消",children:(0,r.jsx)(u.Z,{size:13,"aria-hidden":"true"})}),n&&(0,r.jsx)("small",{role:"alert",children:n})]})}var M=n(7714);function W(e){let{csrfToken:t,terminalId:n,pinnedCommands:a,onPinnedCommandsChange:l,onFill:s,onExecute:d}=e,[c,u]=(0,i.useState)([]),[p,f]=(0,i.useState)(""),[b,m]=(0,i.useState)(""),h=(0,i.useCallback)(async()=>{let e=new URLSearchParams({q:p,limit:"200"}),t=await fetch("/api/web-console/history?".concat(e),{credentials:"same-origin"});t.ok&&u((await t.json()).history)},[p]);(0,i.useEffect)(()=>{let e=setTimeout(h,200);return()=>clearTimeout(e)},[h]);let x=async e=>{await fetch("/api/web-console/history",{method:"DELETE",credentials:"same-origin",headers:{"content-type":"application/json","x-csrf-token":t},body:JSON.stringify({id:e})}),h()},g=e=>{n&&s(e)},w=(0,i.useCallback)(e=>{"[REDACTED]"===e||a.some(t=>t.command===e)||l([...a,R(e)])},[l,a]),v=async e=>{m(await (0,M.T)(e)?"已复制命令":"复制失败,请长按命令手动复制")};return(0,r.jsxs)("div",{className:"history-panel",children:[(0,r.jsx)(P,{commands:a,onChange:l,onExecute:d}),(0,r.jsxs)("div",{className:"history-search",children:[(0,r.jsx)("input",{value:p,onChange:e=>f(e.target.value),placeholder:"搜索命令"}),(0,r.jsx)("button",{className:"history-icon-button",onClick:h,"aria-label":"刷新历史",title:"刷新历史",children:(0,r.jsx)(o.Z,{size:13,"aria-hidden":"true"})})]}),b&&(0,r.jsx)("div",{className:"terminal-clipboard-notice",role:"status",children:b}),c.map(e=>(0,r.jsxs)("div",{className:"history-item".concat(n?"":" history-item-disabled"),role:"button",tabIndex:n?0:-1,onClick:()=>g(e.command),onKeyDown:t=>{t.target===t.currentTarget&&("Enter"===t.key||" "===t.key)&&n&&(t.preventDefault(),g(e.command))},children:[(0,r.jsx)("code",{children:e.command}),(0,r.jsxs)("small",{children:[e.cwd," \xb7 ",new Date(e.executedAt).toLocaleString()]}),(0,r.jsxs)("div",{className:"history-item-actions",onClick:e=>e.stopPropagation(),onPointerDown:e=>e.stopPropagation(),children:[(0,r.jsx)("button",{className:"history-icon-button",onClick:()=>void v(e.command),"aria-label":"复制命令",title:"复制",children:(0,r.jsx)(z.Z,{size:12,"aria-hidden":"true"})}),(0,r.jsx)("button",{className:"history-icon-button",disabled:!n,onClick:()=>g(e.command),"aria-label":"填入命令",title:"填入",children:(0,r.jsx)(S.Z,{size:12,"aria-hidden":"true"})}),(0,r.jsx)("button",{className:"history-icon-button",disabled:"[REDACTED]"===e.command||a.some(t=>t.command===e.command),onClick:()=>w(e.command),"aria-label":"置顶命令",title:"置顶",children:(0,r.jsx)(E.Z,{size:12,"aria-hidden":"true"})}),(0,r.jsx)("button",{className:"history-icon-button history-icon-danger",onClick:()=>x(e.id),"aria-label":"删除历史",title:"删除",children:(0,r.jsx)(C.Z,{size:12,"aria-hidden":"true"})})]})]},e.id)),!c.length&&(0,r.jsx)("div",{className:"history-empty",children:"暂无 Shell 命令历史"}),!n&&!!c.length&&(0,r.jsx)("div",{className:"history-empty",children:"请先打开一个终端页签"})]})}var F=n(9149);let O=[{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"}}],A="pearl",H=Object.fromEntries(O.map(e=>[e.id,e])),U={dark:"noir",black:"noir",gray:"noir",blue:"noir",red:"noir",yellow:"noir",green:"noir",white:"pearl"};function Z(e){if(e&&e in H)return H[e];let t=e?U[e]:void 0;return t?H[t]:H[A]}function B(e){var t;let{username:n,themeId:a,onThemeChange:o,accent:l,accentText:s}=e,[d,c]=(0,i.useState)(!1),u=(0,i.useRef)(null),p=(0,i.useRef)(null),f=(0,i.useRef)(null),[b,m]=(0,i.useState)(null),[h,x]=(0,i.useState)(null);(0,i.useEffect)(()=>{var e,t;x(null!==(t=null===(e=u.current)||void 0===e?void 0:e.closest(".web-root"))&&void 0!==t?t:document.body)},[]);let g=(null!==(t=n.trim()[0])&&void 0!==t?t:"?").toUpperCase(),w=()=>{let e=p.current;if(!e)return;let t=e.getBoundingClientRect(),n=Math.max(8,Math.min(window.innerWidth-176-8,t.right-176));m({top:t.bottom+6,left:n})};return(0,i.useLayoutEffect)(()=>{if(!d){m(null);return}return w(),window.addEventListener("resize",w),window.addEventListener("scroll",w,!0),()=>{window.removeEventListener("resize",w),window.removeEventListener("scroll",w,!0)}},[d]),(0,i.useEffect)(()=>{if(!d)return;let e=e=>{var t,n;let r=e.target;(null===(t=u.current)||void 0===t||!t.contains(r))&&(null!==(n=f.current)&&void 0!==n&&n.contains(r)||c(!1))},t=e=>{"Escape"===e.key&&c(!1)},n=window.setTimeout(()=>{window.addEventListener("pointerdown",e,!0)},0);return window.addEventListener("keydown",t),()=>{window.clearTimeout(n),window.removeEventListener("pointerdown",e,!0),window.removeEventListener("keydown",t)}},[d]),(0,r.jsxs)("div",{ref:u,className:"theme-picker",children:[(0,r.jsx)("button",{ref:p,type:"button",className:"theme-avatar","aria-label":"换肤(".concat(n,")"),title:n,"aria-expanded":d,onPointerDown:e=>e.stopPropagation(),onClick:e=>{e.preventDefault(),e.stopPropagation(),c(e=>!e)},style:{border:"1px solid ".concat(l),background:l,color:s},children:g}),d&&b&&h&&(0,F.createPortal)((0,r.jsxs)("div",{ref:f,className:"theme-popover",role:"dialog","aria-label":"选择皮肤",style:{position:"fixed",top:b.top,left:b.left,zIndex:200,width:176,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:[(0,r.jsx)("div",{style:{fontSize:10,color:"var(--ui-connection-text, #777b8c)",margin:"2px 4px 6px",letterSpacing:.5},children:"皮肤"}),(0,r.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:O.map(e=>{let t=e.id===a;return(0,r.jsxs)("button",{type:"button",className:"theme-popover-item","aria-label":e.label,"aria-pressed":t,onPointerDown:e=>e.stopPropagation(),onClick:()=>{o(e.id),c(!1)},style:{background:t?"color-mix(in srgb, var(--ui-tab-accent, #7aa2f7) 14%, transparent)":"transparent"},children:[(0,r.jsx)("span",{style:{width:18,height:18,borderRadius:5,flexShrink:0,background:"linear-gradient(135deg, ".concat(e.preview[0]," 55%, ").concat(e.preview[1]," 55%)"),boxShadow:"inset 0 0 0 1px rgba(128,128,160,.25)"}}),(0,r.jsx)("span",{style:{flex:1,textAlign:"left",fontSize:12,fontWeight:t?600:400,color:t?"var(--ui-tab-active-text, #edf0f7)":"var(--ui-tab-text, #8f93a4)"},children:e.label}),t&&(0,r.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:(0,r.jsx)("path",{d:"m5 12 4 4L19 6"})})]},e.id)})})]}),h)]})}var q=n(9532);let V="agent-webapp:ready:v1";var X=n(8924);let _=(0,a.default)(()=>Promise.all([n.e(118),n.e(658),n.e(834)]).then(n.bind(n,9834)),{loadableGenerated:{webpack:()=>[9834]},ssr:!1}),K=(0,a.default)(()=>n.e(33).then(n.bind(n,1033)),{loadableGenerated:{webpack:()=>[1033]},ssr:!1}),G=(0,a.default)(()=>Promise.all([n.e(367),n.e(784)]).then(n.bind(n,3784)),{loadableGenerated:{webpack:()=>[3784]},ssr:!1}),J=(0,a.default)(()=>n.e(20).then(n.bind(n,4020)),{loadableGenerated:{webpack:()=>[4020]},ssr:!1}),Y=(0,a.default)(()=>n.e(326).then(n.bind(n,2326)),{loadableGenerated:{webpack:()=>[2326]},ssr:!1,loading:()=>(0,r.jsx)(X.Z,{})});function Q(){return(0,r.jsx)(j,{children:(e,t)=>(0,r.jsx)(er,{auth:e,onWorkspaceReady:t})})}let $={id:"webapp-agent",title:"智能助手",kind:"webapp"},ee={id:"ai-hub",title:"AI Hub",kind:"aihub"},et={id:"flow-studio",title:"Flow Studio",kind:"flowstudio"};function en(){var e;return"undefined"==typeof document?A:Z(null===(e=document.getElementById("web-theme-root"))||void 0===e?void 0:e.dataset.webTheme).id}function er(e){var t,n,a,p,f;let{auth:b,onWorkspaceReady:j}=e,z=(0,i.useRef)(null),S=(0,i.useRef)(()=>{}),{state:E,epoch:C,rpc:N,onEvent:T,onTerminalData:L,onTerminalReset:I,sendTerminalInput:R}=function(e,t,n){let[r,a]=(0,i.useState)({connected:!1,error:null}),[o,l]=(0,i.useState)(0),s=(0,i.useRef)(null),d=(0,i.useRef)(0),c=(0,i.useRef)(new Map),u=(0,i.useRef)([]),p=(0,i.useRef)(0),f=(0,i.useRef)(new Map),b=(0,i.useRef)(new Map),m=(0,i.useRef)(new Map),h=(0,i.useRef)(1e3),x=(0,i.useRef)(!1),g=(0,i.useRef)(null),w=(0,i.useRef)(e),v=(0,i.useRef)(t),y=(0,i.useRef)(n);w.current=e,v.current=t,y.current=n;let k=(0,i.useCallback)((e,t)=>{let n=f.current.get(e);return n||f.current.set(e,n=new Set),n.add(t),()=>n.delete(t)},[]),j=(0,i.useCallback)((e,t)=>{let n=b.current.get(e);return n||b.current.set(e,n=new Set),n.add(t),()=>n.delete(t)},[]),z=(0,i.useCallback)((e,t)=>{let n=m.current.get(e);return n||m.current.set(e,n=new Set),n.add(t),()=>n.delete(t)},[]),S=(0,i.useCallback)((e,t)=>{let n=s.current;if(!n||n.readyState!==WebSocket.OPEN)return!1;let r=new TextEncoder().encode(t),a=new Uint8Array(6+r.byteLength),i=new DataView(a.buffer);return a[0]=1,a[1]=1,i.setUint32(2,e),a.set(r,6),n.send(a),!0},[]),E=(0,i.useCallback)(e=>{let t=s.current;(null==t?void 0:t.readyState)===WebSocket.OPEN?t.send(e):u.current.push(e)},[]),C=(0,i.useCallback)(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:15e3;return new Promise((r,a)=>{var i;if(e.startsWith("browser:")&&(null===(i=s.current)||void 0===i?void 0:i.readyState)!==WebSocket.OPEN){a(Object.assign(Error("远程连接已断开,请等待重新连接"),{code:"EOFFLINE"}));return}let o=++p.current,l=setTimeout(()=>{c.current.delete(o),a(Error("".concat(e," timeout")))},n);c.current.set(o,{resolve:r,reject:a,timer:l,type:e}),E(JSON.stringify({type:e,_req:o,...t}))})},[E]),N=(0,i.useCallback)(async()=>{let e,t;x.current=!1;let n=++d.current;g.current&&(clearInterval(g.current),g.current=null);let r=s.current;if(r){r.onopen=r.onmessage=r.onerror=r.onclose=null;try{r.close()}catch(e){}}try{e=await v.current()}catch(e){n===d.current&&y.current();return}if(n===d.current&&!x.current){try{t=new WebSocket("".concat("".concat("https:"===location.protocol?"wss:":"ws:","//").concat(location.host,"/ws"),"?nonce=").concat(encodeURIComponent(e)))}catch(e){a({connected:!1,error:String(e)});return}t.binaryType="arraybuffer",s.current=t,t.onopen=()=>{if(n!==d.current||s.current!==t)return;for(let e of(h.current=1e3,a({connected:!0,error:null}),l(e=>e+1),u.current.splice(0)))t.send(e);let e=Date.now();g.current=setInterval(()=>{if(s.current!==t||t.readyState!==WebSocket.OPEN){clearInterval(g.current),g.current=null;return}if(Date.now()-e>25e3){try{t.close()}catch(e){}return}try{t.send(JSON.stringify({type:"ping"}))}catch(e){}},1e4);let r=()=>{e=Date.now()};t.addEventListener("message",r),t.addEventListener("close",()=>t.removeEventListener("message",r),{once:!0})},t.onmessage=e=>{var r,a,i;let o;if(n===d.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);null===(a=b.current.get(e))||void 0===a||a.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);null===(i=m.current.get(e))||void 0===i||i.forEach(e=>e())}else w.current(t);return}try{o=JSON.parse(e.data)}catch(e){return}if("error"===o.type&&null!=o.id){let e=c.current.get(o.id);if(e){c.current.delete(o.id),clearTimeout(e.timer);let t=Object.assign(Error(o.error||"gateway error"),{code:o.code});e.reject(t)}return}if(null!=o.id&&"string"==typeof o.type&&o.type.endsWith(":result")){let e=c.current.get(o.id);e&&(c.current.delete(o.id),clearTimeout(e.timer),e.resolve(o));return}null===(r=f.current.get(o.type))||void 0===r||r.forEach(e=>e(o))}},t.onclose=e=>{if(n!==d.current||s.current!==t)return;for(let[e,t]of(g.current&&(clearInterval(g.current),g.current=null),s.current=null,c.current))t.type.startsWith("browser:")&&(clearTimeout(t.timer),c.current.delete(e),t.reject(Object.assign(Error("远程连接已断开,请重新接管"),{code:"EOFFLINE"})));if(a({connected:!1,error:null}),4001===e.code||4003===e.code){y.current();return}if(x.current)return;let r=h.current;h.current=Math.min(2*r,8e3),setTimeout(()=>{x.current||n!==d.current||N()},r)},t.onerror=()=>{}}},[]);return(0,i.useEffect)(()=>(N(),()=>{x.current=!0,d.current++,g.current&&(clearInterval(g.current),g.current=null);let e=s.current;if(s.current=null,e){e.onopen=e.onmessage=e.onerror=e.onclose=null;try{e.close()}catch(e){}}}),[N]),{state:r,epoch:o,rpc:C,onEvent:k,onTerminalData:j,onTerminalReset:z,sendTerminalInput:S,reconnect:N}}((0,i.useCallback)(e=>{var t,n;let r=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]!==k.watcherFrame&&t[1]!==k.producerFrame)return null;let n=new DataView(t.buffer,t.byteOffset,t.byteLength);return{type:t[1],channelId:n.getUint32(2,!1),sequence:n.getUint32(6,!1),payload:t.subarray(10)}}(e);if(!r||r.type!==k.watcherFrame)return;S.current(r.channelId,r.sequence);let a=r.payload.slice().buffer;null===(n=z.current)||void 0===n||null===(t=n.contentWindow)||void 0===t||t.postMessage({type:"agent-web-shell:browser-frame:v1",channelId:r.channelId,sequence:r.sequence,data:a},window.location.origin,[a])},[]),b.getWsNonce,b.refresh),P=(0,i.useMemo)(()=>({request:(e,t,n)=>N(e,t,n),subscribe:(e,t)=>T("fs:event",t)}),[T,N]);S.current=(e,t)=>{N("browser:frame-ack",{channelId:e,sequence:t}).catch(()=>void 0)};let[D,M]=(0,i.useState)([{...$}]),F=(0,i.useRef)(D);F.current=D;let[O,A]=(0,i.useState)($.id),[H,U]=(0,i.useState)({}),X=(0,i.useRef)(!1),Q=(0,i.useRef)(null),er=(0,i.useRef)(new Map),eo=(0,i.useRef)(new Map),el=(0,i.useCallback)((e,t)=>{er.current.set(e,t);let n=window.setTimeout(()=>{if(er.current.get(e)!==t)return;let n=eo.current.get(e);n&&(eo.current.delete(e),t(n,!0))},180);return()=>{window.clearTimeout(n),er.current.get(e)===t&&er.current.delete(e)}},[]),es=(0,i.useCallback)(e=>{var t;if(!O||(null===(t=D.find(e=>e.id===O))||void 0===t?void 0:t.kind))return;let n=er.current.get(O);n?n(e):N("term:input",{id:O,data:"\x15".concat(e)}).catch(()=>{}),eh(!1)},[O,N,D]),[ed,ec]=(0,i.useState)(!1),[eu,ep]=(0,i.useState)({}),[ef,eb]=(0,i.useState)(null),[em,eh]=(0,i.useState)(!1),[ex,eg]=(0,i.useState)("files"),[ew,ev]=(0,i.useState)(null),[ey,ek]=(0,i.useState)(!0),[ej,ez]=(0,i.useState)(null),[eS,eE]=(0,i.useState)(!1),[eC,eN]=(0,i.useState)([]),[eT,eL]=(0,i.useState)(h.map((e,t)=>({id:"default-".concat(t+1),command:e}))),[eI,eR]=(0,i.useState)(en),[eP,eD]=(0,i.useState)(!1),[eM,eW]=(0,i.useState)(!1),eF=Z(eI),eO=(0,i.useRef)(null),[eA,eH]=(0,i.useState)(0),[eU,eZ]=(0,i.useState)(!1),eB=(0,i.useRef)(null),eq=(0,i.useRef)(null),eV=(0,i.useCallback)(e=>{var t,n;null===(n=z.current)||void 0===n||null===(t=n.contentWindow)||void 0===t||t.postMessage({type:"agent-web-shell:skin:v1",skin:e},window.location.origin)},[]);(0,i.useEffect)(()=>{eV(eI)},[eI,eV]),(0,i.useEffect)(()=>{let e=eF.cssVars["--ui-root-bg"],t=eF.cssVars["--ui-color-scheme"],n=document.getElementById("web-theme-root");for(let[e,t]of Object.entries(eF.cssVars))null==n||n.style.setProperty(e,t);n&&(n.dataset.webTheme=eF.id),document.documentElement.style.background=e,document.documentElement.style.colorScheme=t,document.body.style.background=e,document.body.style.colorScheme=t;let r=document.querySelector('meta[name="theme-color"]');r||((r=document.createElement("meta")).name="theme-color",document.head.append(r)),r.content=eF.cssVars["--ui-tabbar-bg"]},[eF]),(0,i.useEffect)(()=>{let e=e=>{var t,n,r,a,i,o,l,s,d,c,u,p,f,b,m,h,v,k,S,E,C;if(u=window.location.origin,p=null!==(i=null===(t=z.current)||void 0===t?void 0:t.contentWindow)&&void 0!==i?i:null,e.origin!==u||e.source!==p?null:(f=e.data)&&"object"==typeof f?f.type!==V?null:{type:V}:null){eW(!0),j();return}let T=(d=window.location.origin,c=null!==(o=null===(n=z.current)||void 0===n?void 0:n.contentWindow)&&void 0!==o?o:null,e.origin!==d||e.source!==c?null:!(b=e.data)||"object"!=typeof b||"agent-webapp:artifact-open:v1"!==b.type||!Number.isSafeInteger(b.requestId)||1>Number(b.requestId)?null:"string"!=typeof b.path||!((m=b.path).startsWith("/")||/^[A-Za-z]:[\\/]/.test(m)||/^\\\\[^\\/]+[\\/][^\\/]+/.test(m))||b.path.includes("\0")||b.path.includes("\n")||b.path.includes("\r")?null:b);if(T){eg("files"),eh(!0),eb(T.path),ez(T);return}let L=(h=window.location.origin,v=null!==(l=null===(r=z.current)||void 0===r?void 0:r.contentWindow)&&void 0!==l?l:null,e.origin!==h||e.source!==v?null:(k=e.data)&&"object"==typeof k?"agent-webapp:browser-request:v1"!==k.type||!Number.isSafeInteger(k.id)||1>Number(k.id)||"string"!=typeof k.method||!y.has(k.method)||!k.payload||"object"!=typeof k.payload||Array.isArray(k.payload)?null:k:null);if(L){N(L.method,{...L.payload,..."browser:watch"===L.method?{frameAck:!0}:{}}).then(e=>{var t,n;null===(n=z.current)||void 0===n||null===(t=n.contentWindow)||void 0===t||t.postMessage({type:w,id:L.id,ok:!0,result:e},window.location.origin)},e=>{var t,n;null===(n=z.current)||void 0===n||null===(t=n.contentWindow)||void 0===t||t.postMessage({type:w,id:L.id,ok:!1,error:e.message||"浏览器操作失败",code:e.code},window.location.origin)});return}let I=(S=window.location.origin,E=null!==(s=null===(a=z.current)||void 0===a?void 0:a.contentWindow)&&void 0!==s?s:null,e.origin!==S||e.source!==E?null:(C=e.data)&&"object"==typeof C?"agent-webapp:project-request:v1"!==C.type||!Number.isSafeInteger(C.id)||1>Number(C.id)||"string"!=typeof C.method||!g.has(C.method)||!C.payload||"object"!=typeof C.payload||Array.isArray(C.payload)?null:C:null);I&&N(I.method,I.payload).then(e=>{var t,n;null===(n=z.current)||void 0===n||null===(t=n.contentWindow)||void 0===t||t.postMessage({type:x,id:I.id,ok:!0,result:e},window.location.origin)},e=>{var t,n;null===(n=z.current)||void 0===n||null===(t=n.contentWindow)||void 0===t||t.postMessage({type:x,id:I.id,ok:!1,error:e.message||"项目操作失败",code:e.code},window.location.origin)})};return window.addEventListener("message",e),()=>window.removeEventListener("message",e)},[j,N]),(0,i.useEffect)(()=>{let e=e=>{var t,n;null===(n=z.current)||void 0===n||null===(t=n.contentWindow)||void 0===t||t.postMessage({type:v,event:e},window.location.origin)},t=["browser:session","browser:frame","browser:state","browser:closed","browser:webrtc"].map(t=>T(t,e));return()=>t.forEach(e=>e())},[T]),(0,i.useEffect)(()=>{var e,t;eM&&(null===(t=z.current)||void 0===t||null===(e=t.contentWindow)||void 0===e||e.postMessage({type:v,event:{type:"browser:connection",connected:E.connected,epoch:C}},window.location.origin))},[E.connected,C,eM]);let eX=(0,i.useRef)(0),e_=O&&null!==(p=H[O])&&void 0!==p?p:null;(0,i.useEffect)(()=>{let e=window.visualViewport,t=null,n="",r=()=>{let a=(0,q.x)(e,{height:window.innerHeight,width:window.innerWidth}),i="".concat(a.width,"x").concat(a.height,"+").concat(a.top,"+").concat(a.left);i!==n&&(n=i,document.documentElement.style.setProperty("--vv-height","".concat(a.height,"px")),document.documentElement.style.setProperty("--vv-width","".concat(a.width,"px")),document.documentElement.style.setProperty("--vv-top","".concat(a.top,"px")),document.documentElement.style.setProperty("--vv-left","".concat(a.left,"px")),t&&window.clearTimeout(t),t=window.setTimeout(r,250))};return r(),null==e||e.addEventListener("resize",r),null==e||e.addEventListener("scroll",r),window.addEventListener("orientationchange",r),window.addEventListener("resize",r),document.addEventListener("visibilitychange",r),window.addEventListener("pageshow",r),()=>{null==e||e.removeEventListener("resize",r),null==e||e.removeEventListener("scroll",r),window.removeEventListener("orientationchange",r),window.removeEventListener("resize",r),document.removeEventListener("visibilitychange",r),window.removeEventListener("pageshow",r),t&&window.clearTimeout(t),document.documentElement.style.removeProperty("--vv-height"),document.documentElement.style.removeProperty("--vv-width"),document.documentElement.style.removeProperty("--vv-top"),document.documentElement.style.removeProperty("--vv-left")}},[]),(0,i.useEffect)(()=>{fetch("/api/web-console/preferences",{credentials:"same-origin"}).then(e=>e.json()).then(e=>{var t,n,r,a;"boolean"==typeof(null===(t=e.preferences)||void 0===t?void 0:t.keybarHidden)&&eE(e.preferences.keybarHidden),Array.isArray(null===(n=e.preferences)||void 0===n?void 0:n.keyOrder)&&eN(e.preferences.keyOrder),Array.isArray(null===(r=e.preferences)||void 0===r?void 0:r.pinnedCommands)&&eL(e.preferences.pinnedCommands),(null===(a=e.preferences)||void 0===a?void 0:a.theme)&&eR(Z(e.preferences.theme).id)}).catch(()=>{}).finally(()=>eD(!0)),fetch("/api/web-console/device-state",{credentials:"same-origin"}).then(e=>e.json()).then(e=>{let t=e.deviceState;(null==t?void 0:t.drawerTab)&&eg(t.drawerTab),(null==t?void 0:t.activeTerminalId)&&(Q.current=t.activeTerminalId),"boolean"==typeof(null==t?void 0:t.drawerOpen)&&eh(t.drawerOpen),(null==t?void 0:t.fileTreeRoot)&&ev(t.fileTreeRoot),"boolean"==typeof(null==t?void 0:t.fileTreeFollowMode)&&ek(t.fileTreeFollowMode),(null==t?void 0:t.selectedFile)&&eb(t.selectedFile),(null==t?void 0:t.terminalScroll)&&"object"==typeof t.terminalScroll&&ep(t.terminalScroll)}).catch(()=>{}).finally(()=>ec(!0))},[]);let eK=(0,i.useCallback)(e=>{fetch("/api/web-console/preferences",{method:"PATCH",credentials:"same-origin",headers:{"content-type":"application/json","x-csrf-token":b.csrfToken},body:JSON.stringify(e)}).catch(()=>{})},[b.csrfToken]);(0,i.useEffect)(()=>{if(!eP)return;let e=setTimeout(()=>eK({keybarHidden:eS,keyOrder:eC,pinnedCommands:eT,theme:eI}),500);return()=>clearTimeout(e)},[eS,eC,eT,eI,eP,eK]);let eG=(0,i.useCallback)(e=>{b.csrfToken&&fetch("/api/web-console/device-state",{method:"PUT",credentials:"same-origin",headers:{"content-type":"application/json","x-csrf-token":b.csrfToken},body:JSON.stringify(e)}).catch(()=>{})},[b.csrfToken]);(0,i.useEffect)(()=>{if(!b.csrfToken)return;let e=setTimeout(()=>eG({activeTerminalId:O,drawerOpen:em,drawerTab:ex,fileTreeRoot:ew,fileTreeFollowMode:ey,selectedFile:ef,terminalScroll:eu}),500);return()=>clearTimeout(e)},[O,em,ex,ew,ey,ef,eu,b.csrfToken,eG]),(0,i.useEffect)(()=>{if(!b.csrfToken)return;let e=()=>eG({activeTerminalId:O,drawerOpen:em,drawerTab:ex,fileTreeRoot:ew,fileTreeFollowMode:ey,selectedFile:ef,terminalScroll:eu});return window.addEventListener("pagehide",e),()=>window.removeEventListener("pagehide",e)},[O,em,ex,ew,ey,ef,eu,b.csrfToken,eG]);let eJ=(0,i.useCallback)(e=>{eb(e),eh(!1)},[]),eY=(0,i.useCallback)(()=>{if(D.length>=8)return;let e="t-web-".concat(Date.now().toString(36),"-").concat(Math.random().toString(36).slice(2,8));M(t=>t.length>=8?t:[...t,{id:e,title:"Terminal ".concat(t.length+1)}]),A(e)},[D.length]),eQ=(0,i.useCallback)(e=>{var t;let n=D.find(e=>e.id===O);if((null==n?void 0:n.kind)&&"webapp"!==n.kind)return;if(n&&!n.kind){let t=er.current.get(n.id);t?t(e,!0):eo.current.set(n.id,e),eh(!1);return}let r=D.length>=8?D.find(e=>!e.kind):null,a=null!==(t=null==r?void 0:r.id)&&void 0!==t?t:"t-web-".concat(Date.now().toString(36),"-").concat(Math.random().toString(36).slice(2,8));r?eo.current.set(a,e):M(t=>[...t,{id:a,title:"Terminal ".concat(t.length+1),initialCommand:e}]),A(a),eh(!1)},[O,D]);(0,i.useEffect)(()=>{E.connected&&ed&&!X.current&&(X.current=!0,N("term:list").then(e=>{let t=e.tabs.filter(e=>"active"===e.status||"detached"===e.status).map(e=>{let{id:t,title:n}=e;return{id:t,title:n}});M(e=>[$,...t,...e.filter(e=>"aihub"===e.kind||"flowstudio"===e.kind)]),A(e=>{let n=F.current.find(t=>t.id===e&&("aihub"===t.kind||"flowstudio"===t.kind));if(n)return n.id;let r=Q.current||e||$.id;return r===$.id?$.id:t.some(e=>e.id===r)?r:$.id})}).catch(()=>{}))},[E.connected,ed,N]);let e$=e=>{var t;if(e===$.id)return;let n=null===(t=D.find(t=>t.id===e))||void 0===t?void 0:t.kind;(n||window.confirm("关闭页签会终止该终端进程,确认关闭?"))&&(M(t=>{var n,r;let a=t.filter(t=>t.id!==e);return O===e&&A(null!==(r=null===(n=a[0])||void 0===n?void 0:n.id)&&void 0!==r?r:null),a}),n||N("term:kill",{id:e}).catch(()=>{}))},e0=(0,i.useCallback)(()=>{M(e=>{let t=e.find(e=>"aihub"===e.kind);return t?(A(t.id),e):(A(ee.id),[...e,{...ee}])})},[]),e1=(0,i.useCallback)(()=>{M(e=>{let t=e.find(e=>"flowstudio"===e.kind);return t?(A(t.id),e):(A(et.id),[...e,{...et}])})},[]),e2=(0,i.useCallback)(()=>{var e,t;A($.id),null===(t=z.current)||void 0===t||null===(e=t.contentWindow)||void 0===e||e.postMessage({type:"agent-web-shell:open-browser-live:v1"},window.location.origin)},[]);(0,i.useEffect)(()=>{let e=T("term:exited",e=>{let t=null==e?void 0:e.id;t&&(M(e=>{let n=e.filter(e=>e.id!==t);return A(e=>{var r,a;return e===t?null!==(a=null===(r=n[0])||void 0===r?void 0:r.id)&&void 0!==a?a:null:e}),n}),ep(e=>{if(!(t in e))return e;let n={...e};return delete n[t],n}))});return()=>{e()}},[T]);let e4=(0,i.useCallback)(e=>{if(!O||D.length<2)return;let t=(D.findIndex(e=>e.id===O)+e+D.length)%D.length;A(D[t].id)},[O,D]),e6=Math.max(0,D.findIndex(e=>e.id===O)),e8=(null===(t=D[e6])||void 0===t?void 0:t.kind)==="webapp"?eF.cssVars["--ui-term-col-bg"]:eF.termHostBg,e5={...ei.root,...eF.cssVars,"--ui-active-content-bg":e8,"--ui-terminal-bg":eF.termHostBg,"--ui-primary-text":eF.keybar.accentText,background:"var(--ui-root-bg)",color:"var(--ui-text)"},e3=(0,i.useCallback)(()=>{eO.current=null,eH(0),eZ(!1)},[]),e7=(0,i.useCallback)(e=>{Math.abs(e)>=64&&D.length>1&&e4(e<0?1:-1),e3()},[D.length,e4,e3]),e9=e=>e instanceof Element&&!!e.closest(".terminal-screen");(0,i.useEffect)(()=>{let e=e=>{var t,n,r,a,i;if(O!==$.id)return;let o=(r=window.location.origin,a=null!==(n=null===(t=z.current)||void 0===t?void 0:t.contentWindow)&&void 0!==n?n:null,e.origin!==r||e.source!==a?null:(i=e.data)&&"object"==typeof i&&"agent-webapp:tab-swipe:v1"===i.type&&("move"===i.phase||"end"===i.phase||"cancel"===i.phase)&&"number"==typeof i.deltaX&&Number.isFinite(i.deltaX)?i:null);o&&("move"===o.phase?(eZ(!0),eH(o.deltaX)):"end"===o.phase?e7(o.deltaX):e3())};return window.addEventListener("message",e),()=>window.removeEventListener("message",e)},[O,e7,e3]);let te=(0,i.useCallback)(function(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"smooth",n=eq.current;if(!n||!O)return;let r=n.querySelector('[data-terminal-id="'.concat(O,'"]'));if(!r)return;if(r===n.querySelector("[data-terminal-id]")){(0,q.i)(n);return}let a=n.querySelector(".terminal-connection"),i=null!==(e=null==a?void 0:a.offsetWidth)&&void 0!==e?e:0,o=r.offsetLeft,l=o+r.offsetWidth,s=n.scrollLeft,d=s+n.clientWidth-i;o<s+8?n.scrollTo({left:Math.max(0,o-8),behavior:t}):l>d-8&&n.scrollTo({left:l-n.clientWidth+i+8,behavior:t})},[O]);return(0,i.useLayoutEffect)(()=>{if(!O)return;let e=D.length>eX.current;eX.current=D.length,te(e?"auto":"smooth")},[O,D.length,te]),(0,i.useEffect)(()=>{let e=()=>requestAnimationFrame(()=>te("auto"));return window.addEventListener("pageshow",e),()=>window.removeEventListener("pageshow",e)},[te]),(0,r.jsxs)("div",{className:"web-root",style:e5,children:[(0,r.jsx)("style",{dangerouslySetInnerHTML:{__html:ea}}),(0,r.jsxs)("div",{className:"terminal-tabs",ref:eq,children:[D.map(e=>(0,r.jsxs)("div",{"data-terminal-id":e.id,draggable:!0,className:"terminal-tab ".concat(e.id===O?"active":""),onDragStart:()=>{eB.current=e.id},onDragOver:e=>e.preventDefault(),onDrop:t=>{t.preventDefault();let n=eB.current;eB.current=null,n&&n!==e.id&&M(t=>{let r=t.findIndex(e=>e.id===n),a=t.findIndex(t=>t.id===e.id);if(r<0||a<0)return t;let i=[...t],[o]=i.splice(r,1);return i.splice(a,0,o),N("term:reorder",{ids:i.filter(e=>!e.kind).map(e=>e.id)}).catch(()=>{}),i})},onClick:()=>A(e.id),onDoubleClick:()=>{var t;if(e.kind)return;let n=null===(t=window.prompt("页签名称",e.title))||void 0===t?void 0:t.trim();n&&N("term:rename",{id:e.id,title:n}).then(()=>M(t=>t.map(t=>t.id===e.id?{...t,title:n}:t))).catch(()=>{})},children:[(0,r.jsx)("span",{children:e.title}),"webapp"!==e.kind&&(0,r.jsx)("button",{tabIndex:-1,onClick:t=>{t.stopPropagation(),e$(e.id)},children:"\xd7"})]},e.id)),(0,r.jsx)("button",{className:"terminal-add",disabled:D.length>=8,onClick:eY,children:"+"}),(0,r.jsxs)("div",{className:"terminal-connection",children:[(0,r.jsx)("button",{type:"button",className:"file-drawer-toggle","aria-label":"刷新页面",title:"刷新页面",onClick:()=>window.location.reload(),children:(0,r.jsx)(o.Z,{size:17,"aria-hidden":"true"})}),(0,r.jsx)(m,{}),(0,r.jsx)("button",{type:"button",className:"file-drawer-toggle","aria-label":"打开远程桌面",title:"远程桌面 \xb7 浏览器直播",onClick:e2,children:(0,r.jsx)(l.Z,{size:17,"aria-hidden":"true"})}),(0,r.jsx)("button",{type:"button",className:"file-drawer-toggle","aria-label":"打开 AI Hub",title:"AI Hub \xb7 多模型对比",onClick:e0,children:(0,r.jsx)(s.Z,{size:17,"aria-hidden":"true"})}),(0,r.jsx)("button",{type:"button",className:"file-drawer-toggle","aria-label":"打开数字人",title:"数字人 \xb7 Flow Studio",onClick:e1,children:(0,r.jsx)(d.Z,{size:17,"aria-hidden":"true"})}),(0,r.jsx)("button",{type:"button",className:"file-drawer-toggle","aria-label":em?"关闭我的文件":"打开我的文件",title:"我的文件","aria-expanded":em,onClick:()=>eh(e=>!e),children:(0,r.jsx)(c.Z,{size:17,"aria-hidden":"true"})}),(0,r.jsxs)("div",{className:"theme-avatar-with-status",children:[(0,r.jsx)(B,{username:null!==(f=null===(n=b.user)||void 0===n?void 0:n.username)&&void 0!==f?f:"?",themeId:eI,onThemeChange:eR,accent:eF.keybar.accent,accentText:eF.keybar.accentText}),(0,r.jsx)("span",{className:"theme-avatar-status","data-connected":E.connected,"aria-label":E.connected?"已连接":"未连接"})]})]})]}),(0,r.jsxs)("main",{className:"workspace ".concat(em?"show-tree":""," ").concat(ef?"has-preview":""),style:ei.workspace,children:[(0,r.jsx)("section",{className:"term-col",style:ei.termCol,onPointerDownCapture:e=>{"touch"===e.pointerType&&e9(e.target)&&(e3(),eO.current={x:e.clientX,y:e.clientY,axis:"pending",pointerId:e.pointerId})},onPointerMoveCapture:e=>{let t=eO.current;if(!t||e.pointerId!==t.pointerId||"touch"!==e.pointerType)return;let n=e.clientX-t.x,r=e.clientY-t.y;if("pending"===t.axis){if(8>=Math.max(Math.abs(n),Math.abs(r)))return;if(Math.abs(r)>=1.2*Math.abs(n)){eO.current=null;return}t.axis="horizontal",eZ(!0);let e=n=>{window.removeEventListener("pointerup",e),window.removeEventListener("pointercancel",e),eO.current===t&&e3()};window.addEventListener("pointerup",e),window.addEventListener("pointercancel",e)}"horizontal"===t.axis&&(e.preventDefault(),eH(n))},onPointerUpCapture:e=>{let t=eO.current;if(!t||e.pointerId!==t.pointerId)return;let n=e.clientX-t.x;"horizontal"===t.axis&&Math.abs(n)>=64?e7(n):e3()},onPointerCancelCapture:e3,children:(0,r.jsx)("div",{className:"terminal-track",style:{transform:"translate3d(calc(".concat(-(100*e6),"% + ").concat(eA,"px),0,0)"),transition:eU?"none":"transform 260ms cubic-bezier(.22,.8,.32,1)"},children:D.map(e=>{var t;return(0,r.jsx)("div",{className:"terminal-slide",style:{position:"relative"},children:"webapp"===e.kind?(0,r.jsx)("iframe",{ref:z,className:"webapp-frame",src:"/app/",title:e.title,onLoad:()=>eV(eI)}):"aihub"===e.kind?(0,r.jsx)(J,{visible:e.id===O,rpc:N}):"flowstudio"===e.kind?(0,r.jsx)(Y,{visible:e.id===O}):(0,r.jsx)(_,{terminalId:e.id,title:e.title,initialCommand:e.initialCommand,visible:e.id===O,state:E,rpc:N,onEvent:T,onTerminalData:L,onTerminalReset:I,sendTerminalInput:R,keyOrder:eC,keybarHidden:eS,onKeyOrderChange:eN,onKeybarHiddenChange:eE,terminalTheme:eF,initialScrollLine:null!==(t=eu[e.id])&&void 0!==t?t:null,onScrollLineChange:t=>ep(n=>n[e.id]===t?n:{...n,[e.id]:t}),onRegisterFill:t=>el(e.id,t),onCwdChange:t=>t&&U(n=>({...n,[e.id]:t}))})},e.id)})})}),em&&(0,r.jsx)("div",{className:"drawer-mask",onClick:()=>eh(!1)}),(0,r.jsxs)("aside",{className:"tree-col ".concat(em?"tree-col-open":""),style:ei.treeCol,children:[(0,r.jsxs)("div",{className:"tree-head",style:ei.treeHead,children:[(0,r.jsx)("button",{className:"files"===ex?"drawer-tab-active":"",onClick:()=>eg("files"),children:"文件"}),(0,r.jsx)("button",{className:"history"===ex?"drawer-tab-active":"",onClick:()=>eg("history"),children:"历史"}),(0,r.jsx)("span",{className:"tree-cwd",style:ei.treeCwd,children:null!=e_?e_:""}),(0,r.jsx)("button",{style:{...ei.iconBtn,marginLeft:"auto",flexShrink:0},onClick:()=>eh(!1),"aria-label":"close drawer",children:(0,r.jsx)(u.Z,{size:15,"aria-hidden":"true"})})]}),"files"===ex?(0,r.jsx)(K,{ready:C>0,followCwd:!0,cwd:e_,gateway:P,onOpenFile:eJ,selectedPath:ef,initialRoot:ew,initialFollow:ey,revealRequest:ej,onTreeStateChange:(e,t)=>{ev(e),ek(t)}}):(0,r.jsx)(W,{csrfToken:b.csrfToken,terminalId:(null===(a=D.find(e=>e.id===O))||void 0===a?void 0:a.kind)==="webapp"?null:O,pinnedCommands:eT,onPinnedCommandsChange:eL,onFill:es,onExecute:eQ}),(0,r.jsxs)("div",{style:ei.treeFoot,children:[(0,r.jsx)("span",{style:ei.treeFootDot}),(0,r.jsx)("span",{children:"实时同步"})]})]}),ef&&(0,r.jsx)("section",{className:"preview-col",style:ei.previewCol,children:(0,r.jsx)(G,{path:ef,gateway:P,onClose:()=>eb(null)})})]})]})}let ea='\n html, body { width:100%; height:100%; margin:0; overflow:hidden; background:var(--ui-root-bg, #0b0b10); overscroll-behavior:none; color:var(--ui-text, #e8e8ee); }\n * { -webkit-tap-highlight-color: transparent; }\n .terminal-tabs { display:flex; align-items:end; gap:4px; min-height:38px; padding:0 8px; overflow-x:auto; overflow-y:hidden; touch-action:pan-x; overscroll-behavior-x:contain; -webkit-overflow-scrolling:touch; scroll-behavior:smooth; background:var(--ui-tabbar-bg, #12141b); border-bottom:0; scrollbar-width:none; flex-shrink:0; }\n .terminal-tab { display:flex; align-items:center; gap:7px; min-width:74px; max-width:130px; height:32px; padding:0 7px 0 10px; border-radius:7px 7px 0 0; background:var(--ui-tab-bg, #1b1e28); color:var(--ui-tab-text, #8f93a4); font-size:11px; cursor:pointer; box-sizing:border-box; transition:color .2s ease,box-shadow .2s ease; }\n .terminal-tab.active { color:var(--ui-tab-active-text, #edf0f7); background:var(--ui-active-content-bg, var(--ui-tab-active-bg, #262b38)); box-shadow:inset 0 2px var(--ui-tab-accent, #7aa2f7); }\n .terminal-tab span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; flex:1; }\n .terminal-tab button { width:18px; height:18px; border:0; border-radius:4px; background:transparent; color:var(--ui-tab-text, #707586); padding:0; }\n .terminal-add { min-width:30px; height:28px; margin-bottom:2px; border:1px solid var(--ui-tabbar-border, #303442); border-radius:6px; background:var(--ui-tab-bg, #1b1e28); color:var(--ui-tab-text, #9da2b2); }\n .terminal-connection { position:sticky; right:-8px; margin-left:auto; align-self:stretch; display:flex; align-items:center; gap:7px; padding:0 9px; background:var(--ui-connection-bg, #12141b); color:var(--ui-connection-text, #777b8c); font-size:10.5px; flex-shrink:0; z-index:5; box-shadow:-8px 0 12px color-mix(in srgb, var(--ui-connection-bg, #12141b) 90%, transparent); }\n .file-drawer-toggle { display:grid; place-items:center; width:28px; height:28px; padding:0; border:0; border-radius:6px; background:transparent; color:var(--ui-connection-text, #777b8c); cursor:pointer; flex-shrink:0; touch-action:manipulation; }\n .file-drawer-toggle:hover, .file-drawer-toggle[aria-expanded="true"] { background:color-mix(in srgb, var(--ui-tab-accent, #7aa2f7) 12%, transparent); color:var(--ui-tab-active-text, #edf0f7); }\n .file-drawer-toggle:focus-visible { outline:2px solid var(--ui-tab-accent, #7aa2f7); outline-offset:-2px; }\n .theme-avatar-with-status { position:relative; display:flex; flex-shrink:0; }\n .theme-avatar-status { position:absolute; right:-2px; bottom:-2px; z-index:7; width:6px; height:6px; box-sizing:border-box; border:1px solid var(--ui-connection-bg, #12141b); border-radius:50%; background:var(--ui-error); pointer-events:none; }\n .theme-avatar-status[data-connected="true"] { background:var(--ui-success); }\n .theme-picker { position:relative; flex-shrink:0; z-index:6; }\n .theme-avatar { position:relative; display:flex; align-items:center; justify-content:center; width:18px; height:18px; padding:0; border-radius:99px; font-size:9px; font-weight:700; cursor:pointer; flex-shrink:0; touch-action:manipulation; -webkit-tap-highlight-color:transparent; transition:transform .12s ease, filter .12s ease; }\n /* Hit-area padding keeps the compact visual circle easy to target. */\n .theme-avatar::after { content:""; position:absolute; inset:-6px; border-radius:99px; }\n .theme-avatar:active { transform:scale(.9); filter:brightness(1.15); }\n .theme-popover-item { display:flex; align-items:center; gap:8px; padding:7px 8px; border:none; border-radius:8px; cursor:pointer; touch-action:manipulation; -webkit-tap-highlight-color:transparent; }\n .theme-popover-item:active { background:color-mix(in srgb, var(--ui-tab-accent, #7aa2f7) 22%, transparent); }\n /* Touch devices: grow the avatar hit area to ~44px and the popover rows to\n ~40px tall. The tab bar must grow in step — it clips overflow-y, so an\n expanded hit area taller than the bar would get cut off. */\n @media (pointer: coarse) {\n .terminal-tabs { min-height:44px; }\n .theme-avatar::after { inset:-9px; }\n .theme-popover-item { padding-top:11px; padding-bottom:11px; }\n }\n @media (prefers-reduced-motion: reduce) { .theme-avatar { transition:none; } }\n .terminal-track { display:flex; width:100%; height:100%; will-change:transform; }\n .terminal-slide { position:relative; flex:0 0 100%; width:100%; height:100%; min-width:0; overflow:hidden; }\n .webapp-frame { display:block; width:100%; height:100%; border:0; background:var(--ui-term-col-bg, #101014); }\n .terminal-surface { position:relative; flex:1; min-height:90px; overflow:hidden; }\n .terminal-screen { display:flex; flex-direction:column; width:100%; min-height:0; overflow:hidden; box-sizing:border-box; }\n .terminal-screen .xterm { flex:1; height:100%; background:var(--ui-terminal-bg, #101014); }\n .terminal-screen .xterm .xterm-viewport { background-color:var(--ui-terminal-bg, #101014); }\n .terminal-screen .xterm-scrollable-element { touch-action:pan-y; -webkit-overflow-scrolling:touch; }\n .terminal-boot { position:absolute; inset:0; z-index:46; display:flex; align-items:center; justify-content:center; gap:9px; pointer-events:auto; font-size:12px; line-height:1.4; letter-spacing:0; }\n .terminal-boot-spinner { width:16px; height:16px; box-sizing:border-box; border:2px solid color-mix(in srgb,currentColor 24%,transparent); border-top-color:currentColor; border-radius:50%; animation:terminal-boot-spin .8s linear infinite; }\n .terminal-boot-warning { position:absolute; top:9px; left:50%; z-index:45; transform:translateX(-50%); max-width:calc(100% - 24px); padding:5px 8px; border:1px solid; border-radius:6px; pointer-events:none; font-size:11px; line-height:1.35; letter-spacing:0; white-space:normal; text-align:center; }\n @keyframes terminal-boot-spin { to { transform:rotate(360deg); } }\n @media (prefers-reduced-motion: reduce) { .terminal-track,.terminal-tab { transition:none !important; } .terminal-boot-spinner { animation:none !important; } }\n .web-root {\n position: fixed;\n top: var(--vv-top, 0px);\n left: var(--vv-left, 0px);\n width: var(--vv-width, 100vw);\n height: var(--vv-height, 100dvh) !important;\n }\n .tree-scroll {\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n overflow-x: hidden;\n overscroll-behavior: contain;\n touch-action: pan-y;\n -webkit-overflow-scrolling: touch;\n padding: 6px;\n }\n .tree-location {\n position: sticky;\n top: -6px;\n z-index: 3;\n display: flex;\n align-items: center;\n gap: 5px;\n margin: -1px -1px 0;\n padding: 7px 7px 5px;\n background: color-mix(in srgb, var(--ui-tree-bg, #121218) 98%, transparent);\n }\n .tree-location input {\n flex: 1;\n min-width: 0;\n height: 28px;\n border: 1px solid var(--ui-panel-input-border, #30303b);\n border-radius: 6px;\n outline: none;\n padding: 0 8px;\n background: var(--ui-panel-input-bg, #0f0f15);\n color: var(--ui-panel-input-text, #d8d8df);\n font-family: "SF Mono", Menlo, monospace;\n font-size: 10.5px;\n }\n .tree-location input:focus { border-color: var(--ui-tab-accent, #536b9e); }\n .tree-location button {\n width: 28px;\n height: 28px;\n flex-shrink: 0;\n border: 1px solid var(--ui-panel-input-border, #30303a);\n border-radius: 6px;\n background: var(--ui-tab-bg, #202029);\n color: var(--ui-tab-text, #aaaab8);\n font-size: 12px;\n }\n .tree-location button[data-active="1"] {\n border-color: var(--ui-success, #4f6f58);\n color: var(--ui-success, #9ece6a);\n background: color-mix(in srgb, var(--ui-success, #9ece6a) 12%, var(--ui-tree-bg, #18221b));\n }\n .tree-head button { height:26px; padding:0 10px; border:0; border-radius:6px 6px 0 0; background:transparent; color:var(--ui-drawer-tab-text, #74798a); font-size:11px; }\n .tree-head button.drawer-tab-active { color:var(--ui-drawer-tab-active, #e4e7ef); box-shadow:inset 0 -2px var(--ui-tab-accent, #7aa2f7); }\n .history-panel { flex:1; min-height:0; overflow:auto; padding:7px; }\n .pinned-commands { position:sticky; top:0; z-index:3; margin:-1px -1px 7px; border:1px solid var(--ui-tabbar-border, #252832); border-radius:6px; background:var(--ui-tree-bg, #121218); box-shadow:0 7px 12px color-mix(in srgb, var(--ui-root-bg, #0b0b10) 58%, transparent); overflow:hidden; }\n .pinned-command-head { display:flex; align-items:center; min-height:30px; padding:0 6px 0 10px; border-bottom:1px solid var(--ui-tabbar-border, #252832); color:var(--ui-history-meta, #74798a); font-size:10px; }\n .pinned-command-head span { flex:1; }\n .pinned-command-row { display:flex; align-items:center; min-height:34px; border-bottom:1px solid color-mix(in srgb, var(--ui-tabbar-border, #252832) 76%, transparent); cursor:pointer; outline:none; }\n .pinned-command-row:last-child { border-bottom:0; }\n .pinned-command-row:hover,.pinned-command-row:focus-visible { background:color-mix(in srgb, var(--ui-tab-active-bg, #1f2430) 76%, transparent); }\n .pinned-command-row:focus-visible { box-shadow:inset 2px 0 var(--ui-tab-accent, #7aa2f7); }\n .pinned-command-dragging { opacity:.66; background:var(--ui-tab-active-bg, #1f2430); }\n .pinned-command-row code { flex:1; min-width:0; padding:0 5px; overflow:hidden; color:var(--ui-history-item-text, #d3d6df); font-size:11px; text-overflow:ellipsis; white-space:nowrap; }\n .pinned-command-grip { display:inline-flex; align-items:center; justify-content:center; width:28px; height:32px; padding:0; border:0; background:transparent; color:var(--ui-history-meta, #626777); cursor:grab; touch-action:none; }\n .pinned-command-grip:active { cursor:grabbing; }\n .pinned-command-actions { display:flex; align-items:center; padding-right:3px; opacity:.42; transition:opacity .15s ease; }\n .pinned-command-row:hover .pinned-command-actions,.pinned-command-row:focus-within .pinned-command-actions { opacity:1; }\n .pinned-command-editor { display:grid; grid-template-columns:minmax(0,1fr) 27px 27px; gap:4px; align-items:center; min-height:39px; padding:4px 5px 4px 8px; border-bottom:1px solid var(--ui-tabbar-border, #252832); }\n .pinned-command-editor input { min-width:0; height:27px; box-sizing:border-box; border:1px solid var(--ui-tab-accent, #536b9e); border-radius:5px; outline:none; padding:0 7px; background:var(--ui-panel-input-bg, #0f0f15); color:var(--ui-panel-input-text, #ddd); font-family:"SF Mono",Menlo,monospace; font-size:10.5px; }\n .pinned-command-editor small { grid-column:1 / -1; color:var(--ui-danger, #e06c75); font-size:9px; }\n .terminal-clipboard-notice { padding:4px 8px; flex-shrink:0; font-size:12px; }\n .terminal-native-touch, .terminal-native-touch .xterm-screen, .terminal-native-touch .terminal-native-rows, .terminal-native-touch .terminal-native-rows * { -webkit-user-select:text !important; user-select:text !important; -webkit-touch-callout:default; }\n .terminal-native-touch .terminal-native-rows { position:absolute; top:0; left:0; z-index:4; pointer-events:auto !important; }\n .terminal-native-touch .xterm-rows:not(.terminal-native-rows) { -webkit-user-select:none !important; user-select:none !important; }\n .terminal-native-touch .terminal-native-rows span { display:inline !important; }\n .terminal-native-touch .xterm-helper-textarea { opacity:1; background:transparent; color:transparent; -webkit-text-fill-color:transparent; caret-color:transparent; outline:none; text-shadow:none; -webkit-appearance:none; appearance:none; -webkit-user-select:text; user-select:text; -webkit-touch-callout:default; font-size:16px !important; left:var(--native-input-left, 0px) !important; top:var(--native-input-top, 0px) !important; width:var(--native-input-width, 80px) !important; height:var(--native-input-height, 32px) !important; z-index:10 !important; pointer-events:var(--native-input-events, none); }\n .history-search { display:flex; gap:5px; padding:5px; background:var(--ui-tree-bg, #121218); }\n .history-search input { flex:1; min-width:0; height:28px; border:1px solid var(--ui-panel-input-border, #30303a); border-radius:6px; padding:0 8px; background:var(--ui-panel-input-bg, #0f0f15); color:var(--ui-panel-input-text, #ddd); font-size:11px; }\n .history-icon-button { display:inline-flex; align-items:center; justify-content:center; width:27px; min-width:27px; height:27px; padding:0; border:1px solid var(--ui-panel-input-border, #30303a); border-radius:5px; background:var(--ui-tab-bg, #202029); color:var(--ui-connection-text, #999dab); }\n .history-icon-button:hover:not(:disabled) { color:var(--ui-drawer-tab-active, #e4e7ef); border-color:var(--ui-tab-accent, #536b9e); }\n .history-icon-button:disabled { cursor:not-allowed; opacity:.32; }\n .history-icon-danger:hover:not(:disabled) { color:var(--ui-danger, #e06c75); border-color:color-mix(in srgb, var(--ui-danger, #e06c75) 60%, var(--ui-panel-input-border, #30303a)); }\n .history-item { padding:9px 7px; border-bottom:1px solid var(--ui-tabbar-border, #242731); cursor:pointer; border-radius:6px; }\n .history-item:hover { background:color-mix(in srgb, var(--ui-tab-active-bg, #181b24) 80%, transparent); }\n .history-item:active { background:var(--ui-tab-active-bg, #1f2430); }\n .history-item-disabled { cursor:not-allowed; opacity:.55; }\n .history-item-disabled:hover { background:transparent; }\n .history-item:focus-visible { outline:1px solid var(--ui-tab-accent, #536b9e); outline-offset:-1px; }\n .history-item code { display:block; color:var(--ui-history-item-text, #d3d6df); font-size:11px; overflow-wrap:anywhere; }\n .history-item small { display:block; margin:4px 0 7px; color:var(--ui-history-meta, #656a79); font-size:9.5px; }\n .history-item-actions { display:flex; gap:5px; }\n .history-empty { padding:18px; color:#5d6270; font-size:11px; text-align:center; }\n @media (pointer:coarse) { .pinned-command-actions { opacity:.78; } }\n .keybar-scroll { scrollbar-width:none; }\n .keybar-scroll::-webkit-scrollbar { display:none; }\n .tree-filter {\n position: sticky;\n top: 34px;\n z-index: 2;\n display: flex;\n align-items: center;\n gap: 6px;\n margin: -1px -1px 7px;\n padding: 7px 8px;\n border-bottom: 1px solid var(--ui-tabbar-border, #25252e);\n background: color-mix(in srgb, var(--ui-tree-bg, #121218) 97%, transparent);\n color: var(--ui-history-meta, #666678);\n backdrop-filter: blur(8px);\n }\n .tree-filter input {\n flex: 1;\n min-width: 0;\n height: 27px;\n border: 1px solid var(--ui-panel-input-border, #30303a);\n border-radius: 6px;\n outline: none;\n padding: 0 8px;\n background: var(--ui-panel-input-bg, #0f0f15);\n color: var(--ui-panel-input-text, #d8d8df);\n font-size: 11px;\n }\n .tree-filter input:focus { border-color: var(--ui-tab-accent, #536b9e); }\n @media (max-width:768px), (pointer:coarse) {\n .pinned-command-editor input, .history-search input, .tree-filter input { font-size:16px; }\n .terminal-screen .xterm-helper-textarea { font-size:16px !important; }\n }\n .tree-filter button {\n width: 25px;\n height: 25px;\n padding: 0;\n border: 0;\n border-radius: 5px;\n background: var(--ui-tab-bg, #24242d);\n color: var(--ui-connection-text, #9999a6);\n font-size: 10px;\n }\n .tree-row {\n display: flex;\n align-items: center;\n gap: 6px;\n min-height: 31px;\n padding-right: 7px;\n border-radius: 6px;\n font-size: 12px;\n white-space: nowrap;\n cursor: pointer;\n }\n .tree-disclosure {\n width: 13px;\n min-width: 13px;\n height: 16px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n color: var(--ui-history-meta, #777785);\n }\n .tree-entry-icon {\n width: 17px;\n min-width: 17px;\n height: 17px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n }\n .tree-folder-icon { color: var(--ui-tab-accent, #7aa2f7); }\n .tree-entry-name { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }\n .tree-spin { animation:tree-spin .8s linear infinite; }\n @keyframes tree-spin { to { transform:rotate(360deg); } }\n @media (prefers-reduced-motion: reduce) { .tree-spin { animation:none; } }\n .tree-row[data-selected="1"] { background: color-mix(in srgb, var(--ui-tab-accent, #26304a) 24%, transparent); }\n .tree-error { margin: 2px 8px 6px; padding: 7px 8px; border-left: 2px solid #f7768e; color: #f7768e; font-size: 11px; line-height: 1.45; overflow-wrap: anywhere; }\n .tree-size { margin-left: auto; color: var(--ui-history-meta, #555); font-size: 10px; flex-shrink: 0; }\n\n /* phone-first: terminal is THE screen */\n .workspace { display: grid !important; grid-template-columns: 1fr; }\n .tree-col {\n display: flex;\n position: fixed;\n top: var(--vv-top, 0px);\n height: var(--vv-height, 100dvh);\n right: calc(100vw - var(--vv-left, 0px) - var(--vv-width, 100vw));\n width: min(82vw, 320px); z-index: 40;\n transform: translateX(102%); transition: transform .22s ease;\n }\n .tree-col-open { transform: translateX(0); box-shadow: -12px 0 32px rgba(0,0,0,.5); }\n .drawer-mask { position:fixed; top:var(--vv-top, 0px); left:var(--vv-left, 0px); width:var(--vv-width, 100vw); height:var(--vv-height, 100dvh); background:rgba(0,0,0,.45); z-index:39; }\n .preview-col {\n position: fixed;\n top: var(--vv-top, 0px);\n left: var(--vv-left, 0px);\n width: var(--vv-width, 100vw);\n height: var(--vv-height, 100dvh);\n z-index: 50;\n background: var(--ui-term-col-bg, #101014);\n }\n .cwd-hint { max-width: 40vw; }\n\n @media (min-width: 900px) {\n .workspace.show-tree.has-preview { grid-template-columns: 46% 20% 34%; }\n .workspace.show-tree:not(.has-preview) { grid-template-columns: 80% 20%; }\n .workspace.has-preview:not(.show-tree) { grid-template-columns: 66% 34%; }\n /* desktop: the tree becomes a right column only while the drawer is open */\n .tree-col {\n position: static; top: auto; height: auto; width: auto; transform: none;\n box-shadow: none; border-left: 1px solid var(--ui-tree-border, #1e1e26);\n }\n .workspace:not(.show-tree) .tree-col { display: none; }\n .preview-col { position: relative; inset: auto; width: auto; height: auto; border-left: 1px solid var(--ui-tree-border, #1e1e26); }\n .drawer-mask { display: none; }\n }\n',ei={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}}}},function(e){e.O(0,[693,37,183,744],function(){return e(e.s=7073)}),_N_E=e.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[541],{8261:function(e,t,n){Promise.resolve().then(n.bind(n,6061))},7714:function(e,t,n){"use strict";async function r(e){let t="undefined"==typeof navigator?void 0:navigator.clipboard;if("function"==typeof(null==t?void 0:t.writeText)&&("undefined"==typeof isSecureContext||isSecureContext))try{return await t.writeText(e),!0}catch(e){}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(e){return!1}finally{t.remove()}}(e)}n.d(t,{T:function(){return r}})},8924:function(e,t,n){"use strict";n.d(t,{Z:function(){return l}});var r=n(1996),a=n(9516),i=n.n(a),o=n(3845);function l(){return(0,r.jsxs)("div",{role:"status","aria-live":"polite",className:"jsx-f8b6a4420911d242 flow-loading",children:[(0,r.jsxs)("div",{"aria-hidden":"true",className:"jsx-f8b6a4420911d242 flow-loader-art",children:[(0,r.jsx)("div",{className:"jsx-f8b6a4420911d242 flow-loader-halo"}),(0,r.jsx)("div",{className:"jsx-f8b6a4420911d242 flow-loader-orbit orbit-outer",children:(0,r.jsx)("i",{className:"jsx-f8b6a4420911d242"})}),(0,r.jsx)("div",{className:"jsx-f8b6a4420911d242 flow-loader-orbit orbit-inner",children:(0,r.jsx)("i",{className:"jsx-f8b6a4420911d242"})}),(0,r.jsx)("div",{className:"jsx-f8b6a4420911d242 flow-loader-core",children:(0,r.jsx)(o.Z,{size:36,strokeWidth:1.5})}),(0,r.jsx)("span",{className:"jsx-f8b6a4420911d242 flow-loader-node node-one"}),(0,r.jsx)("span",{className:"jsx-f8b6a4420911d242 flow-loader-node node-two"}),(0,r.jsx)("span",{className:"jsx-f8b6a4420911d242 flow-loader-node node-three"})]}),(0,r.jsxs)("div",{className:"jsx-f8b6a4420911d242 flow-loader-copy",children:[(0,r.jsx)("span",{className:"jsx-f8b6a4420911d242 flow-loader-label",children:"FLOW STUDIO"}),(0,r.jsx)("strong",{className:"jsx-f8b6a4420911d242",children:"正在打开 Flow Studio"}),(0,r.jsx)("span",{className:"jsx-f8b6a4420911d242 flow-loader-caption",children:"即将进入你的创作空间"})]}),(0,r.jsx)("div",{"aria-hidden":"true",className:"jsx-f8b6a4420911d242 flow-loader-track",children:(0,r.jsx)("span",{className:"jsx-f8b6a4420911d242"})}),(0,r.jsx)(i(),{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}}"})]})}},9532:function(e,t,n){"use strict";function r(e,t){var n,r,a,i;return{height:Math.round(null!==(n=null==e?void 0:e.height)&&void 0!==n?n:t.height),width:Math.round(null!==(r=null==e?void 0:e.width)&&void 0!==r?r:t.width),top:Math.round(null!==(a=null==e?void 0:e.offsetTop)&&void 0!==a?a:0),left:Math.round(null!==(i=null==e?void 0:e.offsetLeft)&&void 0!==i?i:0)}}function a(e){e&&(e.scrollLeft=0)}n.d(t,{i:function(){return a},x:function(){return r}})},6061:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return Q}});var r=n(1996),a=n(7004),i=n(6121),o=n(3797),l=n(9741),s=n(4330),d=n(3845),c=n(1628),u=n(7317),p=n(7724),f=n(7805);let b={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 m(){let[e,t]=(0,i.useState)(!1),[n,a]=(0,i.useState)(!1),o=(0,i.useRef)(null);return(0,i.useEffect)(()=>{let e=e=>{var n;return t(!!(null===(n=e.detail)||void 0===n?void 0:n.available))},n=()=>a(!0);return window.addEventListener("agentroam:pwa-state",e),window.addEventListener("agentroam:pwa-guide",n),window.dispatchEvent(new Event("agentroam:pwa-query")),()=>{window.removeEventListener("agentroam:pwa-state",e),window.removeEventListener("agentroam:pwa-guide",n)}},[]),(0,i.useEffect)(()=>{var e,t;!n||(null===(e=o.current)||void 0===e?void 0:e.open)||null===(t=o.current)||void 0===t||t.showModal()},[n]),(0,r.jsxs)(r.Fragment,{children:[e&&(0,r.jsx)("button",{type:"button",className:"file-drawer-toggle pwa-install-button",style:b,title:"添加到主屏幕","aria-label":"添加到主屏幕",onClick:()=>window.dispatchEvent(new Event("agentroam:pwa-install")),children:(0,r.jsxs)("span",{style:{position:"relative",display:"flex"},children:[(0,r.jsx)(p.Z,{size:17,"aria-hidden":"true"}),(0,r.jsx)(f.Z,{size:9,strokeWidth:3,"aria-hidden":"true",style:{position:"absolute",right:-4,bottom:-2}})]})}),n&&(0,r.jsxs)("dialog",{ref:o,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:[(0,r.jsx)("h2",{id:"pwa-install-title",style:{margin:"0 0 12px",fontSize:18},children:"添加到主屏幕"}),(0,r.jsx)("p",{children:"iPhone / iPad:在 Safari 点击分享按钮,选择“添加到主屏幕”,再点“添加”。"}),(0,r.jsx)("p",{children:"Android:打开浏览器菜单,选择“安装应用”或“添加到主屏幕”。"}),(0,r.jsx)("p",{style:{color:"var(--ui-muted-text)"},children:"浏览器需要你确认,网页无法自动添加。从主屏幕打开后,如提示未配对,请重新扫码。"}),(0,r.jsx)("button",{type:"button",style:{...b,width:"100%",padding:"10px 14px",borderStyle:"solid",borderWidth:1,borderRadius:8,cursor:"pointer"},onClick:()=>{var e;return null===(e=o.current)||void 0===e?void 0:e.close()},children:"知道了"})]})]})}let h=["codex","claude agents","opencode","agent-tui"],x="agent-web-shell:project-response:v1",g=new Set(["project:list","project:get","project:create","project:rename","project:delete","project:roots","project:directories","project:check"]),w="agent-web-shell:browser-response:v1",v="agent-web-shell:browser-event:v1",y=new Set(["browser:list","browser:watch","browser:unwatch","browser:takeover","browser:return","browser:input","browser:set-display","browser:ping","browser:webrtc","browser:system"]),k={watcherFrame:4,producerFrame:5};function j(e){let{children:t}=e,n=function(){let[e,t]=(0,i.useState)("loading"),[n,r]=(0,i.useState)(null),[a]=(0,i.useState)("same-origin"),[o,l]=(0,i.useState)(null),s=(0,i.useCallback)(async()=>{t("loading"),l(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 ".concat(e.status));let n=await e.json();r(n.user),t("authenticated")}catch(e){l("无法连接远程控制台"),t("needsLogin")}},[]);(0,i.useEffect)(()=>{s()},[s]);let d=(0,i.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 n=await e.json();return r(n.user),t("authenticated"),n.wsNonce},[]),c=(0,i.useCallback)(async()=>(window.location.reload(),!1),[]);return{status:e,user:n,error:o,csrfToken:a,setup:c,login:c,logout:(0,i.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():l("退出失败,请重试")},[]),refresh:s,getWsNonce:d}}(),[a]=(0,i.useState)(()=>Date.now()),[l,s]=(0,i.useState)(()=>Date.now()),[c,u]=(0,i.useState)(!1),p="authenticated"===n.status,f=p&&c,b=(0,i.useCallback)(()=>u(!0),[]);(0,i.useEffect)(()=>{p||u(!1)},[p]),(0,i.useEffect)(()=>{if(f||n.error)return;let e=window.setInterval(()=>s(Date.now()),1e3);return()=>window.clearInterval(e)},[n.error,f]);let m=n.error||"数字人核心正在就绪";return(0,r.jsxs)(r.Fragment,{children:[p?t(n,b):null,(0,r.jsxs)("main",{className:"neural-boot".concat(f?" is-ready":"").concat(n.error?" is-error":""),role:n.error?"alert":"status","aria-live":"polite","aria-busy":!f&&!n.error,"aria-hidden":f,children:[(0,r.jsx)("div",{className:"neural-grid","aria-hidden":"true"}),(0,r.jsx)("div",{className:"neural-rail neural-rail-left","aria-hidden":"true"}),(0,r.jsx)("div",{className:"neural-rail neural-rail-right","aria-hidden":"true"}),(0,r.jsxs)("section",{className:"neural-content",children:[(0,r.jsxs)("div",{className:"neural-brand","aria-hidden":"true",children:[(0,r.jsx)("span",{className:"neural-brand-signal"}),(0,r.jsx)("span",{children:"AgentRoam"}),(0,r.jsx)("small",{children:"NEURAL LINK"})]}),(0,r.jsxs)("div",{className:"neural-portrait","aria-hidden":"true",children:[(0,r.jsx)("span",{className:"neural-ring neural-ring-outer"}),(0,r.jsx)("span",{className:"neural-ring neural-ring-inner"}),(0,r.jsx)("span",{className:"neural-axis neural-axis-x"}),(0,r.jsx)("span",{className:"neural-axis neural-axis-y"}),(0,r.jsx)("span",{className:"neural-node neural-node-one"}),(0,r.jsx)("span",{className:"neural-node neural-node-two"}),(0,r.jsx)("span",{className:"neural-node neural-node-three"}),(0,r.jsx)("span",{className:"neural-node neural-node-four"}),(0,r.jsx)("div",{className:"neural-avatar-frame",children:(0,r.jsxs)("div",{className:"neural-avatar",children:[(0,r.jsx)(d.Z,{className:"neural-avatar-icon",size:66,strokeWidth:1.3}),(0,r.jsx)("span",{className:"neural-visor"})]})})]}),(0,r.jsxs)("div",{className:"neural-copy",children:[(0,r.jsx)("strong",{children:"正在唤醒工作区"}),(0,r.jsx)("span",{children:m})]}),(0,r.jsx)("div",{className:"neural-progress","aria-hidden":"true",children:(0,r.jsx)("span",{})}),(0,r.jsxs)("div",{className:"neural-meta","aria-hidden":"true",children:[(0,r.jsx)("span",{children:"AGENT CORE"}),(0,r.jsxs)("span",{className:"neural-meta-time",children:["T+",Math.max(0,Math.floor((l-a)/1e3)).toString().padStart(2,"0"),"S"]})]}),n.error&&(0,r.jsx)("button",{type:"button",className:"neural-retry","aria-label":"重试连接",title:"重试连接",onClick:()=>void n.refresh(),children:(0,r.jsx)(o.Z,{size:18,"aria-hidden":"true"})})]})]})]})}var z=n(2199),S=n(5257),E=n(2090),C=n(1857),N=n(8026),T=n(6533),L=n(4267);function I(e,t,n){let r=e.findIndex(e=>e.id===t),a=e.findIndex(e=>e.id===n);if(r<0||a<0||r===a)return[...e];let i=[...e],[o]=i.splice(r,1);return i.splice(a,0,o),i}function R(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"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 P(e){let{commands:t,onChange:n,onExecute:a}=e,[o,l]=(0,i.useState)(null),[s,d]=(0,i.useState)(""),[c,u]=(0,i.useState)(null),p=(0,i.useRef)(null),b=()=>{if(!o)return;let e=o.value.trim();return e?e.length>1e3?d("命令最多 1000 个字符"):/[\r\n\0]/.test(e)?d("命令只能包含一行"):void(o.id?n(t.map(t=>t.id===o.id?{...t,command:e}:t)):n([...t,R(e)]),l(null),d("")):d("命令不能为空")},m=(e,t)=>{e.preventDefault(),e.stopPropagation(),p.current=t,u(t),e.currentTarget.setPointerCapture(e.pointerId)},h=e=>{var r;if(!p.current)return;let a=null===(r=document.elementFromPoint(e.clientX,e.clientY))||void 0===r?void 0:r.closest("[data-pinned-id]"),i=null==a?void 0:a.dataset.pinnedId;i&&i!==p.current&&n(I(t,p.current,i))},x=e=>{e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId),p.current=null,u(null)},g=(e,r)=>{if("ArrowUp"!==e.key&&"ArrowDown"!==e.key)return;e.preventDefault();let a=t.findIndex(e=>e.id===r),i=t[a+("ArrowUp"===e.key?-1:1)];i&&n(I(t,r,i.id))};return(0,r.jsxs)("section",{className:"pinned-commands","aria-labelledby":"pinned-command-title",children:[(0,r.jsxs)("div",{className:"pinned-command-head",children:[(0,r.jsx)("span",{id:"pinned-command-title",children:"置顶命令"}),(0,r.jsx)("button",{className:"history-icon-button",onClick:()=>{l({id:null,value:""}),d("")},"aria-label":"新增置顶命令",title:"新增置顶命令",children:(0,r.jsx)(f.Z,{size:14,"aria-hidden":"true"})})]}),t.map(e=>(null==o?void 0:o.id)===e.id?(0,r.jsx)(D,{editor:o,error:s,onChange:e=>{l({...o,value:e}),d("")},onSave:b,onCancel:()=>{l(null),d("")}},e.id):(0,r.jsxs)("div",{className:"pinned-command-row".concat(c===e.id?" pinned-command-dragging":""),"data-pinned-id":e.id,role:"button",tabIndex:0,onClick:()=>a(e.command),onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),a(e.command))},children:[(0,r.jsx)("button",{className:"pinned-command-grip",onPointerDown:t=>m(t,e.id),onPointerMove:h,onPointerUp:x,onPointerCancel:x,onKeyDown:t=>g(t,e.id),onClick:e=>e.stopPropagation(),"aria-label":"调整 ".concat(e.command," 的顺序"),title:"拖动排序,或按上下方向键",children:(0,r.jsx)(N.Z,{size:14,"aria-hidden":"true"})}),(0,r.jsx)("code",{children:e.command}),(0,r.jsxs)("div",{className:"pinned-command-actions",onClick:e=>e.stopPropagation(),children:[(0,r.jsx)("button",{className:"history-icon-button",onClick:()=>{l({id:e.id,value:e.command}),d("")},"aria-label":"编辑 ".concat(e.command),title:"编辑",children:(0,r.jsx)(T.Z,{size:12,"aria-hidden":"true"})}),(0,r.jsx)("button",{className:"history-icon-button history-icon-danger",onClick:()=>n(t.filter(t=>t.id!==e.id)),"aria-label":"删除 ".concat(e.command),title:"删除",children:(0,r.jsx)(C.Z,{size:12,"aria-hidden":"true"})})]})]},e.id)),(null==o?void 0:o.id)===null&&(0,r.jsx)(D,{editor:o,error:s,onChange:e=>{l({...o,value:e}),d("")},onSave:b,onCancel:()=>{l(null),d("")}})]})}function D(e){let{editor:t,error:n,onChange:a,onSave:i,onCancel:o}=e;return(0,r.jsxs)("div",{className:"pinned-command-editor",children:[(0,r.jsx)("input",{autoFocus:!0,value:t.value,maxLength:1e3,onChange:e=>a(e.target.value),onKeyDown:e=>{"Enter"===e.key&&i(),"Escape"===e.key&&o()},"aria-label":t.id?"编辑置顶命令":"新增置顶命令"}),(0,r.jsx)("button",{className:"history-icon-button",onClick:i,"aria-label":"保存命令",title:"保存",children:(0,r.jsx)(L.Z,{size:13,"aria-hidden":"true"})}),(0,r.jsx)("button",{className:"history-icon-button",onClick:o,"aria-label":"取消编辑",title:"取消",children:(0,r.jsx)(u.Z,{size:13,"aria-hidden":"true"})}),n&&(0,r.jsx)("small",{role:"alert",children:n})]})}var M=n(7714);function W(e){let{csrfToken:t,terminalId:n,pinnedCommands:a,onPinnedCommandsChange:l,onFill:s,onExecute:d}=e,[c,u]=(0,i.useState)([]),[p,f]=(0,i.useState)(""),[b,m]=(0,i.useState)(""),h=(0,i.useCallback)(async()=>{let e=new URLSearchParams({q:p,limit:"200"}),t=await fetch("/api/web-console/history?".concat(e),{credentials:"same-origin"});t.ok&&u((await t.json()).history)},[p]);(0,i.useEffect)(()=>{let e=setTimeout(h,200);return()=>clearTimeout(e)},[h]);let x=async e=>{await fetch("/api/web-console/history",{method:"DELETE",credentials:"same-origin",headers:{"content-type":"application/json","x-csrf-token":t},body:JSON.stringify({id:e})}),h()},g=e=>{n&&s(e)},w=(0,i.useCallback)(e=>{"[REDACTED]"===e||a.some(t=>t.command===e)||l([...a,R(e)])},[l,a]),v=async e=>{m(await (0,M.T)(e)?"已复制命令":"复制失败,请长按命令手动复制")};return(0,r.jsxs)("div",{className:"history-panel",children:[(0,r.jsx)(P,{commands:a,onChange:l,onExecute:d}),(0,r.jsxs)("div",{className:"history-search",children:[(0,r.jsx)("input",{value:p,onChange:e=>f(e.target.value),placeholder:"搜索命令"}),(0,r.jsx)("button",{className:"history-icon-button",onClick:h,"aria-label":"刷新历史",title:"刷新历史",children:(0,r.jsx)(o.Z,{size:13,"aria-hidden":"true"})})]}),b&&(0,r.jsx)("div",{className:"terminal-clipboard-notice",role:"status",children:b}),c.map(e=>(0,r.jsxs)("div",{className:"history-item".concat(n?"":" history-item-disabled"),role:"button",tabIndex:n?0:-1,onClick:()=>g(e.command),onKeyDown:t=>{t.target===t.currentTarget&&("Enter"===t.key||" "===t.key)&&n&&(t.preventDefault(),g(e.command))},children:[(0,r.jsx)("code",{children:e.command}),(0,r.jsxs)("small",{children:[e.cwd," \xb7 ",new Date(e.executedAt).toLocaleString()]}),(0,r.jsxs)("div",{className:"history-item-actions",onClick:e=>e.stopPropagation(),onPointerDown:e=>e.stopPropagation(),children:[(0,r.jsx)("button",{className:"history-icon-button",onClick:()=>void v(e.command),"aria-label":"复制命令",title:"复制",children:(0,r.jsx)(z.Z,{size:12,"aria-hidden":"true"})}),(0,r.jsx)("button",{className:"history-icon-button",disabled:!n,onClick:()=>g(e.command),"aria-label":"填入命令",title:"填入",children:(0,r.jsx)(S.Z,{size:12,"aria-hidden":"true"})}),(0,r.jsx)("button",{className:"history-icon-button",disabled:"[REDACTED]"===e.command||a.some(t=>t.command===e.command),onClick:()=>w(e.command),"aria-label":"置顶命令",title:"置顶",children:(0,r.jsx)(E.Z,{size:12,"aria-hidden":"true"})}),(0,r.jsx)("button",{className:"history-icon-button history-icon-danger",onClick:()=>x(e.id),"aria-label":"删除历史",title:"删除",children:(0,r.jsx)(C.Z,{size:12,"aria-hidden":"true"})})]})]},e.id)),!c.length&&(0,r.jsx)("div",{className:"history-empty",children:"暂无 Shell 命令历史"}),!n&&!!c.length&&(0,r.jsx)("div",{className:"history-empty",children:"请先打开一个终端页签"})]})}var F=n(9149);let O=[{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"}}],A="pearl",H=Object.fromEntries(O.map(e=>[e.id,e])),U={dark:"noir",black:"noir",gray:"noir",blue:"noir",red:"noir",yellow:"noir",green:"noir",white:"pearl"};function Z(e){if(e&&e in H)return H[e];let t=e?U[e]:void 0;return t?H[t]:H[A]}function B(e){var t;let{username:n,themeId:a,onThemeChange:o,accent:l,accentText:s}=e,[d,c]=(0,i.useState)(!1),u=(0,i.useRef)(null),p=(0,i.useRef)(null),f=(0,i.useRef)(null),[b,m]=(0,i.useState)(null),[h,x]=(0,i.useState)(null);(0,i.useEffect)(()=>{var e,t;x(null!==(t=null===(e=u.current)||void 0===e?void 0:e.closest(".web-root"))&&void 0!==t?t:document.body)},[]);let g=(null!==(t=n.trim()[0])&&void 0!==t?t:"?").toUpperCase(),w=()=>{let e=p.current;if(!e)return;let t=e.getBoundingClientRect(),n=Math.max(8,Math.min(window.innerWidth-176-8,t.right-176));m({top:t.bottom+6,left:n})};return(0,i.useLayoutEffect)(()=>{if(!d){m(null);return}return w(),window.addEventListener("resize",w),window.addEventListener("scroll",w,!0),()=>{window.removeEventListener("resize",w),window.removeEventListener("scroll",w,!0)}},[d]),(0,i.useEffect)(()=>{if(!d)return;let e=e=>{var t,n;let r=e.target;(null===(t=u.current)||void 0===t||!t.contains(r))&&(null!==(n=f.current)&&void 0!==n&&n.contains(r)||c(!1))},t=e=>{"Escape"===e.key&&c(!1)},n=window.setTimeout(()=>{window.addEventListener("pointerdown",e,!0)},0);return window.addEventListener("keydown",t),()=>{window.clearTimeout(n),window.removeEventListener("pointerdown",e,!0),window.removeEventListener("keydown",t)}},[d]),(0,r.jsxs)("div",{ref:u,className:"theme-picker",children:[(0,r.jsx)("button",{ref:p,type:"button",className:"theme-avatar","aria-label":"换肤(".concat(n,")"),title:n,"aria-expanded":d,onPointerDown:e=>e.stopPropagation(),onClick:e=>{e.preventDefault(),e.stopPropagation(),c(e=>!e)},style:{border:"1px solid ".concat(l),background:l,color:s},children:g}),d&&b&&h&&(0,F.createPortal)((0,r.jsxs)("div",{ref:f,className:"theme-popover",role:"dialog","aria-label":"选择皮肤",style:{position:"fixed",top:b.top,left:b.left,zIndex:200,width:176,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:[(0,r.jsx)("div",{style:{fontSize:10,color:"var(--ui-connection-text, #777b8c)",margin:"2px 4px 6px",letterSpacing:.5},children:"皮肤"}),(0,r.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:O.map(e=>{let t=e.id===a;return(0,r.jsxs)("button",{type:"button",className:"theme-popover-item","aria-label":e.label,"aria-pressed":t,onPointerDown:e=>e.stopPropagation(),onClick:()=>{o(e.id),c(!1)},style:{background:t?"color-mix(in srgb, var(--ui-tab-accent, #7aa2f7) 14%, transparent)":"transparent"},children:[(0,r.jsx)("span",{style:{width:18,height:18,borderRadius:5,flexShrink:0,background:"linear-gradient(135deg, ".concat(e.preview[0]," 55%, ").concat(e.preview[1]," 55%)"),boxShadow:"inset 0 0 0 1px rgba(128,128,160,.25)"}}),(0,r.jsx)("span",{style:{flex:1,textAlign:"left",fontSize:12,fontWeight:t?600:400,color:t?"var(--ui-tab-active-text, #edf0f7)":"var(--ui-tab-text, #8f93a4)"},children:e.label}),t&&(0,r.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:(0,r.jsx)("path",{d:"m5 12 4 4L19 6"})})]},e.id)})})]}),h)]})}var q=n(9532);let V="agent-webapp:ready:v1";var X=n(8924);let _=(0,a.default)(()=>Promise.all([n.e(118),n.e(658),n.e(834)]).then(n.bind(n,9834)),{loadableGenerated:{webpack:()=>[9834]},ssr:!1}),K=(0,a.default)(()=>n.e(33).then(n.bind(n,1033)),{loadableGenerated:{webpack:()=>[1033]},ssr:!1}),G=(0,a.default)(()=>Promise.all([n.e(367),n.e(784)]).then(n.bind(n,3784)),{loadableGenerated:{webpack:()=>[3784]},ssr:!1}),J=(0,a.default)(()=>n.e(20).then(n.bind(n,4020)),{loadableGenerated:{webpack:()=>[4020]},ssr:!1}),Y=(0,a.default)(()=>n.e(326).then(n.bind(n,2326)),{loadableGenerated:{webpack:()=>[2326]},ssr:!1,loading:()=>(0,r.jsx)(X.Z,{})});function Q(){return(0,r.jsx)(j,{children:(e,t)=>(0,r.jsx)(er,{auth:e,onWorkspaceReady:t})})}let $={id:"webapp-agent",title:"智能助手",kind:"webapp"},ee={id:"ai-hub",title:"AI Hub",kind:"aihub"},et={id:"flow-studio",title:"Flow Studio",kind:"flowstudio"};function en(){var e;return"undefined"==typeof document?A:Z(null===(e=document.getElementById("web-theme-root"))||void 0===e?void 0:e.dataset.webTheme).id}function er(e){var t,n,a,p,f;let{auth:b,onWorkspaceReady:j}=e,z=(0,i.useRef)(null),S=(0,i.useRef)(()=>{}),{state:E,epoch:C,rpc:N,onEvent:T,onTerminalData:L,onTerminalReset:I,sendTerminalInput:R}=function(e,t,n){let[r,a]=(0,i.useState)({connected:!1,error:null}),[o,l]=(0,i.useState)(0),s=(0,i.useRef)(null),d=(0,i.useRef)(0),c=(0,i.useRef)(new Map),u=(0,i.useRef)([]),p=(0,i.useRef)(0),f=(0,i.useRef)(new Map),b=(0,i.useRef)(new Map),m=(0,i.useRef)(new Map),h=(0,i.useRef)(1e3),x=(0,i.useRef)(!1),g=(0,i.useRef)(null),w=(0,i.useRef)(e),v=(0,i.useRef)(t),y=(0,i.useRef)(n);w.current=e,v.current=t,y.current=n;let k=(0,i.useCallback)((e,t)=>{let n=f.current.get(e);return n||f.current.set(e,n=new Set),n.add(t),()=>n.delete(t)},[]),j=(0,i.useCallback)((e,t)=>{let n=b.current.get(e);return n||b.current.set(e,n=new Set),n.add(t),()=>n.delete(t)},[]),z=(0,i.useCallback)((e,t)=>{let n=m.current.get(e);return n||m.current.set(e,n=new Set),n.add(t),()=>n.delete(t)},[]),S=(0,i.useCallback)((e,t)=>{let n=s.current;if(!n||n.readyState!==WebSocket.OPEN)return!1;let r=new TextEncoder().encode(t),a=new Uint8Array(6+r.byteLength),i=new DataView(a.buffer);return a[0]=1,a[1]=1,i.setUint32(2,e),a.set(r,6),n.send(a),!0},[]),E=(0,i.useCallback)(e=>{let t=s.current;(null==t?void 0:t.readyState)===WebSocket.OPEN?t.send(e):u.current.push(e)},[]),C=(0,i.useCallback)(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:15e3;return new Promise((r,a)=>{var i;if(e.startsWith("browser:")&&(null===(i=s.current)||void 0===i?void 0:i.readyState)!==WebSocket.OPEN){a(Object.assign(Error("远程连接已断开,请等待重新连接"),{code:"EOFFLINE"}));return}let o=++p.current,l=setTimeout(()=>{c.current.delete(o),a(Error("".concat(e," timeout")))},n);c.current.set(o,{resolve:r,reject:a,timer:l,type:e}),E(JSON.stringify({type:e,_req:o,...t}))})},[E]),N=(0,i.useCallback)(async()=>{let e,t;x.current=!1;let n=++d.current;g.current&&(clearInterval(g.current),g.current=null);let r=s.current;if(r){r.onopen=r.onmessage=r.onerror=r.onclose=null;try{r.close()}catch(e){}}try{e=await v.current()}catch(e){n===d.current&&y.current();return}if(n===d.current&&!x.current){try{t=new WebSocket("".concat("".concat("https:"===location.protocol?"wss:":"ws:","//").concat(location.host,"/ws"),"?nonce=").concat(encodeURIComponent(e)))}catch(e){a({connected:!1,error:String(e)});return}t.binaryType="arraybuffer",s.current=t,t.onopen=()=>{if(n!==d.current||s.current!==t)return;for(let e of(h.current=1e3,a({connected:!0,error:null}),l(e=>e+1),u.current.splice(0)))t.send(e);let e=Date.now();g.current=setInterval(()=>{if(s.current!==t||t.readyState!==WebSocket.OPEN){clearInterval(g.current),g.current=null;return}if(Date.now()-e>25e3){try{t.close()}catch(e){}return}try{t.send(JSON.stringify({type:"ping"}))}catch(e){}},1e4);let r=()=>{e=Date.now()};t.addEventListener("message",r),t.addEventListener("close",()=>t.removeEventListener("message",r),{once:!0})},t.onmessage=e=>{var r,a,i;let o;if(n===d.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);null===(a=b.current.get(e))||void 0===a||a.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);null===(i=m.current.get(e))||void 0===i||i.forEach(e=>e())}else w.current(t);return}try{o=JSON.parse(e.data)}catch(e){return}if("error"===o.type&&null!=o.id){let e=c.current.get(o.id);if(e){c.current.delete(o.id),clearTimeout(e.timer);let t=Object.assign(Error(o.error||"gateway error"),{code:o.code});e.reject(t)}return}if(null!=o.id&&"string"==typeof o.type&&o.type.endsWith(":result")){let e=c.current.get(o.id);e&&(c.current.delete(o.id),clearTimeout(e.timer),e.resolve(o));return}null===(r=f.current.get(o.type))||void 0===r||r.forEach(e=>e(o))}},t.onclose=e=>{if(n!==d.current||s.current!==t)return;for(let[e,t]of(g.current&&(clearInterval(g.current),g.current=null),s.current=null,c.current))t.type.startsWith("browser:")&&(clearTimeout(t.timer),c.current.delete(e),t.reject(Object.assign(Error("远程连接已断开,请重新接管"),{code:"EOFFLINE"})));if(a({connected:!1,error:null}),4001===e.code||4003===e.code){y.current();return}if(x.current)return;let r=h.current;h.current=Math.min(2*r,8e3),setTimeout(()=>{x.current||n!==d.current||N()},r)},t.onerror=()=>{}}},[]);return(0,i.useEffect)(()=>(N(),()=>{x.current=!0,d.current++,g.current&&(clearInterval(g.current),g.current=null);let e=s.current;if(s.current=null,e){e.onopen=e.onmessage=e.onerror=e.onclose=null;try{e.close()}catch(e){}}}),[N]),{state:r,epoch:o,rpc:C,onEvent:k,onTerminalData:j,onTerminalReset:z,sendTerminalInput:S,reconnect:N}}((0,i.useCallback)(e=>{var t,n;let r=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]!==k.watcherFrame&&t[1]!==k.producerFrame)return null;let n=new DataView(t.buffer,t.byteOffset,t.byteLength);return{type:t[1],channelId:n.getUint32(2,!1),sequence:n.getUint32(6,!1),payload:t.subarray(10)}}(e);if(!r||r.type!==k.watcherFrame)return;S.current(r.channelId,r.sequence);let a=r.payload.slice().buffer;null===(n=z.current)||void 0===n||null===(t=n.contentWindow)||void 0===t||t.postMessage({type:"agent-web-shell:browser-frame:v1",channelId:r.channelId,sequence:r.sequence,data:a},window.location.origin,[a])},[]),b.getWsNonce,b.refresh),P=(0,i.useMemo)(()=>({request:(e,t,n)=>N(e,t,n),subscribe:(e,t)=>T("fs:event",t)}),[T,N]);S.current=(e,t)=>{N("browser:frame-ack",{channelId:e,sequence:t}).catch(()=>void 0)};let[D,M]=(0,i.useState)([{...$}]),F=(0,i.useRef)(D);F.current=D;let[O,A]=(0,i.useState)($.id),[H,U]=(0,i.useState)({}),X=(0,i.useRef)(!1),Q=(0,i.useRef)(null),er=(0,i.useRef)(new Map),eo=(0,i.useRef)(new Map),el=(0,i.useCallback)((e,t)=>{er.current.set(e,t);let n=window.setTimeout(()=>{if(er.current.get(e)!==t)return;let n=eo.current.get(e);n&&(eo.current.delete(e),t(n,!0))},180);return()=>{window.clearTimeout(n),er.current.get(e)===t&&er.current.delete(e)}},[]),es=(0,i.useCallback)(e=>{var t;if(!O||(null===(t=D.find(e=>e.id===O))||void 0===t?void 0:t.kind))return;let n=er.current.get(O);n?n(e):N("term:input",{id:O,data:"\x15".concat(e)}).catch(()=>{}),eh(!1)},[O,N,D]),[ed,ec]=(0,i.useState)(!1),[eu,ep]=(0,i.useState)({}),[ef,eb]=(0,i.useState)(null),[em,eh]=(0,i.useState)(!1),[ex,eg]=(0,i.useState)("files"),[ew,ev]=(0,i.useState)(null),[ey,ek]=(0,i.useState)(!0),[ej,ez]=(0,i.useState)(null),[eS,eE]=(0,i.useState)(!1),[eC,eN]=(0,i.useState)([]),[eT,eL]=(0,i.useState)(h.map((e,t)=>({id:"default-".concat(t+1),command:e}))),[eI,eR]=(0,i.useState)(en),[eP,eD]=(0,i.useState)(!1),[eM,eW]=(0,i.useState)(!1),eF=Z(eI),eO=(0,i.useRef)(null),[eA,eH]=(0,i.useState)(0),[eU,eZ]=(0,i.useState)(!1),eB=(0,i.useRef)(null),eq=(0,i.useRef)(null),eV=(0,i.useCallback)(e=>{var t,n;null===(n=z.current)||void 0===n||null===(t=n.contentWindow)||void 0===t||t.postMessage({type:"agent-web-shell:skin:v1",skin:e},window.location.origin)},[]);(0,i.useEffect)(()=>{eV(eI)},[eI,eV]),(0,i.useEffect)(()=>{let e=eF.cssVars["--ui-root-bg"],t=eF.cssVars["--ui-color-scheme"],n=document.getElementById("web-theme-root");for(let[e,t]of Object.entries(eF.cssVars))null==n||n.style.setProperty(e,t);n&&(n.dataset.webTheme=eF.id),document.documentElement.style.background=e,document.documentElement.style.colorScheme=t,document.body.style.background=e,document.body.style.colorScheme=t;let r=document.querySelector('meta[name="theme-color"]');r||((r=document.createElement("meta")).name="theme-color",document.head.append(r)),r.content=eF.cssVars["--ui-tabbar-bg"]},[eF]),(0,i.useEffect)(()=>{let e=e=>{var t,n,r,a,i,o,l,s,d,c,u,p,f,b,m,h,v,k,S,E,C;if(u=window.location.origin,p=null!==(i=null===(t=z.current)||void 0===t?void 0:t.contentWindow)&&void 0!==i?i:null,e.origin!==u||e.source!==p?null:(f=e.data)&&"object"==typeof f?f.type!==V?null:{type:V}:null){eW(!0),j();return}let T=(d=window.location.origin,c=null!==(o=null===(n=z.current)||void 0===n?void 0:n.contentWindow)&&void 0!==o?o:null,e.origin!==d||e.source!==c?null:!(b=e.data)||"object"!=typeof b||"agent-webapp:artifact-open:v1"!==b.type||!Number.isSafeInteger(b.requestId)||1>Number(b.requestId)?null:"string"!=typeof b.path||!((m=b.path).startsWith("/")||/^[A-Za-z]:[\\/]/.test(m)||/^\\\\[^\\/]+[\\/][^\\/]+/.test(m))||b.path.includes("\0")||b.path.includes("\n")||b.path.includes("\r")?null:b);if(T){eg("files"),eh(!0),eb(T.path),ez(T);return}let L=(h=window.location.origin,v=null!==(l=null===(r=z.current)||void 0===r?void 0:r.contentWindow)&&void 0!==l?l:null,e.origin!==h||e.source!==v?null:(k=e.data)&&"object"==typeof k?"agent-webapp:browser-request:v1"!==k.type||!Number.isSafeInteger(k.id)||1>Number(k.id)||"string"!=typeof k.method||!y.has(k.method)||!k.payload||"object"!=typeof k.payload||Array.isArray(k.payload)?null:k:null);if(L){N(L.method,{...L.payload,..."browser:watch"===L.method?{frameAck:!0}:{}}).then(e=>{var t,n;null===(n=z.current)||void 0===n||null===(t=n.contentWindow)||void 0===t||t.postMessage({type:w,id:L.id,ok:!0,result:e},window.location.origin)},e=>{var t,n;null===(n=z.current)||void 0===n||null===(t=n.contentWindow)||void 0===t||t.postMessage({type:w,id:L.id,ok:!1,error:e.message||"浏览器操作失败",code:e.code},window.location.origin)});return}let I=(S=window.location.origin,E=null!==(s=null===(a=z.current)||void 0===a?void 0:a.contentWindow)&&void 0!==s?s:null,e.origin!==S||e.source!==E?null:(C=e.data)&&"object"==typeof C?"agent-webapp:project-request:v1"!==C.type||!Number.isSafeInteger(C.id)||1>Number(C.id)||"string"!=typeof C.method||!g.has(C.method)||!C.payload||"object"!=typeof C.payload||Array.isArray(C.payload)?null:C:null);I&&N(I.method,I.payload).then(e=>{var t,n;null===(n=z.current)||void 0===n||null===(t=n.contentWindow)||void 0===t||t.postMessage({type:x,id:I.id,ok:!0,result:e},window.location.origin)},e=>{var t,n;null===(n=z.current)||void 0===n||null===(t=n.contentWindow)||void 0===t||t.postMessage({type:x,id:I.id,ok:!1,error:e.message||"项目操作失败",code:e.code},window.location.origin)})};return window.addEventListener("message",e),()=>window.removeEventListener("message",e)},[j,N]),(0,i.useEffect)(()=>{let e=e=>{var t,n;null===(n=z.current)||void 0===n||null===(t=n.contentWindow)||void 0===t||t.postMessage({type:v,event:e},window.location.origin)},t=["browser:session","browser:frame","browser:state","browser:closed","browser:webrtc"].map(t=>T(t,e));return()=>t.forEach(e=>e())},[T]),(0,i.useEffect)(()=>{var e,t;eM&&(null===(t=z.current)||void 0===t||null===(e=t.contentWindow)||void 0===e||e.postMessage({type:v,event:{type:"browser:connection",connected:E.connected,epoch:C}},window.location.origin))},[E.connected,C,eM]);let eX=(0,i.useRef)(0),e_=O&&null!==(p=H[O])&&void 0!==p?p:null;(0,i.useEffect)(()=>{let e=window.visualViewport,t=null,n="",r=()=>{let a=(0,q.x)(e,{height:window.innerHeight,width:window.innerWidth}),i="".concat(a.width,"x").concat(a.height,"+").concat(a.top,"+").concat(a.left);i!==n&&(n=i,document.documentElement.style.setProperty("--vv-height","".concat(a.height,"px")),document.documentElement.style.setProperty("--vv-width","".concat(a.width,"px")),document.documentElement.style.setProperty("--vv-top","".concat(a.top,"px")),document.documentElement.style.setProperty("--vv-left","".concat(a.left,"px")),t&&window.clearTimeout(t),t=window.setTimeout(r,250))};return r(),null==e||e.addEventListener("resize",r),null==e||e.addEventListener("scroll",r),window.addEventListener("orientationchange",r),window.addEventListener("resize",r),document.addEventListener("visibilitychange",r),window.addEventListener("pageshow",r),()=>{null==e||e.removeEventListener("resize",r),null==e||e.removeEventListener("scroll",r),window.removeEventListener("orientationchange",r),window.removeEventListener("resize",r),document.removeEventListener("visibilitychange",r),window.removeEventListener("pageshow",r),t&&window.clearTimeout(t),document.documentElement.style.removeProperty("--vv-height"),document.documentElement.style.removeProperty("--vv-width"),document.documentElement.style.removeProperty("--vv-top"),document.documentElement.style.removeProperty("--vv-left")}},[]),(0,i.useEffect)(()=>{fetch("/api/web-console/preferences",{credentials:"same-origin"}).then(e=>e.json()).then(e=>{var t,n,r,a;"boolean"==typeof(null===(t=e.preferences)||void 0===t?void 0:t.keybarHidden)&&eE(e.preferences.keybarHidden),Array.isArray(null===(n=e.preferences)||void 0===n?void 0:n.keyOrder)&&eN(e.preferences.keyOrder),Array.isArray(null===(r=e.preferences)||void 0===r?void 0:r.pinnedCommands)&&eL(e.preferences.pinnedCommands),(null===(a=e.preferences)||void 0===a?void 0:a.theme)&&eR(Z(e.preferences.theme).id)}).catch(()=>{}).finally(()=>eD(!0)),fetch("/api/web-console/device-state",{credentials:"same-origin"}).then(e=>e.json()).then(e=>{let t=e.deviceState;(null==t?void 0:t.drawerTab)&&eg(t.drawerTab),(null==t?void 0:t.activeTerminalId)&&(Q.current=t.activeTerminalId),"boolean"==typeof(null==t?void 0:t.drawerOpen)&&eh(t.drawerOpen),(null==t?void 0:t.fileTreeRoot)&&ev(t.fileTreeRoot),"boolean"==typeof(null==t?void 0:t.fileTreeFollowMode)&&ek(t.fileTreeFollowMode),(null==t?void 0:t.selectedFile)&&eb(t.selectedFile),(null==t?void 0:t.terminalScroll)&&"object"==typeof t.terminalScroll&&ep(t.terminalScroll)}).catch(()=>{}).finally(()=>ec(!0))},[]);let eK=(0,i.useCallback)(e=>{fetch("/api/web-console/preferences",{method:"PATCH",credentials:"same-origin",headers:{"content-type":"application/json","x-csrf-token":b.csrfToken},body:JSON.stringify(e)}).catch(()=>{})},[b.csrfToken]);(0,i.useEffect)(()=>{if(!eP)return;let e=setTimeout(()=>eK({keybarHidden:eS,keyOrder:eC,pinnedCommands:eT,theme:eI}),500);return()=>clearTimeout(e)},[eS,eC,eT,eI,eP,eK]);let eG=(0,i.useCallback)(e=>{b.csrfToken&&fetch("/api/web-console/device-state",{method:"PUT",credentials:"same-origin",headers:{"content-type":"application/json","x-csrf-token":b.csrfToken},body:JSON.stringify(e)}).catch(()=>{})},[b.csrfToken]);(0,i.useEffect)(()=>{if(!b.csrfToken)return;let e=setTimeout(()=>eG({activeTerminalId:O,drawerOpen:em,drawerTab:ex,fileTreeRoot:ew,fileTreeFollowMode:ey,selectedFile:ef,terminalScroll:eu}),500);return()=>clearTimeout(e)},[O,em,ex,ew,ey,ef,eu,b.csrfToken,eG]),(0,i.useEffect)(()=>{if(!b.csrfToken)return;let e=()=>eG({activeTerminalId:O,drawerOpen:em,drawerTab:ex,fileTreeRoot:ew,fileTreeFollowMode:ey,selectedFile:ef,terminalScroll:eu});return window.addEventListener("pagehide",e),()=>window.removeEventListener("pagehide",e)},[O,em,ex,ew,ey,ef,eu,b.csrfToken,eG]);let eJ=(0,i.useCallback)(e=>{eb(e),eh(!1)},[]),eY=(0,i.useCallback)(()=>{if(D.length>=8)return;let e="t-web-".concat(Date.now().toString(36),"-").concat(Math.random().toString(36).slice(2,8));M(t=>t.length>=8?t:[...t,{id:e,title:"Terminal ".concat(t.length+1)}]),A(e)},[D.length]),eQ=(0,i.useCallback)(e=>{var t;let n=D.find(e=>e.id===O);if((null==n?void 0:n.kind)&&"webapp"!==n.kind)return;if(n&&!n.kind){let t=er.current.get(n.id);t?t(e,!0):eo.current.set(n.id,e),eh(!1);return}let r=D.length>=8?D.find(e=>!e.kind):null,a=null!==(t=null==r?void 0:r.id)&&void 0!==t?t:"t-web-".concat(Date.now().toString(36),"-").concat(Math.random().toString(36).slice(2,8));r?eo.current.set(a,e):M(t=>[...t,{id:a,title:"Terminal ".concat(t.length+1),initialCommand:e}]),A(a),eh(!1)},[O,D]);(0,i.useEffect)(()=>{E.connected&&ed&&!X.current&&(X.current=!0,N("term:list").then(e=>{let t=e.tabs.filter(e=>"active"===e.status||"detached"===e.status).map(e=>{let{id:t,title:n}=e;return{id:t,title:n}});M(e=>[$,...t,...e.filter(e=>"aihub"===e.kind||"flowstudio"===e.kind)]),A(e=>{let n=F.current.find(t=>t.id===e&&("aihub"===t.kind||"flowstudio"===t.kind));if(n)return n.id;let r=Q.current||e||$.id;return r===$.id?$.id:t.some(e=>e.id===r)?r:$.id})}).catch(()=>{}))},[E.connected,ed,N]);let e$=e=>{var t;if(e===$.id)return;let n=null===(t=D.find(t=>t.id===e))||void 0===t?void 0:t.kind;(n||window.confirm("关闭页签会终止该终端进程,确认关闭?"))&&(M(t=>{var n,r;let a=t.filter(t=>t.id!==e);return O===e&&A(null!==(r=null===(n=a[0])||void 0===n?void 0:n.id)&&void 0!==r?r:null),a}),n||N("term:kill",{id:e}).catch(()=>{}))},e0=(0,i.useCallback)(()=>{M(e=>{let t=e.find(e=>"aihub"===e.kind);return t?(A(t.id),e):(A(ee.id),[...e,{...ee}])})},[]),e1=(0,i.useCallback)(()=>{M(e=>{let t=e.find(e=>"flowstudio"===e.kind);return t?(A(t.id),e):(A(et.id),[...e,{...et}])})},[]),e2=(0,i.useCallback)(()=>{var e,t;A($.id),null===(t=z.current)||void 0===t||null===(e=t.contentWindow)||void 0===e||e.postMessage({type:"agent-web-shell:open-browser-live:v1"},window.location.origin)},[]);(0,i.useEffect)(()=>{let e=T("term:exited",e=>{let t=null==e?void 0:e.id;t&&(M(e=>{let n=e.filter(e=>e.id!==t);return A(e=>{var r,a;return e===t?null!==(a=null===(r=n[0])||void 0===r?void 0:r.id)&&void 0!==a?a:null:e}),n}),ep(e=>{if(!(t in e))return e;let n={...e};return delete n[t],n}))});return()=>{e()}},[T]);let e4=(0,i.useCallback)(e=>{if(!O||D.length<2)return;let t=(D.findIndex(e=>e.id===O)+e+D.length)%D.length;A(D[t].id)},[O,D]),e6=Math.max(0,D.findIndex(e=>e.id===O)),e8=(null===(t=D[e6])||void 0===t?void 0:t.kind)==="webapp"?eF.cssVars["--ui-term-col-bg"]:eF.termHostBg,e5={...ei.root,...eF.cssVars,"--ui-active-content-bg":e8,"--ui-terminal-bg":eF.termHostBg,"--ui-primary-text":eF.keybar.accentText,background:"var(--ui-root-bg)",color:"var(--ui-text)"},e3=(0,i.useCallback)(()=>{eO.current=null,eH(0),eZ(!1)},[]),e7=(0,i.useCallback)(e=>{Math.abs(e)>=64&&D.length>1&&e4(e<0?1:-1),e3()},[D.length,e4,e3]),e9=e=>e instanceof Element&&!!e.closest(".terminal-screen");(0,i.useEffect)(()=>{let e=e=>{var t,n,r,a,i;if(O!==$.id)return;let o=(r=window.location.origin,a=null!==(n=null===(t=z.current)||void 0===t?void 0:t.contentWindow)&&void 0!==n?n:null,e.origin!==r||e.source!==a?null:(i=e.data)&&"object"==typeof i&&"agent-webapp:tab-swipe:v1"===i.type&&("move"===i.phase||"end"===i.phase||"cancel"===i.phase)&&"number"==typeof i.deltaX&&Number.isFinite(i.deltaX)?i:null);o&&("move"===o.phase?(eZ(!0),eH(o.deltaX)):"end"===o.phase?e7(o.deltaX):e3())};return window.addEventListener("message",e),()=>window.removeEventListener("message",e)},[O,e7,e3]);let te=(0,i.useCallback)(function(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"smooth",n=eq.current;if(!n||!O)return;let r=n.querySelector('[data-terminal-id="'.concat(O,'"]'));if(!r)return;if(r===n.querySelector("[data-terminal-id]")){(0,q.i)(n);return}let a=n.querySelector(".terminal-connection"),i=null!==(e=null==a?void 0:a.offsetWidth)&&void 0!==e?e:0,o=r.offsetLeft,l=o+r.offsetWidth,s=n.scrollLeft,d=s+n.clientWidth-i;o<s+8?n.scrollTo({left:Math.max(0,o-8),behavior:t}):l>d-8&&n.scrollTo({left:l-n.clientWidth+i+8,behavior:t})},[O]);return(0,i.useLayoutEffect)(()=>{if(!O)return;let e=D.length>eX.current;eX.current=D.length,te(e?"auto":"smooth")},[O,D.length,te]),(0,i.useEffect)(()=>{let e=()=>requestAnimationFrame(()=>te("auto"));return window.addEventListener("pageshow",e),()=>window.removeEventListener("pageshow",e)},[te]),(0,r.jsxs)("div",{className:"web-root",style:e5,children:[(0,r.jsx)("style",{dangerouslySetInnerHTML:{__html:ea}}),(0,r.jsxs)("div",{className:"terminal-tabs",ref:eq,children:[D.map(e=>(0,r.jsxs)("div",{"data-terminal-id":e.id,draggable:!0,className:"terminal-tab ".concat(e.id===O?"active":""),onDragStart:()=>{eB.current=e.id},onDragOver:e=>e.preventDefault(),onDrop:t=>{t.preventDefault();let n=eB.current;eB.current=null,n&&n!==e.id&&M(t=>{let r=t.findIndex(e=>e.id===n),a=t.findIndex(t=>t.id===e.id);if(r<0||a<0)return t;let i=[...t],[o]=i.splice(r,1);return i.splice(a,0,o),N("term:reorder",{ids:i.filter(e=>!e.kind).map(e=>e.id)}).catch(()=>{}),i})},onClick:()=>A(e.id),onDoubleClick:()=>{var t;if(e.kind)return;let n=null===(t=window.prompt("页签名称",e.title))||void 0===t?void 0:t.trim();n&&N("term:rename",{id:e.id,title:n}).then(()=>M(t=>t.map(t=>t.id===e.id?{...t,title:n}:t))).catch(()=>{})},children:[(0,r.jsx)("span",{children:e.title}),"webapp"!==e.kind&&(0,r.jsx)("button",{tabIndex:-1,onClick:t=>{t.stopPropagation(),e$(e.id)},children:"\xd7"})]},e.id)),(0,r.jsx)("button",{className:"terminal-add",disabled:D.length>=8,onClick:eY,children:"+"}),(0,r.jsxs)("div",{className:"terminal-connection",children:[(0,r.jsx)("button",{type:"button",className:"file-drawer-toggle","aria-label":"刷新页面",title:"刷新页面",onClick:()=>window.location.reload(),children:(0,r.jsx)(o.Z,{size:17,"aria-hidden":"true"})}),(0,r.jsx)(m,{}),(0,r.jsx)("button",{type:"button",className:"file-drawer-toggle","aria-label":"打开远程桌面",title:"远程桌面 \xb7 浏览器直播",onClick:e2,children:(0,r.jsx)(l.Z,{size:17,"aria-hidden":"true"})}),(0,r.jsx)("button",{type:"button",className:"file-drawer-toggle","aria-label":"打开 AI Hub",title:"AI Hub \xb7 多模型对比",onClick:e0,children:(0,r.jsx)(s.Z,{size:17,"aria-hidden":"true"})}),(0,r.jsx)("button",{type:"button",className:"file-drawer-toggle","aria-label":"打开数字人",title:"数字人 \xb7 Flow Studio",onClick:e1,children:(0,r.jsx)(d.Z,{size:17,"aria-hidden":"true"})}),(0,r.jsx)("button",{type:"button",className:"file-drawer-toggle","aria-label":em?"关闭我的文件":"打开我的文件",title:"我的文件","aria-expanded":em,onClick:()=>eh(e=>!e),children:(0,r.jsx)(c.Z,{size:17,"aria-hidden":"true"})}),(0,r.jsxs)("div",{className:"theme-avatar-with-status",children:[(0,r.jsx)(B,{username:null!==(f=null===(n=b.user)||void 0===n?void 0:n.username)&&void 0!==f?f:"?",themeId:eI,onThemeChange:eR,accent:eF.keybar.accent,accentText:eF.keybar.accentText}),(0,r.jsx)("span",{className:"theme-avatar-status","data-connected":E.connected,"aria-label":E.connected?"已连接":"未连接"})]})]})]}),(0,r.jsxs)("main",{className:"workspace ".concat(em?"show-tree":""," ").concat(ef?"has-preview":""),style:ei.workspace,children:[(0,r.jsx)("section",{className:"term-col",style:ei.termCol,onPointerDownCapture:e=>{"touch"===e.pointerType&&e9(e.target)&&(e3(),eO.current={x:e.clientX,y:e.clientY,axis:"pending",pointerId:e.pointerId})},onPointerMoveCapture:e=>{let t=eO.current;if(!t||e.pointerId!==t.pointerId||"touch"!==e.pointerType)return;let n=e.clientX-t.x,r=e.clientY-t.y;if("pending"===t.axis){if(8>=Math.max(Math.abs(n),Math.abs(r)))return;if(Math.abs(r)>=1.2*Math.abs(n)){eO.current=null;return}t.axis="horizontal",eZ(!0);let e=n=>{window.removeEventListener("pointerup",e),window.removeEventListener("pointercancel",e),eO.current===t&&e3()};window.addEventListener("pointerup",e),window.addEventListener("pointercancel",e)}"horizontal"===t.axis&&(e.preventDefault(),eH(n))},onPointerUpCapture:e=>{let t=eO.current;if(!t||e.pointerId!==t.pointerId)return;let n=e.clientX-t.x;"horizontal"===t.axis&&Math.abs(n)>=64?e7(n):e3()},onPointerCancelCapture:e3,children:(0,r.jsx)("div",{className:"terminal-track",style:{transform:"translate3d(calc(".concat(-(100*e6),"% + ").concat(eA,"px),0,0)"),transition:eU?"none":"transform 260ms cubic-bezier(.22,.8,.32,1)"},children:D.map(e=>{var t;return(0,r.jsx)("div",{className:"terminal-slide",style:{position:"relative"},children:"webapp"===e.kind?(0,r.jsx)("iframe",{ref:z,className:"webapp-frame",src:"/app/",title:e.title,onLoad:()=>eV(eI)}):"aihub"===e.kind?(0,r.jsx)(J,{visible:e.id===O,rpc:N}):"flowstudio"===e.kind?(0,r.jsx)(Y,{visible:e.id===O}):(0,r.jsx)(_,{terminalId:e.id,title:e.title,initialCommand:e.initialCommand,visible:e.id===O,state:E,rpc:N,onEvent:T,onTerminalData:L,onTerminalReset:I,sendTerminalInput:R,keyOrder:eC,keybarHidden:eS,onKeyOrderChange:eN,onKeybarHiddenChange:eE,terminalTheme:eF,initialScrollLine:null!==(t=eu[e.id])&&void 0!==t?t:null,onScrollLineChange:t=>ep(n=>n[e.id]===t?n:{...n,[e.id]:t}),onRegisterFill:t=>el(e.id,t),onCwdChange:t=>t&&U(n=>({...n,[e.id]:t}))})},e.id)})})}),em&&(0,r.jsx)("div",{className:"drawer-mask",onClick:()=>eh(!1)}),(0,r.jsxs)("aside",{className:"tree-col ".concat(em?"tree-col-open":""),style:ei.treeCol,children:[(0,r.jsxs)("div",{className:"tree-head",style:ei.treeHead,children:[(0,r.jsx)("button",{className:"files"===ex?"drawer-tab-active":"",onClick:()=>eg("files"),children:"文件"}),(0,r.jsx)("button",{className:"history"===ex?"drawer-tab-active":"",onClick:()=>eg("history"),children:"历史"}),(0,r.jsx)("span",{className:"tree-cwd",style:ei.treeCwd,children:null!=e_?e_:""}),(0,r.jsx)("button",{style:{...ei.iconBtn,marginLeft:"auto",flexShrink:0},onClick:()=>eh(!1),"aria-label":"close drawer",children:(0,r.jsx)(u.Z,{size:15,"aria-hidden":"true"})})]}),"files"===ex?(0,r.jsx)(K,{ready:C>0,followCwd:!0,cwd:e_,gateway:P,onOpenFile:eJ,selectedPath:ef,initialRoot:ew,initialFollow:ey,revealRequest:ej,onTreeStateChange:(e,t)=>{ev(e),ek(t)}}):(0,r.jsx)(W,{csrfToken:b.csrfToken,terminalId:(null===(a=D.find(e=>e.id===O))||void 0===a?void 0:a.kind)==="webapp"?null:O,pinnedCommands:eT,onPinnedCommandsChange:eL,onFill:es,onExecute:eQ}),(0,r.jsxs)("div",{style:ei.treeFoot,children:[(0,r.jsx)("span",{style:ei.treeFootDot}),(0,r.jsx)("span",{children:"实时同步"})]})]}),ef&&(0,r.jsx)("section",{className:"preview-col",style:ei.previewCol,children:(0,r.jsx)(G,{path:ef,gateway:P,onClose:()=>eb(null)})})]})]})}let ea='\n html, body { width:100%; height:100%; margin:0; overflow:hidden; background:var(--ui-root-bg, #0b0b10); overscroll-behavior:none; color:var(--ui-text, #e8e8ee); }\n * { -webkit-tap-highlight-color: transparent; }\n .terminal-tabs { display:flex; align-items:end; gap:4px; min-height:38px; padding:0 8px; overflow-x:auto; overflow-y:hidden; touch-action:pan-x; overscroll-behavior-x:contain; -webkit-overflow-scrolling:touch; scroll-behavior:smooth; background:var(--ui-tabbar-bg, #12141b); border-bottom:0; scrollbar-width:none; flex-shrink:0; }\n .terminal-tab { display:flex; align-items:center; gap:7px; min-width:74px; max-width:130px; height:32px; padding:0 7px 0 10px; border-radius:7px 7px 0 0; background:var(--ui-tab-bg, #1b1e28); color:var(--ui-tab-text, #8f93a4); font-size:11px; cursor:pointer; box-sizing:border-box; transition:color .2s ease,box-shadow .2s ease; }\n .terminal-tab.active { color:var(--ui-tab-active-text, #edf0f7); background:var(--ui-active-content-bg, var(--ui-tab-active-bg, #262b38)); box-shadow:inset 0 2px var(--ui-tab-accent, #7aa2f7); }\n .terminal-tab span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; flex:1; }\n .terminal-tab button { width:18px; height:18px; border:0; border-radius:4px; background:transparent; color:var(--ui-tab-text, #707586); padding:0; }\n .terminal-add { min-width:30px; height:28px; margin-bottom:2px; border:1px solid var(--ui-tabbar-border, #303442); border-radius:6px; background:var(--ui-tab-bg, #1b1e28); color:var(--ui-tab-text, #9da2b2); }\n .terminal-connection { position:sticky; right:-8px; margin-left:auto; align-self:stretch; display:flex; align-items:center; gap:7px; padding:0 9px; background:var(--ui-connection-bg, #12141b); color:var(--ui-connection-text, #777b8c); font-size:10.5px; flex-shrink:0; z-index:5; box-shadow:-8px 0 12px color-mix(in srgb, var(--ui-connection-bg, #12141b) 90%, transparent); }\n .file-drawer-toggle { display:grid; place-items:center; width:28px; height:28px; padding:0; border:0; border-radius:6px; background:transparent; color:var(--ui-connection-text, #777b8c); cursor:pointer; flex-shrink:0; touch-action:manipulation; }\n .file-drawer-toggle:hover, .file-drawer-toggle[aria-expanded="true"] { background:color-mix(in srgb, var(--ui-tab-accent, #7aa2f7) 12%, transparent); color:var(--ui-tab-active-text, #edf0f7); }\n .file-drawer-toggle:focus-visible { outline:2px solid var(--ui-tab-accent, #7aa2f7); outline-offset:-2px; }\n .theme-avatar-with-status { position:relative; display:flex; flex-shrink:0; }\n .theme-avatar-status { position:absolute; right:-2px; bottom:-2px; z-index:7; width:6px; height:6px; box-sizing:border-box; border:1px solid var(--ui-connection-bg, #12141b); border-radius:50%; background:var(--ui-error); pointer-events:none; }\n .theme-avatar-status[data-connected="true"] { background:var(--ui-success); }\n .theme-picker { position:relative; flex-shrink:0; z-index:6; }\n .theme-avatar { position:relative; display:flex; align-items:center; justify-content:center; width:18px; height:18px; padding:0; border-radius:99px; font-size:9px; font-weight:700; cursor:pointer; flex-shrink:0; touch-action:manipulation; -webkit-tap-highlight-color:transparent; transition:transform .12s ease, filter .12s ease; }\n /* Hit-area padding keeps the compact visual circle easy to target. */\n .theme-avatar::after { content:""; position:absolute; inset:-6px; border-radius:99px; }\n .theme-avatar:active { transform:scale(.9); filter:brightness(1.15); }\n .theme-popover-item { display:flex; align-items:center; gap:8px; padding:7px 8px; border:none; border-radius:8px; cursor:pointer; touch-action:manipulation; -webkit-tap-highlight-color:transparent; }\n .theme-popover-item:active { background:color-mix(in srgb, var(--ui-tab-accent, #7aa2f7) 22%, transparent); }\n /* Touch devices: grow the avatar hit area to ~44px and the popover rows to\n ~40px tall. The tab bar must grow in step — it clips overflow-y, so an\n expanded hit area taller than the bar would get cut off. */\n @media (pointer: coarse) {\n .terminal-tabs { min-height:44px; }\n .theme-avatar::after { inset:-9px; }\n .theme-popover-item { padding-top:11px; padding-bottom:11px; }\n }\n @media (prefers-reduced-motion: reduce) { .theme-avatar { transition:none; } }\n .terminal-track { display:flex; width:100%; height:100%; will-change:transform; }\n .terminal-slide { position:relative; flex:0 0 100%; width:100%; height:100%; min-width:0; overflow:hidden; }\n .webapp-frame { display:block; width:100%; height:100%; border:0; background:var(--ui-term-col-bg, #101014); }\n .terminal-surface { position:relative; flex:1; min-height:90px; overflow:hidden; }\n .terminal-screen { display:flex; flex-direction:column; width:100%; min-height:0; overflow:hidden; box-sizing:border-box; }\n .terminal-screen .xterm { flex:1; height:100%; background:var(--ui-terminal-bg, #101014); }\n .terminal-screen .xterm .xterm-viewport { background-color:var(--ui-terminal-bg, #101014); }\n .terminal-screen .xterm-scrollable-element { touch-action:pan-y; -webkit-overflow-scrolling:touch; }\n .terminal-boot { position:absolute; inset:0; z-index:46; display:flex; align-items:center; justify-content:center; gap:9px; pointer-events:auto; font-size:12px; line-height:1.4; letter-spacing:0; }\n .terminal-boot-spinner { width:16px; height:16px; box-sizing:border-box; border:2px solid color-mix(in srgb,currentColor 24%,transparent); border-top-color:currentColor; border-radius:50%; animation:terminal-boot-spin .8s linear infinite; }\n .terminal-boot-warning { position:absolute; top:9px; left:50%; z-index:45; transform:translateX(-50%); max-width:calc(100% - 24px); padding:5px 8px; border:1px solid; border-radius:6px; pointer-events:none; font-size:11px; line-height:1.35; letter-spacing:0; white-space:normal; text-align:center; }\n @keyframes terminal-boot-spin { to { transform:rotate(360deg); } }\n @media (prefers-reduced-motion: reduce) { .terminal-track,.terminal-tab { transition:none !important; } .terminal-boot-spinner { animation:none !important; } }\n .web-root {\n position: fixed;\n top: var(--vv-top, 0px);\n left: var(--vv-left, 0px);\n width: var(--vv-width, 100vw);\n height: var(--vv-height, 100dvh) !important;\n }\n .tree-scroll {\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n overflow-x: hidden;\n overscroll-behavior: contain;\n touch-action: pan-y;\n -webkit-overflow-scrolling: touch;\n padding: 6px;\n }\n .tree-location {\n position: sticky;\n top: -6px;\n z-index: 3;\n display: flex;\n align-items: center;\n gap: 5px;\n margin: -1px -1px 0;\n padding: 7px 7px 5px;\n background: color-mix(in srgb, var(--ui-tree-bg, #121218) 98%, transparent);\n }\n .tree-location input {\n flex: 1;\n min-width: 0;\n height: 28px;\n border: 1px solid var(--ui-panel-input-border, #30303b);\n border-radius: 6px;\n outline: none;\n padding: 0 8px;\n background: var(--ui-panel-input-bg, #0f0f15);\n color: var(--ui-panel-input-text, #d8d8df);\n font-family: "SF Mono", Menlo, monospace;\n font-size: 10.5px;\n }\n .tree-location input:focus { border-color: var(--ui-tab-accent, #536b9e); }\n .tree-location button {\n width: 28px;\n height: 28px;\n flex-shrink: 0;\n border: 1px solid var(--ui-panel-input-border, #30303a);\n border-radius: 6px;\n background: var(--ui-tab-bg, #202029);\n color: var(--ui-tab-text, #aaaab8);\n font-size: 12px;\n }\n .tree-location button[data-active="1"] {\n border-color: var(--ui-success, #4f6f58);\n color: var(--ui-success, #9ece6a);\n background: color-mix(in srgb, var(--ui-success, #9ece6a) 12%, var(--ui-tree-bg, #18221b));\n }\n .tree-head button { height:26px; padding:0 10px; border:0; border-radius:6px 6px 0 0; background:transparent; color:var(--ui-drawer-tab-text, #74798a); font-size:11px; }\n .tree-head button.drawer-tab-active { color:var(--ui-drawer-tab-active, #e4e7ef); box-shadow:inset 0 -2px var(--ui-tab-accent, #7aa2f7); }\n .history-panel { flex:1; min-height:0; overflow:auto; padding:7px; }\n .pinned-commands { position:sticky; top:0; z-index:3; margin:-1px -1px 7px; border:1px solid var(--ui-tabbar-border, #252832); border-radius:6px; background:var(--ui-tree-bg, #121218); box-shadow:0 7px 12px color-mix(in srgb, var(--ui-root-bg, #0b0b10) 58%, transparent); overflow:hidden; }\n .pinned-command-head { display:flex; align-items:center; min-height:30px; padding:0 6px 0 10px; border-bottom:1px solid var(--ui-tabbar-border, #252832); color:var(--ui-history-meta, #74798a); font-size:10px; }\n .pinned-command-head span { flex:1; }\n .pinned-command-row { display:flex; align-items:center; min-height:34px; border-bottom:1px solid color-mix(in srgb, var(--ui-tabbar-border, #252832) 76%, transparent); cursor:pointer; outline:none; }\n .pinned-command-row:last-child { border-bottom:0; }\n .pinned-command-row:hover,.pinned-command-row:focus-visible { background:color-mix(in srgb, var(--ui-tab-active-bg, #1f2430) 76%, transparent); }\n .pinned-command-row:focus-visible { box-shadow:inset 2px 0 var(--ui-tab-accent, #7aa2f7); }\n .pinned-command-dragging { opacity:.66; background:var(--ui-tab-active-bg, #1f2430); }\n .pinned-command-row code { flex:1; min-width:0; padding:0 5px; overflow:hidden; color:var(--ui-history-item-text, #d3d6df); font-size:11px; text-overflow:ellipsis; white-space:nowrap; }\n .pinned-command-grip { display:inline-flex; align-items:center; justify-content:center; width:28px; height:32px; padding:0; border:0; background:transparent; color:var(--ui-history-meta, #626777); cursor:grab; touch-action:none; }\n .pinned-command-grip:active { cursor:grabbing; }\n .pinned-command-actions { display:flex; align-items:center; padding-right:3px; opacity:.42; transition:opacity .15s ease; }\n .pinned-command-row:hover .pinned-command-actions,.pinned-command-row:focus-within .pinned-command-actions { opacity:1; }\n .pinned-command-editor { display:grid; grid-template-columns:minmax(0,1fr) 27px 27px; gap:4px; align-items:center; min-height:39px; padding:4px 5px 4px 8px; border-bottom:1px solid var(--ui-tabbar-border, #252832); }\n .pinned-command-editor input { min-width:0; height:27px; box-sizing:border-box; border:1px solid var(--ui-tab-accent, #536b9e); border-radius:5px; outline:none; padding:0 7px; background:var(--ui-panel-input-bg, #0f0f15); color:var(--ui-panel-input-text, #ddd); font-family:"SF Mono",Menlo,monospace; font-size:10.5px; }\n .pinned-command-editor small { grid-column:1 / -1; color:var(--ui-danger, #e06c75); font-size:9px; }\n .terminal-clipboard-notice { padding:4px 8px; flex-shrink:0; font-size:12px; }\n .terminal-native-touch, .terminal-native-touch .xterm-screen, .terminal-native-touch .terminal-native-rows, .terminal-native-touch .terminal-native-rows * { -webkit-user-select:text !important; user-select:text !important; -webkit-touch-callout:default; }\n .terminal-native-touch .terminal-native-rows { position:absolute; top:0; left:0; z-index:4; pointer-events:auto !important; }\n .terminal-native-touch .xterm-rows:not(.terminal-native-rows) { -webkit-user-select:none !important; user-select:none !important; }\n .terminal-native-touch .terminal-native-rows span { display:inline !important; }\n .terminal-native-touch .xterm-helper-textarea { opacity:1; background:transparent; color:transparent; -webkit-text-fill-color:transparent; caret-color:transparent; outline:none; text-shadow:none; -webkit-appearance:none; appearance:none; -webkit-user-select:text; user-select:text; -webkit-touch-callout:default; font-size:16px !important; left:var(--native-input-left, 0px) !important; top:var(--native-input-top, 0px) !important; width:var(--native-input-width, 80px) !important; height:var(--native-input-height, 32px) !important; z-index:10 !important; pointer-events:var(--native-input-events, none); }\n .history-search { display:flex; gap:5px; padding:5px; background:var(--ui-tree-bg, #121218); }\n .history-search input { flex:1; min-width:0; height:28px; border:1px solid var(--ui-panel-input-border, #30303a); border-radius:6px; padding:0 8px; background:var(--ui-panel-input-bg, #0f0f15); color:var(--ui-panel-input-text, #ddd); font-size:11px; }\n .history-icon-button { display:inline-flex; align-items:center; justify-content:center; width:27px; min-width:27px; height:27px; padding:0; border:1px solid var(--ui-panel-input-border, #30303a); border-radius:5px; background:var(--ui-tab-bg, #202029); color:var(--ui-connection-text, #999dab); }\n .history-icon-button:hover:not(:disabled) { color:var(--ui-drawer-tab-active, #e4e7ef); border-color:var(--ui-tab-accent, #536b9e); }\n .history-icon-button:disabled { cursor:not-allowed; opacity:.32; }\n .history-icon-danger:hover:not(:disabled) { color:var(--ui-danger, #e06c75); border-color:color-mix(in srgb, var(--ui-danger, #e06c75) 60%, var(--ui-panel-input-border, #30303a)); }\n .history-item { padding:9px 7px; border-bottom:1px solid var(--ui-tabbar-border, #242731); cursor:pointer; border-radius:6px; }\n .history-item:hover { background:color-mix(in srgb, var(--ui-tab-active-bg, #181b24) 80%, transparent); }\n .history-item:active { background:var(--ui-tab-active-bg, #1f2430); }\n .history-item-disabled { cursor:not-allowed; opacity:.55; }\n .history-item-disabled:hover { background:transparent; }\n .history-item:focus-visible { outline:1px solid var(--ui-tab-accent, #536b9e); outline-offset:-1px; }\n .history-item code { display:block; color:var(--ui-history-item-text, #d3d6df); font-size:11px; overflow-wrap:anywhere; }\n .history-item small { display:block; margin:4px 0 7px; color:var(--ui-history-meta, #656a79); font-size:9.5px; }\n .history-item-actions { display:flex; gap:5px; }\n .history-empty { padding:18px; color:#5d6270; font-size:11px; text-align:center; }\n @media (pointer:coarse) { .pinned-command-actions { opacity:.78; } }\n .keybar-scroll { scrollbar-width:none; }\n .keybar-scroll::-webkit-scrollbar { display:none; }\n .tree-filter {\n position: sticky;\n top: 34px;\n z-index: 2;\n display: flex;\n align-items: center;\n gap: 6px;\n margin: -1px -1px 7px;\n padding: 7px 8px;\n border-bottom: 1px solid var(--ui-tabbar-border, #25252e);\n background: color-mix(in srgb, var(--ui-tree-bg, #121218) 97%, transparent);\n color: var(--ui-history-meta, #666678);\n backdrop-filter: blur(8px);\n }\n .tree-filter input {\n flex: 1;\n min-width: 0;\n height: 27px;\n border: 1px solid var(--ui-panel-input-border, #30303a);\n border-radius: 6px;\n outline: none;\n padding: 0 8px;\n background: var(--ui-panel-input-bg, #0f0f15);\n color: var(--ui-panel-input-text, #d8d8df);\n font-size: 11px;\n }\n .tree-filter input:focus { border-color: var(--ui-tab-accent, #536b9e); }\n @media (max-width:768px), (pointer:coarse) {\n .pinned-command-editor input, .history-search input, .tree-filter input { font-size:16px; }\n .terminal-screen .xterm-helper-textarea { font-size:16px !important; }\n }\n .tree-filter button {\n width: 25px;\n height: 25px;\n padding: 0;\n border: 0;\n border-radius: 5px;\n background: var(--ui-tab-bg, #24242d);\n color: var(--ui-connection-text, #9999a6);\n font-size: 10px;\n }\n .tree-row {\n display: flex;\n align-items: center;\n gap: 6px;\n min-height: 31px;\n padding-right: 7px;\n border-radius: 6px;\n font-size: 12px;\n white-space: nowrap;\n cursor: pointer;\n }\n .tree-disclosure {\n width: 13px;\n min-width: 13px;\n height: 16px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n color: var(--ui-history-meta, #777785);\n }\n .tree-entry-icon {\n width: 17px;\n min-width: 17px;\n height: 17px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n }\n .tree-folder-icon { color: var(--ui-tab-accent, #7aa2f7); }\n .tree-entry-name { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }\n .tree-spin { animation:tree-spin .8s linear infinite; }\n @keyframes tree-spin { to { transform:rotate(360deg); } }\n @media (prefers-reduced-motion: reduce) { .tree-spin { animation:none; } }\n .tree-row[data-selected="1"] { background: color-mix(in srgb, var(--ui-tab-accent, #26304a) 24%, transparent); }\n .tree-error { margin: 2px 8px 6px; padding: 7px 8px; border-left: 2px solid #f7768e; color: #f7768e; font-size: 11px; line-height: 1.45; overflow-wrap: anywhere; }\n .tree-size { margin-left: auto; color: var(--ui-history-meta, #555); font-size: 10px; flex-shrink: 0; }\n\n /* phone-first: terminal is THE screen */\n .workspace { display: grid !important; grid-template-columns: 1fr; }\n .tree-col {\n display: flex;\n position: fixed;\n top: var(--vv-top, 0px);\n height: var(--vv-height, 100dvh);\n right: calc(100vw - var(--vv-left, 0px) - var(--vv-width, 100vw));\n width: min(82vw, 320px); z-index: 40;\n transform: translateX(102%); transition: transform .22s ease;\n }\n .tree-col-open { transform: translateX(0); box-shadow: -12px 0 32px rgba(0,0,0,.5); }\n .drawer-mask { position:fixed; top:var(--vv-top, 0px); left:var(--vv-left, 0px); width:var(--vv-width, 100vw); height:var(--vv-height, 100dvh); background:rgba(0,0,0,.45); z-index:39; }\n .preview-col {\n position: fixed;\n top: var(--vv-top, 0px);\n left: var(--vv-left, 0px);\n width: var(--vv-width, 100vw);\n height: var(--vv-height, 100dvh);\n z-index: 50;\n background: var(--ui-term-col-bg, #101014);\n }\n .cwd-hint { max-width: 40vw; }\n\n @media (min-width: 900px) {\n .workspace.show-tree.has-preview { grid-template-columns: 46% 20% 34%; }\n .workspace.show-tree:not(.has-preview) { grid-template-columns: 80% 20%; }\n .workspace.has-preview:not(.show-tree) { grid-template-columns: 66% 34%; }\n /* desktop: the tree becomes a right column only while the drawer is open */\n .tree-col {\n position: static; top: auto; height: auto; width: auto; transform: none;\n box-shadow: none; border-left: 1px solid var(--ui-tree-border, #1e1e26);\n }\n .workspace:not(.show-tree) .tree-col { display: none; }\n .preview-col { position: relative; inset: auto; width: auto; height: auto; border-left: 1px solid var(--ui-tree-border, #1e1e26); }\n .drawer-mask { display: none; }\n }\n',ei={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}}}},function(e){e.O(0,[693,37,183,744],function(){return e(e.s=8261)}),_N_E=e.O()}]);
|
package/runtime/.next/static/chunks/{main-app-d527fa0b25a0c755.js → main-app-9aaee005b4835e70.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[744],{
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[744],{2590:function(e,n,t){Promise.resolve().then(t.t.bind(t,7709,23)),Promise.resolve().then(t.t.bind(t,5613,23)),Promise.resolve().then(t.t.bind(t,6554,23)),Promise.resolve().then(t.t.bind(t,1338,23)),Promise.resolve().then(t.t.bind(t,9011,23)),Promise.resolve().then(t.t.bind(t,1573,23))}},function(e){var n=function(n){return e(e.s=n)};e.O(0,[37,183],function(){return n(5130),n(2590)}),_N_E=e.O()}]);
|
package/runtime/server.js
CHANGED
|
@@ -15,7 +15,7 @@ const currentPort = parseInt(process.env.PORT, 10) || 3000
|
|
|
15
15
|
const hostname = process.env.HOSTNAME || '0.0.0.0'
|
|
16
16
|
|
|
17
17
|
let keepAliveTimeout = parseInt(process.env.KEEP_ALIVE_TIMEOUT, 10)
|
|
18
|
-
const nextConfig = {"env":{},"eslint":{"ignoreDuringBuilds":false},"typescript":{"ignoreBuildErrors":false,"tsconfigPath":"tsconfig.json"},"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.js","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"analyticsId":"","images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[16,32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":60,"formats":["image/webp"],"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"inline","remotePatterns":[],"unoptimized":false},"devIndicators":{"buildActivity":true,"buildActivityPosition":"bottom-right"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"amp":{"canonicalBase":""},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"optimizeFonts":true,"excludeDefaultMomentLocales":true,"serverRuntimeConfig":{},"publicRuntimeConfig":{},"reactProductionProfiling":false,"reactStrictMode":null,"httpAgentOptions":{"keepAlive":true},"outputFileTracing":true,"staticPageGenerationTimeout":60,"swcMinify":true,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"experimental":{"multiZoneDraftMode":false,"prerenderEarlyExit":false,"serverMinification":true,"serverSourceMaps":false,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","middlewarePrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":10,"memoryBasedWorkersCount":false,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":true,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"outputFileTracingRoot":"/Users/caoqu/.codex/worktrees/npm-preview-
|
|
18
|
+
const nextConfig = {"env":{},"eslint":{"ignoreDuringBuilds":false},"typescript":{"ignoreBuildErrors":false,"tsconfigPath":"tsconfig.json"},"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.js","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"analyticsId":"","images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[16,32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":60,"formats":["image/webp"],"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"inline","remotePatterns":[],"unoptimized":false},"devIndicators":{"buildActivity":true,"buildActivityPosition":"bottom-right"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"amp":{"canonicalBase":""},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"optimizeFonts":true,"excludeDefaultMomentLocales":true,"serverRuntimeConfig":{},"publicRuntimeConfig":{},"reactProductionProfiling":false,"reactStrictMode":null,"httpAgentOptions":{"keepAlive":true},"outputFileTracing":true,"staticPageGenerationTimeout":60,"swcMinify":true,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"experimental":{"multiZoneDraftMode":false,"prerenderEarlyExit":false,"serverMinification":true,"serverSourceMaps":false,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","middlewarePrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":10,"memoryBasedWorkersCount":false,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":true,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"outputFileTracingRoot":"/Users/caoqu/.codex/worktrees/npm-preview-41/customer-agent","swcTraceProfiling":false,"forceSwcTransforms":false,"largePageDataBytes":128000,"adjustFontFallbacks":false,"adjustFontFallbacksWithSizeAdjust":false,"typedRoutes":false,"instrumentationHook":false,"bundlePagesExternals":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"missingSuspenseWithCSRBailout":true,"optimizeServerReact":true,"useEarlyImport":false,"staleTimes":{"dynamic":30,"static":300},"serverComponentsExternalPackages":["@anthropic-ai/claude-agent-sdk"],"optimizePackageImports":["lucide-react","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"trustHostHeader":false,"isExperimentalCompile":false},"configFileName":"next.config.js"}
|
|
19
19
|
|
|
20
20
|
process.env.__NEXT_PRIVATE_STANDALONE_CONFIG = JSON.stringify(nextConfig)
|
|
21
21
|
|