agentroam-runtime-darwin-arm64 0.2.0-preview.37 → 0.2.0-preview.39
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 +2 -2
- package/package.json +1 -1
- package/runtime/.next/BUILD_ID +1 -1
- package/runtime/.next/app-build-manifest.json +14 -14
- package/runtime/.next/app-path-routes-manifest.json +1 -1
- package/runtime/.next/build-manifest.json +6 -6
- package/runtime/.next/prerender-manifest.json +1 -1
- package/runtime/.next/react-loadable-manifest.json +12 -4
- package/runtime/.next/required-server-files.json +1 -1
- package/runtime/.next/routes-manifest.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 +3 -3
- 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/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/sessions/[id]/fork-at/route.js +1 -0
- package/runtime/.next/server/app/api/sessions/[id]/fork-at/route.js.nft.json +1 -0
- 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 +20 -19
- package/runtime/.next/server/chunks/1322.js +72 -69
- package/runtime/.next/server/chunks/1773.js +38 -38
- package/runtime/.next/server/chunks/2293.js +1 -1
- package/runtime/.next/server/chunks/366.js +1 -0
- package/runtime/.next/server/chunks/5303.js +1 -1
- package/runtime/.next/server/chunks/8532.js +1 -1
- package/runtime/.next/server/middleware-build-manifest.js +1 -1
- package/runtime/.next/server/middleware-react-loadable-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/326.567dcaf52a3fbf80.js +1 -0
- package/runtime/.next/static/chunks/693-41d7c8e27a8513d1.js +1 -0
- package/runtime/.next/static/chunks/784.1394d774230a5516.js +1 -0
- package/runtime/.next/static/chunks/834.801325c7f934eee6.js +1 -0
- package/runtime/.next/static/chunks/940.56137a61c838fa42.js +1 -0
- package/runtime/.next/static/chunks/95.ff2ef92ac2b1c909.js +1 -0
- package/runtime/.next/static/chunks/app/web/{error-7bdc841dab0f7345.js → error-f69dbd3718cb2107.js} +1 -1
- package/runtime/.next/static/chunks/app/web/layout-e0dd41d18df8ee9e.js +1 -0
- package/runtime/.next/static/chunks/app/web/page-f9926cbf4c1badd4.js +1 -0
- package/runtime/.next/static/chunks/{main-app-851d67ddcf02e2c2.js → main-app-d527fa0b25a0c755.js} +1 -1
- package/runtime/.next/static/chunks/webpack-d4e32619d2ce6d30.js +1 -0
- package/runtime/.next/static/css/e87416656ec8a57e.css +1 -0
- package/runtime/lib/remote-control/helper-manager.mjs +4 -1
- package/runtime/lib/remote-control/remote-authorization.mjs +21 -7
- package/runtime/native/AgentRoam Remote Desktop.app/Contents/MacOS/agentroam-remote-desktop +0 -0
- package/runtime/node_modules/.package-lock.json +11 -11
- package/runtime/node_modules/@agent/core/dist/index.js +123 -9
- package/runtime/node_modules/@agent/native-runtime/dist/index.js +141 -35
- package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/bridge.mjs +77 -76
- package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/browser-sdk.js +48 -48
- package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/core-2haqfy07.mjs +33 -0
- package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/core-a92dt75k.mjs +40 -0
- package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/core.mjs +17 -17
- package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/manifest.json +19 -25
- package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/manifest.zst.json +23 -29
- package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/package.json +12 -12
- package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/sdk.mjs +53 -53
- package/runtime/package-lock.json +35 -35
- package/runtime/server.js +1 -1
- package/runtime/webapp/dist/assets/App-COIcZZvf.js +487 -0
- package/runtime/webapp/dist/assets/{App-CMOzoP5A.css → App-iUeP1CBo.css} +1 -1
- package/runtime/webapp/dist/assets/{abnfDiagram-VCTEODGH-CEAlrV9-.js → abnfDiagram-VCTEODGH-d4urtMQU.js} +1 -1
- package/runtime/webapp/dist/assets/{arc-CGetF_lO.js → arc-DiQEpEJQ.js} +1 -1
- package/runtime/webapp/dist/assets/{architectureDiagram-5GKGNRK7-BVksDtm9.js → architectureDiagram-5GKGNRK7-CWYKGqND.js} +1 -1
- package/runtime/webapp/dist/assets/{blockDiagram-I7D4REHJ-BvCo3epW.js → blockDiagram-I7D4REHJ-J2I0b5Zn.js} +1 -1
- package/runtime/webapp/dist/assets/{c4Diagram-7LVT6UL2-DwUEj82r.js → c4Diagram-7LVT6UL2-C-0xWeN3.js} +1 -1
- package/runtime/webapp/dist/assets/channel-B6S3kcST.js +1 -0
- package/runtime/webapp/dist/assets/{chunk-2Q5K7J3B-BQmtZUl-.js → chunk-2Q5K7J3B-CqodmK6L.js} +1 -1
- package/runtime/webapp/dist/assets/{chunk-5VM5RSS4-BXDY0cCC.js → chunk-5VM5RSS4-DClUnQcr.js} +1 -1
- package/runtime/webapp/dist/assets/{chunk-F27PBJKO-BPhfHsOp.js → chunk-F27PBJKO-CpaDg7Bg.js} +1 -1
- package/runtime/webapp/dist/assets/{chunk-IMKFNOWR-Dw-LyvaC.js → chunk-IMKFNOWR-CTIf9EjK.js} +1 -1
- package/runtime/webapp/dist/assets/{chunk-JWPE2WC7-Cdi61XTf.js → chunk-JWPE2WC7-DKalSWMm.js} +1 -1
- package/runtime/webapp/dist/assets/{chunk-POPQ4Y6H-eqgC5BfH.js → chunk-POPQ4Y6H-69MmeyRW.js} +1 -1
- package/runtime/webapp/dist/assets/{chunk-SVP7TREG-Dyzqf0xA.js → chunk-SVP7TREG-DCXWXzhU.js} +1 -1
- package/runtime/webapp/dist/assets/{chunk-TICWLB2K-DMy_FAyQ.js → chunk-TICWLB2K-B5nbTEng.js} +1 -1
- package/runtime/webapp/dist/assets/{chunk-XXDRQBXY-Dc3ya8KM.js → chunk-XXDRQBXY-DsJvkUuN.js} +1 -1
- package/runtime/webapp/dist/assets/classDiagram-ZZMXUADV-CyUA2YaV.js +1 -0
- package/runtime/webapp/dist/assets/classDiagram-v2-VYDZK3BY-CyUA2YaV.js +1 -0
- package/runtime/webapp/dist/assets/codeSyntax-DJH88FPL.js +5 -0
- package/runtime/webapp/dist/assets/{cose-bilkent-JH36ORCC-8SpbJGQ_.js → cose-bilkent-JH36ORCC-BamzQ_e_.js} +1 -1
- package/runtime/webapp/dist/assets/{cynefin-OW5HDTMX-DZ8NcP4L.js → cynefin-OW5HDTMX-BI_j1tbW.js} +1 -1
- package/runtime/webapp/dist/assets/{cynefinDiagram-5FMLGOSQ-C-g805uS.js → cynefinDiagram-5FMLGOSQ-DuxMrVM2.js} +1 -1
- package/runtime/webapp/dist/assets/{dagre-GXQ25YYZ-Cr8OiP_4.js → dagre-GXQ25YYZ-Y9_ne36w.js} +1 -1
- package/runtime/webapp/dist/assets/{diagram-S7CK7UJ4-Be71Foqh.js → diagram-S7CK7UJ4-DIIjO29m.js} +1 -1
- package/runtime/webapp/dist/assets/{diagram-UQ7AKVKN-CeDsu1RS.js → diagram-UQ7AKVKN-C4m2VMIy.js} +1 -1
- package/runtime/webapp/dist/assets/{diagram-VSXAHHWV-CObfkAwP.js → diagram-VSXAHHWV-Cw5aPZ0o.js} +1 -1
- package/runtime/webapp/dist/assets/{diagram-VX7I27RA-B6lAuke7.js → diagram-VX7I27RA-W8nmVcOl.js} +1 -1
- package/runtime/webapp/dist/assets/{diagram-Z3DM3KII-8oGhKMeq.js → diagram-Z3DM3KII-TksnHlQo.js} +1 -1
- package/runtime/webapp/dist/assets/{ebnfDiagram-PWID7BFC-DmiqrULj.js → ebnfDiagram-PWID7BFC-B3WM1b4a.js} +1 -1
- package/runtime/webapp/dist/assets/{erDiagram-RLTQ6QDP-BB_7Zdd4.js → erDiagram-RLTQ6QDP-BWctPuya.js} +1 -1
- package/runtime/webapp/dist/assets/{flowDiagram-HODETNUW-DbuKFxoO.js → flowDiagram-HODETNUW-BG5RMrLN.js} +1 -1
- package/runtime/webapp/dist/assets/{ganttDiagram-EL5Y4UJY-DAM3Gwd_.js → ganttDiagram-EL5Y4UJY-CPcR7Kn_.js} +1 -1
- package/runtime/webapp/dist/assets/{gitGraphDiagram-WWUBYQGX-Ci91dL5m.js → gitGraphDiagram-WWUBYQGX-Sg6KChEd.js} +1 -1
- package/runtime/webapp/dist/assets/{index-NmsboYZi.css → index-CtJgsVah.css} +1 -1
- package/runtime/webapp/dist/assets/{index-ZpxfzUdy.js → index-tQnPGo1_.js} +4 -4
- package/runtime/webapp/dist/assets/{infoDiagram-27XIBGKW-D717Ys7n.js → infoDiagram-27XIBGKW-BvrtvnrY.js} +1 -1
- package/runtime/webapp/dist/assets/{ishikawaDiagram-5VMMS53U-BF6gmyPX.js → ishikawaDiagram-5VMMS53U-Bz-dZQLJ.js} +1 -1
- package/runtime/webapp/dist/assets/{journeyDiagram-3NMN7TZE-B6ZY-IXx.js → journeyDiagram-3NMN7TZE-Cb4s9jRE.js} +1 -1
- package/runtime/webapp/dist/assets/{kanban-definition-UXKFOSKX-DH3FR2sI.js → kanban-definition-UXKFOSKX-IjMPUHg9.js} +1 -1
- package/runtime/webapp/dist/assets/{layout-BOnxGXiM.js → layout-DHjqr0PJ.js} +1 -1
- package/runtime/webapp/dist/assets/{linear-M6pkDoQ3.js → linear-COctZkFy.js} +1 -1
- package/runtime/webapp/dist/assets/{mermaid.core-DxK9Epxh.js → mermaid.core-BnonXfHT.js} +5 -5
- package/runtime/webapp/dist/assets/{mindmap-definition-YA3MSWOX-DpZ-X_Vf.js → mindmap-definition-YA3MSWOX-hxBlXJJE.js} +1 -1
- package/runtime/webapp/dist/assets/{pegDiagram-XKGWAZYB-ZxLpbtO1.js → pegDiagram-XKGWAZYB-D6KJ8Ftm.js} +1 -1
- package/runtime/webapp/dist/assets/{pieDiagram-E7YTZNPT-B26_pDmg.js → pieDiagram-E7YTZNPT-BzKWZmHN.js} +1 -1
- package/runtime/webapp/dist/assets/{quadrantDiagram-AXDQQJYC-C-qB9cbX.js → quadrantDiagram-AXDQQJYC-ZhiPKt96.js} +1 -1
- package/runtime/webapp/dist/assets/{railroadDiagram-O6MQD6OU-C54V-8Ku.js → railroadDiagram-O6MQD6OU-BtKhiOPG.js} +1 -1
- package/runtime/webapp/dist/assets/{requirementDiagram-BXWQKSXE-CaMYVKMk.js → requirementDiagram-BXWQKSXE-OFr_TA8V.js} +1 -1
- package/runtime/webapp/dist/assets/{sankeyDiagram-P5KCCOFB-DsrVKW_h.js → sankeyDiagram-P5KCCOFB-qNTDFxAX.js} +1 -1
- package/runtime/webapp/dist/assets/{sequenceDiagram-WJ2MYXX4-C5ImABz1.js → sequenceDiagram-WJ2MYXX4-B7s5-R4s.js} +1 -1
- package/runtime/webapp/dist/assets/{sizeCapture-INFHLROL-wM9HJhkr.js → sizeCapture-INFHLROL-DdFabbN6.js} +1 -1
- package/runtime/webapp/dist/assets/{stateDiagram-D77RDMKH-BY8hQ5ro.js → stateDiagram-D77RDMKH-CmAN4pX7.js} +1 -1
- package/runtime/webapp/dist/assets/stateDiagram-v2-MP3YSRHH-DsxpCqde.js +1 -0
- package/runtime/webapp/dist/assets/{swimlanes-42K2YHIH-OsTKRKJW.js → swimlanes-42K2YHIH-BQlIJAhf.js} +1 -1
- package/runtime/webapp/dist/assets/swimlanesDiagram-VR7AAH4N-tji3GZVz.js +8 -0
- package/runtime/webapp/dist/assets/{timeline-definition-24CTP7MA-DqyQVkVW.js → timeline-definition-24CTP7MA--Y1zJ9mc.js} +1 -1
- package/runtime/webapp/dist/assets/{vennDiagram-4TSXK5OY-Di3KXYdD.js → vennDiagram-4TSXK5OY-CUn6FScx.js} +1 -1
- package/runtime/webapp/dist/assets/{wardleyDiagram-VM6X3IG4-CnJpZdMd.js → wardleyDiagram-VM6X3IG4-Bbz-WBd5.js} +1 -1
- package/runtime/webapp/dist/assets/{web-BMb61xwV.js → web-DzBEnE5q.js} +1 -1
- package/runtime/webapp/dist/assets/{web-eq1eso0Y.js → web-harvpkJj.js} +1 -1
- package/runtime/webapp/dist/assets/{xychartDiagram-S5SC5T6Z-frC_Dy5B.js → xychartDiagram-S5SC5T6Z-RA9edGdQ.js} +1 -1
- package/runtime/webapp/dist/index.html +2 -2
- package/runtime/ws-server.mjs +5 -5
- package/runtime/.next/static/chunks/221.80fc551c3d6118e2.js +0 -1
- package/runtime/.next/static/chunks/326.c10c95f947d32ecb.js +0 -1
- package/runtime/.next/static/chunks/750-1766abd7e24fd1d6.js +0 -1
- package/runtime/.next/static/chunks/942.1dec0ce762e131a5.js +0 -1
- package/runtime/.next/static/chunks/app/web/layout-e5b1780d2961e7c0.js +0 -1
- package/runtime/.next/static/chunks/app/web/page-f5171cee114f2892.js +0 -1
- package/runtime/.next/static/chunks/webpack-3ff471b94db6b1b2.js +0 -1
- package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/core-reghh1vn.mjs +0 -33
- package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/core-tm6xdb2r.mjs +0 -40
- package/runtime/webapp/dist/assets/App-DQ5fJODJ.js +0 -476
- package/runtime/webapp/dist/assets/channel-BjAaNinW.js +0 -1
- package/runtime/webapp/dist/assets/classDiagram-ZZMXUADV-BA6foNu5.js +0 -1
- package/runtime/webapp/dist/assets/classDiagram-v2-VYDZK3BY-BA6foNu5.js +0 -1
- package/runtime/webapp/dist/assets/stateDiagram-v2-MP3YSRHH-D7wp4Sey.js +0 -1
- package/runtime/webapp/dist/assets/swimlanesDiagram-VR7AAH4N-Dq79H5La.js +0 -8
- /package/runtime/.next/static/{ENg3PaHjA_727MHwcEIkE → BmUH3xLHQfGkG3yzEK37i}/_buildManifest.js +0 -0
- /package/runtime/.next/static/{ENg3PaHjA_727MHwcEIkE → BmUH3xLHQfGkG3yzEK37i}/_ssgManifest.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(()=>{var e={};e.id=3541,e.ids=[3541],e.modules={5890:e=>{"use strict";e.exports=require("better-sqlite3")},2934:e=>{"use strict";e.exports=require("next/dist/client/components/action-async-storage.external.js")},4580:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external.js")},5869:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},399:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},9801:e=>{"use strict";e.exports=require("os")},7718:e=>{"use strict";e.exports=require("node:child_process")},6005:e=>{"use strict";e.exports=require("node:crypto")},5673:e=>{"use strict";e.exports=require("node:events")},7561:e=>{"use strict";e.exports=require("node:fs")},3977:e=>{"use strict";e.exports=require("node:fs/promises")},8849:e=>{"use strict";e.exports=require("node:http")},2286:e=>{"use strict";e.exports=require("node:https")},2033:e=>{"use strict";e.exports=require("node:module")},7503:e=>{"use strict";e.exports=require("node:net")},612:e=>{"use strict";e.exports=require("node:os")},9411:e=>{"use strict";e.exports=require("node:path")},1747:e=>{"use strict";e.exports=require("node:readline")},1041:e=>{"use strict";e.exports=require("node:url")},6652:(e,t,r)=>{"use strict";r.r(t),r.d(t,{GlobalError:()=>o.a,__next_app__:()=>p,originalPathname:()=>u,pages:()=>c,routeModule:()=>b,tree:()=>d}),r(6742),r(9257),r(489),r(4972),r(3028);var a=r(1772),i=r(5042),n=r(5663),o=r.n(n),s=r(4812),l={};for(let e in s)0>["default","tree","pages","GlobalError","originalPathname","__next_app__","routeModule"].indexOf(e)&&(l[e]=()=>s[e]);r.d(t,l);let d=["",{children:["web",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(r.bind(r,6742)),"/Users/caoqu/.codex/worktrees/npm-preview-37/customer-agent/packages/server/app/web/page.tsx"]}]},{layout:[()=>Promise.resolve().then(r.bind(r,9257)),"/Users/caoqu/.codex/worktrees/npm-preview-37/customer-agent/packages/server/app/web/layout.tsx"],error:[()=>Promise.resolve().then(r.bind(r,489)),"/Users/caoqu/.codex/worktrees/npm-preview-37/customer-agent/packages/server/app/web/error.tsx"]}]},{layout:[()=>Promise.resolve().then(r.bind(r,4972)),"/Users/caoqu/.codex/worktrees/npm-preview-37/customer-agent/packages/server/app/layout.tsx"],"not-found":[()=>Promise.resolve().then(r.t.bind(r,3028,23)),"next/dist/client/components/not-found-error"]}],c=["/Users/caoqu/.codex/worktrees/npm-preview-37/customer-agent/packages/server/app/web/page.tsx"],u="/web/page",p={require:r,loadChunk:()=>Promise.resolve()},b=new a.AppPageRouteModule({definition:{kind:i.x.APP_PAGE,page:"/web/page",pathname:"/web",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:d}})},5530:(e,t,r)=>{Promise.resolve().then(r.t.bind(r,1782,23)),Promise.resolve().then(r.t.bind(r,8949,23)),Promise.resolve().then(r.t.bind(r,6569,23)),Promise.resolve().then(r.t.bind(r,8718,23)),Promise.resolve().then(r.t.bind(r,7415,23)),Promise.resolve().then(r.t.bind(r,8781,23))},5075:(e,t,r)=>{Promise.resolve().then(r.bind(r,8383))},9359:()=>{},454:(e,t,r)=>{Promise.resolve().then(r.bind(r,5071))},2027:()=>{},1166:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return n}});let a=r(7094);r(3517),r(5921);let i=a._(r(4079));function n(e,t){var r;let a={loading:e=>{let{error:t,isLoading:r,pastDelay:a}=e;return null}};"function"==typeof e&&(a.loader=e);let n={...a,...t};return(0,i.default)({...n,modules:null==(r=n.loadableGenerated)?void 0:r.modules})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},1803:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"BailoutToCSR",{enumerable:!0,get:function(){return i}});let a=r(93);function i(e){let{reason:t,children:r}=e;throw new a.BailoutToCSRError(t)}},4079:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return d}});let a=r(3517),i=r(5921),n=r(1803),o=r(5259);function s(e){return{default:e&&"default"in e?e.default:e}}let l={loader:()=>Promise.resolve(s(()=>null)),loading:null,ssr:!0},d=function(e){let t={...l,...e},r=(0,i.lazy)(()=>t.loader().then(s)),d=t.loading;function c(e){let s=d?(0,a.jsx)(d,{isLoading:!0,pastDelay:!0,error:null}):null,l=t.ssr?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(o.PreloadCss,{moduleIds:t.modules}),(0,a.jsx)(r,{...e})]}):(0,a.jsx)(n.BailoutToCSR,{reason:"next/dynamic",children:(0,a.jsx)(r,{...e})});return(0,a.jsx)(i.Suspense,{fallback:s,children:l})}return c.displayName="LoadableComponent",c}},5259:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PreloadCss",{enumerable:!0,get:function(){return n}});let a=r(3517),i=r(4580);function n(e){let{moduleIds:t}=e,r=(0,i.getExpectedRequestStore)("next/dynamic css"),n=[];if(r.reactLoadableManifest&&t){let e=r.reactLoadableManifest;for(let r of t){if(!e[r])continue;let t=e[r].files.filter(e=>e.endsWith(".css"));n.push(...t)}}return 0===n.length?null:(0,a.jsx)(a.Fragment,{children:n.map(e=>(0,a.jsx)("link",{precedence:"dynamic",rel:"stylesheet",href:r.assetPrefix+"/_next/"+encodeURI(e),as:"style"},e))})}},8383:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>i});var a=r(3517);function i({reset:e}){return(0,a.jsxs)("main",{role:"alert",style:{padding:32,fontFamily:"system-ui",lineHeight:1.8},children:[a.jsx("h1",{children:"页面加载失败"}),a.jsx("p",{children:"请重试;如果仍无法打开,请检查网络,并确认电脑上的 AgentRoam 正在运行。"}),a.jsx("button",{type:"button",onClick:e,children:"重试"})," ",a.jsx("button",{type:"button",onClick:()=>window.location.reload(),children:"刷新页面"})]})}},5071:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>J});var a=r(3517),i=r(1166),n=r.n(i),o=r(5921);let s=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),l=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim();var d={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let c=(0,o.forwardRef)(({color:e="currentColor",size:t=24,strokeWidth:r=2,absoluteStrokeWidth:a,className:i="",children:n,iconNode:s,...c},u)=>(0,o.createElement)("svg",{ref:u,...d,width:t,height:t,stroke:e,strokeWidth:a?24*Number(r)/Number(t):r,className:l("lucide",i),...c},[...s.map(([e,t])=>(0,o.createElement)(e,t)),...Array.isArray(n)?n:[n]])),u=(e,t)=>{let r=(0,o.forwardRef)(({className:r,...a},i)=>(0,o.createElement)(c,{ref:i,iconNode:t,className:l(`lucide-${s(e)}`,r),...a}));return r.displayName=`${e}`,r},p=u("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]),b=u("MonitorUp",[["path",{d:"m9 10 3-3 3 3",key:"11gsxs"}],["path",{d:"M12 13V7",key:"h0r20n"}],["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"M8 21h8",key:"1ev6f3"}]]),f=u("LayoutGrid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]),h=u("Bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]),m=u("PanelRight",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}]]),x=u("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),g=u("Smartphone",[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]]),v=u("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]),w={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 y(){let[e,t]=(0,o.useState)(!1),[r,i]=(0,o.useState)(!1),n=(0,o.useRef)(null);return(0,a.jsxs)(a.Fragment,{children:[e&&a.jsx("button",{type:"button",className:"file-drawer-toggle pwa-install-button",style:w,title:"添加到主屏幕","aria-label":"添加到主屏幕",onClick:()=>window.dispatchEvent(new Event("agentroam:pwa-install")),children:(0,a.jsxs)("span",{style:{position:"relative",display:"flex"},children:[a.jsx(g,{size:17,"aria-hidden":"true"}),a.jsx(v,{size:9,strokeWidth:3,"aria-hidden":"true",style:{position:"absolute",right:-4,bottom:-2}})]})}),r&&(0,a.jsxs)("dialog",{ref:n,onClose:()=>i(!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:[a.jsx("h2",{id:"pwa-install-title",style:{margin:"0 0 12px",fontSize:18},children:"添加到主屏幕"}),a.jsx("p",{children:"iPhone / iPad:在 Safari 点击分享按钮,选择“添加到主屏幕”,再点“添加”。"}),a.jsx("p",{children:"Android:打开浏览器菜单,选择“安装应用”或“添加到主屏幕”。"}),a.jsx("p",{style:{color:"var(--ui-muted-text)"},children:"浏览器需要你确认,网页无法自动添加。从主屏幕打开后,如提示未配对,请重新扫码。"}),a.jsx("button",{type:"button",style:{...w,width:"100%",padding:"10px 14px",borderStyle:"solid",borderWidth:1,borderRadius:8,cursor:"pointer"},onClick:()=>n.current?.close(),children:"知道了"})]})]})}let k=["codex","claude agents","opencode","agent-tui"],j={watcherFrame:4,producerFrame:5};function C({children:e}){let t=function(){let[e,t]=(0,o.useState)("loading"),[r,a]=(0,o.useState)(null),[i]=(0,o.useState)("same-origin"),[n,s]=(0,o.useState)(null),l=(0,o.useCallback)(async()=>{t("loading"),s(null);try{let e=await fetch("/api/web-console/bootstrap",{credentials:"same-origin",cache:"no-store"});if(401===e.status||423===e.status){window.location.reload();return}if(!e.ok)throw Error(`HTTP ${e.status}`);let r=await e.json();a(r.user),t("authenticated")}catch{s("无法连接远程控制台"),t("needsLogin")}},[]),d=(0,o.useCallback)(async()=>{let e=await fetch("/api/web-console/bootstrap",{credentials:"same-origin",cache:"no-store"});if((401===e.status||423===e.status)&&window.location.reload(),!e.ok)throw Error("bootstrap failed");let r=await e.json();return a(r.user),t("authenticated"),r.wsNonce},[]),c=(0,o.useCallback)(async()=>(window.location.reload(),!1),[]);return{status:e,user:r,error:n,csrfToken:i,setup:c,login:c,logout:(0,o.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():s("退出失败,请重试")},[]),refresh:l,getWsNonce:d}}(),[r]=(0,o.useState)(()=>Date.now()),[i,n]=(0,o.useState)(()=>Date.now()),[s,l]=(0,o.useState)(!1),d="authenticated"===t.status,c=d&&s,u=(0,o.useCallback)(()=>l(!0),[]),b=t.error||"数字人核心正在就绪";return(0,a.jsxs)(a.Fragment,{children:[d?e(t,u):null,(0,a.jsxs)("main",{className:`neural-boot${c?" is-ready":""}${t.error?" is-error":""}`,role:t.error?"alert":"status","aria-live":"polite","aria-busy":!c&&!t.error,"aria-hidden":c,children:[a.jsx("div",{className:"neural-grid","aria-hidden":"true"}),a.jsx("div",{className:"neural-rail neural-rail-left","aria-hidden":"true"}),a.jsx("div",{className:"neural-rail neural-rail-right","aria-hidden":"true"}),(0,a.jsxs)("section",{className:"neural-content",children:[(0,a.jsxs)("div",{className:"neural-brand","aria-hidden":"true",children:[a.jsx("span",{className:"neural-brand-signal"}),a.jsx("span",{children:"AgentRoam"}),a.jsx("small",{children:"NEURAL LINK"})]}),(0,a.jsxs)("div",{className:"neural-portrait","aria-hidden":"true",children:[a.jsx("span",{className:"neural-ring neural-ring-outer"}),a.jsx("span",{className:"neural-ring neural-ring-inner"}),a.jsx("span",{className:"neural-axis neural-axis-x"}),a.jsx("span",{className:"neural-axis neural-axis-y"}),a.jsx("span",{className:"neural-node neural-node-one"}),a.jsx("span",{className:"neural-node neural-node-two"}),a.jsx("span",{className:"neural-node neural-node-three"}),a.jsx("span",{className:"neural-node neural-node-four"}),a.jsx("div",{className:"neural-avatar-frame",children:(0,a.jsxs)("div",{className:"neural-avatar",children:[a.jsx(h,{className:"neural-avatar-icon",size:66,strokeWidth:1.3}),a.jsx("span",{className:"neural-visor"})]})})]}),(0,a.jsxs)("div",{className:"neural-copy",children:[a.jsx("strong",{children:"正在唤醒工作区"}),a.jsx("span",{children:b})]}),a.jsx("div",{className:"neural-progress","aria-hidden":"true",children:a.jsx("span",{})}),(0,a.jsxs)("div",{className:"neural-meta","aria-hidden":"true",children:[a.jsx("span",{children:"AGENT CORE"}),(0,a.jsxs)("span",{className:"neural-meta-time",children:["T+",Math.max(0,Math.floor((i-r)/1e3)).toString().padStart(2,"0"),"S"]})]}),t.error&&a.jsx("button",{type:"button",className:"neural-retry","aria-label":"重试连接",title:"重试连接",onClick:()=>void t.refresh(),children:a.jsx(p,{size:18,"aria-hidden":"true"})})]})]})]})}let S=u("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]),N=u("TextCursorInput",[["path",{d:"M5 4h1a3 3 0 0 1 3 3 3 3 0 0 1 3-3h1",key:"18xjzo"}],["path",{d:"M13 20h-1a3 3 0 0 1-3-3 3 3 0 0 1-3 3H5",key:"fj48gi"}],["path",{d:"M5 16H4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h1",key:"1n9rhb"}],["path",{d:"M13 8h7a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-7",key:"13ksps"}],["path",{d:"M9 7v10",key:"1vc8ob"}]]),T=u("Pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]),P=u("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]),z=u("GripVertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]),M=u("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]),R=u("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);function E(e,t,r){let a=e.findIndex(e=>e.id===t),i=e.findIndex(e=>e.id===r);if(a<0||i<0||a===i)return[...e];let n=[...e],[o]=n.splice(a,1);return n.splice(i,0,o),n}function I(e,t="function"==typeof crypto.randomUUID?crypto.randomUUID():Array.from(crypto.getRandomValues(new Uint8Array(16)),e=>e.toString(16).padStart(2,"0")).join("")){return{id:t,command:e.trim()}}function D({commands:e,onChange:t,onExecute:r}){let[i,n]=(0,o.useState)(null),[s,l]=(0,o.useState)(""),[d,c]=(0,o.useState)(null),u=(0,o.useRef)(null),p=()=>{if(!i)return;let r=i.value.trim();return r?r.length>1e3?l("命令最多 1000 个字符"):/[\r\n\0]/.test(r)?l("命令只能包含一行"):void(i.id?t(e.map(e=>e.id===i.id?{...e,command:r}:e)):t([...e,I(r)]),n(null),l("")):l("命令不能为空")},b=(e,t)=>{e.preventDefault(),e.stopPropagation(),u.current=t,c(t),e.currentTarget.setPointerCapture(e.pointerId)},f=r=>{if(!u.current)return;let a=document.elementFromPoint(r.clientX,r.clientY)?.closest("[data-pinned-id]"),i=a?.dataset.pinnedId;i&&i!==u.current&&t(E(e,u.current,i))},h=e=>{e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId),u.current=null,c(null)},m=(r,a)=>{if("ArrowUp"!==r.key&&"ArrowDown"!==r.key)return;r.preventDefault();let i=e.findIndex(e=>e.id===a),n=e[i+("ArrowUp"===r.key?-1:1)];n&&t(E(e,a,n.id))};return(0,a.jsxs)("section",{className:"pinned-commands","aria-labelledby":"pinned-command-title",children:[(0,a.jsxs)("div",{className:"pinned-command-head",children:[a.jsx("span",{id:"pinned-command-title",children:"置顶命令"}),a.jsx("button",{className:"history-icon-button",onClick:()=>{n({id:null,value:""}),l("")},"aria-label":"新增置顶命令",title:"新增置顶命令",children:a.jsx(v,{size:14,"aria-hidden":"true"})})]}),e.map(o=>i?.id===o.id?a.jsx(A,{editor:i,error:s,onChange:e=>{n({...i,value:e}),l("")},onSave:p,onCancel:()=>{n(null),l("")}},o.id):(0,a.jsxs)("div",{className:`pinned-command-row${d===o.id?" pinned-command-dragging":""}`,"data-pinned-id":o.id,role:"button",tabIndex:0,onClick:()=>r(o.command),onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),r(o.command))},children:[a.jsx("button",{className:"pinned-command-grip",onPointerDown:e=>b(e,o.id),onPointerMove:f,onPointerUp:h,onPointerCancel:h,onKeyDown:e=>m(e,o.id),onClick:e=>e.stopPropagation(),"aria-label":`调整 ${o.command} 的顺序`,title:"拖动排序,或按上下方向键",children:a.jsx(z,{size:14,"aria-hidden":"true"})}),a.jsx("code",{children:o.command}),(0,a.jsxs)("div",{className:"pinned-command-actions",onClick:e=>e.stopPropagation(),children:[a.jsx("button",{className:"history-icon-button",onClick:()=>{n({id:o.id,value:o.command}),l("")},"aria-label":`编辑 ${o.command}`,title:"编辑",children:a.jsx(M,{size:12,"aria-hidden":"true"})}),a.jsx("button",{className:"history-icon-button history-icon-danger",onClick:()=>t(e.filter(e=>e.id!==o.id)),"aria-label":`删除 ${o.command}`,title:"删除",children:a.jsx(P,{size:12,"aria-hidden":"true"})})]})]},o.id)),i?.id===null&&a.jsx(A,{editor:i,error:s,onChange:e=>{n({...i,value:e}),l("")},onSave:p,onCancel:()=>{n(null),l("")}})]})}function A({editor:e,error:t,onChange:r,onSave:i,onCancel:n}){return(0,a.jsxs)("div",{className:"pinned-command-editor",children:[a.jsx("input",{autoFocus:!0,value:e.value,maxLength:1e3,onChange:e=>r(e.target.value),onKeyDown:e=>{"Enter"===e.key&&i(),"Escape"===e.key&&n()},"aria-label":e.id?"编辑置顶命令":"新增置顶命令"}),a.jsx("button",{className:"history-icon-button",onClick:i,"aria-label":"保存命令",title:"保存",children:a.jsx(R,{size:13,"aria-hidden":"true"})}),a.jsx("button",{className:"history-icon-button",onClick:n,"aria-label":"取消编辑",title:"取消",children:a.jsx(x,{size:13,"aria-hidden":"true"})}),t&&a.jsx("small",{role:"alert",children:t})]})}async function O(e){let t="undefined"==typeof navigator?void 0:navigator.clipboard;if("function"==typeof t?.writeText&&("undefined"==typeof isSecureContext||isSecureContext))try{return await t.writeText(e),!0}catch{}return function(e){if("undefined"==typeof document||!document.body||"function"!=typeof document.execCommand)return!1;let t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),Object.assign(t.style,{position:"fixed",top:"0",left:"-9999px",width:"1px",height:"1px",fontSize:"16px",opacity:"0",pointerEvents:"none"}),document.body.appendChild(t);try{return t.focus(),t.select(),t.setSelectionRange(0,t.value.length),document.execCommand("copy")}catch{return!1}finally{t.remove()}}(e)}function _({csrfToken:e,terminalId:t,pinnedCommands:r,onPinnedCommandsChange:i,onFill:n,onExecute:s}){let[l,d]=(0,o.useState)([]),[c,u]=(0,o.useState)(""),[b,f]=(0,o.useState)(""),h=(0,o.useCallback)(async()=>{let e=new URLSearchParams({q:c,limit:"200"}),t=await fetch(`/api/web-console/history?${e}`,{credentials:"same-origin"});t.ok&&d((await t.json()).history)},[c]),m=async t=>{await fetch("/api/web-console/history",{method:"DELETE",credentials:"same-origin",headers:{"content-type":"application/json","x-csrf-token":e},body:JSON.stringify({id:t})}),h()},x=e=>{t&&n(e)},g=(0,o.useCallback)(e=>{"[REDACTED]"===e||r.some(t=>t.command===e)||i([...r,I(e)])},[i,r]),v=async e=>{f(await O(e)?"已复制命令":"复制失败,请长按命令手动复制")};return(0,a.jsxs)("div",{className:"history-panel",children:[a.jsx(D,{commands:r,onChange:i,onExecute:s}),(0,a.jsxs)("div",{className:"history-search",children:[a.jsx("input",{value:c,onChange:e=>u(e.target.value),placeholder:"搜索命令"}),a.jsx("button",{className:"history-icon-button",onClick:h,"aria-label":"刷新历史",title:"刷新历史",children:a.jsx(p,{size:13,"aria-hidden":"true"})})]}),b&&a.jsx("div",{className:"terminal-clipboard-notice",role:"status",children:b}),l.map(e=>(0,a.jsxs)("div",{className:`history-item${t?"":" history-item-disabled"}`,role:"button",tabIndex:t?0:-1,onClick:()=>x(e.command),onKeyDown:r=>{r.target===r.currentTarget&&("Enter"===r.key||" "===r.key)&&t&&(r.preventDefault(),x(e.command))},children:[a.jsx("code",{children:e.command}),(0,a.jsxs)("small",{children:[e.cwd," \xb7 ",new Date(e.executedAt).toLocaleString()]}),(0,a.jsxs)("div",{className:"history-item-actions",onClick:e=>e.stopPropagation(),onPointerDown:e=>e.stopPropagation(),children:[a.jsx("button",{className:"history-icon-button",onClick:()=>void v(e.command),"aria-label":"复制命令",title:"复制",children:a.jsx(S,{size:12,"aria-hidden":"true"})}),a.jsx("button",{className:"history-icon-button",disabled:!t,onClick:()=>x(e.command),"aria-label":"填入命令",title:"填入",children:a.jsx(N,{size:12,"aria-hidden":"true"})}),a.jsx("button",{className:"history-icon-button",disabled:"[REDACTED]"===e.command||r.some(t=>t.command===e.command),onClick:()=>g(e.command),"aria-label":"置顶命令",title:"置顶",children:a.jsx(T,{size:12,"aria-hidden":"true"})}),a.jsx("button",{className:"history-icon-button history-icon-danger",onClick:()=>m(e.id),"aria-label":"删除历史",title:"删除",children:a.jsx(P,{size:12,"aria-hidden":"true"})})]})]},e.id)),!l.length&&a.jsx("div",{className:"history-empty",children:"暂无 Shell 命令历史"}),!t&&!!l.length&&a.jsx("div",{className:"history-empty",children:"请先打开一个终端页签"})]})}var L=r(5878);let q=[{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"}}],B="pearl",U=Object.fromEntries(q.map(e=>[e.id,e])),W={dark:"noir",black:"noir",gray:"noir",blue:"noir",red:"noir",yellow:"noir",green:"noir",white:"pearl"};function $(e){if(e&&e in U)return U[e];let t=e?W[e]:void 0;return t?U[t]:U[B]}function H({username:e,themeId:t,onThemeChange:r,accent:i,accentText:n}){let[s,l]=(0,o.useState)(!1),d=(0,o.useRef)(null),c=(0,o.useRef)(null),u=(0,o.useRef)(null),[p,b]=(0,o.useState)(null),[f,h]=(0,o.useState)(null),m=(e.trim()[0]??"?").toUpperCase();return(0,a.jsxs)("div",{ref:d,className:"theme-picker",children:[a.jsx("button",{ref:c,type:"button",className:"theme-avatar","aria-label":`换肤(${e})`,title:e,"aria-expanded":s,onPointerDown:e=>e.stopPropagation(),onClick:e=>{e.preventDefault(),e.stopPropagation(),l(e=>!e)},style:{border:`1px solid ${i}`,background:i,color:n},children:m}),s&&p&&f&&(0,L.createPortal)((0,a.jsxs)("div",{ref:u,className:"theme-popover",role:"dialog","aria-label":"选择皮肤",style:{position:"fixed",top:p.top,left:p.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:[a.jsx("div",{style:{fontSize:10,color:"var(--ui-connection-text, #777b8c)",margin:"2px 4px 6px",letterSpacing:.5},children:"皮肤"}),a.jsx("div",{style:{display:"flex",flexDirection:"column",gap:2},children:q.map(e=>{let i=e.id===t;return(0,a.jsxs)("button",{type:"button",className:"theme-popover-item","aria-label":e.label,"aria-pressed":i,onPointerDown:e=>e.stopPropagation(),onClick:()=>{r(e.id),l(!1)},style:{background:i?"color-mix(in srgb, var(--ui-tab-accent, #7aa2f7) 14%, transparent)":"transparent"},children:[a.jsx("span",{style:{width:18,height:18,borderRadius:5,flexShrink:0,background:`linear-gradient(135deg, ${e.preview[0]} 55%, ${e.preview[1]} 55%)`,boxShadow:"inset 0 0 0 1px rgba(128,128,160,.25)"}}),a.jsx("span",{style:{flex:1,textAlign:"left",fontSize:12,fontWeight:i?600:400,color:i?"var(--ui-tab-active-text, #edf0f7)":"var(--ui-tab-text, #8f93a4)"},children:e.label}),i&&a.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:a.jsx("path",{d:"m5 12 4 4L19 6"})})]},e.id)})})]}),f)]})}let F=n()(async()=>{},{loadableGenerated:{modules:["app/web/page.tsx -> ./TerminalPane"]},ssr:!1}),V=n()(async()=>{},{loadableGenerated:{modules:["app/web/page.tsx -> ./FileTree"]},ssr:!1}),G=n()(async()=>{},{loadableGenerated:{modules:["app/web/page.tsx -> ./FilePreview"]},ssr:!1}),X=n()(async()=>{},{loadableGenerated:{modules:["app/web/page.tsx -> ./AiHubPane"]},ssr:!1}),K=n()(async()=>{},{loadableGenerated:{modules:["app/web/page.tsx -> ./FlowStudioPane"]},ssr:!1});function J(){return a.jsx(C,{children:(e,t)=>a.jsx(et,{auth:e,onWorkspaceReady:t})})}let Y={id:"webapp-agent",title:"智能助手",kind:"webapp"},Q={id:"ai-hub",title:"AI Hub",kind:"aihub"},Z={id:"flow-studio",title:"Flow Studio",kind:"flowstudio"};function ee(){return"undefined"==typeof document?B:$(document.getElementById("web-theme-root")?.dataset.webTheme).id}function et({auth:e,onWorkspaceReady:t}){let r=(0,o.useRef)(null),i=(0,o.useRef)(()=>{}),{state:n,epoch:s,rpc:l,onEvent:d,onTerminalData:c,onTerminalReset:u,sendTerminalInput:g}=function(e,t,r){let[a,i]=(0,o.useState)({connected:!1,error:null}),[n,s]=(0,o.useState)(0),l=(0,o.useRef)(null),d=(0,o.useRef)(0),c=(0,o.useRef)(new Map),u=(0,o.useRef)([]),p=(0,o.useRef)(0),b=(0,o.useRef)(new Map),f=(0,o.useRef)(new Map),h=(0,o.useRef)(new Map),m=(0,o.useRef)(1e3),x=(0,o.useRef)(!1),g=(0,o.useRef)(null),v=(0,o.useRef)(e),w=(0,o.useRef)(t),y=(0,o.useRef)(r);v.current=e,w.current=t,y.current=r;let k=(0,o.useCallback)((e,t)=>{let r=b.current.get(e);return r||b.current.set(e,r=new Set),r.add(t),()=>r.delete(t)},[]),j=(0,o.useCallback)((e,t)=>{let r=f.current.get(e);return r||f.current.set(e,r=new Set),r.add(t),()=>r.delete(t)},[]),C=(0,o.useCallback)((e,t)=>{let r=h.current.get(e);return r||h.current.set(e,r=new Set),r.add(t),()=>r.delete(t)},[]),S=(0,o.useCallback)((e,t)=>{let r=l.current;if(!r||r.readyState!==WebSocket.OPEN)return!1;let a=new TextEncoder().encode(t),i=new Uint8Array(6+a.byteLength),n=new DataView(i.buffer);return i[0]=1,i[1]=1,n.setUint32(2,e),i.set(a,6),r.send(i),!0},[]),N=(0,o.useCallback)(e=>{let t=l.current;t?.readyState===WebSocket.OPEN?t.send(e):u.current.push(e)},[]),T=(0,o.useCallback)((e,t={},r=15e3)=>new Promise((a,i)=>{if(e.startsWith("browser:")&&l.current?.readyState!==WebSocket.OPEN){i(Object.assign(Error("远程连接已断开,请等待重新连接"),{code:"EOFFLINE"}));return}let n=++p.current,o=setTimeout(()=>{c.current.delete(n),i(Error(`${e} timeout`))},r);c.current.set(n,{resolve:a,reject:i,timer:o,type:e}),N(JSON.stringify({type:e,_req:n,...t}))}),[N]),P=(0,o.useCallback)(async()=>{let e,t;x.current=!1;let r=++d.current;g.current&&(clearInterval(g.current),g.current=null);let a=l.current;if(a){a.onopen=a.onmessage=a.onerror=a.onclose=null;try{a.close()}catch{}}try{e=await w.current()}catch{r===d.current&&y.current();return}if(r===d.current&&!x.current){try{t=new WebSocket(`${"https:"===location.protocol?"wss:":"ws:"}//${location.host}/ws?nonce=${encodeURIComponent(e)}`)}catch(e){i({connected:!1,error:String(e)});return}t.binaryType="arraybuffer",l.current=t,t.onopen=()=>{if(r!==d.current||l.current!==t)return;for(let e of(m.current=1e3,i({connected:!0,error:null}),s(e=>e+1),u.current.splice(0)))t.send(e);let e=Date.now();g.current=setInterval(()=>{if(l.current!==t||t.readyState!==WebSocket.OPEN){clearInterval(g.current),g.current=null;return}if(Date.now()-e>25e3){try{t.close()}catch{}return}try{t.send(JSON.stringify({type:"ping"}))}catch{}},1e4);let a=()=>{e=Date.now()};t.addEventListener("message",a),t.addEventListener("close",()=>t.removeEventListener("message",a),{once:!0})},t.onmessage=e=>{let a;if(r===d.current&&l.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);f.current.get(e)?.forEach(e=>e(t.subarray(6),6===t[1]))}else if(t.byteLength>=6&&1===t[0]&&3===t[1]){let e=new DataView(t.buffer,t.byteOffset,t.byteLength).getUint32(2);h.current.get(e)?.forEach(e=>e())}else v.current(t);return}try{a=JSON.parse(e.data)}catch{return}if("error"===a.type&&null!=a.id){let e=c.current.get(a.id);if(e){c.current.delete(a.id),clearTimeout(e.timer);let t=Object.assign(Error(a.error||"gateway error"),{code:a.code});e.reject(t)}return}if(null!=a.id&&"string"==typeof a.type&&a.type.endsWith(":result")){let e=c.current.get(a.id);e&&(c.current.delete(a.id),clearTimeout(e.timer),e.resolve(a));return}b.current.get(a.type)?.forEach(e=>e(a))}},t.onclose=e=>{if(r!==d.current||l.current!==t)return;for(let[e,t]of(g.current&&(clearInterval(g.current),g.current=null),l.current=null,c.current))t.type.startsWith("browser:")&&(clearTimeout(t.timer),c.current.delete(e),t.reject(Object.assign(Error("远程连接已断开,请重新接管"),{code:"EOFFLINE"})));if(i({connected:!1,error:null}),4001===e.code||4003===e.code){y.current();return}if(x.current)return;let a=m.current;m.current=Math.min(2*a,8e3),setTimeout(()=>{x.current||r!==d.current||P()},a)},t.onerror=()=>{}}},[]);return{state:a,epoch:n,rpc:T,onEvent:k,onTerminalData:j,onTerminalReset:C,sendTerminalInput:S,reconnect:P}}((0,o.useCallback)(e=>{let t=function(e){let t=e instanceof Uint8Array?e:new Uint8Array(e.buffer,e.byteOffset,e.byteLength);if(t.byteLength<10||1!==t[0]||t[1]!==j.watcherFrame&&t[1]!==j.producerFrame)return null;let r=new DataView(t.buffer,t.byteOffset,t.byteLength);return{type:t[1],channelId:r.getUint32(2,!1),sequence:r.getUint32(6,!1),payload:t.subarray(10)}}(e);if(!t||t.type!==j.watcherFrame)return;i.current(t.channelId,t.sequence);let a=t.payload.slice().buffer;r.current?.contentWindow?.postMessage({type:"agent-web-shell:browser-frame:v1",channelId:t.channelId,sequence:t.sequence,data:a},window.location.origin,[a])},[]),e.getWsNonce,e.refresh),v=(0,o.useMemo)(()=>({request:(e,t,r)=>l(e,t,r),subscribe:(e,t)=>d("fs:event",t)}),[d,l]);i.current=(e,t)=>{l("browser:frame-ack",{channelId:e,sequence:t}).catch(()=>void 0)};let[w,C]=(0,o.useState)([{...Y}]);(0,o.useRef)(w).current=w;let[S,N]=(0,o.useState)(Y.id),[T,P]=(0,o.useState)({});(0,o.useRef)(!1),(0,o.useRef)(null);let z=(0,o.useRef)(new Map),M=(0,o.useRef)(new Map),R=(0,o.useCallback)((e,t)=>{z.current.set(e,t);let r=window.setTimeout(()=>{if(z.current.get(e)!==t)return;let r=M.current.get(e);r&&(M.current.delete(e),t(r,!0))},180);return()=>{window.clearTimeout(r),z.current.get(e)===t&&z.current.delete(e)}},[]),E=(0,o.useCallback)(e=>{if(!S||w.find(e=>e.id===S)?.kind)return;let t=z.current.get(S);t?t(e):l("term:input",{id:S,data:`\x15${e}`}).catch(()=>{}),U(!1)},[S,l,w]),[I,D]=(0,o.useState)(!1),[A,O]=(0,o.useState)({}),[L,q]=(0,o.useState)(null),[B,U]=(0,o.useState)(!1),[W,J]=(0,o.useState)("files"),[et,ei]=(0,o.useState)(null),[en,eo]=(0,o.useState)(!0),[es,el]=(0,o.useState)(null),[ed,ec]=(0,o.useState)(!1),[eu,ep]=(0,o.useState)([]),[eb,ef]=(0,o.useState)(k.map((e,t)=>({id:`default-${t+1}`,command:e}))),[eh,em]=(0,o.useState)(ee),[ex,eg]=(0,o.useState)(!1),[ev,ew]=(0,o.useState)(!1),ey=$(eh),ek=(0,o.useRef)(null),[ej,eC]=(0,o.useState)(0),[eS,eN]=(0,o.useState)(!1),eT=(0,o.useRef)(null),eP=(0,o.useRef)(null),ez=(0,o.useCallback)(e=>{r.current?.contentWindow?.postMessage({type:"agent-web-shell:skin:v1",skin:e},window.location.origin)},[]);(0,o.useRef)(0);let eM=S?T[S]??null:null;(0,o.useCallback)(t=>{fetch("/api/web-console/preferences",{method:"PATCH",credentials:"same-origin",headers:{"content-type":"application/json","x-csrf-token":e.csrfToken},body:JSON.stringify(t)}).catch(()=>{})},[e.csrfToken]),(0,o.useCallback)(t=>{e.csrfToken&&fetch("/api/web-console/device-state",{method:"PUT",credentials:"same-origin",headers:{"content-type":"application/json","x-csrf-token":e.csrfToken},body:JSON.stringify(t)}).catch(()=>{})},[e.csrfToken]);let eR=(0,o.useCallback)(e=>{q(e),U(!1)},[]),eE=(0,o.useCallback)(()=>{if(w.length>=8)return;let e=`t-web-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`;C(t=>t.length>=8?t:[...t,{id:e,title:`Terminal ${t.length+1}`}]),N(e)},[w.length]),eI=(0,o.useCallback)(e=>{let t=w.find(e=>e.id===S);if(t?.kind&&"webapp"!==t.kind)return;if(t&&!t.kind){let r=z.current.get(t.id);r?r(e,!0):M.current.set(t.id,e),U(!1);return}let r=w.length>=8?w.find(e=>!e.kind):null,a=r?.id??`t-web-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`;r?M.current.set(a,e):C(t=>[...t,{id:a,title:`Terminal ${t.length+1}`,initialCommand:e}]),N(a),U(!1)},[S,w]),eD=e=>{if(e===Y.id)return;let t=w.find(t=>t.id===e)?.kind;(t||window.confirm("关闭页签会终止该终端进程,确认关闭?"))&&(C(t=>{let r=t.filter(t=>t.id!==e);return S===e&&N(r[0]?.id??null),r}),t||l("term:kill",{id:e}).catch(()=>{}))},eA=(0,o.useCallback)(()=>{C(e=>{let t=e.find(e=>"aihub"===e.kind);return t?(N(t.id),e):(N(Q.id),[...e,{...Q}])})},[]),eO=(0,o.useCallback)(()=>{C(e=>{let t=e.find(e=>"flowstudio"===e.kind);return t?(N(t.id),e):(N(Z.id),[...e,{...Z}])})},[]),e_=(0,o.useCallback)(()=>{N(Y.id),r.current?.contentWindow?.postMessage({type:"agent-web-shell:open-browser-live:v1"},window.location.origin)},[]),eL=(0,o.useCallback)(e=>{if(!S||w.length<2)return;let t=(w.findIndex(e=>e.id===S)+e+w.length)%w.length;N(w[t].id)},[S,w]),eq=Math.max(0,w.findIndex(e=>e.id===S)),eB=w[eq]?.kind==="webapp"?ey.cssVars["--ui-term-col-bg"]:ey.termHostBg,eU={...ea.root,...ey.cssVars,"--ui-active-content-bg":eB,"--ui-terminal-bg":ey.termHostBg,"--ui-primary-text":ey.keybar.accentText,background:"var(--ui-root-bg)",color:"var(--ui-text)"},eW=(0,o.useCallback)(()=>{ek.current=null,eC(0),eN(!1)},[]),e$=(0,o.useCallback)(e=>{Math.abs(e)>=64&&w.length>1&&eL(e<0?1:-1),eW()},[w.length,eL,eW]),eH=e=>e instanceof Element&&!!e.closest(".terminal-screen");return(0,o.useCallback)((e="smooth")=>{let t=eP.current;if(!t||!S)return;let r=t.querySelector(`[data-terminal-id="${S}"]`);if(!r)return;if(r===t.querySelector("[data-terminal-id]")){t&&(t.scrollLeft=0);return}let a=t.querySelector(".terminal-connection"),i=a?.offsetWidth??0,n=r.offsetLeft,o=n+r.offsetWidth,s=t.scrollLeft,l=s+t.clientWidth-i;n<s+8?t.scrollTo({left:Math.max(0,n-8),behavior:e}):o>l-8&&t.scrollTo({left:o-t.clientWidth+i+8,behavior:e})},[S]),(0,a.jsxs)("div",{className:"web-root",style:eU,children:[a.jsx("style",{dangerouslySetInnerHTML:{__html:er}}),(0,a.jsxs)("div",{className:"terminal-tabs",ref:eP,children:[w.map(e=>(0,a.jsxs)("div",{"data-terminal-id":e.id,draggable:!0,className:`terminal-tab ${e.id===S?"active":""}`,onDragStart:()=>{eT.current=e.id},onDragOver:e=>e.preventDefault(),onDrop:t=>{t.preventDefault();let r=eT.current;eT.current=null,r&&r!==e.id&&C(t=>{let a=t.findIndex(e=>e.id===r),i=t.findIndex(t=>t.id===e.id);if(a<0||i<0)return t;let n=[...t],[o]=n.splice(a,1);return n.splice(i,0,o),l("term:reorder",{ids:n.filter(e=>!e.kind).map(e=>e.id)}).catch(()=>{}),n})},onClick:()=>N(e.id),onDoubleClick:()=>{if(e.kind)return;let t=window.prompt("页签名称",e.title)?.trim();t&&l("term:rename",{id:e.id,title:t}).then(()=>C(r=>r.map(r=>r.id===e.id?{...r,title:t}:r))).catch(()=>{})},children:[a.jsx("span",{children:e.title}),"webapp"!==e.kind&&a.jsx("button",{tabIndex:-1,onClick:t=>{t.stopPropagation(),eD(e.id)},children:"\xd7"})]},e.id)),a.jsx("button",{className:"terminal-add",disabled:w.length>=8,onClick:eE,children:"+"}),(0,a.jsxs)("div",{className:"terminal-connection",children:[a.jsx("button",{type:"button",className:"file-drawer-toggle","aria-label":"刷新页面",title:"刷新页面",onClick:()=>window.location.reload(),children:a.jsx(p,{size:17,"aria-hidden":"true"})}),a.jsx(y,{}),a.jsx("button",{type:"button",className:"file-drawer-toggle","aria-label":"打开远程桌面",title:"远程桌面 \xb7 浏览器直播",onClick:e_,children:a.jsx(b,{size:17,"aria-hidden":"true"})}),a.jsx("button",{type:"button",className:"file-drawer-toggle","aria-label":"打开 AI Hub",title:"AI Hub \xb7 多模型对比",onClick:eA,children:a.jsx(f,{size:17,"aria-hidden":"true"})}),a.jsx("button",{type:"button",className:"file-drawer-toggle","aria-label":"打开数字人",title:"数字人 \xb7 Flow Studio",onClick:eO,children:a.jsx(h,{size:17,"aria-hidden":"true"})}),a.jsx("button",{type:"button",className:"file-drawer-toggle","aria-label":B?"关闭我的文件":"打开我的文件",title:"我的文件","aria-expanded":B,onClick:()=>U(e=>!e),children:a.jsx(m,{size:17,"aria-hidden":"true"})}),(0,a.jsxs)("div",{className:"theme-avatar-with-status",children:[a.jsx(H,{username:e.user?.username??"?",themeId:eh,onThemeChange:em,accent:ey.keybar.accent,accentText:ey.keybar.accentText}),a.jsx("span",{className:"theme-avatar-status","data-connected":n.connected,"aria-label":n.connected?"已连接":"未连接"})]})]})]}),(0,a.jsxs)("main",{className:`workspace ${B?"show-tree":""} ${L?"has-preview":""}`,style:ea.workspace,children:[a.jsx("section",{className:"term-col",style:ea.termCol,onPointerDownCapture:e=>{"touch"===e.pointerType&&eH(e.target)&&(eW(),ek.current={x:e.clientX,y:e.clientY,axis:"pending",pointerId:e.pointerId})},onPointerMoveCapture:e=>{let t=ek.current;if(!t||e.pointerId!==t.pointerId||"touch"!==e.pointerType)return;let r=e.clientX-t.x,a=e.clientY-t.y;if("pending"===t.axis){if(8>=Math.max(Math.abs(r),Math.abs(a)))return;if(Math.abs(a)>=1.2*Math.abs(r)){ek.current=null;return}t.axis="horizontal",eN(!0);let e=r=>{window.removeEventListener("pointerup",e),window.removeEventListener("pointercancel",e),ek.current===t&&eW()};window.addEventListener("pointerup",e),window.addEventListener("pointercancel",e)}"horizontal"===t.axis&&(e.preventDefault(),eC(r))},onPointerUpCapture:e=>{let t=ek.current;if(!t||e.pointerId!==t.pointerId)return;let r=e.clientX-t.x;"horizontal"===t.axis&&Math.abs(r)>=64?e$(r):eW()},onPointerCancelCapture:eW,children:a.jsx("div",{className:"terminal-track",style:{transform:`translate3d(calc(${-(100*eq)}% + ${ej}px),0,0)`,transition:eS?"none":"transform 260ms cubic-bezier(.22,.8,.32,1)"},children:w.map(e=>a.jsx("div",{className:"terminal-slide",style:{position:"relative"},children:"webapp"===e.kind?a.jsx("iframe",{ref:r,className:"webapp-frame",src:"/app/",title:e.title,onLoad:()=>ez(eh)}):"aihub"===e.kind?a.jsx(X,{visible:e.id===S,rpc:l}):"flowstudio"===e.kind?a.jsx(K,{visible:e.id===S}):a.jsx(F,{terminalId:e.id,title:e.title,initialCommand:e.initialCommand,visible:e.id===S,state:n,rpc:l,onEvent:d,onTerminalData:c,onTerminalReset:u,sendTerminalInput:g,keyOrder:eu,keybarHidden:ed,onKeyOrderChange:ep,onKeybarHiddenChange:ec,terminalTheme:ey,initialScrollLine:A[e.id]??null,onScrollLineChange:t=>O(r=>r[e.id]===t?r:{...r,[e.id]:t}),onRegisterFill:t=>R(e.id,t),onCwdChange:t=>t&&P(r=>({...r,[e.id]:t}))})},e.id))})}),B&&a.jsx("div",{className:"drawer-mask",onClick:()=>U(!1)}),(0,a.jsxs)("aside",{className:`tree-col ${B?"tree-col-open":""}`,style:ea.treeCol,children:[(0,a.jsxs)("div",{className:"tree-head",style:ea.treeHead,children:[a.jsx("button",{className:"files"===W?"drawer-tab-active":"",onClick:()=>J("files"),children:"文件"}),a.jsx("button",{className:"history"===W?"drawer-tab-active":"",onClick:()=>J("history"),children:"历史"}),a.jsx("span",{className:"tree-cwd",style:ea.treeCwd,children:eM??""}),a.jsx("button",{style:{...ea.iconBtn,marginLeft:"auto",flexShrink:0},onClick:()=>U(!1),"aria-label":"close drawer",children:a.jsx(x,{size:15,"aria-hidden":"true"})})]}),"files"===W?a.jsx(V,{ready:s>0,followCwd:!0,cwd:eM,gateway:v,onOpenFile:eR,selectedPath:L,initialRoot:et,initialFollow:en,revealRequest:es,onTreeStateChange:(e,t)=>{ei(e),eo(t)}}):a.jsx(_,{csrfToken:e.csrfToken,terminalId:w.find(e=>e.id===S)?.kind==="webapp"?null:S,pinnedCommands:eb,onPinnedCommandsChange:ef,onFill:E,onExecute:eI}),(0,a.jsxs)("div",{style:ea.treeFoot,children:[a.jsx("span",{style:ea.treeFootDot}),a.jsx("span",{children:"实时同步"})]})]}),L&&a.jsx("section",{className:"preview-col",style:ea.previewCol,children:a.jsx(G,{path:L,gateway:v,onClose:()=>q(null)})})]})]})}let er=`
|
|
1
|
+
(()=>{var e={};e.id=3541,e.ids=[3541],e.modules={5890:e=>{"use strict";e.exports=require("better-sqlite3")},2934:e=>{"use strict";e.exports=require("next/dist/client/components/action-async-storage.external.js")},4580:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external.js")},5869:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},399:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},9801:e=>{"use strict";e.exports=require("os")},7718:e=>{"use strict";e.exports=require("node:child_process")},6005:e=>{"use strict";e.exports=require("node:crypto")},5673:e=>{"use strict";e.exports=require("node:events")},7561:e=>{"use strict";e.exports=require("node:fs")},3977:e=>{"use strict";e.exports=require("node:fs/promises")},8849:e=>{"use strict";e.exports=require("node:http")},2286:e=>{"use strict";e.exports=require("node:https")},2033:e=>{"use strict";e.exports=require("node:module")},7503:e=>{"use strict";e.exports=require("node:net")},612:e=>{"use strict";e.exports=require("node:os")},9411:e=>{"use strict";e.exports=require("node:path")},1747:e=>{"use strict";e.exports=require("node:readline")},1041:e=>{"use strict";e.exports=require("node:url")},237:(e,t,r)=>{"use strict";r.r(t),r.d(t,{GlobalError:()=>o.a,__next_app__:()=>f,originalPathname:()=>u,pages:()=>c,routeModule:()=>p,tree:()=>d}),r(6742),r(9257),r(489),r(4972),r(3028);var a=r(1772),i=r(5042),n=r(5663),o=r.n(n),s=r(4812),l={};for(let e in s)0>["default","tree","pages","GlobalError","originalPathname","__next_app__","routeModule"].indexOf(e)&&(l[e]=()=>s[e]);r.d(t,l);let d=["",{children:["web",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(r.bind(r,6742)),"/Users/caoqu/.codex/worktrees/npm-preview-39/customer-agent/packages/server/app/web/page.tsx"]}]},{layout:[()=>Promise.resolve().then(r.bind(r,9257)),"/Users/caoqu/.codex/worktrees/npm-preview-39/customer-agent/packages/server/app/web/layout.tsx"],error:[()=>Promise.resolve().then(r.bind(r,489)),"/Users/caoqu/.codex/worktrees/npm-preview-39/customer-agent/packages/server/app/web/error.tsx"]}]},{layout:[()=>Promise.resolve().then(r.bind(r,4972)),"/Users/caoqu/.codex/worktrees/npm-preview-39/customer-agent/packages/server/app/layout.tsx"],"not-found":[()=>Promise.resolve().then(r.t.bind(r,3028,23)),"next/dist/client/components/not-found-error"]}],c=["/Users/caoqu/.codex/worktrees/npm-preview-39/customer-agent/packages/server/app/web/page.tsx"],u="/web/page",f={require:r,loadChunk:()=>Promise.resolve()},p=new a.AppPageRouteModule({definition:{kind:i.x.APP_PAGE,page:"/web/page",pathname:"/web",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:d}})},5133:(e,t,r)=>{Promise.resolve().then(r.t.bind(r,1782,23)),Promise.resolve().then(r.t.bind(r,8949,23)),Promise.resolve().then(r.t.bind(r,6569,23)),Promise.resolve().then(r.t.bind(r,8718,23)),Promise.resolve().then(r.t.bind(r,7415,23)),Promise.resolve().then(r.t.bind(r,8781,23))},7686:(e,t,r)=>{Promise.resolve().then(r.bind(r,8383))},5625:()=>{},5620:(e,t,r)=>{Promise.resolve().then(r.bind(r,7977))},2027:()=>{},6476:()=>{},1166:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return n}});let a=r(7094);r(3517),r(5921);let i=a._(r(4079));function n(e,t){var r;let a={loading:e=>{let{error:t,isLoading:r,pastDelay:a}=e;return null}};"function"==typeof e&&(a.loader=e);let n={...a,...t};return(0,i.default)({...n,modules:null==(r=n.loadableGenerated)?void 0:r.modules})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},1803:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"BailoutToCSR",{enumerable:!0,get:function(){return i}});let a=r(93);function i(e){let{reason:t,children:r}=e;throw new a.BailoutToCSRError(t)}},4079:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return d}});let a=r(3517),i=r(5921),n=r(1803),o=r(5259);function s(e){return{default:e&&"default"in e?e.default:e}}let l={loader:()=>Promise.resolve(s(()=>null)),loading:null,ssr:!0},d=function(e){let t={...l,...e},r=(0,i.lazy)(()=>t.loader().then(s)),d=t.loading;function c(e){let s=d?(0,a.jsx)(d,{isLoading:!0,pastDelay:!0,error:null}):null,l=t.ssr?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(o.PreloadCss,{moduleIds:t.modules}),(0,a.jsx)(r,{...e})]}):(0,a.jsx)(n.BailoutToCSR,{reason:"next/dynamic",children:(0,a.jsx)(r,{...e})});return(0,a.jsx)(i.Suspense,{fallback:s,children:l})}return c.displayName="LoadableComponent",c}},5259:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PreloadCss",{enumerable:!0,get:function(){return n}});let a=r(3517),i=r(4580);function n(e){let{moduleIds:t}=e,r=(0,i.getExpectedRequestStore)("next/dynamic css"),n=[];if(r.reactLoadableManifest&&t){let e=r.reactLoadableManifest;for(let r of t){if(!e[r])continue;let t=e[r].files.filter(e=>e.endsWith(".css"));n.push(...t)}}return 0===n.length?null:(0,a.jsx)(a.Fragment,{children:n.map(e=>(0,a.jsx)("link",{precedence:"dynamic",rel:"stylesheet",href:r.assetPrefix+"/_next/"+encodeURI(e),as:"style"},e))})}},4684:(e,t,r)=>{"use strict";r(6476);var a=r(5921),i=function(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}(a),n="undefined"!=typeof process&&process.env&&!0,o=function(e){return"[object String]"===Object.prototype.toString.call(e)},s=function(){function e(e){var t=void 0===e?{}:e,r=t.name,a=void 0===r?"stylesheet":r,i=t.optimizeForSpeed,s=void 0===i?n:i;l(o(a),"`name` must be a string"),this._name=a,this._deletedRulePlaceholder="#"+a+"-deleted-rule____{}",l("boolean"==typeof s,"`optimizeForSpeed` must be a boolean"),this._optimizeForSpeed=s,this._serverSheet=void 0,this._tags=[],this._injected=!1,this._rulesCount=0,this._nonce=null}var t=e.prototype;return t.setOptimizeForSpeed=function(e){l("boolean"==typeof e,"`setOptimizeForSpeed` accepts a boolean"),l(0===this._rulesCount,"optimizeForSpeed cannot be when rules have already been inserted"),this.flush(),this._optimizeForSpeed=e,this.inject()},t.isOptimizeForSpeed=function(){return this._optimizeForSpeed},t.inject=function(){var e=this;l(!this._injected,"sheet already injected"),this._injected=!0,this._serverSheet={cssRules:[],insertRule:function(t,r){return"number"==typeof r?e._serverSheet.cssRules[r]={cssText:t}:e._serverSheet.cssRules.push({cssText:t}),r},deleteRule:function(t){e._serverSheet.cssRules[t]=null}}},t.getSheetForTag=function(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]},t.getSheet=function(){return this.getSheetForTag(this._tags[this._tags.length-1])},t.insertRule=function(e,t){return l(o(e),"`insertRule` accepts only strings"),"number"!=typeof t&&(t=this._serverSheet.cssRules.length),this._serverSheet.insertRule(e,t),this._rulesCount++},t.replaceRule=function(e,t){this._optimizeForSpeed;var r=this._serverSheet;if(t.trim()||(t=this._deletedRulePlaceholder),!r.cssRules[e])return e;r.deleteRule(e);try{r.insertRule(t,e)}catch(a){n||console.warn("StyleSheet: illegal rule: \n\n"+t+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),r.insertRule(this._deletedRulePlaceholder,e)}return e},t.deleteRule=function(e){this._serverSheet.deleteRule(e)},t.flush=function(){this._injected=!1,this._rulesCount=0,this._serverSheet.cssRules=[]},t.cssRules=function(){return this._serverSheet.cssRules},t.makeStyleTag=function(e,t,r){t&&l(o(t),"makeStyleTag accepts only strings as second parameter");var a=document.createElement("style");this._nonce&&a.setAttribute("nonce",this._nonce),a.type="text/css",a.setAttribute("data-"+e,""),t&&a.appendChild(document.createTextNode(t));var i=document.head||document.getElementsByTagName("head")[0];return r?i.insertBefore(a,r):i.appendChild(a),a},function(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}(e.prototype,[{key:"length",get:function(){return this._rulesCount}}]),e}();function l(e,t){if(!e)throw Error("StyleSheet: "+t+".")}var d=function(e){for(var t=5381,r=e.length;r;)t=33*t^e.charCodeAt(--r);return t>>>0},c={};function u(e,t){if(!t)return"jsx-"+e;var r=String(t),a=e+r;return c[a]||(c[a]="jsx-"+d(e+"-"+r)),c[a]}function f(e,t){var r=e+(t=t.replace(/\/style/gi,"\\/style"));return c[r]||(c[r]=t.replace(/__jsx-style-dynamic-selector/g,e)),c[r]}var p=a.createContext(null);p.displayName="StyleSheetContext",i.default.useInsertionEffect||i.default.useLayoutEffect;var b=void 0;function m(e){var t=b||a.useContext(p);return t&&t.add(e),null}m.dynamic=function(e){return e.map(function(e){return u(e[0],e[1])}).join(" ")},t.style=m},1321:(e,t,r)=>{"use strict";e.exports=r(4684).style},8383:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>i});var a=r(3517);function i({reset:e}){return(0,a.jsxs)("main",{role:"alert",style:{padding:32,fontFamily:"system-ui",lineHeight:1.8},children:[a.jsx("h1",{children:"页面加载失败"}),a.jsx("p",{children:"请重试;如果仍无法打开,请检查网络,并确认电脑上的 AgentRoam 正在运行。"}),a.jsx("button",{type:"button",onClick:e,children:"重试"})," ",a.jsx("button",{type:"button",onClick:()=>window.location.reload(),children:"刷新页面"})]})}},7977:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>Z});var a=r(3517),i=r(1166),n=r.n(i),o=r(5921);let s=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),l=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim();var d={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let c=(0,o.forwardRef)(({color:e="currentColor",size:t=24,strokeWidth:r=2,absoluteStrokeWidth:a,className:i="",children:n,iconNode:s,...c},u)=>(0,o.createElement)("svg",{ref:u,...d,width:t,height:t,stroke:e,strokeWidth:a?24*Number(r)/Number(t):r,className:l("lucide",i),...c},[...s.map(([e,t])=>(0,o.createElement)(e,t)),...Array.isArray(n)?n:[n]])),u=(e,t)=>{let r=(0,o.forwardRef)(({className:r,...a},i)=>(0,o.createElement)(c,{ref:i,iconNode:t,className:l(`lucide-${s(e)}`,r),...a}));return r.displayName=`${e}`,r},f=u("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]),p=u("MonitorUp",[["path",{d:"m9 10 3-3 3 3",key:"11gsxs"}],["path",{d:"M12 13V7",key:"h0r20n"}],["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["path",{d:"M12 17v4",key:"1riwvh"}],["path",{d:"M8 21h8",key:"1ev6f3"}]]),b=u("LayoutGrid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]),m=u("Bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]),h=u("PanelRight",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}]]),x=u("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),g=u("Smartphone",[["rect",{width:"14",height:"20",x:"5",y:"2",rx:"2",ry:"2",key:"1yt0o3"}],["path",{d:"M12 18h.01",key:"mhygvu"}]]),w=u("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]),v={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 y(){let[e,t]=(0,o.useState)(!1),[r,i]=(0,o.useState)(!1),n=(0,o.useRef)(null);return(0,a.jsxs)(a.Fragment,{children:[e&&a.jsx("button",{type:"button",className:"file-drawer-toggle pwa-install-button",style:v,title:"添加到主屏幕","aria-label":"添加到主屏幕",onClick:()=>window.dispatchEvent(new Event("agentroam:pwa-install")),children:(0,a.jsxs)("span",{style:{position:"relative",display:"flex"},children:[a.jsx(g,{size:17,"aria-hidden":"true"}),a.jsx(w,{size:9,strokeWidth:3,"aria-hidden":"true",style:{position:"absolute",right:-4,bottom:-2}})]})}),r&&(0,a.jsxs)("dialog",{ref:n,onClose:()=>i(!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:[a.jsx("h2",{id:"pwa-install-title",style:{margin:"0 0 12px",fontSize:18},children:"添加到主屏幕"}),a.jsx("p",{children:"iPhone / iPad:在 Safari 点击分享按钮,选择“添加到主屏幕”,再点“添加”。"}),a.jsx("p",{children:"Android:打开浏览器菜单,选择“安装应用”或“添加到主屏幕”。"}),a.jsx("p",{style:{color:"var(--ui-muted-text)"},children:"浏览器需要你确认,网页无法自动添加。从主屏幕打开后,如提示未配对,请重新扫码。"}),a.jsx("button",{type:"button",style:{...v,width:"100%",padding:"10px 14px",borderStyle:"solid",borderWidth:1,borderRadius:8,cursor:"pointer"},onClick:()=>n.current?.close(),children:"知道了"})]})]})}let k=["codex","claude agents","opencode","agent-tui"],j={watcherFrame:4,producerFrame:5};function S({children:e}){let t=function(){let[e,t]=(0,o.useState)("loading"),[r,a]=(0,o.useState)(null),[i]=(0,o.useState)("same-origin"),[n,s]=(0,o.useState)(null),l=(0,o.useCallback)(async()=>{t("loading"),s(null);try{let e=await fetch("/api/web-console/bootstrap",{credentials:"same-origin",cache:"no-store"});if(401===e.status||423===e.status){window.location.reload();return}if(!e.ok)throw Error(`HTTP ${e.status}`);let r=await e.json();a(r.user),t("authenticated")}catch{s("无法连接远程控制台"),t("needsLogin")}},[]),d=(0,o.useCallback)(async()=>{let e=await fetch("/api/web-console/bootstrap",{credentials:"same-origin",cache:"no-store"});if((401===e.status||423===e.status)&&window.location.reload(),!e.ok)throw Error("bootstrap failed");let r=await e.json();return a(r.user),t("authenticated"),r.wsNonce},[]),c=(0,o.useCallback)(async()=>(window.location.reload(),!1),[]);return{status:e,user:r,error:n,csrfToken:i,setup:c,login:c,logout:(0,o.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():s("退出失败,请重试")},[]),refresh:l,getWsNonce:d}}(),[r]=(0,o.useState)(()=>Date.now()),[i,n]=(0,o.useState)(()=>Date.now()),[s,l]=(0,o.useState)(!1),d="authenticated"===t.status,c=d&&s,u=(0,o.useCallback)(()=>l(!0),[]),p=t.error||"数字人核心正在就绪";return(0,a.jsxs)(a.Fragment,{children:[d?e(t,u):null,(0,a.jsxs)("main",{className:`neural-boot${c?" is-ready":""}${t.error?" is-error":""}`,role:t.error?"alert":"status","aria-live":"polite","aria-busy":!c&&!t.error,"aria-hidden":c,children:[a.jsx("div",{className:"neural-grid","aria-hidden":"true"}),a.jsx("div",{className:"neural-rail neural-rail-left","aria-hidden":"true"}),a.jsx("div",{className:"neural-rail neural-rail-right","aria-hidden":"true"}),(0,a.jsxs)("section",{className:"neural-content",children:[(0,a.jsxs)("div",{className:"neural-brand","aria-hidden":"true",children:[a.jsx("span",{className:"neural-brand-signal"}),a.jsx("span",{children:"AgentRoam"}),a.jsx("small",{children:"NEURAL LINK"})]}),(0,a.jsxs)("div",{className:"neural-portrait","aria-hidden":"true",children:[a.jsx("span",{className:"neural-ring neural-ring-outer"}),a.jsx("span",{className:"neural-ring neural-ring-inner"}),a.jsx("span",{className:"neural-axis neural-axis-x"}),a.jsx("span",{className:"neural-axis neural-axis-y"}),a.jsx("span",{className:"neural-node neural-node-one"}),a.jsx("span",{className:"neural-node neural-node-two"}),a.jsx("span",{className:"neural-node neural-node-three"}),a.jsx("span",{className:"neural-node neural-node-four"}),a.jsx("div",{className:"neural-avatar-frame",children:(0,a.jsxs)("div",{className:"neural-avatar",children:[a.jsx(m,{className:"neural-avatar-icon",size:66,strokeWidth:1.3}),a.jsx("span",{className:"neural-visor"})]})})]}),(0,a.jsxs)("div",{className:"neural-copy",children:[a.jsx("strong",{children:"正在唤醒工作区"}),a.jsx("span",{children:p})]}),a.jsx("div",{className:"neural-progress","aria-hidden":"true",children:a.jsx("span",{})}),(0,a.jsxs)("div",{className:"neural-meta","aria-hidden":"true",children:[a.jsx("span",{children:"AGENT CORE"}),(0,a.jsxs)("span",{className:"neural-meta-time",children:["T+",Math.max(0,Math.floor((i-r)/1e3)).toString().padStart(2,"0"),"S"]})]}),t.error&&a.jsx("button",{type:"button",className:"neural-retry","aria-label":"重试连接",title:"重试连接",onClick:()=>void t.refresh(),children:a.jsx(f,{size:18,"aria-hidden":"true"})})]})]})]})}let C=u("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]),z=u("TextCursorInput",[["path",{d:"M5 4h1a3 3 0 0 1 3 3 3 3 0 0 1 3-3h1",key:"18xjzo"}],["path",{d:"M13 20h-1a3 3 0 0 1-3-3 3 3 0 0 1-3 3H5",key:"fj48gi"}],["path",{d:"M5 16H4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h1",key:"1n9rhb"}],["path",{d:"M13 8h7a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-7",key:"13ksps"}],["path",{d:"M9 7v10",key:"1vc8ob"}]]),N=u("Pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]),T=u("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]),R=u("GripVertical",[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]]),P=u("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]),_=u("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);function E(e,t,r){let a=e.findIndex(e=>e.id===t),i=e.findIndex(e=>e.id===r);if(a<0||i<0||a===i)return[...e];let n=[...e],[o]=n.splice(a,1);return n.splice(i,0,o),n}function M(e,t="function"==typeof crypto.randomUUID?crypto.randomUUID():Array.from(crypto.getRandomValues(new Uint8Array(16)),e=>e.toString(16).padStart(2,"0")).join("")){return{id:t,command:e.trim()}}function I({commands:e,onChange:t,onExecute:r}){let[i,n]=(0,o.useState)(null),[s,l]=(0,o.useState)(""),[d,c]=(0,o.useState)(null),u=(0,o.useRef)(null),f=()=>{if(!i)return;let r=i.value.trim();return r?r.length>1e3?l("命令最多 1000 个字符"):/[\r\n\0]/.test(r)?l("命令只能包含一行"):void(i.id?t(e.map(e=>e.id===i.id?{...e,command:r}:e)):t([...e,M(r)]),n(null),l("")):l("命令不能为空")},p=(e,t)=>{e.preventDefault(),e.stopPropagation(),u.current=t,c(t),e.currentTarget.setPointerCapture(e.pointerId)},b=r=>{if(!u.current)return;let a=document.elementFromPoint(r.clientX,r.clientY)?.closest("[data-pinned-id]"),i=a?.dataset.pinnedId;i&&i!==u.current&&t(E(e,u.current,i))},m=e=>{e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId),u.current=null,c(null)},h=(r,a)=>{if("ArrowUp"!==r.key&&"ArrowDown"!==r.key)return;r.preventDefault();let i=e.findIndex(e=>e.id===a),n=e[i+("ArrowUp"===r.key?-1:1)];n&&t(E(e,a,n.id))};return(0,a.jsxs)("section",{className:"pinned-commands","aria-labelledby":"pinned-command-title",children:[(0,a.jsxs)("div",{className:"pinned-command-head",children:[a.jsx("span",{id:"pinned-command-title",children:"置顶命令"}),a.jsx("button",{className:"history-icon-button",onClick:()=>{n({id:null,value:""}),l("")},"aria-label":"新增置顶命令",title:"新增置顶命令",children:a.jsx(w,{size:14,"aria-hidden":"true"})})]}),e.map(o=>i?.id===o.id?a.jsx(O,{editor:i,error:s,onChange:e=>{n({...i,value:e}),l("")},onSave:f,onCancel:()=>{n(null),l("")}},o.id):(0,a.jsxs)("div",{className:`pinned-command-row${d===o.id?" pinned-command-dragging":""}`,"data-pinned-id":o.id,role:"button",tabIndex:0,onClick:()=>r(o.command),onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),r(o.command))},children:[a.jsx("button",{className:"pinned-command-grip",onPointerDown:e=>p(e,o.id),onPointerMove:b,onPointerUp:m,onPointerCancel:m,onKeyDown:e=>h(e,o.id),onClick:e=>e.stopPropagation(),"aria-label":`调整 ${o.command} 的顺序`,title:"拖动排序,或按上下方向键",children:a.jsx(R,{size:14,"aria-hidden":"true"})}),a.jsx("code",{children:o.command}),(0,a.jsxs)("div",{className:"pinned-command-actions",onClick:e=>e.stopPropagation(),children:[a.jsx("button",{className:"history-icon-button",onClick:()=>{n({id:o.id,value:o.command}),l("")},"aria-label":`编辑 ${o.command}`,title:"编辑",children:a.jsx(P,{size:12,"aria-hidden":"true"})}),a.jsx("button",{className:"history-icon-button history-icon-danger",onClick:()=>t(e.filter(e=>e.id!==o.id)),"aria-label":`删除 ${o.command}`,title:"删除",children:a.jsx(T,{size:12,"aria-hidden":"true"})})]})]},o.id)),i?.id===null&&a.jsx(O,{editor:i,error:s,onChange:e=>{n({...i,value:e}),l("")},onSave:f,onCancel:()=>{n(null),l("")}})]})}function O({editor:e,error:t,onChange:r,onSave:i,onCancel:n}){return(0,a.jsxs)("div",{className:"pinned-command-editor",children:[a.jsx("input",{autoFocus:!0,value:e.value,maxLength:1e3,onChange:e=>r(e.target.value),onKeyDown:e=>{"Enter"===e.key&&i(),"Escape"===e.key&&n()},"aria-label":e.id?"编辑置顶命令":"新增置顶命令"}),a.jsx("button",{className:"history-icon-button",onClick:i,"aria-label":"保存命令",title:"保存",children:a.jsx(_,{size:13,"aria-hidden":"true"})}),a.jsx("button",{className:"history-icon-button",onClick:n,"aria-label":"取消编辑",title:"取消",children:a.jsx(x,{size:13,"aria-hidden":"true"})}),t&&a.jsx("small",{role:"alert",children:t})]})}async function D(e){let t="undefined"==typeof navigator?void 0:navigator.clipboard;if("function"==typeof t?.writeText&&("undefined"==typeof isSecureContext||isSecureContext))try{return await t.writeText(e),!0}catch{}return function(e){if("undefined"==typeof document||!document.body||"function"!=typeof document.execCommand)return!1;let t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),Object.assign(t.style,{position:"fixed",top:"0",left:"-9999px",width:"1px",height:"1px",fontSize:"16px",opacity:"0",pointerEvents:"none"}),document.body.appendChild(t);try{return t.focus(),t.select(),t.setSelectionRange(0,t.value.length),document.execCommand("copy")}catch{return!1}finally{t.remove()}}(e)}function A({csrfToken:e,terminalId:t,pinnedCommands:r,onPinnedCommandsChange:i,onFill:n,onExecute:s}){let[l,d]=(0,o.useState)([]),[c,u]=(0,o.useState)(""),[p,b]=(0,o.useState)(""),m=(0,o.useCallback)(async()=>{let e=new URLSearchParams({q:c,limit:"200"}),t=await fetch(`/api/web-console/history?${e}`,{credentials:"same-origin"});t.ok&&d((await t.json()).history)},[c]),h=async t=>{await fetch("/api/web-console/history",{method:"DELETE",credentials:"same-origin",headers:{"content-type":"application/json","x-csrf-token":e},body:JSON.stringify({id:t})}),m()},x=e=>{t&&n(e)},g=(0,o.useCallback)(e=>{"[REDACTED]"===e||r.some(t=>t.command===e)||i([...r,M(e)])},[i,r]),w=async e=>{b(await D(e)?"已复制命令":"复制失败,请长按命令手动复制")};return(0,a.jsxs)("div",{className:"history-panel",children:[a.jsx(I,{commands:r,onChange:i,onExecute:s}),(0,a.jsxs)("div",{className:"history-search",children:[a.jsx("input",{value:c,onChange:e=>u(e.target.value),placeholder:"搜索命令"}),a.jsx("button",{className:"history-icon-button",onClick:m,"aria-label":"刷新历史",title:"刷新历史",children:a.jsx(f,{size:13,"aria-hidden":"true"})})]}),p&&a.jsx("div",{className:"terminal-clipboard-notice",role:"status",children:p}),l.map(e=>(0,a.jsxs)("div",{className:`history-item${t?"":" history-item-disabled"}`,role:"button",tabIndex:t?0:-1,onClick:()=>x(e.command),onKeyDown:r=>{r.target===r.currentTarget&&("Enter"===r.key||" "===r.key)&&t&&(r.preventDefault(),x(e.command))},children:[a.jsx("code",{children:e.command}),(0,a.jsxs)("small",{children:[e.cwd," \xb7 ",new Date(e.executedAt).toLocaleString()]}),(0,a.jsxs)("div",{className:"history-item-actions",onClick:e=>e.stopPropagation(),onPointerDown:e=>e.stopPropagation(),children:[a.jsx("button",{className:"history-icon-button",onClick:()=>void w(e.command),"aria-label":"复制命令",title:"复制",children:a.jsx(C,{size:12,"aria-hidden":"true"})}),a.jsx("button",{className:"history-icon-button",disabled:!t,onClick:()=>x(e.command),"aria-label":"填入命令",title:"填入",children:a.jsx(z,{size:12,"aria-hidden":"true"})}),a.jsx("button",{className:"history-icon-button",disabled:"[REDACTED]"===e.command||r.some(t=>t.command===e.command),onClick:()=>g(e.command),"aria-label":"置顶命令",title:"置顶",children:a.jsx(N,{size:12,"aria-hidden":"true"})}),a.jsx("button",{className:"history-icon-button history-icon-danger",onClick:()=>h(e.id),"aria-label":"删除历史",title:"删除",children:a.jsx(T,{size:12,"aria-hidden":"true"})})]})]},e.id)),!l.length&&a.jsx("div",{className:"history-empty",children:"暂无 Shell 命令历史"}),!t&&!!l.length&&a.jsx("div",{className:"history-empty",children:"请先打开一个终端页签"})]})}var L=r(5878);let F=[{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"}}],q="pearl",B=Object.fromEntries(F.map(e=>[e.id,e])),U={dark:"noir",black:"noir",gray:"noir",blue:"noir",red:"noir",yellow:"noir",green:"noir",white:"pearl"};function W(e){if(e&&e in B)return B[e];let t=e?U[e]:void 0;return t?B[t]:B[q]}function $({username:e,themeId:t,onThemeChange:r,accent:i,accentText:n}){let[s,l]=(0,o.useState)(!1),d=(0,o.useRef)(null),c=(0,o.useRef)(null),u=(0,o.useRef)(null),[f,p]=(0,o.useState)(null),[b,m]=(0,o.useState)(null),h=(e.trim()[0]??"?").toUpperCase();return(0,a.jsxs)("div",{ref:d,className:"theme-picker",children:[a.jsx("button",{ref:c,type:"button",className:"theme-avatar","aria-label":`换肤(${e})`,title:e,"aria-expanded":s,onPointerDown:e=>e.stopPropagation(),onClick:e=>{e.preventDefault(),e.stopPropagation(),l(e=>!e)},style:{border:`1px solid ${i}`,background:i,color:n},children:h}),s&&f&&b&&(0,L.createPortal)((0,a.jsxs)("div",{ref:u,className:"theme-popover",role:"dialog","aria-label":"选择皮肤",style:{position:"fixed",top:f.top,left:f.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:[a.jsx("div",{style:{fontSize:10,color:"var(--ui-connection-text, #777b8c)",margin:"2px 4px 6px",letterSpacing:.5},children:"皮肤"}),a.jsx("div",{style:{display:"flex",flexDirection:"column",gap:2},children:F.map(e=>{let i=e.id===t;return(0,a.jsxs)("button",{type:"button",className:"theme-popover-item","aria-label":e.label,"aria-pressed":i,onPointerDown:e=>e.stopPropagation(),onClick:()=>{r(e.id),l(!1)},style:{background:i?"color-mix(in srgb, var(--ui-tab-accent, #7aa2f7) 14%, transparent)":"transparent"},children:[a.jsx("span",{style:{width:18,height:18,borderRadius:5,flexShrink:0,background:`linear-gradient(135deg, ${e.preview[0]} 55%, ${e.preview[1]} 55%)`,boxShadow:"inset 0 0 0 1px rgba(128,128,160,.25)"}}),a.jsx("span",{style:{flex:1,textAlign:"left",fontSize:12,fontWeight:i?600:400,color:i?"var(--ui-tab-active-text, #edf0f7)":"var(--ui-tab-text, #8f93a4)"},children:e.label}),i&&a.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:a.jsx("path",{d:"m5 12 4 4L19 6"})})]},e.id)})})]}),b)]})}var H=r(1321),V=r.n(H);function G(){return(0,a.jsxs)("div",{role:"status","aria-live":"polite",className:"jsx-f8b6a4420911d242 flow-loading",children:[(0,a.jsxs)("div",{"aria-hidden":"true",className:"jsx-f8b6a4420911d242 flow-loader-art",children:[a.jsx("div",{className:"jsx-f8b6a4420911d242 flow-loader-halo"}),a.jsx("div",{className:"jsx-f8b6a4420911d242 flow-loader-orbit orbit-outer",children:a.jsx("i",{className:"jsx-f8b6a4420911d242"})}),a.jsx("div",{className:"jsx-f8b6a4420911d242 flow-loader-orbit orbit-inner",children:a.jsx("i",{className:"jsx-f8b6a4420911d242"})}),a.jsx("div",{className:"jsx-f8b6a4420911d242 flow-loader-core",children:a.jsx(m,{size:36,strokeWidth:1.5})}),a.jsx("span",{className:"jsx-f8b6a4420911d242 flow-loader-node node-one"}),a.jsx("span",{className:"jsx-f8b6a4420911d242 flow-loader-node node-two"}),a.jsx("span",{className:"jsx-f8b6a4420911d242 flow-loader-node node-three"})]}),(0,a.jsxs)("div",{className:"jsx-f8b6a4420911d242 flow-loader-copy",children:[a.jsx("span",{className:"jsx-f8b6a4420911d242 flow-loader-label",children:"FLOW STUDIO"}),a.jsx("strong",{className:"jsx-f8b6a4420911d242",children:"正在打开 Flow Studio"}),a.jsx("span",{className:"jsx-f8b6a4420911d242 flow-loader-caption",children:"即将进入你的创作空间"})]}),a.jsx("div",{"aria-hidden":"true",className:"jsx-f8b6a4420911d242 flow-loader-track",children:a.jsx("span",{className:"jsx-f8b6a4420911d242"})}),a.jsx(V(),{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}}"})]})}let X=n()(async()=>{},{loadableGenerated:{modules:["app/web/page.tsx -> ./TerminalPane"]},ssr:!1}),K=n()(async()=>{},{loadableGenerated:{modules:["app/web/page.tsx -> ./FileTree"]},ssr:!1}),J=n()(async()=>{},{loadableGenerated:{modules:["app/web/page.tsx -> ./FilePreview"]},ssr:!1}),Y=n()(async()=>{},{loadableGenerated:{modules:["app/web/page.tsx -> ./AiHubPane"]},ssr:!1}),Q=n()(async()=>{},{loadableGenerated:{modules:["app/web/page.tsx -> ./FlowStudioPane"]},ssr:!1,loading:()=>a.jsx(G,{})});function Z(){return a.jsx(S,{children:(e,t)=>a.jsx(ei,{auth:e,onWorkspaceReady:t})})}let ee={id:"webapp-agent",title:"智能助手",kind:"webapp"},et={id:"ai-hub",title:"AI Hub",kind:"aihub"},er={id:"flow-studio",title:"Flow Studio",kind:"flowstudio"};function ea(){return"undefined"==typeof document?q:W(document.getElementById("web-theme-root")?.dataset.webTheme).id}function ei({auth:e,onWorkspaceReady:t}){let r=(0,o.useRef)(null),i=(0,o.useRef)(()=>{}),{state:n,epoch:s,rpc:l,onEvent:d,onTerminalData:c,onTerminalReset:u,sendTerminalInput:g}=function(e,t,r){let[a,i]=(0,o.useState)({connected:!1,error:null}),[n,s]=(0,o.useState)(0),l=(0,o.useRef)(null),d=(0,o.useRef)(0),c=(0,o.useRef)(new Map),u=(0,o.useRef)([]),f=(0,o.useRef)(0),p=(0,o.useRef)(new Map),b=(0,o.useRef)(new Map),m=(0,o.useRef)(new Map),h=(0,o.useRef)(1e3),x=(0,o.useRef)(!1),g=(0,o.useRef)(null),w=(0,o.useRef)(e),v=(0,o.useRef)(t),y=(0,o.useRef)(r);w.current=e,v.current=t,y.current=r;let k=(0,o.useCallback)((e,t)=>{let r=p.current.get(e);return r||p.current.set(e,r=new Set),r.add(t),()=>r.delete(t)},[]),j=(0,o.useCallback)((e,t)=>{let r=b.current.get(e);return r||b.current.set(e,r=new Set),r.add(t),()=>r.delete(t)},[]),S=(0,o.useCallback)((e,t)=>{let r=m.current.get(e);return r||m.current.set(e,r=new Set),r.add(t),()=>r.delete(t)},[]),C=(0,o.useCallback)((e,t)=>{let r=l.current;if(!r||r.readyState!==WebSocket.OPEN)return!1;let a=new TextEncoder().encode(t),i=new Uint8Array(6+a.byteLength),n=new DataView(i.buffer);return i[0]=1,i[1]=1,n.setUint32(2,e),i.set(a,6),r.send(i),!0},[]),z=(0,o.useCallback)(e=>{let t=l.current;t?.readyState===WebSocket.OPEN?t.send(e):u.current.push(e)},[]),N=(0,o.useCallback)((e,t={},r=15e3)=>new Promise((a,i)=>{if(e.startsWith("browser:")&&l.current?.readyState!==WebSocket.OPEN){i(Object.assign(Error("远程连接已断开,请等待重新连接"),{code:"EOFFLINE"}));return}let n=++f.current,o=setTimeout(()=>{c.current.delete(n),i(Error(`${e} timeout`))},r);c.current.set(n,{resolve:a,reject:i,timer:o,type:e}),z(JSON.stringify({type:e,_req:n,...t}))}),[z]),T=(0,o.useCallback)(async()=>{let e,t;x.current=!1;let r=++d.current;g.current&&(clearInterval(g.current),g.current=null);let a=l.current;if(a){a.onopen=a.onmessage=a.onerror=a.onclose=null;try{a.close()}catch{}}try{e=await v.current()}catch{r===d.current&&y.current();return}if(r===d.current&&!x.current){try{t=new WebSocket(`${"https:"===location.protocol?"wss:":"ws:"}//${location.host}/ws?nonce=${encodeURIComponent(e)}`)}catch(e){i({connected:!1,error:String(e)});return}t.binaryType="arraybuffer",l.current=t,t.onopen=()=>{if(r!==d.current||l.current!==t)return;for(let e of(h.current=1e3,i({connected:!0,error:null}),s(e=>e+1),u.current.splice(0)))t.send(e);let e=Date.now();g.current=setInterval(()=>{if(l.current!==t||t.readyState!==WebSocket.OPEN){clearInterval(g.current),g.current=null;return}if(Date.now()-e>25e3){try{t.close()}catch{}return}try{t.send(JSON.stringify({type:"ping"}))}catch{}},1e4);let a=()=>{e=Date.now()};t.addEventListener("message",a),t.addEventListener("close",()=>t.removeEventListener("message",a),{once:!0})},t.onmessage=e=>{let a;if(r===d.current&&l.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);b.current.get(e)?.forEach(e=>e(t.subarray(6),6===t[1]))}else if(t.byteLength>=6&&1===t[0]&&3===t[1]){let e=new DataView(t.buffer,t.byteOffset,t.byteLength).getUint32(2);m.current.get(e)?.forEach(e=>e())}else w.current(t);return}try{a=JSON.parse(e.data)}catch{return}if("error"===a.type&&null!=a.id){let e=c.current.get(a.id);if(e){c.current.delete(a.id),clearTimeout(e.timer);let t=Object.assign(Error(a.error||"gateway error"),{code:a.code});e.reject(t)}return}if(null!=a.id&&"string"==typeof a.type&&a.type.endsWith(":result")){let e=c.current.get(a.id);e&&(c.current.delete(a.id),clearTimeout(e.timer),e.resolve(a));return}p.current.get(a.type)?.forEach(e=>e(a))}},t.onclose=e=>{if(r!==d.current||l.current!==t)return;for(let[e,t]of(g.current&&(clearInterval(g.current),g.current=null),l.current=null,c.current))t.type.startsWith("browser:")&&(clearTimeout(t.timer),c.current.delete(e),t.reject(Object.assign(Error("远程连接已断开,请重新接管"),{code:"EOFFLINE"})));if(i({connected:!1,error:null}),4001===e.code||4003===e.code){y.current();return}if(x.current)return;let a=h.current;h.current=Math.min(2*a,8e3),setTimeout(()=>{x.current||r!==d.current||T()},a)},t.onerror=()=>{}}},[]);return{state:a,epoch:n,rpc:N,onEvent:k,onTerminalData:j,onTerminalReset:S,sendTerminalInput:C,reconnect:T}}((0,o.useCallback)(e=>{let t=function(e){let t=e instanceof Uint8Array?e:new Uint8Array(e.buffer,e.byteOffset,e.byteLength);if(t.byteLength<10||1!==t[0]||t[1]!==j.watcherFrame&&t[1]!==j.producerFrame)return null;let r=new DataView(t.buffer,t.byteOffset,t.byteLength);return{type:t[1],channelId:r.getUint32(2,!1),sequence:r.getUint32(6,!1),payload:t.subarray(10)}}(e);if(!t||t.type!==j.watcherFrame)return;i.current(t.channelId,t.sequence);let a=t.payload.slice().buffer;r.current?.contentWindow?.postMessage({type:"agent-web-shell:browser-frame:v1",channelId:t.channelId,sequence:t.sequence,data:a},window.location.origin,[a])},[]),e.getWsNonce,e.refresh),w=(0,o.useMemo)(()=>({request:(e,t,r)=>l(e,t,r),subscribe:(e,t)=>d("fs:event",t)}),[d,l]);i.current=(e,t)=>{l("browser:frame-ack",{channelId:e,sequence:t}).catch(()=>void 0)};let[v,S]=(0,o.useState)([{...ee}]);(0,o.useRef)(v).current=v;let[C,z]=(0,o.useState)(ee.id),[N,T]=(0,o.useState)({});(0,o.useRef)(!1),(0,o.useRef)(null);let R=(0,o.useRef)(new Map),P=(0,o.useRef)(new Map),_=(0,o.useCallback)((e,t)=>{R.current.set(e,t);let r=window.setTimeout(()=>{if(R.current.get(e)!==t)return;let r=P.current.get(e);r&&(P.current.delete(e),t(r,!0))},180);return()=>{window.clearTimeout(r),R.current.get(e)===t&&R.current.delete(e)}},[]),E=(0,o.useCallback)(e=>{if(!C||v.find(e=>e.id===C)?.kind)return;let t=R.current.get(C);t?t(e):l("term:input",{id:C,data:`\x15${e}`}).catch(()=>{}),B(!1)},[C,l,v]),[M,I]=(0,o.useState)(!1),[O,D]=(0,o.useState)({}),[L,F]=(0,o.useState)(null),[q,B]=(0,o.useState)(!1),[U,H]=(0,o.useState)("files"),[V,G]=(0,o.useState)(null),[Z,ei]=(0,o.useState)(!0),[es,el]=(0,o.useState)(null),[ed,ec]=(0,o.useState)(!1),[eu,ef]=(0,o.useState)([]),[ep,eb]=(0,o.useState)(k.map((e,t)=>({id:`default-${t+1}`,command:e}))),[em,eh]=(0,o.useState)(ea),[ex,eg]=(0,o.useState)(!1),[ew,ev]=(0,o.useState)(!1),ey=W(em),ek=(0,o.useRef)(null),[ej,eS]=(0,o.useState)(0),[eC,ez]=(0,o.useState)(!1),eN=(0,o.useRef)(null),eT=(0,o.useRef)(null),eR=(0,o.useCallback)(e=>{r.current?.contentWindow?.postMessage({type:"agent-web-shell:skin:v1",skin:e},window.location.origin)},[]);(0,o.useRef)(0);let eP=C?N[C]??null:null;(0,o.useCallback)(t=>{fetch("/api/web-console/preferences",{method:"PATCH",credentials:"same-origin",headers:{"content-type":"application/json","x-csrf-token":e.csrfToken},body:JSON.stringify(t)}).catch(()=>{})},[e.csrfToken]),(0,o.useCallback)(t=>{e.csrfToken&&fetch("/api/web-console/device-state",{method:"PUT",credentials:"same-origin",headers:{"content-type":"application/json","x-csrf-token":e.csrfToken},body:JSON.stringify(t)}).catch(()=>{})},[e.csrfToken]);let e_=(0,o.useCallback)(e=>{F(e),B(!1)},[]),eE=(0,o.useCallback)(()=>{if(v.length>=8)return;let e=`t-web-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`;S(t=>t.length>=8?t:[...t,{id:e,title:`Terminal ${t.length+1}`}]),z(e)},[v.length]),eM=(0,o.useCallback)(e=>{let t=v.find(e=>e.id===C);if(t?.kind&&"webapp"!==t.kind)return;if(t&&!t.kind){let r=R.current.get(t.id);r?r(e,!0):P.current.set(t.id,e),B(!1);return}let r=v.length>=8?v.find(e=>!e.kind):null,a=r?.id??`t-web-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`;r?P.current.set(a,e):S(t=>[...t,{id:a,title:`Terminal ${t.length+1}`,initialCommand:e}]),z(a),B(!1)},[C,v]),eI=e=>{if(e===ee.id)return;let t=v.find(t=>t.id===e)?.kind;(t||window.confirm("关闭页签会终止该终端进程,确认关闭?"))&&(S(t=>{let r=t.filter(t=>t.id!==e);return C===e&&z(r[0]?.id??null),r}),t||l("term:kill",{id:e}).catch(()=>{}))},eO=(0,o.useCallback)(()=>{S(e=>{let t=e.find(e=>"aihub"===e.kind);return t?(z(t.id),e):(z(et.id),[...e,{...et}])})},[]),eD=(0,o.useCallback)(()=>{S(e=>{let t=e.find(e=>"flowstudio"===e.kind);return t?(z(t.id),e):(z(er.id),[...e,{...er}])})},[]),eA=(0,o.useCallback)(()=>{z(ee.id),r.current?.contentWindow?.postMessage({type:"agent-web-shell:open-browser-live:v1"},window.location.origin)},[]),eL=(0,o.useCallback)(e=>{if(!C||v.length<2)return;let t=(v.findIndex(e=>e.id===C)+e+v.length)%v.length;z(v[t].id)},[C,v]),eF=Math.max(0,v.findIndex(e=>e.id===C)),eq=v[eF]?.kind==="webapp"?ey.cssVars["--ui-term-col-bg"]:ey.termHostBg,eB={...eo.root,...ey.cssVars,"--ui-active-content-bg":eq,"--ui-terminal-bg":ey.termHostBg,"--ui-primary-text":ey.keybar.accentText,background:"var(--ui-root-bg)",color:"var(--ui-text)"},eU=(0,o.useCallback)(()=>{ek.current=null,eS(0),ez(!1)},[]),eW=(0,o.useCallback)(e=>{Math.abs(e)>=64&&v.length>1&&eL(e<0?1:-1),eU()},[v.length,eL,eU]),e$=e=>e instanceof Element&&!!e.closest(".terminal-screen");return(0,o.useCallback)((e="smooth")=>{let t=eT.current;if(!t||!C)return;let r=t.querySelector(`[data-terminal-id="${C}"]`);if(!r)return;if(r===t.querySelector("[data-terminal-id]")){t&&(t.scrollLeft=0);return}let a=t.querySelector(".terminal-connection"),i=a?.offsetWidth??0,n=r.offsetLeft,o=n+r.offsetWidth,s=t.scrollLeft,l=s+t.clientWidth-i;n<s+8?t.scrollTo({left:Math.max(0,n-8),behavior:e}):o>l-8&&t.scrollTo({left:o-t.clientWidth+i+8,behavior:e})},[C]),(0,a.jsxs)("div",{className:"web-root",style:eB,children:[a.jsx("style",{dangerouslySetInnerHTML:{__html:en}}),(0,a.jsxs)("div",{className:"terminal-tabs",ref:eT,children:[v.map(e=>(0,a.jsxs)("div",{"data-terminal-id":e.id,draggable:!0,className:`terminal-tab ${e.id===C?"active":""}`,onDragStart:()=>{eN.current=e.id},onDragOver:e=>e.preventDefault(),onDrop:t=>{t.preventDefault();let r=eN.current;eN.current=null,r&&r!==e.id&&S(t=>{let a=t.findIndex(e=>e.id===r),i=t.findIndex(t=>t.id===e.id);if(a<0||i<0)return t;let n=[...t],[o]=n.splice(a,1);return n.splice(i,0,o),l("term:reorder",{ids:n.filter(e=>!e.kind).map(e=>e.id)}).catch(()=>{}),n})},onClick:()=>z(e.id),onDoubleClick:()=>{if(e.kind)return;let t=window.prompt("页签名称",e.title)?.trim();t&&l("term:rename",{id:e.id,title:t}).then(()=>S(r=>r.map(r=>r.id===e.id?{...r,title:t}:r))).catch(()=>{})},children:[a.jsx("span",{children:e.title}),"webapp"!==e.kind&&a.jsx("button",{tabIndex:-1,onClick:t=>{t.stopPropagation(),eI(e.id)},children:"\xd7"})]},e.id)),a.jsx("button",{className:"terminal-add",disabled:v.length>=8,onClick:eE,children:"+"}),(0,a.jsxs)("div",{className:"terminal-connection",children:[a.jsx("button",{type:"button",className:"file-drawer-toggle","aria-label":"刷新页面",title:"刷新页面",onClick:()=>window.location.reload(),children:a.jsx(f,{size:17,"aria-hidden":"true"})}),a.jsx(y,{}),a.jsx("button",{type:"button",className:"file-drawer-toggle","aria-label":"打开远程桌面",title:"远程桌面 \xb7 浏览器直播",onClick:eA,children:a.jsx(p,{size:17,"aria-hidden":"true"})}),a.jsx("button",{type:"button",className:"file-drawer-toggle","aria-label":"打开 AI Hub",title:"AI Hub \xb7 多模型对比",onClick:eO,children:a.jsx(b,{size:17,"aria-hidden":"true"})}),a.jsx("button",{type:"button",className:"file-drawer-toggle","aria-label":"打开数字人",title:"数字人 \xb7 Flow Studio",onClick:eD,children:a.jsx(m,{size:17,"aria-hidden":"true"})}),a.jsx("button",{type:"button",className:"file-drawer-toggle","aria-label":q?"关闭我的文件":"打开我的文件",title:"我的文件","aria-expanded":q,onClick:()=>B(e=>!e),children:a.jsx(h,{size:17,"aria-hidden":"true"})}),(0,a.jsxs)("div",{className:"theme-avatar-with-status",children:[a.jsx($,{username:e.user?.username??"?",themeId:em,onThemeChange:eh,accent:ey.keybar.accent,accentText:ey.keybar.accentText}),a.jsx("span",{className:"theme-avatar-status","data-connected":n.connected,"aria-label":n.connected?"已连接":"未连接"})]})]})]}),(0,a.jsxs)("main",{className:`workspace ${q?"show-tree":""} ${L?"has-preview":""}`,style:eo.workspace,children:[a.jsx("section",{className:"term-col",style:eo.termCol,onPointerDownCapture:e=>{"touch"===e.pointerType&&e$(e.target)&&(eU(),ek.current={x:e.clientX,y:e.clientY,axis:"pending",pointerId:e.pointerId})},onPointerMoveCapture:e=>{let t=ek.current;if(!t||e.pointerId!==t.pointerId||"touch"!==e.pointerType)return;let r=e.clientX-t.x,a=e.clientY-t.y;if("pending"===t.axis){if(8>=Math.max(Math.abs(r),Math.abs(a)))return;if(Math.abs(a)>=1.2*Math.abs(r)){ek.current=null;return}t.axis="horizontal",ez(!0);let e=r=>{window.removeEventListener("pointerup",e),window.removeEventListener("pointercancel",e),ek.current===t&&eU()};window.addEventListener("pointerup",e),window.addEventListener("pointercancel",e)}"horizontal"===t.axis&&(e.preventDefault(),eS(r))},onPointerUpCapture:e=>{let t=ek.current;if(!t||e.pointerId!==t.pointerId)return;let r=e.clientX-t.x;"horizontal"===t.axis&&Math.abs(r)>=64?eW(r):eU()},onPointerCancelCapture:eU,children:a.jsx("div",{className:"terminal-track",style:{transform:`translate3d(calc(${-(100*eF)}% + ${ej}px),0,0)`,transition:eC?"none":"transform 260ms cubic-bezier(.22,.8,.32,1)"},children:v.map(e=>a.jsx("div",{className:"terminal-slide",style:{position:"relative"},children:"webapp"===e.kind?a.jsx("iframe",{ref:r,className:"webapp-frame",src:"/app/",title:e.title,onLoad:()=>eR(em)}):"aihub"===e.kind?a.jsx(Y,{visible:e.id===C,rpc:l}):"flowstudio"===e.kind?a.jsx(Q,{visible:e.id===C}):a.jsx(X,{terminalId:e.id,title:e.title,initialCommand:e.initialCommand,visible:e.id===C,state:n,rpc:l,onEvent:d,onTerminalData:c,onTerminalReset:u,sendTerminalInput:g,keyOrder:eu,keybarHidden:ed,onKeyOrderChange:ef,onKeybarHiddenChange:ec,terminalTheme:ey,initialScrollLine:O[e.id]??null,onScrollLineChange:t=>D(r=>r[e.id]===t?r:{...r,[e.id]:t}),onRegisterFill:t=>_(e.id,t),onCwdChange:t=>t&&T(r=>({...r,[e.id]:t}))})},e.id))})}),q&&a.jsx("div",{className:"drawer-mask",onClick:()=>B(!1)}),(0,a.jsxs)("aside",{className:`tree-col ${q?"tree-col-open":""}`,style:eo.treeCol,children:[(0,a.jsxs)("div",{className:"tree-head",style:eo.treeHead,children:[a.jsx("button",{className:"files"===U?"drawer-tab-active":"",onClick:()=>H("files"),children:"文件"}),a.jsx("button",{className:"history"===U?"drawer-tab-active":"",onClick:()=>H("history"),children:"历史"}),a.jsx("span",{className:"tree-cwd",style:eo.treeCwd,children:eP??""}),a.jsx("button",{style:{...eo.iconBtn,marginLeft:"auto",flexShrink:0},onClick:()=>B(!1),"aria-label":"close drawer",children:a.jsx(x,{size:15,"aria-hidden":"true"})})]}),"files"===U?a.jsx(K,{ready:s>0,followCwd:!0,cwd:eP,gateway:w,onOpenFile:e_,selectedPath:L,initialRoot:V,initialFollow:Z,revealRequest:es,onTreeStateChange:(e,t)=>{G(e),ei(t)}}):a.jsx(A,{csrfToken:e.csrfToken,terminalId:v.find(e=>e.id===C)?.kind==="webapp"?null:C,pinnedCommands:ep,onPinnedCommandsChange:eb,onFill:E,onExecute:eM}),(0,a.jsxs)("div",{style:eo.treeFoot,children:[a.jsx("span",{style:eo.treeFootDot}),a.jsx("span",{children:"实时同步"})]})]}),L&&a.jsx("section",{className:"preview-col",style:eo.previewCol,children:a.jsx(J,{path:L,gateway:w,onClose:()=>F(null)})})]})]})}let en=`
|
|
2
2
|
html, body { width:100%; height:100%; margin:0; overflow:hidden; background:var(--ui-root-bg, #0b0b10); overscroll-behavior:none; color:var(--ui-text, #e8e8ee); }
|
|
3
3
|
* { -webkit-tap-highlight-color: transparent; }
|
|
4
4
|
.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; }
|
|
@@ -259,4 +259,4 @@
|
|
|
259
259
|
.preview-col { position: relative; inset: auto; width: auto; height: auto; border-left: 1px solid var(--ui-tree-border, #1e1e26); }
|
|
260
260
|
.drawer-mask { display: none; }
|
|
261
261
|
}
|
|
262
|
-
`,
|
|
262
|
+
`,eo={root:{height:"100dvh",display:"flex",flexDirection:"column",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", sans-serif',overflow:"hidden"},iconBtn:{minWidth:28,height:28,borderRadius:7,border:"1px solid var(--ui-tabbar-border, #303442)",background:"var(--ui-tab-bg, #202029)",color:"var(--ui-tab-text, #aaaab8)",fontSize:13},workspace:{flex:1,minHeight:0,display:"grid",position:"relative"},treeCol:{background:"var(--ui-tree-bg, #121218)",minHeight:0,flexDirection:"column"},treeHead:{display:"flex",alignItems:"center",gap:8,padding:"10px 12px 4px",fontSize:11,textTransform:"uppercase",letterSpacing:1,color:"#778",flexShrink:0},treeCwd:{fontSize:10,color:"#556",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:150,textTransform:"none",letterSpacing:0},treeFoot:{display:"flex",alignItems:"center",gap:7,minHeight:31,padding:"6px 11px calc(env(safe-area-inset-bottom) + 6px)",borderTop:"1px solid var(--ui-tabbar-border, #282832)",boxShadow:"0 -5px 16px rgba(0,0,0,.22)",background:"var(--ui-tab-bg, #15151c)",color:"var(--ui-connection-text, #777789)",fontSize:10.5,flexShrink:0},treeFootDot:{width:6,height:6,borderRadius:99,background:"var(--ui-success, #9ece6a)",boxShadow:"0 0 0 2px color-mix(in srgb, var(--ui-success, #9ece6a) 12%, transparent)",flexShrink:0},termCol:{minWidth:0,minHeight:0,display:"flex",flexDirection:"column",background:"var(--ui-term-col-bg, #101014)",gridColumn:1,overflow:"hidden"},previewCol:{minWidth:0,minHeight:0}}},4972:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>s,metadata:()=>i,viewport:()=>o});var a=r(3477);let i={title:"AgentRoam",manifest:"/manifest.webmanifest",appleWebApp:{capable:!0,title:"AgentRoam",statusBarStyle:"black-translucent"},icons:{icon:"/pwa/icon-192.png",apple:"/pwa/icon-192.png"},description:"General-purpose AI agent API server"},n="#070a0b",o={themeColor:n,colorScheme:"dark"};function s({children:e}){return a.jsx("html",{lang:"zh-CN",style:{background:n,colorScheme:"dark"},children:(0,a.jsxs)("body",{style:{margin:0,minHeight:"100dvh",background:n},children:[e,a.jsx("script",{src:"/pwa/install.js",defer:!0})]})})}},489:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>a});let a=(0,r(8979).createProxy)(String.raw`/Users/caoqu/.codex/worktrees/npm-preview-39/customer-agent/packages/server/app/web/error.tsx#default`)},9257:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>u,dynamic:()=>l,generateViewport:()=>c});var a=r(3477),i=r(2110);let n=Object.fromEntries([{id:"pearl",label:"珍珠白",swatch:"#f5f6fa",preview:["#f5f6fa","#4f6ef7"],cssVars:{"--ui-color-scheme":"light","--ui-root-bg":"#f5f6fa","--ui-text":"#111827","--ui-tabbar-bg":"#eef0f6","--ui-tabbar-border":"#dfe3ee","--ui-tab-bg":"#e6e9f4","--ui-tab-text":"#5b6472","--ui-tab-active-bg":"#ffffff","--ui-tab-active-text":"#111827","--ui-tab-accent":"#4f6ef7","--ui-connection-bg":"#eef0f6","--ui-connection-text":"#9ca3af","--ui-tree-bg":"#fbfcfe","--ui-tree-border":"#e5e8f0","--ui-term-col-bg":"#f5f6fa","--ui-fab-bg":"#ffffff","--ui-fab-border":"#d8dcea","--ui-muted-surface":"#eef0f6","--ui-muted-border":"#d8dcea","--ui-muted-text":"#6b7280","--ui-panel-input-bg":"#ffffff","--ui-panel-input-text":"#111827","--ui-panel-input-border":"#d8dcea","--ui-drawer-tab-text":"#6b7280","--ui-drawer-tab-active":"#111827","--ui-history-item-text":"#1f2937","--ui-history-meta":"#9ca3af","--ui-success":"#059669","--ui-error":"#dc2626"},termHostBg:"#ffffff",keybar:{bg:"#eef0f6",border:"#dfe3ee",keyBg:"#ffffff",keyBorder:"#d8dcea",keyText:"#4b5563",accent:"#4f6ef7",accentText:"#ffffff",drag:"#a5b4fc"},xterm:{background:"#ffffff",foreground:"#1f2937",cursor:"#4f6ef7",selectionBackground:"#c7d2fe",black:"#24292e",red:"#d73a49",green:"#22863a",yellow:"#b08800",blue:"#005cc5",magenta:"#6f42c1",cyan:"#1b7c83",white:"#6a737d",brightBlack:"#959da5",brightWhite:"#fafbfc"}},{id:"scifi",label:"科幻霓虹",swatch:"#050a14",preview:["#050a14","#22d3ee"],cssVars:{"--ui-color-scheme":"dark","--ui-root-bg":"#050a14","--ui-text":"#e2f3ff","--ui-tabbar-bg":"#0a1220","--ui-tabbar-border":"#10263c","--ui-tab-bg":"#0d1626","--ui-tab-text":"#5c7893","--ui-tab-active-bg":"#122036","--ui-tab-active-text":"#e2f3ff","--ui-tab-accent":"#22d3ee","--ui-connection-bg":"#0a1220","--ui-connection-text":"#5c7893","--ui-tree-bg":"#0d1626","--ui-tree-border":"#10263c","--ui-term-col-bg":"#050a14","--ui-fab-bg":"#122036","--ui-fab-border":"#155e75","--ui-muted-surface":"#0d1626","--ui-muted-border":"#164e63","--ui-muted-text":"#9fb8d0","--ui-panel-input-bg":"#0a1220","--ui-panel-input-text":"#e2f3ff","--ui-panel-input-border":"#164e63","--ui-drawer-tab-text":"#5c7893","--ui-drawer-tab-active":"#e2f3ff","--ui-history-item-text":"#d5ecfb","--ui-history-meta":"#5c7893","--ui-success":"#34d399","--ui-error":"#fb7185"},termHostBg:"#0a1220",keybar:{bg:"#0a1220",border:"#10263c",keyBg:"#0d1626",keyBorder:"#164e63",keyText:"#9fb8d0",accent:"#22d3ee",accentText:"#04121a",drag:"#155e75"},xterm:{background:"#0a1220",foreground:"#e2f3ff",cursor:"#22d3ee",selectionBackground:"#164e63",black:"#0d1626",red:"#fb7185",green:"#34d399",yellow:"#fbbf24",blue:"#38bdf8",magenta:"#e879f9",cyan:"#22d3ee",white:"#e2f3ff",brightBlack:"#5c7893",brightWhite:"#ffffff"}},{id:"noir",label:"暗夜黑",swatch:"#0f1115",preview:["#0f1115","#a78bfa"],cssVars:{"--ui-color-scheme":"dark","--ui-root-bg":"#0f1115","--ui-text":"#eceff4","--ui-tabbar-bg":"#14171d","--ui-tabbar-border":"#232833","--ui-tab-bg":"#191d24","--ui-tab-text":"#6b7280","--ui-tab-active-bg":"#1f242d","--ui-tab-active-text":"#eceff4","--ui-tab-accent":"#a78bfa","--ui-connection-bg":"#14171d","--ui-connection-text":"#6b7280","--ui-tree-bg":"#191d24","--ui-tree-border":"#232833","--ui-term-col-bg":"#0f1115","--ui-fab-bg":"#1f242d","--ui-fab-border":"#2a3040","--ui-muted-surface":"#191d24","--ui-muted-border":"#2a3040","--ui-muted-text":"#aab2bf","--ui-panel-input-bg":"#14171d","--ui-panel-input-text":"#eceff4","--ui-panel-input-border":"#2a3040","--ui-drawer-tab-text":"#6b7280","--ui-drawer-tab-active":"#eceff4","--ui-history-item-text":"#d7dce4","--ui-history-meta":"#6b7280","--ui-success":"#4ade80","--ui-error":"#f87171"},termHostBg:"#14171d",keybar:{bg:"#14171d",border:"#232833",keyBg:"#191d24",keyBorder:"#2a3040",keyText:"#aab2bf",accent:"#a78bfa",accentText:"#0f1115",drag:"#4b4470"},xterm:{background:"#14171d",foreground:"#eceff4",cursor:"#a78bfa",selectionBackground:"#3b3654",black:"#191d24",red:"#f87171",green:"#4ade80",yellow:"#fbbf24",blue:"#60a5fa",magenta:"#c084fc",cyan:"#67e8f9",white:"#eceff4",brightBlack:"#6b7280",brightWhite:"#ffffff"}}].map(e=>[e.id,e])),o={dark:"noir",black:"noir",gray:"noir",blue:"noir",red:"noir",yellow:"noir",green:"noir",white:"pearl"};function s(e){if(e&&e in n)return n[e];let t=e?o[e]:void 0;return t?n[t]:n.pearl}r(2761);let l="force-dynamic";function d(){try{let{userId:e}=(0,i.nQ)();return s(i.hw.getPreferences(e)?.theme)}catch{return s(void 0)}}function c(){let e=d();return{colorScheme:e.cssVars["--ui-color-scheme"],themeColor:e.cssVars["--ui-tabbar-bg"]}}function u({children:e}){let t=d(),r={...t.cssVars,colorScheme:t.cssVars["--ui-color-scheme"],background:t.cssVars["--ui-root-bg"],color:t.cssVars["--ui-text"]};return a.jsx("div",{id:"web-theme-root","data-web-theme":t.id,style:r,children:e})}},6742:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>a});let a=(0,r(8979).createProxy)(String.raw`/Users/caoqu/.codex/worktrees/npm-preview-39/customer-agent/packages/server/app/web/page.tsx#default`)},785:(e,t,r)=>{"use strict";r.d(t,{ME:()=>s,kO:()=>o,sr:()=>l});var a=r(9411);let i=function(){let e=process.argv[1];if(e){let t=(0,a.dirname)((0,a.resolve)(e)),r=`${a.sep}node_modules${a.sep}.bin`;return t.endsWith(r)?(0,a.resolve)(t,"..",".."):t}return(0,a.resolve)(process.cwd())}();function n(e=process.env,t=i){return(0,a.resolve)(e.AGENT_DATA_DIR?.trim()||t)}function o(){return n()}function s(e=process.env,t=n(e)){let r=e.AGENT_LOG_DIR?.trim();if(r)return(0,a.resolve)(r);let i=e.AGENTROAM_DATA_DIR?.trim();return i?(0,a.resolve)(i,"logs"):(0,a.join)(t,".agent-data","logs")}function l(){return function(e=process.env,t=i){return(0,a.resolve)(e.AGENT_WORKING_DIRECTORY?.trim()||t)}(process.env,o())}},2110:(e,t,r)=>{"use strict";r.d(t,{hw:()=>n.hw,nQ:()=>s});var a=r(1322),i=r(785),n=r(3710);let o=new a.T3f((0,i.kO)());function s(){return{userId:o.getOrCreatePrincipal().userId,username:"local",deviceId:"browser"}}},3710:(e,t,r)=>{"use strict";r.d(t,{$U:()=>u,Ci:()=>p,VP:()=>n,Xd:()=>c,ZA:()=>s,ap:()=>f,hw:()=>l,ki:()=>o,yN:()=>b});var a=r(1322),i=r(785);let n="customer_agent_session",o="customer_agent_device",s=new a.E0V(new a.S3_((0,i.kO)())),l=new a.XU4((0,i.kO)());function d(e){let t={};for(let r of(e.headers.get("cookie")||"").split(";")){let e=r.indexOf("=");e>0&&(t[r.slice(0,e).trim()]=decodeURIComponent(r.slice(e+1).trim()))}return t}function c(e){return d(e)[n]||null}function u(e){let t=d(e);return{ip:e.headers.get("x-forwarded-for")?.split(",")[0].trim()||"unknown",userAgent:e.headers.get("user-agent")||"",deviceId:t[o],deviceName:e.headers.get("x-device-name")||""}}function f(e){let t=s.authenticateToken(c(e));return s.validateCsrf(t,e.headers.get("x-csrf-token")),t}function p(e,t,r){return{httpOnly:r,sameSite:"strict",secure:"https"===("1"===process.env.AGENT_TRUST_TUNNEL_PROXY?e.headers.get("x-forwarded-proto"):null)||"https:"===new URL(e.url).protocol,path:"/",maxAge:t}}function b(e){let t=e instanceof a.CTh?e:new a.CTh("UNAUTHENTICATED","认证失败",401);return Response.json({error:{code:t.code,message:t.message}},{status:t.status})}},2761:()=>{}};var t=require("../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),a=t.X(0,[8375,5303,1322],()=>r(237));module.exports=a})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/web/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"1338":{"*":{"id":"8718","name":"*","chunks":[],"async":false}},"1573":{"*":{"id":"8781","name":"*","chunks":[],"async":false}},"3194":{"*":{"id":"8383","name":"*","chunks":[],"async":false}},"5613":{"*":{"id":"8949","name":"*","chunks":[],"async":false}},"6061":{"*":{"id":"
|
|
1
|
+
globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/web/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"1338":{"*":{"id":"8718","name":"*","chunks":[],"async":false}},"1573":{"*":{"id":"8781","name":"*","chunks":[],"async":false}},"3194":{"*":{"id":"8383","name":"*","chunks":[],"async":false}},"5613":{"*":{"id":"8949","name":"*","chunks":[],"async":false}},"6061":{"*":{"id":"7977","name":"*","chunks":[],"async":false}},"6554":{"*":{"id":"6569","name":"*","chunks":[],"async":false}},"7709":{"*":{"id":"1782","name":"*","chunks":[],"async":false}},"9011":{"*":{"id":"7415","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/caoqu/.codex/worktrees/npm-preview-39/customer-agent/node_modules/.bun/next@14.2.35+6dbf9a050bc9aadb/node_modules/next/dist/client/components/app-router.js":{"id":7709,"name":"*","chunks":[],"async":false},"/Users/caoqu/.codex/worktrees/npm-preview-39/customer-agent/node_modules/.bun/next@14.2.35+6dbf9a050bc9aadb/node_modules/next/dist/esm/client/components/app-router.js":{"id":7709,"name":"*","chunks":[],"async":false},"/Users/caoqu/.codex/worktrees/npm-preview-39/customer-agent/node_modules/.bun/next@14.2.35+6dbf9a050bc9aadb/node_modules/next/dist/client/components/client-page.js":{"id":5613,"name":"*","chunks":[],"async":false},"/Users/caoqu/.codex/worktrees/npm-preview-39/customer-agent/node_modules/.bun/next@14.2.35+6dbf9a050bc9aadb/node_modules/next/dist/esm/client/components/client-page.js":{"id":5613,"name":"*","chunks":[],"async":false},"/Users/caoqu/.codex/worktrees/npm-preview-39/customer-agent/node_modules/.bun/next@14.2.35+6dbf9a050bc9aadb/node_modules/next/dist/client/components/error-boundary.js":{"id":6554,"name":"*","chunks":[],"async":false},"/Users/caoqu/.codex/worktrees/npm-preview-39/customer-agent/node_modules/.bun/next@14.2.35+6dbf9a050bc9aadb/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":6554,"name":"*","chunks":[],"async":false},"/Users/caoqu/.codex/worktrees/npm-preview-39/customer-agent/node_modules/.bun/next@14.2.35+6dbf9a050bc9aadb/node_modules/next/dist/client/components/layout-router.js":{"id":1338,"name":"*","chunks":[],"async":false},"/Users/caoqu/.codex/worktrees/npm-preview-39/customer-agent/node_modules/.bun/next@14.2.35+6dbf9a050bc9aadb/node_modules/next/dist/esm/client/components/layout-router.js":{"id":1338,"name":"*","chunks":[],"async":false},"/Users/caoqu/.codex/worktrees/npm-preview-39/customer-agent/node_modules/.bun/next@14.2.35+6dbf9a050bc9aadb/node_modules/next/dist/client/components/not-found-boundary.js":{"id":9011,"name":"*","chunks":[],"async":false},"/Users/caoqu/.codex/worktrees/npm-preview-39/customer-agent/node_modules/.bun/next@14.2.35+6dbf9a050bc9aadb/node_modules/next/dist/esm/client/components/not-found-boundary.js":{"id":9011,"name":"*","chunks":[],"async":false},"/Users/caoqu/.codex/worktrees/npm-preview-39/customer-agent/node_modules/.bun/next@14.2.35+6dbf9a050bc9aadb/node_modules/next/dist/client/components/render-from-template-context.js":{"id":1573,"name":"*","chunks":[],"async":false},"/Users/caoqu/.codex/worktrees/npm-preview-39/customer-agent/node_modules/.bun/next@14.2.35+6dbf9a050bc9aadb/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":1573,"name":"*","chunks":[],"async":false},"/Users/caoqu/.codex/worktrees/npm-preview-39/customer-agent/packages/server/app/web/page.tsx":{"id":6061,"name":"*","chunks":["693","static/chunks/693-41d7c8e27a8513d1.js","541","static/chunks/app/web/page-f9926cbf4c1badd4.js"],"async":false},"/Users/caoqu/.codex/worktrees/npm-preview-39/customer-agent/packages/server/app/web/neural-boot.css":{"id":7125,"name":"*","chunks":["606","static/chunks/app/web/layout-e0dd41d18df8ee9e.js"],"async":false},"/Users/caoqu/.codex/worktrees/npm-preview-39/customer-agent/packages/server/app/web/error.tsx":{"id":3194,"name":"*","chunks":["980","static/chunks/app/web/error-f69dbd3718cb2107.js"],"async":false}},"entryCSSFiles":{"/Users/caoqu/.codex/worktrees/npm-preview-39/customer-agent/packages/server/":[],"/Users/caoqu/.codex/worktrees/npm-preview-39/customer-agent/packages/server/app/layout":[],"/Users/caoqu/.codex/worktrees/npm-preview-39/customer-agent/packages/server/app/web/page":[],"/Users/caoqu/.codex/worktrees/npm-preview-39/customer-agent/packages/server/app/web/layout":["static/css/71e679260520d186.css"],"/Users/caoqu/.codex/worktrees/npm-preview-39/customer-agent/packages/server/app/web/error":[]}}
|
|
@@ -1,26 +1,27 @@
|
|
|
1
1
|
{
|
|
2
2
|
"/_not-found/page": "app/_not-found/page.js",
|
|
3
3
|
"/api/auth/verify/route": "app/api/auth/verify/route.js",
|
|
4
|
-
"/api/flow/v1/runs/[runId]/cancel/route": "app/api/flow/v1/runs/[runId]/cancel/route.js",
|
|
5
4
|
"/api/flow/v1/runs/route": "app/api/flow/v1/runs/route.js",
|
|
6
5
|
"/api/mcp/connect/route": "app/api/mcp/connect/route.js",
|
|
7
|
-
"/api/flow/v1/runs/[runId]/events/route": "app/api/flow/v1/runs/[runId]/events/route.js",
|
|
8
6
|
"/api/mcp/disconnect/route": "app/api/mcp/disconnect/route.js",
|
|
7
|
+
"/api/flow/v1/runs/[runId]/cancel/route": "app/api/flow/v1/runs/[runId]/cancel/route.js",
|
|
9
8
|
"/api/mcp/servers/route": "app/api/mcp/servers/route.js",
|
|
10
9
|
"/api/memory/route": "app/api/memory/route.js",
|
|
11
10
|
"/api/memory/[key]/route": "app/api/memory/[key]/route.js",
|
|
12
|
-
"/api/plugins/load/route": "app/api/plugins/load/route.js",
|
|
13
11
|
"/api/projects/[id]/route": "app/api/projects/[id]/route.js",
|
|
14
12
|
"/api/projects/check/route": "app/api/projects/check/route.js",
|
|
13
|
+
"/api/plugins/load/route": "app/api/plugins/load/route.js",
|
|
15
14
|
"/api/projects/directories/route": "app/api/projects/directories/route.js",
|
|
16
|
-
"/api/projects/route": "app/api/projects/route.js",
|
|
17
15
|
"/api/projects/roots/route": "app/api/projects/roots/route.js",
|
|
16
|
+
"/api/projects/route": "app/api/projects/route.js",
|
|
18
17
|
"/api/push/subscribe/route": "app/api/push/subscribe/route.js",
|
|
19
18
|
"/api/push/unsubscribe/route": "app/api/push/unsubscribe/route.js",
|
|
20
19
|
"/api/push/vapid/route": "app/api/push/vapid/route.js",
|
|
20
|
+
"/api/sessions/[id]/fork-at/route": "app/api/sessions/[id]/fork-at/route.js",
|
|
21
21
|
"/api/remote-tools/register/route": "app/api/remote-tools/register/route.js",
|
|
22
|
-
"/api/
|
|
22
|
+
"/api/flow/v1/runs/[runId]/events/route": "app/api/flow/v1/runs/[runId]/events/route.js",
|
|
23
23
|
"/api/tool-policies/[policyId]/route": "app/api/tool-policies/[policyId]/route.js",
|
|
24
|
+
"/api/skills/route": "app/api/skills/route.js",
|
|
24
25
|
"/api/tools/route": "app/api/tools/route.js",
|
|
25
26
|
"/api/web-auth/login/route": "app/api/web-auth/login/route.js",
|
|
26
27
|
"/api/web-auth/logout/route": "app/api/web-auth/logout/route.js",
|
|
@@ -28,38 +29,38 @@
|
|
|
28
29
|
"/api/web-auth/setup/route": "app/api/web-auth/setup/route.js",
|
|
29
30
|
"/api/web-console/history/route": "app/api/web-console/history/route.js",
|
|
30
31
|
"/api/web-console/preferences/route": "app/api/web-console/preferences/route.js",
|
|
31
|
-
"/api/agent/
|
|
32
|
+
"/api/agent/harness/status/route": "app/api/agent/harness/status/route.js",
|
|
32
33
|
"/api/agent/abort/route": "app/api/agent/abort/route.js",
|
|
33
|
-
"/api/agent
|
|
34
|
+
"/api/agent/answer/route": "app/api/agent/answer/route.js",
|
|
34
35
|
"/api/agent-workspaces/[workspaceId]/sessions/route": "app/api/agent-workspaces/[workspaceId]/sessions/route.js",
|
|
35
|
-
"/api/agent/harness/status/route": "app/api/agent/harness/status/route.js",
|
|
36
36
|
"/api/agent/model/route": "app/api/agent/model/route.js",
|
|
37
37
|
"/api/agent/runtime-health/route": "app/api/agent/runtime-health/route.js",
|
|
38
38
|
"/api/agent/models/route": "app/api/agent/models/route.js",
|
|
39
|
-
"/api/agent/steer/route": "app/api/agent/steer/route.js",
|
|
40
|
-
"/api/flow-studio/config/route": "app/api/flow-studio/config/route.js",
|
|
41
39
|
"/api/business/route": "app/api/business/route.js",
|
|
40
|
+
"/api/flow-studio/config/route": "app/api/flow-studio/config/route.js",
|
|
42
41
|
"/api/flow/v1/catalog/route": "app/api/flow/v1/catalog/route.js",
|
|
42
|
+
"/api/agent/steer/route": "app/api/agent/steer/route.js",
|
|
43
|
+
"/api/agent-workspaces/route": "app/api/agent-workspaces/route.js",
|
|
43
44
|
"/api/client-logs/route": "app/api/client-logs/route.js",
|
|
44
|
-
"/api/agent/stream/route": "app/api/agent/stream/route.js",
|
|
45
|
-
"/api/agent/run/route": "app/api/agent/run/route.js",
|
|
46
|
-
"/api/sessions/[id]/fork/route": "app/api/sessions/[id]/fork/route.js",
|
|
47
|
-
"/api/sessions/[id]/changes/route": "app/api/sessions/[id]/changes/route.js",
|
|
48
45
|
"/api/sessions/[id]/handoff/route": "app/api/sessions/[id]/handoff/route.js",
|
|
49
|
-
"/api/sessions/[id]/
|
|
46
|
+
"/api/sessions/[id]/changes/route": "app/api/sessions/[id]/changes/route.js",
|
|
47
|
+
"/api/agent/stream/route": "app/api/agent/stream/route.js",
|
|
50
48
|
"/api/sessions/[id]/query-index/route": "app/api/sessions/[id]/query-index/route.js",
|
|
49
|
+
"/api/agent/run/route": "app/api/agent/run/route.js",
|
|
51
50
|
"/api/sessions/[id]/tool-result/route": "app/api/sessions/[id]/tool-result/route.js",
|
|
51
|
+
"/api/settings/route": "app/api/settings/route.js",
|
|
52
|
+
"/api/sessions/[id]/release/route": "app/api/sessions/[id]/release/route.js",
|
|
52
53
|
"/api/sessions/[id]/thread-goal/route": "app/api/sessions/[id]/thread-goal/route.js",
|
|
53
54
|
"/api/sessions/[id]/goals/route": "app/api/sessions/[id]/goals/route.js",
|
|
54
|
-
"/api/settings/route": "app/api/settings/route.js",
|
|
55
|
-
"/api/sessions/route": "app/api/sessions/route.js",
|
|
56
|
-
"/api/update/check/route": "app/api/update/check/route.js",
|
|
57
55
|
"/api/tool-policies/route": "app/api/tool-policies/route.js",
|
|
56
|
+
"/api/update/check/route": "app/api/update/check/route.js",
|
|
58
57
|
"/api/sessions/[id]/route": "app/api/sessions/[id]/route.js",
|
|
59
|
-
"/api/
|
|
58
|
+
"/api/sessions/route": "app/api/sessions/route.js",
|
|
60
59
|
"/api/update/install/route": "app/api/update/install/route.js",
|
|
61
60
|
"/api/web-console/bootstrap/route": "app/api/web-console/bootstrap/route.js",
|
|
62
61
|
"/api/web-auth/status/route": "app/api/web-auth/status/route.js",
|
|
62
|
+
"/api/update/status/route": "app/api/update/status/route.js",
|
|
63
63
|
"/api/web-console/device-state/route": "app/api/web-console/device-state/route.js",
|
|
64
|
+
"/api/sessions/[id]/fork/route": "app/api/sessions/[id]/fork/route.js",
|
|
64
65
|
"/web/page": "app/web/page.js"
|
|
65
66
|
}
|