agentroam 0.2.0-preview.3 → 0.2.0-preview.4
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/dist/cli.js +1 -1
- package/dist/cloudflared/bundled-asset.test.js +1 -1
- package/dist/cloudflared/manifest.js +1 -1
- package/dist/tunnel/cloudflare-provider.js +17 -10
- package/dist/tunnel/cloudflare-provider.test.js +33 -0
- package/dist/tunnel/proxy-settings.js +141 -0
- package/dist/tunnel/proxy-settings.test.js +111 -0
- package/dist/tunnel/public-readiness.js +60 -36
- package/dist/tunnel/public-readiness.test.js +80 -0
- package/package.json +27 -9
- package/runtime/.next/BUILD_ID +1 -1
- package/runtime/.next/app-build-manifest.json +4 -4
- package/runtime/.next/app-path-routes-manifest.json +1 -1
- package/runtime/.next/build-manifest.json +7 -7
- package/runtime/.next/prerender-manifest.json +1 -1
- package/runtime/.next/react-loadable-manifest.json +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/model/route.js +1 -0
- package/runtime/.next/server/app/api/agent/model/route.js.nft.json +1 -0
- package/runtime/.next/server/app/api/agent/model.body +1 -0
- package/runtime/.next/server/app/api/agent/model.meta +1 -0
- package/runtime/.next/server/app/api/agent/run/route.js +1 -1
- package/runtime/.next/server/app/api/agent/steer/route.js +1 -0
- package/runtime/.next/server/app/api/agent/steer/route.js.nft.json +1 -0
- package/runtime/.next/server/app/api/agent/stream/route.js +3 -2
- package/runtime/.next/server/app/api/mcp/connect/route.js +1 -1
- package/runtime/.next/server/app/api/plugins/load/route.js +1 -1
- package/runtime/.next/server/app/api/remote-tools/register/route.js +1 -1
- package/runtime/.next/server/app/api/sessions/[id]/route.js +1 -1
- package/runtime/.next/server/app/api/sessions/route.js +1 -1
- package/runtime/.next/server/app/api/skills/route.js +1 -1
- package/runtime/.next/server/app/api/tools/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/history/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/web-console/preferences/route.js +1 -1
- package/runtime/.next/server/app/web/page.js +10 -10
- package/runtime/.next/server/app/web/page_client-reference-manifest.js +1 -1
- package/runtime/.next/server/app/web.html +1 -1
- package/runtime/.next/server/app/web.rsc +2 -2
- package/runtime/.next/server/app-paths-manifest.json +13 -11
- package/runtime/.next/server/chunks/322.js +28 -12
- 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/982.9e87a5cc0e6b13cf.js +1 -0
- package/runtime/.next/static/chunks/app/web/page-02e0df331bb14489.js +1 -0
- package/runtime/.next/static/chunks/{main-a7dd8c98b48af038.js → main-30618c50527ce4e9.js} +1 -1
- package/runtime/.next/static/chunks/{webpack-d91bc49de770fd58.js → webpack-0c872a6ee48cbbdf.js} +1 -1
- package/runtime/node_modules/.package-lock.json +3 -3
- package/runtime/node_modules/@agent/core/dist/domain/context/ContextLoader.d.ts +2 -0
- package/runtime/node_modules/@agent/core/dist/domain/context/ContextLoader.d.ts.map +1 -1
- package/runtime/node_modules/@agent/core/dist/index.js +114 -12
- package/runtime/node_modules/@agent/core/dist/index.js.map +7 -6
- package/runtime/node_modules/@agent/core/dist/infrastructure/SQLiteAnonymousWebStore.d.ts +13 -0
- package/runtime/node_modules/@agent/core/dist/infrastructure/SQLiteAnonymousWebStore.d.ts.map +1 -0
- package/runtime/node_modules/@agent/core/dist/infrastructure/SQLiteAnonymousWebStore.test.d.ts +2 -0
- package/runtime/node_modules/@agent/core/dist/infrastructure/SQLiteAnonymousWebStore.test.d.ts.map +1 -0
- package/runtime/node_modules/@agent/core/dist/infrastructure/SQLiteDatabase.d.ts.map +1 -1
- package/runtime/node_modules/@agent/core/dist/infrastructure/SQLiteSessionStore.d.ts.map +1 -1
- package/runtime/node_modules/@agent/core/dist/infrastructure/index.d.ts +1 -0
- package/runtime/node_modules/@agent/core/dist/infrastructure/index.d.ts.map +1 -1
- package/runtime/node_modules/node-abi/abi_registry.json +7 -0
- package/runtime/node_modules/node-abi/package.json +1 -1
- package/runtime/package-lock.json +3 -3
- package/runtime/webapp/dist/assets/App-lXIeMH5u.js +52 -0
- package/runtime/webapp/dist/assets/index-BAFMhDtY.js +42 -0
- package/runtime/webapp/dist/assets/index-Beg9M2xI.css +1 -0
- package/runtime/webapp/dist/index.html +17 -0
- package/runtime/webapp/dist/pcm-audio-worklet.js +126 -0
- package/runtime/ws-server.mjs +148 -18
- package/runtime/.next/static/chunks/982.bf2e6e7fe55cd5ca.js +0 -1
- package/runtime/.next/static/chunks/app/web/page-0ee508ac538f72d3.js +0 -1
- /package/runtime/.next/static/{OszWLAB2kMAnNfSwJzpyw → dclalTmecO-HMVQvSKG7g}/_buildManifest.js +0 -0
- /package/runtime/.next/static/{OszWLAB2kMAnNfSwJzpyw → dclalTmecO-HMVQvSKG7g}/_ssgManifest.js +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
(()=>{var e={};e.id=541,e.ids=[541],e.modules={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")},8664:(e,t,r)=>{"use strict";r.r(t),r.d(t,{GlobalError:()=>o.a,__next_app__:()=>b,originalPathname:()=>u,pages:()=>d,routeModule:()=>p,tree:()=>s}),r(6742),r(4972),r(3028);var a=r(1772),i=r(5042),n=r(5663),o=r.n(n),l=r(4812),c={};for(let e in l)0>["default","tree","pages","GlobalError","originalPathname","__next_app__","routeModule"].indexOf(e)&&(c[e]=()=>l[e]);r.d(t,c);let s=["",{children:["web",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(r.bind(r,6742)),"/Users/caoqu/team-agent/customer-agent/packages/server/app/web/page.tsx"]}]},{}]},{layout:[()=>Promise.resolve().then(r.bind(r,4972)),"/Users/caoqu/team-agent/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"]}],d=["/Users/caoqu/team-agent/customer-agent/packages/server/app/web/page.tsx"],u="/web/page",b={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:s}})},8490:(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))},3703:(e,t,r)=>{Promise.resolve().then(r.bind(r,5730))},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 s}});let a=r(3517),i=r(5921),n=r(1803),o=r(5259);function l(e){return{default:e&&"default"in e?e.default:e}}let c={loader:()=>Promise.resolve(l(()=>null)),loading:null,ssr:!0},s=function(e){let t={...c,...e},r=(0,i.lazy)(()=>t.loader().then(l)),s=t.loading;function d(e){let l=s?(0,a.jsx)(s,{isLoading:!0,pastDelay:!0,error:null}):null,c=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:l,children:c})}return d.displayName="LoadableComponent",d}},5259:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PreloadCss",{enumerable:!0,get:function(){return n}});let a=r(3517),i=r(4580);function n(e){let{moduleIds:t}=e,r=(0,i.getExpectedRequestStore)("next/dynamic css"),n=[];if(r.reactLoadableManifest&&t){let e=r.reactLoadableManifest;for(let r of t){if(!e[r])continue;let t=e[r].files.filter(e=>e.endsWith(".css"));n.push(...t)}}return 0===n.length?null:(0,a.jsx)(a.Fragment,{children:n.map(e=>(0,a.jsx)("link",{precedence:"dynamic",rel:"stylesheet",href:r.assetPrefix+"/_next/"+encodeURI(e),as:"style"},e))})}},5730:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>x});var a=r(3517),i=r(1166),n=r.n(i),o=r(5921);function l({children:e}){let t=function(){let[e,t]=(0,o.useState)("loading"),[r,a]=(0,o.useState)(null),[i,n]=(0,o.useState)(""),[l,c]=(0,o.useState)(null);(0,o.useRef)(!1);let s=(0,o.useCallback)(async()=>{t("loading"),c(null);let e=async()=>{let e=await fetch("/api/web-auth/status",{credentials:"same-origin",cache:"no-store"});if(!e.ok)throw Error(`HTTP ${e.status}`);return e.json()};try{let r;try{r=await e()}catch{r=await e()}if(r.needsSetup){t("needsSetup"),a(null);return}if(!r.authenticated){t("needsLogin"),a(null);return}a(r.user),n(r.csrfToken),t("authenticated")}catch{let e="undefined"!=typeof location?location.host:"",r=e.startsWith("localhost")||e.startsWith("127.0.0.1")?"请确认 dev:server 已启动(bun run dev:server)":`请确认 ${e} 可访问且 Gateway 未在重启中`;c(`无法连接认证服务:${r}`),t("needsLogin")}},[]),d=(0,o.useCallback)(async(e,r,i)=>{c(null);let o="setup"===e&&new URLSearchParams(location.search).get("pair")||void 0,l=await fetch(`/api/web-auth/${e}`,{method:"POST",credentials:"same-origin",headers:{"content-type":"application/json"},body:JSON.stringify({username:r,password:i,pairingToken:o})}),s=await l.json();return l.ok?(a(s.user),n(s.csrfToken),t("authenticated"),o&&history.replaceState(null,"",location.pathname),!0):(c(s.error?.message||"认证失败"),!1)},[]),u=(0,o.useCallback)(async()=>{let e=await fetch("/api/web-console/bootstrap",{credentials:"same-origin",cache:"no-store"});if(401===e.status)throw t("needsLogin"),Error("unauthenticated");if(!e.ok)throw Error("bootstrap failed");return(await e.json()).wsNonce},[]),b=(0,o.useCallback)(async()=>{await fetch("/api/web-auth/logout",{method:"POST",credentials:"same-origin",headers:{"x-csrf-token":i}}),a(null),n(""),t("needsLogin")},[i]);return{status:e,user:r,error:l,csrfToken:i,setup:(e,t)=>d("setup",e,t),login:(e,t)=>d("login",e,t),logout:b,refresh:s,getWsNonce:u}}(),[r,i]=(0,o.useState)(""),[n,l]=(0,o.useState)(""),[s,d]=(0,o.useState)(!1);if("authenticated"===t.status)return a.jsx(a.Fragment,{children:e(t)});if("loading"===t.status)return a.jsx("main",{style:c.page,children:a.jsx("div",{style:c.card,children:"正在加载…"})});let u="needsSetup"===t.status,b=async e=>{e.preventDefault(),d(!0);try{await (u?t.setup(r,n):t.login(r,n))}finally{d(!1)}};return a.jsx("main",{style:c.page,children:(0,a.jsxs)("form",{style:c.card,onSubmit:b,children:[a.jsx("div",{style:c.mark,children:"CA"}),a.jsx("h1",{style:c.title,children:u?"初始化管理员":"登录远程控制台"}),a.jsx("p",{style:c.copy,children:u?"创建唯一管理员账号。完成后初始化入口将关闭。":"登录后 30 天内自动续期,无需再次输入 token。"}),a.jsx("label",{style:c.label,children:"用户名"}),a.jsx("input",{style:c.input,autoComplete:"username",value:r,onChange:e=>i(e.target.value),required:!0,minLength:3}),a.jsx("label",{style:c.label,children:"密码"}),a.jsx("input",{style:c.input,type:"password",autoComplete:u?"new-password":"current-password",value:n,onChange:e=>l(e.target.value),required:!0,minLength:10}),t.error&&a.jsx("div",{style:c.error,children:t.error}),a.jsx("button",{style:c.button,disabled:s,children:s?"请稍候…":u?"创建并进入":"登录"})]})})}let c={page:{minHeight:"100dvh",display:"grid",placeItems:"center",padding:20,boxSizing:"border-box",background:"#0b0b10",color:"#e8e8ee",fontFamily:'-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif'},card:{width:"min(380px,100%)",padding:24,border:"1px solid #292c36",borderRadius:12,background:"#14161d",boxSizing:"border-box",boxShadow:"0 18px 50px rgba(0,0,0,.35)"},mark:{width:40,height:40,display:"grid",placeItems:"center",borderRadius:8,background:"#7aa2f7",color:"#0b0b10",fontWeight:800,marginBottom:16},title:{margin:"0 0 8px",fontSize:20,letterSpacing:0},copy:{margin:"0 0 20px",color:"#858999",fontSize:12.5,lineHeight:1.6},label:{display:"block",color:"#9a9ead",fontSize:11,margin:"12px 0 6px"},input:{width:"100%",height:40,boxSizing:"border-box",border:"1px solid #343844",borderRadius:7,padding:"0 10px",background:"#0e1016",color:"#eceef4",fontSize:14,outline:"none"},error:{marginTop:12,color:"#f7768e",fontSize:12},button:{width:"100%",height:40,marginTop:18,border:0,borderRadius:7,background:"#7aa2f7",color:"#0b0b10",fontWeight:700,fontSize:13}};function s({csrfToken:e,terminalId:t,onFill:r}){let[i,n]=(0,o.useState)([]),[l,c]=(0,o.useState)(""),s=(0,o.useCallback)(async()=>{let e=new URLSearchParams({q:l,limit:"200"}),t=await fetch(`/api/web-console/history?${e}`,{credentials:"same-origin"});t.ok&&n((await t.json()).history)},[l]),d=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})}),s()},u=e=>{t&&r(e)};return(0,a.jsxs)("div",{className:"history-panel",children:[(0,a.jsxs)("div",{className:"history-search",children:[a.jsx("input",{value:l,onChange:e=>c(e.target.value),placeholder:"搜索命令"}),a.jsx("button",{onClick:s,children:"刷新"})]}),i.map(e=>(0,a.jsxs)("div",{className:`history-item${t?"":" history-item-disabled"}`,role:"button",tabIndex:t?0:-1,onClick:()=>u(e.command),onKeyDown:r=>{("Enter"===r.key||" "===r.key)&&t&&(r.preventDefault(),u(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",{onClick:()=>navigator.clipboard.writeText(e.command),children:"复制"}),a.jsx("button",{disabled:!t,onClick:()=>u(e.command),children:"填入"}),a.jsx("button",{onClick:()=>d(e.id),children:"删除"})]})]},e.id)),!i.length&&a.jsx("div",{className:"history-empty",children:"暂无 Shell 命令历史"}),!t&&!!i.length&&a.jsx("div",{className:"history-empty",children:"请先打开一个终端页签"})]})}let d=[{id:"black",label:"黑",swatch:"#1a1b26",cssVars:{"--ui-root-bg":"#0b0b10","--ui-text":"#e8e8ee","--ui-tabbar-bg":"#12141b","--ui-tabbar-border":"#282b36","--ui-tab-bg":"#1b1e28","--ui-tab-text":"#8f93a4","--ui-tab-active-bg":"#262b38","--ui-tab-active-text":"#edf0f7","--ui-tab-accent":"#7aa2f7","--ui-connection-bg":"#12141b","--ui-connection-text":"#777b8c","--ui-tree-bg":"#121218","--ui-tree-border":"#1e1e26","--ui-term-col-bg":"#101014","--ui-fab-bg":"#1b1b26","--ui-fab-border":"#2c2c38","--ui-muted-surface":"#171920","--ui-muted-border":"#2d303a","--ui-muted-text":"#8c909f","--ui-panel-input-bg":"#0f0f15","--ui-panel-input-text":"#d8d8df","--ui-panel-input-border":"#30303b","--ui-drawer-tab-text":"#74798a","--ui-drawer-tab-active":"#e4e7ef","--ui-history-item-text":"#d3d6df","--ui-history-meta":"#656a79","--ui-success":"#9ece6a","--ui-error":"#f7768e"},termHostBg:"#101014",keybar:{bg:"#171922",border:"#1e1e26",keyBg:"#17171e",keyBorder:"#2c2c36",keyText:"#ccc",accent:"#7aa2f7",accentText:"#0b0b10",drag:"#536b9e"},xterm:{background:"#101014",foreground:"#d8d8de",cursor:"#7aa2f7",selectionBackground:"#33467c",black:"#15151a",red:"#f7768e",green:"#9ece6a",yellow:"#e0af68",blue:"#7aa2f7",magenta:"#bb9af7",cyan:"#7dcfff",white:"#a9b1d6",brightBlack:"#414868",brightWhite:"#c0caf5"}},{id:"white",label:"白",swatch:"#fdf6e3",cssVars:{"--ui-root-bg":"#eee8d5","--ui-text":"#073642","--ui-tabbar-bg":"#e6dfcc","--ui-tabbar-border":"#d3cbb8","--ui-tab-bg":"#ddd6c1","--ui-tab-text":"#586e75","--ui-tab-active-bg":"#fdf6e3","--ui-tab-active-text":"#073642","--ui-tab-accent":"#268bd2","--ui-connection-bg":"#e6dfcc","--ui-connection-text":"#657b83","--ui-tree-bg":"#f5f0dc","--ui-tree-border":"#d3cbb8","--ui-term-col-bg":"#fdf6e3","--ui-fab-bg":"#eee8d5","--ui-fab-border":"#93a1a1","--ui-muted-surface":"#e8e2cf","--ui-muted-border":"#c9c2ae","--ui-muted-text":"#657b83","--ui-panel-input-bg":"#fdf6e3","--ui-panel-input-text":"#073642","--ui-panel-input-border":"#c9c2ae","--ui-drawer-tab-text":"#657b83","--ui-drawer-tab-active":"#073642","--ui-history-item-text":"#073642","--ui-history-meta":"#657b83","--ui-success":"#859900","--ui-error":"#dc322f"},termHostBg:"#fdf6e3",keybar:{bg:"#eee8d5",border:"#d3cbb8",keyBg:"#fdf6e3",keyBorder:"#c9c2ae",keyText:"#073642",accent:"#268bd2",accentText:"#fdf6e3",drag:"#2aa198"},xterm:{background:"#fdf6e3",foreground:"#586e75",cursor:"#268bd2",selectionBackground:"#93a1a1",black:"#073642",red:"#dc322f",green:"#859900",yellow:"#b58900",blue:"#268bd2",magenta:"#d33682",cyan:"#2aa198",white:"#eee8d5",brightBlack:"#657b83",brightWhite:"#fdf6e3"}},{id:"red",label:"红",swatch:"#282a36",cssVars:{"--ui-root-bg":"#1e1f29","--ui-text":"#f8f8f2","--ui-tabbar-bg":"#21222c","--ui-tabbar-border":"#44475a","--ui-tab-bg":"#282a36","--ui-tab-text":"#9496a8","--ui-tab-active-bg":"#343746","--ui-tab-active-text":"#f8f8f2","--ui-tab-accent":"#ff5555","--ui-connection-bg":"#21222c","--ui-connection-text":"#9496a8","--ui-tree-bg":"#282a36","--ui-tree-border":"#44475a","--ui-term-col-bg":"#282a36","--ui-fab-bg":"#343746","--ui-fab-border":"#6272a4","--ui-muted-surface":"#343746","--ui-muted-border":"#44475a","--ui-muted-text":"#bd93f9","--ui-panel-input-bg":"#21222c","--ui-panel-input-text":"#f8f8f2","--ui-panel-input-border":"#44475a","--ui-drawer-tab-text":"#9496a8","--ui-drawer-tab-active":"#ff79c6","--ui-history-item-text":"#f8f8f2","--ui-history-meta":"#9496a8","--ui-success":"#50fa7b","--ui-error":"#ff5555"},termHostBg:"#282a36",keybar:{bg:"#21222c",border:"#44475a",keyBg:"#282a36",keyBorder:"#44475a",keyText:"#f8f8f2",accent:"#ff5555",accentText:"#282a36",drag:"#6272a4"},xterm:{background:"#282a36",foreground:"#f8f8f2",cursor:"#ff5555",selectionBackground:"#44475a",black:"#21222c",red:"#ff5555",green:"#50fa7b",yellow:"#f1fa8c",blue:"#bd93f9",magenta:"#ff79c6",cyan:"#8be9fd",white:"#f8f8f2",brightBlack:"#6272a4",brightWhite:"#ffffff"}},{id:"yellow",label:"黄",swatch:"#282828",cssVars:{"--ui-root-bg":"#1d2021","--ui-text":"#ebdbb2","--ui-tabbar-bg":"#1d2021","--ui-tabbar-border":"#504945","--ui-tab-bg":"#282828","--ui-tab-text":"#a89984","--ui-tab-active-bg":"#32302f","--ui-tab-active-text":"#ebdbb2","--ui-tab-accent":"#fabd2f","--ui-connection-bg":"#1d2021","--ui-connection-text":"#a89984","--ui-tree-bg":"#282828","--ui-tree-border":"#504945","--ui-term-col-bg":"#282828","--ui-fab-bg":"#32302f","--ui-fab-border":"#665c54","--ui-muted-surface":"#32302f","--ui-muted-border":"#504945","--ui-muted-text":"#bdae93","--ui-panel-input-bg":"#1d2021","--ui-panel-input-text":"#ebdbb2","--ui-panel-input-border":"#504945","--ui-drawer-tab-text":"#a89984","--ui-drawer-tab-active":"#fabd2f","--ui-history-item-text":"#ebdbb2","--ui-history-meta":"#928374","--ui-success":"#b8bb26","--ui-error":"#fb4934"},termHostBg:"#282828",keybar:{bg:"#1d2021",border:"#504945",keyBg:"#282828",keyBorder:"#504945",keyText:"#ebdbb2",accent:"#fabd2f",accentText:"#1d2021",drag:"#665c54"},xterm:{background:"#282828",foreground:"#ebdbb2",cursor:"#fabd2f",selectionBackground:"#504945",black:"#282828",red:"#fb4934",green:"#b8bb26",yellow:"#fabd2f",blue:"#83a598",magenta:"#d3869b",cyan:"#8ec07c",white:"#ebdbb2",brightBlack:"#928374",brightWhite:"#fbf1c7"}},{id:"blue",label:"蓝",swatch:"#2e3440",cssVars:{"--ui-root-bg":"#242933","--ui-text":"#eceff4","--ui-tabbar-bg":"#2e3440","--ui-tabbar-border":"#434c5e","--ui-tab-bg":"#3b4252","--ui-tab-text":"#a3b1c2","--ui-tab-active-bg":"#434c5e","--ui-tab-active-text":"#eceff4","--ui-tab-accent":"#88c0d0","--ui-connection-bg":"#2e3440","--ui-connection-text":"#a3b1c2","--ui-tree-bg":"#2e3440","--ui-tree-border":"#434c5e","--ui-term-col-bg":"#2e3440","--ui-fab-bg":"#3b4252","--ui-fab-border":"#5e81ac","--ui-muted-surface":"#3b4252","--ui-muted-border":"#434c5e","--ui-muted-text":"#81a1c1","--ui-panel-input-bg":"#242933","--ui-panel-input-text":"#eceff4","--ui-panel-input-border":"#434c5e","--ui-drawer-tab-text":"#a3b1c2","--ui-drawer-tab-active":"#88c0d0","--ui-history-item-text":"#eceff4","--ui-history-meta":"#7b88a1","--ui-success":"#a3be8c","--ui-error":"#bf616a"},termHostBg:"#2e3440",keybar:{bg:"#242933",border:"#434c5e",keyBg:"#3b4252",keyBorder:"#434c5e",keyText:"#eceff4",accent:"#88c0d0",accentText:"#242933",drag:"#5e81ac"},xterm:{background:"#2e3440",foreground:"#d8dee9",cursor:"#88c0d0",selectionBackground:"#434c5e",black:"#3b4252",red:"#bf616a",green:"#a3be8c",yellow:"#ebcb8b",blue:"#81a1c1",magenta:"#b48ead",cyan:"#88c0d0",white:"#e5e9f0",brightBlack:"#4c566a",brightWhite:"#eceff4"}},{id:"gray",label:"灰",swatch:"#1e1e1e",cssVars:{"--ui-root-bg":"#181818","--ui-text":"#d4d4d4","--ui-tabbar-bg":"#1e1e1e","--ui-tabbar-border":"#3c3c3c","--ui-tab-bg":"#252526","--ui-tab-text":"#969696","--ui-tab-active-bg":"#2d2d2d","--ui-tab-active-text":"#ffffff","--ui-tab-accent":"#cccccc","--ui-connection-bg":"#1e1e1e","--ui-connection-text":"#969696","--ui-tree-bg":"#252526","--ui-tree-border":"#3c3c3c","--ui-term-col-bg":"#1e1e1e","--ui-fab-bg":"#2d2d2d","--ui-fab-border":"#555555","--ui-muted-surface":"#2d2d2d","--ui-muted-border":"#3c3c3c","--ui-muted-text":"#b0b0b0","--ui-panel-input-bg":"#181818","--ui-panel-input-text":"#d4d4d4","--ui-panel-input-border":"#3c3c3c","--ui-drawer-tab-text":"#969696","--ui-drawer-tab-active":"#ffffff","--ui-history-item-text":"#d4d4d4","--ui-history-meta":"#808080","--ui-success":"#89d185","--ui-error":"#f48771"},termHostBg:"#1e1e1e",keybar:{bg:"#252526",border:"#3c3c3c",keyBg:"#2d2d2d",keyBorder:"#3c3c3c",keyText:"#d4d4d4",accent:"#cccccc",accentText:"#1e1e1e",drag:"#555555"},xterm:{background:"#1e1e1e",foreground:"#d4d4d4",cursor:"#aeafad",selectionBackground:"#264f78",black:"#1e1e1e",red:"#f48771",green:"#89d185",yellow:"#dcdcaa",blue:"#569cd6",magenta:"#c586c0",cyan:"#4ec9b0",white:"#d4d4d4",brightBlack:"#808080",brightWhite:"#ffffff"}},{id:"green",label:"绿",swatch:"#0a120a",cssVars:{"--ui-root-bg":"#050805","--ui-text":"#b8ffb8","--ui-tabbar-bg":"#0a120a","--ui-tabbar-border":"#1a3a1a","--ui-tab-bg":"#0f180f","--ui-tab-text":"#5a9a5a","--ui-tab-active-bg":"#142014","--ui-tab-active-text":"#d4ffd4","--ui-tab-accent":"#33ff66","--ui-connection-bg":"#0a120a","--ui-connection-text":"#5a9a5a","--ui-tree-bg":"#0f180f","--ui-tree-border":"#1a3a1a","--ui-term-col-bg":"#0a120a","--ui-fab-bg":"#142014","--ui-fab-border":"#2a5a2a","--ui-muted-surface":"#142014","--ui-muted-border":"#1a3a1a","--ui-muted-text":"#6aaa6a","--ui-panel-input-bg":"#050805","--ui-panel-input-text":"#b8ffb8","--ui-panel-input-border":"#1a3a1a","--ui-drawer-tab-text":"#5a9a5a","--ui-drawer-tab-active":"#33ff66","--ui-history-item-text":"#b8ffb8","--ui-history-meta":"#4a8a4a","--ui-success":"#33ff66","--ui-error":"#ff5555"},termHostBg:"#0a120a",keybar:{bg:"#0a120a",border:"#1a3a1a",keyBg:"#0f180f",keyBorder:"#1a3a1a",keyText:"#b8ffb8",accent:"#33ff66",accentText:"#050805",drag:"#2a5a2a"},xterm:{background:"#0a120a",foreground:"#33ff66",cursor:"#33ff66",selectionBackground:"#1a4a1a",black:"#050805",red:"#ff5555",green:"#33ff66",yellow:"#ffff66",blue:"#66ccff",magenta:"#ff66ff",cyan:"#66ffff",white:"#b8ffb8",brightBlack:"#2a5a2a",brightWhite:"#d4ffd4"}}],u="black",b=Object.fromEntries(d.map(e=>[e.id,e]));function p({username:e,themeId:t,onThemeChange:r,accent:i,accentText:n}){let[l,c]=(0,o.useState)(!1),s=(0,o.useRef)(null),u=(0,o.useRef)(null),[b,p]=(0,o.useState)(null),f=(e.trim()[0]??"?").toUpperCase();return(0,a.jsxs)("div",{ref:s,className:"theme-picker",children:[a.jsx("button",{ref:u,type:"button",className:"theme-avatar","aria-label":`换肤(${e})`,title:e,"aria-expanded":l,onPointerDown:e=>e.stopPropagation(),onClick:e=>{e.preventDefault(),e.stopPropagation(),c(e=>!e)},style:{width:28,height:28,borderRadius:99,border:`1px solid ${i}`,background:i,color:n,fontSize:12,fontWeight:700,padding:0,cursor:"pointer",flexShrink:0,touchAction:"manipulation"},children:f}),l&&b&&(0,a.jsxs)("div",{className:"theme-popover",role:"dialog","aria-label":"选择皮肤",style:{position:"fixed",top:b.top,left:b.left,zIndex:200,width:168,padding:10,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)",marginBottom:8,letterSpacing:.5},children:"经典皮肤"}),a.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:7},children:d.map(e=>{let i=e.id===t;return(0,a.jsxs)("button",{type:"button",title:e.label,"aria-label":e.label,"aria-pressed":i,onPointerDown:e=>e.stopPropagation(),onClick:()=>{r(e.id),c(!1)},style:{display:"flex",flexDirection:"column",alignItems:"center",gap:4,padding:"6px 2px",borderRadius:8,border:i?"2px solid var(--ui-tab-accent, #7aa2f7)":"1px solid var(--ui-tabbar-border, #282b36)",background:"var(--ui-tab-bg, #1b1e28)",cursor:"pointer",touchAction:"manipulation"},children:[a.jsx("span",{style:{width:22,height:22,borderRadius:6,background:e.swatch,boxShadow:i?"0 0 0 1px var(--ui-tab-accent, #7aa2f7)":"inset 0 0 0 1px rgba(255,255,255,.08)"}}),a.jsx("span",{style:{fontSize:9.5,color:i?"var(--ui-tab-active-text, #edf0f7)":"var(--ui-tab-text, #8f93a4)"},children:e.label})]},e.id)})})]})]})}let f=n()(async()=>{},{loadableGenerated:{modules:["app/web/page.tsx -> ./TerminalPane"]},ssr:!1}),g=n()(async()=>{},{loadableGenerated:{modules:["app/web/page.tsx -> ./FileTree"]},ssr:!1}),h=n()(async()=>{},{loadableGenerated:{modules:["app/web/page.tsx -> ./FilePreview"]},ssr:!1});function x(){return a.jsx(l,{children:e=>a.jsx(m,{auth:e})})}function m({auth:e}){let{state:t,epoch:r,rpc:i,onEvent:n,onTerminalData:l,sendTerminalInput:c}=function(e,t,r){let[a,i]=(0,o.useState)({connected:!1,error:null}),[n,l]=(0,o.useState)(0),c=(0,o.useRef)(null),s=(0,o.useRef)(0),d=(0,o.useRef)(new Map),u=(0,o.useRef)([]),b=(0,o.useRef)(0),p=(0,o.useRef)(new Map),f=(0,o.useRef)(new Map),g=(0,o.useRef)(1e3),h=(0,o.useRef)(!1),x=(0,o.useRef)(e),m=(0,o.useRef)(t),y=(0,o.useRef)(r);x.current=e,m.current=t,y.current=r;let v=(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)},[]),w=(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)},[]),k=(0,o.useCallback)((e,t)=>{let r=c.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},[]),S=(0,o.useCallback)(e=>{let t=c.current;t?.readyState===WebSocket.OPEN?t.send(e):u.current.push(e)},[]),j=(0,o.useCallback)((e,t={},r=15e3)=>new Promise((a,i)=>{let n=++b.current,o=setTimeout(()=>{d.current.delete(n),i(Error(`${e} timeout`))},r);d.current.set(n,{resolve:a,reject:i,timer:o}),S(JSON.stringify({type:e,_req:n,...t}))}),[S]),C=(0,o.useCallback)(async()=>{let e,t;h.current=!1;let r=++s.current,a=c.current;if(a){a.onopen=a.onmessage=a.onerror=a.onclose=null;try{a.close()}catch{}}try{e=await m.current()}catch{r===s.current&&y.current();return}if(r===s.current&&!h.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",c.current=t,t.onopen=()=>{if(r===s.current&&c.current===t)for(let e of(g.current=1e3,i({connected:!0,error:null}),l(e=>e+1),u.current.splice(0)))t.send(e)},t.onmessage=e=>{let a;if(r===s.current&&c.current===t){if("string"!=typeof e.data){let t=new Uint8Array(e.data);if(t.byteLength>=6&&1===t[0]&&2===t[1]){let e=new DataView(t.buffer,t.byteOffset,t.byteLength).getUint32(2);f.current.get(e)?.forEach(e=>e(t.subarray(6)))}else x.current(t);return}try{a=JSON.parse(e.data)}catch{return}if("error"===a.type&&null!=a.id){let e=d.current.get(a.id);if(e){d.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=d.current.get(a.id);e&&(d.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!==s.current||c.current!==t)return;if(c.current=null,i({connected:!1,error:null}),4001===e.code||4003===e.code){y.current();return}if(h.current)return;let a=g.current;g.current=Math.min(2*a,8e3),setTimeout(()=>{h.current||r!==s.current||C()},a)},t.onerror=()=>{}}},[]);return{state:a,epoch:n,rpc:j,onEvent:v,onTerminalData:w,sendTerminalInput:k,reconnect:C}}(()=>{},e.getWsNonce,e.refresh),[d,x]=(0,o.useState)([]),[m,w]=(0,o.useState)(null),[k,S]=(0,o.useState)({});(0,o.useRef)(!1),(0,o.useRef)(null);let j=(0,o.useRef)(new Map),C=(0,o.useCallback)((e,t)=>(j.current.set(e,t),()=>j.current.delete(e)),[]),T=(0,o.useCallback)(e=>{if(!m)return;let t=j.current.get(m);t?t(e):i("term:input",{id:m,data:`\x15${e}`}).catch(()=>{}),_(!1)},[m,i]),[P,R]=(0,o.useState)(!1),[z,B]=(0,o.useState)({}),[M,N]=(0,o.useState)(null),[D,_]=(0,o.useState)(!1),[O,W]=(0,o.useState)("files"),[I,E]=(0,o.useState)(null),[$,H]=(0,o.useState)(!0),[L,F]=(0,o.useState)({xRatio:.94,yRatio:.65,anchor:"right"}),[q,U]=(0,o.useState)(!1),[A,V]=(0,o.useState)([]),[G,X]=(0,o.useState)(u),[J,K]=(0,o.useState)(!1),Y=function(e){let t="dark"===e?u:e;return t&&t in b?b[t]:b[u]}(G),Q=(0,o.useRef)(null),Z=(0,o.useRef)(null),[ee,et]=(0,o.useState)(0),[er,ea]=(0,o.useState)(!1),ei=(0,o.useRef)(null),en=(0,o.useRef)(null);(0,o.useRef)(0);let eo=m?k[m]??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 el=(0,o.useCallback)(e=>{N(e),_(!1)},[]),ec=(0,o.useCallback)(()=>{let e=null;x(t=>t.length>=8?t:[...t,{id:e=`t-web-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`,title:`Terminal ${t.length+1}`}]),e&&w(e)},[]),es=async e=>{window.confirm("关闭页签会终止该终端进程,确认关闭?")&&(await i("term:kill",{id:e}).catch(()=>{}),x(t=>{let r=t.filter(t=>t.id!==e);return m===e&&w(r[0]?.id??null),r}))},ed=(0,o.useCallback)(e=>{if(!m||d.length<2)return;let t=(d.findIndex(e=>e.id===m)+e+d.length)%d.length;w(d[t].id)},[m,d]),eu=Math.max(0,d.findIndex(e=>e.id===m)),eb=(0,o.useCallback)(()=>{Z.current=null,et(0),ea(!1)},[]),ep=(0,o.useCallback)(e=>{Math.abs(e)>=64&&d.length>1&&ed(e<0?1:-1),eb()},[d.length,ed,eb]),ef=e=>e instanceof Element&&!!e.closest(".terminal-screen");return(0,o.useCallback)((e="smooth")=>{let t=en.current;if(!t||!m)return;let r=t.querySelector(`[data-terminal-id="${m}"]`);if(!r)return;let a=t.querySelector(".terminal-connection"),i=a?.offsetWidth??0,n=r.offsetLeft,o=n+r.offsetWidth,l=t.scrollLeft,c=l+t.clientWidth-i;n<l+8?t.scrollTo({left:Math.max(0,n-8),behavior:e}):o>c-8&&t.scrollTo({left:o-t.clientWidth+i+8,behavior:e})},[m]),(0,a.jsxs)("div",{className:"web-root",style:{...v.root,...Y.cssVars,background:"var(--ui-root-bg)",color:"var(--ui-text)"},children:[a.jsx("style",{dangerouslySetInnerHTML:{__html:y}}),(0,a.jsxs)("div",{className:"terminal-tabs",ref:en,children:[d.map(e=>(0,a.jsxs)("div",{"data-terminal-id":e.id,draggable:!0,className:`terminal-tab ${e.id===m?"active":""}`,onDragStart:()=>{ei.current=e.id},onDragOver:e=>e.preventDefault(),onDrop:t=>{t.preventDefault();let r=ei.current;ei.current=null,r&&r!==e.id&&x(t=>{let a=t.findIndex(e=>e.id===r),n=t.findIndex(t=>t.id===e.id);if(a<0||n<0)return t;let o=[...t],[l]=o.splice(a,1);return o.splice(n,0,l),i("term:reorder",{ids:o.map(e=>e.id)}).catch(()=>{}),o})},onClick:()=>w(e.id),onDoubleClick:()=>{let t=window.prompt("页签名称",e.title)?.trim();t&&i("term:rename",{id:e.id,title:t}).then(()=>x(r=>r.map(r=>r.id===e.id?{...r,title:t}:r))).catch(()=>{})},children:[a.jsx("span",{children:e.title}),a.jsx("button",{tabIndex:-1,onClick:t=>{t.stopPropagation(),es(e.id)},children:"\xd7"})]},e.id)),a.jsx("button",{className:"terminal-add",disabled:d.length>=8,onClick:ec,children:"+"}),(0,a.jsxs)("div",{className:"terminal-connection",children:[a.jsx("span",{style:{width:8,height:8,borderRadius:99,background:t.connected?"var(--ui-success)":"var(--ui-error)"}}),a.jsx(p,{username:e.user?.username??"?",themeId:G,onThemeChange:X,accent:Y.keybar.accent,accentText:Y.keybar.accentText}),a.jsx("button",{style:v.logoutBtn,onClick:e.logout,title:"退出登录","aria-label":"退出登录",children:"退出"})]})]}),(0,a.jsxs)("main",{className:`workspace ${D?"show-tree":""} ${M?"has-preview":""}`,style:v.workspace,children:[a.jsx("section",{className:"term-col",style:v.termCol,onPointerDownCapture:e=>{"touch"===e.pointerType&&ef(e.target)&&(Z.current={x:e.clientX,y:e.clientY,axis:"pending"})},onPointerMoveCapture:e=>{let t=Z.current;if(!t||"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)){Z.current=null;return}t.axis="horizontal",ea(!0)}"horizontal"===t.axis&&(e.preventDefault(),et(r))},onPointerUpCapture:e=>{let t=Z.current;if(!t||"touch"!==e.pointerType)return;let r=e.clientX-t.x;"horizontal"===t.axis&&Math.abs(r)>=64?ep(r):eb()},onPointerCancelCapture:eb,children:a.jsx("div",{className:"terminal-track",style:{transform:`translate3d(calc(${-(100*eu)}% + ${ee}px),0,0)`,transition:er?"none":"transform 260ms cubic-bezier(.22,.8,.32,1)"},children:d.map(e=>a.jsx("div",{className:"terminal-slide",children:a.jsx(f,{terminalId:e.id,title:e.title,visible:e.id===m,state:t,rpc:i,onEvent:n,onTerminalData:l,sendTerminalInput:c,keyOrder:A,keybarHidden:q,onKeyOrderChange:V,onKeybarHiddenChange:U,terminalTheme:Y,initialScrollLine:z[e.id]??null,onScrollLineChange:t=>B(r=>r[e.id]===t?r:{...r,[e.id]:t}),onRegisterFill:t=>C(e.id,t),onCwdChange:t=>t&&S(r=>({...r,[e.id]:t}))})},e.id))})}),D&&a.jsx("div",{className:"drawer-mask",onClick:()=>_(!1)}),(0,a.jsxs)("aside",{className:`tree-col ${D?"tree-col-open":""}`,style:v.treeCol,children:[(0,a.jsxs)("div",{className:"tree-head",style:v.treeHead,children:[a.jsx("button",{className:"files"===O?"drawer-tab-active":"",onClick:()=>W("files"),children:"文件"}),a.jsx("button",{className:"history"===O?"drawer-tab-active":"",onClick:()=>W("history"),children:"历史"}),a.jsx("span",{className:"tree-cwd",style:v.treeCwd,children:eo??""}),a.jsx("button",{style:{...v.iconBtn,marginLeft:"auto",flexShrink:0},onClick:()=>_(!1),"aria-label":"close drawer",children:"✕"})]}),"files"===O?a.jsx(g,{ready:r>0,followCwd:!0,cwd:eo,rpc:i,onEvent:n,onOpenFile:el,selectedPath:M,initialRoot:I,initialFollow:$,onTreeStateChange:(e,t)=>{E(e),H(t)}}):a.jsx(s,{csrfToken:e.csrfToken,terminalId:m,onFill:T}),(0,a.jsxs)("div",{style:v.treeFoot,children:[a.jsx("span",{style:v.treeFootDot}),a.jsx("span",{children:"实时同步"})]})]}),M&&a.jsx("section",{className:"preview-col",style:v.previewCol,children:a.jsx(h,{path:M,rpc:i,onClose:()=>N(null)})})]}),a.jsx("button",{className:"fab-files",style:{...v.fabFiles,left:`${100*L.xRatio}%`,top:`${100*L.yRatio}%`,right:"auto",bottom:"auto",transform:"translate(-50%,-50%)"},onPointerDown:e=>{Q.current={moved:!1},e.currentTarget.setPointerCapture(e.pointerId)},onPointerMove:e=>{if(!Q.current)return;Q.current.moved=!0;let t=window.visualViewport;F({xRatio:Math.max(.05,Math.min(.95,e.clientX/(t?.width||innerWidth))),yRatio:Math.max(.08,Math.min(.92,(e.clientY-(t?.offsetTop||0))/(t?.height||innerHeight))),anchor:e.clientX<(t?.width||innerWidth)/2?"left":"right"})},onPointerUp:e=>{e.currentTarget.releasePointerCapture(e.pointerId),Q.current?.moved||_(e=>!e),Q.current=null},"aria-label":"files",children:"\uD83D\uDCC2"})]})}let y=`
|
|
2
|
-
html, body { margin:
|
|
1
|
+
(()=>{var e={};e.id=541,e.ids=[541],e.modules={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")},8664:(e,t,r)=>{"use strict";r.r(t),r.d(t,{GlobalError:()=>o.a,__next_app__:()=>b,originalPathname:()=>u,pages:()=>d,routeModule:()=>f,tree:()=>s}),r(6742),r(4972),r(3028);var a=r(1772),i=r(5042),n=r(5663),o=r.n(n),c=r(4812),l={};for(let e in c)0>["default","tree","pages","GlobalError","originalPathname","__next_app__","routeModule"].indexOf(e)&&(l[e]=()=>c[e]);r.d(t,l);let s=["",{children:["web",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(r.bind(r,6742)),"/Users/caoqu/team-agent/customer-agent/packages/server/app/web/page.tsx"]}]},{}]},{layout:[()=>Promise.resolve().then(r.bind(r,4972)),"/Users/caoqu/team-agent/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"]}],d=["/Users/caoqu/team-agent/customer-agent/packages/server/app/web/page.tsx"],u="/web/page",b={require:r,loadChunk:()=>Promise.resolve()},f=new a.AppPageRouteModule({definition:{kind:i.x.APP_PAGE,page:"/web/page",pathname:"/web",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:s}})},8490:(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))},3703:(e,t,r)=>{Promise.resolve().then(r.bind(r,4735))},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 s}});let a=r(3517),i=r(5921),n=r(1803),o=r(5259);function c(e){return{default:e&&"default"in e?e.default:e}}let l={loader:()=>Promise.resolve(c(()=>null)),loading:null,ssr:!0},s=function(e){let t={...l,...e},r=(0,i.lazy)(()=>t.loader().then(c)),s=t.loading;function d(e){let c=s?(0,a.jsx)(s,{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:c,children:l})}return d.displayName="LoadableComponent",d}},5259:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PreloadCss",{enumerable:!0,get:function(){return n}});let a=r(3517),i=r(4580);function n(e){let{moduleIds:t}=e,r=(0,i.getExpectedRequestStore)("next/dynamic css"),n=[];if(r.reactLoadableManifest&&t){let e=r.reactLoadableManifest;for(let r of t){if(!e[r])continue;let t=e[r].files.filter(e=>e.endsWith(".css"));n.push(...t)}}return 0===n.length?null:(0,a.jsx)(a.Fragment,{children:n.map(e=>(0,a.jsx)("link",{precedence:"dynamic",rel:"stylesheet",href:r.assetPrefix+"/_next/"+encodeURI(e),as:"style"},e))})}},4735:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>x});var a=r(3517),i=r(1166),n=r.n(i),o=r(5921);function c({children:e}){let t=function(){let[e,t]=(0,o.useState)("loading"),[r,a]=(0,o.useState)(null),[i]=(0,o.useState)(""),[n,c]=(0,o.useState)(null),l=(0,o.useCallback)(async()=>{t("loading"),c(null);try{let e=await fetch("/api/web-console/bootstrap",{credentials:"same-origin",cache:"no-store"});if(!e.ok)throw Error(`HTTP ${e.status}`);let r=await e.json();a(r.user),t("authenticated")}catch{c("无法连接远程控制台"),t("needsLogin")}},[]),s=(0,o.useCallback)(async()=>{let e=await fetch("/api/web-console/bootstrap",{credentials:"same-origin",cache:"no-store"});if(!e.ok)throw Error("bootstrap failed");let r=await e.json();return a(r.user),t("authenticated"),r.wsNonce},[]),d=(0,o.useCallback)(async()=>!0,[]);return{status:e,user:r,error:n,csrfToken:i,setup:d,login:d,logout:l,refresh:l,getWsNonce:s}}();return"authenticated"===t.status?a.jsx(a.Fragment,{children:e(t)}):a.jsx("main",{style:l.page,children:a.jsx("div",{style:l.card,children:t.error||"正在连接远程控制台…"})})}let l={page:{minHeight:"100dvh",display:"grid",placeItems:"center",background:"#0b0b10",color:"#e8e8ee",fontFamily:'-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif'},card:{color:"#858999",fontSize:13}};function s({csrfToken:e,terminalId:t,onFill:r}){let[i,n]=(0,o.useState)([]),[c,l]=(0,o.useState)(""),s=(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&&n((await t.json()).history)},[c]),d=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})}),s()},u=e=>{t&&r(e)};return(0,a.jsxs)("div",{className:"history-panel",children:[(0,a.jsxs)("div",{className:"history-search",children:[a.jsx("input",{value:c,onChange:e=>l(e.target.value),placeholder:"搜索命令"}),a.jsx("button",{onClick:s,children:"刷新"})]}),i.map(e=>(0,a.jsxs)("div",{className:`history-item${t?"":" history-item-disabled"}`,role:"button",tabIndex:t?0:-1,onClick:()=>u(e.command),onKeyDown:r=>{("Enter"===r.key||" "===r.key)&&t&&(r.preventDefault(),u(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",{onClick:()=>navigator.clipboard.writeText(e.command),children:"复制"}),a.jsx("button",{disabled:!t,onClick:()=>u(e.command),children:"填入"}),a.jsx("button",{onClick:()=>d(e.id),children:"删除"})]})]},e.id)),!i.length&&a.jsx("div",{className:"history-empty",children:"暂无 Shell 命令历史"}),!t&&!!i.length&&a.jsx("div",{className:"history-empty",children:"请先打开一个终端页签"})]})}let d=[{id:"black",label:"黑",swatch:"#1a1b26",cssVars:{"--ui-root-bg":"#0b0b10","--ui-text":"#e8e8ee","--ui-tabbar-bg":"#12141b","--ui-tabbar-border":"#282b36","--ui-tab-bg":"#1b1e28","--ui-tab-text":"#8f93a4","--ui-tab-active-bg":"#262b38","--ui-tab-active-text":"#edf0f7","--ui-tab-accent":"#7aa2f7","--ui-connection-bg":"#12141b","--ui-connection-text":"#777b8c","--ui-tree-bg":"#121218","--ui-tree-border":"#1e1e26","--ui-term-col-bg":"#101014","--ui-fab-bg":"#1b1b26","--ui-fab-border":"#2c2c38","--ui-muted-surface":"#171920","--ui-muted-border":"#2d303a","--ui-muted-text":"#8c909f","--ui-panel-input-bg":"#0f0f15","--ui-panel-input-text":"#d8d8df","--ui-panel-input-border":"#30303b","--ui-drawer-tab-text":"#74798a","--ui-drawer-tab-active":"#e4e7ef","--ui-history-item-text":"#d3d6df","--ui-history-meta":"#656a79","--ui-success":"#9ece6a","--ui-error":"#f7768e"},termHostBg:"#101014",keybar:{bg:"#171922",border:"#1e1e26",keyBg:"#17171e",keyBorder:"#2c2c36",keyText:"#ccc",accent:"#7aa2f7",accentText:"#0b0b10",drag:"#536b9e"},xterm:{background:"#101014",foreground:"#d8d8de",cursor:"#7aa2f7",selectionBackground:"#33467c",black:"#15151a",red:"#f7768e",green:"#9ece6a",yellow:"#e0af68",blue:"#7aa2f7",magenta:"#bb9af7",cyan:"#7dcfff",white:"#a9b1d6",brightBlack:"#414868",brightWhite:"#c0caf5"}},{id:"white",label:"白",swatch:"#fdf6e3",cssVars:{"--ui-root-bg":"#eee8d5","--ui-text":"#073642","--ui-tabbar-bg":"#e6dfcc","--ui-tabbar-border":"#d3cbb8","--ui-tab-bg":"#ddd6c1","--ui-tab-text":"#586e75","--ui-tab-active-bg":"#fdf6e3","--ui-tab-active-text":"#073642","--ui-tab-accent":"#268bd2","--ui-connection-bg":"#e6dfcc","--ui-connection-text":"#657b83","--ui-tree-bg":"#f5f0dc","--ui-tree-border":"#d3cbb8","--ui-term-col-bg":"#fdf6e3","--ui-fab-bg":"#eee8d5","--ui-fab-border":"#93a1a1","--ui-muted-surface":"#e8e2cf","--ui-muted-border":"#c9c2ae","--ui-muted-text":"#657b83","--ui-panel-input-bg":"#fdf6e3","--ui-panel-input-text":"#073642","--ui-panel-input-border":"#c9c2ae","--ui-drawer-tab-text":"#657b83","--ui-drawer-tab-active":"#073642","--ui-history-item-text":"#073642","--ui-history-meta":"#657b83","--ui-success":"#859900","--ui-error":"#dc322f"},termHostBg:"#fdf6e3",keybar:{bg:"#eee8d5",border:"#d3cbb8",keyBg:"#fdf6e3",keyBorder:"#c9c2ae",keyText:"#073642",accent:"#268bd2",accentText:"#fdf6e3",drag:"#2aa198"},xterm:{background:"#fdf6e3",foreground:"#586e75",cursor:"#268bd2",selectionBackground:"#93a1a1",black:"#073642",red:"#dc322f",green:"#859900",yellow:"#b58900",blue:"#268bd2",magenta:"#d33682",cyan:"#2aa198",white:"#eee8d5",brightBlack:"#657b83",brightWhite:"#fdf6e3"}},{id:"red",label:"红",swatch:"#282a36",cssVars:{"--ui-root-bg":"#1e1f29","--ui-text":"#f8f8f2","--ui-tabbar-bg":"#21222c","--ui-tabbar-border":"#44475a","--ui-tab-bg":"#282a36","--ui-tab-text":"#9496a8","--ui-tab-active-bg":"#343746","--ui-tab-active-text":"#f8f8f2","--ui-tab-accent":"#ff5555","--ui-connection-bg":"#21222c","--ui-connection-text":"#9496a8","--ui-tree-bg":"#282a36","--ui-tree-border":"#44475a","--ui-term-col-bg":"#282a36","--ui-fab-bg":"#343746","--ui-fab-border":"#6272a4","--ui-muted-surface":"#343746","--ui-muted-border":"#44475a","--ui-muted-text":"#bd93f9","--ui-panel-input-bg":"#21222c","--ui-panel-input-text":"#f8f8f2","--ui-panel-input-border":"#44475a","--ui-drawer-tab-text":"#9496a8","--ui-drawer-tab-active":"#ff79c6","--ui-history-item-text":"#f8f8f2","--ui-history-meta":"#9496a8","--ui-success":"#50fa7b","--ui-error":"#ff5555"},termHostBg:"#282a36",keybar:{bg:"#21222c",border:"#44475a",keyBg:"#282a36",keyBorder:"#44475a",keyText:"#f8f8f2",accent:"#ff5555",accentText:"#282a36",drag:"#6272a4"},xterm:{background:"#282a36",foreground:"#f8f8f2",cursor:"#ff5555",selectionBackground:"#44475a",black:"#21222c",red:"#ff5555",green:"#50fa7b",yellow:"#f1fa8c",blue:"#bd93f9",magenta:"#ff79c6",cyan:"#8be9fd",white:"#f8f8f2",brightBlack:"#6272a4",brightWhite:"#ffffff"}},{id:"yellow",label:"黄",swatch:"#282828",cssVars:{"--ui-root-bg":"#1d2021","--ui-text":"#ebdbb2","--ui-tabbar-bg":"#1d2021","--ui-tabbar-border":"#504945","--ui-tab-bg":"#282828","--ui-tab-text":"#a89984","--ui-tab-active-bg":"#32302f","--ui-tab-active-text":"#ebdbb2","--ui-tab-accent":"#fabd2f","--ui-connection-bg":"#1d2021","--ui-connection-text":"#a89984","--ui-tree-bg":"#282828","--ui-tree-border":"#504945","--ui-term-col-bg":"#282828","--ui-fab-bg":"#32302f","--ui-fab-border":"#665c54","--ui-muted-surface":"#32302f","--ui-muted-border":"#504945","--ui-muted-text":"#bdae93","--ui-panel-input-bg":"#1d2021","--ui-panel-input-text":"#ebdbb2","--ui-panel-input-border":"#504945","--ui-drawer-tab-text":"#a89984","--ui-drawer-tab-active":"#fabd2f","--ui-history-item-text":"#ebdbb2","--ui-history-meta":"#928374","--ui-success":"#b8bb26","--ui-error":"#fb4934"},termHostBg:"#282828",keybar:{bg:"#1d2021",border:"#504945",keyBg:"#282828",keyBorder:"#504945",keyText:"#ebdbb2",accent:"#fabd2f",accentText:"#1d2021",drag:"#665c54"},xterm:{background:"#282828",foreground:"#ebdbb2",cursor:"#fabd2f",selectionBackground:"#504945",black:"#282828",red:"#fb4934",green:"#b8bb26",yellow:"#fabd2f",blue:"#83a598",magenta:"#d3869b",cyan:"#8ec07c",white:"#ebdbb2",brightBlack:"#928374",brightWhite:"#fbf1c7"}},{id:"blue",label:"蓝",swatch:"#2e3440",cssVars:{"--ui-root-bg":"#242933","--ui-text":"#eceff4","--ui-tabbar-bg":"#2e3440","--ui-tabbar-border":"#434c5e","--ui-tab-bg":"#3b4252","--ui-tab-text":"#a3b1c2","--ui-tab-active-bg":"#434c5e","--ui-tab-active-text":"#eceff4","--ui-tab-accent":"#88c0d0","--ui-connection-bg":"#2e3440","--ui-connection-text":"#a3b1c2","--ui-tree-bg":"#2e3440","--ui-tree-border":"#434c5e","--ui-term-col-bg":"#2e3440","--ui-fab-bg":"#3b4252","--ui-fab-border":"#5e81ac","--ui-muted-surface":"#3b4252","--ui-muted-border":"#434c5e","--ui-muted-text":"#81a1c1","--ui-panel-input-bg":"#242933","--ui-panel-input-text":"#eceff4","--ui-panel-input-border":"#434c5e","--ui-drawer-tab-text":"#a3b1c2","--ui-drawer-tab-active":"#88c0d0","--ui-history-item-text":"#eceff4","--ui-history-meta":"#7b88a1","--ui-success":"#a3be8c","--ui-error":"#bf616a"},termHostBg:"#2e3440",keybar:{bg:"#242933",border:"#434c5e",keyBg:"#3b4252",keyBorder:"#434c5e",keyText:"#eceff4",accent:"#88c0d0",accentText:"#242933",drag:"#5e81ac"},xterm:{background:"#2e3440",foreground:"#d8dee9",cursor:"#88c0d0",selectionBackground:"#434c5e",black:"#3b4252",red:"#bf616a",green:"#a3be8c",yellow:"#ebcb8b",blue:"#81a1c1",magenta:"#b48ead",cyan:"#88c0d0",white:"#e5e9f0",brightBlack:"#4c566a",brightWhite:"#eceff4"}},{id:"gray",label:"灰",swatch:"#1e1e1e",cssVars:{"--ui-root-bg":"#181818","--ui-text":"#d4d4d4","--ui-tabbar-bg":"#1e1e1e","--ui-tabbar-border":"#3c3c3c","--ui-tab-bg":"#252526","--ui-tab-text":"#969696","--ui-tab-active-bg":"#2d2d2d","--ui-tab-active-text":"#ffffff","--ui-tab-accent":"#cccccc","--ui-connection-bg":"#1e1e1e","--ui-connection-text":"#969696","--ui-tree-bg":"#252526","--ui-tree-border":"#3c3c3c","--ui-term-col-bg":"#1e1e1e","--ui-fab-bg":"#2d2d2d","--ui-fab-border":"#555555","--ui-muted-surface":"#2d2d2d","--ui-muted-border":"#3c3c3c","--ui-muted-text":"#b0b0b0","--ui-panel-input-bg":"#181818","--ui-panel-input-text":"#d4d4d4","--ui-panel-input-border":"#3c3c3c","--ui-drawer-tab-text":"#969696","--ui-drawer-tab-active":"#ffffff","--ui-history-item-text":"#d4d4d4","--ui-history-meta":"#808080","--ui-success":"#89d185","--ui-error":"#f48771"},termHostBg:"#1e1e1e",keybar:{bg:"#252526",border:"#3c3c3c",keyBg:"#2d2d2d",keyBorder:"#3c3c3c",keyText:"#d4d4d4",accent:"#cccccc",accentText:"#1e1e1e",drag:"#555555"},xterm:{background:"#1e1e1e",foreground:"#d4d4d4",cursor:"#aeafad",selectionBackground:"#264f78",black:"#1e1e1e",red:"#f48771",green:"#89d185",yellow:"#dcdcaa",blue:"#569cd6",magenta:"#c586c0",cyan:"#4ec9b0",white:"#d4d4d4",brightBlack:"#808080",brightWhite:"#ffffff"}},{id:"green",label:"绿",swatch:"#0a120a",cssVars:{"--ui-root-bg":"#050805","--ui-text":"#b8ffb8","--ui-tabbar-bg":"#0a120a","--ui-tabbar-border":"#1a3a1a","--ui-tab-bg":"#0f180f","--ui-tab-text":"#5a9a5a","--ui-tab-active-bg":"#142014","--ui-tab-active-text":"#d4ffd4","--ui-tab-accent":"#33ff66","--ui-connection-bg":"#0a120a","--ui-connection-text":"#5a9a5a","--ui-tree-bg":"#0f180f","--ui-tree-border":"#1a3a1a","--ui-term-col-bg":"#0a120a","--ui-fab-bg":"#142014","--ui-fab-border":"#2a5a2a","--ui-muted-surface":"#142014","--ui-muted-border":"#1a3a1a","--ui-muted-text":"#6aaa6a","--ui-panel-input-bg":"#050805","--ui-panel-input-text":"#b8ffb8","--ui-panel-input-border":"#1a3a1a","--ui-drawer-tab-text":"#5a9a5a","--ui-drawer-tab-active":"#33ff66","--ui-history-item-text":"#b8ffb8","--ui-history-meta":"#4a8a4a","--ui-success":"#33ff66","--ui-error":"#ff5555"},termHostBg:"#0a120a",keybar:{bg:"#0a120a",border:"#1a3a1a",keyBg:"#0f180f",keyBorder:"#1a3a1a",keyText:"#b8ffb8",accent:"#33ff66",accentText:"#050805",drag:"#2a5a2a"},xterm:{background:"#0a120a",foreground:"#33ff66",cursor:"#33ff66",selectionBackground:"#1a4a1a",black:"#050805",red:"#ff5555",green:"#33ff66",yellow:"#ffff66",blue:"#66ccff",magenta:"#ff66ff",cyan:"#66ffff",white:"#b8ffb8",brightBlack:"#2a5a2a",brightWhite:"#d4ffd4"}}],u="black",b=Object.fromEntries(d.map(e=>[e.id,e]));function f({username:e,themeId:t,onThemeChange:r,accent:i,accentText:n}){let[c,l]=(0,o.useState)(!1),s=(0,o.useRef)(null),u=(0,o.useRef)(null),[b,f]=(0,o.useState)(null),p=(e.trim()[0]??"?").toUpperCase();return(0,a.jsxs)("div",{ref:s,className:"theme-picker",children:[a.jsx("button",{ref:u,type:"button",className:"theme-avatar","aria-label":`换肤(${e})`,title:e,"aria-expanded":c,onPointerDown:e=>e.stopPropagation(),onClick:e=>{e.preventDefault(),e.stopPropagation(),l(e=>!e)},style:{width:28,height:28,borderRadius:99,border:`1px solid ${i}`,background:i,color:n,fontSize:12,fontWeight:700,padding:0,cursor:"pointer",flexShrink:0,touchAction:"manipulation"},children:p}),c&&b&&(0,a.jsxs)("div",{className:"theme-popover",role:"dialog","aria-label":"选择皮肤",style:{position:"fixed",top:b.top,left:b.left,zIndex:200,width:168,padding:10,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)",marginBottom:8,letterSpacing:.5},children:"经典皮肤"}),a.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:7},children:d.map(e=>{let i=e.id===t;return(0,a.jsxs)("button",{type:"button",title:e.label,"aria-label":e.label,"aria-pressed":i,onPointerDown:e=>e.stopPropagation(),onClick:()=>{r(e.id),l(!1)},style:{display:"flex",flexDirection:"column",alignItems:"center",gap:4,padding:"6px 2px",borderRadius:8,border:i?"2px solid var(--ui-tab-accent, #7aa2f7)":"1px solid var(--ui-tabbar-border, #282b36)",background:"var(--ui-tab-bg, #1b1e28)",cursor:"pointer",touchAction:"manipulation"},children:[a.jsx("span",{style:{width:22,height:22,borderRadius:6,background:e.swatch,boxShadow:i?"0 0 0 1px var(--ui-tab-accent, #7aa2f7)":"inset 0 0 0 1px rgba(255,255,255,.08)"}}),a.jsx("span",{style:{fontSize:9.5,color:i?"var(--ui-tab-active-text, #edf0f7)":"var(--ui-tab-text, #8f93a4)"},children:e.label})]},e.id)})})]})]})}let p=n()(async()=>{},{loadableGenerated:{modules:["app/web/page.tsx -> ./TerminalPane"]},ssr:!1}),g=n()(async()=>{},{loadableGenerated:{modules:["app/web/page.tsx -> ./FileTree"]},ssr:!1}),h=n()(async()=>{},{loadableGenerated:{modules:["app/web/page.tsx -> ./FilePreview"]},ssr:!1});function x(){return a.jsx(c,{children:e=>a.jsx(v,{auth:e})})}let m={id:"webapp-agent",title:"智能助手",kind:"webapp"};function v({auth:e}){let{state:t,epoch:r,rpc:i,onEvent:n,onTerminalData:c,onTerminalReset:l,sendTerminalInput:d}=function(e,t,r){let[a,i]=(0,o.useState)({connected:!1,error:null}),[n,c]=(0,o.useState)(0),l=(0,o.useRef)(null),s=(0,o.useRef)(0),d=(0,o.useRef)(new Map),u=(0,o.useRef)([]),b=(0,o.useRef)(0),f=(0,o.useRef)(new Map),p=(0,o.useRef)(new Map),g=(0,o.useRef)(new Map),h=(0,o.useRef)(1e3),x=(0,o.useRef)(!1),m=(0,o.useRef)(null),v=(0,o.useRef)(e),y=(0,o.useRef)(t),w=(0,o.useRef)(r);v.current=e,y.current=t,w.current=r;let k=(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)},[]),j=(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)},[]),S=(0,o.useCallback)((e,t)=>{let r=g.current.get(e);return r||g.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},[]),P=(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)=>{let n=++b.current,o=setTimeout(()=>{d.current.delete(n),i(Error(`${e} timeout`))},r);d.current.set(n,{resolve:a,reject:i,timer:o}),P(JSON.stringify({type:e,_req:n,...t}))}),[P]),R=(0,o.useCallback)(async()=>{let e,t;x.current=!1;let r=++s.current;m.current&&(clearInterval(m.current),m.current=null);let a=l.current;if(a){a.onopen=a.onmessage=a.onerror=a.onclose=null;try{a.close()}catch{}}try{e=await y.current()}catch{r===s.current&&w.current();return}if(r===s.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!==s.current||l.current!==t)return;for(let e of(h.current=1e3,i({connected:!0,error:null}),c(e=>e+1),u.current.splice(0)))t.send(e);let e=Date.now();m.current=setInterval(()=>{if(l.current!==t||t.readyState!==WebSocket.OPEN){clearInterval(m.current),m.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===s.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]){let e=new DataView(t.buffer,t.byteOffset,t.byteLength).getUint32(2);p.current.get(e)?.forEach(e=>e(t.subarray(6)))}else if(t.byteLength>=6&&1===t[0]&&3===t[1]){let e=new DataView(t.buffer,t.byteOffset,t.byteLength).getUint32(2);g.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=d.current.get(a.id);if(e){d.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=d.current.get(a.id);e&&(d.current.delete(a.id),clearTimeout(e.timer),e.resolve(a));return}f.current.get(a.type)?.forEach(e=>e(a))}},t.onclose=e=>{if(r!==s.current||l.current!==t)return;if(m.current&&(clearInterval(m.current),m.current=null),l.current=null,i({connected:!1,error:null}),4001===e.code||4003===e.code){w.current();return}if(x.current)return;let a=h.current;h.current=Math.min(2*a,8e3),setTimeout(()=>{x.current||r!==s.current||R()},a)},t.onerror=()=>{}}},[]);return{state:a,epoch:n,rpc:T,onEvent:k,onTerminalData:j,onTerminalReset:S,sendTerminalInput:C,reconnect:R}}(()=>{},e.getWsNonce,e.refresh),[x,v]=(0,o.useState)([{...m}]),[k,j]=(0,o.useState)(m.id),[S,C]=(0,o.useState)({});(0,o.useRef)(!1),(0,o.useRef)(null);let P=(0,o.useRef)(new Map),T=(0,o.useCallback)((e,t)=>(P.current.set(e,t),()=>P.current.delete(e)),[]),R=(0,o.useCallback)(e=>{if(!k)return;let t=P.current.get(k);t?t(e):i("term:input",{id:k,data:`\x15${e}`}).catch(()=>{}),E(!1)},[k,i]),[B,z]=(0,o.useState)(!1),[M,N]=(0,o.useState)({}),[D,_]=(0,o.useState)(null),[I,E]=(0,o.useState)(!1),[O,W]=(0,o.useState)("files"),[L,H]=(0,o.useState)(null),[$,F]=(0,o.useState)(!0),[U,q]=(0,o.useState)({xRatio:.94,yRatio:.65,anchor:"right"}),[A,V]=(0,o.useState)(!1),[G,X]=(0,o.useState)([]),[J,K]=(0,o.useState)(u),[Y,Q]=(0,o.useState)(!1),Z=function(e){let t="dark"===e?u:e;return t&&t in b?b[t]:b[u]}(J),ee=(0,o.useRef)(null),et=(0,o.useRef)(null),[er,ea]=(0,o.useState)(0),[ei,en]=(0,o.useState)(!1),eo=(0,o.useRef)(null),ec=(0,o.useRef)(null),el=(0,o.useRef)(null);(0,o.useRef)(0);let es=k?S[k]??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 ed=(0,o.useCallback)(e=>{_(e),E(!1)},[]),eu=(0,o.useCallback)(()=>{let e=null;v(t=>t.length>=8?t:[...t,{id:e=`t-web-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,8)}`,title:`Terminal ${t.length+1}`}]),e&&j(e)},[]),eb=e=>{e!==m.id&&window.confirm("关闭页签会终止该终端进程,确认关闭?")&&(v(t=>{let r=t.filter(t=>t.id!==e);return k===e&&j(r[0]?.id??null),r}),i("term:kill",{id:e}).catch(()=>{}))},ef=(0,o.useCallback)(e=>{if(!k||x.length<2)return;let t=(x.findIndex(e=>e.id===k)+e+x.length)%x.length;j(x[t].id)},[k,x]),ep=Math.max(0,x.findIndex(e=>e.id===k)),eg=(0,o.useCallback)(()=>{et.current=null,ea(0),en(!1)},[]),eh=(0,o.useCallback)(e=>{Math.abs(e)>=64&&x.length>1&&ef(e<0?1:-1),eg()},[x.length,ef,eg]),ex=e=>e instanceof Element&&!!e.closest(".terminal-screen");return(0,o.useCallback)((e="smooth")=>{let t=ec.current;if(!t||!k)return;let r=t.querySelector(`[data-terminal-id="${k}"]`);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,c=t.scrollLeft,l=c+t.clientWidth-i;n<c+8?t.scrollTo({left:Math.max(0,n-8),behavior:e}):o>l-8&&t.scrollTo({left:o-t.clientWidth+i+8,behavior:e})},[k]),(0,a.jsxs)("div",{className:"web-root",style:{...w.root,...Z.cssVars,background:"var(--ui-root-bg)",color:"var(--ui-text)"},children:[a.jsx("style",{dangerouslySetInnerHTML:{__html:y}}),(0,a.jsxs)("div",{className:"terminal-tabs",ref:ec,children:[x.map(e=>(0,a.jsxs)("div",{"data-terminal-id":e.id,draggable:!0,className:`terminal-tab ${e.id===k?"active":""}`,onDragStart:()=>{eo.current=e.id},onDragOver:e=>e.preventDefault(),onDrop:t=>{t.preventDefault();let r=eo.current;eo.current=null,r&&r!==e.id&&v(t=>{let a=t.findIndex(e=>e.id===r),n=t.findIndex(t=>t.id===e.id);if(a<0||n<0)return t;let o=[...t],[c]=o.splice(a,1);return o.splice(n,0,c),i("term:reorder",{ids:o.map(e=>e.id).filter(e=>e!==m.id)}).catch(()=>{}),o})},onClick:()=>j(e.id),onDoubleClick:()=>{if("webapp"===e.kind)return;let t=window.prompt("页签名称",e.title)?.trim();t&&i("term:rename",{id:e.id,title:t}).then(()=>v(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(),eb(e.id)},children:"\xd7"})]},e.id)),a.jsx("button",{className:"terminal-add",disabled:x.length>=8,onClick:eu,children:"+"}),(0,a.jsxs)("div",{className:"terminal-connection",children:[a.jsx("span",{style:{width:8,height:8,borderRadius:99,background:t.connected?"var(--ui-success)":"var(--ui-error)"}}),a.jsx(f,{username:e.user?.username??"?",themeId:J,onThemeChange:K,accent:Z.keybar.accent,accentText:Z.keybar.accentText})]})]}),(0,a.jsxs)("main",{className:`workspace ${I?"show-tree":""} ${D?"has-preview":""}`,style:w.workspace,children:[a.jsx("section",{className:"term-col",style:w.termCol,onPointerDownCapture:e=>{"touch"===e.pointerType&&ex(e.target)&&(et.current={x:e.clientX,y:e.clientY,axis:"pending"})},onPointerMoveCapture:e=>{let t=et.current;if(!t||"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)){et.current=null;return}t.axis="horizontal",en(!0)}"horizontal"===t.axis&&(e.preventDefault(),ea(r))},onPointerUpCapture:e=>{let t=et.current;if(!t||"touch"!==e.pointerType)return;let r=e.clientX-t.x;"horizontal"===t.axis&&Math.abs(r)>=64?eh(r):eg()},onPointerCancelCapture:eg,children:a.jsx("div",{className:"terminal-track",style:{transform:`translate3d(calc(${-(100*ep)}% + ${er}px),0,0)`,transition:ei?"none":"transform 260ms cubic-bezier(.22,.8,.32,1)"},children:x.map(e=>a.jsx("div",{className:"terminal-slide",children:"webapp"===e.kind?a.jsx("iframe",{ref:el,src:"/app/",title:e.title,style:{width:"100%",height:"100%",border:"0",background:"#000"}}):a.jsx(p,{terminalId:e.id,title:e.title,visible:e.id===k,state:t,rpc:i,onEvent:n,onTerminalData:c,onTerminalReset:l,sendTerminalInput:d,keyOrder:G,keybarHidden:A,onKeyOrderChange:X,onKeybarHiddenChange:V,terminalTheme:Z,initialScrollLine:M[e.id]??null,onScrollLineChange:t=>N(r=>r[e.id]===t?r:{...r,[e.id]:t}),onRegisterFill:t=>T(e.id,t),onCwdChange:t=>t&&C(r=>({...r,[e.id]:t}))})},e.id))})}),I&&a.jsx("div",{className:"drawer-mask",onClick:()=>E(!1)}),(0,a.jsxs)("aside",{className:`tree-col ${I?"tree-col-open":""}`,style:w.treeCol,children:[(0,a.jsxs)("div",{className:"tree-head",style:w.treeHead,children:[a.jsx("button",{className:"files"===O?"drawer-tab-active":"",onClick:()=>W("files"),children:"文件"}),a.jsx("button",{className:"history"===O?"drawer-tab-active":"",onClick:()=>W("history"),children:"历史"}),a.jsx("span",{className:"tree-cwd",style:w.treeCwd,children:es??""}),a.jsx("button",{style:{...w.iconBtn,marginLeft:"auto",flexShrink:0},onClick:()=>E(!1),"aria-label":"close drawer",children:"✕"})]}),"files"===O?a.jsx(g,{ready:r>0,followCwd:!0,cwd:es,rpc:i,onEvent:n,onOpenFile:ed,selectedPath:D,initialRoot:L,initialFollow:$,onTreeStateChange:(e,t)=>{H(e),F(t)}}):a.jsx(s,{csrfToken:e.csrfToken,terminalId:k,onFill:R}),(0,a.jsxs)("div",{style:w.treeFoot,children:[a.jsx("span",{style:w.treeFootDot}),a.jsx("span",{children:"实时同步"})]})]}),D&&a.jsx("section",{className:"preview-col",style:w.previewCol,children:a.jsx(h,{path:D,rpc:i,onClose:()=>_(null)})})]}),a.jsx("button",{className:"fab-files",style:{...w.fabFiles,left:`${100*U.xRatio}%`,top:`${100*U.yRatio}%`,right:"auto",bottom:"auto",transform:"translate(-50%,-50%)"},onPointerDown:e=>{ee.current={moved:!1},e.currentTarget.setPointerCapture(e.pointerId)},onPointerMove:e=>{if(!ee.current)return;ee.current.moved=!0;let t=window.visualViewport;q({xRatio:Math.max(.05,Math.min(.95,e.clientX/(t?.width||innerWidth))),yRatio:Math.max(.08,Math.min(.92,(e.clientY-(t?.offsetTop||0))/(t?.height||innerHeight))),anchor:e.clientX<(t?.width||innerWidth)/2?"left":"right"})},onPointerUp:e=>{e.currentTarget.releasePointerCapture(e.pointerId),ee.current?.moved||E(e=>!e),ee.current=null},"aria-label":"files",children:"\uD83D\uDCC2"})]})}let y=`
|
|
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:1px solid var(--ui-tabbar-border, #282b36); scrollbar-width:none; flex-shrink:0; }
|
|
5
5
|
.terminal-tab { display:flex; align-items:center; gap:7px; min-width:74px; max-width:130px; height:32px; padding:0 7px 0 10px; border-radius:7px 7px 0 0; background:var(--ui-tab-bg, #1b1e28); color:var(--ui-tab-text, #8f93a4); font-size:11px; cursor:pointer; box-sizing:border-box; transition:background .2s ease,color .2s ease,box-shadow .2s ease; }
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
.web-root {
|
|
20
20
|
position: fixed;
|
|
21
21
|
top: var(--vv-top, 0px);
|
|
22
|
-
left:
|
|
23
|
-
|
|
22
|
+
left: var(--vv-left, 0px);
|
|
23
|
+
width: var(--vv-width, 100vw);
|
|
24
24
|
height: var(--vv-height, 100dvh) !important;
|
|
25
25
|
}
|
|
26
26
|
.tree-scroll {
|
|
@@ -148,18 +148,18 @@
|
|
|
148
148
|
position: fixed;
|
|
149
149
|
top: var(--vv-top, 0px);
|
|
150
150
|
height: var(--vv-height, 100dvh);
|
|
151
|
-
right:
|
|
151
|
+
right: calc(100vw - var(--vv-left, 0px) - var(--vv-width, 100vw));
|
|
152
152
|
width: min(82vw, 320px); z-index: 40;
|
|
153
153
|
transform: translateX(102%); transition: transform .22s ease;
|
|
154
154
|
box-shadow: -12px 0 32px rgba(0,0,0,.5);
|
|
155
155
|
}
|
|
156
156
|
.tree-col-open { transform: translateX(0); }
|
|
157
|
-
.drawer-mask { position:
|
|
157
|
+
.drawer-mask { position:fixed; top:var(--vv-top, 0px); left:var(--vv-left, 0px); width:var(--vv-width, 100vw); height:var(--vv-height, 100dvh); background:rgba(0,0,0,.45); z-index:39; }
|
|
158
158
|
.preview-col {
|
|
159
159
|
position: fixed;
|
|
160
160
|
top: var(--vv-top, 0px);
|
|
161
|
-
left:
|
|
162
|
-
|
|
161
|
+
left: var(--vv-left, 0px);
|
|
162
|
+
width: var(--vv-width, 100vw);
|
|
163
163
|
height: var(--vv-height, 100dvh);
|
|
164
164
|
z-index: 50;
|
|
165
165
|
background: var(--ui-term-col-bg, #101014);
|
|
@@ -176,8 +176,8 @@
|
|
|
176
176
|
box-shadow: none; border-left: 1px solid var(--ui-tree-border, #1e1e26);
|
|
177
177
|
}
|
|
178
178
|
.workspace:not(.show-tree) .tree-col { display: none; }
|
|
179
|
-
.preview-col { position: relative; inset: auto; height: auto; border-left: 1px solid var(--ui-tree-border, #1e1e26); }
|
|
179
|
+
.preview-col { position: relative; inset: auto; width: auto; height: auto; border-left: 1px solid var(--ui-tree-border, #1e1e26); }
|
|
180
180
|
.fab-files { display: none; }
|
|
181
181
|
.drawer-mask { display: none; }
|
|
182
182
|
}
|
|
183
|
-
`,
|
|
183
|
+
`,w={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 #333",background:"#17171d",color:"#ccc",fontSize:13},workspace:{flex:1,minHeight:0,display:"grid",gridTemplateColumns:"1fr",position:"relative"},treeCol:{background:"var(--ui-tree-bg, #121218)",minHeight:0,display:"flex",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},fabFiles:{position:"absolute",right:14,bottom:"calc(env(safe-area-inset-bottom) + 64px)",width:44,height:44,borderRadius:99,border:"1px solid var(--ui-fab-border, #2c2c38)",background:"var(--ui-fab-bg, #1b1b26)",color:"var(--ui-text, #dde)",fontSize:18,zIndex:45,boxShadow:"0 4px 16px rgba(0,0,0,.45)"}}},4972:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n,metadata:()=>i});var a=r(3477);let i={title:"AgentRoam",description:"General-purpose AI agent API server"};function n({children:e}){return a.jsx("html",{lang:"en",children:a.jsx("body",{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/team-agent/customer-agent/packages/server/app/web/page.tsx#default`)}};var t=require("../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),a=t.X(0,[375,303],()=>r(8664));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}},"
|
|
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}},"1620":{"*":{"id":"4735","name":"*","chunks":[],"async":false}},"5613":{"*":{"id":"8949","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/team-agent/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/team-agent/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/team-agent/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/team-agent/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/team-agent/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/team-agent/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/team-agent/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/team-agent/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/team-agent/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/team-agent/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/team-agent/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/team-agent/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/team-agent/customer-agent/packages/server/app/web/page.tsx":{"id":1620,"name":"*","chunks":["541","static/chunks/app/web/page-02e0df331bb14489.js"],"async":false}},"entryCSSFiles":{"/Users/caoqu/team-agent/customer-agent/packages/server/":[],"/Users/caoqu/team-agent/customer-agent/packages/server/app/layout":[],"/Users/caoqu/team-agent/customer-agent/packages/server/app/web/page":[]}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-0c872a6ee48cbbdf.js"/><script src="/_next/static/chunks/3cc391f0-17a90b8b534c353f.js" async=""></script><script src="/_next/static/chunks/183-9c8ca0c781655214.js" async=""></script><script src="/_next/static/chunks/main-app-07d67f2d4e96ecb8.js" async=""></script><script src="/_next/static/chunks/app/web/page-02e0df331bb14489.js" async=""></script><title>AgentRoam</title><meta name="description" content="General-purpose AI agent API server"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><main style="min-height:100dvh;display:grid;place-items:center;background:#0b0b10;color:#e8e8ee;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif"><div style="color:#858999;font-size:13px">正在连接远程控制台…</div></main><script src="/_next/static/chunks/webpack-0c872a6ee48cbbdf.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:I[7709,[],\"\"]\n3:I[5613,[],\"ClientPageRoot\"]\n4:I[1620,[\"541\",\"static/chunks/app/web/page-02e0df331bb14489.js\"],\"default\",1]\n5:I[1338,[],\"\"]\n6:I[1573,[],\"\"]\n8:I[6554,[],\"\"]\n9:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L1\",null,{\"buildId\":\"dclalTmecO-HMVQvSKG7g\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"web\"],\"initialTree\":[\"\",{\"children\":[\"web\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"web\",{\"children\":[\"__PAGE__\",{},[[\"$L2\",[\"$\",\"$L3\",null,{\"props\":{\"params\":{},\"searchParams\":{}},\"Component\":\"$4\"}],null],null],null]},[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"web\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[null,[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$L7\"],\"globalErrorComponent\":\"$8\",\"missingSlots\":\"$W9\"}]\n"])</script><script>self.__next_f.push([1,"7:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"AgentRoam\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"General-purpose AI agent API server\"}]]\n2:null\n"])</script></body></html>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
2:I[5613,[],"ClientPageRoot"]
|
|
2
|
-
3:I[
|
|
2
|
+
3:I[1620,["541","static/chunks/app/web/page-02e0df331bb14489.js"],"default",1]
|
|
3
3
|
4:I[1338,[],""]
|
|
4
4
|
5:I[1573,[],""]
|
|
5
|
-
0:["
|
|
5
|
+
0:["dclalTmecO-HMVQvSKG7g",[[["",{"children":["web",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",{"children":["web",{"children":["__PAGE__",{},[["$L1",["$","$L2",null,{"props":{"params":{},"searchParams":{}},"Component":"$3"}],null],null],null]},[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","web","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[[null,["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}]}]}]],null],null],["$L6",null]]]]
|
|
6
6
|
6:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"AgentRoam"}],["$","meta","3",{"name":"description","content":"General-purpose AI agent API server"}]]
|
|
7
7
|
1:null
|
|
@@ -1,29 +1,31 @@
|
|
|
1
1
|
{
|
|
2
2
|
"/_not-found/page": "app/_not-found/page.js",
|
|
3
|
-
"/api/agent/abort/route": "app/api/agent/abort/route.js",
|
|
4
3
|
"/api/agent/answer/route": "app/api/agent/answer/route.js",
|
|
4
|
+
"/api/agent/steer/route": "app/api/agent/steer/route.js",
|
|
5
|
+
"/api/agent/model/route": "app/api/agent/model/route.js",
|
|
5
6
|
"/api/agent/stream/route": "app/api/agent/stream/route.js",
|
|
6
7
|
"/api/agent/run/route": "app/api/agent/run/route.js",
|
|
8
|
+
"/api/auth/verify/route": "app/api/auth/verify/route.js",
|
|
9
|
+
"/api/mcp/servers/route": "app/api/mcp/servers/route.js",
|
|
10
|
+
"/api/agent/abort/route": "app/api/agent/abort/route.js",
|
|
7
11
|
"/api/mcp/connect/route": "app/api/mcp/connect/route.js",
|
|
8
12
|
"/api/mcp/disconnect/route": "app/api/mcp/disconnect/route.js",
|
|
9
|
-
"/api/mcp/servers/route": "app/api/mcp/servers/route.js",
|
|
10
|
-
"/api/memory/[key]/route": "app/api/memory/[key]/route.js",
|
|
11
13
|
"/api/memory/route": "app/api/memory/route.js",
|
|
12
14
|
"/api/plugins/load/route": "app/api/plugins/load/route.js",
|
|
13
|
-
"/api/
|
|
14
|
-
"/api/tools/route": "app/api/tools/route.js",
|
|
15
|
+
"/api/memory/[key]/route": "app/api/memory/[key]/route.js",
|
|
15
16
|
"/api/sessions/[id]/route": "app/api/sessions/[id]/route.js",
|
|
16
17
|
"/api/sessions/route": "app/api/sessions/route.js",
|
|
18
|
+
"/api/web-auth/login/route": "app/api/web-auth/login/route.js",
|
|
17
19
|
"/api/remote-tools/register/route": "app/api/remote-tools/register/route.js",
|
|
18
|
-
"/api/
|
|
19
|
-
"/api/web-console/bootstrap/route": "app/api/web-console/bootstrap/route.js",
|
|
20
|
-
"/api/web-console/device-state/route": "app/api/web-console/device-state/route.js",
|
|
20
|
+
"/api/tools/route": "app/api/tools/route.js",
|
|
21
21
|
"/api/web-auth/logout/route": "app/api/web-auth/logout/route.js",
|
|
22
|
-
"/api/
|
|
22
|
+
"/api/skills/route": "app/api/skills/route.js",
|
|
23
|
+
"/api/web-console/history/route": "app/api/web-console/history/route.js",
|
|
23
24
|
"/api/web-console/preferences/route": "app/api/web-console/preferences/route.js",
|
|
24
25
|
"/web/page": "app/web/page.js",
|
|
25
26
|
"/api/web-auth/status/route": "app/api/web-auth/status/route.js",
|
|
27
|
+
"/api/web-auth/setup/route": "app/api/web-auth/setup/route.js",
|
|
26
28
|
"/api/web-auth/revoke-all/route": "app/api/web-auth/revoke-all/route.js",
|
|
27
|
-
"/api/web-console/
|
|
28
|
-
"/api/
|
|
29
|
+
"/api/web-console/bootstrap/route": "app/api/web-console/bootstrap/route.js",
|
|
30
|
+
"/api/web-console/device-state/route": "app/api/web-console/device-state/route.js"
|
|
29
31
|
}
|