@jingyi0605/codingns 0.6.1 → 0.6.5
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/bin/codingns.mjs +225 -0
- package/dist/public/assets/AdaptiveButlerPage-CfsUVZKl.js +3 -0
- package/dist/public/assets/{App-Dsf3ooXU.js → App-B9HcTkMT.js} +3 -3
- package/dist/public/assets/{BootstrapPage-CE0m1qSR.js → BootstrapPage-BgLdZEKQ.js} +1 -1
- package/dist/public/assets/ConversationPage-Cj8go7L0.js +4 -0
- package/dist/public/assets/{DesktopDetachPreviewPage-Dxarr_Wf.js → DesktopDetachPreviewPage-YCBnyC58.js} +1 -1
- package/dist/public/assets/{DesktopWindowPage-VytPwJ4c.js → DesktopWindowPage-CrvndE23.js} +1 -1
- package/dist/public/assets/{FileContextPanel-DwFzLsOp.js → FileContextPanel-CdC7GGw5.js} +1 -1
- package/dist/public/assets/{GitSidebar-CH6WqTrM.js → GitSidebar-z2SBinQh.js} +1 -1
- package/dist/public/assets/{MobileCreateSessionSheet-DcxKM00P.js → MobileCreateSessionSheet-Cb2HM-y3.js} +1 -1
- package/dist/public/assets/{MobileTopHeaderFrame-C5rIKQT6.js → MobileTopHeaderFrame-etF2HKlm.js} +1 -1
- package/dist/public/assets/{MobileWorkspaceSwitcherHeader-CfUnHgv_.js → MobileWorkspaceSwitcherHeader-CuGJ31kb.js} +1 -1
- package/dist/public/assets/{RelayConnectEntryPage-CgMvVZwa.js → RelayConnectEntryPage-BB6DbGtP.js} +1 -1
- package/dist/public/assets/{ServerSettingsModal-CFul__z1.js → ServerSettingsModal-Bl1sacZg.js} +1 -1
- package/dist/public/assets/{SessionIndexPage-B-tRhBXC.js → SessionIndexPage-NbF9gJnp.js} +1 -1
- package/dist/public/assets/SettingsPage-DGsmQpLv.js +1 -0
- package/dist/public/assets/{TerminalManagerPanel-BbORd-ee.js → TerminalManagerPanel-BOm8Hi_v.js} +1 -1
- package/dist/public/assets/{TerminalPage-DWHv6mlu.js → TerminalPage-B5JNFU6w.js} +19 -19
- package/dist/public/assets/{TerminalRuntimeFallbackModal-B29YxbQe.js → TerminalRuntimeFallbackModal-CM3LRKOJ.js} +1 -1
- package/dist/public/assets/{ToolFilesPage-Dx9cv9hu.js → ToolFilesPage-GSqKQsj_.js} +1 -1
- package/dist/public/assets/{ToolGitPage-D7H3vAia.js → ToolGitPage-BVFWMMQp.js} +1 -1
- package/dist/public/assets/{ToolProcessesPage-PqQWxsy-.js → ToolProcessesPage-DZ456fYz.js} +1 -1
- package/dist/public/assets/{ToolsHomePage-CX05Pe_4.js → ToolsHomePage-DsJp0y8A.js} +1 -1
- package/dist/public/assets/{WorkbenchLandingPage-CchkAC75.js → WorkbenchLandingPage-DyPei0e-.js} +1 -1
- package/dist/public/assets/WorkbenchLayout-DlbgBT3n.js +4 -0
- package/dist/public/assets/WorkbenchModal-LNfB69qx.js +1 -0
- package/dist/public/assets/WorkbenchShellRoute-BsxumYx5.js +1 -0
- package/dist/public/assets/{WorkbenchShellRoute-RGZpA0_J.css → WorkbenchShellRoute-DhQo_0vu.css} +1 -1
- package/dist/public/assets/{WorkspaceDebugDetailPage-Deqy2_pO.js → WorkspaceDebugDetailPage-CaXj5zVI.js} +1 -1
- package/dist/public/assets/{WorkspaceDetailPage-Cvf-ZdlB.js → WorkspaceDetailPage-DOexuuaw.js} +1 -1
- package/dist/public/assets/{WorkspaceHomePage-Dsyvqyk1.js → WorkspaceHomePage-DkCHNjKD.js} +1 -1
- package/dist/public/assets/{client-runtime-manager-DROQJ9v3.js → client-runtime-manager-6OoYHXGd.js} +1 -1
- package/dist/public/assets/{file-tree-icon-Bp3Ntt7u.js → file-tree-icon-9pt1OStn.js} +1 -1
- package/dist/public/assets/index-BwlbvwaA.css +1 -0
- package/dist/public/assets/index-DSw-TkQL.js +42 -0
- package/dist/public/assets/{login-direct-candidate-resolver-DotM530R.js → login-direct-candidate-resolver-CLlYtBRq.js} +1 -1
- package/dist/public/assets/model-switch-api-C-l8-E1S.js +1 -0
- package/dist/public/assets/{preferences-service-BG6GKG29.js → preferences-service-BCcfYP_d.js} +1 -1
- package/dist/public/assets/{relay-entry-pmr-c42O.js → relay-entry-BmLkMKuq.js} +1 -1
- package/dist/public/assets/session-runtime-machine-DgtvREca.js +21 -0
- package/dist/public/assets/{terminal-runtime-meta-8_uRZf7h.js → terminal-runtime-meta-0h-75uRy.js} +1 -1
- package/dist/public/assets/{useRegisteredDebugTemplates-DWX7LXQu.js → useRegisteredDebugTemplates-rBVmAqh3.js} +1 -1
- package/dist/public/index.html +2 -2
- package/dist/server/modules/assistant-capability/assistant-capability-service.d.ts +4 -1
- package/dist/server/modules/assistant-capability/assistant-capability-service.js +12 -1
- package/dist/server/modules/assistant-capability/assistant-capability-service.js.map +1 -1
- package/dist/server/modules/butler/butler-control-session-service.d.ts +4 -1
- package/dist/server/modules/butler/butler-control-session-service.js +17 -1
- package/dist/server/modules/butler/butler-control-session-service.js.map +1 -1
- package/dist/server/modules/butler/butler-profile-service.d.ts +3 -1
- package/dist/server/modules/butler/butler-profile-service.js +16 -4
- package/dist/server/modules/butler/butler-profile-service.js.map +1 -1
- package/dist/server/modules/opencli/opencli-bridge-skill-service.d.ts +12 -0
- package/dist/server/modules/opencli/opencli-bridge-skill-service.js +124 -0
- package/dist/server/modules/opencli/opencli-bridge-skill-service.js.map +1 -0
- package/dist/server/modules/opencli/opencli-catalog-service.d.ts +50 -0
- package/dist/server/modules/opencli/opencli-catalog-service.js +345 -0
- package/dist/server/modules/opencli/opencli-catalog-service.js.map +1 -0
- package/dist/server/modules/opencli/opencli-controller.d.ts +13 -0
- package/dist/server/modules/opencli/opencli-controller.js +30 -0
- package/dist/server/modules/opencli/opencli-controller.js.map +1 -0
- package/dist/server/modules/opencli/opencli-health-service.d.ts +28 -0
- package/dist/server/modules/opencli/opencli-health-service.js +106 -0
- package/dist/server/modules/opencli/opencli-health-service.js.map +1 -0
- package/dist/server/modules/opencli/opencli-install-discovery.d.ts +23 -0
- package/dist/server/modules/opencli/opencli-install-discovery.js +130 -0
- package/dist/server/modules/opencli/opencli-install-discovery.js.map +1 -0
- package/dist/server/modules/opencli/opencli-management-service.d.ts +59 -0
- package/dist/server/modules/opencli/opencli-management-service.js +152 -0
- package/dist/server/modules/opencli/opencli-management-service.js.map +1 -0
- package/dist/server/modules/opencli/opencli-runtime-builder.d.ts +11 -0
- package/dist/server/modules/opencli/opencli-runtime-builder.js +214 -0
- package/dist/server/modules/opencli/opencli-runtime-builder.js.map +1 -0
- package/dist/server/modules/opencli/opencli-runtime-layout.d.ts +3 -0
- package/dist/server/modules/opencli/opencli-runtime-layout.js +11 -0
- package/dist/server/modules/opencli/opencli-runtime-layout.js.map +1 -0
- package/dist/server/modules/opencli/opencli-runtime-profile-service.d.ts +29 -0
- package/dist/server/modules/opencli/opencli-runtime-profile-service.js +104 -0
- package/dist/server/modules/opencli/opencli-runtime-profile-service.js.map +1 -0
- package/dist/server/modules/opencli/opencli-runtime-resolver.d.ts +29 -0
- package/dist/server/modules/opencli/opencli-runtime-resolver.js +110 -0
- package/dist/server/modules/opencli/opencli-runtime-resolver.js.map +1 -0
- package/dist/server/modules/opencli/opencli-session-prompt-service.d.ts +11 -0
- package/dist/server/modules/opencli/opencli-session-prompt-service.js +66 -0
- package/dist/server/modules/opencli/opencli-session-prompt-service.js.map +1 -0
- package/dist/server/modules/provider/provider-catalog-service.d.ts +46 -0
- package/dist/server/modules/provider/provider-catalog-service.js +249 -0
- package/dist/server/modules/provider/provider-catalog-service.js.map +1 -0
- package/dist/server/modules/provider/provider-controller.d.ts +15 -2
- package/dist/server/modules/provider/provider-controller.js +44 -6
- package/dist/server/modules/provider/provider-controller.js.map +1 -1
- package/dist/server/modules/provider/provider-disabled.d.ts +8 -0
- package/dist/server/modules/provider/provider-disabled.js +45 -0
- package/dist/server/modules/provider/provider-disabled.js.map +1 -0
- package/dist/server/modules/provider/provider-discovery-helper-client.d.ts +1 -0
- package/dist/server/modules/provider/provider-discovery-helper-client.js.map +1 -1
- package/dist/server/modules/provider/provider-discovery-helper-process.js +3 -3
- package/dist/server/modules/provider/provider-discovery-helper-process.js.map +1 -1
- package/dist/server/modules/provider/provider-discovery-runtime.d.ts +1 -1
- package/dist/server/modules/provider/provider-discovery-runtime.js +12 -8
- package/dist/server/modules/provider/provider-discovery-runtime.js.map +1 -1
- package/dist/server/modules/sessions/claude-compatible-provider-registry.d.ts +16 -0
- package/dist/server/modules/sessions/claude-compatible-provider-registry.js +91 -0
- package/dist/server/modules/sessions/claude-compatible-provider-registry.js.map +1 -0
- package/dist/server/modules/sessions/session-history-service.d.ts +7 -1
- package/dist/server/modules/sessions/session-history-service.js +49 -16
- package/dist/server/modules/sessions/session-history-service.js.map +1 -1
- package/dist/server/modules/sessions/session-live-runtime-router-service.js +9 -4
- package/dist/server/modules/sessions/session-live-runtime-router-service.js.map +1 -1
- package/dist/server/modules/sessions/session-live-runtime-service.d.ts +8 -4
- package/dist/server/modules/sessions/session-live-runtime-service.js +100 -87
- package/dist/server/modules/sessions/session-live-runtime-service.js.map +1 -1
- package/dist/server/modules/sessions/session-permission-request-service.d.ts +5 -2
- package/dist/server/modules/sessions/session-permission-request-service.js +26 -27
- package/dist/server/modules/sessions/session-permission-request-service.js.map +1 -1
- package/dist/server/modules/sessions/session-provider-config-service.d.ts +17 -1
- package/dist/server/modules/sessions/session-provider-config-service.js +121 -17
- package/dist/server/modules/sessions/session-provider-config-service.js.map +1 -1
- package/dist/server/modules/skills/skill-manager-service.d.ts +5 -0
- package/dist/server/modules/skills/skill-manager-service.js +26 -0
- package/dist/server/modules/skills/skill-manager-service.js.map +1 -1
- package/dist/server/modules/tasks/task-helper-process-handlers.d.ts +1 -0
- package/dist/server/modules/tasks/task-helper-process-handlers.js +1 -1
- package/dist/server/modules/tasks/task-helper-process-handlers.js.map +1 -1
- package/dist/server/routes/opencli.d.ts +3 -0
- package/dist/server/routes/opencli.js +7 -0
- package/dist/server/routes/opencli.js.map +1 -0
- package/dist/server/routes/providers.js +4 -2
- package/dist/server/routes/providers.js.map +1 -1
- package/dist/server/server/create-server.d.ts +8 -0
- package/dist/server/server/create-server.js +44 -11
- package/dist/server/server/create-server.js.map +1 -1
- package/dist/server/storage/repositories/opencli-catalog-entry-repository.d.ts +9 -0
- package/dist/server/storage/repositories/opencli-catalog-entry-repository.js +85 -0
- package/dist/server/storage/repositories/opencli-catalog-entry-repository.js.map +1 -0
- package/dist/server/storage/repositories/opencli-provider-repository.d.ts +8 -0
- package/dist/server/storage/repositories/opencli-provider-repository.js +88 -0
- package/dist/server/storage/repositories/opencli-provider-repository.js.map +1 -0
- package/dist/server/storage/repositories/opencli-runtime-profile-repository.d.ts +11 -0
- package/dist/server/storage/repositories/opencli-runtime-profile-repository.js +127 -0
- package/dist/server/storage/repositories/opencli-runtime-profile-repository.js.map +1 -0
- package/dist/server/storage/repositories/provider-control-repository.d.ts +9 -0
- package/dist/server/storage/repositories/provider-control-repository.js +51 -0
- package/dist/server/storage/repositories/provider-control-repository.js.map +1 -0
- package/dist/server/storage/sqlite/client.js +53 -0
- package/dist/server/storage/sqlite/client.js.map +1 -1
- package/dist/server/storage/sqlite/schema.sql +66 -0
- package/dist/server/types/domain.d.ts +50 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/legna-runtime.d.ts +5 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/legna-runtime.js +1 -1
- package/node_modules/@codingns/session-sync-core/dist/runtime/legna-runtime.js.map +1 -1
- package/package.json +1 -1
- package/dist/public/assets/AdaptiveButlerPage-Dw72U3hG.js +0 -3
- package/dist/public/assets/ConversationPage-8wOY7SX-.js +0 -4
- package/dist/public/assets/SettingsPage-C9LGxSQZ.js +0 -1
- package/dist/public/assets/WorkbenchLayout-pOZvEqp7.js +0 -3
- package/dist/public/assets/WorkbenchModal-ColqvV6a.js +0 -1
- package/dist/public/assets/WorkbenchShellRoute-C0_h4lP6.js +0 -1
- package/dist/public/assets/index-B84Po2NA.css +0 -1
- package/dist/public/assets/index-C-0oeG_5.js +0 -42
- package/dist/public/assets/model-switch-api-Bh9nYslz.js +0 -1
- package/dist/public/assets/session-runtime-machine-YN84QBlr.js +0 -21
|
@@ -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 In=Object.defineProperty;var Un=(e,t,r)=>t in e?In(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var Se=(e,t,r)=>Un(e,typeof t!="symbol"?t+"":t,r);import{u as qe,j as m,t as Re,a as Gt,g as On,r as An,b as h,R as kn,c as ct,_ as Y,d as Fn,e as ye,f as Xe,h as Ct,n as zr,i as Br,k as Vn,l as zn,m as Rt,o as Bn,p as Hn,q as Wn,s as $n,v as Kn,w as Hr,x as Yn,y as Gn,z as Jn,A as Xn,B as qn,I as Qn}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-Bl1sacZg.js","assets/index-DSw-TkQL.js","assets/index-BwlbvwaA.css","assets/relay-entry-BmLkMKuq.js","assets/WorkbenchModal-LNfB69qx.js","assets/BootstrapPage-BgLdZEKQ.js","assets/RelayConnectEntryPage-BB6DbGtP.js","assets/DesktopDetachPreviewPage-YCBnyC58.js","assets/DesktopWindowPage-CrvndE23.js","assets/model-switch-api-C-l8-E1S.js","assets/FileContextPanel-CdC7GGw5.js","assets/WorkbenchLayout-DlbgBT3n.js","assets/file-tree-icon-9pt1OStn.js","assets/GitSidebar-z2SBinQh.js","assets/TerminalManagerPanel-BOm8Hi_v.js","assets/terminal-runtime-meta-0h-75uRy.js","assets/TerminalRuntimeFallbackModal-CM3LRKOJ.js","assets/TerminalPage-B5JNFU6w.js","assets/MobileWorkspaceSwitcherHeader-CuGJ31kb.js","assets/MobileTopHeaderFrame-etF2HKlm.js","assets/TerminalPage-6GBZ9nXN.css","assets/WorkbenchShellRoute-BsxumYx5.js","assets/WorkbenchShellRoute-DhQo_0vu.css","assets/WorkbenchLandingPage-DyPei0e-.js","assets/WorkspaceHomePage-DkCHNjKD.js","assets/butler-records-events-DgWCG364.js","assets/MobileCreateSessionSheet-Cb2HM-y3.js","assets/WorkspaceDetailPage-DOexuuaw.js","assets/useRegisteredDebugTemplates-rBVmAqh3.js","assets/WorkspaceDebugDetailPage-CaXj5zVI.js","assets/SessionIndexPage-NbF9gJnp.js","assets/styles-DRVvx_kv.js","assets/styles-CsEMfdaS.css","assets/ConversationPage-Cj8go7L0.js","assets/session-runtime-machine-DgtvREca.js","assets/ToolsHomePage-DsJp0y8A.js","assets/ToolFilesPage-GSqKQsj_.js","assets/ToolGitPage-BVFWMMQp.js","assets/ToolProcessesPage-DZ456fYz.js","assets/AdaptiveButlerPage-CfsUVZKl.js","assets/AdaptiveButlerPage-B153lk5H.css","assets/SettingsPage-DGsmQpLv.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
var In=Object.defineProperty;var Un=(e,t,r)=>t in e?In(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var Se=(e,t,r)=>Un(e,typeof t!="symbol"?t+"":t,r);import{u as qe,j as m,t as Re,a as Gt,g as On,r as An,b as h,R as kn,c as ct,_ as Y,d as Fn,e as ye,f as Xe,h as Ct,n as zr,i as Br,k as Vn,l as zn,m as Rt,o as Bn,p as Hn,q as Wn,s as $n,v as Kn,w as Hr,x as Yn,y as Gn,z as Jn,A as Xn,B as qn,I as Qn}from"./index-DSw-TkQL.js";function Zn(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 ea=[{id:"zh-CN",labelKey:"locale.zhCN"},{id:"en-US",labelKey:"locale.enUS"}];function ta({variant:e="default",className:t}){const r=qe(a=>a.profile.language);function n(a){a!==r&&Gt({language:a}).catch(()=>{})}return m.jsxs("label",{className:`language-switcher language-switcher-${e}${t?` ${t}`:""}`,children:[m.jsx("span",{className:"language-switcher-label",children:Re("common.language")}),m.jsx("div",{className:"language-switcher-options",role:"group","aria-label":Re("common.language"),children:ea.map(a=>m.jsx("button",{type:"button",className:`language-switcher-option${r===a.id?" active":""}`,"aria-pressed":r===a.id,onClick:()=>n(a.id),children:Re(a.labelKey)},a.id))})]})}var Wr=An();const ra=On(Wr),na=Zn({__proto__:null,default:ra},[Wr]);/**
|
|
3
3
|
* @remix-run/router v1.23.2
|
|
4
4
|
*
|
|
5
5
|
* Copyright (c) Remix Software Inc.
|
|
@@ -27,4 +27,4 @@ var In=Object.defineProperty;var Un=(e,t,r)=>t in e?In(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 Nt(){return Nt=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},Nt.apply(this,arguments)}function $t(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 wi(e,t){let r=$t(e);return t&&t.forEach((n,a)=>{r.has(a)||t.getAll(a).forEach(i=>{r.append(a,i)})}),r}const xi="6";try{window.__reactRouterVersion=xi}catch{}function Ei(e,t){return Ua({basename:void 0,future:Nt({},void 0,{v7_prependBasename:!0}),history:aa({window:void 0}),hydrationData:Si(),routes:e,mapRouteProperties:bi,dataStrategy:void 0,patchRoutesOnNavigation:void 0,window:void 0}).initialize()}function Si(){var e;let t=(e=window)==null?void 0:e.__staticRouterHydrationData;return t&&t.errors&&(t=Nt({},t,{errors:Ri(t.errors)})),t}function Ri(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 Lt(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 Pi=h.createContext({isTransitioning:!1}),Ti=h.createContext(new Map),_i="startTransition",Ir=kn[_i],Ci="flushSync",Ur=na[Ci];function Di(e){Ir?Ir(e):e()}function it(e){Ur?Ur(e):e()}class Li{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 ji(e){let{fallbackElement:t,router:r,future:n}=e,[a,i]=h.useState(r.state),[o,c]=h.useState(),[l,d]=h.useState({isTransitioning:!1}),[p,v]=h.useState(),[b,w]=h.useState(),[T,E]=h.useState(),D=h.useRef(new Map),{v7_startTransition:k}=n||{},L=h.useCallback(N=>{k?Di(N):N()},[k]),K=h.useCallback((N,F)=>{let{deletedFetchers:I,flushSync:re,viewTransitionOpts:J}=F;N.fetchers.forEach((ae,se)=>{ae.data!==void 0&&D.current.set(se,ae.data)}),I.forEach(ae=>D.current.delete(ae));let oe=r.window==null||r.window.document==null||typeof r.window.document.startViewTransition!="function";if(!J||oe){re?it(()=>i(N)):L(()=>i(N));return}if(re){it(()=>{b&&(p&&p.resolve(),b.skipTransition()),d({isTransitioning:!0,flushSync:!0,currentLocation:J.currentLocation,nextLocation:J.nextLocation})});let ae=r.window.document.startViewTransition(()=>{it(()=>i(N))});ae.finished.finally(()=>{it(()=>{v(void 0),w(void 0),c(void 0),d({isTransitioning:!1})})}),it(()=>w(ae));return}b?(p&&p.resolve(),b.skipTransition(),E({state:N,currentLocation:J.currentLocation,nextLocation:J.nextLocation})):(c(N),d({isTransitioning:!0,flushSync:!1,currentLocation:J.currentLocation,nextLocation:J.nextLocation}))},[r.window,b,p,D,L]);h.useLayoutEffect(()=>r.subscribe(K),[r,K]),h.useEffect(()=>{l.isTransitioning&&!l.flushSync&&v(new Li)},[l]),h.useEffect(()=>{if(p&&o&&r.window){let N=o,F=p.promise,I=r.window.document.startViewTransition(async()=>{L(()=>i(N)),await F});I.finished.finally(()=>{v(void 0),w(void 0),c(void 0),d({isTransitioning:!1})}),w(I)}},[L,o,p,r.window]),h.useEffect(()=>{p&&o&&a.location.key===o.location.key&&p.resolve()},[p,b,a.location,o]),h.useEffect(()=>{!l.isTransitioning&&T&&(c(T.state),d({isTransitioning:!0,flushSync:!1,currentLocation:T.currentLocation,nextLocation:T.nextLocation}),E(void 0))},[l.isTransitioning,T]),h.useEffect(()=>{},[]);let te=h.useMemo(()=>({createHref:r.createHref,encodeLocation:r.encodeLocation,go:N=>r.navigate(N),push:(N,F,I)=>r.navigate(N,{state:F,preventScrollReset:I==null?void 0:I.preventScrollReset}),replace:(N,F,I)=>r.navigate(N,{replace:!0,state:F,preventScrollReset:I==null?void 0:I.preventScrollReset})}),[r]),$=r.basename||"/",he=h.useMemo(()=>({router:r,navigator:te,static:!1,basename:$}),[r,te,$]),g=h.useMemo(()=>({v7_relativeSplatPath:r.future.v7_relativeSplatPath}),[r.future.v7_relativeSplatPath]);return h.useEffect(()=>vi(n,r.future),[n,r.future]),h.createElement(h.Fragment,null,h.createElement(Mt.Provider,{value:he},h.createElement(en.Provider,{value:a},h.createElement(Ti.Provider,{value:D.current},h.createElement(Pi.Provider,{value:l},h.createElement(yi,{basename:$,location:a.location,navigationType:a.historyAction,navigator:te,future:g},a.initialized||r.future.v7_partialHydration?h.createElement(Ni,{routes:r.routes,future:r.future,state:a}):t))))),null)}const Ni=h.memo(Mi);function Mi(e){let{routes:t,future:r,state:n}=e;return ai(t,void 0,n,r)}var Or;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(Or||(Or={}));var Ar;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(Ar||(Ar={}));function Ii(e){let t=h.useRef($t(e)),r=h.useRef(!1),n=mt(),a=h.useMemo(()=>wi(n.search,r.current?null:t.current),[n.search]),i=tr(),o=h.useCallback((c,l)=>{const d=$t(typeof c=="function"?c(a):c);r.current=!0,i("?"+d,l)},[i,a]);return[a,o]}const Ui="desktop://window-lifecycle",Oi=new Set(["button","checkbox","color","file","hidden","image","radio","range","reset","submit"]);function Ai(e){return e instanceof HTMLInputElement?!Oi.has(e.type.toLowerCase()):!1}function ki(e){const t=e.activeElement;if(Ai(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 Fi(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 Vi(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 zi(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{}Vi(e,t)}function Bi(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=Fi(r);o&&(i.preventDefault(),zi(r,o,n))}return t.addEventListener("keydown",a,!0),()=>{t.removeEventListener("keydown",a,!0)}}const ln=h.createContext(null),Hi=["--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 Wi(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 Kt(){var e;if(!(typeof document>"u"))for(const t of Hi)document.documentElement.style.removeProperty(t),(e=document.body)==null||e.style.removeProperty(t)}function $i(e){if(typeof document>"u")return;if(!e){Kt();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 Ki(){if(!(typeof window>"u"))return window.innerWidth}function Yi({children:e}){const[t,r]=h.useState(()=>Ki()),n=h.useMemo(()=>ct({viewportWidth:t}),[t]);return h.useEffect(()=>{if(typeof window>"u")return;function a(){r(window.innerWidth)}return a(),window.addEventListener("resize",a),()=>{window.removeEventListener("resize",a)}},[]),h.useEffect(()=>{Wi(n)},[n]),h.useEffect(()=>{if(!(typeof window>"u"||typeof document>"u")&&!(!n.isDesktop||n.ui.osFamily!=="macos"||!n.bridge.supported))return Bi({window,document,writeClipboardText:async a=>(await n.bridge.writeClipboardText(a)).ok})},[n]),h.useEffect(()=>()=>{Kt()},[]),h.useEffect(()=>{let a=!1,i=null;return!n.isDesktop||!n.bridge.supported?()=>{a=!0}:(Y(()=>import("./event-DvH9tcej.js").then(o=>o.c),[]).then(async({listen:o})=>{const c=await o(Ui,l=>{const d=l.payload,p=d==null?void 0:d.descriptor;p!=null&&p.windowId&&(n.windows.registerDescriptor(p),d.isOpen?n.windows.markWindowOpen(p.windowId):n.windows.markWindowClosed(p.windowId))});if(a){c();return}i=c}).catch(()=>{}),()=>{a=!0,i==null||i()})},[n]),h.useEffect(()=>{let a=!1,i=null;async function o(){var l,d;const c=await n.bridge.getRuntimeInfo();a||$i(c.ok?(d=(l=c.value)==null?void 0:l.windowChrome)==null?void 0:d.macosTitlebar:null)}return!n.isDesktop||n.ui.osFamily!=="macos"||!n.ui.prefersOverlayTitlebar?(Kt(),()=>{a=!0}):(o(),Y(()=>import("./window-BVUB8gMK.js").then(c=>c.w),__vite__mapDeps([0,1])).then(async({getCurrentWindow:c})=>{const l=await c().onScaleChanged(()=>{o()});if(a){l();return}i=l}).catch(()=>{}),()=>{a=!0,i==null||i()})},[n]),m.jsx(ln.Provider,{value:n,children:e})}function pt(){return h.useContext(ln)??ct()}const Yo=[{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 Go(e){return Re(e.labelKey)}function Gi(){return typeof window>"u"||typeof window.matchMedia!="function"?"light":window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function cn(e,t){return t?Gi():e}function Ji(){const{theme:e,autoTheme:t}=Fn.getState().profile;return cn(e,t)}function Xi(e){Gt({theme:e,autoTheme:!1}).catch(()=>{})}function qi(e){Gt({autoTheme:e}).catch(()=>{})}function un(e){typeof window>"u"||document.documentElement.setAttribute("data-theme",e)}function Qi(){const e=qe(n=>n.profile.theme),t=qe(n=>n.profile.autoTheme);return{theme:cn(e,t),selectedTheme:e,autoTheme:t,setTheme:Xi,setAutoTheme:qi}}function Zi(){un(Ji())}function eo({children:e}){const t=qe(n=>n.profile.theme),r=qe(n=>n.profile.autoTheme);return h.useEffect(()=>{Zi()},[t,r]),h.useEffect(()=>{if(!r||typeof window>"u"||typeof window.matchMedia!="function")return;const n=window.matchMedia("(prefers-color-scheme: dark)"),a=()=>{un(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]),m.jsx(m.Fragment,{children:e})}const to={showToast:()=>"",dismissToast:()=>{}},dn=h.createContext(to);function ro(){return`toast-${Math.random().toString(36).slice(2,10)}`}function no({toast:e,onDismiss:t}){const{id:r,title:n,description:a,tone:i,durationMs:o,action:c}=e;return h.useEffect(()=>{if(o===null)return;const l=window.setTimeout(()=>{t(r)},o);return()=>{window.clearTimeout(l)}},[o,r,t,n,a,i]),m.jsxs("article",{className:"toast-card","data-tone":i,role:i==="error"?"alert":"status",children:[m.jsxs("div",{className:"toast-body",children:[m.jsx("strong",{className:"toast-title",children:n}),a?m.jsx("p",{className:"toast-description",children:a}):null]}),m.jsxs("div",{className:"toast-actions",children:[c?m.jsx("button",{className:"toast-action",type:"button",onClick:()=>{c.onClick(),t(r)},children:c.label}):null,m.jsx("button",{className:"toast-dismiss",type:"button","aria-label":"关闭通知",onClick:()=>t(r),children:"×"})]})]})}function ao({children:e}){const[t,r]=h.useState([]),n=h.useCallback(o=>{r(c=>c.filter(l=>l.id!==o))},[]),a=h.useCallback(o=>{const c=o.id??ro(),l={id:c,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 p=d.findIndex(b=>b.id===c);if(p===-1)return[...d,l];const v=[...d];return v[p]=l,v}),c},[]),i=h.useMemo(()=>({showToast:a,dismissToast:n}),[n,a]);return m.jsxs(dn.Provider,{value:i,children:[e,m.jsx("div",{className:"toast-viewport","aria-live":"polite","aria-atomic":"false",children:t.map(o=>m.jsx(no,{toast:o,onDismiss:n},o.id))})]})}function Jo(){return h.useContext(dn)}const _t="0.6.1",fn=h.createContext(_t);function io({children:e}){const t=pt(),[r,n]=h.useState(_t);return h.useEffect(()=>{let a=!1;return t.isDesktop?(t.bridge.getRuntimeInfo().then(i=>{var c,l;if(a)return;const o=i.ok?(l=(c=i.value)==null?void 0:c.version)==null?void 0:l.trim():"";n(o||_t)}),()=>{a=!0}):(n(_t),()=>{a=!0})},[t]),m.jsx(fn.Provider,{value:r,children:e})}function oo(){return h.useContext(fn)}const kr={latestState:null,lastNotifiedVersion:null,pendingRestartVersion:null};class so{constructor(){Se(this,"state",kr);Se(this,"listeners",new Set);Se(this,"subscribe",t=>(this.listeners.add(t),()=>{this.listeners.delete(t)}));Se(this,"getState",()=>this.state)}recordState(t){const r=zt(this.state.pendingRestartVersion),n=zt(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=zt(t);!r||this.state.pendingRestartVersion===r||(this.state={...this.state,pendingRestartVersion:r},this.emit())}reset(){this.state=kr,this.emit()}emit(){for(const t of this.listeners)t()}}const Qe=new so;function zt(e){const t=e==null?void 0:e.trim();return t||null}function lo(e){return h.useSyncExternalStore(Qe.subscribe,()=>e(Qe.getState()))}function co(){return Qe.getState()}function uo(e){Qe.recordState(e)}function fo(e){Qe.markVersionNotified(e)}function ho(e){Qe.markRestartPending(e)}async function mo(){const e=ct(),t=ye.getState(),r=await e.bridge.checkForUpdate(t.releaseChannel);if(!r.ok||!r.value)throw new Error(r.detail??"更新检查失败。");return r.value}async function po(e={}){const t=e.notify??"never",r=await mo();return uo(r),await vo(r,t),r}async function Xo(){const e=ct(),t=ye.getState();return e.bridge.installUpdate(t.releaseChannel)}function qo(e){ho(e)}async function Qo(){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 vo(e,t){var i,o,c;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=co().lastNotifiedVersion;if(t==="always"||n!==r)try{(await ct().bridge.showNotification(Re("settings.releaseUpdateReady"),((c=e.manifest)==null?void 0:c.version)??e.currentVersion)).ok&&fo(r)}catch{}}const go=3600*1e3;function yo(){const e=Xe(a=>a.platform),t=Xe(a=>a.autoCheckUpdate),r=Xe(a=>a.releaseChannel),n=lo(a=>a.pendingRestartVersion);return h.useEffect(()=>{if(e!=="desktop"||!t||n)return;async function a(){try{await po({notify:"if-new"})}catch{}}a();const i=window.setInterval(()=>{a()},go);return()=>{window.clearInterval(i)}},[t,n,e,r]),null}const hn="codingns.server.base-url.history",rr=6,mn="__custom__";function pn(){return typeof window<"u"&&typeof window.localStorage<"u"}function vn(){return typeof window>"u"||!window.location.origin?null:window.location.origin}function nr(e){if(!e)return null;try{return zr(e)}catch{return null}}function gn(){if(!pn())return[];const e=window.localStorage.getItem(hn);if(!e)return[];try{const t=JSON.parse(e);return Array.isArray(t)?t.map(r=>typeof r=="string"?nr(r):null).filter(r=>!!r):[]}catch{return[]}}function bo(e){const t=new Set,r=[];for(const n of e)!n||t.has(n)||(t.add(n),r.push(n));return r}function wo(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 xo(e,t){const r=gn();return bo([e,...t,...r,nr(vn())]).slice(0,rr)}function Eo(e){const t=Ct(e),r=gn().map(c=>({value:c,source:"history"})),n=nr(vn()),a=e.hosts.map(c=>({value:c.baseUrl,source:"saved"})),i=zn(e).map(c=>({value:c.baseUrl,source:"discovered"})),o=t?{value:t.baseUrl,source:Br(t)?"discovered":"saved"}:null;return wo([o,...a,...i,...r,n?{value:n,source:"origin"}:null]).slice(0,rr)}function So(e){pn()&&window.localStorage.setItem(hn,JSON.stringify(e.slice(0,rr)))}class Ro{constructor(){Se(this,"state",this.createState(ye.getState()));Se(this,"listeners",new Set);Se(this,"subscribe",t=>(this.listeners.add(t),()=>{this.listeners.delete(t)}));Se(this,"getState",()=>this.state);ye.subscribe(()=>{const t=this.createState(ye.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=ye.getState(),n=Ct(r);if(!n)return!1;const a=zr(t),i=a!==n.baseUrl,o=To(a,n);if(Br(n))return ye.updateRuntime({discoveredHosts:r.discoveredHosts.map(l=>l.id===n.id?{...l,baseUrl:a,name:new URL(a).host,relayTunnel:o,updatedAt:new Date().toISOString()}:l)}),this.state=this.createState(ye.getState()),this.emit(),i;const c=r.hosts.map(l=>l.id===n.id?{...l,baseUrl:a,name:new URL(a).host,relayTunnel:o,updatedAt:new Date().toISOString()}:l);return this.state=this.createState({...r,hosts:c}),this.emit(),ye.update({hosts:c}),i}reset(){this.state=this.createState(ye.getState()),this.emit()}createState(t){const r=Ct(t),n=(r==null?void 0:r.baseUrl)??"",a=Eo(t),i=xo(n,a.map(o=>o.value));return So(i),{baseUrl:n,options:i,presetOptions:a}}emit(){for(const t of this.listeners)t()}}const Yt=new Ro;function Po(e){return h.useSyncExternalStore(Yt.subscribe,()=>e(Yt.getState()))}function Zo(e,t){return t.includes(e)?e:mn}function es(){return mn}function To(e,t){const r=Vn(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 _o={login(e,t){return Rt.login(e,t)},bootstrap(e,t,r){return Rt.bootstrap(e,t,r)},refresh(){return Rt.refresh()},logout(){Rt.clear()}},Co=h.lazy(async()=>({default:(await Y(()=>import("./ServerSettingsModal-CFul__z1.js"),__vite__mapDeps([2,3,4,5,6]))).ServerSettingsModal})),Fr="width=device-width, initial-scale=1.0, viewport-fit=cover",Do="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover";function Lo(){const e=h.useRef(null);return h.useEffect(()=>{const t=e.current;if(!t)return;const r=t.getContext("2d");if(!r)return;let n;const a=()=>{o(),c()};let i=[];const o=()=>{t.width=window.innerWidth,t.height=window.innerHeight},c=()=>{i=[];const d=Math.min(50,Math.floor(t.width*t.height/25e3));for(let p=0;p<d;p++)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})},l=()=>{r.clearRect(0,0,t.width,t.height),i.forEach((d,p)=>{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(p+1).forEach(v=>{const b=d.x-v.x,w=d.y-v.y,T=Math.sqrt(b*b+w*w);T<150&&(r.beginPath(),r.moveTo(d.x,d.y),r.lineTo(v.x,v.y),r.strokeStyle=`rgba(10, 132, 255, ${.1*(1-T/150)})`,r.stroke())})}),n=requestAnimationFrame(l)};return o(),c(),l(),window.addEventListener("resize",a),()=>{window.removeEventListener("resize",a),cancelAnimationFrame(n)}},[]),m.jsx("canvas",{ref:e,className:"particle-canvas"})}function jo({text:e}){return m.jsx("span",{className:"glitch-text","data-text":e,children:e})}function No({text:e}){const[t,r]=h.useState(""),[n,a]=h.useState(!0);return h.useEffect(()=>{let i=0,o=null;const c=setInterval(()=>{i<=e.length?(r(e.slice(0,i)),i++):(clearInterval(c),o=window.setTimeout(()=>a(!1),1e3))},50);return()=>{clearInterval(c),o!==null&&window.clearTimeout(o)}},[e]),m.jsxs("span",{className:"typewriter-text",children:[t,n&&m.jsx("span",{className:"typewriter-cursor",children:"_"})]})}function Mo(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 Io(){const e=tr(),t=Bn(),[r]=Ii(),n=pt(),a=oo(),i=Xe(V=>Hn(V)),o=Wn(n.platform),c=h.useMemo(()=>$n(n),[n]),l=h.useMemo(()=>c?Kn(i):{credentials:null,legacyServerBaseUrl:null},[i,c]),d=l.credentials,p=l.legacyServerBaseUrl,[v,b]=h.useState(()=>(d==null?void 0:d.username)??"admin"),[w,T]=h.useState(()=>(d==null?void 0:d.password)??""),[E,D]=h.useState(null),[k,L]=h.useState(""),[K,te]=h.useState(()=>!!d),$=Po(V=>V.baseUrl),[he,g]=h.useState($),[N,F]=h.useState(null),[I,re]=h.useState(!1),[J,oe]=h.useState(!1),[ae,se]=h.useState(null),[We,$e]=h.useState(!1),Q=Hr(V=>V.session),Te=h.useMemo(()=>r.get("returnTo")??"/",[r]),{theme:_e}=Qi(),be=h.useRef(!1),ce=n.isNativeMobile,Ce=h.useMemo(()=>_e==="light"?"light":"dark",[_e]);h.useEffect(()=>{b((d==null?void 0:d.username)??"admin"),T((d==null?void 0:d.password)??""),D(null),L(""),te(!!d)},[d]),h.useEffect(()=>{if(typeof document>"u")return;const V=document.querySelector('meta[name="viewport"]');if(!(V instanceof HTMLMetaElement))return;const de=V.getAttribute("content")??Fr;return ce?V.setAttribute("content",Do):V.setAttribute("content",Fr),()=>{V.setAttribute("content",de)}},[ce]),h.useEffect(()=>{be.current||(be.current=!0,!(!c||!p||p===$)&&(Yt.setBaseUrl(p),g(p)))},[$,c,p]),h.useEffect(()=>{if(Q){e(Te,{replace:!0});return}if(!he)return;let V=!1;const de=window.setTimeout(()=>{Y(async()=>{const{probeHost:H}=await import("./index-C-0oeG_5.js").then(ve=>ve.$);return{probeHost:H}},__vite__mapDeps([3,4])).then(({probeHost:H})=>H(he)).then(H=>{V||(H.demoMode&&($e(!0),Yn()&&F(t("auth.demoSessionExpired"))),H.reachable&&!H.initialized&&e("/bootstrap",{replace:!0}))}).catch(()=>{V||F(t("auth.authUnavailable"))})},0);return()=>{V=!0,window.clearTimeout(de)}},[Q,e,he,Te,t]);async function Ue(V){V.preventDefault(),re(!0),F(null),g($),c&&!K&&i&&Gn(i);try{const de=E?{username:v,password:w,captchaId:E.captchaId,captchaCode:k}:{username:v,password:w};await _o.login(de,$),D(null),L("");const{userPreferenceStore:H}=await Y(async()=>{const{userPreferenceStore:ve}=await import("./index-C-0oeG_5.js").then(gt=>gt.Z);return{userPreferenceStore:ve}},__vite__mapDeps([3,4]));await H.refreshForAuthenticatedUser(),c&&K&&i&&Jn({hostId:i,username:v,password:w}),e(Te,{replace:!0})}catch(de){if(de instanceof Xn){if(de.errorCode==="BOOTSTRAP_REQUIRED"){e("/bootstrap",{replace:!0});return}const H=Mo(de.data);H?(D(H),L("")):de.errorCode==="INVALID_CREDENTIALS"&&(D(null),L("")),F(de.message)}else F(t("auth.authUnavailable"))}finally{re(!1)}}function ue(V){b(V),E&&(D(null),L(""))}function we(V){g(V),F(null)}const pe="login-username",Oe="login-password",vt="login-captcha";return m.jsxs("main",{className:"cyber-login-page","data-theme":Ce,"data-native-mobile":ce?"true":"false",children:[m.jsxs("div",{className:"cyber-bg",children:[m.jsx("div",{className:"cyber-grid"}),m.jsx("div",{className:"cyber-glow cyber-glow-1"}),m.jsx("div",{className:"cyber-glow cyber-glow-2"}),m.jsx(Lo,{})]}),m.jsx("div",{className:"scanlines"}),m.jsxs("div",{className:"cyber-login-container",children:[m.jsx("div",{className:"cyber-login-toolbar",children:m.jsx(ta,{variant:"compact"})}),m.jsxs("div",{className:"cyber-login-content",children:[m.jsxs("div",{className:"cyber-brand",children:[m.jsx("div",{className:"cyber-logo",children:m.jsx("img",{src:"/logo.png",alt:"CodingNS",className:"cyber-logo-svg"})}),m.jsx("h1",{className:"cyber-brand-title",children:m.jsx(jo,{text:"CodingNS"})}),m.jsx("p",{className:"cyber-brand-subtitle",children:m.jsx(No,{text:t("auth.loginSubtitle")})})]}),m.jsxs("div",{className:"cyber-card",children:[m.jsx("div",{className:"cyber-corner corner-tl"}),m.jsx("div",{className:"cyber-corner corner-tr"}),m.jsx("div",{className:"cyber-corner corner-bl"}),m.jsx("div",{className:"cyber-corner corner-br"}),m.jsxs("div",{className:"cyber-card-header",children:[m.jsx("div",{className:"cyber-line"}),m.jsx("span",{className:"cyber-card-label",children:t("auth.loginTitle").toUpperCase()}),m.jsx("div",{className:"cyber-line"})]}),We?m.jsxs("div",{className:"cyber-demo-banner",children:[m.jsx("span",{className:"cyber-demo-icon",children:"⚠"}),m.jsx("span",{children:t("auth.demoBanner")})]}):null,m.jsxs("form",{className:"cyber-form",onSubmit:Ue,children:[m.jsxs("div",{className:`cyber-field ${ae==="username"?"focused":""}`,children:[m.jsx("div",{className:"cyber-field-border",children:m.jsx("div",{className:"cyber-field-border-glow"})}),m.jsxs("label",{className:"cyber-field-label",htmlFor:pe,children:[m.jsx("span",{className:"cyber-field-icon",children:"❯"}),t("auth.username")]}),m.jsx("input",{id:pe,"aria-label":t("auth.username"),className:"cyber-input",value:v,onChange:V=>ue(V.target.value),onFocus:()=>se("username"),onBlur:()=>se(null),autoComplete:"username"})]}),m.jsxs("div",{className:`cyber-field ${ae==="password"?"focused":""}`,children:[m.jsx("div",{className:"cyber-field-border",children:m.jsx("div",{className:"cyber-field-border-glow"})}),m.jsxs("label",{className:"cyber-field-label",htmlFor:Oe,children:[m.jsx("span",{className:"cyber-field-icon",children:"⚷"}),t("auth.password")]}),m.jsx("input",{id:Oe,"aria-label":t("auth.password"),className:"cyber-input",type:"password",value:w,onChange:V=>T(V.target.value),onFocus:()=>se("password"),onBlur:()=>se(null),autoComplete:"current-password"})]}),E?m.jsxs("div",{className:"cyber-captcha-panel",children:[m.jsx("img",{alt:t("auth.captchaImageAlt"),className:"cyber-captcha-image",draggable:!1,src:E.imageDataUrl}),m.jsx("p",{className:"cyber-captcha-hint",children:t("auth.captchaHint")}),m.jsxs("div",{className:`cyber-field ${ae==="captcha"?"focused":""}`,children:[m.jsx("div",{className:"cyber-field-border",children:m.jsx("div",{className:"cyber-field-border-glow"})}),m.jsxs("label",{className:"cyber-field-label",htmlFor:vt,children:[m.jsx("span",{className:"cyber-field-icon",children:"#"}),t("auth.captcha")]}),m.jsx("input",{id:vt,"aria-label":t("auth.captcha"),className:"cyber-input",placeholder:t("auth.captchaPlaceholder"),value:k,onChange:V=>L(V.target.value),onFocus:()=>se("captcha"),onBlur:()=>se(null),autoComplete:"one-time-code"})]})]}):null,c?m.jsxs("label",{className:"cyber-remember-toggle",children:[m.jsx("input",{"aria-label":t("auth.rememberPassword"),type:"checkbox",checked:K,onChange:V=>te(V.target.checked)}),m.jsx("span",{children:t("auth.rememberPassword")})]}):null,N?m.jsxs("div",{className:"cyber-status","data-tone":"error",children:[m.jsx("span",{className:"cyber-status-icon",children:"⚠"}),m.jsx("span",{children:N})]}):null,m.jsxs("button",{className:`cyber-submit ${I?"loading":""}`,type:"submit",disabled:I,children:[m.jsx("span",{className:"cyber-submit-glow"}),m.jsx("span",{className:"cyber-submit-border"}),m.jsx("span",{className:"cyber-submit-text",children:I?m.jsxs(m.Fragment,{children:[m.jsx("span",{className:"cyber-spinner"}),t("common.loading")]}):m.jsxs(m.Fragment,{children:[m.jsx("span",{className:"cyber-submit-icon",children:"➤"}),t("auth.submitLogin")]})})]})]}),o?m.jsxs("div",{className:"cyber-footer",children:[m.jsxs("div",{className:"cyber-divider",children:[m.jsx("span",{className:"cyber-divider-line"}),m.jsx("span",{className:"cyber-divider-text",children:"//"}),m.jsx("span",{className:"cyber-divider-line"})]}),m.jsxs("button",{className:"cyber-server-btn",onClick:()=>oe(!0),type:"button",children:[m.jsx("span",{className:"cyber-server-icon",children:"⚙"}),m.jsx("span",{className:"cyber-server-text",children:t("auth.serverSettings")}),m.jsx("span",{className:"cyber-server-current",children:$})]})]}):null]})]}),m.jsxs("div",{className:"cyber-version",children:[m.jsxs("span",{className:"cyber-version-text",children:["v",a]}),m.jsx("span",{className:"cyber-version-divider",children:"|"}),m.jsx("span",{className:"cyber-version-text",children:"SYSTEM READY"})]})]}),o&&J?m.jsx(h.Suspense,{fallback:null,children:m.jsx(Co,{isOpen:J,onClose:()=>oe(!1),onSave:we})}):null]})}function yn(){return m.jsx("main",{className:"page-center app-shell",children:m.jsxs("section",{className:"auth-card surface-card",children:[m.jsx("h1",{children:Re("auth.trustedEntryOnlyTitle")}),m.jsx("p",{className:"status-text",children:Re("auth.trustedEntryOnlyDescription")}),m.jsxs("div",{className:"field-group",children:[m.jsx("span",{children:Re("auth.trustedEntryOnlyHintTitle")}),m.jsx("span",{className:"auth-server-value",children:Re("auth.trustedEntryOnlyHint")})]})]})})}function Uo({isDesktop:e,viewportClass:t}){return e||t==="expanded"?"desktop":"mobile"}function Oo(){return!1}function bn(e,t,r=Oo()){var i,o;if(!r||t!=="web")return!1;const n=Ct(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 Ao({runtimeKey:e,children:t}){return m.jsx("div",{children:t},e)}function ko(){const e=qn();return m.jsx(Ao,{runtimeKey:e,children:m.jsx(gi,{})})}function Fo(){const e=Xe(a=>a),t=pt(),r=Hr(a=>a.session),n=mt();if(bn(e,t.platform))return m.jsx(yn,{});if(!r){const a=`${n.pathname}${n.search}`;return m.jsx(sn,{to:`/login?returnTo=${encodeURIComponent(a)}`,replace:!0})}return m.jsx(ko,{})}function Vo(){const e=Xe(r=>r),t=pt();return bn(e,t.platform)?m.jsx(yn,{}):m.jsx(Io,{})}function Vr(){const e=pt(),t=Uo(e);return m.jsx(sn,{to:t==="mobile"?"/workspaces":"/landing",replace:!0})}function ne(e,t){return async()=>({Component:(await e())[t]})}const zo=[{path:"/bootstrap",lazy:ne(()=>Y(()=>import("./BootstrapPage-CE0m1qSR.js"),__vite__mapDeps([7,3,4])),"BootstrapPage")},{path:"/login",element:m.jsx(Vo,{})},{path:"/connect/:tunnelDomain",lazy:ne(()=>Y(()=>import("./RelayConnectEntryPage-CgMvVZwa.js"),__vite__mapDeps([8,3,4,5])),"RelayConnectEntryPage")},{path:"/desktop-window-preview",lazy:ne(()=>Y(()=>import("./DesktopDetachPreviewPage-Dxarr_Wf.js"),__vite__mapDeps([9,3,4])),"DesktopDetachPreviewPage")},{path:"/",element:m.jsx(Fo,{}),children:[{path:"desktop-window/:windowId",lazy:ne(()=>Y(()=>import("./DesktopWindowPage-VytPwJ4c.js"),__vite__mapDeps([10,3,4,11,12,13,0,1,6,5,14,15,16,17,18,19,20,21,22])),"DesktopWindowPage")},{lazy:ne(()=>Y(()=>import("./WorkbenchShellRoute-C0_h4lP6.js"),__vite__mapDeps([23,3,4,13,11,0,1,6,5,24])),"WorkbenchShellRoute"),children:[{index:!0,element:m.jsx(Vr,{})},{path:"landing",lazy:ne(()=>Y(()=>import("./WorkbenchLandingPage-CchkAC75.js"),__vite__mapDeps([25,3,4,13,11,0,1,6,5])),"WorkbenchLandingPage")},{path:"workspaces",lazy:ne(()=>Y(()=>import("./WorkspaceHomePage-Dsyvqyk1.js"),__vite__mapDeps([26,3,4,13,11,0,1,6,5,27,20,21,28])),"WorkspaceHomePage")},{path:"workspaces/:workspaceId",lazy:ne(()=>Y(()=>import("./WorkspaceDetailPage-Cvf-ZdlB.js"),__vite__mapDeps([29,3,4,13,11,0,1,6,5,30,17,20,21,28])),"WorkspaceDetailPage")},{path:"workspaces/:workspaceId/debug",lazy:ne(()=>Y(()=>import("./WorkspaceDebugDetailPage-Deqy2_pO.js"),__vite__mapDeps([31,3,4,30,11,17,13,0,1,6,5])),"WorkspaceDebugDetailPage")},{path:"workspaces/:workspaceId/sessions",lazy:ne(()=>Y(()=>import("./SessionIndexPage-B-tRhBXC.js"),__vite__mapDeps([32,3,4,11,13,0,1,6,5,20,21,28,33,34])),"SessionIndexPage")},{path:"workspaces/:workspaceId/sessions/:sessionId",lazy:ne(()=>Y(()=>import("./ConversationPage-8wOY7SX-.js"),__vite__mapDeps([35,3,4,6,11,13,0,1,5,36,14,12,15,16,17,18,19,20,21,22,33,34])),"ConversationPage")},{path:"workspaces/:workspaceId/tools",lazy:ne(()=>Y(()=>import("./ToolsHomePage-CX05Pe_4.js"),__vite__mapDeps([37,3,4,13,11,0,1,6,5])),"ToolsHomePage")},{path:"workspaces/:workspaceId/tools/files",lazy:ne(()=>Y(()=>import("./ToolFilesPage-Dx9cv9hu.js"),__vite__mapDeps([38,3,4,13,11,0,1,6,5])),"ToolFilesPage")},{path:"workspaces/:workspaceId/tools/git",lazy:ne(()=>Y(()=>import("./ToolGitPage-D7H3vAia.js"),__vite__mapDeps([39,3,4,13,11,0,1,6,5])),"ToolGitPage")},{path:"workspaces/:workspaceId/tools/processes",lazy:ne(()=>Y(()=>import("./ToolProcessesPage-PqQWxsy-.js"),__vite__mapDeps([40,3,4,13,11,0,1,6,5])),"ToolProcessesPage")},{path:"workspaces/:workspaceId/terminals",lazy:ne(()=>Y(()=>import("./TerminalPage-DWHv6mlu.js"),__vite__mapDeps([19,3,4,11,13,0,1,6,5,20,21,17,18,22])),"TerminalPage")},{path:"workspaces/:workspaceId/butler",lazy:ne(()=>Y(()=>import("./AdaptiveButlerPage-Dw72U3hG.js"),__vite__mapDeps([41,3,4,13,11,0,1,6,5,36,14,12,27,20,21,42])),"AdaptiveButlerPage")},{path:"settings",lazy:ne(()=>Y(()=>import("./SettingsPage-C9LGxSQZ.js"),__vite__mapDeps([43,3,4,11,6,21])),"SettingsPage")},{path:"settings/:section",lazy:ne(()=>Y(()=>import("./SettingsPage-C9LGxSQZ.js"),__vite__mapDeps([43,3,4,11,6,21])),"SettingsPage")},{path:"*",element:m.jsx(Vr,{})}]}]}];function Bo(){return Ei(zo)}function Ho(){const e=qe(r=>r.profile.language),t=h.useMemo(()=>Bo(),[]);return m.jsx(Yi,{children:m.jsx(io,{children:m.jsx(Qn,{language:e,children:m.jsx(eo,{children:m.jsxs(ao,{children:[m.jsx(yo,{}),m.jsx(ji,{router:t})]})})})})})}const ts=Object.freeze(Object.defineProperty({__proto__:null,App:Ho},Symbol.toStringTag,{value:"Module"}));export{ts as A,ta as L,sn as N,gi as O,Yo as T,Po as a,_o as b,Ko as c,Ii as d,pt as e,Jo as f,Wr as g,mt as h,lo as i,Qi as j,po as k,Xo as l,yr as m,qo as n,Qo as o,oo as p,Go as q,Uo as r,Zo as s,es as t,tr as u,Yt as v};
|
|
30
|
+
*/function Nt(){return Nt=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},Nt.apply(this,arguments)}function $t(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 wi(e,t){let r=$t(e);return t&&t.forEach((n,a)=>{r.has(a)||t.getAll(a).forEach(i=>{r.append(a,i)})}),r}const xi="6";try{window.__reactRouterVersion=xi}catch{}function Ei(e,t){return Ua({basename:void 0,future:Nt({},void 0,{v7_prependBasename:!0}),history:aa({window:void 0}),hydrationData:Si(),routes:e,mapRouteProperties:bi,dataStrategy:void 0,patchRoutesOnNavigation:void 0,window:void 0}).initialize()}function Si(){var e;let t=(e=window)==null?void 0:e.__staticRouterHydrationData;return t&&t.errors&&(t=Nt({},t,{errors:Ri(t.errors)})),t}function Ri(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 Lt(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 Pi=h.createContext({isTransitioning:!1}),Ti=h.createContext(new Map),_i="startTransition",Ir=kn[_i],Ci="flushSync",Ur=na[Ci];function Di(e){Ir?Ir(e):e()}function it(e){Ur?Ur(e):e()}class Li{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 ji(e){let{fallbackElement:t,router:r,future:n}=e,[a,i]=h.useState(r.state),[o,c]=h.useState(),[l,d]=h.useState({isTransitioning:!1}),[p,v]=h.useState(),[b,w]=h.useState(),[T,E]=h.useState(),D=h.useRef(new Map),{v7_startTransition:k}=n||{},L=h.useCallback(N=>{k?Di(N):N()},[k]),K=h.useCallback((N,F)=>{let{deletedFetchers:I,flushSync:re,viewTransitionOpts:J}=F;N.fetchers.forEach((ae,se)=>{ae.data!==void 0&&D.current.set(se,ae.data)}),I.forEach(ae=>D.current.delete(ae));let oe=r.window==null||r.window.document==null||typeof r.window.document.startViewTransition!="function";if(!J||oe){re?it(()=>i(N)):L(()=>i(N));return}if(re){it(()=>{b&&(p&&p.resolve(),b.skipTransition()),d({isTransitioning:!0,flushSync:!0,currentLocation:J.currentLocation,nextLocation:J.nextLocation})});let ae=r.window.document.startViewTransition(()=>{it(()=>i(N))});ae.finished.finally(()=>{it(()=>{v(void 0),w(void 0),c(void 0),d({isTransitioning:!1})})}),it(()=>w(ae));return}b?(p&&p.resolve(),b.skipTransition(),E({state:N,currentLocation:J.currentLocation,nextLocation:J.nextLocation})):(c(N),d({isTransitioning:!0,flushSync:!1,currentLocation:J.currentLocation,nextLocation:J.nextLocation}))},[r.window,b,p,D,L]);h.useLayoutEffect(()=>r.subscribe(K),[r,K]),h.useEffect(()=>{l.isTransitioning&&!l.flushSync&&v(new Li)},[l]),h.useEffect(()=>{if(p&&o&&r.window){let N=o,F=p.promise,I=r.window.document.startViewTransition(async()=>{L(()=>i(N)),await F});I.finished.finally(()=>{v(void 0),w(void 0),c(void 0),d({isTransitioning:!1})}),w(I)}},[L,o,p,r.window]),h.useEffect(()=>{p&&o&&a.location.key===o.location.key&&p.resolve()},[p,b,a.location,o]),h.useEffect(()=>{!l.isTransitioning&&T&&(c(T.state),d({isTransitioning:!0,flushSync:!1,currentLocation:T.currentLocation,nextLocation:T.nextLocation}),E(void 0))},[l.isTransitioning,T]),h.useEffect(()=>{},[]);let te=h.useMemo(()=>({createHref:r.createHref,encodeLocation:r.encodeLocation,go:N=>r.navigate(N),push:(N,F,I)=>r.navigate(N,{state:F,preventScrollReset:I==null?void 0:I.preventScrollReset}),replace:(N,F,I)=>r.navigate(N,{replace:!0,state:F,preventScrollReset:I==null?void 0:I.preventScrollReset})}),[r]),$=r.basename||"/",he=h.useMemo(()=>({router:r,navigator:te,static:!1,basename:$}),[r,te,$]),g=h.useMemo(()=>({v7_relativeSplatPath:r.future.v7_relativeSplatPath}),[r.future.v7_relativeSplatPath]);return h.useEffect(()=>vi(n,r.future),[n,r.future]),h.createElement(h.Fragment,null,h.createElement(Mt.Provider,{value:he},h.createElement(en.Provider,{value:a},h.createElement(Ti.Provider,{value:D.current},h.createElement(Pi.Provider,{value:l},h.createElement(yi,{basename:$,location:a.location,navigationType:a.historyAction,navigator:te,future:g},a.initialized||r.future.v7_partialHydration?h.createElement(Ni,{routes:r.routes,future:r.future,state:a}):t))))),null)}const Ni=h.memo(Mi);function Mi(e){let{routes:t,future:r,state:n}=e;return ai(t,void 0,n,r)}var Or;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(Or||(Or={}));var Ar;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(Ar||(Ar={}));function Ii(e){let t=h.useRef($t(e)),r=h.useRef(!1),n=mt(),a=h.useMemo(()=>wi(n.search,r.current?null:t.current),[n.search]),i=tr(),o=h.useCallback((c,l)=>{const d=$t(typeof c=="function"?c(a):c);r.current=!0,i("?"+d,l)},[i,a]);return[a,o]}const Ui="desktop://window-lifecycle",Oi=new Set(["button","checkbox","color","file","hidden","image","radio","range","reset","submit"]);function Ai(e){return e instanceof HTMLInputElement?!Oi.has(e.type.toLowerCase()):!1}function ki(e){const t=e.activeElement;if(Ai(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 Fi(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 Vi(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 zi(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{}Vi(e,t)}function Bi(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=Fi(r);o&&(i.preventDefault(),zi(r,o,n))}return t.addEventListener("keydown",a,!0),()=>{t.removeEventListener("keydown",a,!0)}}const ln=h.createContext(null),Hi=["--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 Wi(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 Kt(){var e;if(!(typeof document>"u"))for(const t of Hi)document.documentElement.style.removeProperty(t),(e=document.body)==null||e.style.removeProperty(t)}function $i(e){if(typeof document>"u")return;if(!e){Kt();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 Ki(){if(!(typeof window>"u"))return window.innerWidth}function Yi({children:e}){const[t,r]=h.useState(()=>Ki()),n=h.useMemo(()=>ct({viewportWidth:t}),[t]);return h.useEffect(()=>{if(typeof window>"u")return;function a(){r(window.innerWidth)}return a(),window.addEventListener("resize",a),()=>{window.removeEventListener("resize",a)}},[]),h.useEffect(()=>{Wi(n)},[n]),h.useEffect(()=>{if(!(typeof window>"u"||typeof document>"u")&&!(!n.isDesktop||n.ui.osFamily!=="macos"||!n.bridge.supported))return Bi({window,document,writeClipboardText:async a=>(await n.bridge.writeClipboardText(a)).ok})},[n]),h.useEffect(()=>()=>{Kt()},[]),h.useEffect(()=>{let a=!1,i=null;return!n.isDesktop||!n.bridge.supported?()=>{a=!0}:(Y(()=>import("./event-DvH9tcej.js").then(o=>o.c),[]).then(async({listen:o})=>{const c=await o(Ui,l=>{const d=l.payload,p=d==null?void 0:d.descriptor;p!=null&&p.windowId&&(n.windows.registerDescriptor(p),d.isOpen?n.windows.markWindowOpen(p.windowId):n.windows.markWindowClosed(p.windowId))});if(a){c();return}i=c}).catch(()=>{}),()=>{a=!0,i==null||i()})},[n]),h.useEffect(()=>{let a=!1,i=null;async function o(){var l,d;const c=await n.bridge.getRuntimeInfo();a||$i(c.ok?(d=(l=c.value)==null?void 0:l.windowChrome)==null?void 0:d.macosTitlebar:null)}return!n.isDesktop||n.ui.osFamily!=="macos"||!n.ui.prefersOverlayTitlebar?(Kt(),()=>{a=!0}):(o(),Y(()=>import("./window-BVUB8gMK.js").then(c=>c.w),__vite__mapDeps([0,1])).then(async({getCurrentWindow:c})=>{const l=await c().onScaleChanged(()=>{o()});if(a){l();return}i=l}).catch(()=>{}),()=>{a=!0,i==null||i()})},[n]),m.jsx(ln.Provider,{value:n,children:e})}function pt(){return h.useContext(ln)??ct()}const Yo=[{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 Go(e){return Re(e.labelKey)}function Gi(){return typeof window>"u"||typeof window.matchMedia!="function"?"light":window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function cn(e,t){return t?Gi():e}function Ji(){const{theme:e,autoTheme:t}=Fn.getState().profile;return cn(e,t)}function Xi(e){Gt({theme:e,autoTheme:!1}).catch(()=>{})}function qi(e){Gt({autoTheme:e}).catch(()=>{})}function un(e){typeof window>"u"||document.documentElement.setAttribute("data-theme",e)}function Qi(){const e=qe(n=>n.profile.theme),t=qe(n=>n.profile.autoTheme);return{theme:cn(e,t),selectedTheme:e,autoTheme:t,setTheme:Xi,setAutoTheme:qi}}function Zi(){un(Ji())}function eo({children:e}){const t=qe(n=>n.profile.theme),r=qe(n=>n.profile.autoTheme);return h.useEffect(()=>{Zi()},[t,r]),h.useEffect(()=>{if(!r||typeof window>"u"||typeof window.matchMedia!="function")return;const n=window.matchMedia("(prefers-color-scheme: dark)"),a=()=>{un(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]),m.jsx(m.Fragment,{children:e})}const to={showToast:()=>"",dismissToast:()=>{}},dn=h.createContext(to);function ro(){return`toast-${Math.random().toString(36).slice(2,10)}`}function no({toast:e,onDismiss:t}){const{id:r,title:n,description:a,tone:i,durationMs:o,action:c}=e;return h.useEffect(()=>{if(o===null)return;const l=window.setTimeout(()=>{t(r)},o);return()=>{window.clearTimeout(l)}},[o,r,t,n,a,i]),m.jsxs("article",{className:"toast-card","data-tone":i,role:i==="error"?"alert":"status",children:[m.jsxs("div",{className:"toast-body",children:[m.jsx("strong",{className:"toast-title",children:n}),a?m.jsx("p",{className:"toast-description",children:a}):null]}),m.jsxs("div",{className:"toast-actions",children:[c?m.jsx("button",{className:"toast-action",type:"button",onClick:()=>{c.onClick(),t(r)},children:c.label}):null,m.jsx("button",{className:"toast-dismiss",type:"button","aria-label":"关闭通知",onClick:()=>t(r),children:"×"})]})]})}function ao({children:e}){const[t,r]=h.useState([]),n=h.useCallback(o=>{r(c=>c.filter(l=>l.id!==o))},[]),a=h.useCallback(o=>{const c=o.id??ro(),l={id:c,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 p=d.findIndex(b=>b.id===c);if(p===-1)return[...d,l];const v=[...d];return v[p]=l,v}),c},[]),i=h.useMemo(()=>({showToast:a,dismissToast:n}),[n,a]);return m.jsxs(dn.Provider,{value:i,children:[e,m.jsx("div",{className:"toast-viewport","aria-live":"polite","aria-atomic":"false",children:t.map(o=>m.jsx(no,{toast:o,onDismiss:n},o.id))})]})}function Jo(){return h.useContext(dn)}const _t="0.6.5",fn=h.createContext(_t);function io({children:e}){const t=pt(),[r,n]=h.useState(_t);return h.useEffect(()=>{let a=!1;return t.isDesktop?(t.bridge.getRuntimeInfo().then(i=>{var c,l;if(a)return;const o=i.ok?(l=(c=i.value)==null?void 0:c.version)==null?void 0:l.trim():"";n(o||_t)}),()=>{a=!0}):(n(_t),()=>{a=!0})},[t]),m.jsx(fn.Provider,{value:r,children:e})}function oo(){return h.useContext(fn)}const kr={latestState:null,lastNotifiedVersion:null,pendingRestartVersion:null};class so{constructor(){Se(this,"state",kr);Se(this,"listeners",new Set);Se(this,"subscribe",t=>(this.listeners.add(t),()=>{this.listeners.delete(t)}));Se(this,"getState",()=>this.state)}recordState(t){const r=zt(this.state.pendingRestartVersion),n=zt(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=zt(t);!r||this.state.pendingRestartVersion===r||(this.state={...this.state,pendingRestartVersion:r},this.emit())}reset(){this.state=kr,this.emit()}emit(){for(const t of this.listeners)t()}}const Qe=new so;function zt(e){const t=e==null?void 0:e.trim();return t||null}function lo(e){return h.useSyncExternalStore(Qe.subscribe,()=>e(Qe.getState()))}function co(){return Qe.getState()}function uo(e){Qe.recordState(e)}function fo(e){Qe.markVersionNotified(e)}function ho(e){Qe.markRestartPending(e)}async function mo(){const e=ct(),t=ye.getState(),r=await e.bridge.checkForUpdate(t.releaseChannel);if(!r.ok||!r.value)throw new Error(r.detail??"更新检查失败。");return r.value}async function po(e={}){const t=e.notify??"never",r=await mo();return uo(r),await vo(r,t),r}async function Xo(){const e=ct(),t=ye.getState();return e.bridge.installUpdate(t.releaseChannel)}function qo(e){ho(e)}async function Qo(){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 vo(e,t){var i,o,c;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=co().lastNotifiedVersion;if(t==="always"||n!==r)try{(await ct().bridge.showNotification(Re("settings.releaseUpdateReady"),((c=e.manifest)==null?void 0:c.version)??e.currentVersion)).ok&&fo(r)}catch{}}const go=3600*1e3;function yo(){const e=Xe(a=>a.platform),t=Xe(a=>a.autoCheckUpdate),r=Xe(a=>a.releaseChannel),n=lo(a=>a.pendingRestartVersion);return h.useEffect(()=>{if(e!=="desktop"||!t||n)return;async function a(){try{await po({notify:"if-new"})}catch{}}a();const i=window.setInterval(()=>{a()},go);return()=>{window.clearInterval(i)}},[t,n,e,r]),null}const hn="codingns.server.base-url.history",rr=6,mn="__custom__";function pn(){return typeof window<"u"&&typeof window.localStorage<"u"}function vn(){return typeof window>"u"||!window.location.origin?null:window.location.origin}function nr(e){if(!e)return null;try{return zr(e)}catch{return null}}function gn(){if(!pn())return[];const e=window.localStorage.getItem(hn);if(!e)return[];try{const t=JSON.parse(e);return Array.isArray(t)?t.map(r=>typeof r=="string"?nr(r):null).filter(r=>!!r):[]}catch{return[]}}function bo(e){const t=new Set,r=[];for(const n of e)!n||t.has(n)||(t.add(n),r.push(n));return r}function wo(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 xo(e,t){const r=gn();return bo([e,...t,...r,nr(vn())]).slice(0,rr)}function Eo(e){const t=Ct(e),r=gn().map(c=>({value:c,source:"history"})),n=nr(vn()),a=e.hosts.map(c=>({value:c.baseUrl,source:"saved"})),i=zn(e).map(c=>({value:c.baseUrl,source:"discovered"})),o=t?{value:t.baseUrl,source:Br(t)?"discovered":"saved"}:null;return wo([o,...a,...i,...r,n?{value:n,source:"origin"}:null]).slice(0,rr)}function So(e){pn()&&window.localStorage.setItem(hn,JSON.stringify(e.slice(0,rr)))}class Ro{constructor(){Se(this,"state",this.createState(ye.getState()));Se(this,"listeners",new Set);Se(this,"subscribe",t=>(this.listeners.add(t),()=>{this.listeners.delete(t)}));Se(this,"getState",()=>this.state);ye.subscribe(()=>{const t=this.createState(ye.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=ye.getState(),n=Ct(r);if(!n)return!1;const a=zr(t),i=a!==n.baseUrl,o=To(a,n);if(Br(n))return ye.updateRuntime({discoveredHosts:r.discoveredHosts.map(l=>l.id===n.id?{...l,baseUrl:a,name:new URL(a).host,relayTunnel:o,updatedAt:new Date().toISOString()}:l)}),this.state=this.createState(ye.getState()),this.emit(),i;const c=r.hosts.map(l=>l.id===n.id?{...l,baseUrl:a,name:new URL(a).host,relayTunnel:o,updatedAt:new Date().toISOString()}:l);return this.state=this.createState({...r,hosts:c}),this.emit(),ye.update({hosts:c}),i}reset(){this.state=this.createState(ye.getState()),this.emit()}createState(t){const r=Ct(t),n=(r==null?void 0:r.baseUrl)??"",a=Eo(t),i=xo(n,a.map(o=>o.value));return So(i),{baseUrl:n,options:i,presetOptions:a}}emit(){for(const t of this.listeners)t()}}const Yt=new Ro;function Po(e){return h.useSyncExternalStore(Yt.subscribe,()=>e(Yt.getState()))}function Zo(e,t){return t.includes(e)?e:mn}function es(){return mn}function To(e,t){const r=Vn(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 _o={login(e,t){return Rt.login(e,t)},bootstrap(e,t,r){return Rt.bootstrap(e,t,r)},refresh(){return Rt.refresh()},logout(){Rt.clear()}},Co=h.lazy(async()=>({default:(await Y(()=>import("./ServerSettingsModal-Bl1sacZg.js"),__vite__mapDeps([2,3,4,5,6]))).ServerSettingsModal})),Fr="width=device-width, initial-scale=1.0, viewport-fit=cover",Do="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover";function Lo(){const e=h.useRef(null);return h.useEffect(()=>{const t=e.current;if(!t)return;const r=t.getContext("2d");if(!r)return;let n;const a=()=>{o(),c()};let i=[];const o=()=>{t.width=window.innerWidth,t.height=window.innerHeight},c=()=>{i=[];const d=Math.min(50,Math.floor(t.width*t.height/25e3));for(let p=0;p<d;p++)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})},l=()=>{r.clearRect(0,0,t.width,t.height),i.forEach((d,p)=>{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(p+1).forEach(v=>{const b=d.x-v.x,w=d.y-v.y,T=Math.sqrt(b*b+w*w);T<150&&(r.beginPath(),r.moveTo(d.x,d.y),r.lineTo(v.x,v.y),r.strokeStyle=`rgba(10, 132, 255, ${.1*(1-T/150)})`,r.stroke())})}),n=requestAnimationFrame(l)};return o(),c(),l(),window.addEventListener("resize",a),()=>{window.removeEventListener("resize",a),cancelAnimationFrame(n)}},[]),m.jsx("canvas",{ref:e,className:"particle-canvas"})}function jo({text:e}){return m.jsx("span",{className:"glitch-text","data-text":e,children:e})}function No({text:e}){const[t,r]=h.useState(""),[n,a]=h.useState(!0);return h.useEffect(()=>{let i=0,o=null;const c=setInterval(()=>{i<=e.length?(r(e.slice(0,i)),i++):(clearInterval(c),o=window.setTimeout(()=>a(!1),1e3))},50);return()=>{clearInterval(c),o!==null&&window.clearTimeout(o)}},[e]),m.jsxs("span",{className:"typewriter-text",children:[t,n&&m.jsx("span",{className:"typewriter-cursor",children:"_"})]})}function Mo(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 Io(){const e=tr(),t=Bn(),[r]=Ii(),n=pt(),a=oo(),i=Xe(V=>Hn(V)),o=Wn(n.platform),c=h.useMemo(()=>$n(n),[n]),l=h.useMemo(()=>c?Kn(i):{credentials:null,legacyServerBaseUrl:null},[i,c]),d=l.credentials,p=l.legacyServerBaseUrl,[v,b]=h.useState(()=>(d==null?void 0:d.username)??"admin"),[w,T]=h.useState(()=>(d==null?void 0:d.password)??""),[E,D]=h.useState(null),[k,L]=h.useState(""),[K,te]=h.useState(()=>!!d),$=Po(V=>V.baseUrl),[he,g]=h.useState($),[N,F]=h.useState(null),[I,re]=h.useState(!1),[J,oe]=h.useState(!1),[ae,se]=h.useState(null),[We,$e]=h.useState(!1),Q=Hr(V=>V.session),Te=h.useMemo(()=>r.get("returnTo")??"/",[r]),{theme:_e}=Qi(),be=h.useRef(!1),ce=n.isNativeMobile,Ce=h.useMemo(()=>_e==="light"?"light":"dark",[_e]);h.useEffect(()=>{b((d==null?void 0:d.username)??"admin"),T((d==null?void 0:d.password)??""),D(null),L(""),te(!!d)},[d]),h.useEffect(()=>{if(typeof document>"u")return;const V=document.querySelector('meta[name="viewport"]');if(!(V instanceof HTMLMetaElement))return;const de=V.getAttribute("content")??Fr;return ce?V.setAttribute("content",Do):V.setAttribute("content",Fr),()=>{V.setAttribute("content",de)}},[ce]),h.useEffect(()=>{be.current||(be.current=!0,!(!c||!p||p===$)&&(Yt.setBaseUrl(p),g(p)))},[$,c,p]),h.useEffect(()=>{if(Q){e(Te,{replace:!0});return}if(!he)return;let V=!1;const de=window.setTimeout(()=>{Y(async()=>{const{probeHost:H}=await import("./index-DSw-TkQL.js").then(ve=>ve.$);return{probeHost:H}},__vite__mapDeps([3,4])).then(({probeHost:H})=>H(he)).then(H=>{V||(H.demoMode&&($e(!0),Yn()&&F(t("auth.demoSessionExpired"))),H.reachable&&!H.initialized&&e("/bootstrap",{replace:!0}))}).catch(()=>{V||F(t("auth.authUnavailable"))})},0);return()=>{V=!0,window.clearTimeout(de)}},[Q,e,he,Te,t]);async function Ue(V){V.preventDefault(),re(!0),F(null),g($),c&&!K&&i&&Gn(i);try{const de=E?{username:v,password:w,captchaId:E.captchaId,captchaCode:k}:{username:v,password:w};await _o.login(de,$),D(null),L("");const{userPreferenceStore:H}=await Y(async()=>{const{userPreferenceStore:ve}=await import("./index-DSw-TkQL.js").then(gt=>gt.Z);return{userPreferenceStore:ve}},__vite__mapDeps([3,4]));await H.refreshForAuthenticatedUser(),c&&K&&i&&Jn({hostId:i,username:v,password:w}),e(Te,{replace:!0})}catch(de){if(de instanceof Xn){if(de.errorCode==="BOOTSTRAP_REQUIRED"){e("/bootstrap",{replace:!0});return}const H=Mo(de.data);H?(D(H),L("")):de.errorCode==="INVALID_CREDENTIALS"&&(D(null),L("")),F(de.message)}else F(t("auth.authUnavailable"))}finally{re(!1)}}function ue(V){b(V),E&&(D(null),L(""))}function we(V){g(V),F(null)}const pe="login-username",Oe="login-password",vt="login-captcha";return m.jsxs("main",{className:"cyber-login-page","data-theme":Ce,"data-native-mobile":ce?"true":"false",children:[m.jsxs("div",{className:"cyber-bg",children:[m.jsx("div",{className:"cyber-grid"}),m.jsx("div",{className:"cyber-glow cyber-glow-1"}),m.jsx("div",{className:"cyber-glow cyber-glow-2"}),m.jsx(Lo,{})]}),m.jsx("div",{className:"scanlines"}),m.jsxs("div",{className:"cyber-login-container",children:[m.jsx("div",{className:"cyber-login-toolbar",children:m.jsx(ta,{variant:"compact"})}),m.jsxs("div",{className:"cyber-login-content",children:[m.jsxs("div",{className:"cyber-brand",children:[m.jsx("div",{className:"cyber-logo",children:m.jsx("img",{src:"/logo.png",alt:"CodingNS",className:"cyber-logo-svg"})}),m.jsx("h1",{className:"cyber-brand-title",children:m.jsx(jo,{text:"CodingNS"})}),m.jsx("p",{className:"cyber-brand-subtitle",children:m.jsx(No,{text:t("auth.loginSubtitle")})})]}),m.jsxs("div",{className:"cyber-card",children:[m.jsx("div",{className:"cyber-corner corner-tl"}),m.jsx("div",{className:"cyber-corner corner-tr"}),m.jsx("div",{className:"cyber-corner corner-bl"}),m.jsx("div",{className:"cyber-corner corner-br"}),m.jsxs("div",{className:"cyber-card-header",children:[m.jsx("div",{className:"cyber-line"}),m.jsx("span",{className:"cyber-card-label",children:t("auth.loginTitle").toUpperCase()}),m.jsx("div",{className:"cyber-line"})]}),We?m.jsxs("div",{className:"cyber-demo-banner",children:[m.jsx("span",{className:"cyber-demo-icon",children:"⚠"}),m.jsx("span",{children:t("auth.demoBanner")})]}):null,m.jsxs("form",{className:"cyber-form",onSubmit:Ue,children:[m.jsxs("div",{className:`cyber-field ${ae==="username"?"focused":""}`,children:[m.jsx("div",{className:"cyber-field-border",children:m.jsx("div",{className:"cyber-field-border-glow"})}),m.jsxs("label",{className:"cyber-field-label",htmlFor:pe,children:[m.jsx("span",{className:"cyber-field-icon",children:"❯"}),t("auth.username")]}),m.jsx("input",{id:pe,"aria-label":t("auth.username"),className:"cyber-input",value:v,onChange:V=>ue(V.target.value),onFocus:()=>se("username"),onBlur:()=>se(null),autoComplete:"username"})]}),m.jsxs("div",{className:`cyber-field ${ae==="password"?"focused":""}`,children:[m.jsx("div",{className:"cyber-field-border",children:m.jsx("div",{className:"cyber-field-border-glow"})}),m.jsxs("label",{className:"cyber-field-label",htmlFor:Oe,children:[m.jsx("span",{className:"cyber-field-icon",children:"⚷"}),t("auth.password")]}),m.jsx("input",{id:Oe,"aria-label":t("auth.password"),className:"cyber-input",type:"password",value:w,onChange:V=>T(V.target.value),onFocus:()=>se("password"),onBlur:()=>se(null),autoComplete:"current-password"})]}),E?m.jsxs("div",{className:"cyber-captcha-panel",children:[m.jsx("img",{alt:t("auth.captchaImageAlt"),className:"cyber-captcha-image",draggable:!1,src:E.imageDataUrl}),m.jsx("p",{className:"cyber-captcha-hint",children:t("auth.captchaHint")}),m.jsxs("div",{className:`cyber-field ${ae==="captcha"?"focused":""}`,children:[m.jsx("div",{className:"cyber-field-border",children:m.jsx("div",{className:"cyber-field-border-glow"})}),m.jsxs("label",{className:"cyber-field-label",htmlFor:vt,children:[m.jsx("span",{className:"cyber-field-icon",children:"#"}),t("auth.captcha")]}),m.jsx("input",{id:vt,"aria-label":t("auth.captcha"),className:"cyber-input",placeholder:t("auth.captchaPlaceholder"),value:k,onChange:V=>L(V.target.value),onFocus:()=>se("captcha"),onBlur:()=>se(null),autoComplete:"one-time-code"})]})]}):null,c?m.jsxs("label",{className:"cyber-remember-toggle",children:[m.jsx("input",{"aria-label":t("auth.rememberPassword"),type:"checkbox",checked:K,onChange:V=>te(V.target.checked)}),m.jsx("span",{children:t("auth.rememberPassword")})]}):null,N?m.jsxs("div",{className:"cyber-status","data-tone":"error",children:[m.jsx("span",{className:"cyber-status-icon",children:"⚠"}),m.jsx("span",{children:N})]}):null,m.jsxs("button",{className:`cyber-submit ${I?"loading":""}`,type:"submit",disabled:I,children:[m.jsx("span",{className:"cyber-submit-glow"}),m.jsx("span",{className:"cyber-submit-border"}),m.jsx("span",{className:"cyber-submit-text",children:I?m.jsxs(m.Fragment,{children:[m.jsx("span",{className:"cyber-spinner"}),t("common.loading")]}):m.jsxs(m.Fragment,{children:[m.jsx("span",{className:"cyber-submit-icon",children:"➤"}),t("auth.submitLogin")]})})]})]}),o?m.jsxs("div",{className:"cyber-footer",children:[m.jsxs("div",{className:"cyber-divider",children:[m.jsx("span",{className:"cyber-divider-line"}),m.jsx("span",{className:"cyber-divider-text",children:"//"}),m.jsx("span",{className:"cyber-divider-line"})]}),m.jsxs("button",{className:"cyber-server-btn",onClick:()=>oe(!0),type:"button",children:[m.jsx("span",{className:"cyber-server-icon",children:"⚙"}),m.jsx("span",{className:"cyber-server-text",children:t("auth.serverSettings")}),m.jsx("span",{className:"cyber-server-current",children:$})]})]}):null]})]}),m.jsxs("div",{className:"cyber-version",children:[m.jsxs("span",{className:"cyber-version-text",children:["v",a]}),m.jsx("span",{className:"cyber-version-divider",children:"|"}),m.jsx("span",{className:"cyber-version-text",children:"SYSTEM READY"})]})]}),o&&J?m.jsx(h.Suspense,{fallback:null,children:m.jsx(Co,{isOpen:J,onClose:()=>oe(!1),onSave:we})}):null]})}function yn(){return m.jsx("main",{className:"page-center app-shell",children:m.jsxs("section",{className:"auth-card surface-card",children:[m.jsx("h1",{children:Re("auth.trustedEntryOnlyTitle")}),m.jsx("p",{className:"status-text",children:Re("auth.trustedEntryOnlyDescription")}),m.jsxs("div",{className:"field-group",children:[m.jsx("span",{children:Re("auth.trustedEntryOnlyHintTitle")}),m.jsx("span",{className:"auth-server-value",children:Re("auth.trustedEntryOnlyHint")})]})]})})}function Uo({isDesktop:e,viewportClass:t}){return e||t==="expanded"?"desktop":"mobile"}function Oo(){return!1}function bn(e,t,r=Oo()){var i,o;if(!r||t!=="web")return!1;const n=Ct(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 Ao({runtimeKey:e,children:t}){return m.jsx("div",{children:t},e)}function ko(){const e=qn();return m.jsx(Ao,{runtimeKey:e,children:m.jsx(gi,{})})}function Fo(){const e=Xe(a=>a),t=pt(),r=Hr(a=>a.session),n=mt();if(bn(e,t.platform))return m.jsx(yn,{});if(!r){const a=`${n.pathname}${n.search}`;return m.jsx(sn,{to:`/login?returnTo=${encodeURIComponent(a)}`,replace:!0})}return m.jsx(ko,{})}function Vo(){const e=Xe(r=>r),t=pt();return bn(e,t.platform)?m.jsx(yn,{}):m.jsx(Io,{})}function Vr(){const e=pt(),t=Uo(e);return m.jsx(sn,{to:t==="mobile"?"/workspaces":"/landing",replace:!0})}function ne(e,t){return async()=>({Component:(await e())[t]})}const zo=[{path:"/bootstrap",lazy:ne(()=>Y(()=>import("./BootstrapPage-BgLdZEKQ.js"),__vite__mapDeps([7,3,4])),"BootstrapPage")},{path:"/login",element:m.jsx(Vo,{})},{path:"/connect/:tunnelDomain",lazy:ne(()=>Y(()=>import("./RelayConnectEntryPage-BB6DbGtP.js"),__vite__mapDeps([8,3,4,5])),"RelayConnectEntryPage")},{path:"/desktop-window-preview",lazy:ne(()=>Y(()=>import("./DesktopDetachPreviewPage-YCBnyC58.js"),__vite__mapDeps([9,3,4])),"DesktopDetachPreviewPage")},{path:"/",element:m.jsx(Fo,{}),children:[{path:"desktop-window/:windowId",lazy:ne(()=>Y(()=>import("./DesktopWindowPage-CrvndE23.js"),__vite__mapDeps([10,3,4,11,12,13,0,1,6,5,14,15,16,17,18,19,20,21,22])),"DesktopWindowPage")},{lazy:ne(()=>Y(()=>import("./WorkbenchShellRoute-BsxumYx5.js"),__vite__mapDeps([23,3,4,13,11,0,1,6,5,24])),"WorkbenchShellRoute"),children:[{index:!0,element:m.jsx(Vr,{})},{path:"landing",lazy:ne(()=>Y(()=>import("./WorkbenchLandingPage-DyPei0e-.js"),__vite__mapDeps([25,3,4,13,11,0,1,6,5])),"WorkbenchLandingPage")},{path:"workspaces",lazy:ne(()=>Y(()=>import("./WorkspaceHomePage-DkCHNjKD.js"),__vite__mapDeps([26,3,4,13,11,0,1,6,5,27,20,21,28])),"WorkspaceHomePage")},{path:"workspaces/:workspaceId",lazy:ne(()=>Y(()=>import("./WorkspaceDetailPage-DOexuuaw.js"),__vite__mapDeps([29,3,4,13,11,0,1,6,5,30,17,20,21,28])),"WorkspaceDetailPage")},{path:"workspaces/:workspaceId/debug",lazy:ne(()=>Y(()=>import("./WorkspaceDebugDetailPage-CaXj5zVI.js"),__vite__mapDeps([31,3,4,30,11,17,13,0,1,6,5])),"WorkspaceDebugDetailPage")},{path:"workspaces/:workspaceId/sessions",lazy:ne(()=>Y(()=>import("./SessionIndexPage-NbF9gJnp.js"),__vite__mapDeps([32,3,4,11,13,0,1,6,5,20,21,28,33,34])),"SessionIndexPage")},{path:"workspaces/:workspaceId/sessions/:sessionId",lazy:ne(()=>Y(()=>import("./ConversationPage-Cj8go7L0.js"),__vite__mapDeps([35,3,4,6,11,13,0,1,5,36,14,12,15,16,17,18,19,20,21,22,33,34])),"ConversationPage")},{path:"workspaces/:workspaceId/tools",lazy:ne(()=>Y(()=>import("./ToolsHomePage-DsJp0y8A.js"),__vite__mapDeps([37,3,4,13,11,0,1,6,5])),"ToolsHomePage")},{path:"workspaces/:workspaceId/tools/files",lazy:ne(()=>Y(()=>import("./ToolFilesPage-GSqKQsj_.js"),__vite__mapDeps([38,3,4,13,11,0,1,6,5])),"ToolFilesPage")},{path:"workspaces/:workspaceId/tools/git",lazy:ne(()=>Y(()=>import("./ToolGitPage-BVFWMMQp.js"),__vite__mapDeps([39,3,4,13,11,0,1,6,5])),"ToolGitPage")},{path:"workspaces/:workspaceId/tools/processes",lazy:ne(()=>Y(()=>import("./ToolProcessesPage-DZ456fYz.js"),__vite__mapDeps([40,3,4,13,11,0,1,6,5])),"ToolProcessesPage")},{path:"workspaces/:workspaceId/terminals",lazy:ne(()=>Y(()=>import("./TerminalPage-B5JNFU6w.js"),__vite__mapDeps([19,3,4,11,13,0,1,6,5,20,21,17,18,22])),"TerminalPage")},{path:"workspaces/:workspaceId/butler",lazy:ne(()=>Y(()=>import("./AdaptiveButlerPage-CfsUVZKl.js"),__vite__mapDeps([41,3,4,13,11,0,1,6,5,36,14,12,27,20,21,42])),"AdaptiveButlerPage")},{path:"settings",lazy:ne(()=>Y(()=>import("./SettingsPage-DGsmQpLv.js"),__vite__mapDeps([43,3,4,11,6,21])),"SettingsPage")},{path:"settings/:section",lazy:ne(()=>Y(()=>import("./SettingsPage-DGsmQpLv.js"),__vite__mapDeps([43,3,4,11,6,21])),"SettingsPage")},{path:"*",element:m.jsx(Vr,{})}]}]}];function Bo(){return Ei(zo)}function Ho(){const e=qe(r=>r.profile.language),t=h.useMemo(()=>Bo(),[]);return m.jsx(Yi,{children:m.jsx(io,{children:m.jsx(Qn,{language:e,children:m.jsx(eo,{children:m.jsxs(ao,{children:[m.jsx(yo,{}),m.jsx(ji,{router:t})]})})})})})}const ts=Object.freeze(Object.defineProperty({__proto__:null,App:Ho},Symbol.toStringTag,{value:"Module"}));export{ts as A,ta as L,sn as N,gi as O,Yo as T,Po as a,_o as b,Ko as c,Ii as d,pt as e,Jo as f,Wr as g,mt as h,lo as i,Qi as j,po as k,Xo as l,yr as m,qo as n,Qo as o,oo as p,Go as q,Uo as r,Zo as s,es as t,tr as u,Yt as v};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as t,j as s,t as e,A as v}from"./index-
|
|
1
|
+
import{b as t,j as s,t as e,A as v}from"./index-DSw-TkQL.js";import{u as S,a as w,b as N}from"./App-B9HcTkMT.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};
|