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.
Files changed (87) hide show
  1. package/dist/cli.js +1 -1
  2. package/dist/cloudflared/bundled-asset.test.js +1 -1
  3. package/dist/cloudflared/manifest.js +1 -1
  4. package/dist/tunnel/cloudflare-provider.js +17 -10
  5. package/dist/tunnel/cloudflare-provider.test.js +33 -0
  6. package/dist/tunnel/proxy-settings.js +141 -0
  7. package/dist/tunnel/proxy-settings.test.js +111 -0
  8. package/dist/tunnel/public-readiness.js +60 -36
  9. package/dist/tunnel/public-readiness.test.js +80 -0
  10. package/package.json +27 -9
  11. package/runtime/.next/BUILD_ID +1 -1
  12. package/runtime/.next/app-build-manifest.json +4 -4
  13. package/runtime/.next/app-path-routes-manifest.json +1 -1
  14. package/runtime/.next/build-manifest.json +7 -7
  15. package/runtime/.next/prerender-manifest.json +1 -1
  16. package/runtime/.next/react-loadable-manifest.json +1 -1
  17. package/runtime/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  18. package/runtime/.next/server/app/_not-found.html +1 -1
  19. package/runtime/.next/server/app/_not-found.rsc +1 -1
  20. package/runtime/.next/server/app/api/agent/abort/route.js +1 -1
  21. package/runtime/.next/server/app/api/agent/answer/route.js +1 -1
  22. package/runtime/.next/server/app/api/agent/model/route.js +1 -0
  23. package/runtime/.next/server/app/api/agent/model/route.js.nft.json +1 -0
  24. package/runtime/.next/server/app/api/agent/model.body +1 -0
  25. package/runtime/.next/server/app/api/agent/model.meta +1 -0
  26. package/runtime/.next/server/app/api/agent/run/route.js +1 -1
  27. package/runtime/.next/server/app/api/agent/steer/route.js +1 -0
  28. package/runtime/.next/server/app/api/agent/steer/route.js.nft.json +1 -0
  29. package/runtime/.next/server/app/api/agent/stream/route.js +3 -2
  30. package/runtime/.next/server/app/api/mcp/connect/route.js +1 -1
  31. package/runtime/.next/server/app/api/plugins/load/route.js +1 -1
  32. package/runtime/.next/server/app/api/remote-tools/register/route.js +1 -1
  33. package/runtime/.next/server/app/api/sessions/[id]/route.js +1 -1
  34. package/runtime/.next/server/app/api/sessions/route.js +1 -1
  35. package/runtime/.next/server/app/api/skills/route.js +1 -1
  36. package/runtime/.next/server/app/api/tools/route.js +1 -1
  37. package/runtime/.next/server/app/api/web-auth/login/route.js +1 -1
  38. package/runtime/.next/server/app/api/web-auth/logout/route.js +1 -1
  39. package/runtime/.next/server/app/api/web-auth/revoke-all/route.js +1 -1
  40. package/runtime/.next/server/app/api/web-auth/setup/route.js +1 -1
  41. package/runtime/.next/server/app/api/web-auth/status/route.js +1 -1
  42. package/runtime/.next/server/app/api/web-console/bootstrap/route.js +1 -1
  43. package/runtime/.next/server/app/api/web-console/device-state/route.js +1 -1
  44. package/runtime/.next/server/app/api/web-console/history/route.js +1 -1
  45. package/runtime/.next/server/app/api/web-console/history/route.js.nft.json +1 -1
  46. package/runtime/.next/server/app/api/web-console/preferences/route.js +1 -1
  47. package/runtime/.next/server/app/web/page.js +10 -10
  48. package/runtime/.next/server/app/web/page_client-reference-manifest.js +1 -1
  49. package/runtime/.next/server/app/web.html +1 -1
  50. package/runtime/.next/server/app/web.rsc +2 -2
  51. package/runtime/.next/server/app-paths-manifest.json +13 -11
  52. package/runtime/.next/server/chunks/322.js +28 -12
  53. package/runtime/.next/server/middleware-build-manifest.js +1 -1
  54. package/runtime/.next/server/middleware-react-loadable-manifest.js +1 -1
  55. package/runtime/.next/server/pages/404.html +1 -1
  56. package/runtime/.next/server/pages/500.html +1 -1
  57. package/runtime/.next/server/server-reference-manifest.json +1 -1
  58. package/runtime/.next/static/chunks/982.9e87a5cc0e6b13cf.js +1 -0
  59. package/runtime/.next/static/chunks/app/web/page-02e0df331bb14489.js +1 -0
  60. package/runtime/.next/static/chunks/{main-a7dd8c98b48af038.js → main-30618c50527ce4e9.js} +1 -1
  61. package/runtime/.next/static/chunks/{webpack-d91bc49de770fd58.js → webpack-0c872a6ee48cbbdf.js} +1 -1
  62. package/runtime/node_modules/.package-lock.json +3 -3
  63. package/runtime/node_modules/@agent/core/dist/domain/context/ContextLoader.d.ts +2 -0
  64. package/runtime/node_modules/@agent/core/dist/domain/context/ContextLoader.d.ts.map +1 -1
  65. package/runtime/node_modules/@agent/core/dist/index.js +114 -12
  66. package/runtime/node_modules/@agent/core/dist/index.js.map +7 -6
  67. package/runtime/node_modules/@agent/core/dist/infrastructure/SQLiteAnonymousWebStore.d.ts +13 -0
  68. package/runtime/node_modules/@agent/core/dist/infrastructure/SQLiteAnonymousWebStore.d.ts.map +1 -0
  69. package/runtime/node_modules/@agent/core/dist/infrastructure/SQLiteAnonymousWebStore.test.d.ts +2 -0
  70. package/runtime/node_modules/@agent/core/dist/infrastructure/SQLiteAnonymousWebStore.test.d.ts.map +1 -0
  71. package/runtime/node_modules/@agent/core/dist/infrastructure/SQLiteDatabase.d.ts.map +1 -1
  72. package/runtime/node_modules/@agent/core/dist/infrastructure/SQLiteSessionStore.d.ts.map +1 -1
  73. package/runtime/node_modules/@agent/core/dist/infrastructure/index.d.ts +1 -0
  74. package/runtime/node_modules/@agent/core/dist/infrastructure/index.d.ts.map +1 -1
  75. package/runtime/node_modules/node-abi/abi_registry.json +7 -0
  76. package/runtime/node_modules/node-abi/package.json +1 -1
  77. package/runtime/package-lock.json +3 -3
  78. package/runtime/webapp/dist/assets/App-lXIeMH5u.js +52 -0
  79. package/runtime/webapp/dist/assets/index-BAFMhDtY.js +42 -0
  80. package/runtime/webapp/dist/assets/index-Beg9M2xI.css +1 -0
  81. package/runtime/webapp/dist/index.html +17 -0
  82. package/runtime/webapp/dist/pcm-audio-worklet.js +126 -0
  83. package/runtime/ws-server.mjs +148 -18
  84. package/runtime/.next/static/chunks/982.bf2e6e7fe55cd5ca.js +0 -1
  85. package/runtime/.next/static/chunks/app/web/page-0ee508ac538f72d3.js +0 -1
  86. /package/runtime/.next/static/{OszWLAB2kMAnNfSwJzpyw → dclalTmecO-HMVQvSKG7g}/_buildManifest.js +0 -0
  87. /package/runtime/.next/static/{OszWLAB2kMAnNfSwJzpyw → dclalTmecO-HMVQvSKG7g}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- self.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:[],rootMainFiles:["static/chunks/webpack-d91bc49de770fd58.js","static/chunks/3cc391f0-17a90b8b534c353f.js","static/chunks/183-9c8ca0c781655214.js","static/chunks/main-app-07d67f2d4e96ecb8.js"],pages:{"/_app":["static/chunks/webpack-d91bc49de770fd58.js","static/chunks/framework-7bac12ed8564755e.js","static/chunks/main-a7dd8c98b48af038.js","static/chunks/pages/_app-389e6eb8abb0af2d.js"],"/_error":["static/chunks/webpack-d91bc49de770fd58.js","static/chunks/framework-7bac12ed8564755e.js","static/chunks/main-a7dd8c98b48af038.js","static/chunks/pages/_error-7cee5565b5ef9bcb.js"]},ampFirstPages:[]},self.__BUILD_MANIFEST.lowPriorityFiles=["/static/"+process.env.__NEXT_BUILD_ID+"/_buildManifest.js",,"/static/"+process.env.__NEXT_BUILD_ID+"/_ssgManifest.js"];
