@jingyi0605/codingns 1.0.0-beta.2 → 1.0.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/public/assets/{AdaptiveButlerPage-BHUAx_24.js → AdaptiveButlerPage-CLHLiZSY.js} +1 -1
- package/dist/public/assets/{App-D5hc6KuU.js → App-FYuZfAoO.js} +3 -3
- package/dist/public/assets/{BootstrapPage-C2sMZMJa.js → BootstrapPage-3xpnsG-A.js} +1 -1
- package/dist/public/assets/ConversationPage-C5_ZqhU3.js +9 -0
- package/dist/public/assets/{DesktopDetachPreviewPage-D9Abm5NU.js → DesktopDetachPreviewPage-B77MG82y.js} +1 -1
- package/dist/public/assets/{DesktopModal-BCVZq_PQ.js → DesktopModal-K5bEcj38.js} +1 -1
- package/dist/public/assets/{DesktopWindowPage-Cotl5fte.js → DesktopWindowPage-DbG-RBAf.js} +1 -1
- package/dist/public/assets/{FileContextPanel-DbPOq5w-.js → FileContextPanel-C-1yOton.js} +1 -1
- package/dist/public/assets/{GitSidebar-Cuxi2R93.js → GitSidebar-DFHAPT3S.js} +1 -1
- package/dist/public/assets/{MobileCreateSessionSheet-DYqarJqO.js → MobileCreateSessionSheet-gOyAZ857.js} +1 -1
- package/dist/public/assets/{MobileSheet-DPYtp5Ze.js → MobileSheet-D0MfNkTv.js} +1 -1
- package/dist/public/assets/{PluginAccessOverview-CiVzb_NI.js → PluginAccessOverview-IrYIPLg3.js} +1 -1
- package/dist/public/assets/{PluginContainerPage-BfZ3E41c.js → PluginContainerPage-b9LQVuqG.js} +1 -1
- package/dist/public/assets/{PluginDetailPage-DQQAg_ba.js → PluginDetailPage-BX7gohai.js} +1 -1
- package/dist/public/assets/{PluginsListPage-bF1NmA_r.js → PluginsListPage-R0SibHMi.js} +1 -1
- package/dist/public/assets/{PureConversationPage-CWji-ARJ.js → PureConversationPage-CcakFvo0.js} +1 -1
- package/dist/public/assets/{RelayConnectEntryPage-D4-3Fher.js → RelayConnectEntryPage-cAVq_kNM.js} +1 -1
- package/dist/public/assets/{ServerSettingsModal-BUY1Y3g6.js → ServerSettingsModal-BJwYHdKD.js} +1 -1
- package/dist/public/assets/{SessionIndexPage-zVB9jnzP.js → SessionIndexPage-CJKRHB_F.js} +1 -1
- package/dist/public/assets/{SettingsPage-DeqR2p7d.js → SettingsPage-Csp7wEBC.js} +1 -1
- package/dist/public/assets/{TerminalManagerPanel-BjnC70ga.js → TerminalManagerPanel-2HG-NyfR.js} +1 -1
- package/dist/public/assets/{ToolFilesPage-BZseQqvZ.js → ToolFilesPage-BAZdjNaF.js} +1 -1
- package/dist/public/assets/{ToolGitPage-SrOO8Ftz.js → ToolGitPage-CGkPmgsz.js} +1 -1
- package/dist/public/assets/{ToolProcessesPage-Dbzlqjdy.js → ToolProcessesPage-BHpS7-VH.js} +1 -1
- package/dist/public/assets/{ToolsHomePage-BBilUc0P.js → ToolsHomePage-DDGqYwYU.js} +1 -1
- package/dist/public/assets/{WorkbenchLandingPage-FdsBC8WN.js → WorkbenchLandingPage-B4aooEYJ.js} +1 -1
- package/dist/public/assets/{WorkbenchLayout-yGxGKcG1.js → WorkbenchLayout-DrAvGjGK.js} +81 -79
- package/dist/public/assets/{WorkbenchModal-Cm-ciXO9.js → WorkbenchModal-BK5ix8YI.js} +1 -1
- package/dist/public/assets/WorkbenchShellRoute-p1FvkoPN.js +1 -0
- package/dist/public/assets/{WorkspaceDebugDetailPage-CZtpOiY0.js → WorkspaceDebugDetailPage-CPgAe8dd.js} +1 -1
- package/dist/public/assets/{WorkspaceDetailPage-CbbgUz1H.js → WorkspaceDetailPage-YM85dTGg.js} +1 -1
- package/dist/public/assets/{WorkspaceHomePage-DMNJKAYe.js → WorkspaceHomePage-DPPvwM93.js} +1 -1
- package/dist/public/assets/{client-runtime-manager-tsFkLtO_.js → client-runtime-manager-Clq-8rWh.js} +1 -1
- package/dist/public/assets/{host-alias-df5bYDlE.js → host-alias-BxzpRYrt.js} +1 -1
- package/dist/public/assets/{index-CILPuSCp.js → index-BArTKWXk.js} +3 -3
- package/dist/public/assets/index-CqKepLbu.css +1 -0
- package/dist/public/assets/{login-direct-candidate-resolver-pkfXrMJy.js → login-direct-candidate-resolver-BiWwFKnk.js} +1 -1
- package/dist/public/assets/{peer-host-config-sync-nS_66OLg.js → peer-host-config-sync-kTom1_pp.js} +1 -1
- package/dist/public/assets/{plugin-permission-copy-LDy-lW7h.js → plugin-permission-copy-1_1wViri.js} +1 -1
- package/dist/public/assets/{plugins-api-BGF9OybZ.js → plugins-api-C0JqR2-W.js} +1 -1
- package/dist/public/assets/{preferences-service-BC25oxA_.js → preferences-service-DWeLWZST.js} +1 -1
- package/dist/public/assets/{relay-entry-ErQKnI7B.js → relay-entry-ClEd3cjN.js} +1 -1
- package/dist/public/assets/{useRegisteredDebugTemplates-BTr3ATCZ.js → useRegisteredDebugTemplates-wJGOYam9.js} +1 -1
- package/dist/public/assets/{workbench-navigation-hwM28xIb.js → workbench-navigation-vIWt3Rv_.js} +1 -1
- package/dist/public/index.html +2 -2
- package/dist/server/modules/sessions/codex-app-server-helper-process.js +84 -20
- package/dist/server/modules/sessions/codex-app-server-helper-process.js.map +1 -1
- package/dist/server/modules/sessions/session-controller.js +2 -1
- package/dist/server/modules/sessions/session-controller.js.map +1 -1
- package/dist/server/modules/sessions/session-live-runtime-service.d.ts +14 -0
- package/dist/server/modules/sessions/session-live-runtime-service.js +103 -4
- package/dist/server/modules/sessions/session-live-runtime-service.js.map +1 -1
- package/dist/server/modules/sessions/session-permission-request-service.d.ts +1 -0
- package/dist/server/modules/sessions/session-permission-request-service.js +27 -5
- package/dist/server/modules/sessions/session-permission-request-service.js.map +1 -1
- package/dist/server/modules/sessions/session-provider-config-service.js +1 -0
- package/dist/server/modules/sessions/session-provider-config-service.js.map +1 -1
- package/dist/server/modules/sessions/workspace-session-runtime-context-service.js +5 -1
- package/dist/server/modules/sessions/workspace-session-runtime-context-service.js.map +1 -1
- package/dist/server/storage/repositories/session-send-queue-repository.d.ts +1 -0
- package/dist/server/storage/repositories/session-send-queue-repository.js +23 -0
- package/dist/server/storage/repositories/session-send-queue-repository.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/index.d.ts +1 -0
- package/node_modules/@codingns/session-sync-core/dist/index.js +1 -0
- package/node_modules/@codingns/session-sync-core/dist/index.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/runtime/codex-permissions.d.ts +27 -1
- package/node_modules/@codingns/session-sync-core/dist/runtime/codex-permissions.js +48 -4
- package/node_modules/@codingns/session-sync-core/dist/runtime/codex-permissions.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js +53 -15
- package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js.map +1 -1
- package/package.json +2 -1
- package/scripts/claude-hook-bridge.cjs +167 -0
- package/dist/public/assets/ConversationPage-CDpyEOUA.js +0 -9
- package/dist/public/assets/WorkbenchShellRoute-CijuAd9-.js +0 -1
- package/dist/public/assets/index-CSlwKnM4.css +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/window-BVUB8gMK.js","assets/event-DvH9tcej.js","assets/ServerSettingsModal-
|
|
2
|
-
var Fn=Object.defineProperty;var Vn=(e,t,r)=>t in e?Fn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var _e=(e,t,r)=>Vn(e,typeof t!="symbol"?t+"":t,r);import{u as Qe,j as p,t as le,a as Qt,g as Bn,r as zn,b as f,R as Hn,c as be,_ as z,d as Wn,e as he,h as Mt,f as He,i as Dt,n as Kr,k as Yr,l as $n,m as Kn,o as _t,p as Yn,q as Gn,s as Jn,v as qn,w as Xn,x as $t,y as Qn,z as Zn,A as ea,B as ta,C as ra,I as na}from"./index-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/window-BVUB8gMK.js","assets/event-DvH9tcej.js","assets/ServerSettingsModal-BJwYHdKD.js","assets/index-BArTKWXk.js","assets/index-CqKepLbu.css","assets/relay-entry-ClEd3cjN.js","assets/WorkbenchModal-BK5ix8YI.js","assets/DesktopModal-K5bEcj38.js","assets/BootstrapPage-3xpnsG-A.js","assets/RelayConnectEntryPage-cAVq_kNM.js","assets/DesktopDetachPreviewPage-B77MG82y.js","assets/DesktopWindowPage-DbG-RBAf.js","assets/WorkbenchLayout-DrAvGjGK.js","assets/workbench-navigation-vIWt3Rv_.js","assets/host-alias-BxzpRYrt.js","assets/MobileSheet-D0MfNkTv.js","assets/WorkbenchLayout-BZdfVest.css","assets/FileContextPanel-C-1yOton.js","assets/GitSidebar-DFHAPT3S.js","assets/TerminalManagerPanel-2HG-NyfR.js","assets/WorkbenchShellRoute-p1FvkoPN.js","assets/WorkbenchShellRoute-DpycFsbp.css","assets/WorkbenchLandingPage-B4aooEYJ.js","assets/WorkspaceHomePage-DPPvwM93.js","assets/butler-records-events-DgWCG364.js","assets/MobileCreateSessionSheet-gOyAZ857.js","assets/WorkspaceDetailPage-YM85dTGg.js","assets/useRegisteredDebugTemplates-wJGOYam9.js","assets/WorkspaceDebugDetailPage-CPgAe8dd.js","assets/SessionIndexPage-CJKRHB_F.js","assets/styles-DwSuZo1w.js","assets/styles-BhKoKfQ_.css","assets/ConversationPage-C5_ZqhU3.js","assets/PureConversationPage-CcakFvo0.js","assets/ToolsHomePage-DDGqYwYU.js","assets/ToolFilesPage-BAZdjNaF.js","assets/ToolGitPage-CGkPmgsz.js","assets/ToolProcessesPage-BHpS7-VH.js","assets/PluginsListPage-R0SibHMi.js","assets/plugins-api-C0JqR2-W.js","assets/PluginDetailPage-BX7gohai.js","assets/PluginAccessOverview-IrYIPLg3.js","assets/plugin-permission-copy-1_1wViri.js","assets/PluginContainerPage-b9LQVuqG.js","assets/AdaptiveButlerPage-CLHLiZSY.js","assets/SettingsPage-Csp7wEBC.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
var Fn=Object.defineProperty;var Vn=(e,t,r)=>t in e?Fn(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var _e=(e,t,r)=>Vn(e,typeof t!="symbol"?t+"":t,r);import{u as Qe,j as p,t as le,a as Qt,g as Bn,r as zn,b as f,R as Hn,c as be,_ as z,d as Wn,e as he,h as Mt,f as He,i as Dt,n as Kr,k as Yr,l as $n,m as Kn,o as _t,p as Yn,q as Gn,s as Jn,v as qn,w as Xn,x as $t,y as Qn,z as Zn,A as ea,B as ta,C as ra,I as na}from"./index-BArTKWXk.js";function aa(e,t){for(var r=0;r<t.length;r++){const n=t[r];if(typeof n!="string"&&!Array.isArray(n)){for(const a in n)if(a!=="default"&&!(a in e)){const i=Object.getOwnPropertyDescriptor(n,a);i&&Object.defineProperty(e,a,i.get?i:{enumerable:!0,get:()=>n[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}const ia=[{id:"zh-CN",labelKey:"locale.zhCN"},{id:"en-US",labelKey:"locale.enUS"}];function oa({variant:e="default",className:t}){const r=Qe(a=>a.profile.language);function n(a){a!==r&&Qt({language:a}).catch(()=>{})}return p.jsxs("label",{className:`language-switcher language-switcher-${e}${t?` ${t}`:""}`,children:[p.jsx("span",{className:"language-switcher-label",children:le("common.language")}),p.jsx("div",{className:"language-switcher-options",role:"group","aria-label":le("common.language"),children:ia.map(a=>p.jsx("button",{type:"button",className:`language-switcher-option${r===a.id?" active":""}`,"aria-pressed":r===a.id,onClick:()=>n(a.id),children:le(a.labelKey)},a.id))})]})}var Gr=zn();const sa=Bn(Gr),la=aa({__proto__:null,default:sa},[Gr]);/**
|
|
3
3
|
* @remix-run/router v1.23.2
|
|
4
4
|
*
|
|
5
5
|
* Copyright (c) Remix Software Inc.
|
|
@@ -27,4 +27,4 @@ var Fn=Object.defineProperty;var Vn=(e,t,r)=>t in e?Fn(e,t,{enumerable:!0,config
|
|
|
27
27
|
* LICENSE.md file in the root directory of this source tree.
|
|
28
28
|
*
|
|
29
29
|
* @license MIT
|
|
30
|
-
*/function It(){return It=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},It.apply(this,arguments)}function Jt(e){return e===void 0&&(e=""),new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,r)=>{let n=e[r];return t.concat(Array.isArray(n)?n.map(a=>[r,a]):[[r,n]])},[]))}function _i(e,t){let r=Jt(e);return t&&t.forEach((n,a)=>{r.has(a)||t.getAll(a).forEach(i=>{r.append(a,i)})}),r}const Pi="6";try{window.__reactRouterVersion=Pi}catch{}function Ti(e,t){return Va({basename:void 0,future:It({},void 0,{v7_prependBasename:!0}),history:ca({window:void 0}),hydrationData:Ci(),routes:e,mapRouteProperties:Ri,dataStrategy:void 0,patchRoutesOnNavigation:void 0,window:void 0}).initialize()}function Ci(){var e;let t=(e=window)==null?void 0:e.__staticRouterHydrationData;return t&&t.errors&&(t=It({},t,{errors:Di(t.errors)})),t}function Di(e){if(!e)return null;let t=Object.entries(e),r={};for(let[n,a]of t)if(a&&a.__type==="RouteErrorResponse")r[n]=new Nt(a.status,a.statusText,a.data,a.internal===!0);else if(a&&a.__type==="Error"){if(a.__subType){let i=window[a.__subType];if(typeof i=="function")try{let o=new i(a.message);o.stack="",r[n]=o}catch{}}if(r[n]==null){let i=new Error(a.message);i.stack="",r[n]=i}}else r[n]=a;return r}const Li=f.createContext({isTransitioning:!1}),Ni=f.createContext(new Map),ji="startTransition",Ar=Hn[ji],Ii="flushSync",Fr=la[Ii];function Mi(e){Ar?Ar(e):e()}function ot(e){Fr?Fr(e):e()}class Ui{constructor(){this.status="pending",this.promise=new Promise((t,r)=>{this.resolve=n=>{this.status==="pending"&&(this.status="resolved",t(n))},this.reject=n=>{this.status==="pending"&&(this.status="rejected",r(n))}})}}function Oi(e){let{fallbackElement:t,router:r,future:n}=e,[a,i]=f.useState(r.state),[o,l]=f.useState(),[c,d]=f.useState({isTransitioning:!1}),[m,g]=f.useState(),[w,b]=f.useState(),[P,E]=f.useState(),D=f.useRef(new Map),{v7_startTransition:F}=n||{},L=f.useCallback(j=>{F?Mi(j):j()},[F]),G=f.useCallback((j,V)=>{let{deletedFetchers:M,flushSync:ne,viewTransitionOpts:q}=V;j.fetchers.forEach((ae,se)=>{ae.data!==void 0&&D.current.set(se,ae.data)}),M.forEach(ae=>D.current.delete(ae));let oe=r.window==null||r.window.document==null||typeof r.window.document.startViewTransition!="function";if(!q||oe){ne?ot(()=>i(j)):L(()=>i(j));return}if(ne){ot(()=>{w&&(m&&m.resolve(),w.skipTransition()),d({isTransitioning:!0,flushSync:!0,currentLocation:q.currentLocation,nextLocation:q.nextLocation})});let ae=r.window.document.startViewTransition(()=>{ot(()=>i(j))});ae.finished.finally(()=>{ot(()=>{g(void 0),b(void 0),l(void 0),d({isTransitioning:!1})})}),ot(()=>b(ae));return}w?(m&&m.resolve(),w.skipTransition(),E({state:j,currentLocation:q.currentLocation,nextLocation:q.nextLocation})):(l(j),d({isTransitioning:!0,flushSync:!1,currentLocation:q.currentLocation,nextLocation:q.nextLocation}))},[r.window,w,m,D,L]);f.useLayoutEffect(()=>r.subscribe(G),[r,G]),f.useEffect(()=>{c.isTransitioning&&!c.flushSync&&g(new Ui)},[c]),f.useEffect(()=>{if(m&&o&&r.window){let j=o,V=m.promise,M=r.window.document.startViewTransition(async()=>{L(()=>i(j)),await V});M.finished.finally(()=>{g(void 0),b(void 0),l(void 0),d({isTransitioning:!1})}),b(M)}},[L,o,m,r.window]),f.useEffect(()=>{m&&o&&a.location.key===o.location.key&&m.resolve()},[m,w,a.location,o]),f.useEffect(()=>{!c.isTransitioning&&P&&(l(P.state),d({isTransitioning:!0,flushSync:!1,currentLocation:P.currentLocation,nextLocation:P.nextLocation}),E(void 0))},[c.isTransitioning,P]),f.useEffect(()=>{},[]);let ee=f.useMemo(()=>({createHref:r.createHref,encodeLocation:r.encodeLocation,go:j=>r.navigate(j),push:(j,V,M)=>r.navigate(j,{state:V,preventScrollReset:M==null?void 0:M.preventScrollReset}),replace:(j,V,M)=>r.navigate(j,{replace:!0,state:V,preventScrollReset:M==null?void 0:M.preventScrollReset})}),[r]),K=r.basename||"/",me=f.useMemo(()=>({router:r,navigator:ee,static:!1,basename:K}),[r,ee,K]),v=f.useMemo(()=>({v7_relativeSplatPath:r.future.v7_relativeSplatPath}),[r.future.v7_relativeSplatPath]);return f.useEffect(()=>xi(n,r.future),[n,r.future]),f.createElement(f.Fragment,null,f.createElement(Ut.Provider,{value:me},f.createElement(an.Provider,{value:a},f.createElement(Ni.Provider,{value:D.current},f.createElement(Li.Provider,{value:c},f.createElement(Si,{basename:K,location:a.location,navigationType:a.historyAction,navigator:ee,future:v},a.initialized||r.future.v7_partialHydration?f.createElement(ki,{routes:r.routes,future:r.future,state:a}):t))))),null)}const ki=f.memo(Ai);function Ai(e){let{routes:t,future:r,state:n}=e;return ci(t,void 0,n,r)}var Vr;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(Vr||(Vr={}));var Br;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(Br||(Br={}));function Fi(e){let t=f.useRef(Jt(e)),r=f.useRef(!1),n=mt(),a=f.useMemo(()=>_i(n.search,r.current?null:t.current),[n.search]),i=ir(),o=f.useCallback((l,c)=>{const d=Jt(typeof l=="function"?l(a):l);r.current=!0,i("?"+d,c)},[i,a]);return[a,o]}let Ht=null;function st(){return be().bridge}function Vi(){return{runtime:{isAvailable(){return st().supported},getPlatformInfo(){return st().getPlatformInfo()}},fs:{openFile(e){return st().openLocalFile(e)},revealInFileManager(e){return st().revealInFileManager(e)},pickDirectory(){return st().pickDirectory()}}}}function Bi(){return Ht||(Ht=Vi()),Ht}function zi(){if(typeof window>"u"||window.self!==window.top)return;const e=Bi();window.__CODINGNS_DESKTOP_BRIDGE_INSTALLED__=!0,Object.defineProperty(window,"CodingNSDesktop",{configurable:!0,writable:!1,value:e})}const Hi="desktop://window-lifecycle",Wi=new Set(["button","checkbox","color","file","hidden","image","radio","range","reset","submit"]);function $i(e){return e instanceof HTMLInputElement?!Wi.has(e.type.toLowerCase()):!1}function Ki(e){const t=e.activeElement;if($i(t)||t instanceof HTMLTextAreaElement){const r=t.selectionStart??0,n=t.selectionEnd??r;return n<=r?null:t.value.slice(r,n)}return null}function Yi(e){const t=Ki(e);if(t!==null)return t;const r=e.getSelection();if(!r||r.isCollapsed)return null;const n=r.toString();return n.length>0?n:null}function Gi(e,t){var a;const r=(a=e.execCommand)==null?void 0:a.bind(e);if(typeof r!="function")return!1;const n=e.createElement("textarea");n.value=t,n.setAttribute("readonly","true"),n.style.position="fixed",n.style.top="-9999px",n.style.opacity="0",e.body.append(n),n.select();try{return r("copy")}catch{return!1}finally{n.remove()}}async function Ji(e,t,r){var a,i;try{if(await r(t))return}catch{}const n=(a=e.defaultView)==null?void 0:a.navigator;if((i=n==null?void 0:n.clipboard)!=null&&i.writeText)try{await n.clipboard.writeText(t);return}catch{}Gi(e,t)}function qi(e){const{window:t,document:r,writeClipboardText:n}=e;function a(i){if(i.defaultPrevented||!i.metaKey||i.ctrlKey||i.altKey||i.key.toLowerCase()!=="c")return;const o=Yi(r);o&&(i.preventDefault(),Ji(r,o,n))}return t.addEventListener("keydown",a,!0),()=>{t.removeEventListener("keydown",a,!0)}}const fn=f.createContext(null),Xi=["--desktop-macos-traffic-light-center-y","--desktop-macos-traffic-light-leading-inset","--desktop-macos-traffic-light-safe-zone-width","--desktop-macos-titlebar-height","--desktop-macos-traffic-light-button-diameter"];function Qi(e){if(typeof document>"u")return;const{documentElement:t,body:r}=document;t.dataset.runtimePlatform=e.platform,t.dataset.osFamily=e.ui.osFamily,t.dataset.windowControls=e.ui.windowControlsStyle,t.dataset.viewportClass=e.viewportClass,t.dataset.overlayTitlebar=String(e.ui.prefersOverlayTitlebar),r&&(r.dataset.runtimePlatform=e.platform,r.dataset.osFamily=e.ui.osFamily,r.dataset.windowControls=e.ui.windowControlsStyle,r.dataset.viewportClass=e.viewportClass,r.dataset.overlayTitlebar=String(e.ui.prefersOverlayTitlebar))}function qt(){var e;if(!(typeof document>"u"))for(const t of Xi)document.documentElement.style.removeProperty(t),(e=document.body)==null||e.style.removeProperty(t)}function Zi(e){if(typeof document>"u")return;if(!e){qt();return}const t=[document.documentElement,document.body].filter(n=>!!n),r=[["--desktop-macos-traffic-light-center-y",`${e.trafficLightCenterY}px`],["--desktop-macos-traffic-light-leading-inset",`${e.trafficLightLeadingInset}px`],["--desktop-macos-traffic-light-safe-zone-width",`${e.trafficLightSafeZoneWidth}px`],["--desktop-macos-titlebar-height",`${e.titlebarHeight}px`],["--desktop-macos-traffic-light-button-diameter",`${e.trafficLightButtonDiameter}px`]];for(const n of t)for(const[a,i]of r)n.style.setProperty(a,i)}function eo(){if(!(typeof window>"u"))return window.innerWidth}function to({children:e}){const[t,r]=f.useState(()=>eo()),n=f.useMemo(()=>be({viewportWidth:t}),[t]);return f.useEffect(()=>{zi()},[]),f.useEffect(()=>{if(typeof window>"u")return;function a(){r(window.innerWidth)}return a(),window.addEventListener("resize",a),()=>{window.removeEventListener("resize",a)}},[]),f.useEffect(()=>{Qi(n)},[n]),f.useEffect(()=>{if(!(typeof window>"u"||typeof document>"u")&&!(!n.isDesktop||n.ui.osFamily!=="macos"||!n.bridge.supported))return qi({window,document,writeClipboardText:async a=>(await n.bridge.writeClipboardText(a)).ok})},[n]),f.useEffect(()=>()=>{qt()},[]),f.useEffect(()=>{let a=!1,i=null;return!n.isDesktop||!n.bridge.supported?()=>{a=!0}:(z(()=>import("./event-DvH9tcej.js").then(o=>o.c),[]).then(async({listen:o})=>{const l=await o(Hi,c=>{const d=c.payload,m=d==null?void 0:d.descriptor;m!=null&&m.windowId&&(n.windows.registerDescriptor(m),d.isOpen?n.windows.markWindowOpen(m.windowId):n.windows.markWindowClosed(m.windowId))});if(a){l();return}i=l}).catch(()=>{}),()=>{a=!0,i==null||i()})},[n]),f.useEffect(()=>{let a=!1,i=null;async function o(){var c,d;const l=await n.bridge.getRuntimeInfo();a||Zi(l.ok?(d=(c=l.value)==null?void 0:c.windowChrome)==null?void 0:d.macosTitlebar:null)}return!n.isDesktop||n.ui.osFamily!=="macos"||!n.ui.prefersOverlayTitlebar?(qt(),()=>{a=!0}):(o(),z(()=>import("./window-BVUB8gMK.js").then(l=>l.w),__vite__mapDeps([0,1])).then(async({getCurrentWindow:l})=>{const c=await l().onScaleChanged(()=>{o()});if(a){c();return}i=c}).catch(()=>{}),()=>{a=!0,i==null||i()})},[n]),p.jsx(fn.Provider,{value:n,children:e})}function gt(){return f.useContext(fn)??be()}const is=[{id:"light",labelKey:"theme.light",color:"#f6f4ef"},{id:"dark",labelKey:"theme.dark",color:"#1b1b1b"},{id:"sky-blue",labelKey:"theme.skyBlue",color:"#00f0ff"},{id:"eye-green",labelKey:"theme.eyeGreen",color:"#16a34a"}];function os(e){return le(e.labelKey)}function ro(){return typeof window>"u"||typeof window.matchMedia!="function"?"light":window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function hn(e,t){return t?ro():e}function no(){const{theme:e,autoTheme:t}=Wn.getState().profile;return hn(e,t)}function ao(e){Qt({theme:e,autoTheme:!1}).catch(()=>{})}function io(e){Qt({autoTheme:e}).catch(()=>{})}function pn(e){typeof window>"u"||document.documentElement.setAttribute("data-theme",e)}function oo(){const e=Qe(n=>n.profile.theme),t=Qe(n=>n.profile.autoTheme);return{theme:hn(e,t),selectedTheme:e,autoTheme:t,setTheme:ao,setAutoTheme:io}}function so(){pn(no())}function lo({children:e}){const t=Qe(n=>n.profile.theme),r=Qe(n=>n.profile.autoTheme);return f.useEffect(()=>{so()},[t,r]),f.useEffect(()=>{if(!r||typeof window>"u"||typeof window.matchMedia!="function")return;const n=window.matchMedia("(prefers-color-scheme: dark)"),a=()=>{pn(n.matches?"dark":"light")};return a(),typeof n.addEventListener=="function"?(n.addEventListener("change",a),()=>n.removeEventListener("change",a)):(n.addListener(a),()=>n.removeListener(a))},[r]),p.jsx(p.Fragment,{children:e})}const co={showToast:()=>"",dismissToast:()=>{}},mn=f.createContext(co);function uo(){return`toast-${Math.random().toString(36).slice(2,10)}`}function fo({toast:e,onDismiss:t}){const{id:r,title:n,description:a,tone:i,durationMs:o,action:l}=e;return f.useEffect(()=>{if(o===null)return;const c=window.setTimeout(()=>{t(r)},o);return()=>{window.clearTimeout(c)}},[o,r,t,n,a,i]),p.jsxs("article",{className:"toast-card","data-tone":i,role:i==="error"?"alert":"status",children:[p.jsxs("div",{className:"toast-body",children:[p.jsx("strong",{className:"toast-title",children:n}),a?p.jsx("p",{className:"toast-description",children:a}):null]}),p.jsxs("div",{className:"toast-actions",children:[l?p.jsx("button",{className:"toast-action",type:"button",onClick:()=>{l.onClick(),t(r)},children:l.label}):null,p.jsx("button",{className:"toast-dismiss",type:"button","aria-label":"关闭通知",onClick:()=>t(r),children:"×"})]})]})}function ho({children:e}){const[t,r]=f.useState([]),n=f.useCallback(o=>{r(l=>l.filter(c=>c.id!==o))},[]),a=f.useCallback(o=>{const l=o.id??uo(),c={id:l,title:o.title,description:o.description,tone:o.tone??"info",durationMs:o.durationMs===void 0?4200:o.durationMs,action:o.action};return r(d=>{const m=d.findIndex(w=>w.id===l);if(m===-1)return[...d,c];const g=[...d];return g[m]=c,g}),l},[]),i=f.useMemo(()=>({showToast:a,dismissToast:n}),[n,a]);return p.jsxs(mn.Provider,{value:i,children:[e,p.jsx("div",{className:"toast-viewport","aria-live":"polite","aria-atomic":"false",children:t.map(o=>p.jsx(fo,{toast:o,onDismiss:n},o.id))})]})}function ss(){return f.useContext(mn)}const Ct="1.0.0-beta.2",gn=f.createContext(Ct);function po({children:e}){const t=gt(),[r,n]=f.useState(Ct);return f.useEffect(()=>{let a=!1;return t.isDesktop?(t.bridge.getRuntimeInfo().then(i=>{var l,c;if(a)return;const o=i.ok?(c=(l=i.value)==null?void 0:l.version)==null?void 0:c.trim():"";n(o||Ct)}),()=>{a=!0}):(n(Ct),()=>{a=!0})},[t]),p.jsx(gn.Provider,{value:r,children:e})}function mo(){return f.useContext(gn)}const zr={latestState:null,lastNotifiedVersion:null,pendingRestartVersion:null};class go{constructor(){_e(this,"state",zr);_e(this,"listeners",new Set);_e(this,"subscribe",t=>(this.listeners.add(t),()=>{this.listeners.delete(t)}));_e(this,"getState",()=>this.state)}recordState(t){const r=Wt(this.state.pendingRestartVersion),n=Wt(t.currentVersion);this.state={latestState:t,lastNotifiedVersion:t.hasUpdate?this.state.lastNotifiedVersion:null,pendingRestartVersion:r&&r===n?null:this.state.pendingRestartVersion},this.emit()}markVersionNotified(t){this.state.lastNotifiedVersion!==t&&(this.state={...this.state,lastNotifiedVersion:t},this.emit())}markRestartPending(t){const r=Wt(t);!r||this.state.pendingRestartVersion===r||(this.state={...this.state,pendingRestartVersion:r},this.emit())}reset(){this.state=zr,this.emit()}emit(){for(const t of this.listeners)t()}}const Ze=new go;function Wt(e){const t=e==null?void 0:e.trim();return t||null}function vo(e){return f.useSyncExternalStore(Ze.subscribe,()=>e(Ze.getState()))}function yo(){return Ze.getState()}function wo(e){Ze.recordState(e)}function bo(e){Ze.markVersionNotified(e)}function xo(e){Ze.markRestartPending(e)}async function Eo(){const e=be(),t=he.getState(),r=await e.bridge.checkForUpdate(t.releaseChannel);if(!r.ok||!r.value)throw new Error(r.detail??"更新检查失败。");return r.value}async function So(e={}){const t=e.notify??"never",r=await Eo();return wo(r),await vn(r,t),r}async function vn(e,t){await _o(e,t)}async function Ro(){const e=be(),t=he.getState();return e.bridge.downloadUpdate(t.releaseChannel)}async function ls(){const e=be(),t=he.getState();return e.bridge.installUpdate(t.releaseChannel)}function cs(e){xo(e)}async function us(){var e;if(typeof window>"u"||typeof((e=window.__TAURI_INTERNALS__)==null?void 0:e.invoke)!="function")throw new Error("当前运行环境不支持桌面应用重启。");try{await window.__TAURI_INTERNALS__.invoke("restart_application")}catch(t){throw new Error(t instanceof Error?t.message:"重启应用失败。")}}async function _o(e,t){var i,o,l;if(!e.hasUpdate||t==="never")return;const r=((o=(i=e.manifest)==null?void 0:i.version)==null?void 0:o.trim())||e.currentVersion.trim();if(!r)return;const n=yo().lastNotifiedVersion;if(t==="always"||n!==r)try{(await be().bridge.showNotification(le("settings.releaseUpdateReady"),((l=e.manifest)==null?void 0:l.version)??e.currentVersion)).ok&&bo(r)}catch{}}async function ds(){return(await Mt.request("/api/client/host-version")).version}async function Po(){const e=he.getState();return Mt.request(`/api/client/service-update?channel=${encodeURIComponent(e.releaseChannel)}`)}async function fs(e){const t=he.getState();return Mt.request("/api/client/service-update/install",{method:"POST",body:JSON.stringify({packageName:e,channel:t.releaseChannel})})}async function hs(e){return Mt.request(`/api/client/service-update/tasks/${encodeURIComponent(e)}`)}async function To(e={}){const[t,r]=await Promise.allSettled([Po(),So(e)]);return{servicePackage:t.status==="fulfilled"?t.value.packages[0]??null:null,serviceError:t.status==="rejected"?Hr(t.reason):null,clientState:r.status==="fulfilled"?r.value:null,clientError:r.status==="rejected"?Hr(r.reason):null}}function Hr(e){return e instanceof Error&&e.message.trim()?e.message:"检查更新失败"}const Co=3600*1e3;function Do(){const e=He(i=>i.platform),t=He(i=>i.autoCheckUpdate),r=He(i=>i.autoDownloadUpdate),n=He(i=>i.releaseChannel),a=vo(i=>i.pendingRestartVersion);return f.useEffect(()=>{if(e!=="desktop"||!t||a)return;async function i(){await Lo(r)}i();const o=window.setInterval(()=>{i()},Co);return()=>{window.clearInterval(o)}},[t,r,a,e,n]),null}async function Lo(e){try{const t=await To({notify:"never"}),r=t.servicePackage,n=t.clientState,a=!!(r!=null&&r.hasUpdate&&!r.restartRequired),i=!!(n!=null&&n.hasUpdate&&n.manifest);if(e&&(n!=null&&n.hasUpdate)&&n.manifest){const o=await Ro();if(!o.ok)return;await be().bridge.showNotification(le("settings.releaseDownloadedNotificationTitle"),le("settings.releaseDownloadedNotificationBody",{version:o.version??n.manifest.version}));return}if(a&&i){await be().bridge.showNotification(le("settings.softwareUpdate"),le("settings.updateBothReady"));return}if(a){await be().bridge.showNotification(le("settings.serverUpdateReady"),`${le("settings.serverTargetVersion")}: ${(r==null?void 0:r.latestVersion)??"-"}`);return}i&&n&&await vn(n,"if-new")}catch{}}const yn="codingns.server.base-url.history",or=6,wn="__custom__";function bn(){return typeof window<"u"&&typeof window.localStorage<"u"}function xn(){return typeof window>"u"||!window.location.origin?null:window.location.origin}function sr(e){if(!e)return null;try{return Kr(e)}catch{return null}}function En(){if(!bn())return[];const e=window.localStorage.getItem(yn);if(!e)return[];try{const t=JSON.parse(e);return Array.isArray(t)?t.map(r=>typeof r=="string"?sr(r):null).filter(r=>!!r):[]}catch{return[]}}function No(e){const t=new Set,r=[];for(const n of e)!n||t.has(n)||(t.add(n),r.push(n));return r}function jo(e){const t=new Set,r=[];for(const n of e)!n||t.has(n.value)||(t.add(n.value),r.push(n));return r}function Io(e,t){const r=En();return No([e,...t,...r,sr(xn())]).slice(0,or)}function Mo(e){const t=Dt(e),r=En().map(l=>({value:l,source:"history"})),n=sr(xn()),a=e.hosts.map(l=>({value:l.baseUrl,source:"saved"})),i=Kn(e).map(l=>({value:l.baseUrl,source:"discovered"})),o=t?{value:t.baseUrl,source:Yr(t)?"discovered":"saved"}:null;return jo([o,...a,...i,...r,n?{value:n,source:"origin"}:null]).slice(0,or)}function Uo(e){bn()&&window.localStorage.setItem(yn,JSON.stringify(e.slice(0,or)))}class Oo{constructor(){_e(this,"state",this.createState(he.getState()));_e(this,"listeners",new Set);_e(this,"subscribe",t=>(this.listeners.add(t),()=>{this.listeners.delete(t)}));_e(this,"getState",()=>this.state);he.subscribe(()=>{const t=this.createState(he.getState());t.baseUrl===this.state.baseUrl&&t.options.length===this.state.options.length&&t.options.every((r,n)=>r===this.state.options[n])&&t.presetOptions.length===this.state.presetOptions.length&&t.presetOptions.every((r,n)=>{const a=this.state.presetOptions[n];return(a==null?void 0:a.value)===r.value&&(a==null?void 0:a.source)===r.source})||(this.state=t,this.emit())})}setBaseUrl(t){const r=he.getState(),n=Dt(r);if(!n)return!1;const a=Kr(t),i=a!==n.baseUrl,o=Ao(a,n);if(Yr(n))return he.updateRuntime({discoveredHosts:r.discoveredHosts.map(c=>c.id===n.id?{...c,baseUrl:a,name:new URL(a).host,relayTunnel:o,updatedAt:new Date().toISOString()}:c)}),this.state=this.createState(he.getState()),this.emit(),i;const l=r.hosts.map(c=>c.id===n.id?{...c,baseUrl:a,name:new URL(a).host,relayTunnel:o,updatedAt:new Date().toISOString()}:c);return this.state=this.createState({...r,hosts:l}),this.emit(),he.update({hosts:l}),i}reset(){this.state=this.createState(he.getState()),this.emit()}createState(t){const r=Dt(t),n=(r==null?void 0:r.baseUrl)??"",a=Mo(t),i=Io(n,a.map(o=>o.value));return Uo(i),{baseUrl:n,options:i,presetOptions:a}}emit(){for(const t of this.listeners)t()}}const Xt=new Oo;function ko(e){return f.useSyncExternalStore(Xt.subscribe,()=>e(Xt.getState()))}function ps(e,t){return t.includes(e)?e:wn}function ms(){return wn}function Ao(e,t){const r=$n(e);if(!r)return null;const n=t==null?void 0:t.relayTunnel,a=(n==null?void 0:n.provider)==="codingns_relay"&&n.tunnelDomain===r.tunnelDomain&&n.controlBaseUrl===r.controlBaseUrl,i=((n==null?void 0:n.candidateEndpoints)??[]).filter(o=>o.kind!=="relay");return{provider:"codingns_relay",enabled:!0,tunnelDomain:r.tunnelDomain,controlBaseUrl:r.controlBaseUrl,bindingId:a?(n==null?void 0:n.bindingId)??null:null,hostFingerprint:a?(n==null?void 0:n.hostFingerprint)??null:null,candidateEndpoints:[{endpointId:`relay-entry:${r.relayBaseUrl}`,kind:"relay",url:r.relayBaseUrl,priority:0,expiresAt:null,source:"user_saved"},...i]}}const Fo={login(e,t){return _t.login(e,t)},bootstrap(e,t,r){return _t.bootstrap(e,t,r)},refresh(){return _t.refresh()},logout(){_t.clear()}},Vo=f.lazy(async()=>({default:(await z(()=>import("./ServerSettingsModal-BUY1Y3g6.js"),__vite__mapDeps([2,3,4,5,6,7]))).ServerSettingsModal})),Wr="width=device-width, initial-scale=1.0, viewport-fit=cover",Bo="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover";function zo(){const e=f.useRef(null);return f.useEffect(()=>{const t=e.current;if(!t)return;const r=t.getContext("2d");if(!r)return;let n;const a=()=>{o(),l()};let i=[];const o=()=>{t.width=window.innerWidth,t.height=window.innerHeight},l=()=>{i=[];const d=Math.min(50,Math.floor(t.width*t.height/25e3));for(let m=0;m<d;m++)i.push({x:Math.random()*t.width,y:Math.random()*t.height,vx:(Math.random()-.5)*.5,vy:(Math.random()-.5)*.5,size:Math.random()*2+1,opacity:Math.random()*.5+.2})},c=()=>{r.clearRect(0,0,t.width,t.height),i.forEach((d,m)=>{d.x+=d.vx,d.y+=d.vy,d.x<0&&(d.x=t.width),d.x>t.width&&(d.x=0),d.y<0&&(d.y=t.height),d.y>t.height&&(d.y=0),r.beginPath(),r.arc(d.x,d.y,d.size,0,Math.PI*2),r.fillStyle=`rgba(10, 132, 255, ${d.opacity})`,r.fill(),i.slice(m+1).forEach(g=>{const w=d.x-g.x,b=d.y-g.y,P=Math.sqrt(w*w+b*b);P<150&&(r.beginPath(),r.moveTo(d.x,d.y),r.lineTo(g.x,g.y),r.strokeStyle=`rgba(10, 132, 255, ${.1*(1-P/150)})`,r.stroke())})}),n=requestAnimationFrame(c)};return o(),l(),c(),window.addEventListener("resize",a),()=>{window.removeEventListener("resize",a),cancelAnimationFrame(n)}},[]),p.jsx("canvas",{ref:e,className:"particle-canvas"})}function Ho({text:e}){return p.jsx("span",{className:"glitch-text","data-text":e,children:e})}function Wo({text:e}){const[t,r]=f.useState(""),[n,a]=f.useState(!0);return f.useEffect(()=>{let i=0,o=null;const l=setInterval(()=>{i<=e.length?(r(e.slice(0,i)),i++):(clearInterval(l),o=window.setTimeout(()=>a(!1),1e3))},50);return()=>{clearInterval(l),o!==null&&window.clearTimeout(o)}},[e]),p.jsxs("span",{className:"typewriter-text",children:[t,n&&p.jsx("span",{className:"typewriter-cursor",children:"_"})]})}function $o(e){const t=e==null?void 0:e.captcha;if(typeof t!="object"||t===null)return null;const r=t.captchaId,n=t.imageDataUrl;return typeof r!="string"||typeof n!="string"?null:{captchaId:r,imageDataUrl:n}}function Ko(){const e=ir(),t=Yn(),[r]=Fi(),n=gt(),a=mo(),i=He(k=>Gn(k)),o=Jn(n.platform),l=f.useMemo(()=>qn(n),[n]),c=f.useMemo(()=>l?Xn(i):{credentials:null,legacyServerBaseUrl:null},[i,l]),d=c.credentials,m=c.legacyServerBaseUrl,[g,w]=f.useState(()=>(d==null?void 0:d.username)??"admin"),[b,P]=f.useState(()=>(d==null?void 0:d.password)??""),[E,D]=f.useState(null),[F,L]=f.useState(""),[G,ee]=f.useState(()=>!!d),K=ko(k=>k.baseUrl),[me,v]=f.useState(K),[j,V]=f.useState(null),[M,ne]=f.useState(!1),[q,oe]=f.useState(!1),[ae,se]=f.useState(null),[Ke,Ye]=f.useState(!1),Z=$t(k=>k.session),Te=f.useMemo(()=>r.get("returnTo")??"/",[r]),{theme:Ce}=oo(),xe=f.useRef(!1),ue=n.isNativeMobile,De=f.useMemo(()=>Ce==="light"?"light":"dark",[Ce]);f.useEffect(()=>{w((d==null?void 0:d.username)??"admin"),P((d==null?void 0:d.password)??""),D(null),L(""),ee(!!d)},[d]),f.useEffect(()=>{if(typeof document>"u")return;const k=document.querySelector('meta[name="viewport"]');if(!(k instanceof HTMLMetaElement))return;const fe=k.getAttribute("content")??Wr;return ue?k.setAttribute("content",Bo):k.setAttribute("content",Wr),()=>{k.setAttribute("content",fe)}},[ue]),f.useEffect(()=>{xe.current||(xe.current=!0,!(!l||!m||m===K)&&(Xt.setBaseUrl(m),v(m)))},[K,l,m]),f.useEffect(()=>{if(Z){e(Te,{replace:!0});return}if(!me)return;let k=!1;const fe=window.setTimeout(()=>{z(async()=>{const{probeHost:W}=await import("./index-CILPuSCp.js").then(ye=>ye.ae);return{probeHost:W}},__vite__mapDeps([3,4])).then(({probeHost:W})=>W(me)).then(W=>{k||(W.demoMode&&(Ye(!0),Qn()&&V(t("auth.demoSessionExpired"))),W.reachable&&!W.initialized&&e("/bootstrap",{replace:!0}))}).catch(()=>{k||V(t("auth.authUnavailable"))})},0);return()=>{k=!0,window.clearTimeout(fe)}},[Z,e,me,Te,t]);async function Oe(k){k.preventDefault(),ne(!0),V(null),v(K),l&&!G&&i&&Zn(i);try{const fe=E?{username:g,password:b,captchaId:E.captchaId,captchaCode:F}:{username:g,password:b};await Fo.login(fe,K),D(null),L("");const{userPreferenceStore:W}=await z(async()=>{const{userPreferenceStore:ye}=await import("./index-CILPuSCp.js").then(yt=>yt.ad);return{userPreferenceStore:ye}},__vite__mapDeps([3,4]));await W.refreshForAuthenticatedUser(),l&&G&&i&&ea({hostId:i,username:g,password:b}),e(Te,{replace:!0})}catch(fe){if(fe instanceof ta){if(fe.errorCode==="BOOTSTRAP_REQUIRED"){e("/bootstrap",{replace:!0});return}const W=$o(fe.data);W?(D(W),L("")):fe.errorCode==="INVALID_CREDENTIALS"&&(D(null),L("")),V(fe.message)}else V(t("auth.authUnavailable"))}finally{ne(!1)}}function de(k){w(k),d!=null&&d.username&&k.trim()!==d.username&&(P(""),ee(!1)),E&&(D(null),L(""))}function Ee(k){v(k),V(null)}const ve="login-username",ke="login-password",vt="login-captcha";return p.jsxs("main",{className:"cyber-login-page","data-theme":De,"data-native-mobile":ue?"true":"false",children:[p.jsxs("div",{className:"cyber-bg",children:[p.jsx("div",{className:"cyber-grid"}),p.jsx("div",{className:"cyber-glow cyber-glow-1"}),p.jsx("div",{className:"cyber-glow cyber-glow-2"}),p.jsx(zo,{})]}),p.jsx("div",{className:"scanlines"}),p.jsxs("div",{className:"cyber-login-container",children:[p.jsx("div",{className:"cyber-login-toolbar",children:p.jsx(oa,{variant:"compact"})}),p.jsxs("div",{className:"cyber-login-content",children:[p.jsxs("div",{className:"cyber-brand",children:[p.jsx("div",{className:"cyber-logo",children:p.jsx("img",{src:"/logo.png",alt:"CodingNS",className:"cyber-logo-svg"})}),p.jsx("h1",{className:"cyber-brand-title",children:p.jsx(Ho,{text:"CodingNS"})}),p.jsx("p",{className:"cyber-brand-subtitle",children:p.jsx(Wo,{text:t("auth.loginSubtitle")})})]}),p.jsxs("div",{className:"cyber-card",children:[p.jsx("div",{className:"cyber-corner corner-tl"}),p.jsx("div",{className:"cyber-corner corner-tr"}),p.jsx("div",{className:"cyber-corner corner-bl"}),p.jsx("div",{className:"cyber-corner corner-br"}),p.jsxs("div",{className:"cyber-card-header",children:[p.jsx("div",{className:"cyber-line"}),p.jsx("span",{className:"cyber-card-label",children:t("auth.loginTitle").toUpperCase()}),p.jsx("div",{className:"cyber-line"})]}),Ke?p.jsxs("div",{className:"cyber-demo-banner",children:[p.jsx("span",{className:"cyber-demo-icon",children:"⚠"}),p.jsx("span",{children:t("auth.demoBanner")})]}):null,p.jsxs("form",{className:"cyber-form",onSubmit:Oe,children:[p.jsxs("div",{className:`cyber-field ${ae==="username"?"focused":""}`,children:[p.jsx("div",{className:"cyber-field-border",children:p.jsx("div",{className:"cyber-field-border-glow"})}),p.jsxs("label",{className:"cyber-field-label",htmlFor:ve,children:[p.jsx("span",{className:"cyber-field-icon",children:"❯"}),t("auth.username")]}),p.jsx("input",{id:ve,"aria-label":t("auth.username"),className:"cyber-input",value:g,onChange:k=>de(k.target.value),onFocus:()=>se("username"),onBlur:()=>se(null),autoComplete:"username"})]}),p.jsxs("div",{className:`cyber-field ${ae==="password"?"focused":""}`,children:[p.jsx("div",{className:"cyber-field-border",children:p.jsx("div",{className:"cyber-field-border-glow"})}),p.jsxs("label",{className:"cyber-field-label",htmlFor:ke,children:[p.jsx("span",{className:"cyber-field-icon",children:"⚷"}),t("auth.password")]}),p.jsx("input",{id:ke,"aria-label":t("auth.password"),className:"cyber-input",type:"password",value:b,onChange:k=>P(k.target.value),onFocus:()=>se("password"),onBlur:()=>se(null),autoComplete:"current-password"})]}),E?p.jsxs("div",{className:"cyber-captcha-panel",children:[p.jsx("img",{alt:t("auth.captchaImageAlt"),className:"cyber-captcha-image",draggable:!1,src:E.imageDataUrl}),p.jsx("p",{className:"cyber-captcha-hint",children:t("auth.captchaHint")}),p.jsxs("div",{className:`cyber-field ${ae==="captcha"?"focused":""}`,children:[p.jsx("div",{className:"cyber-field-border",children:p.jsx("div",{className:"cyber-field-border-glow"})}),p.jsxs("label",{className:"cyber-field-label",htmlFor:vt,children:[p.jsx("span",{className:"cyber-field-icon",children:"#"}),t("auth.captcha")]}),p.jsx("input",{id:vt,"aria-label":t("auth.captcha"),className:"cyber-input",placeholder:t("auth.captchaPlaceholder"),value:F,onChange:k=>L(k.target.value),onFocus:()=>se("captcha"),onBlur:()=>se(null),autoComplete:"one-time-code"})]})]}):null,l?p.jsxs("label",{className:"cyber-remember-toggle",children:[p.jsx("input",{"aria-label":t("auth.rememberPassword"),type:"checkbox",checked:G,onChange:k=>ee(k.target.checked)}),p.jsx("span",{children:t("auth.rememberPassword")})]}):null,j?p.jsxs("div",{className:"cyber-status","data-tone":"error",children:[p.jsx("span",{className:"cyber-status-icon",children:"⚠"}),p.jsx("span",{children:j})]}):null,p.jsxs("button",{className:`cyber-submit ${M?"loading":""}`,type:"submit",disabled:M,children:[p.jsx("span",{className:"cyber-submit-glow"}),p.jsx("span",{className:"cyber-submit-border"}),p.jsx("span",{className:"cyber-submit-text",children:M?p.jsxs(p.Fragment,{children:[p.jsx("span",{className:"cyber-spinner"}),t("common.loading")]}):p.jsxs(p.Fragment,{children:[p.jsx("span",{className:"cyber-submit-icon",children:"➤"}),t("auth.submitLogin")]})})]})]}),o?p.jsxs("div",{className:"cyber-footer",children:[p.jsxs("div",{className:"cyber-divider",children:[p.jsx("span",{className:"cyber-divider-line"}),p.jsx("span",{className:"cyber-divider-text",children:"//"}),p.jsx("span",{className:"cyber-divider-line"})]}),p.jsxs("button",{className:"cyber-server-btn",onClick:()=>oe(!0),type:"button",children:[p.jsx("span",{className:"cyber-server-icon",children:"⚙"}),p.jsx("span",{className:"cyber-server-text",children:t("auth.serverSettings")}),p.jsx("span",{className:"cyber-server-current",children:K})]})]}):null]})]}),p.jsxs("div",{className:"cyber-version",children:[p.jsxs("span",{className:"cyber-version-text",children:["v",a]}),p.jsx("span",{className:"cyber-version-divider",children:"|"}),p.jsx("span",{className:"cyber-version-text",children:"SYSTEM READY"})]})]}),o&&q?p.jsx(f.Suspense,{fallback:null,children:p.jsx(Vo,{isOpen:q,onClose:()=>oe(!1),onSave:Ee})}):null]})}function Sn(){return p.jsx("main",{className:"page-center app-shell",children:p.jsxs("section",{className:"auth-card surface-card",children:[p.jsx("h1",{children:le("auth.trustedEntryOnlyTitle")}),p.jsx("p",{className:"status-text",children:le("auth.trustedEntryOnlyDescription")}),p.jsxs("div",{className:"field-group",children:[p.jsx("span",{children:le("auth.trustedEntryOnlyHintTitle")}),p.jsx("span",{className:"auth-server-value",children:le("auth.trustedEntryOnlyHint")})]})]})})}function Yo({isDesktop:e,viewportClass:t}){return e||t==="expanded"?"desktop":"mobile"}function Go(){return!1}function Rn(e,t,r=Go()){var i,o;if(!r||t!=="web")return!1;const n=Dt(e),a=n==null?void 0:n.relayTunnel;return!(a!=null&&a.enabled&&((i=a.tunnelDomain)!=null&&i.trim())&&((o=a.controlBaseUrl)!=null&&o.trim()))}function Jo({runtimeKey:e,children:t}){return p.jsx("div",{children:t},e)}function qo(){const e=ra();return p.jsx(Jo,{runtimeKey:e,children:p.jsx(Ei,{})})}function Xo(){const e=He(i=>i),t=gt(),r=$t(i=>i.session),n=$t(i=>i.sessionReady),a=mt();if(Rn(e,t.platform))return p.jsx(Sn,{});if(!r){const i=`${a.pathname}${a.search}`;return p.jsx(dn,{to:`/login?returnTo=${encodeURIComponent(i)}`,replace:!0})}return n?p.jsx(qo,{}):p.jsx("div",{children:le("common.loading")})}function Qo(){const e=He(r=>r),t=gt();return Rn(e,t.platform)?p.jsx(Sn,{}):p.jsx(Ko,{})}function $r(){const e=gt(),t=Yo(e);return p.jsx(dn,{to:t==="mobile"?"/workspaces":"/landing",replace:!0})}function Y(e,t){return async()=>({Component:(await e())[t]})}const Zo=[{path:"/bootstrap",lazy:Y(()=>z(()=>import("./BootstrapPage-C2sMZMJa.js"),__vite__mapDeps([8,3,4])),"BootstrapPage")},{path:"/login",element:p.jsx(Qo,{})},{path:"/connect/:tunnelDomain",lazy:Y(()=>z(()=>import("./RelayConnectEntryPage-D4-3Fher.js"),__vite__mapDeps([9,3,4,5])),"RelayConnectEntryPage")},{path:"/desktop-window-preview",lazy:Y(()=>z(()=>import("./DesktopDetachPreviewPage-D9Abm5NU.js"),__vite__mapDeps([10,3,4])),"DesktopDetachPreviewPage")},{path:"/",element:p.jsx(Xo,{}),children:[{path:"desktop-window/:windowId",lazy:Y(()=>z(()=>import("./DesktopWindowPage-Cotl5fte.js"),__vite__mapDeps([11,3,4,12,13,0,1,14,7,5,6,15,16,17,18,19])),"DesktopWindowPage")},{lazy:Y(()=>z(()=>import("./WorkbenchShellRoute-CijuAd9-.js"),__vite__mapDeps([20,3,4,12,13,0,1,14,7,5,6,15,16,21])),"WorkbenchShellRoute"),children:[{index:!0,element:p.jsx($r,{})},{path:"landing",lazy:Y(()=>z(()=>import("./WorkbenchLandingPage-FdsBC8WN.js"),__vite__mapDeps([22,3,4,12,13,0,1,14,7,5,6,15,16])),"WorkbenchLandingPage")},{path:"workspaces",lazy:Y(()=>z(()=>import("./WorkspaceHomePage-DMNJKAYe.js"),__vite__mapDeps([23,3,4,12,13,0,1,14,7,5,6,15,16,24,25])),"WorkspaceHomePage")},{path:"workspaces/:workspaceId",lazy:Y(()=>z(()=>import("./WorkspaceDetailPage-CbbgUz1H.js"),__vite__mapDeps([26,3,4,12,13,0,1,14,7,5,6,15,16,27,25])),"WorkspaceDetailPage")},{path:"workspaces/:workspaceId/debug",lazy:Y(()=>z(()=>import("./WorkspaceDebugDetailPage-CZtpOiY0.js"),__vite__mapDeps([28,3,4,27,12,13,0,1,14,7,5,6,15,16])),"WorkspaceDebugDetailPage")},{path:"workspaces/:workspaceId/sessions",lazy:Y(()=>z(()=>import("./SessionIndexPage-zVB9jnzP.js"),__vite__mapDeps([29,3,4,12,13,0,1,14,7,5,6,15,16,25,30,31])),"SessionIndexPage")},{path:"workspaces/:workspaceId/sessions/:sessionId",lazy:Y(()=>z(()=>import("./ConversationPage-CDpyEOUA.js"),__vite__mapDeps([32,3,4,7,13,12,0,1,14,5,6,15,16,17,18,19,30,31])),"ConversationPage")},{path:"documents",element:null},{path:"workbench",element:null},{path:"workspaces/:workspaceId/chats",lazy:Y(()=>z(()=>import("./PureConversationPage-CWji-ARJ.js"),__vite__mapDeps([33,3,4,12,13,0,1,14,7,5,6,15,16])),"PureConversationPage")},{path:"workspaces/:workspaceId/chats/new",lazy:Y(()=>z(()=>import("./PureConversationPage-CWji-ARJ.js"),__vite__mapDeps([33,3,4,12,13,0,1,14,7,5,6,15,16])),"PureConversationPage")},{path:"workspaces/:workspaceId/chats/:chatId",lazy:Y(()=>z(()=>import("./PureConversationPage-CWji-ARJ.js"),__vite__mapDeps([33,3,4,12,13,0,1,14,7,5,6,15,16])),"PureConversationPage")},{path:"workspaces/:workspaceId/tools",lazy:Y(()=>z(()=>import("./ToolsHomePage-BBilUc0P.js"),__vite__mapDeps([34,3,4,12,13,0,1,14,7,5,6,15,16])),"ToolsHomePage")},{path:"workspaces/:workspaceId/tools/files",lazy:Y(()=>z(()=>import("./ToolFilesPage-BZseQqvZ.js"),__vite__mapDeps([35,3,4,12,13,0,1,14,7,5,6,15,16])),"ToolFilesPage")},{path:"workspaces/:workspaceId/tools/git",lazy:Y(()=>z(()=>import("./ToolGitPage-SrOO8Ftz.js"),__vite__mapDeps([36,3,4,12,13,0,1,14,7,5,6,15,16])),"ToolGitPage")},{path:"workspaces/:workspaceId/tools/processes",lazy:Y(()=>z(()=>import("./ToolProcessesPage-Dbzlqjdy.js"),__vite__mapDeps([37,3,4,12,13,0,1,14,7,5,6,15,16])),"ToolProcessesPage")},{path:"workspaces/:workspaceId/terminals",lazy:Y(()=>z(()=>import("./WorkbenchLayout-yGxGKcG1.js").then(e=>e.ct),__vite__mapDeps([12,3,4,13,0,1,14,7,5,6,15,16])),"TerminalPage")},{path:"workspaces/:workspaceId/plugins",lazy:Y(()=>z(()=>import("./PluginsListPage-bF1NmA_r.js"),__vite__mapDeps([38,3,4,13,39])),"PluginsListPage")},{path:"workspaces/:workspaceId/plugins/:pluginId",lazy:Y(()=>z(()=>import("./PluginDetailPage-DQQAg_ba.js"),__vite__mapDeps([40,3,4,13,39,41,42])),"PluginDetailPage")},{path:"workspaces/:workspaceId/plugins/:pluginId/run",lazy:Y(()=>z(()=>import("./PluginContainerPage-BfZ3E41c.js"),__vite__mapDeps([43,3,4,13,39,7,15,42])),"PluginContainerPage")},{path:"workspaces/:workspaceId/butler",lazy:Y(()=>z(()=>import("./AdaptiveButlerPage-BHUAx_24.js"),__vite__mapDeps([44,3,4,12,13,0,1,14,7,5,6,15,16,24])),"AdaptiveButlerPage")},{path:"settings",lazy:Y(()=>z(()=>import("./SettingsPage-DeqR2p7d.js"),__vite__mapDeps([45,3,4,12,13,0,1,14,7,5,6,15,16,39,41,42])),"SettingsPage")},{path:"settings/:section",lazy:Y(()=>z(()=>import("./SettingsPage-DeqR2p7d.js"),__vite__mapDeps([45,3,4,12,13,0,1,14,7,5,6,15,16,39,41,42])),"SettingsPage")},{path:"*",element:p.jsx($r,{})}]}]}];function es(){return Ti(Zo)}function ts(){const e=Qe(r=>r.profile.language),t=f.useMemo(()=>es(),[]);return p.jsx(to,{children:p.jsx(po,{children:p.jsx(na,{language:e,children:p.jsx(lo,{children:p.jsxs(ho,{children:[p.jsx(Do,{}),p.jsx(Oi,{router:t})]})})})})})}const gs=Object.freeze(Object.defineProperty({__proto__:null,App:ts},Symbol.toStringTag,{value:"Module"}));export{Er as A,ht as B,ps as C,ms as D,Xt as E,gs as F,oa as L,dn as N,Ei as O,to as P,lo as T,ko as a,Fo as b,as as c,Fi as d,gt as e,ss as f,Gr as g,mt as h,Bi as i,vo as j,So as k,ls as l,cs as m,Ro as n,us as o,ds as p,To as q,Yo as r,fs as s,hs as t,ir as u,Po as v,mo as w,oo as x,is as y,os as z};
|
|
30
|
+
*/function It(){return It=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},It.apply(this,arguments)}function Jt(e){return e===void 0&&(e=""),new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,r)=>{let n=e[r];return t.concat(Array.isArray(n)?n.map(a=>[r,a]):[[r,n]])},[]))}function _i(e,t){let r=Jt(e);return t&&t.forEach((n,a)=>{r.has(a)||t.getAll(a).forEach(i=>{r.append(a,i)})}),r}const Pi="6";try{window.__reactRouterVersion=Pi}catch{}function Ti(e,t){return Va({basename:void 0,future:It({},void 0,{v7_prependBasename:!0}),history:ca({window:void 0}),hydrationData:Ci(),routes:e,mapRouteProperties:Ri,dataStrategy:void 0,patchRoutesOnNavigation:void 0,window:void 0}).initialize()}function Ci(){var e;let t=(e=window)==null?void 0:e.__staticRouterHydrationData;return t&&t.errors&&(t=It({},t,{errors:Di(t.errors)})),t}function Di(e){if(!e)return null;let t=Object.entries(e),r={};for(let[n,a]of t)if(a&&a.__type==="RouteErrorResponse")r[n]=new Nt(a.status,a.statusText,a.data,a.internal===!0);else if(a&&a.__type==="Error"){if(a.__subType){let i=window[a.__subType];if(typeof i=="function")try{let o=new i(a.message);o.stack="",r[n]=o}catch{}}if(r[n]==null){let i=new Error(a.message);i.stack="",r[n]=i}}else r[n]=a;return r}const Li=f.createContext({isTransitioning:!1}),Ni=f.createContext(new Map),ji="startTransition",Ar=Hn[ji],Ii="flushSync",Fr=la[Ii];function Mi(e){Ar?Ar(e):e()}function ot(e){Fr?Fr(e):e()}class Ui{constructor(){this.status="pending",this.promise=new Promise((t,r)=>{this.resolve=n=>{this.status==="pending"&&(this.status="resolved",t(n))},this.reject=n=>{this.status==="pending"&&(this.status="rejected",r(n))}})}}function Oi(e){let{fallbackElement:t,router:r,future:n}=e,[a,i]=f.useState(r.state),[o,l]=f.useState(),[c,d]=f.useState({isTransitioning:!1}),[m,g]=f.useState(),[w,b]=f.useState(),[P,E]=f.useState(),D=f.useRef(new Map),{v7_startTransition:F}=n||{},L=f.useCallback(j=>{F?Mi(j):j()},[F]),G=f.useCallback((j,V)=>{let{deletedFetchers:M,flushSync:ne,viewTransitionOpts:q}=V;j.fetchers.forEach((ae,se)=>{ae.data!==void 0&&D.current.set(se,ae.data)}),M.forEach(ae=>D.current.delete(ae));let oe=r.window==null||r.window.document==null||typeof r.window.document.startViewTransition!="function";if(!q||oe){ne?ot(()=>i(j)):L(()=>i(j));return}if(ne){ot(()=>{w&&(m&&m.resolve(),w.skipTransition()),d({isTransitioning:!0,flushSync:!0,currentLocation:q.currentLocation,nextLocation:q.nextLocation})});let ae=r.window.document.startViewTransition(()=>{ot(()=>i(j))});ae.finished.finally(()=>{ot(()=>{g(void 0),b(void 0),l(void 0),d({isTransitioning:!1})})}),ot(()=>b(ae));return}w?(m&&m.resolve(),w.skipTransition(),E({state:j,currentLocation:q.currentLocation,nextLocation:q.nextLocation})):(l(j),d({isTransitioning:!0,flushSync:!1,currentLocation:q.currentLocation,nextLocation:q.nextLocation}))},[r.window,w,m,D,L]);f.useLayoutEffect(()=>r.subscribe(G),[r,G]),f.useEffect(()=>{c.isTransitioning&&!c.flushSync&&g(new Ui)},[c]),f.useEffect(()=>{if(m&&o&&r.window){let j=o,V=m.promise,M=r.window.document.startViewTransition(async()=>{L(()=>i(j)),await V});M.finished.finally(()=>{g(void 0),b(void 0),l(void 0),d({isTransitioning:!1})}),b(M)}},[L,o,m,r.window]),f.useEffect(()=>{m&&o&&a.location.key===o.location.key&&m.resolve()},[m,w,a.location,o]),f.useEffect(()=>{!c.isTransitioning&&P&&(l(P.state),d({isTransitioning:!0,flushSync:!1,currentLocation:P.currentLocation,nextLocation:P.nextLocation}),E(void 0))},[c.isTransitioning,P]),f.useEffect(()=>{},[]);let ee=f.useMemo(()=>({createHref:r.createHref,encodeLocation:r.encodeLocation,go:j=>r.navigate(j),push:(j,V,M)=>r.navigate(j,{state:V,preventScrollReset:M==null?void 0:M.preventScrollReset}),replace:(j,V,M)=>r.navigate(j,{replace:!0,state:V,preventScrollReset:M==null?void 0:M.preventScrollReset})}),[r]),K=r.basename||"/",me=f.useMemo(()=>({router:r,navigator:ee,static:!1,basename:K}),[r,ee,K]),v=f.useMemo(()=>({v7_relativeSplatPath:r.future.v7_relativeSplatPath}),[r.future.v7_relativeSplatPath]);return f.useEffect(()=>xi(n,r.future),[n,r.future]),f.createElement(f.Fragment,null,f.createElement(Ut.Provider,{value:me},f.createElement(an.Provider,{value:a},f.createElement(Ni.Provider,{value:D.current},f.createElement(Li.Provider,{value:c},f.createElement(Si,{basename:K,location:a.location,navigationType:a.historyAction,navigator:ee,future:v},a.initialized||r.future.v7_partialHydration?f.createElement(ki,{routes:r.routes,future:r.future,state:a}):t))))),null)}const ki=f.memo(Ai);function Ai(e){let{routes:t,future:r,state:n}=e;return ci(t,void 0,n,r)}var Vr;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(Vr||(Vr={}));var Br;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(Br||(Br={}));function Fi(e){let t=f.useRef(Jt(e)),r=f.useRef(!1),n=mt(),a=f.useMemo(()=>_i(n.search,r.current?null:t.current),[n.search]),i=ir(),o=f.useCallback((l,c)=>{const d=Jt(typeof l=="function"?l(a):l);r.current=!0,i("?"+d,c)},[i,a]);return[a,o]}let Ht=null;function st(){return be().bridge}function Vi(){return{runtime:{isAvailable(){return st().supported},getPlatformInfo(){return st().getPlatformInfo()}},fs:{openFile(e){return st().openLocalFile(e)},revealInFileManager(e){return st().revealInFileManager(e)},pickDirectory(){return st().pickDirectory()}}}}function Bi(){return Ht||(Ht=Vi()),Ht}function zi(){if(typeof window>"u"||window.self!==window.top)return;const e=Bi();window.__CODINGNS_DESKTOP_BRIDGE_INSTALLED__=!0,Object.defineProperty(window,"CodingNSDesktop",{configurable:!0,writable:!1,value:e})}const Hi="desktop://window-lifecycle",Wi=new Set(["button","checkbox","color","file","hidden","image","radio","range","reset","submit"]);function $i(e){return e instanceof HTMLInputElement?!Wi.has(e.type.toLowerCase()):!1}function Ki(e){const t=e.activeElement;if($i(t)||t instanceof HTMLTextAreaElement){const r=t.selectionStart??0,n=t.selectionEnd??r;return n<=r?null:t.value.slice(r,n)}return null}function Yi(e){const t=Ki(e);if(t!==null)return t;const r=e.getSelection();if(!r||r.isCollapsed)return null;const n=r.toString();return n.length>0?n:null}function Gi(e,t){var a;const r=(a=e.execCommand)==null?void 0:a.bind(e);if(typeof r!="function")return!1;const n=e.createElement("textarea");n.value=t,n.setAttribute("readonly","true"),n.style.position="fixed",n.style.top="-9999px",n.style.opacity="0",e.body.append(n),n.select();try{return r("copy")}catch{return!1}finally{n.remove()}}async function Ji(e,t,r){var a,i;try{if(await r(t))return}catch{}const n=(a=e.defaultView)==null?void 0:a.navigator;if((i=n==null?void 0:n.clipboard)!=null&&i.writeText)try{await n.clipboard.writeText(t);return}catch{}Gi(e,t)}function qi(e){const{window:t,document:r,writeClipboardText:n}=e;function a(i){if(i.defaultPrevented||!i.metaKey||i.ctrlKey||i.altKey||i.key.toLowerCase()!=="c")return;const o=Yi(r);o&&(i.preventDefault(),Ji(r,o,n))}return t.addEventListener("keydown",a,!0),()=>{t.removeEventListener("keydown",a,!0)}}const fn=f.createContext(null),Xi=["--desktop-macos-traffic-light-center-y","--desktop-macos-traffic-light-leading-inset","--desktop-macos-traffic-light-safe-zone-width","--desktop-macos-titlebar-height","--desktop-macos-traffic-light-button-diameter"];function Qi(e){if(typeof document>"u")return;const{documentElement:t,body:r}=document;t.dataset.runtimePlatform=e.platform,t.dataset.osFamily=e.ui.osFamily,t.dataset.windowControls=e.ui.windowControlsStyle,t.dataset.viewportClass=e.viewportClass,t.dataset.overlayTitlebar=String(e.ui.prefersOverlayTitlebar),r&&(r.dataset.runtimePlatform=e.platform,r.dataset.osFamily=e.ui.osFamily,r.dataset.windowControls=e.ui.windowControlsStyle,r.dataset.viewportClass=e.viewportClass,r.dataset.overlayTitlebar=String(e.ui.prefersOverlayTitlebar))}function qt(){var e;if(!(typeof document>"u"))for(const t of Xi)document.documentElement.style.removeProperty(t),(e=document.body)==null||e.style.removeProperty(t)}function Zi(e){if(typeof document>"u")return;if(!e){qt();return}const t=[document.documentElement,document.body].filter(n=>!!n),r=[["--desktop-macos-traffic-light-center-y",`${e.trafficLightCenterY}px`],["--desktop-macos-traffic-light-leading-inset",`${e.trafficLightLeadingInset}px`],["--desktop-macos-traffic-light-safe-zone-width",`${e.trafficLightSafeZoneWidth}px`],["--desktop-macos-titlebar-height",`${e.titlebarHeight}px`],["--desktop-macos-traffic-light-button-diameter",`${e.trafficLightButtonDiameter}px`]];for(const n of t)for(const[a,i]of r)n.style.setProperty(a,i)}function eo(){if(!(typeof window>"u"))return window.innerWidth}function to({children:e}){const[t,r]=f.useState(()=>eo()),n=f.useMemo(()=>be({viewportWidth:t}),[t]);return f.useEffect(()=>{zi()},[]),f.useEffect(()=>{if(typeof window>"u")return;function a(){r(window.innerWidth)}return a(),window.addEventListener("resize",a),()=>{window.removeEventListener("resize",a)}},[]),f.useEffect(()=>{Qi(n)},[n]),f.useEffect(()=>{if(!(typeof window>"u"||typeof document>"u")&&!(!n.isDesktop||n.ui.osFamily!=="macos"||!n.bridge.supported))return qi({window,document,writeClipboardText:async a=>(await n.bridge.writeClipboardText(a)).ok})},[n]),f.useEffect(()=>()=>{qt()},[]),f.useEffect(()=>{let a=!1,i=null;return!n.isDesktop||!n.bridge.supported?()=>{a=!0}:(z(()=>import("./event-DvH9tcej.js").then(o=>o.c),[]).then(async({listen:o})=>{const l=await o(Hi,c=>{const d=c.payload,m=d==null?void 0:d.descriptor;m!=null&&m.windowId&&(n.windows.registerDescriptor(m),d.isOpen?n.windows.markWindowOpen(m.windowId):n.windows.markWindowClosed(m.windowId))});if(a){l();return}i=l}).catch(()=>{}),()=>{a=!0,i==null||i()})},[n]),f.useEffect(()=>{let a=!1,i=null;async function o(){var c,d;const l=await n.bridge.getRuntimeInfo();a||Zi(l.ok?(d=(c=l.value)==null?void 0:c.windowChrome)==null?void 0:d.macosTitlebar:null)}return!n.isDesktop||n.ui.osFamily!=="macos"||!n.ui.prefersOverlayTitlebar?(qt(),()=>{a=!0}):(o(),z(()=>import("./window-BVUB8gMK.js").then(l=>l.w),__vite__mapDeps([0,1])).then(async({getCurrentWindow:l})=>{const c=await l().onScaleChanged(()=>{o()});if(a){c();return}i=c}).catch(()=>{}),()=>{a=!0,i==null||i()})},[n]),p.jsx(fn.Provider,{value:n,children:e})}function gt(){return f.useContext(fn)??be()}const is=[{id:"light",labelKey:"theme.light",color:"#f6f4ef"},{id:"dark",labelKey:"theme.dark",color:"#1b1b1b"},{id:"sky-blue",labelKey:"theme.skyBlue",color:"#00f0ff"},{id:"eye-green",labelKey:"theme.eyeGreen",color:"#16a34a"}];function os(e){return le(e.labelKey)}function ro(){return typeof window>"u"||typeof window.matchMedia!="function"?"light":window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function hn(e,t){return t?ro():e}function no(){const{theme:e,autoTheme:t}=Wn.getState().profile;return hn(e,t)}function ao(e){Qt({theme:e,autoTheme:!1}).catch(()=>{})}function io(e){Qt({autoTheme:e}).catch(()=>{})}function pn(e){typeof window>"u"||document.documentElement.setAttribute("data-theme",e)}function oo(){const e=Qe(n=>n.profile.theme),t=Qe(n=>n.profile.autoTheme);return{theme:hn(e,t),selectedTheme:e,autoTheme:t,setTheme:ao,setAutoTheme:io}}function so(){pn(no())}function lo({children:e}){const t=Qe(n=>n.profile.theme),r=Qe(n=>n.profile.autoTheme);return f.useEffect(()=>{so()},[t,r]),f.useEffect(()=>{if(!r||typeof window>"u"||typeof window.matchMedia!="function")return;const n=window.matchMedia("(prefers-color-scheme: dark)"),a=()=>{pn(n.matches?"dark":"light")};return a(),typeof n.addEventListener=="function"?(n.addEventListener("change",a),()=>n.removeEventListener("change",a)):(n.addListener(a),()=>n.removeListener(a))},[r]),p.jsx(p.Fragment,{children:e})}const co={showToast:()=>"",dismissToast:()=>{}},mn=f.createContext(co);function uo(){return`toast-${Math.random().toString(36).slice(2,10)}`}function fo({toast:e,onDismiss:t}){const{id:r,title:n,description:a,tone:i,durationMs:o,action:l}=e;return f.useEffect(()=>{if(o===null)return;const c=window.setTimeout(()=>{t(r)},o);return()=>{window.clearTimeout(c)}},[o,r,t,n,a,i]),p.jsxs("article",{className:"toast-card","data-tone":i,role:i==="error"?"alert":"status",children:[p.jsxs("div",{className:"toast-body",children:[p.jsx("strong",{className:"toast-title",children:n}),a?p.jsx("p",{className:"toast-description",children:a}):null]}),p.jsxs("div",{className:"toast-actions",children:[l?p.jsx("button",{className:"toast-action",type:"button",onClick:()=>{l.onClick(),t(r)},children:l.label}):null,p.jsx("button",{className:"toast-dismiss",type:"button","aria-label":"关闭通知",onClick:()=>t(r),children:"×"})]})]})}function ho({children:e}){const[t,r]=f.useState([]),n=f.useCallback(o=>{r(l=>l.filter(c=>c.id!==o))},[]),a=f.useCallback(o=>{const l=o.id??uo(),c={id:l,title:o.title,description:o.description,tone:o.tone??"info",durationMs:o.durationMs===void 0?4200:o.durationMs,action:o.action};return r(d=>{const m=d.findIndex(w=>w.id===l);if(m===-1)return[...d,c];const g=[...d];return g[m]=c,g}),l},[]),i=f.useMemo(()=>({showToast:a,dismissToast:n}),[n,a]);return p.jsxs(mn.Provider,{value:i,children:[e,p.jsx("div",{className:"toast-viewport","aria-live":"polite","aria-atomic":"false",children:t.map(o=>p.jsx(fo,{toast:o,onDismiss:n},o.id))})]})}function ss(){return f.useContext(mn)}const Ct="1.0.0-beta.3",gn=f.createContext(Ct);function po({children:e}){const t=gt(),[r,n]=f.useState(Ct);return f.useEffect(()=>{let a=!1;return t.isDesktop?(t.bridge.getRuntimeInfo().then(i=>{var l,c;if(a)return;const o=i.ok?(c=(l=i.value)==null?void 0:l.version)==null?void 0:c.trim():"";n(o||Ct)}),()=>{a=!0}):(n(Ct),()=>{a=!0})},[t]),p.jsx(gn.Provider,{value:r,children:e})}function mo(){return f.useContext(gn)}const zr={latestState:null,lastNotifiedVersion:null,pendingRestartVersion:null};class go{constructor(){_e(this,"state",zr);_e(this,"listeners",new Set);_e(this,"subscribe",t=>(this.listeners.add(t),()=>{this.listeners.delete(t)}));_e(this,"getState",()=>this.state)}recordState(t){const r=Wt(this.state.pendingRestartVersion),n=Wt(t.currentVersion);this.state={latestState:t,lastNotifiedVersion:t.hasUpdate?this.state.lastNotifiedVersion:null,pendingRestartVersion:r&&r===n?null:this.state.pendingRestartVersion},this.emit()}markVersionNotified(t){this.state.lastNotifiedVersion!==t&&(this.state={...this.state,lastNotifiedVersion:t},this.emit())}markRestartPending(t){const r=Wt(t);!r||this.state.pendingRestartVersion===r||(this.state={...this.state,pendingRestartVersion:r},this.emit())}reset(){this.state=zr,this.emit()}emit(){for(const t of this.listeners)t()}}const Ze=new go;function Wt(e){const t=e==null?void 0:e.trim();return t||null}function vo(e){return f.useSyncExternalStore(Ze.subscribe,()=>e(Ze.getState()))}function yo(){return Ze.getState()}function wo(e){Ze.recordState(e)}function bo(e){Ze.markVersionNotified(e)}function xo(e){Ze.markRestartPending(e)}async function Eo(){const e=be(),t=he.getState(),r=await e.bridge.checkForUpdate(t.releaseChannel);if(!r.ok||!r.value)throw new Error(r.detail??"更新检查失败。");return r.value}async function So(e={}){const t=e.notify??"never",r=await Eo();return wo(r),await vn(r,t),r}async function vn(e,t){await _o(e,t)}async function Ro(){const e=be(),t=he.getState();return e.bridge.downloadUpdate(t.releaseChannel)}async function ls(){const e=be(),t=he.getState();return e.bridge.installUpdate(t.releaseChannel)}function cs(e){xo(e)}async function us(){var e;if(typeof window>"u"||typeof((e=window.__TAURI_INTERNALS__)==null?void 0:e.invoke)!="function")throw new Error("当前运行环境不支持桌面应用重启。");try{await window.__TAURI_INTERNALS__.invoke("restart_application")}catch(t){throw new Error(t instanceof Error?t.message:"重启应用失败。")}}async function _o(e,t){var i,o,l;if(!e.hasUpdate||t==="never")return;const r=((o=(i=e.manifest)==null?void 0:i.version)==null?void 0:o.trim())||e.currentVersion.trim();if(!r)return;const n=yo().lastNotifiedVersion;if(t==="always"||n!==r)try{(await be().bridge.showNotification(le("settings.releaseUpdateReady"),((l=e.manifest)==null?void 0:l.version)??e.currentVersion)).ok&&bo(r)}catch{}}async function ds(){return(await Mt.request("/api/client/host-version")).version}async function Po(){const e=he.getState();return Mt.request(`/api/client/service-update?channel=${encodeURIComponent(e.releaseChannel)}`)}async function fs(e){const t=he.getState();return Mt.request("/api/client/service-update/install",{method:"POST",body:JSON.stringify({packageName:e,channel:t.releaseChannel})})}async function hs(e){return Mt.request(`/api/client/service-update/tasks/${encodeURIComponent(e)}`)}async function To(e={}){const[t,r]=await Promise.allSettled([Po(),So(e)]);return{servicePackage:t.status==="fulfilled"?t.value.packages[0]??null:null,serviceError:t.status==="rejected"?Hr(t.reason):null,clientState:r.status==="fulfilled"?r.value:null,clientError:r.status==="rejected"?Hr(r.reason):null}}function Hr(e){return e instanceof Error&&e.message.trim()?e.message:"检查更新失败"}const Co=3600*1e3;function Do(){const e=He(i=>i.platform),t=He(i=>i.autoCheckUpdate),r=He(i=>i.autoDownloadUpdate),n=He(i=>i.releaseChannel),a=vo(i=>i.pendingRestartVersion);return f.useEffect(()=>{if(e!=="desktop"||!t||a)return;async function i(){await Lo(r)}i();const o=window.setInterval(()=>{i()},Co);return()=>{window.clearInterval(o)}},[t,r,a,e,n]),null}async function Lo(e){try{const t=await To({notify:"never"}),r=t.servicePackage,n=t.clientState,a=!!(r!=null&&r.hasUpdate&&!r.restartRequired),i=!!(n!=null&&n.hasUpdate&&n.manifest);if(e&&(n!=null&&n.hasUpdate)&&n.manifest){const o=await Ro();if(!o.ok)return;await be().bridge.showNotification(le("settings.releaseDownloadedNotificationTitle"),le("settings.releaseDownloadedNotificationBody",{version:o.version??n.manifest.version}));return}if(a&&i){await be().bridge.showNotification(le("settings.softwareUpdate"),le("settings.updateBothReady"));return}if(a){await be().bridge.showNotification(le("settings.serverUpdateReady"),`${le("settings.serverTargetVersion")}: ${(r==null?void 0:r.latestVersion)??"-"}`);return}i&&n&&await vn(n,"if-new")}catch{}}const yn="codingns.server.base-url.history",or=6,wn="__custom__";function bn(){return typeof window<"u"&&typeof window.localStorage<"u"}function xn(){return typeof window>"u"||!window.location.origin?null:window.location.origin}function sr(e){if(!e)return null;try{return Kr(e)}catch{return null}}function En(){if(!bn())return[];const e=window.localStorage.getItem(yn);if(!e)return[];try{const t=JSON.parse(e);return Array.isArray(t)?t.map(r=>typeof r=="string"?sr(r):null).filter(r=>!!r):[]}catch{return[]}}function No(e){const t=new Set,r=[];for(const n of e)!n||t.has(n)||(t.add(n),r.push(n));return r}function jo(e){const t=new Set,r=[];for(const n of e)!n||t.has(n.value)||(t.add(n.value),r.push(n));return r}function Io(e,t){const r=En();return No([e,...t,...r,sr(xn())]).slice(0,or)}function Mo(e){const t=Dt(e),r=En().map(l=>({value:l,source:"history"})),n=sr(xn()),a=e.hosts.map(l=>({value:l.baseUrl,source:"saved"})),i=Kn(e).map(l=>({value:l.baseUrl,source:"discovered"})),o=t?{value:t.baseUrl,source:Yr(t)?"discovered":"saved"}:null;return jo([o,...a,...i,...r,n?{value:n,source:"origin"}:null]).slice(0,or)}function Uo(e){bn()&&window.localStorage.setItem(yn,JSON.stringify(e.slice(0,or)))}class Oo{constructor(){_e(this,"state",this.createState(he.getState()));_e(this,"listeners",new Set);_e(this,"subscribe",t=>(this.listeners.add(t),()=>{this.listeners.delete(t)}));_e(this,"getState",()=>this.state);he.subscribe(()=>{const t=this.createState(he.getState());t.baseUrl===this.state.baseUrl&&t.options.length===this.state.options.length&&t.options.every((r,n)=>r===this.state.options[n])&&t.presetOptions.length===this.state.presetOptions.length&&t.presetOptions.every((r,n)=>{const a=this.state.presetOptions[n];return(a==null?void 0:a.value)===r.value&&(a==null?void 0:a.source)===r.source})||(this.state=t,this.emit())})}setBaseUrl(t){const r=he.getState(),n=Dt(r);if(!n)return!1;const a=Kr(t),i=a!==n.baseUrl,o=Ao(a,n);if(Yr(n))return he.updateRuntime({discoveredHosts:r.discoveredHosts.map(c=>c.id===n.id?{...c,baseUrl:a,name:new URL(a).host,relayTunnel:o,updatedAt:new Date().toISOString()}:c)}),this.state=this.createState(he.getState()),this.emit(),i;const l=r.hosts.map(c=>c.id===n.id?{...c,baseUrl:a,name:new URL(a).host,relayTunnel:o,updatedAt:new Date().toISOString()}:c);return this.state=this.createState({...r,hosts:l}),this.emit(),he.update({hosts:l}),i}reset(){this.state=this.createState(he.getState()),this.emit()}createState(t){const r=Dt(t),n=(r==null?void 0:r.baseUrl)??"",a=Mo(t),i=Io(n,a.map(o=>o.value));return Uo(i),{baseUrl:n,options:i,presetOptions:a}}emit(){for(const t of this.listeners)t()}}const Xt=new Oo;function ko(e){return f.useSyncExternalStore(Xt.subscribe,()=>e(Xt.getState()))}function ps(e,t){return t.includes(e)?e:wn}function ms(){return wn}function Ao(e,t){const r=$n(e);if(!r)return null;const n=t==null?void 0:t.relayTunnel,a=(n==null?void 0:n.provider)==="codingns_relay"&&n.tunnelDomain===r.tunnelDomain&&n.controlBaseUrl===r.controlBaseUrl,i=((n==null?void 0:n.candidateEndpoints)??[]).filter(o=>o.kind!=="relay");return{provider:"codingns_relay",enabled:!0,tunnelDomain:r.tunnelDomain,controlBaseUrl:r.controlBaseUrl,bindingId:a?(n==null?void 0:n.bindingId)??null:null,hostFingerprint:a?(n==null?void 0:n.hostFingerprint)??null:null,candidateEndpoints:[{endpointId:`relay-entry:${r.relayBaseUrl}`,kind:"relay",url:r.relayBaseUrl,priority:0,expiresAt:null,source:"user_saved"},...i]}}const Fo={login(e,t){return _t.login(e,t)},bootstrap(e,t,r){return _t.bootstrap(e,t,r)},refresh(){return _t.refresh()},logout(){_t.clear()}},Vo=f.lazy(async()=>({default:(await z(()=>import("./ServerSettingsModal-BJwYHdKD.js"),__vite__mapDeps([2,3,4,5,6,7]))).ServerSettingsModal})),Wr="width=device-width, initial-scale=1.0, viewport-fit=cover",Bo="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover";function zo(){const e=f.useRef(null);return f.useEffect(()=>{const t=e.current;if(!t)return;const r=t.getContext("2d");if(!r)return;let n;const a=()=>{o(),l()};let i=[];const o=()=>{t.width=window.innerWidth,t.height=window.innerHeight},l=()=>{i=[];const d=Math.min(50,Math.floor(t.width*t.height/25e3));for(let m=0;m<d;m++)i.push({x:Math.random()*t.width,y:Math.random()*t.height,vx:(Math.random()-.5)*.5,vy:(Math.random()-.5)*.5,size:Math.random()*2+1,opacity:Math.random()*.5+.2})},c=()=>{r.clearRect(0,0,t.width,t.height),i.forEach((d,m)=>{d.x+=d.vx,d.y+=d.vy,d.x<0&&(d.x=t.width),d.x>t.width&&(d.x=0),d.y<0&&(d.y=t.height),d.y>t.height&&(d.y=0),r.beginPath(),r.arc(d.x,d.y,d.size,0,Math.PI*2),r.fillStyle=`rgba(10, 132, 255, ${d.opacity})`,r.fill(),i.slice(m+1).forEach(g=>{const w=d.x-g.x,b=d.y-g.y,P=Math.sqrt(w*w+b*b);P<150&&(r.beginPath(),r.moveTo(d.x,d.y),r.lineTo(g.x,g.y),r.strokeStyle=`rgba(10, 132, 255, ${.1*(1-P/150)})`,r.stroke())})}),n=requestAnimationFrame(c)};return o(),l(),c(),window.addEventListener("resize",a),()=>{window.removeEventListener("resize",a),cancelAnimationFrame(n)}},[]),p.jsx("canvas",{ref:e,className:"particle-canvas"})}function Ho({text:e}){return p.jsx("span",{className:"glitch-text","data-text":e,children:e})}function Wo({text:e}){const[t,r]=f.useState(""),[n,a]=f.useState(!0);return f.useEffect(()=>{let i=0,o=null;const l=setInterval(()=>{i<=e.length?(r(e.slice(0,i)),i++):(clearInterval(l),o=window.setTimeout(()=>a(!1),1e3))},50);return()=>{clearInterval(l),o!==null&&window.clearTimeout(o)}},[e]),p.jsxs("span",{className:"typewriter-text",children:[t,n&&p.jsx("span",{className:"typewriter-cursor",children:"_"})]})}function $o(e){const t=e==null?void 0:e.captcha;if(typeof t!="object"||t===null)return null;const r=t.captchaId,n=t.imageDataUrl;return typeof r!="string"||typeof n!="string"?null:{captchaId:r,imageDataUrl:n}}function Ko(){const e=ir(),t=Yn(),[r]=Fi(),n=gt(),a=mo(),i=He(k=>Gn(k)),o=Jn(n.platform),l=f.useMemo(()=>qn(n),[n]),c=f.useMemo(()=>l?Xn(i):{credentials:null,legacyServerBaseUrl:null},[i,l]),d=c.credentials,m=c.legacyServerBaseUrl,[g,w]=f.useState(()=>(d==null?void 0:d.username)??"admin"),[b,P]=f.useState(()=>(d==null?void 0:d.password)??""),[E,D]=f.useState(null),[F,L]=f.useState(""),[G,ee]=f.useState(()=>!!d),K=ko(k=>k.baseUrl),[me,v]=f.useState(K),[j,V]=f.useState(null),[M,ne]=f.useState(!1),[q,oe]=f.useState(!1),[ae,se]=f.useState(null),[Ke,Ye]=f.useState(!1),Z=$t(k=>k.session),Te=f.useMemo(()=>r.get("returnTo")??"/",[r]),{theme:Ce}=oo(),xe=f.useRef(!1),ue=n.isNativeMobile,De=f.useMemo(()=>Ce==="light"?"light":"dark",[Ce]);f.useEffect(()=>{w((d==null?void 0:d.username)??"admin"),P((d==null?void 0:d.password)??""),D(null),L(""),ee(!!d)},[d]),f.useEffect(()=>{if(typeof document>"u")return;const k=document.querySelector('meta[name="viewport"]');if(!(k instanceof HTMLMetaElement))return;const fe=k.getAttribute("content")??Wr;return ue?k.setAttribute("content",Bo):k.setAttribute("content",Wr),()=>{k.setAttribute("content",fe)}},[ue]),f.useEffect(()=>{xe.current||(xe.current=!0,!(!l||!m||m===K)&&(Xt.setBaseUrl(m),v(m)))},[K,l,m]),f.useEffect(()=>{if(Z){e(Te,{replace:!0});return}if(!me)return;let k=!1;const fe=window.setTimeout(()=>{z(async()=>{const{probeHost:W}=await import("./index-BArTKWXk.js").then(ye=>ye.ae);return{probeHost:W}},__vite__mapDeps([3,4])).then(({probeHost:W})=>W(me)).then(W=>{k||(W.demoMode&&(Ye(!0),Qn()&&V(t("auth.demoSessionExpired"))),W.reachable&&!W.initialized&&e("/bootstrap",{replace:!0}))}).catch(()=>{k||V(t("auth.authUnavailable"))})},0);return()=>{k=!0,window.clearTimeout(fe)}},[Z,e,me,Te,t]);async function Oe(k){k.preventDefault(),ne(!0),V(null),v(K),l&&!G&&i&&Zn(i);try{const fe=E?{username:g,password:b,captchaId:E.captchaId,captchaCode:F}:{username:g,password:b};await Fo.login(fe,K),D(null),L("");const{userPreferenceStore:W}=await z(async()=>{const{userPreferenceStore:ye}=await import("./index-BArTKWXk.js").then(yt=>yt.ad);return{userPreferenceStore:ye}},__vite__mapDeps([3,4]));await W.refreshForAuthenticatedUser(),l&&G&&i&&ea({hostId:i,username:g,password:b}),e(Te,{replace:!0})}catch(fe){if(fe instanceof ta){if(fe.errorCode==="BOOTSTRAP_REQUIRED"){e("/bootstrap",{replace:!0});return}const W=$o(fe.data);W?(D(W),L("")):fe.errorCode==="INVALID_CREDENTIALS"&&(D(null),L("")),V(fe.message)}else V(t("auth.authUnavailable"))}finally{ne(!1)}}function de(k){w(k),d!=null&&d.username&&k.trim()!==d.username&&(P(""),ee(!1)),E&&(D(null),L(""))}function Ee(k){v(k),V(null)}const ve="login-username",ke="login-password",vt="login-captcha";return p.jsxs("main",{className:"cyber-login-page","data-theme":De,"data-native-mobile":ue?"true":"false",children:[p.jsxs("div",{className:"cyber-bg",children:[p.jsx("div",{className:"cyber-grid"}),p.jsx("div",{className:"cyber-glow cyber-glow-1"}),p.jsx("div",{className:"cyber-glow cyber-glow-2"}),p.jsx(zo,{})]}),p.jsx("div",{className:"scanlines"}),p.jsxs("div",{className:"cyber-login-container",children:[p.jsx("div",{className:"cyber-login-toolbar",children:p.jsx(oa,{variant:"compact"})}),p.jsxs("div",{className:"cyber-login-content",children:[p.jsxs("div",{className:"cyber-brand",children:[p.jsx("div",{className:"cyber-logo",children:p.jsx("img",{src:"/logo.png",alt:"CodingNS",className:"cyber-logo-svg"})}),p.jsx("h1",{className:"cyber-brand-title",children:p.jsx(Ho,{text:"CodingNS"})}),p.jsx("p",{className:"cyber-brand-subtitle",children:p.jsx(Wo,{text:t("auth.loginSubtitle")})})]}),p.jsxs("div",{className:"cyber-card",children:[p.jsx("div",{className:"cyber-corner corner-tl"}),p.jsx("div",{className:"cyber-corner corner-tr"}),p.jsx("div",{className:"cyber-corner corner-bl"}),p.jsx("div",{className:"cyber-corner corner-br"}),p.jsxs("div",{className:"cyber-card-header",children:[p.jsx("div",{className:"cyber-line"}),p.jsx("span",{className:"cyber-card-label",children:t("auth.loginTitle").toUpperCase()}),p.jsx("div",{className:"cyber-line"})]}),Ke?p.jsxs("div",{className:"cyber-demo-banner",children:[p.jsx("span",{className:"cyber-demo-icon",children:"⚠"}),p.jsx("span",{children:t("auth.demoBanner")})]}):null,p.jsxs("form",{className:"cyber-form",onSubmit:Oe,children:[p.jsxs("div",{className:`cyber-field ${ae==="username"?"focused":""}`,children:[p.jsx("div",{className:"cyber-field-border",children:p.jsx("div",{className:"cyber-field-border-glow"})}),p.jsxs("label",{className:"cyber-field-label",htmlFor:ve,children:[p.jsx("span",{className:"cyber-field-icon",children:"❯"}),t("auth.username")]}),p.jsx("input",{id:ve,"aria-label":t("auth.username"),className:"cyber-input",value:g,onChange:k=>de(k.target.value),onFocus:()=>se("username"),onBlur:()=>se(null),autoComplete:"username"})]}),p.jsxs("div",{className:`cyber-field ${ae==="password"?"focused":""}`,children:[p.jsx("div",{className:"cyber-field-border",children:p.jsx("div",{className:"cyber-field-border-glow"})}),p.jsxs("label",{className:"cyber-field-label",htmlFor:ke,children:[p.jsx("span",{className:"cyber-field-icon",children:"⚷"}),t("auth.password")]}),p.jsx("input",{id:ke,"aria-label":t("auth.password"),className:"cyber-input",type:"password",value:b,onChange:k=>P(k.target.value),onFocus:()=>se("password"),onBlur:()=>se(null),autoComplete:"current-password"})]}),E?p.jsxs("div",{className:"cyber-captcha-panel",children:[p.jsx("img",{alt:t("auth.captchaImageAlt"),className:"cyber-captcha-image",draggable:!1,src:E.imageDataUrl}),p.jsx("p",{className:"cyber-captcha-hint",children:t("auth.captchaHint")}),p.jsxs("div",{className:`cyber-field ${ae==="captcha"?"focused":""}`,children:[p.jsx("div",{className:"cyber-field-border",children:p.jsx("div",{className:"cyber-field-border-glow"})}),p.jsxs("label",{className:"cyber-field-label",htmlFor:vt,children:[p.jsx("span",{className:"cyber-field-icon",children:"#"}),t("auth.captcha")]}),p.jsx("input",{id:vt,"aria-label":t("auth.captcha"),className:"cyber-input",placeholder:t("auth.captchaPlaceholder"),value:F,onChange:k=>L(k.target.value),onFocus:()=>se("captcha"),onBlur:()=>se(null),autoComplete:"one-time-code"})]})]}):null,l?p.jsxs("label",{className:"cyber-remember-toggle",children:[p.jsx("input",{"aria-label":t("auth.rememberPassword"),type:"checkbox",checked:G,onChange:k=>ee(k.target.checked)}),p.jsx("span",{children:t("auth.rememberPassword")})]}):null,j?p.jsxs("div",{className:"cyber-status","data-tone":"error",children:[p.jsx("span",{className:"cyber-status-icon",children:"⚠"}),p.jsx("span",{children:j})]}):null,p.jsxs("button",{className:`cyber-submit ${M?"loading":""}`,type:"submit",disabled:M,children:[p.jsx("span",{className:"cyber-submit-glow"}),p.jsx("span",{className:"cyber-submit-border"}),p.jsx("span",{className:"cyber-submit-text",children:M?p.jsxs(p.Fragment,{children:[p.jsx("span",{className:"cyber-spinner"}),t("common.loading")]}):p.jsxs(p.Fragment,{children:[p.jsx("span",{className:"cyber-submit-icon",children:"➤"}),t("auth.submitLogin")]})})]})]}),o?p.jsxs("div",{className:"cyber-footer",children:[p.jsxs("div",{className:"cyber-divider",children:[p.jsx("span",{className:"cyber-divider-line"}),p.jsx("span",{className:"cyber-divider-text",children:"//"}),p.jsx("span",{className:"cyber-divider-line"})]}),p.jsxs("button",{className:"cyber-server-btn",onClick:()=>oe(!0),type:"button",children:[p.jsx("span",{className:"cyber-server-icon",children:"⚙"}),p.jsx("span",{className:"cyber-server-text",children:t("auth.serverSettings")}),p.jsx("span",{className:"cyber-server-current",children:K})]})]}):null]})]}),p.jsxs("div",{className:"cyber-version",children:[p.jsxs("span",{className:"cyber-version-text",children:["v",a]}),p.jsx("span",{className:"cyber-version-divider",children:"|"}),p.jsx("span",{className:"cyber-version-text",children:"SYSTEM READY"})]})]}),o&&q?p.jsx(f.Suspense,{fallback:null,children:p.jsx(Vo,{isOpen:q,onClose:()=>oe(!1),onSave:Ee})}):null]})}function Sn(){return p.jsx("main",{className:"page-center app-shell",children:p.jsxs("section",{className:"auth-card surface-card",children:[p.jsx("h1",{children:le("auth.trustedEntryOnlyTitle")}),p.jsx("p",{className:"status-text",children:le("auth.trustedEntryOnlyDescription")}),p.jsxs("div",{className:"field-group",children:[p.jsx("span",{children:le("auth.trustedEntryOnlyHintTitle")}),p.jsx("span",{className:"auth-server-value",children:le("auth.trustedEntryOnlyHint")})]})]})})}function Yo({isDesktop:e,viewportClass:t}){return e||t==="expanded"?"desktop":"mobile"}function Go(){return!1}function Rn(e,t,r=Go()){var i,o;if(!r||t!=="web")return!1;const n=Dt(e),a=n==null?void 0:n.relayTunnel;return!(a!=null&&a.enabled&&((i=a.tunnelDomain)!=null&&i.trim())&&((o=a.controlBaseUrl)!=null&&o.trim()))}function Jo({runtimeKey:e,children:t}){return p.jsx("div",{children:t},e)}function qo(){const e=ra();return p.jsx(Jo,{runtimeKey:e,children:p.jsx(Ei,{})})}function Xo(){const e=He(i=>i),t=gt(),r=$t(i=>i.session),n=$t(i=>i.sessionReady),a=mt();if(Rn(e,t.platform))return p.jsx(Sn,{});if(!r){const i=`${a.pathname}${a.search}`;return p.jsx(dn,{to:`/login?returnTo=${encodeURIComponent(i)}`,replace:!0})}return n?p.jsx(qo,{}):p.jsx("div",{children:le("common.loading")})}function Qo(){const e=He(r=>r),t=gt();return Rn(e,t.platform)?p.jsx(Sn,{}):p.jsx(Ko,{})}function $r(){const e=gt(),t=Yo(e);return p.jsx(dn,{to:t==="mobile"?"/workspaces":"/landing",replace:!0})}function Y(e,t){return async()=>({Component:(await e())[t]})}const Zo=[{path:"/bootstrap",lazy:Y(()=>z(()=>import("./BootstrapPage-3xpnsG-A.js"),__vite__mapDeps([8,3,4])),"BootstrapPage")},{path:"/login",element:p.jsx(Qo,{})},{path:"/connect/:tunnelDomain",lazy:Y(()=>z(()=>import("./RelayConnectEntryPage-cAVq_kNM.js"),__vite__mapDeps([9,3,4,5])),"RelayConnectEntryPage")},{path:"/desktop-window-preview",lazy:Y(()=>z(()=>import("./DesktopDetachPreviewPage-B77MG82y.js"),__vite__mapDeps([10,3,4])),"DesktopDetachPreviewPage")},{path:"/",element:p.jsx(Xo,{}),children:[{path:"desktop-window/:windowId",lazy:Y(()=>z(()=>import("./DesktopWindowPage-DbG-RBAf.js"),__vite__mapDeps([11,3,4,12,13,0,1,14,7,5,6,15,16,17,18,19])),"DesktopWindowPage")},{lazy:Y(()=>z(()=>import("./WorkbenchShellRoute-p1FvkoPN.js"),__vite__mapDeps([20,3,4,12,13,0,1,14,7,5,6,15,16,21])),"WorkbenchShellRoute"),children:[{index:!0,element:p.jsx($r,{})},{path:"landing",lazy:Y(()=>z(()=>import("./WorkbenchLandingPage-B4aooEYJ.js"),__vite__mapDeps([22,3,4,12,13,0,1,14,7,5,6,15,16])),"WorkbenchLandingPage")},{path:"workspaces",lazy:Y(()=>z(()=>import("./WorkspaceHomePage-DPPvwM93.js"),__vite__mapDeps([23,3,4,12,13,0,1,14,7,5,6,15,16,24,25])),"WorkspaceHomePage")},{path:"workspaces/:workspaceId",lazy:Y(()=>z(()=>import("./WorkspaceDetailPage-YM85dTGg.js"),__vite__mapDeps([26,3,4,12,13,0,1,14,7,5,6,15,16,27,25])),"WorkspaceDetailPage")},{path:"workspaces/:workspaceId/debug",lazy:Y(()=>z(()=>import("./WorkspaceDebugDetailPage-CPgAe8dd.js"),__vite__mapDeps([28,3,4,27,12,13,0,1,14,7,5,6,15,16])),"WorkspaceDebugDetailPage")},{path:"workspaces/:workspaceId/sessions",lazy:Y(()=>z(()=>import("./SessionIndexPage-CJKRHB_F.js"),__vite__mapDeps([29,3,4,12,13,0,1,14,7,5,6,15,16,25,30,31])),"SessionIndexPage")},{path:"workspaces/:workspaceId/sessions/:sessionId",lazy:Y(()=>z(()=>import("./ConversationPage-C5_ZqhU3.js"),__vite__mapDeps([32,3,4,7,13,12,0,1,14,5,6,15,16,17,18,19,30,31])),"ConversationPage")},{path:"documents",element:null},{path:"workbench",element:null},{path:"workspaces/:workspaceId/chats",lazy:Y(()=>z(()=>import("./PureConversationPage-CcakFvo0.js"),__vite__mapDeps([33,3,4,12,13,0,1,14,7,5,6,15,16])),"PureConversationPage")},{path:"workspaces/:workspaceId/chats/new",lazy:Y(()=>z(()=>import("./PureConversationPage-CcakFvo0.js"),__vite__mapDeps([33,3,4,12,13,0,1,14,7,5,6,15,16])),"PureConversationPage")},{path:"workspaces/:workspaceId/chats/:chatId",lazy:Y(()=>z(()=>import("./PureConversationPage-CcakFvo0.js"),__vite__mapDeps([33,3,4,12,13,0,1,14,7,5,6,15,16])),"PureConversationPage")},{path:"workspaces/:workspaceId/tools",lazy:Y(()=>z(()=>import("./ToolsHomePage-DDGqYwYU.js"),__vite__mapDeps([34,3,4,12,13,0,1,14,7,5,6,15,16])),"ToolsHomePage")},{path:"workspaces/:workspaceId/tools/files",lazy:Y(()=>z(()=>import("./ToolFilesPage-BAZdjNaF.js"),__vite__mapDeps([35,3,4,12,13,0,1,14,7,5,6,15,16])),"ToolFilesPage")},{path:"workspaces/:workspaceId/tools/git",lazy:Y(()=>z(()=>import("./ToolGitPage-CGkPmgsz.js"),__vite__mapDeps([36,3,4,12,13,0,1,14,7,5,6,15,16])),"ToolGitPage")},{path:"workspaces/:workspaceId/tools/processes",lazy:Y(()=>z(()=>import("./ToolProcessesPage-BHpS7-VH.js"),__vite__mapDeps([37,3,4,12,13,0,1,14,7,5,6,15,16])),"ToolProcessesPage")},{path:"workspaces/:workspaceId/terminals",lazy:Y(()=>z(()=>import("./WorkbenchLayout-DrAvGjGK.js").then(e=>e.ct),__vite__mapDeps([12,3,4,13,0,1,14,7,5,6,15,16])),"TerminalPage")},{path:"workspaces/:workspaceId/plugins",lazy:Y(()=>z(()=>import("./PluginsListPage-R0SibHMi.js"),__vite__mapDeps([38,3,4,13,39])),"PluginsListPage")},{path:"workspaces/:workspaceId/plugins/:pluginId",lazy:Y(()=>z(()=>import("./PluginDetailPage-BX7gohai.js"),__vite__mapDeps([40,3,4,13,39,41,42])),"PluginDetailPage")},{path:"workspaces/:workspaceId/plugins/:pluginId/run",lazy:Y(()=>z(()=>import("./PluginContainerPage-b9LQVuqG.js"),__vite__mapDeps([43,3,4,13,39,7,15,42])),"PluginContainerPage")},{path:"workspaces/:workspaceId/butler",lazy:Y(()=>z(()=>import("./AdaptiveButlerPage-CLHLiZSY.js"),__vite__mapDeps([44,3,4,12,13,0,1,14,7,5,6,15,16,24])),"AdaptiveButlerPage")},{path:"settings",lazy:Y(()=>z(()=>import("./SettingsPage-Csp7wEBC.js"),__vite__mapDeps([45,3,4,12,13,0,1,14,7,5,6,15,16,39,41,42])),"SettingsPage")},{path:"settings/:section",lazy:Y(()=>z(()=>import("./SettingsPage-Csp7wEBC.js"),__vite__mapDeps([45,3,4,12,13,0,1,14,7,5,6,15,16,39,41,42])),"SettingsPage")},{path:"*",element:p.jsx($r,{})}]}]}];function es(){return Ti(Zo)}function ts(){const e=Qe(r=>r.profile.language),t=f.useMemo(()=>es(),[]);return p.jsx(to,{children:p.jsx(po,{children:p.jsx(na,{language:e,children:p.jsx(lo,{children:p.jsxs(ho,{children:[p.jsx(Do,{}),p.jsx(Oi,{router:t})]})})})})})}const gs=Object.freeze(Object.defineProperty({__proto__:null,App:ts},Symbol.toStringTag,{value:"Module"}));export{Er as A,ht as B,ps as C,ms as D,Xt as E,gs as F,oa as L,dn as N,Ei as O,to as P,lo as T,ko as a,Fo as b,as as c,Fi as d,gt as e,ss as f,Gr as g,mt as h,Bi as i,vo as j,So as k,ls as l,cs as m,Ro as n,us as o,ds as p,To as q,Yo as r,fs as s,hs as t,ir as u,Po as v,mo as w,oo as x,is as y,os as z};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as t,j as s,t as e,B as v}from"./index-
|
|
1
|
+
import{b as t,j as s,t as e,B as v}from"./index-BArTKWXk.js";import{u as S,a as w,b as N}from"./App-FYuZfAoO.js";function T(){const h=S(),m=w(a=>a.baseUrl),[l,x]=t.useState("admin"),[n,f]=t.useState(""),[u,j]=t.useState(""),[i,r]=t.useState(null),[b,o]=t.useState("error"),[c,d]=t.useState(!1);async function g(a){if(a.preventDefault(),n!==u){o("error"),r(e("auth.bootstrapMismatch"));return}d(!0),r(null);try{await N.bootstrap(l,n),o("success"),r(e("auth.bootstrapSuccess")),window.setTimeout(()=>h("/login",{replace:!0}),500)}catch(p){o("error"),p instanceof v?r(p.message):r(e("auth.authUnavailable"))}finally{d(!1)}}return s.jsx("main",{className:"page-center app-shell",children:s.jsxs("section",{className:"auth-card surface-card",children:[s.jsx("h1",{children:e("auth.bootstrapTitle")}),s.jsx("p",{className:"status-text",children:e("auth.bootstrapSubtitle")}),s.jsxs("div",{className:"field-group",children:[s.jsx("span",{children:e("auth.serverCurrent")}),s.jsx("span",{className:"auth-server-value",children:m})]}),s.jsxs("form",{className:"auth-form",onSubmit:g,children:[s.jsxs("label",{className:"field-group",children:[s.jsx("span",{children:e("auth.username")}),s.jsx("input",{value:l,onChange:a=>x(a.target.value)})]}),s.jsxs("label",{className:"field-group",children:[s.jsx("span",{children:e("auth.password")}),s.jsx("input",{type:"password",value:n,onChange:a=>f(a.target.value)})]}),s.jsxs("label",{className:"field-group",children:[s.jsx("span",{children:e("auth.confirmPassword")}),s.jsx("input",{type:"password",value:u,onChange:a=>j(a.target.value)})]}),i?s.jsx("p",{className:"status-text","data-tone":b,children:i}):null,s.jsx("button",{className:"primary-button",type:"submit",disabled:c,children:c?e("common.loading"):e("auth.submitBootstrap")})]})]})})}export{T as BootstrapPage};
|