1
+ self.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:[],rootMainFiles:["static/chunks/webpack-0c872a6ee48cbbdf.js","static/chunks/3cc391f0-17a90b8b534c353f.js","static/chunks/183-9c8ca0c781655214.js","static/chunks/main-app-07d67f2d4e96ecb8.js"],pages:{"/_app":["static/chunks/webpack-0c872a6ee48cbbdf.js","static/chunks/framework-7bac12ed8564755e.js","static/chunks/main-30618c50527ce4e9.js","static/chunks/pages/_app-389e6eb8abb0af2d.js"],"/_error":["static/chunks/webpack-0c872a6ee48cbbdf.js","static/chunks/framework-7bac12ed8564755e.js","static/chunks/main-30618c50527ce4e9.js","static/chunks/pages/_error-7cee5565b5ef9bcb.js"]},ampFirstPages:[]},self.__BUILD_MANIFEST.lowPriorityFiles=["/static/"+process.env.__NEXT_BUILD_ID+"/_buildManifest.js",,"/static/"+process.env.__NEXT_BUILD_ID+"/_ssgManifest.js"];
@@ -1 +1 @@
1
- self.__REACT_LOADABLE_MANIFEST='{"app/web/page.tsx -> ./FilePreview":{"id":1945,"files":["static/chunks/945.029658916456ec41.js"]},"app/web/page.tsx -> ./FileTree":{"id":9691,"files":["static/chunks/691.a8277997da6aec2e.js"]},"app/web/page.tsx -> ./TerminalPane":{"id":3366,"files":["static/css/ac3c182a4b5bc5f1.css","static/chunks/f3dd23f1.b423f4328b6ce988.js","static/chunks/982.bf2e6e7fe55cd5ca.js"]}}';
1
+ self.__REACT_LOADABLE_MANIFEST='{"app/web/page.tsx -> ./FilePreview":{"id":1945,"files":["static/chunks/945.029658916456ec41.js"]},"app/web/page.tsx -> ./FileTree":{"id":9691,"files":["static/chunks/691.a8277997da6aec2e.js"]},"app/web/page.tsx -> ./TerminalPane":{"id":3366,"files":["static/css/ac3c182a4b5bc5f1.css","static/chunks/f3dd23f1.b423f4328b6ce988.js","static/chunks/982.9e87a5cc0e6b13cf.js"]}}';
@@ -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-d91bc49de770fd58.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><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><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><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>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)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><script src="/_next/static/chunks/webpack-d91bc49de770fd58.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[1338,[],\"\"]\n4:I[1573,[],\"\"]\na:I[6554,[],\"\"]\n5:{\"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\"}\n6:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n7:{\"display\":\"inline-block\"}\n8:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\nb:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L1\",null,{\"buildId\":\"OszWLAB2kMAnNfSwJzpyw\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"_not-found\"],\"initialTree\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{},[[\"$L2\",[[\"$\",\"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.\"}]}]]}]}]],null],null],null]},[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[null,[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$5\",\"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\":\"$6\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$7\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$8\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],\"$L9\"],\"globalErrorComponent\":\"$a\",\"missingSlots\":\"$Wb\"}]\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"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
+ <!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><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><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><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>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)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><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[1338,[],\"\"]\n4:I[1573,[],\"\"]\na:I[6554,[],\"\"]\n5:{\"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\"}\n6:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n7:{\"display\":\"inline-block\"}\n8:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\nb:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L1\",null,{\"buildId\":\"dclalTmecO-HMVQvSKG7g\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"_not-found\"],\"initialTree\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{},[[\"$L2\",[[\"$\",\"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.\"}]}]]}]}]],null],null],null]},[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[null,[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$5\",\"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\":\"$6\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$7\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$8\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],\"$L9\"],\"globalErrorComponent\":\"$a\",\"missingSlots\":\"$Wb\"}]\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"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 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>500: Internal Server Error</title><meta name="next-head-count" content="3"/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-d91bc49de770fd58.js" defer=""></script><script src="/_next/static/chunks/framework-7bac12ed8564755e.js" defer=""></script><script src="/_next/static/chunks/main-a7dd8c98b48af038.js" defer=""></script><script src="/_next/static/chunks/pages/_app-389e6eb8abb0af2d.js" defer=""></script><script src="/_next/static/chunks/pages/_error-7cee5565b5ef9bcb.js" defer=""></script><script src="/_next/static/OszWLAB2kMAnNfSwJzpyw/_buildManifest.js" defer=""></script><script src="/_next/static/OszWLAB2kMAnNfSwJzpyw/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>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)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"OszWLAB2kMAnNfSwJzpyw","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>500: Internal Server Error</title><meta name="next-head-count" content="3"/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-0c872a6ee48cbbdf.js" defer=""></script><script src="/_next/static/chunks/framework-7bac12ed8564755e.js" defer=""></script><script src="/_next/static/chunks/main-30618c50527ce4e9.js" defer=""></script><script src="/_next/static/chunks/pages/_app-389e6eb8abb0af2d.js" defer=""></script><script src="/_next/static/chunks/pages/_error-7cee5565b5ef9bcb.js" defer=""></script><script src="/_next/static/dclalTmecO-HMVQvSKG7g/_buildManifest.js" defer=""></script><script src="/_next/static/dclalTmecO-HMVQvSKG7g/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>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)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"dclalTmecO-HMVQvSKG7g","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- {"node":{},"edge":{},"encryptionKey":"9niMPVSb25tCXwa94oqwyLU5EfETxT6DGZdgh85C0cY="}
1
+ {"node":{},"edge":{},"encryptionKey":"dsJsY/TtyYedoM+ketlSZqAHZIz2BZwH9aKDOllRcfo="}
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[982],{6584:function(e,t,r){"use strict";var n,l;e.exports=(null==(n=r.g.process)?void 0:n.env)&&"object"==typeof(null==(l=r.g.process)?void 0:l.env)?r.g.process:r(3307)},3307:function(e){!function(){var t={229:function(e){var t,r,n,l=e.exports={};function i(){throw Error("setTimeout has not been defined")}function o(){throw Error("clearTimeout has not been defined")}function u(e){if(t===setTimeout)return setTimeout(e,0);if((t===i||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(r){try{return t.call(null,e,0)}catch(r){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:i}catch(e){t=i}try{r="function"==typeof clearTimeout?clearTimeout:o}catch(e){r=o}}();var c=[],a=!1,s=-1;function d(){a&&n&&(a=!1,n.length?c=n.concat(c):s=-1,c.length&&f())}function f(){if(!a){var e=u(d);a=!0;for(var t=c.length;t;){for(n=c,c=[];++s<t;)n&&n[s].run();s=-1,t=c.length}n=null,a=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===o||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function p(e,t){this.fun=e,this.array=t}function v(){}l.nextTick=function(e){var t=Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];c.push(new p(e,t)),1!==c.length||a||u(f)},p.prototype.run=function(){this.fun.apply(null,this.array)},l.title="browser",l.browser=!0,l.env={},l.argv=[],l.version="",l.versions={},l.on=v,l.addListener=v,l.once=v,l.off=v,l.removeListener=v,l.removeAllListeners=v,l.emit=v,l.prependListener=v,l.prependOnceListener=v,l.listeners=function(e){return[]},l.binding=function(e){throw Error("process.binding is not supported")},l.cwd=function(){return"/"},l.chdir=function(e){throw Error("process.chdir is not supported")},l.umask=function(){return 0}}},r={};function n(e){var l=r[e];if(void 0!==l)return l.exports;var i=r[e]={exports:{}},o=!0;try{t[e](i,i.exports,n),o=!1}finally{o&&delete r[e]}return i.exports}n.ab="//";var l=n(229);e.exports=l}()},3366:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return f}});var n=r(1996),l=r(6121),i=r(8918),o=class{activate(e){this._terminal=e}dispose(){}fit(){let e=this.proposeDimensions();if(!e||!this._terminal||isNaN(e.cols)||isNaN(e.rows))return;let t=this._terminal._core;(this._terminal.rows!==e.rows||this._terminal.cols!==e.cols)&&(t._renderService.clear(),this._terminal.resize(e.cols,e.rows))}proposeDimensions(){if(!this._terminal||!this._terminal.element||!this._terminal.element.parentElement)return;let e=this._terminal._core._renderService.dimensions;if(0===e.css.cell.width||0===e.css.cell.height)return;let t=0===this._terminal.options.scrollback?0:this._terminal.options.overviewRuler?.width||14,r=window.getComputedStyle(this._terminal.element.parentElement),n=parseInt(r.getPropertyValue("height")),l=Math.max(0,parseInt(r.getPropertyValue("width"))),i=window.getComputedStyle(this._terminal.element),o={top:parseInt(i.getPropertyValue("padding-top")),bottom:parseInt(i.getPropertyValue("padding-bottom")),right:parseInt(i.getPropertyValue("padding-right")),left:parseInt(i.getPropertyValue("padding-left"))},u=o.top+o.bottom;return{cols:Math.max(2,Math.floor((l-(o.right+o.left)-t)/e.css.cell.width)),rows:Math.max(1,Math.floor((n-u)/e.css.cell.height))}}};r(8810);var u=r(9532);let c=new Set(["\x1b[A","\x1b[B","\x1b[5~","\x1b[6~"]),a={minWidth:34,height:30,borderRadius:7,fontSize:11.5,padding:"0 7px",touchAction:"none",userSelect:"none",flexShrink:0},s=["ctrl","esc","tab","up","down","left","right","pgup","pgdown","end","enter","pipe","tilde","dash","slash","ctrlc","ctrld","ctrll","hide"],d={ctrl:"Ctrl",esc:"Esc",tab:"Tab",up:"↑",down:"↓",left:"←",right:"→",pgup:"Pg↑",pgdown:"Pg↓",end:"End",enter:"↵",pipe:"|",tilde:"~",dash:"-",slash:"/",ctrlc:"^C",ctrld:"^D",ctrll:"^L",hide:"隐藏"};function f(e){let{terminalId:t,title:r,visible:f,state:p,rpc:v,onEvent:h,onTerminalData:m,onTerminalReset:b,sendTerminalInput:g,keyOrder:y,keybarHidden:w,onKeyOrderChange:x,onKeybarHiddenChange:k,onCwdChange:T,initialScrollLine:E,onScrollLineChange:L,onRegisterFill:M,terminalTheme:C}=e,R=(0,l.useRef)(null),S=(0,l.useRef)(null),I=(0,l.useRef)(null),[Y,D]=(0,l.useState)(!1),[P,_]=(0,l.useState)(null),[A,z]=(0,l.useState)(!1),X=(0,l.useRef)(!1),[B,H]=(0,l.useState)(!1),W=(0,l.useRef)(t),j=(0,l.useRef)(null),q=(0,l.useRef)(null),O=(0,l.useRef)(null),N=(0,l.useRef)(()=>{}),V=(0,l.useRef)(null),F=(0,l.useRef)(!0),K=(0,l.useRef)(0),U=(0,l.useRef)(null),Z=(0,l.useRef)(null),G=(0,l.useRef)(!1),J=(0,l.useRef)(null),Q=(0,l.useRef)(0),$=(0,l.useRef)(!1),ee=(0,l.useRef)(!1),[et,er]=(0,l.useState)(null),en=(0,l.useCallback)(e=>{null!=j.current&&g(j.current,e)||v("term:input",{id:W.current,data:e}).catch(()=>{})},[v,g]);(0,l.useRef)(en).current=en;let el=(0,l.useRef)(()=>{}),ei=(0,l.useRef)(C);ei.current=C;let eo={...a,border:"1px solid ".concat(C.keybar.keyBorder),background:C.keybar.keyBg,color:C.keybar.keyText},eu=(0,l.useRef)(M);eu.current=M;let ec=(0,l.useCallback)(e=>{(async()=>{var t,r;F.current=!0,null===(t=S.current)||void 0===t||t.scrollToBottom();try{await v("term:focus",{id:W.current}),z(!1)}catch(e){if((null==e?void 0:e.code)==="EWRITELOCK"){z(!0);return}}null===(r=S.current)||void 0===r||r.focus(),en("\x15"),window.setTimeout(()=>{let t=S.current;t&&("function"==typeof t.paste?t.paste(e):en(e))},20)})()},[v,en]);el.current=ec;let ea=(0,l.useCallback)(()=>{let e=S.current;e&&L&&L(F.current?e.buffer.active.baseY:e.buffer.active.viewportY)},[L]),es=(0,l.useRef)(ea);es.current=ea;let ed=(0,l.useRef)(e=>{let t=S.current;t&&"alternate"!==t.buffer.active.type&&0!==e&&(F.current=!1,t.scrollLines(e),K.current=t.buffer.active.viewportY,F.current=t.buffer.active.viewportY>=t.buffer.active.baseY,es.current())}),ef=(0,l.useRef)(e=>{let t=S.current;t&&"alternate"!==t.buffer.active.type&&0!==e&&(e<0&&(F.current=!1),t.scrollPages(e),K.current=t.buffer.active.viewportY,F.current=t.buffer.active.viewportY>=t.buffer.active.baseY,es.current())}),ep=(0,l.useCallback)(()=>{let e=S.current;if(e&&null!=E){if(E>=e.buffer.active.baseY){F.current=!0,e.scrollToBottom();return}F.current=!1,K.current=E,e.scrollToLine(E)}},[E]);(0,l.useEffect)(()=>{var e;let t;let r=new i.o({fontFamily:'"SF Mono", Menlo, Consolas, monospace',fontSize:window.innerWidth<=768?11:12,lineHeight:1.12,letterSpacing:0,cursorBlink:!0,allowProposedApi:!0,scrollback:5e3,scrollOnUserInput:!1,smoothScrollDuration:0,scrollSensitivity:1,theme:ei.current.xterm}),n=new o;r.loadAddon(n),r.open(R.current),S.current=r,I.current=n;try{n.fit()}catch(e){}let l=r.parser.registerOscHandler(7,e=>{try{let t=e.startsWith("file://")?e:"file://".concat(e),r=new URL(t);if("file:"!==r.protocol)return!1;let n=decodeURIComponent(r.pathname);return/^\/[A-Za-z]:\//.test(n)&&(n=n.slice(1)),(n.startsWith("/")||/^[A-Za-z]:\//.test(n))&&(null==T||T(n),v("term:set-cwd",{id:W.current,cwd:n}).catch(()=>{})),!0}catch(e){return!1}});N.current=e=>{r.write(e,()=>{var e;if("alternate"===r.buffer.active.type)return;let t=null===(e=R.current)||void 0===e?void 0:e.querySelector(".xterm");(null==t?void 0:t.style.transform)&&(t.style.transform="",t.style.willChange=""),F.current?r.scrollToBottom():r.scrollToLine(Math.min(K.current,r.buffer.active.baseY))})},r.onData(e=>{var t;if(p.connected&&(t=e,!(ee.current&&c.has(t)))){if(F.current=!0,"alternate"!==r.buffer.active.type&&r.scrollToBottom(),ea(),X.current&&1===e.length){let t=e.toLowerCase().charCodeAt(0);t>=97&&t<=122?e=String.fromCharCode(t-96):" "===e?e="\0":"["===e?e="\x1b":"\\"===e?e="\x1c":"]"===e&&(e="\x1d"),ev()}en(e)}}),r.onResize(e=>{let{cols:r,rows:n}=e;clearTimeout(t),t=setTimeout(()=>{v("term:resize",{id:W.current,cols:r,rows:n}).catch(()=>{})},120)});let u=r.onScroll(e=>{let t=e>=r.buffer.active.baseY;F.current=t,t||(K.current=e),es.current()});r.attachCustomKeyEventHandler(e=>"alternate"===r.buffer.active.type||"keydown"!==e.type||!ee.current||("ArrowUp"===e.key?(ed.current(-1),e.preventDefault(),!1):"ArrowDown"===e.key?(ed.current(1),e.preventDefault(),!1):"PageUp"===e.key?(ef.current(-1),e.preventDefault(),!1):"PageDown"!==e.key||(ef.current(1),e.preventDefault(),!1))),r.attachCustomWheelEventHandler(e=>{var t,n;if("alternate"===r.buffer.active.type||!e.deltaY)return!0;let l=Math.max(8,(null!==(n=null===(t=R.current)||void 0===t?void 0:t.clientHeight)&&void 0!==n?n:14*r.rows)/Math.max(r.rows,1)),i=Math.trunc(e.deltaY/l)||(e.deltaY>0?1:-1);return ed.current(i),!1});let a=null,s=0,d=0,f=0,h=0,m=!1,b="pending",g=0,y=null!==(e=r.element)&&void 0!==e?e:R.current,w=e=>{if("touch"===e.pointerType&&e.isPrimary){a=e.pointerId,s=e.clientX,d=e.clientY,f=e.clientY,h=0,b="pending",m=!0,"alternate"!==r.buffer.active.type&&(F.current=!1);try{null==y||y.setPointerCapture(e.pointerId)}catch(e){}}},x=e=>{var t;if(!m||e.pointerId!==a)return;let n=e.clientX-s,l=e.clientY-d;if("pending"===b&&Math.max(Math.abs(n),Math.abs(l))>8&&(b=Math.abs(n)>1.2*Math.abs(l)?"horizontal":"vertical"),"vertical"!==b)return;let i=f-e.clientY;if(f=e.clientY,h+=i,"alternate"===r.buffer.active.type){let t=null==y?void 0:y.getBoundingClientRect(),n=t?Math.max(1,Math.min(r.cols,Math.floor((e.clientX-t.left)/Math.max(t.width,1)*r.cols)+1)):1,l=t?Math.max(1,Math.min(r.rows,Math.floor((e.clientY-t.top)/Math.max(t.height,1)*r.rows)+1)):1;if("none"!==r.modes.mouseTrackingMode){let e=Math.trunc(h/18),t=performance.now();if(0!==e&&t-g>=32){let r=Math.sign(e)*Math.min(2,Math.abs(e));h-=18*r,g=t,ee.current=!0,en("\x1b[<".concat(e<0?64:65,";").concat(n,";").concat(l,"M").repeat(Math.abs(r)))}}else{let e=Math.trunc(h/64),t=performance.now();if(0!==e&&t-g>=80){let r=Math.sign(e);h-=64*r,g=t,ee.current=!0,en(r<0?"\x1b[5~":"\x1b[6~")}}e.preventDefault(),$.current=!0;return}let o=Math.max(8,(null!==(t=null==y?void 0:y.clientHeight)&&void 0!==t?t:14*r.rows)/Math.max(r.rows,1)|0),u=Math.trunc(h/o);0!==u&&(h-=u*o,ee.current=!0,ed.current(u),e.preventDefault(),$.current=!0)},k=e=>{if(e.pointerId===a){try{null==y||y.releasePointerCapture(e.pointerId)}catch(e){}Math.abs(h)>8&&window.setTimeout(()=>{$.current=!1},400),m=!1,a=null,b="pending",window.setTimeout(()=>{ee.current=!1},450)}};return null==y||y.addEventListener("pointerdown",w,{capture:!0}),null==y||y.addEventListener("pointermove",x,{capture:!0,passive:!1}),null==y||y.addEventListener("pointerup",k,{capture:!0}),null==y||y.addEventListener("pointercancel",k,{capture:!0}),()=>{var e,n;clearTimeout(t),u.dispose(),r.attachCustomKeyEventHandler(()=>!0),r.attachCustomWheelEventHandler(()=>!0),null==y||y.removeEventListener("pointerdown",w,{capture:!0}),null==y||y.removeEventListener("pointermove",x,{capture:!0}),null==y||y.removeEventListener("pointerup",k,{capture:!0}),null==y||y.removeEventListener("pointercancel",k,{capture:!0}),l.dispose(),null===(e=q.current)||void 0===e||e.call(q),null===(n=O.current)||void 0===n||n.call(O),null==T||T(null),r.dispose(),S.current=null}},[]),(0,l.useEffect)(()=>{let e=S.current;e&&(e.options.theme=C.xterm,e.refresh(0,e.rows-1))},[C]);let ev=()=>{X.current=!1,H(!1)},eh=(0,l.useCallback)(()=>{var e;let t=I.current,r=S.current;if(!t||!r||!(null===(e=R.current)||void 0===e?void 0:e.isConnected))return!1;try{let e=t.proposeDimensions();if(!e||e.cols===r.cols&&e.rows===r.rows)return!1;return t.fit(),!0}catch(e){return!1}},[]),em=(0,l.useCallback)(e=>{var t,r;let n=null!==(t=null==e?void 0:e.restoreScroll)&&void 0!==t&&t,l=null!==(r=null==e?void 0:e.forceLive)&&void 0!==r&&r;eh();let i=S.current;if(!i)return;let o="alternate"===i.buffer.active.type;n&&null!=E&&!o?ep():!o&&(l||F.current)&&(l&&(F.current=!0),i.scrollToBottom()),i.focus(),ea(),v("term:focus",{id:W.current}).then(()=>z(!1)).catch(e=>{(null==e?void 0:e.code)==="EWRITELOCK"&&z(!0)})},[ep,eh,E,ea,v]);(0,l.useEffect)(()=>{var e,n,l,i,o,u,c;if(!p.connected){V.current=null,j.current=null,null===(l=q.current)||void 0===l||l.call(q),q.current=null,null===(i=O.current)||void 0===i||i.call(O),O.current=null,D(!1),_(null),Q.current=0;return}let a=!1;return _(null),eh(),requestAnimationFrame(eh),(null!==(c=V.current)&&void 0!==c?c:V.current=v("term:start",{id:t,title:r,cols:null!==(o=null===(e=S.current)||void 0===e?void 0:e.cols)&&void 0!==o?o:80,rows:null!==(u=null===(n=S.current)||void 0===n?void 0:n.rows)&&void 0!==u?u:24})).then(e=>{var t,r,n;a||(W.current=e.sessionId,j.current=e.channelId,null===(t=q.current)||void 0===t||t.call(q),null===(r=O.current)||void 0===r||r.call(O),O.current=b(e.channelId,()=>{var e;null===(e=S.current)||void 0===e||e.reset()}),q.current=m(e.channelId,e=>N.current(e)),D(!0),null==T||T(null!==(n=e.cwd)&&void 0!==n?n:null),window.setTimeout(()=>eh(),80),window.setTimeout(()=>{let e=S.current;e&&v("term:resize",{id:W.current,cols:e.cols,rows:e.rows}).catch(()=>{})},400))}).catch(e=>{V.current=null,a||_((null==e?void 0:e.message)||"终端启动失败")}),()=>{a=!0}},[p.connected,t,r,m]),(0,l.useEffect)(()=>{if(!M)return;let e=eu.current;if(e)return e(e=>el.current(e))},[t]),(0,l.useEffect)(()=>{if(!f||!Y)return;Q.current+=1;let e=Q.current>1,t=window.setTimeout(()=>{var t;let r=(null===(t=S.current)||void 0===t?void 0:t.buffer.active.type)==="alternate";em({restoreScroll:e,forceLive:!e&&!r})},350);return()=>window.clearTimeout(t)},[f,Y,em]),(0,l.useEffect)(()=>h("term:cwd",e=>{e.id===W.current&&e.cwd&&(null==T||T(e.cwd))}),[h]),(0,l.useEffect)(()=>{var e;let t=window.visualViewport,r=null,n=null,l=()=>{var e;let t=S.current,r=R.current,n=null==r?void 0:r.querySelector(".xterm"),l=null==r?void 0:r.querySelector(".xterm-screen");if(!t||!r||!n)return!1;if("alternate"!==t.buffer.active.type)return n.style.transform&&(n.style.transform=""),!1;let i=Math.max(0,(null!==(e=null==l?void 0:l.getBoundingClientRect().height)&&void 0!==e?e:r.clientHeight)-r.clientHeight);return n.style.transform=i>0?"translate3d(0,-".concat(Math.round(i),"px,0)"):"",n.style.willChange=i>0?"transform":"",!0},i=()=>{r=null,requestAnimationFrame(()=>{if(l()||!eh())return;let e=S.current;e&&"alternate"!==e.buffer.active.type&&(F.current?e.buffer.active.viewportY<e.buffer.active.baseY&&e.scrollToBottom():e.buffer.active.viewportY!==K.current&&e.scrollToLine(Math.min(K.current,e.buffer.active.baseY)))})},o=()=>{n=null,requestAnimationFrame(()=>{eh(),l()})},u=()=>{requestAnimationFrame(l),r&&clearTimeout(r),r=setTimeout(i,180),n&&clearTimeout(n),n=setTimeout(o,550)};u(),null==t||t.addEventListener("resize",u),null==t||t.addEventListener("scroll",u),window.addEventListener("orientationchange",u),window.addEventListener("resize",u);let c=new ResizeObserver(u);return(null===(e=R.current)||void 0===e?void 0:e.parentElement)&&c.observe(R.current.parentElement),()=>{null==t||t.removeEventListener("resize",u),null==t||t.removeEventListener("scroll",u),window.removeEventListener("orientationchange",u),window.removeEventListener("resize",u),r&&clearTimeout(r),n&&clearTimeout(n),c.disconnect()}},[eh]),(0,l.useEffect)(()=>{if(w)return;let e=()=>(0,u.i)(U.current);return e(),window.addEventListener("pageshow",e),()=>window.removeEventListener("pageshow",e)},[w,t]),(0,l.useEffect)(()=>{let e=R.current;if(!e)return;e.style.display="flex",e.style.flexDirection="column",e.style.minHeight="0",e.style.overflow="hidden";let t=e.querySelector(".xterm");null==t||t.style.setProperty("flex","1"),null==t||t.style.setProperty("height","100%");let r=e.querySelector(".xterm-scrollable-element, .xterm-viewport");null==r||r.style.setProperty("touch-action","pan-y"),null==r||r.style.setProperty("-webkit-overflow-scrolling","touch")},[Y]),(0,l.useEffect)(()=>{let e=U.current;if(!e||w)return;let t=0,r=!1,n=null,l=e=>e instanceof Element?e.closest("button[data-key]"):null,i=e=>{if(G.current=!1,"touch"!==e.pointerType||!e.isPrimary)return;let i=l(e.target);if(i){e.preventDefault();try{i.setPointerCapture(e.pointerId)}catch(e){}let t=i.dataset.key;J.current={key:t,dragged:!1};let r={key:t,timer:null,active:!1,startX:e.clientX,startY:e.clientY,lastX:e.clientX,scrolling:!1};r.timer=setTimeout(()=>{var e,n;r.scrolling||(r.active=!0,J.current&&(J.current.dragged=!0),er(t),null===(e=(n=navigator).vibrate)||void 0===e||e.call(n,20))},280),Z.current=r;return}n=e.pointerId,t=e.clientX,r=!0},o=l=>{var i;let o=Z.current;if(o){if(!o.active){let e=l.clientX-o.startX,t=l.clientY-o.startY;if(!o.scrolling&&Math.abs(e)>10&&Math.abs(e)>1.2*Math.abs(t))o.timer&&clearTimeout(o.timer),o.timer=null,o.scrolling=!0,J.current&&(J.current.dragged=!0);else if(!o.scrolling)return}if(o.scrolling){l.preventDefault();let t=o.lastX-l.clientX;o.lastX=l.clientX,e.scrollLeft+=t;return}l.preventDefault();let t=Array.from(e.querySelectorAll("button[data-key]")).find(e=>{let t=e.getBoundingClientRect();return l.clientX>=t.left&&l.clientX<=t.right}),r=null==t?void 0:t.dataset.key;if(!r||r===o.key)return;let n=[...eg],i=n.indexOf(o.key),u=n.indexOf(r);if(i<0||u<0)return;n.splice(i,1),n.splice(u,0,o.key),x(n);return}if(!r||l.pointerId!==n||(null===(i=Z.current)||void 0===i?void 0:i.active))return;let u=t-l.clientX;t=l.clientX,Math.abs(u)>1&&(e.scrollLeft+=u,l.preventDefault())},u=e=>{let t=Z.current;if("touch"===e.pointerType&&t){t.timer&&clearTimeout(t.timer),(t.active||t.scrolling)&&(G.current=!0),Z.current=null,J.current=null,er(null);return}e.pointerId===n&&(r=!1,n=null)},c=e=>{"touch"===e.pointerType&&ex(),r=!1,n=null},a=e=>{let t=l(e.target),r=null==t?void 0:t.dataset.key;if(r){if(G.current){G.current=!1;return}e.preventDefault(),eb(()=>ey(r))}};return e.addEventListener("pointerdown",i,{passive:!1}),e.addEventListener("pointermove",o,{passive:!1}),e.addEventListener("pointerup",u,{passive:!0}),e.addEventListener("pointercancel",c,{passive:!0}),e.addEventListener("click",a),()=>{e.removeEventListener("pointerdown",i),e.removeEventListener("pointermove",o),e.removeEventListener("pointerup",u),e.removeEventListener("pointercancel",c),e.removeEventListener("click",a)}},[w,y.join("|")]);let eb=e=>{e()},eg=[...y.filter(e=>s.includes(e)),...s.filter(e=>!y.includes(e))],ey=e=>{let t={esc:"\x1b",tab:" ",enter:"\r",pipe:"|",tilde:"~",dash:"-",slash:"/",ctrlc:"\x03",ctrld:"\x04",ctrll:"\f"},r=S.current,n=e=>(null==r?void 0:r.modes.applicationCursorKeysMode)?"\x1bO".concat(e):"\x1b[".concat(e);if("up"===e){en(n("A"));return}if("down"===e){en(n("B"));return}if("right"===e){r&&en(n("C"));return}if("left"===e){r&&en(n("D"));return}if(t[e])return en(t[e]);if("ctrl"===e){X.current=!X.current,H(X.current);return}if("hide"===e){k(!0);return}r&&("pgup"===e&&("alternate"===r.buffer.active.type?en("\x1b[5~"):ef.current(-1)),"pgdown"===e&&("alternate"===r.buffer.active.type?en("\x1b[6~"):ef.current(1)),"end"===e&&(F.current=!0,r.scrollToBottom(),ea()))},ew=e=>{let t=Z.current;t&&(t.timer&&clearTimeout(t.timer),G.current=!0,"touch"!==e.pointerType||t.active||t.scrolling||eb(()=>ey(t.key)),Z.current=null,J.current=null,er(null))},ex=()=>{let e=Z.current;(null==e?void 0:e.timer)&&clearTimeout(e.timer),Z.current=null,er(null)},ek=async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];try{var t;await v(e?"term:request-write":"term:focus",{id:W.current,force:e}),z(!1),null===(t=S.current)||void 0===t||t.focus()}catch(e){(null==e?void 0:e.code)==="EWRITELOCK"&&z(!0)}};return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",minHeight:0,position:"relative"},children:[(0,n.jsx)("div",{ref:R,className:"terminal-screen",onClick:()=>{var e;null===(e=S.current)||void 0===e||e.focus(),!$.current&&F.current&&em({forceLive:!0}),ek(!1)},style:{flex:1,minHeight:90,padding:"3px 5px 3px 9px",background:C.termHostBg,touchAction:"none",overflow:"hidden"}}),P&&f&&(0,n.jsxs)("div",{role:"alert",style:{position:"absolute",inset:"42% auto auto 50%",transform:"translate(-50%,-50%)",zIndex:47,maxWidth:"min(420px,calc(100% - 32px))",padding:"10px 12px",border:"1px solid ".concat(C.keybar.keyBorder),borderRadius:7,background:"rgba(24,24,29,.96)",color:C.xterm.foreground,fontSize:12,lineHeight:1.5,textAlign:"center"},children:["终端启动失败:",P]}),A&&f&&(0,n.jsxs)("div",{style:{position:"absolute",top:10,right:10,zIndex:48,display:"flex",alignItems:"center",gap:7,padding:"7px 9px",border:"1px solid #6b5634",borderRadius:8,background:"rgba(39,32,22,.95)",color:"#d9b56c",fontSize:11},children:["其他设备正在输入 ",(0,n.jsx)("button",{style:{border:0,borderRadius:5,padding:"4px 7px",background:"#e0af68",color:"#17120a",fontSize:10},onClick:()=>ek(!0),children:"接管输入"})]}),w?(0,n.jsx)("div",{className:"keybar",style:{display:"flex",justifyContent:"center",padding:"5px 7px calc(env(safe-area-inset-bottom) + 5px)",borderTop:"1px solid ".concat(C.keybar.border),background:C.keybar.bg,flexShrink:0},children:(0,n.jsx)("button",{className:"keybar-restore",style:{...eo,minWidth:80},onPointerDown:e=>e.preventDefault(),onClick:()=>k(!1),children:"⌨ 显示快捷键"})}):(0,n.jsx)("div",{ref:U,className:"keybar keybar-scroll",style:{background:C.keybar.bg,display:"flex",gap:5,overflowX:"auto",padding:"5px calc(env(safe-area-inset-right) + 7px) calc(env(safe-area-inset-bottom) + 5px)",borderTop:"1px solid ".concat(C.keybar.border),flexShrink:0,WebkitOverflowScrolling:"touch",scrollbarWidth:"none",touchAction:"pan-x"},children:eg.map(e=>(0,n.jsx)("button",{"data-key":e,"data-dragging":et===e?"1":void 0,tabIndex:-1,style:{...eo,minWidth:"enter"===e?44:eo.minWidth,background:et===e?C.keybar.drag:"ctrl"===e&&B?C.keybar.accent:eo.background,color:et===e||"ctrl"===e&&B?C.keybar.accentText:eo.color,cursor:et===e?"grabbing":"grab",transform:et===e?"scale(1.08)":"none",transition:"transform .12s, background .12s"},onPointerUpCapture:ew,onPointerCancel:ex,onContextMenu:e=>e.preventDefault(),onMouseDown:e=>e.preventDefault(),children:d[e]},e))})]})}},8810:function(){}}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[541],{6736:function(e,t,r){Promise.resolve().then(r.bind(r,1620))},6302:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return a}});let n=r(684);r(1996),r(6121);let i=n._(r(6729));function a(e,t){var r;let n={loading:e=>{let{error:t,isLoading:r,pastDelay:n}=e;return null}};"function"==typeof e&&(n.loader=e);let a={...n,...t};return(0,i.default)({...a,modules:null==(r=a.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)},4352:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"BailoutToCSR",{enumerable:!0,get:function(){return i}});let n=r(2723);function i(e){let{reason:t,children:r}=e;if("undefined"==typeof window)throw new n.BailoutToCSRError(t);return r}},6729:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return d}});let n=r(1996),i=r(6121),a=r(4352),o=r(5882);function l(e){return{default:e&&"default"in e?e.default:e}}let c={loader:()=>Promise.resolve(l(()=>null)),loading:null,ssr:!0},d=function(e){let t={...c,...e},r=(0,i.lazy)(()=>t.loader().then(l)),d=t.loading;function u(e){let l=d?(0,n.jsx)(d,{isLoading:!0,pastDelay:!0,error:null}):null,c=t.ssr?(0,n.jsxs)(n.Fragment,{children:["undefined"==typeof window?(0,n.jsx)(o.PreloadCss,{moduleIds:t.modules}):null,(0,n.jsx)(r,{...e})]}):(0,n.jsx)(a.BailoutToCSR,{reason:"next/dynamic",children:(0,n.jsx)(r,{...e})});return(0,n.jsx)(i.Suspense,{fallback:l,children:c})}return u.displayName="LoadableComponent",u}},5882:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PreloadCss",{enumerable:!0,get:function(){return a}});let n=r(1996),i=r(7994);function a(e){let{moduleIds:t}=e;if("undefined"!=typeof window)return null;let r=(0,i.getExpectedRequestStore)("next/dynamic css"),a=[];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"));a.push(...t)}}return 0===a.length?null:(0,n.jsx)(n.Fragment,{children:a.map(e=>(0,n.jsx)("link",{precedence:"dynamic",rel:"stylesheet",href:r.assetPrefix+"/_next/"+encodeURI(e),as:"style"},e))})}},9532:function(e,t,r){"use strict";function n(e,t){var r,n,i,a;return{height:Math.round(null!==(r=null==e?void 0:e.height)&&void 0!==r?r:t.height),width:Math.round(null!==(n=null==e?void 0:e.width)&&void 0!==n?n:t.width),top:Math.round(null!==(i=null==e?void 0:e.offsetTop)&&void 0!==i?i:0),left:Math.round(null!==(a=null==e?void 0:e.offsetLeft)&&void 0!==a?a:0)}}function i(e){e&&(e.scrollLeft=0)}r.d(t,{i:function(){return i},x:function(){return n}})},1620:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return v}});var n=r(1996),i=r(6302),a=r.n(i),o=r(6121);function l(e){let{children:t}=e,r=function(){let[e,t]=(0,o.useState)("loading"),[r,n]=(0,o.useState)(null),[i]=(0,o.useState)(""),[a,l]=(0,o.useState)(null),c=(0,o.useCallback)(async()=>{t("loading"),l(null);try{let e=await fetch("/api/web-console/bootstrap",{credentials:"same-origin",cache:"no-store"});if(!e.ok)throw Error("HTTP ".concat(e.status));let r=await e.json();n(r.user),t("authenticated")}catch(e){l("无法连接远程控制台"),t("needsLogin")}},[]);(0,o.useEffect)(()=>{c()},[c]);let d=(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 n(r.user),t("authenticated"),r.wsNonce},[]),u=(0,o.useCallback)(async()=>!0,[]);return{status:e,user:r,error:a,csrfToken:i,setup:u,login:u,logout:c,refresh:c,getWsNonce:d}}();return"authenticated"===r.status?(0,n.jsx)(n.Fragment,{children:t(r)}):(0,n.jsx)("main",{style:c.page,children:(0,n.jsx)("div",{style:c.card,children:r.error||"正在连接远程控制台…"})})}let c={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 d(e){let{csrfToken:t,terminalId:r,onFill:i}=e,[a,l]=(0,o.useState)([]),[c,d]=(0,o.useState)(""),u=(0,o.useCallback)(async()=>{let e=new URLSearchParams({q:c,limit:"200"}),t=await fetch("/api/web-console/history?".concat(e),{credentials:"same-origin"});t.ok&&l((await t.json()).history)},[c]);(0,o.useEffect)(()=>{let e=setTimeout(u,200);return()=>clearTimeout(e)},[u]);let s=async e=>{await fetch("/api/web-console/history",{method:"DELETE",credentials:"same-origin",headers:{"content-type":"application/json","x-csrf-token":t},body:JSON.stringify({id:e})}),u()},b=e=>{r&&i(e)};return(0,n.jsxs)("div",{className:"history-panel",children:[(0,n.jsxs)("div",{className:"history-search",children:[(0,n.jsx)("input",{value:c,onChange:e=>d(e.target.value),placeholder:"搜索命令"}),(0,n.jsx)("button",{onClick:u,children:"刷新"})]}),a.map(e=>(0,n.jsxs)("div",{className:"history-item".concat(r?"":" history-item-disabled"),role:"button",tabIndex:r?0:-1,onClick:()=>b(e.command),onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&r&&(t.preventDefault(),b(e.command))},children:[(0,n.jsx)("code",{children:e.command}),(0,n.jsxs)("small",{children:[e.cwd," \xb7 ",new Date(e.executedAt).toLocaleString()]}),(0,n.jsxs)("div",{className:"history-item-actions",onClick:e=>e.stopPropagation(),onPointerDown:e=>e.stopPropagation(),children:[(0,n.jsx)("button",{onClick:()=>navigator.clipboard.writeText(e.command),children:"复制"}),(0,n.jsx)("button",{disabled:!r,onClick:()=>b(e.command),children:"填入"}),(0,n.jsx)("button",{onClick:()=>s(e.id),children:"删除"})]})]},e.id)),!a.length&&(0,n.jsx)("div",{className:"history-empty",children:"暂无 Shell 命令历史"}),!r&&!!a.length&&(0,n.jsx)("div",{className:"history-empty",children:"请先打开一个终端页签"})]})}let u=[{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"}}],s="black",b=Object.fromEntries(u.map(e=>[e.id,e]));function f(e){let t="dark"===e?s:e;return t&&t in b?b[t]:b[s]}function p(e){var t;let{username:r,themeId:i,onThemeChange:a,accent:l,accentText:c}=e,[d,s]=(0,o.useState)(!1),b=(0,o.useRef)(null),f=(0,o.useRef)(null),[p,h]=(0,o.useState)(null),g=(null!==(t=r.trim()[0])&&void 0!==t?t:"?").toUpperCase(),m=()=>{let e=f.current;if(!e)return;let t=e.getBoundingClientRect(),r=Math.max(8,Math.min(window.innerWidth-168-8,t.right-168));h({top:t.bottom+6,left:r})};return(0,o.useLayoutEffect)(()=>{if(!d){h(null);return}return m(),window.addEventListener("resize",m),window.addEventListener("scroll",m,!0),()=>{window.removeEventListener("resize",m),window.removeEventListener("scroll",m,!0)}},[d]),(0,o.useEffect)(()=>{if(!d)return;let e=e=>{var t;let r=e.target;null!==(t=b.current)&&void 0!==t&&t.contains(r)||s(!1)},t=e=>{"Escape"===e.key&&s(!1)},r=window.setTimeout(()=>{window.addEventListener("pointerdown",e,!0)},0);return window.addEventListener("keydown",t),()=>{window.clearTimeout(r),window.removeEventListener("pointerdown",e,!0),window.removeEventListener("keydown",t)}},[d]),(0,n.jsxs)("div",{ref:b,className:"theme-picker",children:[(0,n.jsx)("button",{ref:f,type:"button",className:"theme-avatar","aria-label":"换肤(".concat(r,")"),title:r,"aria-expanded":d,onPointerDown:e=>e.stopPropagation(),onClick:e=>{e.preventDefault(),e.stopPropagation(),s(e=>!e)},style:{width:28,height:28,borderRadius:99,border:"1px solid ".concat(l),background:l,color:c,fontSize:12,fontWeight:700,padding:0,cursor:"pointer",flexShrink:0,touchAction:"manipulation"},children:g}),d&&p&&(0,n.jsxs)("div",{className:"theme-popover",role:"dialog","aria-label":"选择皮肤",style:{position:"fixed",top:p.top,left:p.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:[(0,n.jsx)("div",{style:{fontSize:10,color:"var(--ui-connection-text, #777b8c)",marginBottom:8,letterSpacing:.5},children:"经典皮肤"}),(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:7},children:u.map(e=>{let t=e.id===i;return(0,n.jsxs)("button",{type:"button",title:e.label,"aria-label":e.label,"aria-pressed":t,onPointerDown:e=>e.stopPropagation(),onClick:()=>{a(e.id),s(!1)},style:{display:"flex",flexDirection:"column",alignItems:"center",gap:4,padding:"6px 2px",borderRadius:8,border:t?"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:[(0,n.jsx)("span",{style:{width:22,height:22,borderRadius:6,background:e.swatch,boxShadow:t?"0 0 0 1px var(--ui-tab-accent, #7aa2f7)":"inset 0 0 0 1px rgba(255,255,255,.08)"}}),(0,n.jsx)("span",{style:{fontSize:9.5,color:t?"var(--ui-tab-active-text, #edf0f7)":"var(--ui-tab-text, #8f93a4)"},children:e.label})]},e.id)})})]})]})}var h=r(9532);let g=a()(()=>Promise.all([r.e(118),r.e(658),r.e(982)]).then(r.bind(r,3366)),{loadableGenerated:{webpack:()=>[3366]},ssr:!1}),m=a()(()=>r.e(691).then(r.bind(r,9691)),{loadableGenerated:{webpack:()=>[9691]},ssr:!1}),x=a()(()=>r.e(945).then(r.bind(r,1945)),{loadableGenerated:{webpack:()=>[1945]},ssr:!1});function v(){return(0,n.jsx)(l,{children:e=>(0,n.jsx)(y,{auth:e})})}let w={id:"webapp-agent",title:"智能助手",kind:"webapp"};function y(e){var t,r,i;let{auth:a}=e,{state:l,epoch:c,rpc:u,onEvent:b,onTerminalData:v,onTerminalReset:y,sendTerminalInput:j}=function(e,t,r){let[n,i]=(0,o.useState)({connected:!1,error:null}),[a,l]=(0,o.useState)(0),c=(0,o.useRef)(null),d=(0,o.useRef)(0),u=(0,o.useRef)(new Map),s=(0,o.useRef)([]),b=(0,o.useRef)(0),f=(0,o.useRef)(new Map),p=(0,o.useRef)(new Map),h=(0,o.useRef)(new Map),g=(0,o.useRef)(1e3),m=(0,o.useRef)(!1),x=(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=f.current.get(e);return r||f.current.set(e,r=new Set),r.add(t),()=>r.delete(t)},[]),S=(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=h.current.get(e);return r||h.current.set(e,r=new Set),r.add(t),()=>r.delete(t)},[]),T=(0,o.useCallback)((e,t)=>{let r=c.current;if(!r||r.readyState!==WebSocket.OPEN)return!1;let n=new TextEncoder().encode(t),i=new Uint8Array(6+n.byteLength),a=new DataView(i.buffer);return i[0]=1,i[1]=1,a.setUint32(2,e),i.set(n,6),r.send(i),!0},[]),C=(0,o.useCallback)(e=>{let t=c.current;(null==t?void 0:t.readyState)===WebSocket.OPEN?t.send(e):s.current.push(e)},[]),E=(0,o.useCallback)(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:15e3;return new Promise((n,i)=>{let a=++b.current,o=setTimeout(()=>{u.current.delete(a),i(Error("".concat(e," timeout")))},r);u.current.set(a,{resolve:n,reject:i,timer:o}),C(JSON.stringify({type:e,_req:a,...t}))})},[C]),P=(0,o.useCallback)(async()=>{let e,t;m.current=!1;let r=++d.current;x.current&&(clearInterval(x.current),x.current=null);let n=c.current;if(n){n.onopen=n.onmessage=n.onerror=n.onclose=null;try{n.close()}catch(e){}}try{e=await w.current()}catch(e){r===d.current&&y.current();return}if(r===d.current&&!m.current){try{t=new WebSocket("".concat("".concat("https:"===location.protocol?"wss:":"ws:","//").concat(location.host,"/ws"),"?nonce=").concat(encodeURIComponent(e)))}catch(e){i({connected:!1,error:String(e)});return}t.binaryType="arraybuffer",c.current=t,t.onopen=()=>{if(r!==d.current||c.current!==t)return;for(let e of(g.current=1e3,i({connected:!0,error:null}),l(e=>e+1),s.current.splice(0)))t.send(e);let e=Date.now();x.current=setInterval(()=>{if(c.current!==t||t.readyState!==WebSocket.OPEN){clearInterval(x.current),x.current=null;return}if(Date.now()-e>25e3){try{t.close()}catch(e){}return}try{t.send(JSON.stringify({type:"ping"}))}catch(e){}},1e4);let n=()=>{e=Date.now()};t.addEventListener("message",n),t.addEventListener("close",()=>t.removeEventListener("message",n),{once:!0})},t.onmessage=e=>{var n,i,a;let o;if(r===d.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);null===(i=p.current.get(e))||void 0===i||i.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);null===(a=h.current.get(e))||void 0===a||a.forEach(e=>e())}else v.current(t);return}try{o=JSON.parse(e.data)}catch(e){return}if("error"===o.type&&null!=o.id){let e=u.current.get(o.id);if(e){u.current.delete(o.id),clearTimeout(e.timer);let t=Object.assign(Error(o.error||"gateway error"),{code:o.code});e.reject(t)}return}if(null!=o.id&&"string"==typeof o.type&&o.type.endsWith(":result")){let e=u.current.get(o.id);e&&(u.current.delete(o.id),clearTimeout(e.timer),e.resolve(o));return}null===(n=f.current.get(o.type))||void 0===n||n.forEach(e=>e(o))}},t.onclose=e=>{if(r!==d.current||c.current!==t)return;if(x.current&&(clearInterval(x.current),x.current=null),c.current=null,i({connected:!1,error:null}),4001===e.code||4003===e.code){y.current();return}if(m.current)return;let n=g.current;g.current=Math.min(2*n,8e3),setTimeout(()=>{m.current||r!==d.current||P()},n)},t.onerror=()=>{}}},[]);return(0,o.useEffect)(()=>(P(),()=>{m.current=!0,d.current++,x.current&&(clearInterval(x.current),x.current=null);let e=c.current;if(c.current=null,e){e.onopen=e.onmessage=e.onerror=e.onclose=null;try{e.close()}catch(e){}}}),[P]),{state:n,epoch:a,rpc:E,onEvent:k,onTerminalData:S,onTerminalReset:j,sendTerminalInput:T,reconnect:P}}(()=>{},a.getWsNonce,a.refresh),[T,C]=(0,o.useState)([{...w}]),[E,P]=(0,o.useState)(w.id),[R,L]=(0,o.useState)({}),z=(0,o.useRef)(!1),B=(0,o.useRef)(null),M=(0,o.useRef)(new Map),N=(0,o.useCallback)((e,t)=>(M.current.set(e,t),()=>M.current.delete(e)),[]),D=(0,o.useCallback)(e=>{if(!E)return;let t=M.current.get(E);t?t(e):u("term:input",{id:E,data:"\x15".concat(e)}).catch(()=>{}),V(!1)},[E,u]),[O,I]=(0,o.useState)(!1),[F,W]=(0,o.useState)({}),[H,_]=(0,o.useState)(null),[U,V]=(0,o.useState)(!1),[X,A]=(0,o.useState)("files"),[q,J]=(0,o.useState)(null),[G,K]=(0,o.useState)(!0),[Y,Q]=(0,o.useState)({xRatio:.94,yRatio:.65,anchor:"right"}),[Z,$]=(0,o.useState)(!1),[ee,et]=(0,o.useState)([]),[er,en]=(0,o.useState)(s),[ei,ea]=(0,o.useState)(!1),eo=f(er),el=(0,o.useRef)(null),ec=(0,o.useRef)(null),[ed,eu]=(0,o.useState)(0),[es,eb]=(0,o.useState)(!1),ef=(0,o.useRef)(null),ep=(0,o.useRef)(null),eh=(0,o.useRef)(null),eg=(0,o.useRef)(0),em=E&&null!==(r=R[E])&&void 0!==r?r:null;(0,o.useEffect)(()=>{let e=window.visualViewport,t=null,r="",n=()=>{let i=(0,h.x)(e,{height:window.innerHeight,width:window.innerWidth}),a="".concat(i.width,"x").concat(i.height,"+").concat(i.top,"+").concat(i.left);a!==r&&(r=a,document.documentElement.style.setProperty("--vv-height","".concat(i.height,"px")),document.documentElement.style.setProperty("--vv-width","".concat(i.width,"px")),document.documentElement.style.setProperty("--vv-top","".concat(i.top,"px")),document.documentElement.style.setProperty("--vv-left","".concat(i.left,"px")),t&&window.clearTimeout(t),t=window.setTimeout(n,250))};return n(),null==e||e.addEventListener("resize",n),null==e||e.addEventListener("scroll",n),window.addEventListener("orientationchange",n),window.addEventListener("resize",n),document.addEventListener("visibilitychange",n),window.addEventListener("pageshow",n),()=>{null==e||e.removeEventListener("resize",n),null==e||e.removeEventListener("scroll",n),window.removeEventListener("orientationchange",n),window.removeEventListener("resize",n),document.removeEventListener("visibilitychange",n),window.removeEventListener("pageshow",n),t&&window.clearTimeout(t),document.documentElement.style.removeProperty("--vv-height"),document.documentElement.style.removeProperty("--vv-width"),document.documentElement.style.removeProperty("--vv-top"),document.documentElement.style.removeProperty("--vv-left")}},[]),(0,o.useEffect)(()=>{fetch("/api/web-console/preferences",{credentials:"same-origin"}).then(e=>e.json()).then(e=>{var t,r,n,i;(null===(t=e.preferences)||void 0===t?void 0:t.fileButtonPosition)&&Q(e.preferences.fileButtonPosition),"boolean"==typeof(null===(r=e.preferences)||void 0===r?void 0:r.keybarHidden)&&$(e.preferences.keybarHidden),Array.isArray(null===(n=e.preferences)||void 0===n?void 0:n.keyOrder)&&et(e.preferences.keyOrder),(null===(i=e.preferences)||void 0===i?void 0:i.theme)&&en(f(e.preferences.theme).id)}).catch(()=>{}).finally(()=>ea(!0)),fetch("/api/web-console/device-state",{credentials:"same-origin"}).then(e=>e.json()).then(e=>{let t=e.deviceState;(null==t?void 0:t.drawerTab)&&A(t.drawerTab),(null==t?void 0:t.activeTerminalId)&&(B.current=t.activeTerminalId),"boolean"==typeof(null==t?void 0:t.drawerOpen)&&V(t.drawerOpen),(null==t?void 0:t.fileTreeRoot)&&J(t.fileTreeRoot),"boolean"==typeof(null==t?void 0:t.fileTreeFollowMode)&&K(t.fileTreeFollowMode),(null==t?void 0:t.selectedFile)&&_(t.selectedFile),(null==t?void 0:t.terminalScroll)&&"object"==typeof t.terminalScroll&&W(t.terminalScroll)}).catch(()=>{}).finally(()=>I(!0))},[]);let ex=(0,o.useCallback)(e=>{fetch("/api/web-console/preferences",{method:"PATCH",credentials:"same-origin",headers:{"content-type":"application/json","x-csrf-token":a.csrfToken},body:JSON.stringify(e)}).catch(()=>{})},[a.csrfToken]);(0,o.useEffect)(()=>{if(!ei)return;let e=setTimeout(()=>ex({fileButtonPosition:Y,keybarHidden:Z,keyOrder:ee,theme:er}),500);return()=>clearTimeout(e)},[Y,Z,ee,er,ei,ex]);let ev=(0,o.useCallback)(e=>{a.csrfToken&&fetch("/api/web-console/device-state",{method:"PUT",credentials:"same-origin",headers:{"content-type":"application/json","x-csrf-token":a.csrfToken},body:JSON.stringify(e)}).catch(()=>{})},[a.csrfToken]);(0,o.useEffect)(()=>{if(!a.csrfToken)return;let e=setTimeout(()=>ev({activeTerminalId:E,drawerOpen:U,drawerTab:X,fileTreeRoot:q,fileTreeFollowMode:G,selectedFile:H,terminalScroll:F}),500);return()=>clearTimeout(e)},[E,U,X,q,G,H,F,a.csrfToken,ev]),(0,o.useEffect)(()=>{if(!a.csrfToken)return;let e=()=>ev({activeTerminalId:E,drawerOpen:U,drawerTab:X,fileTreeRoot:q,fileTreeFollowMode:G,selectedFile:H,terminalScroll:F});return window.addEventListener("pagehide",e),()=>window.removeEventListener("pagehide",e)},[E,U,X,q,G,H,F,a.csrfToken,ev]);let ew=(0,o.useCallback)(e=>{_(e),V(!1)},[]),ey=(0,o.useCallback)(()=>{let e=null;C(t=>t.length>=8?t:[...t,{id:e="t-web-".concat(Date.now().toString(36),"-").concat(Math.random().toString(36).slice(2,8)),title:"Terminal ".concat(t.length+1)}]),e&&P(e)},[]);(0,o.useEffect)(()=>{l.connected&&O&&!z.current&&(z.current=!0,u("term:list").then(e=>{let t=e.tabs.filter(e=>"active"===e.status||"detached"===e.status).map(e=>{let{id:t,title:r}=e;return{id:t,title:r}});C([w,...t]),P(e=>{let r=B.current||e||w.id;return r===w.id?w.id:t.some(e=>e.id===r)?r:w.id})}).catch(()=>{}))},[l.connected,O,u]);let ek=e=>{e!==w.id&&window.confirm("关闭页签会终止该终端进程,确认关闭?")&&(C(t=>{var r,n;let i=t.filter(t=>t.id!==e);return E===e&&P(null!==(n=null===(r=i[0])||void 0===r?void 0:r.id)&&void 0!==n?n:null),i}),u("term:kill",{id:e}).catch(()=>{}))};(0,o.useEffect)(()=>{let e=b("term:exited",e=>{let t=null==e?void 0:e.id;t&&(C(e=>{let r=e.filter(e=>e.id!==t);return P(e=>{var n,i;return e===t?null!==(i=null===(n=r[0])||void 0===n?void 0:n.id)&&void 0!==i?i:null:e}),r}),W(e=>{if(!(t in e))return e;let r={...e};return delete r[t],r}))});return()=>{e()}},[b]);let eS=(0,o.useCallback)(e=>{if(!E||T.length<2)return;let t=(T.findIndex(e=>e.id===E)+e+T.length)%T.length;P(T[t].id)},[E,T]),ej=Math.max(0,T.findIndex(e=>e.id===E)),eT=(0,o.useCallback)(()=>{ec.current=null,eu(0),eb(!1)},[]),eC=(0,o.useCallback)(e=>{Math.abs(e)>=64&&T.length>1&&eS(e<0?1:-1),eT()},[T.length,eS,eT]),eE=e=>e instanceof Element&&!!e.closest(".terminal-screen");(0,o.useEffect)(()=>{let e=e=>{var t,r,n,i,a;if(E!==w.id)return;let o=(n=window.location.origin,i=null!==(r=null===(t=eh.current)||void 0===t?void 0:t.contentWindow)&&void 0!==r?r:null,e.origin!==n||e.source!==i?null:(a=e.data)&&"object"==typeof a&&"agent-webapp:tab-swipe:v1"===a.type&&("move"===a.phase||"end"===a.phase||"cancel"===a.phase)&&"number"==typeof a.deltaX&&Number.isFinite(a.deltaX)?a:null);o&&("move"===o.phase?(eb(!0),eu(o.deltaX)):"end"===o.phase?eC(o.deltaX):eT())};return window.addEventListener("message",e),()=>window.removeEventListener("message",e)},[E,eC,eT]);let eP=(0,o.useCallback)(function(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"smooth",r=ep.current;if(!r||!E)return;let n=r.querySelector('[data-terminal-id="'.concat(E,'"]'));if(!n)return;if(n===r.querySelector("[data-terminal-id]")){(0,h.i)(r);return}let i=r.querySelector(".terminal-connection"),a=null!==(e=null==i?void 0:i.offsetWidth)&&void 0!==e?e:0,o=n.offsetLeft,l=o+n.offsetWidth,c=r.scrollLeft,d=c+r.clientWidth-a;o<c+8?r.scrollTo({left:Math.max(0,o-8),behavior:t}):l>d-8&&r.scrollTo({left:l-r.clientWidth+a+8,behavior:t})},[E]);return(0,o.useLayoutEffect)(()=>{if(!E)return;let e=T.length>eg.current;eg.current=T.length,eP(e?"auto":"smooth")},[E,T.length,eP]),(0,o.useEffect)(()=>{let e=()=>requestAnimationFrame(()=>eP("auto"));return window.addEventListener("pageshow",e),()=>window.removeEventListener("pageshow",e)},[eP]),(0,n.jsxs)("div",{className:"web-root",style:{...S.root,...eo.cssVars,background:"var(--ui-root-bg)",color:"var(--ui-text)"},children:[(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:k}}),(0,n.jsxs)("div",{className:"terminal-tabs",ref:ep,children:[T.map(e=>(0,n.jsxs)("div",{"data-terminal-id":e.id,draggable:!0,className:"terminal-tab ".concat(e.id===E?"active":""),onDragStart:()=>{ef.current=e.id},onDragOver:e=>e.preventDefault(),onDrop:t=>{t.preventDefault();let r=ef.current;ef.current=null,r&&r!==e.id&&C(t=>{let n=t.findIndex(e=>e.id===r),i=t.findIndex(t=>t.id===e.id);if(n<0||i<0)return t;let a=[...t],[o]=a.splice(n,1);return a.splice(i,0,o),u("term:reorder",{ids:a.map(e=>e.id).filter(e=>e!==w.id)}).catch(()=>{}),a})},onClick:()=>P(e.id),onDoubleClick:()=>{var t;if("webapp"===e.kind)return;let r=null===(t=window.prompt("页签名称",e.title))||void 0===t?void 0:t.trim();r&&u("term:rename",{id:e.id,title:r}).then(()=>C(t=>t.map(t=>t.id===e.id?{...t,title:r}:t))).catch(()=>{})},children:[(0,n.jsx)("span",{children:e.title}),"webapp"!==e.kind&&(0,n.jsx)("button",{tabIndex:-1,onClick:t=>{t.stopPropagation(),ek(e.id)},children:"\xd7"})]},e.id)),(0,n.jsx)("button",{className:"terminal-add",disabled:T.length>=8,onClick:ey,children:"+"}),(0,n.jsxs)("div",{className:"terminal-connection",children:[(0,n.jsx)("span",{style:{width:8,height:8,borderRadius:99,background:l.connected?"var(--ui-success)":"var(--ui-error)"}}),(0,n.jsx)(p,{username:null!==(i=null===(t=a.user)||void 0===t?void 0:t.username)&&void 0!==i?i:"?",themeId:er,onThemeChange:en,accent:eo.keybar.accent,accentText:eo.keybar.accentText})]})]}),(0,n.jsxs)("main",{className:"workspace ".concat(U?"show-tree":""," ").concat(H?"has-preview":""),style:S.workspace,children:[(0,n.jsx)("section",{className:"term-col",style:S.termCol,onPointerDownCapture:e=>{"touch"===e.pointerType&&eE(e.target)&&(ec.current={x:e.clientX,y:e.clientY,axis:"pending"})},onPointerMoveCapture:e=>{let t=ec.current;if(!t||"touch"!==e.pointerType)return;let r=e.clientX-t.x,n=e.clientY-t.y;if("pending"===t.axis){if(8>=Math.max(Math.abs(r),Math.abs(n)))return;if(Math.abs(n)>=1.2*Math.abs(r)){ec.current=null;return}t.axis="horizontal",eb(!0)}"horizontal"===t.axis&&(e.preventDefault(),eu(r))},onPointerUpCapture:e=>{let t=ec.current;if(!t||"touch"!==e.pointerType)return;let r=e.clientX-t.x;"horizontal"===t.axis&&Math.abs(r)>=64?eC(r):eT()},onPointerCancelCapture:eT,children:(0,n.jsx)("div",{className:"terminal-track",style:{transform:"translate3d(calc(".concat(-(100*ej),"% + ").concat(ed,"px),0,0)"),transition:es?"none":"transform 260ms cubic-bezier(.22,.8,.32,1)"},children:T.map(e=>{var t;return(0,n.jsx)("div",{className:"terminal-slide",children:"webapp"===e.kind?(0,n.jsx)("iframe",{ref:eh,src:"/app/",title:e.title,style:{width:"100%",height:"100%",border:"0",background:"#000"}}):(0,n.jsx)(g,{terminalId:e.id,title:e.title,visible:e.id===E,state:l,rpc:u,onEvent:b,onTerminalData:v,onTerminalReset:y,sendTerminalInput:j,keyOrder:ee,keybarHidden:Z,onKeyOrderChange:et,onKeybarHiddenChange:$,terminalTheme:eo,initialScrollLine:null!==(t=F[e.id])&&void 0!==t?t:null,onScrollLineChange:t=>W(r=>r[e.id]===t?r:{...r,[e.id]:t}),onRegisterFill:t=>N(e.id,t),onCwdChange:t=>t&&L(r=>({...r,[e.id]:t}))})},e.id)})})}),U&&(0,n.jsx)("div",{className:"drawer-mask",onClick:()=>V(!1)}),(0,n.jsxs)("aside",{className:"tree-col ".concat(U?"tree-col-open":""),style:S.treeCol,children:[(0,n.jsxs)("div",{className:"tree-head",style:S.treeHead,children:[(0,n.jsx)("button",{className:"files"===X?"drawer-tab-active":"",onClick:()=>A("files"),children:"文件"}),(0,n.jsx)("button",{className:"history"===X?"drawer-tab-active":"",onClick:()=>A("history"),children:"历史"}),(0,n.jsx)("span",{className:"tree-cwd",style:S.treeCwd,children:null!=em?em:""}),(0,n.jsx)("button",{style:{...S.iconBtn,marginLeft:"auto",flexShrink:0},onClick:()=>V(!1),"aria-label":"close drawer",children:"✕"})]}),"files"===X?(0,n.jsx)(m,{ready:c>0,followCwd:!0,cwd:em,rpc:u,onEvent:b,onOpenFile:ew,selectedPath:H,initialRoot:q,initialFollow:G,onTreeStateChange:(e,t)=>{J(e),K(t)}}):(0,n.jsx)(d,{csrfToken:a.csrfToken,terminalId:E,onFill:D}),(0,n.jsxs)("div",{style:S.treeFoot,children:[(0,n.jsx)("span",{style:S.treeFootDot}),(0,n.jsx)("span",{children:"实时同步"})]})]}),H&&(0,n.jsx)("section",{className:"preview-col",style:S.previewCol,children:(0,n.jsx)(x,{path:H,rpc:u,onClose:()=>_(null)})})]}),(0,n.jsx)("button",{className:"fab-files",style:{...S.fabFiles,left:"".concat(100*Y.xRatio,"%"),top:"".concat(100*Y.yRatio,"%"),right:"auto",bottom:"auto",transform:"translate(-50%,-50%)"},onPointerDown:e=>{el.current={moved:!1},e.currentTarget.setPointerCapture(e.pointerId)},onPointerMove:e=>{if(!el.current)return;el.current.moved=!0;let t=window.visualViewport;Q({xRatio:Math.max(.05,Math.min(.95,e.clientX/((null==t?void 0:t.width)||innerWidth))),yRatio:Math.max(.08,Math.min(.92,(e.clientY-((null==t?void 0:t.offsetTop)||0))/((null==t?void 0:t.height)||innerHeight))),anchor:e.clientX<((null==t?void 0:t.width)||innerWidth)/2?"left":"right"})},onPointerUp:e=>{var t;e.currentTarget.releasePointerCapture(e.pointerId),(null===(t=el.current)||void 0===t?void 0:t.moved)||V(e=>!e),el.current=null},"aria-label":"files",children:"\uD83D\uDCC2"})]})}let k='\n html, body { width:100%; height:100%; margin:0; overflow:hidden; background:var(--ui-root-bg, #0b0b10); overscroll-behavior:none; color:var(--ui-text, #e8e8ee); }\n * { -webkit-tap-highlight-color: transparent; }\n .terminal-tabs { display:flex; align-items:end; gap:4px; min-height:38px; padding:0 8px; overflow-x:auto; overflow-y:hidden; touch-action:pan-x; overscroll-behavior-x:contain; -webkit-overflow-scrolling:touch; scroll-behavior:smooth; background:var(--ui-tabbar-bg, #12141b); border-bottom:1px solid var(--ui-tabbar-border, #282b36); scrollbar-width:none; flex-shrink:0; }\n .terminal-tab { display:flex; align-items:center; gap:7px; min-width:74px; max-width:130px; height:32px; padding:0 7px 0 10px; border-radius:7px 7px 0 0; background:var(--ui-tab-bg, #1b1e28); color:var(--ui-tab-text, #8f93a4); font-size:11px; cursor:pointer; box-sizing:border-box; transition:background .2s ease,color .2s ease,box-shadow .2s ease; }\n .terminal-tab.active { color:var(--ui-tab-active-text, #edf0f7); background:var(--ui-tab-active-bg, #262b38); box-shadow:inset 0 2px var(--ui-tab-accent, #7aa2f7); }\n .terminal-tab span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; flex:1; }\n .terminal-tab button { width:18px; height:18px; border:0; border-radius:4px; background:transparent; color:var(--ui-tab-text, #707586); padding:0; }\n .terminal-add { min-width:30px; height:28px; margin-bottom:2px; border:1px solid var(--ui-tabbar-border, #303442); border-radius:6px; background:var(--ui-tab-bg, #1b1e28); color:var(--ui-tab-text, #9da2b2); }\n .terminal-connection { position:sticky; right:-8px; margin-left:auto; align-self:stretch; display:flex; align-items:center; gap:7px; padding:0 9px; background:var(--ui-connection-bg, #12141b); color:var(--ui-connection-text, #777b8c); font-size:10.5px; flex-shrink:0; z-index:5; box-shadow:-8px 0 12px color-mix(in srgb, var(--ui-connection-bg, #12141b) 90%, transparent); }\n .theme-picker { position:relative; flex-shrink:0; z-index:6; }\n .theme-avatar { -webkit-tap-highlight-color:transparent; }\n .terminal-track { display:flex; width:100%; height:100%; will-change:transform; }\n .terminal-slide { flex:0 0 100%; width:100%; height:100%; min-width:0; }\n .terminal-screen { display:flex; flex-direction:column; min-height:0; overflow:hidden; }\n .terminal-screen .xterm { flex:1; height:100%; }\n .terminal-screen .xterm-scrollable-element { touch-action:pan-y; -webkit-overflow-scrolling:touch; }\n @media (prefers-reduced-motion: reduce) { .terminal-track,.terminal-tab { transition:none !important; } }\n .web-root {\n position: fixed;\n top: var(--vv-top, 0px);\n left: var(--vv-left, 0px);\n width: var(--vv-width, 100vw);\n height: var(--vv-height, 100dvh) !important;\n }\n .tree-scroll {\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n overflow-x: hidden;\n overscroll-behavior: contain;\n touch-action: pan-y;\n -webkit-overflow-scrolling: touch;\n padding: 6px;\n }\n .tree-location {\n position: sticky;\n top: -6px;\n z-index: 3;\n display: flex;\n align-items: center;\n gap: 5px;\n margin: -1px -1px 0;\n padding: 7px 7px 5px;\n background: color-mix(in srgb, var(--ui-tree-bg, #121218) 98%, transparent);\n }\n .tree-location input {\n flex: 1;\n min-width: 0;\n height: 28px;\n border: 1px solid var(--ui-panel-input-border, #30303b);\n border-radius: 6px;\n outline: none;\n padding: 0 8px;\n background: var(--ui-panel-input-bg, #0f0f15);\n color: var(--ui-panel-input-text, #d8d8df);\n font-family: "SF Mono", Menlo, monospace;\n font-size: 10.5px;\n }\n .tree-location input:focus { border-color: var(--ui-tab-accent, #536b9e); }\n .tree-location button {\n width: 28px;\n height: 28px;\n flex-shrink: 0;\n border: 1px solid var(--ui-panel-input-border, #30303a);\n border-radius: 6px;\n background: var(--ui-tab-bg, #202029);\n color: var(--ui-tab-text, #aaaab8);\n font-size: 12px;\n }\n .tree-location button[data-active="1"] {\n border-color: var(--ui-success, #4f6f58);\n color: var(--ui-success, #9ece6a);\n background: color-mix(in srgb, var(--ui-success, #9ece6a) 12%, var(--ui-tree-bg, #18221b));\n }\n .tree-head button { height:26px; padding:0 10px; border:0; border-radius:6px 6px 0 0; background:transparent; color:var(--ui-drawer-tab-text, #74798a); font-size:11px; }\n .tree-head button.drawer-tab-active { color:var(--ui-drawer-tab-active, #e4e7ef); box-shadow:inset 0 -2px var(--ui-tab-accent, #7aa2f7); }\n .history-panel { flex:1; min-height:0; overflow:auto; padding:7px; }\n .history-search { position:sticky; top:0; display:flex; gap:5px; padding:5px; background:var(--ui-tree-bg, #121218); z-index:2; }\n .history-search input { flex:1; min-width:0; height:28px; border:1px solid var(--ui-panel-input-border, #30303a); border-radius:6px; padding:0 8px; background:var(--ui-panel-input-bg, #0f0f15); color:var(--ui-panel-input-text, #ddd); font-size:11px; }\n .history-search button,.history-item button { border:1px solid var(--ui-panel-input-border, #30303a); border-radius:5px; background:var(--ui-tab-bg, #202029); color:var(--ui-connection-text, #999dab); font-size:10px; }\n .history-item { padding:9px 7px; border-bottom:1px solid var(--ui-tabbar-border, #242731); cursor:pointer; border-radius:6px; }\n .history-item:hover { background:color-mix(in srgb, var(--ui-tab-active-bg, #181b24) 80%, transparent); }\n .history-item:active { background:var(--ui-tab-active-bg, #1f2430); }\n .history-item-disabled { cursor:not-allowed; opacity:.55; }\n .history-item-disabled:hover { background:transparent; }\n .history-item:focus-visible { outline:1px solid var(--ui-tab-accent, #536b9e); outline-offset:-1px; }\n .history-item code { display:block; color:var(--ui-history-item-text, #d3d6df); font-size:11px; overflow-wrap:anywhere; }\n .history-item small { display:block; margin:4px 0 7px; color:var(--ui-history-meta, #656a79); font-size:9.5px; }\n .history-item-actions { display:flex; gap:5px; }\n .history-empty { padding:18px; color:#5d6270; font-size:11px; text-align:center; }\n .keybar-scroll { scrollbar-width:none; }\n .keybar-scroll::-webkit-scrollbar { display:none; }\n .tree-filter {\n position: sticky;\n top: 34px;\n z-index: 2;\n display: flex;\n align-items: center;\n gap: 6px;\n margin: -1px -1px 7px;\n padding: 7px 8px;\n border-bottom: 1px solid var(--ui-tabbar-border, #25252e);\n background: color-mix(in srgb, var(--ui-tree-bg, #121218) 97%, transparent);\n color: var(--ui-history-meta, #666678);\n backdrop-filter: blur(8px);\n }\n .tree-filter input {\n flex: 1;\n min-width: 0;\n height: 27px;\n border: 1px solid var(--ui-panel-input-border, #30303a);\n border-radius: 6px;\n outline: none;\n padding: 0 8px;\n background: var(--ui-panel-input-bg, #0f0f15);\n color: var(--ui-panel-input-text, #d8d8df);\n font-size: 11px;\n }\n .tree-filter input:focus { border-color: var(--ui-tab-accent, #536b9e); }\n .tree-filter button {\n width: 25px;\n height: 25px;\n padding: 0;\n border: 0;\n border-radius: 5px;\n background: var(--ui-tab-bg, #24242d);\n color: var(--ui-connection-text, #9999a6);\n font-size: 10px;\n }\n .tree-row {\n display: flex;\n align-items: center;\n gap: 6px;\n min-height: 31px;\n padding-right: 7px;\n border-radius: 6px;\n font-size: 12px;\n white-space: nowrap;\n cursor: pointer;\n }\n .tree-row[data-selected="1"] { background: color-mix(in srgb, var(--ui-tab-accent, #26304a) 24%, transparent); }\n .tree-size { margin-left: auto; color: var(--ui-history-meta, #555); font-size: 10px; flex-shrink: 0; }\n\n /* phone-first: terminal is THE screen */\n .workspace { display: grid !important; grid-template-columns: 1fr; }\n .tree-col {\n position: fixed;\n top: var(--vv-top, 0px);\n height: var(--vv-height, 100dvh);\n right: calc(100vw - var(--vv-left, 0px) - var(--vv-width, 100vw));\n width: min(82vw, 320px); z-index: 40;\n transform: translateX(102%); transition: transform .22s ease;\n box-shadow: -12px 0 32px rgba(0,0,0,.5);\n }\n .tree-col-open { transform: translateX(0); }\n .drawer-mask { position:fixed; top:var(--vv-top, 0px); left:var(--vv-left, 0px); width:var(--vv-width, 100vw); height:var(--vv-height, 100dvh); background:rgba(0,0,0,.45); z-index:39; }\n .preview-col {\n position: fixed;\n top: var(--vv-top, 0px);\n left: var(--vv-left, 0px);\n width: var(--vv-width, 100vw);\n height: var(--vv-height, 100dvh);\n z-index: 50;\n background: var(--ui-term-col-bg, #101014);\n }\n .fab-files { display: grid; place-items: center; }\n .cwd-hint { max-width: 40vw; }\n\n @media (min-width: 900px) {\n .workspace.has-preview { grid-template-columns: 1fr minmax(220px, 264px) minmax(320px, 34%); }\n .workspace:not(.has-preview) { grid-template-columns: 1fr minmax(220px, 264px); }\n /* desktop: tree is a persistent right column; hidden only via transform off */\n .tree-col {\n position: static; top: auto; height: auto; width: auto; transform: none;\n box-shadow: none; border-left: 1px solid var(--ui-tree-border, #1e1e26);\n }\n .workspace:not(.show-tree) .tree-col { display: none; }\n .preview-col { position: relative; inset: auto; width: auto; height: auto; border-left: 1px solid var(--ui-tree-border, #1e1e26); }\n .fab-files { display: none; }\n .drawer-mask { display: none; }\n }\n',S={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)"}}}},function(e){e.O(0,[37,183,744],function(){return e(e.s=6736)}),_N_E=e.O()}]);